<?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>137302</bug_id>
          
          <creation_ts>2014-10-01 07:06:57 -0700</creation_ts>
          <short_desc>location.href is not updated on a redirect with a custom protocol</short_desc>
          <delta_ts>2016-09-17 07:03: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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=137299</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=138131</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=138169</see_also>
          <bug_file_loc>http://m.wikipedia.org</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel">danielo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038535</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-01 07:06:57 -0700</bug_when>
    <thetext>If there&apos;s a custom NSURLProtocol, which is redirecting some page, the web view URL (as reported by javascript location.href) is not updated.
If page p1 redirects to p2, then the final location.href will be p1 (while expected is p2).
This happens only if the protocol is registered using [WKBrowsingContextController registerSchemeForCustomProtocol:], because otherwise the protocol code is bypassed.

Happens on iOS 8.1 [12B401].
I&apos;m providing a test case code for the master branch at 809db5f8edac632ec3332b43dc90795d96914440.

Test case:
https://gist.github.com/anonymous/7fd3352c9f51eea9c4ce
Run it with ./TestWebKitAPI --gtest_filter=WebKit2CustomProtocolsTest.RedirectChangesURL

Manual test case on iOS:
1. go to http://m.wikipedia.org/
2. click a link
Expected results: link loads a page like http://en.m.wikipedia.org/wiki/Deaths_in_2014
Actual results: 404 error, because the link host is &quot;m.wikipedia.org&quot;, and was not updated to en.m.wikipedia.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038537</commentid>
    <comment_count>1</comment_count>
      <attachid>239025</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-01 07:10:43 -0700</bug_when>
    <thetext>Created attachment 239025
Automatic test case code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040281</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-08 07:07:57 -0700</bug_when>
    <thetext>If I understand it right the reason for this is that WKCustomProtocolLoader doesn&apos;t forward a redirect event back to the web process. When a redirect happens, &quot;connection:willSendRequest:redirectResponse:&quot; method is called, which should send a message about the redirect to the web process so that it propagates to an URL change.

See:
https://github.com/WebKit/webkit/blob/master/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm#L112

I&apos;m going to make a patch for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040525</commentid>
    <comment_count>3</comment_count>
      <attachid>239529</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-09 05:37:38 -0700</bug_when>
    <thetext>Created attachment 239529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040567</commentid>
    <comment_count>4</comment_count>
      <attachid>239529</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-09 09:24:50 -0700</bug_when>
    <thetext>Comment on attachment 239529
Patch

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

&gt; Source/WebCore/platform/network/CredentialStorage.cpp:128
&gt;      ASSERT(url.isValid());

Why is it OK to assert this? Can’t the redirect be an invalid URL as well as a valid non-HTTP URL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040845</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-10 01:24:57 -0700</bug_when>
    <thetext>Darin, thanks for looking at the patch.
You were right, I&apos;ve tried to do a test redirect to an URL like &quot;http://[::1&quot;, i.e. an URL where a host has an invalid IPv6 format, and it triggered this second ASSERT.
Uploading a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040846</commentid>
    <comment_count>6</comment_count>
      <attachid>239608</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-10 01:25:21 -0700</bug_when>
    <thetext>Created attachment 239608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044113</commentid>
    <comment_count>7</comment_count>
      <attachid>239608</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-24 17:20:27 -0700</bug_when>
    <thetext>Comment on attachment 239608
Patch

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

Round1: Quick review, mostly style.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Allow non-HTTP or invalid URLs to be passed to findDefaultProtectionSpaceForURL

You should keep the title in sync with the bug report on bugzilla.

This line of explanation should go under the &quot;Reviewed by&quot; line.

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests, no behavior change.

You can only use this excuse for tests when you believe there is no observable difference after your change.

In this case, we would crash in Debug due to the assertion so it is observable and should have a test.

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Add CustomProtocolManager::DidRedirect message

Keep the title &quot;location.href is not updated on a redirect with a custom protocol&quot; and have the explanation below.

&gt; Source/WebKit2/ChangeLog:9
&gt; +        The message is received after an HTTP redirect,
&gt; +        and is forwarded to the NSURLProtocol client.

Here you should have an explanation of the bug, why it happens, and how you solved it.

&gt; Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:112
&gt; +    // not a redirect, just continue

Comments should be complete sentences in WebKit, starting with uppercase for the first letter, and ending with a period.

&gt; Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:60
&gt; +    NSMutableURLRequest *request = [self.request mutableCopy];
&gt; +    RetainPtr&lt;NSMutableURLRequest&gt; requestPtr = adoptNS(request);

Let&apos;s merge those two lines.

&gt; Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:64
&gt; +    NSURLResponse *response = [[NSHTTPURLResponse alloc] initWithURL:targetURL
&gt; +        statusCode:302 HTTPVersion:@&quot;HTTP/1.0&quot; headerFields:@{ @&quot;Location&quot; : targetURL.absoluteString }];

Objective-C multiline alignment is a bit weird. You should split this with one line per argument and get XCode to align it for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044232</commentid>
    <comment_count>8</comment_count>
      <attachid>240478</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-27 06:12:21 -0700</bug_when>
    <thetext>Created attachment 240478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044233</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-27 06:13:35 -0700</bug_when>
    <thetext>Attachment 240478 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044234</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-27 06:17:26 -0700</bug_when>
    <thetext>&gt; You can only use this excuse for tests when you believe there is no observable difference after your change.
&gt; In this case, we would crash in Debug due to the assertion so it is observable and should have a test.

I couldn&apos;t find a place in code where I could put a simple unit test for CredentialStorage::findDefaultProtectionSpaceForURL, so I&apos;ve just changed the log message.

The rest remarks are fixed.

&gt; Weird number of spaces at line-start
What does it mean?
I did Xcode style indentation there that you&apos;ve asked there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045023</commentid>
    <comment_count>11</comment_count>
      <attachid>240670</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-30 06:22:00 -0700</bug_when>
    <thetext>Created attachment 240670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045024</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-30 06:22:48 -0700</bug_when>
    <thetext>Fixed compiling on Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045025</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-30 06:24:06 -0700</bug_when>
    <thetext>Attachment 240670 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045142</commentid>
    <comment_count>14</comment_count>
      <attachid>240670</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 15:09:07 -0700</bug_when>
    <thetext>Comment on attachment 240670
Patch

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

&gt; &gt; Weird number of spaces at line-start
&gt; What does it mean?
&gt; I did Xcode style indentation there that you&apos;ve asked there.

Don&apos;t worry, the style-checker does not know about Objective-C indentation. A code style &quot;error&quot; is a hint for reviewers.

&gt; Source/WebCore/ChangeLog:13
&gt; +        No new tests, just an ASSERT removal.

(In reply to comment #10)
&gt; &gt; You can only use this excuse for tests when you believe there is no observable difference after your change.
&gt; &gt; In this case, we would crash in Debug due to the assertion so it is observable and should have a test.
&gt; 
&gt; I couldn&apos;t find a place in code where I could put a simple unit test for
&gt; CredentialStorage::findDefaultProtectionSpaceForURL, so I&apos;ve just changed
&gt; the log message.

Honestly I don&apos;t understand why you remove the assertion if you cannot find a case that hits it...

&gt; Source/WebKit2/ChangeLog:10
&gt; +        This was happening, because WKCustomProtocolLoader didn&apos;t forward

Extra coma &quot;happening, because&quot; -&gt; happening because

&gt; Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:113
&gt; +    if (redirectResponse == nil)

WebKit style is:
    if (!redirectResponse)

&gt; Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:121
&gt; +    // Abandon the current connection, a new protocol connection for &quot;request&quot; will be initiated later.
&gt; +    _customProtocolManagerProxy-&gt;stopLoading(_customProtocolID);

It is not clear to me why this is correct. NSURLConnection never calls connectionDidFinishLoading: for redirection? This interface should behave the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045255</commentid>
    <comment_count>15</comment_count>
      <attachid>240730</attachid>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-31 03:26:30 -0700</bug_when>
    <thetext>Created attachment 240730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045256</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 03:28:43 -0700</bug_when>
    <thetext>Attachment 240730 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045257</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel">danielo</who>
    <bug_when>2014-10-31 03:43:18 -0700</bug_when>
    <thetext>I&apos;ve made the minor updates you&apos;ve asked, and added some comments.

&gt; Honestly I don&apos;t understand why you remove the assertion if you cannot find a case that hits it...

Of course, my new TC from TestWebKitAPI is affected. I&apos;ve updated the comment to reflect that. I just thought that a change in WebCore must have a TC in WebCore.

&gt; It is not clear to me why this is correct. NSURLConnection never calls connectionDidFinishLoading: for redirection? This interface should behave the same.

It&apos;s not the same. Although NSURLConnection stays on the same instance for doing redirects, it creates a new NSURLProtocol instance under the hood for each redirect. Each redirection gets a new NSURLProtocol in the web process, and makes a new startLoading call to the UI process. In respond to this in the UI process it creates a new instance of WKCustomProtocolLoader, and a new NSURLConnection. So the old NSURLConnection is not reused, which means that after a redirect it needs to be released. This is the purpose of this line.

Keep in mind that we are working with 2 NSURLConnection instances here. One is in the web process (somewhere in the networking code), and that&apos;s kept and reused. Another one is in the UI process (a part of WKCustomProtocolLoader), which is released after a redirect and not reused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230798</commentid>
    <comment_count>18</comment_count>
      <attachid>240730</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-17 07:03:07 -0700</bug_when>
    <thetext>Comment on attachment 240730
Patch

Hi,

Apologies that your patch was not reviewed in a timely manner. Since it&apos;s now quite old, I am removing it from the review request queue. Please consider rebasing it on trunk and resubmitting.

To increase the chances of getting a review, consider using &apos;Tools/Scripts/webkit-patch upload --suggest-reviewers&apos; to CC reviewers who might be interested in this bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239025</attachid>
            <date>2014-10-01 07:10:43 -0700</date>
            <delta_ts>2014-10-09 05:37:29 -0700</delta_ts>
            <desc>Automatic test case code</desc>
            <filename>test_case.patch</filename>
            <type>text/plain</type>
            <size>3970</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">RnJvbSAwYjZhMGFlYzIxM2E3YTMyNGQxOGYzYWViMzU0YzY3ODE4OGRlNTExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgTGF6YXJlbmtvIDxkYW5pZWxvQG9wZXJhLmNvbT4K
RGF0ZTogV2VkLCAxIE9jdCAyMDE0IDE2OjEwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQnVn
IDEzNzMwMiAtIGxvY2F0aW9uLmhyZWYgaXMgbm90IHVwZGF0ZWQgb24gYSByZWRpcmVjdCB3aXRo
CiBhIGN1c3RvbSBwcm90b2NvbAoKdGVzdCBjYXNlCi0tLQogLi4uL1Rlc3RzL1dlYktpdDJPYmpD
L0N1c3RvbVByb3RvY29sc1Rlc3QubW0gICAgICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysr
CiAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5t
bQppbmRleCBiN2IzZWQ4Li4xYzYzZDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tCkBAIC0y
NCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJKYXZhU2Ny
aXB0VGVzdC5oIgogI2ltcG9ydCAiVGVzdC5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgpAQCAtMzEsMTUgKzMyLDUwIEBACiAjaW1wb3J0ICJUZXN0UHJvdG9jb2wuaCIKICNpbXBv
cnQgPFdlYktpdC9XZWJLaXQyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAogc3RhdGlj
IGJvb2wgdGVzdEZpbmlzaGVkID0gZmFsc2U7CiAKK0BpbnRlcmZhY2UgV2ViS2l0MkN1c3RvbVBy
b3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgOiBUZXN0UHJvdG9jb2wKK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5n
VGVzdFByb3RvY29sCisKKysgKE5TVVJMICopdGFyZ2V0VVJMCit7CisgICAgcmV0dXJuIFtOU1VS
TCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA6Ly90ZXN0Iiwg
W1Rlc3RQcm90b2NvbCBzY2hlbWVdXV07Cit9CisKKy0gKHZvaWQpc3RhcnRMb2FkaW5nCit7Cisg
ICAgaWYgKCFbc2VsZi5yZXF1ZXN0LlVSTC5ob3N0IGlzRXF1YWxUb1N0cmluZzpAInJlZGlyZWN0
Il0pCisgICAgeworICAgICAgICBbc3VwZXIgc3RhcnRMb2FkaW5nXTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAKKyAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW1tzZWxmIGNsYXNzXSB0YXJn
ZXRVUkxdOworICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3QgPSBbc2VsZi5yZXF1ZXN0
IG11dGFibGVDb3B5XTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVz
dFB0ciA9IGFkb3B0TlMocmVxdWVzdCk7CisgICAgcmVxdWVzdC5VUkwgPSB0YXJnZXRVUkw7CisK
KyAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2Nd
IGluaXRXaXRoVVJMOnRhcmdldFVSTAorICAgICAgICBzdGF0dXNDb2RlOjMwMiBIVFRQVmVyc2lv
bjpAIkhUVFAvMS4wIiBoZWFkZXJGaWVsZHM6QHsgQCJMb2NhdGlvbiIgOiB0YXJnZXRVUkwuYWJz
b2x1dGVTdHJpbmcgfV07CisgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlUHRy
ID0gYWRvcHROUyhyZXNwb25zZSk7CisgICAgCisgICAgW3NlbGYuY2xpZW50IFVSTFByb3RvY29s
OnNlbGYgd2FzUmVkaXJlY3RlZFRvUmVxdWVzdDpyZXF1ZXN0IHJlZGlyZWN0UmVzcG9uc2U6cmVz
cG9uc2VdOworfQorCitAZW5kCisKKwogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
KFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0LCBNYWluUmVzb3VyY2UpCiB7CisgICAgdGVzdEZp
bmlzaGVkID0gZmFsc2U7CiAgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpbVGVzdFBy
b3RvY29sIGNsYXNzXV07CiAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3Rl
clNjaGVtZUZvckN1c3RvbVByb3RvY29sOltUZXN0UHJvdG9jb2wgc2NoZW1lXV07CiAKQEAgLTU0
LDYgKzkwLDI4IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIE1haW5SZXNvdXJj
ZSkKICAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CiB9CiAKK1RFU1QoV2ViS2l0MkN1c3Rv
bVByb3RvY29sc1Rlc3QsIFJlZGlyZWN0Q2hhbmdlc1VSTCkKK3sKKyAgICB0ZXN0RmluaXNoZWQg
PSBmYWxzZTsKKyAgICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltXZWJLaXQyQ3VzdG9t
UHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBjbGFzc11dOworICAgIFtXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpb
VGVzdFByb3RvY29sIHNjaGVtZV1dOworICAgIAorICAgIFJldGFpblB0cjxXS1Byb2Nlc3NHcm91
cD4gcHJvY2Vzc0dyb3VwID0gYWRvcHROUyhbW1dLUHJvY2Vzc0dyb3VwIGFsbG9jXSBpbml0XSk7
CisgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3JvdXA+IGJyb3dzaW5nQ29udGV4dEdy
b3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3JvdXAgYWxsb2NdIGluaXRXaXRoSWRl
bnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOworICAgIFJldGFpblB0cjxXS1ZpZXc+IHdrVmll
dyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgcHJvY2Vzc0dyb3VwOnByb2Nlc3NHcm91cC5nZXQoKSBicm93c2luZ0NvbnRl
eHRHcm91cDpicm93c2luZ0NvbnRleHRHcm91cC5nZXQoKV0pOworCisgICAgd2tWaWV3LmdldCgp
LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gW1tUZXN0QnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9SdW5PbkxvYWQ6XihXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgeworICAgICAgICBOU1N0cmluZyAqdGFy
Z2V0VVJMU3RyaW5nID0gW1tXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rl
c3RQcm90b2NvbCB0YXJnZXRVUkxdIGFic29sdXRlU3RyaW5nXTsKKyAgICAgICAgRVhQRUNUX0pT
X0VRKHdrVmlldy5nZXQoKS5wYWdlUmVmLCAibG9jYXRpb24uaHJlZiIsIFt0YXJnZXRVUkxTdHJp
bmcgVVRGOFN0cmluZ10pOworICAgICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFt3a1ZpZXcuZ2V0KCkuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA6Ly9yZWRpcmVjdCIsIFtUZXN0UHJvdG9jb2wgc2NoZW1l
XV1dXV07CisgICAgCisgICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIFtOU1VSTFBy
b3RvY29sIHVucmVnaXN0ZXJDbGFzczpbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJl
Y3RpbmdUZXN0UHJvdG9jb2wgY2xhc3NdXTsKKyAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyIHVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpbVGVzdFByb3RvY29sIHNjaGVt
ZV1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBXS19B
UElfRU5BQkxFRAotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239529</attachid>
            <date>2014-10-09 05:37:38 -0700</date>
            <delta_ts>2014-10-10 01:25:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137302-20141009143740.patch</filename>
            <type>text/plain</type>
            <size>11980</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNmNiNmNkYzUzNDg0
MzUyZjY2MmI0YWRiODEzYjFhYmM0YWMzNi4uNzYzOTIyNDZiZGI5OTQxMjIxODhjODllOWJiYmI4
OGNkZmZmZjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTEwLTA5ICBEYW5p
ZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgQWxsb3cgbm9uLUhU
VFAgc2NoZW1lIHRvIGJlIHBhc3NlZCBpbiBmaW5kRGVmYXVsdFByb3RlY3Rpb25TcGFjZUZvclVS
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBj
YW4gaGFwcGVuIGluIHRlc3Rpbmcgd2l0aCBhIGN1c3RvbSBzY2hlbWUgTlNVUkxQcm90b2NvbC4K
KyAgICAgICAgUmV0dXJuIGFuIGVtcHR5IGNyZWRlbnRpYWwgaW4gdGhpcyBjYXNlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
RGVmYXVsdFByb3RlY3Rpb25TcGFjZUZvclVSTCk6CisKIDIwMTQtMDktMzAgIEJyaWFuIEouIEJ1
cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVy
cm9yU3RyaW5nIHNob3VsZCBiZSBwYXNzZWQgYnkgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWMx
MzQ0NzVlYTU3M2UwNjMwY2U4OGE0Yzg1NTNmMTEzYzIzZWQ0YS4uZDQ5Yzg2Y2E5NDc4NzFhZTRl
MDEwOGFhZjhkODg5MDlmNmNhYWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0
LTEwLTA5ICBEYW5pZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAg
QWRkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6RGlkUmVkaXJlY3QgbWVzc2FnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzAyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG1lc3NhZ2UgaXMgcmVj
ZWl2ZWQgYWZ0ZXIgYW4gSFRUUCByZWRpcmVjdCwKKyAgICAgICAgYW5kIGlzIGZvcndhcmRlZCB0
byB0aGUgTlNVUkxQcm90b2NvbCBjbGllbnQuCisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkUmVkaXJlY3QpOgorICAgICAg
ICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW06CisgICAgICAg
ICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgY29ubmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVk
aXJlY3RSZXNwb25zZTpdKToKKwogMjAxNC0wOS0zMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbmFtZSBURVNUX1RIRU1FX0RJUiBt
YWNybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50
aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRp
YWxTdG9yYWdlLmNwcAppbmRleCA0MTAwNWQwYWRkYWUyYzNiZjRlODllMjIwNGNmNjJhODQ0MDJl
MGFhLi40N2JmNTNjZDE3MjRmY2UwNzZhNDM5MjM3N2I3OTZmNjI4OWE4ZjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNw
cApAQCAtMTI1LDExICsxMjUsMTMgQEAgdm9pZCBDcmVkZW50aWFsU3RvcmFnZTo6cmVtb3ZlKGNv
bnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQogCiBzdGF0aWMgUGF0aFRvRGVm
YXVsdFByb3RlY3Rpb25TcGFjZU1hcDo6aXRlcmF0b3IgZmluZERlZmF1bHRQcm90ZWN0aW9uU3Bh
Y2VGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgQVNTRVJUKHVybC5wcm90b2NvbElzSW5I
VFRQRmFtaWx5KCkpOwogICAgIEFTU0VSVCh1cmwuaXNWYWxpZCgpKTsKIAogICAgIFBhdGhUb0Rl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIG1hcCA9IHBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3Bh
Y2VNYXAoKTsKIAorICAgIGlmICghdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAg
ICAgcmV0dXJuIG1hcC5lbmQoKTsKKwogICAgIC8vIERvbid0IHNwZW5kIHRpbWUgaXRlcmF0aW5n
IHRoZSBwYXRoIGZvciBvcmlnaW5zIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgY3JlZGVudGlhbHMuCiAg
ICAgaWYgKCFvcmlnaW5zV2l0aENyZWRlbnRpYWxzKCkuY29udGFpbnMob3JpZ2luU3RyaW5nRnJv
bVVSTCh1cmwpKSkKICAgICAgICAgcmV0dXJuIG1hcC5lbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90
b2NvbE1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQppbmRleCBmZmI0
ZDFlODJlNGZiMjgzOTE5NDdkYzU0MjFkODFjNGE0MTg2NDA5Li44ODUwZjMxMmNjNDYwYmQwYzE5
ZDE3YTE2NjQ3NzU1MDc3NDI2ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0Nv
Y29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tCkBAIC0yNDgsNiArMjQ4LDIwIEBAIHZv
aWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCwgY29uc3QKICAgICB9KTsKIH0KIAordm9pZCBDdXN0b21Qcm90b2NvbE1h
bmFnZXI6OmRpZFJlZGlyZWN0KHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBSZXRhaW5QdHI8V0tDdXN0b21Qcm90
b2NvbD4gcHJvdG9jb2wgPSBwcm90b2NvbEZvcklEKGN1c3RvbVByb3RvY29sSUQpOworICAgIGlm
ICghcHJvdG9jb2wpCisgICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0cjxOU1VSTFJlcXVl
c3Q+IG5zTmV3UmVxdWVzdCA9IG5ld1JlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkRvTm90
VXBkYXRlSFRUUEJvZHkpOworICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBuc1JlZGlyZWN0
UmVzcG9uc2UgPSByZWRpcmVjdFJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKTsKKworICAgIGRpc3Bh
dGNoT25SZXNvdXJjZUxvYWRlclJ1bkxvb3AoXiB7CisgICAgICAgIFtbcHJvdG9jb2wgY2xpZW50
XSBVUkxQcm90b2NvbDpwcm90b2NvbC5nZXQoKSB3YXNSZWRpcmVjdGVkVG9SZXF1ZXN0Om5zTmV3
UmVxdWVzdC5nZXQoKSByZWRpcmVjdFJlc3BvbnNlOm5zUmVkaXJlY3RSZXNwb25zZS5nZXQoKV07
CisgICAgfSk7Cit9CisKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRGaW5pc2hMb2Fk
aW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7CiAgICAgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+IHByb3RvY29sID0gcHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9D
dXN0b21Qcm90b2NvbE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAppbmRleCBmNGI5NjQ2YjYyOWFm
NDRhYjcwNDI3YWFiM2RiMThmYzBjMDFlMTMwLi44Y2U5YzY0Y2I4OTBlNWJlN2I4NWM2NDFjNjJl
ZmJlNjI5OTZmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5o
CkBAIC01MSw2ICs1MSw3IEBAIGNsYXNzIERhdGFSZWZlcmVuY2U7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC05NSw2ICs5
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90IGN1c3Rv
bVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRp
ZExvYWREYXRhKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3Rv
Y29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCB1aW50MzJfdCBjYWNoZVN0
b3JhZ2VQb2xpY3kpOworICAgIHZvaWQgZGlkUmVkaXJlY3QodWludDY0X3QgY3VzdG9tUHJvdG9j
b2xJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCk7CiAKICAgICBDaGlsZFBy
b2Nlc3MqIG1fY2hpbGRQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Q
cm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMjM3NmQ5MjlkYmY0Y2M0MDdhYzI3M2Zi
ZGE3MDZlMTAxOThjODNhZC4uYWVjZmE1YjVkZTE3YjVmMDhlZTgxZDMwYjgwYzA0NWVmYWExMTI4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0yNiw2ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IEN1c3RvbVByb3RvY29sTWFu
YWdlciB7CiAgICAgRGlkRmFpbFdpdGhFcnJvcih1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIERpZExvYWREYXRhKHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZFJlY2VpdmVS
ZXNwb25zZSh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQb2xpY3kpCisgICAgRGlkUmVkaXJl
Y3QodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG5l
d1JlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAg
ICBEaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiAKICAgICBSZWdp
c3RlclNjaGVtZShTdHJpbmcgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDdkMGVmY2E0M2Yz
Nzg3ZmQ5ZTdhNGRjN2EwOTIxNGY2MzE5NzVlZTguLmM5MjU1OWMyYzhhZWU4MDE5ZmRlYmZlYWIw
OWFjOTA5ZjA5ZjBjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21h
Yy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtMTA5LDYgKzEwOSwxNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0
ICopcmVxdWVzdCByZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNw
b25zZQogeworICAgIC8vIG5vdCBhIHJlZGlyZWN0LCBqdXN0IGNvbnRpbnVlCisgICAgaWYgKHJl
ZGlyZWN0UmVzcG9uc2UgPT0gbmlsKQorICAgICAgICByZXR1cm4gcmVxdWVzdDsKKworICAgIFJl
c291cmNlUmVxdWVzdCBjb3JlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZVJlc3BvbnNl
IGNvcmVSZWRpcmVjdFJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOworICAgIF9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZFJlZGlyZWN0KF9jdXN0
b21Qcm90b2NvbElELCBjb3JlUmVxdWVzdCwgY29yZVJlZGlyZWN0UmVzcG9uc2UpLCAwKTsKKwor
ICAgIC8vIHN0b3AgdGhpcywgYSBuZXcgY29ubmVjdGlvbiBmb3IgInJlcXVlc3QiIHdpbGwgYmUg
aW5pdGlhdGVkIGxhdGVyCisgICAgX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LT5zdG9wTG9h
ZGluZyhfY3VzdG9tUHJvdG9jb2xJRCk7CisKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM4NTk0NDlh
M2I2NTJmNDAwYjllMTQ4OGNlNTk3ODExZTQ3MDU0YTAuLjdhYWJiNTI0NmYwYTcxOTNhMGVjZWJm
NGNkYmQ3MjAxMzAyOGRhZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMC0wOSAgRGFuaWVsIExhemFyZW5r
byAgPGRhbmllbG9Ab3BlcmEuY29tPgorCisgICAgICAgIFRlc3QgY2FzZSBmb3IgYSByZWRpcmVj
dCB3aXRoIGEgY3VzdG9tIHByb3RvY29sLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpDL0N1c3Rv
bVByb3RvY29sc1Rlc3QubW06CisgICAgICAgICgrW1dlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0
X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIHRhcmdldFVSTF0pOgorICAgICAgICAoLVtXZWJLaXQy
Q3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBzdGFydExvYWRpbmdd
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE0LTA5LTMwICBFdmEgQmFs
YXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
UmVtb3ZlIHRoaXJkcGFydHkvdW5pdHRlc3QyIGZyb20gd2Via2l0cHkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xz
VGVzdC5tbQppbmRleCBiN2IzZWQ4YmUwMTI0NDEzOTFhODNkYTlkZTY3YTYyMzdiYmQ3YmIzLi5k
ZTI1M2QxYzM3MzgyNjExMTUwNThkN2U1YmJkZDYzNDYyMzEwMTc5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2Nv
bHNUZXN0Lm1tCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJKYXZhU2NyaXB0VGVzdC5oIgogI2ltcG9ydCAiVGVzdC5oIgogCiAjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgpAQCAtMzEsMTUgKzMyLDQ5IEBACiAjaW1wb3J0ICJUZXN0UHJv
dG9jb2wuaCIKICNpbXBvcnQgPFdlYktpdC9XZWJLaXQyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIAogc3RhdGljIGJvb2wgdGVzdEZpbmlzaGVkID0gZmFsc2U7CiAKK0BpbnRlcmZhY2Ug
V2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgOiBUZXN0
UHJvdG9jb2wKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktpdDJDdXN0b21Qcm90b2NvbHNU
ZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sCisKKysgKE5TVVJMICopdGFyZ2V0VVJMCit7Cisg
ICAgcmV0dXJuIFtOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiJUA6Ly90ZXN0IiwgW1Rlc3RQcm90b2NvbCBzY2hlbWVdXV07Cit9CisKKy0gKHZvaWQpc3Rh
cnRMb2FkaW5nCit7CisgICAgaWYgKCFbc2VsZi5yZXF1ZXN0LlVSTC5ob3N0IGlzRXF1YWxUb1N0
cmluZzpAInJlZGlyZWN0Il0pIHsKKyAgICAgICAgW3N1cGVyIHN0YXJ0TG9hZGluZ107CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW1tzZWxmIGNsYXNz
XSB0YXJnZXRVUkxdOworICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3QgPSBbc2VsZi5y
ZXF1ZXN0IG11dGFibGVDb3B5XTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4g
cmVxdWVzdFB0ciA9IGFkb3B0TlMocmVxdWVzdCk7CisgICAgcmVxdWVzdC5VUkwgPSB0YXJnZXRV
Ukw7CisKKyAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IFtbTlNIVFRQVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnRhcmdldFVSTAorICAgICAgICBzdGF0dXNDb2RlOjMwMiBIVFRQ
VmVyc2lvbjpAIkhUVFAvMS4wIiBoZWFkZXJGaWVsZHM6QHsgQCJMb2NhdGlvbiIgOiB0YXJnZXRV
UkwuYWJzb2x1dGVTdHJpbmcgfV07CisgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3Bv
bnNlUHRyID0gYWRvcHROUyhyZXNwb25zZSk7CisKKyAgICBbc2VsZi5jbGllbnQgVVJMUHJvdG9j
b2w6c2VsZiB3YXNSZWRpcmVjdGVkVG9SZXF1ZXN0OnJlcXVlc3QgcmVkaXJlY3RSZXNwb25zZTpy
ZXNwb25zZV07Cit9CisKK0BlbmQKKworCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRF
U1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIE1haW5SZXNvdXJjZSkKIHsKKyAgICB0ZXN0
RmluaXNoZWQgPSBmYWxzZTsKICAgICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltUZXN0
UHJvdG9jb2wgY2xhc3NdXTsKICAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHJlZ2lz
dGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6W1Rlc3RQcm90b2NvbCBzY2hlbWVdXTsKIApAQCAt
NTQsNiArODksMjkgQEAgVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwgTWFpblJlc291
cmNlKQogICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKIH0KIAorVEVTVChXZWJLaXQyQ3Vz
dG9tUHJvdG9jb2xzVGVzdCwgUmVkaXJlY3RDaGFuZ2VzVVJMKQoreworICAgIHRlc3RGaW5pc2hl
ZCA9IGZhbHNlOworICAgIFtOU1VSTFByb3RvY29sIHJlZ2lzdGVyQ2xhc3M6W1dlYktpdDJDdXN0
b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIGNsYXNzXV07CisgICAgW1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29s
OltUZXN0UHJvdG9jb2wgc2NoZW1lXV07CisKKyAgICBSZXRhaW5QdHI8V0tQcm9jZXNzR3JvdXA+
IHByb2Nlc3NHcm91cCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NHcm91cCBhbGxvY10gaW5pdF0pOwor
ICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dEdyb3VwPiBicm93c2luZ0NvbnRleHRHcm91
cCA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIGFsbG9jXSBpbml0V2l0aElkZW50
aWZpZXI6QCJUZXN0SWRlbnRpZmllciJdKTsKKyAgICBSZXRhaW5QdHI8V0tWaWV3PiB3a1ZpZXcg
PSBhZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIHByb2Nlc3NHcm91cDpwcm9jZXNzR3JvdXAuZ2V0KCkgYnJvd3NpbmdDb250ZXh0
R3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCldKTsKKworICAgIHdrVmlldy5nZXQoKS5i
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLmxvYWREZWxlZ2F0ZSA9IFtbVGVzdEJyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhCbG9ja1RvUnVuT25Mb2FkOl4oV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICpzZW5kZXIpCisgICAgeworICAgICAgICBOU1N0cmluZyAq
dGFyZ2V0VVJMU3RyaW5nID0gW1tXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGlu
Z1Rlc3RQcm90b2NvbCB0YXJnZXRVUkxdIGFic29sdXRlU3RyaW5nXTsKKyAgICAgICAgRVhQRUNU
X0pTX0VRKHdrVmlldy5nZXQoKS5wYWdlUmVmLCAibG9jYXRpb24uaHJlZiIsIFt0YXJnZXRVUkxT
dHJpbmcgVVRGOFN0cmluZ10pOworICAgICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOworICAgIH1d
OworICAgIFt3a1ZpZXcuZ2V0KCkuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkUmVxdWVz
dDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA6Ly9yZWRpcmVjdCIsIFtUZXN0UHJvdG9jb2wgc2No
ZW1lXV1dXV07CisKKyAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgW05TVVJMUHJv
dG9jb2wgdW5yZWdpc3RlckNsYXNzOltXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVj
dGluZ1Rlc3RQcm90b2NvbCBjbGFzc11dOworICAgIFtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgdW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOltUZXN0UHJvdG9jb2wgc2NoZW1l
XV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIFdLX0FQ
SV9FTkFCTEVECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239608</attachid>
            <date>2014-10-10 01:25:21 -0700</date>
            <delta_ts>2014-10-27 06:12:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137302-20141010102523.patch</filename>
            <type>text/plain</type>
            <size>12063</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNmNiNmNkYzUzNDg0
MzUyZjY2MmI0YWRiODEzYjFhYmM0YWMzNi4uYzEwN2M5MmMwY2U5M2E5N2VkNjkxZGUzNzI0OTI5
MDk2MmVkNGY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEwLTA5ICBEYW5p
ZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgQWxsb3cgbm9uLUhU
VFAgb3IgaW52YWxpZCBVUkxzIHRvIGJlIHBhc3NlZCB0byBmaW5kRGVmYXVsdFByb3RlY3Rpb25T
cGFjZUZvclVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBjYW4gaGFwcGVuIGluIHRlc3Rpbmcgd2l0aCBhIGN1c3RvbSBzY2hlbWUgTlNVUkxQ
cm90b2NvbCwKKyAgICAgICAgb3IgaWYgYSByZWRpcmVjdCBsZWFkcyB0byBhbiBpbnZhbGlkIEhU
VFAgVVJMLgorICAgICAgICBSZXR1cm4gYW4gZW1wdHkgY3JlZGVudGlhbCBpbiB0aGlzIGNhc2Uu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZpbmREZWZhdWx0UHJvdGVjdGlvblNwYWNlRm9yVVJMKToKKwogMjAxNC0wOS0zMCAgQnJp
YW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogRXJyb3JTdHJpbmcgc2hvdWxkIGJlIHBhc3NlZCBieSByZWZlcmVuY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAxYzEzNDQ3NWVhNTczZTA2MzBjZTg4YTRjODU1M2YxMTNjMjNlZDRhLi5kNDljODZjYTk0
Nzg3MWFlNGUwMTA4YWFmOGQ4ODkwOWY2Y2FhZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTQtMTAtMDkgIERhbmllbCBMYXphcmVua28gIDxkYW5pZWxvQG9wZXJhLmNvbT4KKwor
ICAgICAgICBBZGQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpEaWRSZWRpcmVjdCBtZXNzYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWVzc2Fn
ZSBpcyByZWNlaXZlZCBhZnRlciBhbiBIVFRQIHJlZGlyZWN0LAorICAgICAgICBhbmQgaXMgZm9y
d2FyZGVkIHRvIHRoZSBOU1VSTFByb3RvY29sIGNsaWVudC4KKworICAgICAgICAqIFNoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRSZWRpcmVjdCk6
CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29s
TWFuYWdlci5oOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0
b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbToK
KyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBjb25uZWN0aW9uOndpbGxTZW5kUmVx
dWVzdDpyZWRpcmVjdFJlc3BvbnNlOl0pOgorCiAyMDE0LTA5LTMwICBHeXV5b3VuZyBLaW0gIDxn
eXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVuYW1lIFRFU1RfVEhF
TUVfRElSIG1hY3JvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbFN0b3JhZ2UuY3BwCmluZGV4IDQxMDA1ZDBhZGRhZTJjM2JmNGU4OWUyMjA0Y2Y2
MmE4NDQwMmUwYWEuLjEwZTFiYmVmNWE3NmI2Y2YyMzdlYzYzODYzMGFhNjY0ZDk3MGQ4YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3Jh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0
b3JhZ2UuY3BwCkBAIC0xMjUsMTEgKzEyNSwxMSBAQCB2b2lkIENyZWRlbnRpYWxTdG9yYWdlOjpy
ZW1vdmUoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCiAKIHN0YXRpYyBQ
YXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOjppdGVyYXRvciBmaW5kRGVmYXVsdFByb3Rl
Y3Rpb25TcGFjZUZvclVSTChjb25zdCBVUkwmIHVybCkKIHsKLSAgICBBU1NFUlQodXJsLnByb3Rv
Y29sSXNJbkhUVFBGYW1pbHkoKSk7Ci0gICAgQVNTRVJUKHVybC5pc1ZhbGlkKCkpOwotCiAgICAg
UGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCYgbWFwID0gcGF0aFRvRGVmYXVsdFByb3Rl
Y3Rpb25TcGFjZU1hcCgpOwogCisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1cm4gbWFwLmVuZCgpOworCiAgICAgLy8g
RG9uJ3Qgc3BlbmQgdGltZSBpdGVyYXRpbmcgdGhlIHBhdGggZm9yIG9yaWdpbnMgdGhhdCBkb24n
dCBoYXZlIGFueSBjcmVkZW50aWFscy4KICAgICBpZiAoIW9yaWdpbnNXaXRoQ3JlZGVudGlhbHMo
KS5jb250YWlucyhvcmlnaW5TdHJpbmdGcm9tVVJMKHVybCkpKQogICAgICAgICByZXR1cm4gbWFw
LmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29s
TWFuYWdlckNvY29hLm1tCmluZGV4IGZmYjRkMWU4MmU0ZmIyODM5MTk0N2RjNTQyMWQ4MWM0YTQx
ODY0MDkuLjg4NTBmMzEyY2M0NjBiZDBjMTlkMTdhMTY2NDc3NTUwNzc0MjZkNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9D
dXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2Eu
bW0KQEAgLTI0OCw2ICsyNDgsMjAgQEAgdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZSh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdAogICAgIH0pOwog
fQogCit2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkUmVkaXJlY3QodWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQorewor
ICAgIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sPiBwcm90b2NvbCA9IHByb3RvY29sRm9ySUQo
Y3VzdG9tUHJvdG9jb2xJRCk7CisgICAgaWYgKCFwcm90b2NvbCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gbnNOZXdSZXF1ZXN0ID0gbmV3UmVxdWVzdC5u
c1VSTFJlcXVlc3QoV2ViQ29yZTo6RG9Ob3RVcGRhdGVIVFRQQm9keSk7CisgICAgUmV0YWluUHRy
PE5TVVJMUmVzcG9uc2U+IG5zUmVkaXJlY3RSZXNwb25zZSA9IHJlZGlyZWN0UmVzcG9uc2UubnNV
UkxSZXNwb25zZSgpOworCisgICAgZGlzcGF0Y2hPblJlc291cmNlTG9hZGVyUnVuTG9vcCheIHsK
KyAgICAgICAgW1twcm90b2NvbCBjbGllbnRdIFVSTFByb3RvY29sOnByb3RvY29sLmdldCgpIHdh
c1JlZGlyZWN0ZWRUb1JlcXVlc3Q6bnNOZXdSZXF1ZXN0LmdldCgpIHJlZGlyZWN0UmVzcG9uc2U6
bnNSZWRpcmVjdFJlc3BvbnNlLmdldCgpXTsKKyAgICB9KTsKK30KKwogdm9pZCBDdXN0b21Qcm90
b2NvbE1hbmFnZXI6OmRpZEZpbmlzaExvYWRpbmcodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkK
IHsKICAgICBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gcHJvdG9jb2wgPSBwcm90b2NvbEZv
cklEKGN1c3RvbVByb3RvY29sSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlci5oCmluZGV4IGY0Yjk2NDZiNjI5YWY0NGFiNzA0MjdhYWIzZGIxOGZjMGMwMWUxMzAuLjhj
ZTljNjRjYjg5MGU1YmU3Yjg1YzY0MWM2MmVmYmU2Mjk5NmZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKQEAgLTUxLDYgKzUxLDcgQEAgY2xhc3MgRGF0YVJl
ZmVyZW5jZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2Ns
YXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKQEAgLTk1LDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZh
aWxXaXRoRXJyb3IodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkTG9hZERhdGEodWludDY0X3QgY3VzdG9tUHJvdG9j
b2xJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIHVpbnQzMl90IGNhY2hlU3RvcmFnZVBvbGljeSk7CisgICAgdm9pZCBkaWRSZWRp
cmVjdCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1aW50NjRfdCBjdXN0b21Q
cm90b2NvbElEKTsKIAogICAgIENoaWxkUHJvY2VzcyogbV9jaGlsZFByb2Nlc3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCAyMzc2ZDkyOWRiZjRjYzQwN2FjMjczZmJkYTcwNmUxMDE5OGM4M2FkLi5hZWNmYTViNWRlMTdi
NWYwOGVlODFkMzBiODBjMDQ1ZWZhYTExMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVz
c2FnZXMgLT4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyIHsKICAgICBEaWRGYWlsV2l0aEVycm9yKHVp
bnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAg
ICAgRGlkTG9hZERhdGEodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGEpCiAgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29s
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIHVpbnQzMl90IGNhY2hlU3Rv
cmFnZVBvbGljeSkKKyAgICBEaWRSZWRpcmVjdCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZWRpcmVjdFJlc3BvbnNlKQogICAgIERpZEZpbmlzaExvYWRpbmcodWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCkKIAogICAgIFJlZ2lzdGVyU2NoZW1lKFN0cmluZyBuYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21h
Yy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNYWMubW0KaW5kZXggN2QwZWZjYTQzZjM3ODdmZDllN2E0ZGM3YTA5MjE0ZjYzMTk3NWVlOC4u
YzkyNTU5YzJjOGFlZTgwMTlmZGViZmVhYjA5YWM5MDlmMDlmMGMxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFj
Lm1tCkBAIC0xMDksNiArMTA5LDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKE5T
VVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2ls
bFNlbmRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IHJlZGlyZWN0UmVzcG9uc2U6KE5T
VVJMUmVzcG9uc2UgKilyZWRpcmVjdFJlc3BvbnNlCiB7CisgICAgLy8gbm90IGEgcmVkaXJlY3Qs
IGp1c3QgY29udGludWUKKyAgICBpZiAocmVkaXJlY3RSZXNwb25zZSA9PSBuaWwpCisgICAgICAg
IHJldHVybiByZXF1ZXN0OworCisgICAgUmVzb3VyY2VSZXF1ZXN0IGNvcmVSZXF1ZXN0KHJlcXVl
c3QpOworICAgIFJlc291cmNlUmVzcG9uc2UgY29yZVJlZGlyZWN0UmVzcG9uc2UocmVkaXJlY3RS
ZXNwb25zZSk7CisgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6RGlkUmVkaXJlY3QoX2N1c3RvbVByb3RvY29sSUQsIGNvcmVSZXF1ZXN0LCBjb3Jl
UmVkaXJlY3RSZXNwb25zZSksIDApOworCisgICAgLy8gc3RvcCB0aGlzLCBhIG5ldyBjb25uZWN0
aW9uIGZvciAicmVxdWVzdCIgd2lsbCBiZSBpbml0aWF0ZWQgbGF0ZXIKKyAgICBfY3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHktPnN0b3BMb2FkaW5nKF9jdXN0b21Qcm90b2NvbElEKTsKKwogICAg
IHJldHVybiByZXF1ZXN0OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYzg1OTQ0OWEzYjY1MmY0MDBiOWUxNDg4Y2U1OTc4MTFlNDcwNTRh
MC4uN2FhYmI1MjQ2ZjBhNzE5M2EwZWNlYmY0Y2RiZDcyMDEzMDI4ZGFmMiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE0LTEwLTA5ICBEYW5pZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAg
ICAgVGVzdCBjYXNlIGZvciBhIHJlZGlyZWN0IHdpdGggYSBjdXN0b20gcHJvdG9jb2wuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbToKKyAgICAgICAgKCtb
V2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgdGFyZ2V0
VVJMXSk6CisgICAgICAgICgtW1dlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5n
VGVzdFByb3RvY29sIHN0YXJ0TG9hZGluZ10pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMTQtMDktMzAgIEV2YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVnZWRAcGFydG5l
ci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhpcmRwYXJ0eS91bml0dGVzdDIgZnJv
bSB3ZWJraXRweQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
T2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tCmluZGV4IGI3YjNlZDhiZTAxMjQ0MTM5
MWE4M2RhOWRlNjdhNjIzN2JiZDdiYjMuLmRlMjUzZDFjMzczODI2MTExNTA1OGQ3ZTViYmRkNjM0
NjIzMTAxNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9i
akMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0KQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiAjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkphdmFTY3JpcHRUZXN0LmgiCiAjaW1w
b3J0ICJUZXN0LmgiCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCkBAIC0zMSwxNSAr
MzIsNDkgQEAKICNpbXBvcnQgIlRlc3RQcm90b2NvbC5oIgogI2ltcG9ydCA8V2ViS2l0L1dlYktp
dDIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQ
cml2YXRlLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAogCiBzdGF0aWMgYm9vbCB0ZXN0RmluaXNo
ZWQgPSBmYWxzZTsKIAorQGludGVyZmFjZSBXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRp
cmVjdGluZ1Rlc3RQcm90b2NvbCA6IFRlc3RQcm90b2NvbAorQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wKKwor
KyAoTlNVUkwgKil0YXJnZXRVUkwKK3sKKyAgICByZXR1cm4gW05TVVJMIFVSTFdpdGhTdHJpbmc6
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDovL3Rlc3QiLCBbVGVzdFByb3RvY29sIHNj
aGVtZV1dXTsKK30KKworLSAodm9pZClzdGFydExvYWRpbmcKK3sKKyAgICBpZiAoIVtzZWxmLnJl
cXVlc3QuVVJMLmhvc3QgaXNFcXVhbFRvU3RyaW5nOkAicmVkaXJlY3QiXSkgeworICAgICAgICBb
c3VwZXIgc3RhcnRMb2FkaW5nXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5TVVJM
ICp0YXJnZXRVUkwgPSBbW3NlbGYgY2xhc3NdIHRhcmdldFVSTF07CisgICAgTlNNdXRhYmxlVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtzZWxmLnJlcXVlc3QgbXV0YWJsZUNvcHldOworICAgIFJldGFp
blB0cjxOU011dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0UHRyID0gYWRvcHROUyhyZXF1ZXN0KTsK
KyAgICByZXF1ZXN0LlVSTCA9IHRhcmdldFVSTDsKKworICAgIE5TVVJMUmVzcG9uc2UgKnJlc3Bv
bnNlID0gW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFyZ2V0VVJMCisg
ICAgICAgIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJzaW9uOkAiSFRUUC8xLjAiIGhlYWRlckZpZWxk
czpAeyBAIkxvY2F0aW9uIiA6IHRhcmdldFVSTC5hYnNvbHV0ZVN0cmluZyB9XTsKKyAgICBSZXRh
aW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2VQdHIgPSBhZG9wdE5TKHJlc3BvbnNlKTsKKwor
ICAgIFtzZWxmLmNsaWVudCBVUkxQcm90b2NvbDpzZWxmIHdhc1JlZGlyZWN0ZWRUb1JlcXVlc3Q6
cmVxdWVzdCByZWRpcmVjdFJlc3BvbnNlOnJlc3BvbnNlXTsKK30KKworQGVuZAorCisKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwg
TWFpblJlc291cmNlKQogeworICAgIHRlc3RGaW5pc2hlZCA9IGZhbHNlOwogICAgIFtOU1VSTFBy
b3RvY29sIHJlZ2lzdGVyQ2xhc3M6W1Rlc3RQcm90b2NvbCBjbGFzc11dOwogICAgIFtXS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpbVGVz
dFByb3RvY29sIHNjaGVtZV1dOwogCkBAIC01NCw2ICs4OSwyOSBAQCBURVNUKFdlYktpdDJDdXN0
b21Qcm90b2NvbHNUZXN0LCBNYWluUmVzb3VyY2UpCiAgICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNo
ZWQpOwogfQogCitURVNUKFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0LCBSZWRpcmVjdENoYW5n
ZXNVUkwpCit7CisgICAgdGVzdEZpbmlzaGVkID0gZmFsc2U7CisgICAgW05TVVJMUHJvdG9jb2wg
cmVnaXN0ZXJDbGFzczpbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0
UHJvdG9jb2wgY2xhc3NdXTsKKyAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHJlZ2lz
dGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6W1Rlc3RQcm90b2NvbCBzY2hlbWVdXTsKKworICAg
IFJldGFpblB0cjxXS1Byb2Nlc3NHcm91cD4gcHJvY2Vzc0dyb3VwID0gYWRvcHROUyhbW1dLUHJv
Y2Vzc0dyb3VwIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0
R3JvdXA+IGJyb3dzaW5nQ29udGV4dEdyb3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOworICAg
IFJldGFpblB0cjxXS1ZpZXc+IHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgcHJvY2Vzc0dyb3VwOnByb2Nlc3NH
cm91cC5nZXQoKSBicm93c2luZ0NvbnRleHRHcm91cDpicm93c2luZ0NvbnRleHRHcm91cC5nZXQo
KV0pOworCisgICAgd2tWaWV3LmdldCgpLmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubG9hZERl
bGVnYXRlID0gW1tUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0
aEJsb2NrVG9SdW5PbkxvYWQ6XihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikK
KyAgICB7CisgICAgICAgIE5TU3RyaW5nICp0YXJnZXRVUkxTdHJpbmcgPSBbW1dlYktpdDJDdXN0
b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIHRhcmdldFVSTF0gYWJzb2x1
dGVTdHJpbmddOworICAgICAgICBFWFBFQ1RfSlNfRVEod2tWaWV3LmdldCgpLnBhZ2VSZWYsICJs
b2NhdGlvbi5ocmVmIiwgW3RhcmdldFVSTFN0cmluZyBVVEY4U3RyaW5nXSk7CisgICAgICAgIHRl
c3RGaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisgICAgW3drVmlldy5nZXQoKS5icm93c2luZ0Nv
bnRleHRDb250cm9sbGVyIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDovL3Jl
ZGlyZWN0IiwgW1Rlc3RQcm90b2NvbCBzY2hlbWVdXV1dXTsKKworICAgIFV0aWw6OnJ1bigmdGVz
dEZpbmlzaGVkKTsKKyAgICBbTlNVUkxQcm90b2NvbCB1bnJlZ2lzdGVyQ2xhc3M6W1dlYktpdDJD
dXN0b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIGNsYXNzXV07CisgICAg
W1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciB1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJv
dG9jb2w6W1Rlc3RQcm90b2NvbCBzY2hlbWVdXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240478</attachid>
            <date>2014-10-27 06:12:21 -0700</date>
            <delta_ts>2014-10-30 06:21:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137302-20141027141228.patch</filename>
            <type>text/plain</type>
            <size>12761</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNmNiNmNkYzUzNDg0
MzUyZjY2MmI0YWRiODEzYjFhYmM0YWMzNi4uMTEzYjRkZDdmOTZmOTg0Mjg1MGVmMjcxNjIxNjFk
NDdkOGJiNmFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTEwLTA5ICBEYW5p
ZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgbG9jYXRpb24uaHJl
ZiBpcyBub3QgdXBkYXRlZCBvbiBhIHJlZGlyZWN0IHdpdGggYSBjdXN0b20gcHJvdG9jb2wKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IG5vbi1I
VFRQIG9yIGludmFsaWQgVVJMcyB0byBiZSBwYXNzZWQgdG8gZmluZERlZmF1bHRQcm90ZWN0aW9u
U3BhY2VGb3JVUkwuCisgICAgICAgIFRoaXMgY2FuIGhhcHBlbiBpbiB0ZXN0aW5nIHdpdGggYSBj
dXN0b20gc2NoZW1lIE5TVVJMUHJvdG9jb2wsCisgICAgICAgIG9yIGlmIGEgcmVkaXJlY3QgbGVh
ZHMgdG8gYW4gaW52YWxpZCBIVFRQIFVSTC4KKyAgICAgICAgUmV0dXJuIGFuIGVtcHR5IGNyZWRl
bnRpYWwgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhbiBBU1NF
UlQgcmVtb3ZhbC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3Jh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JV
UkwpOgorCiAyMDE0LTA5LTMwICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVk
dT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFcnJvclN0cmluZyBzaG91bGQgYmUgcGFzc2Vk
IGJ5IHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFjMTM0NDc1ZWE1NzNlMDYzMGNlODhhNGM4NTUz
ZjExM2MyM2VkNGEuLjAyZmM2YTkyMjNkNGFjMmM2YTE2NWQ2ZDQxNjY4ZTY5MmM0YjRiMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNC0xMC0wOSAgRGFuaWVsIExhemFyZW5rbyAg
PGRhbmllbG9Ab3BlcmEuY29tPgorCisgICAgICAgIGxvY2F0aW9uLmhyZWYgaXMgbm90IHVwZGF0
ZWQgb24gYSByZWRpcmVjdCB3aXRoIGEgY3VzdG9tIHByb3RvY29sCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGVyZSdzIGEgY3VzdG9tIE5TVVJM
UHJvdG9jb2wsIHdoaWNoIGlzIHJlZGlyZWN0aW5nIHNvbWUgcGFnZSwKKyAgICAgICAgdGhlIHdl
YiB2aWV3IFVSTCB3YXMgbm90IHVwZGF0ZWQuCisgICAgICAgIFRoaXMgd2FzIGhhcHBlbmluZywg
YmVjYXVzZSBXS0N1c3RvbVByb3RvY29sTG9hZGVyIGRpZG4ndCBmb3J3YXJkCisgICAgICAgIGEg
cmVkaXJlY3QgZXZlbnQgYmFjayB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgIFRoaXMgYWRk
cyBhIG5ldyBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZFJlZGlyZWN0IG1lc3NhZ2UuCisgICAg
ICAgIFRoZSBtZXNzYWdlIGlzIHJlY2VpdmVkIGFmdGVyIGFuIEhUVFAgcmVkaXJlY3QsCisgICAg
ICAgIGFuZCBpcyBmb3J3YXJkZWQgdG8gdGhlIE5TVVJMUHJvdG9jb2wgY2xpZW50LAorICAgICAg
ICB3aGljaCBldmVudHVhbGx5IHByb3BhZ2F0ZXMgaXQgdG8gdGhlIFVSTCB1cGRhdGUuCisKKyAg
ICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkUmVkaXJlY3QpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNYWMubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgY29ubmVj
dGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKwogMjAxNC0wOS0zMCAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
IFJlbmFtZSBURVNUX1RIRU1FX0RJUiBtYWNybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCA0MTAwNWQwYWRkYWUy
YzNiZjRlODllMjIwNGNmNjJhODQ0MDJlMGFhLi4xMGUxYmJlZjVhNzZiNmNmMjM3ZWM2Mzg2MzBh
YTY2NGQ5NzBkOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtMTI1LDExICsxMjUsMTEgQEAgdm9pZCBDcmVk
ZW50aWFsU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNw
YWNlKQogCiBzdGF0aWMgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDo6aXRlcmF0b3Ig
ZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAg
QVNTRVJUKHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwotICAgIEFTU0VSVCh1cmwuaXNW
YWxpZCgpKTsKLQogICAgIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIG1hcCA9IHBh
dGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAoKTsKIAorICAgIGlmICghdXJsLmlzVmFsaWQo
KSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuIG1hcC5l
bmQoKTsKKwogICAgIC8vIERvbid0IHNwZW5kIHRpbWUgaXRlcmF0aW5nIHRoZSBwYXRoIGZvciBv
cmlnaW5zIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgY3JlZGVudGlhbHMuCiAgICAgaWYgKCFvcmlnaW5z
V2l0aENyZWRlbnRpYWxzKCkuY29udGFpbnMob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKSkKICAg
ICAgICAgcmV0dXJuIG1hcC5lbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2Nv
YS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQppbmRleCBmZmI0ZDFlODJlNGZiMjgzOTE5
NDdkYzU0MjFkODFjNGE0MTg2NDA5Li44ODUwZjMxMmNjNDYwYmQwYzE5ZDE3YTE2NjQ3NzU1MDc3
NDI2ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Q
cm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3Rv
Y29sTWFuYWdlckNvY29hLm1tCkBAIC0yNDgsNiArMjQ4LDIwIEBAIHZvaWQgQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwg
Y29uc3QKICAgICB9KTsKIH0KIAordm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJlZGly
ZWN0KHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSkKK3sKKyAgICBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gcHJvdG9jb2wg
PSBwcm90b2NvbEZvcklEKGN1c3RvbVByb3RvY29sSUQpOworICAgIGlmICghcHJvdG9jb2wpCisg
ICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG5zTmV3UmVxdWVz
dCA9IG5ld1JlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkRvTm90VXBkYXRlSFRUUEJvZHkp
OworICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBuc1JlZGlyZWN0UmVzcG9uc2UgPSByZWRp
cmVjdFJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKTsKKworICAgIGRpc3BhdGNoT25SZXNvdXJjZUxv
YWRlclJ1bkxvb3AoXiB7CisgICAgICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2NvbDpw
cm90b2NvbC5nZXQoKSB3YXNSZWRpcmVjdGVkVG9SZXF1ZXN0Om5zTmV3UmVxdWVzdC5nZXQoKSBy
ZWRpcmVjdFJlc3BvbnNlOm5zUmVkaXJlY3RSZXNwb25zZS5nZXQoKV07CisgICAgfSk7Cit9CisK
IHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQpCiB7CiAgICAgUmV0YWluUHRyPFdLQ3VzdG9tUHJvdG9jb2w+IHByb3Rv
Y29sID0gcHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9D
dXN0b21Qcm90b2NvbE1hbmFnZXIuaAppbmRleCBmNGI5NjQ2YjYyOWFmNDRhYjcwNDI3YWFiM2Ri
MThmYzBjMDFlMTMwLi44Y2U5YzY0Y2I4OTBlNWJlN2I4NWM2NDFjNjJlZmJlNjI5OTZmZWFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCkBAIC01MSw2ICs1MSw3
IEBAIGNsYXNzIERhdGFSZWZlcmVuY2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJl
c291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC05NSw2ICs5Niw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZExvYWREYXRhKHVpbnQ2
NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQb2xpY3kpOwor
ICAgIHZvaWQgZGlkUmVkaXJlY3QodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
dWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCk7CiAKICAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQ
cm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIu
bWVzc2FnZXMuaW4KaW5kZXggMjM3NmQ5MjlkYmY0Y2M0MDdhYzI3M2ZiZGE3MDZlMTAxOThjODNh
ZC4uYWVjZmE1YjVkZTE3YjVmMDhlZTgxZDMwYjgwYzA0NWVmYWExMTI4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3Rv
Y29sTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
Niw2ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IEN1c3RvbVByb3RvY29sTWFuYWdlciB7CiAgICAgRGlk
RmFpbFdpdGhFcnJvcih1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yKQogICAgIERpZExvYWREYXRhKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQs
IElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRf
dCBjdXN0b21Qcm90b2NvbElELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCB1
aW50MzJfdCBjYWNoZVN0b3JhZ2VQb2xpY3kpCisgICAgRGlkUmVkaXJlY3QodWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRGaW5pc2hMb2Fk
aW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiAKICAgICBSZWdpc3RlclNjaGVtZShTdHJp
bmcgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDdkMGVmY2E0M2YzNzg3ZmQ5ZTdhNGRjN2Ew
OTIxNGY2MzE5NzVlZTguLmFjMDQ5NDhmN2Y5MTMxZWVhNWQxNzdhMTEyZWM4MTRhZjAxOTAzZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtMTA5LDYgKzEwOSwxNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCiAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
Kiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZWRp
cmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogeworICAgIC8v
IElmIGl0J3Mgbm90IGEgdHJ1ZSByZWRpcmVjdCB3ZSBjYW4gaWdub3JlIGl0IGhlcmUuCisgICAg
aWYgKHJlZGlyZWN0UmVzcG9uc2UgPT0gbmlsKQorICAgICAgICByZXR1cm4gcmVxdWVzdDsKKwor
ICAgIFJlc291cmNlUmVxdWVzdCBjb3JlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZVJl
c3BvbnNlIGNvcmVSZWRpcmVjdFJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOworICAgIF9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZFJlZGlyZWN0
KF9jdXN0b21Qcm90b2NvbElELCBjb3JlUmVxdWVzdCwgY29yZVJlZGlyZWN0UmVzcG9uc2UpLCAw
KTsKKworICAgIC8vIEFiYW5kb24gdGhlIGN1cnJlbnQgY29ubmVjdGlvbiwgYSBuZXcgcHJvdG9j
b2wgY29ubmVjdGlvbiBmb3IgInJlcXVlc3QiIHdpbGwgYmUgaW5pdGlhdGVkIGxhdGVyLgorICAg
IF9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS0+c3RvcExvYWRpbmcoX2N1c3RvbVByb3RvY29s
SUQpOworCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjODU5NDQ5YTNiNjUyZjQwMGI5ZTE0ODhjZTU5
NzgxMWU0NzA1NGEwLi43YWFiYjUyNDZmMGE3MTkzYTBlY2ViZjRjZGJkNzIwMTMwMjhkYWYyIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTQtMTAtMDkgIERhbmllbCBMYXphcmVua28gIDxkYW5pZWxvQG9wZXJhLmNv
bT4KKworICAgICAgICBUZXN0IGNhc2UgZm9yIGEgcmVkaXJlY3Qgd2l0aCBhIGN1c3RvbSBwcm90
b2NvbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NzMwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tOgor
ICAgICAgICAoK1tXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQcm90
b2NvbCB0YXJnZXRVUkxdKToKKyAgICAgICAgKC1bV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3Rf
UmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgc3RhcnRMb2FkaW5nXSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAxNC0wOS0zMCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6
ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGlyZHBhcnR5L3Vu
aXR0ZXN0MiBmcm9tIHdlYmtpdHB5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0KaW5kZXggYjdiM2Vk
OGJlMDEyNDQxMzkxYTgzZGE5ZGU2N2E2MjM3YmJkN2JiMy4uNTI3NDI3ZWQ1NGU0MTNkZDg3NDdm
MGFlOGQxNzAxNDBjMzdmZTkzMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbQpAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSmF2YVNjcmlwdFRl
c3QuaCIKICNpbXBvcnQgIlRlc3QuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
QEAgLTMxLDE1ICszMiw1MSBAQAogI2ltcG9ydCAiVGVzdFByb3RvY29sLmgiCiAjaW1wb3J0IDxX
ZWJLaXQvV2ViS2l0Mi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dLVmlld1ByaXZhdGUuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKIHN0YXRpYyBib29s
IHRlc3RGaW5pc2hlZCA9IGZhbHNlOwogCitAaW50ZXJmYWNlIFdlYktpdDJDdXN0b21Qcm90b2Nv
bHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIDogVGVzdFByb3RvY29sCitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQ
cm90b2NvbAorCisrIChOU1VSTCAqKXRhcmdldFVSTAoreworICAgIHJldHVybiBbTlNVUkwgVVJM
V2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAOi8vdGVzdCIsIFtUZXN0
UHJvdG9jb2wgc2NoZW1lXV1dOworfQorCistICh2b2lkKXN0YXJ0TG9hZGluZworeworICAgIGlm
ICghW3NlbGYucmVxdWVzdC5VUkwuaG9zdCBpc0VxdWFsVG9TdHJpbmc6QCJyZWRpcmVjdCJdKSB7
CisgICAgICAgIFtzdXBlciBzdGFydExvYWRpbmddOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtbc2VsZiBjbGFzc10gdGFyZ2V0VVJMXTsKKyAgICBS
ZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVzdFB0ciA9IGFkb3B0TlMoW3NlbGYu
cmVxdWVzdCBtdXRhYmxlQ29weV0pOworICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3Qg
PSByZXF1ZXN0UHRyLmdldCgpOworICAgIHJlcXVlc3QuVVJMID0gdGFyZ2V0VVJMOworCisgICAg
TlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0
V2l0aFVSTDp0YXJnZXRVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOjMwMgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRUUFZlcnNpb246QCJIVFRQLzEu
MCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVhZGVyRmllbGRzOkB7IEAiTG9jYXRpb24iIDogdGFyZ2V0VVJMLmFic29sdXRlU3RyaW5n
IH1dOworICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZVB0ciA9IGFkb3B0TlMo
cmVzcG9uc2UpOworCisgICAgW3NlbGYuY2xpZW50IFVSTFByb3RvY29sOnNlbGYgd2FzUmVkaXJl
Y3RlZFRvUmVxdWVzdDpyZXF1ZXN0IHJlZGlyZWN0UmVzcG9uc2U6cmVzcG9uc2VdOworfQorCitA
ZW5kCisKKwogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdlYktpdDJDdXN0b21Q
cm90b2NvbHNUZXN0LCBNYWluUmVzb3VyY2UpCiB7CisgICAgdGVzdEZpbmlzaGVkID0gZmFsc2U7
CiAgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpbVGVzdFByb3RvY29sIGNsYXNzXV07
CiAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1c3Rv
bVByb3RvY29sOltUZXN0UHJvdG9jb2wgc2NoZW1lXV07CiAKQEAgLTU0LDYgKzkxLDI5IEBAIFRF
U1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIE1haW5SZXNvdXJjZSkKICAgICBVdGlsOjpy
dW4oJnRlc3RGaW5pc2hlZCk7CiB9CiAKK1RFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3Qs
IFJlZGlyZWN0Q2hhbmdlc1VSTCkKK3sKKyAgICB0ZXN0RmluaXNoZWQgPSBmYWxzZTsKKyAgICBb
TlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9S
ZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBjbGFzc11dOworICAgIFtXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpbVGVzdFByb3RvY29sIHNj
aGVtZV1dOworCisgICAgUmV0YWluUHRyPFdLUHJvY2Vzc0dyb3VwPiBwcm9jZXNzR3JvdXAgPSBh
ZG9wdE5TKFtbV0tQcm9jZXNzR3JvdXAgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8V0tC
cm93c2luZ0NvbnRleHRHcm91cD4gYnJvd3NpbmdDb250ZXh0R3JvdXAgPSBhZG9wdE5TKFtbV0tC
cm93c2luZ0NvbnRleHRHcm91cCBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOkAiVGVzdElkZW50
aWZpZXIiXSk7CisgICAgUmV0YWluUHRyPFdLVmlldz4gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBwcm9jZXNz
R3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dzaW5nQ29udGV4dEdyb3VwOmJyb3dzaW5nQ29u
dGV4dEdyb3VwLmdldCgpXSk7CisKKyAgICB3a1ZpZXcuZ2V0KCkuYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW1Rlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoQmxvY2tUb1J1bk9uTG9hZDpeKFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqc2VuZGVyKQorICAgIHsKKyAgICAgICAgTlNTdHJpbmcgKnRhcmdldFVSTFN0cmluZyA9
IFtbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgdGFy
Z2V0VVJMXSBhYnNvbHV0ZVN0cmluZ107CisgICAgICAgIEVYUEVDVF9KU19FUSh3a1ZpZXcuZ2V0
KCkucGFnZVJlZiwgImxvY2F0aW9uLmhyZWYiLCBbdGFyZ2V0VVJMU3RyaW5nIFVURjhTdHJpbmdd
KTsKKyAgICAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2tWaWV3Lmdl
dCgpLmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVAOi8vcmVkaXJlY3QiLCBbVGVzdFByb3RvY29sIHNjaGVtZV1dXV1dOworCisgICAg
VXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIFtOU1VSTFByb3RvY29sIHVucmVnaXN0ZXJD
bGFzczpbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wg
Y2xhc3NdXTsKKyAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHVucmVnaXN0ZXJTY2hl
bWVGb3JDdXN0b21Qcm90b2NvbDpbVGVzdFByb3RvY29sIHNjaGVtZV1dOworfQorCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240670</attachid>
            <date>2014-10-30 06:22:00 -0700</date>
            <delta_ts>2014-10-31 03:26:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137302-20141030142207.patch</filename>
            <type>text/plain</type>
            <size>13961</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNmNiNmNkYzUzNDg0
MzUyZjY2MmI0YWRiODEzYjFhYmM0YWMzNi4uMjgyZGE1OGFmMmZkZTE5MmFkYjViZGE0NzMyZDY3
ZmU3OWNkOGU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTEwLTMwICBEYW5p
ZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgbG9jYXRpb24uaHJl
ZiBpcyBub3QgdXBkYXRlZCBvbiBhIHJlZGlyZWN0IHdpdGggYSBjdXN0b20gcHJvdG9jb2wKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IG5vbi1I
VFRQIG9yIGludmFsaWQgVVJMcyB0byBiZSBwYXNzZWQgdG8gZmluZERlZmF1bHRQcm90ZWN0aW9u
U3BhY2VGb3JVUkwuCisgICAgICAgIFRoaXMgY2FuIGhhcHBlbiBpbiB0ZXN0aW5nIHdpdGggYSBj
dXN0b20gc2NoZW1lIE5TVVJMUHJvdG9jb2wsCisgICAgICAgIG9yIGlmIGEgcmVkaXJlY3QgbGVh
ZHMgdG8gYW4gaW52YWxpZCBIVFRQIFVSTC4KKyAgICAgICAgUmV0dXJuIGFuIGVtcHR5IGNyZWRl
bnRpYWwgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhbiBBU1NF
UlQgcmVtb3ZhbC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3Jh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JV
UkwpOgorCiAyMDE0LTA5LTMwICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVk
dT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFcnJvclN0cmluZyBzaG91bGQgYmUgcGFzc2Vk
IGJ5IHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFjMTM0NDc1ZWE1NzNlMDYzMGNlODhhNGM4NTUz
ZjExM2MyM2VkNGEuLjk5MDlhNmViM2E0MWIwMDVhYjQ0M2M2N2IzNTg2NDAxZTk4NTVlMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNC0xMC0zMCAgRGFuaWVsIExhemFyZW5rbyAg
PGRhbmllbG9Ab3BlcmEuY29tPgorCisgICAgICAgIGxvY2F0aW9uLmhyZWYgaXMgbm90IHVwZGF0
ZWQgb24gYSByZWRpcmVjdCB3aXRoIGEgY3VzdG9tIHByb3RvY29sCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGVyZSdzIGEgY3VzdG9tIE5TVVJM
UHJvdG9jb2wsIHdoaWNoIGlzIHJlZGlyZWN0aW5nIHNvbWUgcGFnZSwKKyAgICAgICAgdGhlIHdl
YiB2aWV3IFVSTCB3YXMgbm90IHVwZGF0ZWQuCisgICAgICAgIFRoaXMgd2FzIGhhcHBlbmluZywg
YmVjYXVzZSBXS0N1c3RvbVByb3RvY29sTG9hZGVyIGRpZG4ndCBmb3J3YXJkCisgICAgICAgIGEg
cmVkaXJlY3QgZXZlbnQgYmFjayB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgIFRoaXMgYWRk
cyBhIG5ldyBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZFJlZGlyZWN0IG1lc3NhZ2UuCisgICAg
ICAgIFRoZSBtZXNzYWdlIGlzIHJlY2VpdmVkIGFmdGVyIGFuIEhUVFAgcmVkaXJlY3QsCisgICAg
ICAgIGFuZCBpcyBmb3J3YXJkZWQgdG8gdGhlIE5TVVJMUHJvdG9jb2wgY2xpZW50LAorICAgICAg
ICB3aGljaCBldmVudHVhbGx5IHByb3BhZ2F0ZXMgaXQgdG8gdGhlIFVSTCB1cGRhdGUuCisKKyAg
ICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdl
cjo6ZGlkUmVkaXJlY3QpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdl
clNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJl
ZGlyZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFj
L0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS0N1c3RvbVBy
b3RvY29sTG9hZGVyIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6
XSk6CisKIDIwMTQtMDktMzAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXSBSZW5hbWUgVEVTVF9USEVNRV9ESVIgbWFjcm8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAK
aW5kZXggNDEwMDVkMGFkZGFlMmMzYmY0ZTg5ZTIyMDRjZjYyYTg0NDAyZTBhYS4uMTBlMWJiZWY1
YTc2YjZjZjIzN2VjNjM4NjMwYWE2NjRkOTcwZDhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKQEAgLTEyNSwxMSAr
MTI1LDExIEBAIHZvaWQgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZShjb25zdCBQcm90ZWN0aW9u
U3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIAogc3RhdGljIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9u
U3BhY2VNYXA6Oml0ZXJhdG9yIGZpbmREZWZhdWx0UHJvdGVjdGlvblNwYWNlRm9yVVJMKGNvbnN0
IFVSTCYgdXJsKQogewotICAgIEFTU0VSVCh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsK
LSAgICBBU1NFUlQodXJsLmlzVmFsaWQoKSk7Ci0KICAgICBQYXRoVG9EZWZhdWx0UHJvdGVjdGlv
blNwYWNlTWFwJiBtYXAgPSBwYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwKCk7CiAKKyAg
ICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisg
ICAgICAgIHJldHVybiBtYXAuZW5kKCk7CisKICAgICAvLyBEb24ndCBzcGVuZCB0aW1lIGl0ZXJh
dGluZyB0aGUgcGF0aCBmb3Igb3JpZ2lucyB0aGF0IGRvbid0IGhhdmUgYW55IGNyZWRlbnRpYWxz
LgogICAgIGlmICghb3JpZ2luc1dpdGhDcmVkZW50aWFscygpLmNvbnRhaW5zKG9yaWdpblN0cmlu
Z0Zyb21VUkwodXJsKSkpCiAgICAgICAgIHJldHVybiBtYXAuZW5kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KaW5kZXgg
ZmZiNGQxZTgyZTRmYjI4MzkxOTQ3ZGM1NDIxZDgxYzRhNDE4NjQwOS4uODg1MGYzMTJjYzQ2MGJk
MGMxOWQxN2ExNjY0Nzc1NTA3NzQyNmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQpAQCAtMjQ4LDYgKzI0OCwyMCBA
QCB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0CiAgICAgfSk7CiB9CiAKK3ZvaWQgQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyOjpkaWRSZWRpcmVjdCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+IHByb3RvY29sID0gcHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKKyAg
ICBpZiAoIXByb3RvY29sKQorICAgICAgICByZXR1cm47CisKKyAgICBSZXRhaW5QdHI8TlNVUkxS
ZXF1ZXN0PiBuc05ld1JlcXVlc3QgPSBuZXdSZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpE
b05vdFVwZGF0ZUhUVFBCb2R5KTsKKyAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gbnNSZWRp
cmVjdFJlc3BvbnNlID0gcmVkaXJlY3RSZXNwb25zZS5uc1VSTFJlc3BvbnNlKCk7CisKKyAgICBk
aXNwYXRjaE9uUmVzb3VyY2VMb2FkZXJSdW5Mb29wKF4geworICAgICAgICBbW3Byb3RvY29sIGNs
aWVudF0gVVJMUHJvdG9jb2w6cHJvdG9jb2wuZ2V0KCkgd2FzUmVkaXJlY3RlZFRvUmVxdWVzdDpu
c05ld1JlcXVlc3QuZ2V0KCkgcmVkaXJlY3RSZXNwb25zZTpuc1JlZGlyZWN0UmVzcG9uc2UuZ2V0
KCldOworICAgIH0pOworfQorCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkRmluaXNo
TG9hZGluZyh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKQogewogICAgIFJldGFpblB0cjxXS0N1
c3RvbVByb3RvY29sPiBwcm90b2NvbCA9IHByb3RvY29sRm9ySUQoY3VzdG9tUHJvdG9jb2xJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKaW5kZXggZjRiOTY0NmI2
MjlhZjQ0YWI3MDQyN2FhYjNkYjE4ZmMwYzAxZTEzMC4uOGNlOWM2NGNiODkwZTViZTdiODVjNjQx
YzYyZWZiZTYyOTk2ZmVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFn
ZXIuaApAQCAtNTEsNiArNTEsNyBAQCBjbGFzcyBEYXRhUmVmZXJlbmNlOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtOTUs
NiArOTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbFdpdGhFcnJvcih1aW50NjRfdCBj
dXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgdm9p
ZCBkaWRMb2FkRGF0YSh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBjdXN0b21Q
cm90b2NvbElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgdWludDMyX3QgY2Fj
aGVTdG9yYWdlUG9saWN5KTsKKyAgICB2b2lkIGRpZFJlZGlyZWN0KHVpbnQ2NF90IGN1c3RvbVBy
b3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpOwogCiAgICAgQ2hp
bGRQcm9jZXNzKiBtX2NoaWxkUHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDIzNzZkOTI5ZGJmNGNjNDA3YWMy
NzNmYmRhNzA2ZTEwMTk4YzgzYWQuLmFlY2ZhNWI1ZGUxN2I1ZjA4ZWU4MWQzMGI4MGMwNDVlZmFh
MTEyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBtZXNzYWdlcyAtPiBDdXN0b21Qcm90b2Nv
bE1hbmFnZXIgewogICAgIERpZEZhaWxXaXRoRXJyb3IodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBEaWRMb2FkRGF0YSh1aW50NjRf
dCBjdXN0b21Qcm90b2NvbElELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBEaWRSZWNl
aXZlUmVzcG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSwgdWludDMyX3QgY2FjaGVTdG9yYWdlUG9saWN5KQorICAgIERpZFJl
ZGlyZWN0KHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCBuZXdSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2Up
CiAgICAgRGlkRmluaXNoTG9hZGluZyh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKQogCiAgICAg
UmVnaXN0ZXJTY2hlbWUoU3RyaW5nIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9z
b3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCmluZGV4IDZiNzFhYzA2ZjAyZTVlNGJh
YzY4ODQxMjc1ODY3ZjFiNGVhZjIwYjEuLmEzNzM0ZGVhNzI1NmQ0ZDVjYzVhZjA1NGFhMGY2Y2Fm
ZjcxMTNlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3Rv
Y29sTWFuYWdlclNvdXAuY3BwCkBAIC0xMDMsNiArMTAzLDExIEBAIHZvaWQgQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwg
Y29uc3QKICAgICBtX2ltcGwtPmRpZFJlY2VpdmVSZXNwb25zZShjdXN0b21Qcm90b2NvbElELCBy
ZXNwb25zZSk7CiB9CiAKK3ZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRSZWRpcmVjdCh1
aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG5ld1JlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBDdXN0b21Qcm90b2Nv
bE1hbmFnZXI6OmRpZEZpbmlzaExvYWRpbmcodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkKIHsK
ICAgICBtX2ltcGwtPmRpZEZpbmlzaExvYWRpbmcoY3VzdG9tUHJvdG9jb2xJRCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFj
L0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eU1hYy5tbQppbmRleCA3ZDBlZmNhNDNmMzc4N2ZkOWU3YTRkYzdhMDkyMTRmNjMxOTc1ZWU4Li5h
YzA0OTQ4ZjdmOTEzMWVlYTVkMTc3YTExMmVjODE0YWYwMTkwM2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMu
bW0KQEAgLTEwOSw2ICsxMDksMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogLSAoTlNV
UkxSZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxs
U2VuZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVkaXJlY3RSZXNwb25zZTooTlNV
UkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKIHsKKyAgICAvLyBJZiBpdCdzIG5vdCBhIHRy
dWUgcmVkaXJlY3Qgd2UgY2FuIGlnbm9yZSBpdCBoZXJlLgorICAgIGlmIChyZWRpcmVjdFJlc3Bv
bnNlID09IG5pbCkKKyAgICAgICAgcmV0dXJuIHJlcXVlc3Q7CisKKyAgICBSZXNvdXJjZVJlcXVl
c3QgY29yZVJlcXVlc3QocmVxdWVzdCk7CisgICAgUmVzb3VyY2VSZXNwb25zZSBjb3JlUmVkaXJl
Y3RSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBfY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpEaWRSZWRpcmVjdChfY3VzdG9tUHJvdG9jb2xJ
RCwgY29yZVJlcXVlc3QsIGNvcmVSZWRpcmVjdFJlc3BvbnNlKSwgMCk7CisKKyAgICAvLyBBYmFu
ZG9uIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24sIGEgbmV3IHByb3RvY29sIGNvbm5lY3Rpb24gZm9y
ICJyZXF1ZXN0IiB3aWxsIGJlIGluaXRpYXRlZCBsYXRlci4KKyAgICBfY3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHktPnN0b3BMb2FkaW5nKF9jdXN0b21Qcm90b2NvbElEKTsKKwogICAgIHJldHVy
biByZXF1ZXN0OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYzg1OTQ0OWEzYjY1MmY0MDBiOWUxNDg4Y2U1OTc4MTFlNDcwNTRhMC4uZTg4
MTExYzk0NThkMzkzODUwMzBlZTM1ZTFiNmZlN2Y2ZGUyZDBiNCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTEw
LTMwICBEYW5pZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgbG9j
YXRpb24uaHJlZiBpcyBub3QgdXBkYXRlZCBvbiBhIHJlZGlyZWN0IHdpdGggYSBjdXN0b20gcHJv
dG9jb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NzMwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3QgY2FzZSBmb3IgYSByZWRpcmVjdCB3aXRoIGEgY3VzdG9tIHByb3RvY29sOgorICAgICAgICAi
V2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QuUmVkaXJlY3RDaGFuZ2VzVVJMIgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1t
OgorICAgICAgICAoK1tXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQ
cm90b2NvbCB0YXJnZXRVUkxdKToKKyAgICAgICAgKC1bV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rl
c3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wgc3RhcnRMb2FkaW5nXSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNC0wOS0zMCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51
LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGlyZHBhcnR5
L3VuaXR0ZXN0MiBmcm9tIHdlYmtpdHB5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0KaW5kZXggYjdi
M2VkOGJlMDEyNDQxMzkxYTgzZGE5ZGU2N2E2MjM3YmJkN2JiMy4uNTI3NDI3ZWQ1NGU0MTNkZDg3
NDdmMGFlOGQxNzAxNDBjMzdmZTkzMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbQpAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSmF2YVNjcmlw
dFRlc3QuaCIKICNpbXBvcnQgIlRlc3QuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKQEAgLTMxLDE1ICszMiw1MSBAQAogI2ltcG9ydCAiVGVzdFByb3RvY29sLmgiCiAjaW1wb3J0
IDxXZWJLaXQvV2ViS2l0Mi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKIHN0YXRpYyBi
b29sIHRlc3RGaW5pc2hlZCA9IGZhbHNlOwogCitAaW50ZXJmYWNlIFdlYktpdDJDdXN0b21Qcm90
b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIDogVGVzdFByb3RvY29sCitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rl
c3RQcm90b2NvbAorCisrIChOU1VSTCAqKXRhcmdldFVSTAoreworICAgIHJldHVybiBbTlNVUkwg
VVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAOi8vdGVzdCIsIFtU
ZXN0UHJvdG9jb2wgc2NoZW1lXV1dOworfQorCistICh2b2lkKXN0YXJ0TG9hZGluZworeworICAg
IGlmICghW3NlbGYucmVxdWVzdC5VUkwuaG9zdCBpc0VxdWFsVG9TdHJpbmc6QCJyZWRpcmVjdCJd
KSB7CisgICAgICAgIFtzdXBlciBzdGFydExvYWRpbmddOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtbc2VsZiBjbGFzc10gdGFyZ2V0VVJMXTsKKyAg
ICBSZXRhaW5QdHI8TlNNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVzdFB0ciA9IGFkb3B0TlMoW3Nl
bGYucmVxdWVzdCBtdXRhYmxlQ29weV0pOworICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVl
c3QgPSByZXF1ZXN0UHRyLmdldCgpOworICAgIHJlcXVlc3QuVVJMID0gdGFyZ2V0VVJMOworCisg
ICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBp
bml0V2l0aFVSTDp0YXJnZXRVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOjMwMgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRUUFZlcnNpb246QCJIVFRQ
LzEuMCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVhZGVyRmllbGRzOkB7IEAiTG9jYXRpb24iIDogdGFyZ2V0VVJMLmFic29sdXRlU3Ry
aW5nIH1dOworICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZVB0ciA9IGFkb3B0
TlMocmVzcG9uc2UpOworCisgICAgW3NlbGYuY2xpZW50IFVSTFByb3RvY29sOnNlbGYgd2FzUmVk
aXJlY3RlZFRvUmVxdWVzdDpyZXF1ZXN0IHJlZGlyZWN0UmVzcG9uc2U6cmVzcG9uc2VdOworfQor
CitAZW5kCisKKwogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdlYktpdDJDdXN0
b21Qcm90b2NvbHNUZXN0LCBNYWluUmVzb3VyY2UpCiB7CisgICAgdGVzdEZpbmlzaGVkID0gZmFs
c2U7CiAgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpbVGVzdFByb3RvY29sIGNsYXNz
XV07CiAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1
c3RvbVByb3RvY29sOltUZXN0UHJvdG9jb2wgc2NoZW1lXV07CiAKQEAgLTU0LDYgKzkxLDI5IEBA
IFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIE1haW5SZXNvdXJjZSkKICAgICBVdGls
OjpydW4oJnRlc3RGaW5pc2hlZCk7CiB9CiAKK1RFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rl
c3QsIFJlZGlyZWN0Q2hhbmdlc1VSTCkKK3sKKyAgICB0ZXN0RmluaXNoZWQgPSBmYWxzZTsKKyAg
ICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVz
dF9SZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBjbGFzc11dOworICAgIFtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpbVGVzdFByb3RvY29s
IHNjaGVtZV1dOworCisgICAgUmV0YWluUHRyPFdLUHJvY2Vzc0dyb3VwPiBwcm9jZXNzR3JvdXAg
PSBhZG9wdE5TKFtbV0tQcm9jZXNzR3JvdXAgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8
V0tCcm93c2luZ0NvbnRleHRHcm91cD4gYnJvd3NpbmdDb250ZXh0R3JvdXAgPSBhZG9wdE5TKFtb
V0tCcm93c2luZ0NvbnRleHRHcm91cCBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOkAiVGVzdElk
ZW50aWZpZXIiXSk7CisgICAgUmV0YWluUHRyPFdLVmlldz4gd2tWaWV3ID0gYWRvcHROUyhbW1dL
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBwcm9j
ZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dzaW5nQ29udGV4dEdyb3VwOmJyb3dzaW5n
Q29udGV4dEdyb3VwLmdldCgpXSk7CisKKyAgICB3a1ZpZXcuZ2V0KCkuYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW1Rlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoQmxvY2tUb1J1bk9uTG9hZDpeKFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqc2VuZGVyKQorICAgIHsKKyAgICAgICAgTlNTdHJpbmcgKnRhcmdldFVSTFN0cmlu
ZyA9IFtbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wg
dGFyZ2V0VVJMXSBhYnNvbHV0ZVN0cmluZ107CisgICAgICAgIEVYUEVDVF9KU19FUSh3a1ZpZXcu
Z2V0KCkucGFnZVJlZiwgImxvY2F0aW9uLmhyZWYiLCBbdGFyZ2V0VVJMU3RyaW5nIFVURjhTdHJp
bmddKTsKKyAgICAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2tWaWV3
LmdldCgpLmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIiVAOi8vcmVkaXJlY3QiLCBbVGVzdFByb3RvY29sIHNjaGVtZV1dXV1dOworCisg
ICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIFtOU1VSTFByb3RvY29sIHVucmVnaXN0
ZXJDbGFzczpbV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9j
b2wgY2xhc3NdXTsKKyAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHVucmVnaXN0ZXJT
Y2hlbWVGb3JDdXN0b21Qcm90b2NvbDpbVGVzdFByb3RvY29sIHNjaGVtZV1dOworfQorCiB9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240730</attachid>
            <date>2014-10-31 03:26:30 -0700</date>
            <delta_ts>2016-09-17 07:03:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137302-20141031112638.patch</filename>
            <type>text/plain</type>
            <size>14212</size>
            <attacher name="Daniel">danielo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyNmNiNmNkYzUzNDg0
MzUyZjY2MmI0YWRiODEzYjFhYmM0YWMzNi4uNjM0NDQ2ZTcwN2E3NTJlMDFjYzY2ZDgyMzg2NWFm
OGFjNGZkN2NmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTEwLTMwICBEYW5p
ZWwgTGF6YXJlbmtvICA8ZGFuaWVsb0BvcGVyYS5jb20+CisKKyAgICAgICAgbG9jYXRpb24uaHJl
ZiBpcyBub3QgdXBkYXRlZCBvbiBhIHJlZGlyZWN0IHdpdGggYSBjdXN0b20gcHJvdG9jb2wKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IG5vbi1I
VFRQIG9yIGludmFsaWQgVVJMcyB0byBiZSBwYXNzZWQgdG8gZmluZERlZmF1bHRQcm90ZWN0aW9u
U3BhY2VGb3JVUkwuCisgICAgICAgIFRoaXMgY2FuIGhhcHBlbiBpbiB0ZXN0aW5nIHdpdGggYSBj
dXN0b20gc2NoZW1lIE5TVVJMUHJvdG9jb2wsCisgICAgICAgIG9yIGlmIGEgcmVkaXJlY3QgbGVh
ZHMgdG8gYW4gaW52YWxpZCBIVFRQIFVSTC4KKyAgICAgICAgUmV0dXJuIGFuIGVtcHR5IGNyZWRl
bnRpYWwgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIEFmZmVjdGVkIHRlc3QgY2FzZSBpbiBUb29s
cy9UZXN0V2ViS2l0QVBJIHRoYXQgdXNlcyAidGVzdDovLyIgc2NoZW1lOgorICAgICAgICAiV2Vi
S2l0MkN1c3RvbVByb3RvY29sc1Rlc3QuUmVkaXJlY3RDaGFuZ2VzVVJMIi4KKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JVUkwpOgorCiAyMDE0LTA5LTMwICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBFcnJvclN0cmluZyBzaG91bGQgYmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDFjMTM0NDc1ZWE1NzNlMDYzMGNlODhhNGM4NTUzZjExM2MyM2VkNGEuLjQzZjUzMmFhYWVk
NmVmMzc1ZjQwNTNjM2YzOTcxNWJiNDgzNTBiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxNC0xMC0zMCAgRGFuaWVsIExhemFyZW5rbyAgPGRhbmllbG9Ab3BlcmEuY29tPgorCisg
ICAgICAgIGxvY2F0aW9uLmhyZWYgaXMgbm90IHVwZGF0ZWQgb24gYSByZWRpcmVjdCB3aXRoIGEg
Y3VzdG9tIHByb3RvY29sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzczMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJZiB0aGVyZSdzIGEgY3VzdG9tIE5TVVJMUHJvdG9jb2wsIHdoaWNoIGlzIHJlZGly
ZWN0aW5nIHNvbWUgcGFnZSwKKyAgICAgICAgdGhlIHdlYiB2aWV3IFVSTCB3YXMgbm90IHVwZGF0
ZWQuCisgICAgICAgIFRoaXMgd2FzIGhhcHBlbmluZyBiZWNhdXNlIFdLQ3VzdG9tUHJvdG9jb2xM
b2FkZXIgZGlkbid0IGZvcndhcmQKKyAgICAgICAgYSByZWRpcmVjdCBldmVudCBiYWNrIHRvIHRo
ZSB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgVGhpcyBhZGRzIGEgbmV3IEN1c3RvbVByb3RvY29sTWFu
YWdlcjo6RGlkUmVkaXJlY3QgbWVzc2FnZS4KKyAgICAgICAgVGhlIG1lc3NhZ2UgaXMgcmVjZWl2
ZWQgYWZ0ZXIgYW4gSFRUUCByZWRpcmVjdCwKKyAgICAgICAgYW5kIGlzIGZvcndhcmRlZCB0byB0
aGUgTlNVUkxQcm90b2NvbCBjbGllbnQsCisgICAgICAgIHdoaWNoIGV2ZW50dWFsbHkgcHJvcGFn
YXRlcyBpdCB0byB0aGUgVVJMIHVwZGF0ZS4KKworICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRSZWRpcmVjdCk6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5o
OgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2Nv
bE1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkUmVkaXJlY3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNYWMubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgY29ubmVjdGlvbjp3
aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKwogMjAxNC0wOS0zMCAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbmFt
ZSBURVNUX1RIRU1FX0RJUiBtYWNybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCA0MTAwNWQwYWRkYWUyYzNiZjRl
ODllMjIwNGNmNjJhODQ0MDJlMGFhLi4xMGUxYmJlZjVhNzZiNmNmMjM3ZWM2Mzg2MzBhYTY2NGQ5
NzBkOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRl
bnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Ny
ZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtMTI1LDExICsxMjUsMTEgQEAgdm9pZCBDcmVkZW50aWFs
U3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQog
CiBzdGF0aWMgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDo6aXRlcmF0b3IgZmluZERl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgQVNTRVJU
KHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwotICAgIEFTU0VSVCh1cmwuaXNWYWxpZCgp
KTsKLQogICAgIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIG1hcCA9IHBhdGhUb0Rl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAoKTsKIAorICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAh
dXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuIG1hcC5lbmQoKTsK
KwogICAgIC8vIERvbid0IHNwZW5kIHRpbWUgaXRlcmF0aW5nIHRoZSBwYXRoIGZvciBvcmlnaW5z
IHRoYXQgZG9uJ3QgaGF2ZSBhbnkgY3JlZGVudGlhbHMuCiAgICAgaWYgKCFvcmlnaW5zV2l0aENy
ZWRlbnRpYWxzKCkuY29udGFpbnMob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKSkKICAgICAgICAg
cmV0dXJuIG1hcC5lbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0
b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQppbmRleCBmZmI0ZDFlODJlNGZiMjgzOTE5NDdkYzU0
MjFkODFjNGE0MTg2NDA5Li44ODUwZjMxMmNjNDYwYmQwYzE5ZDE3YTE2NjQ3NzU1MDc3NDI2ZDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFu
YWdlckNvY29hLm1tCkBAIC0yNDgsNiArMjQ4LDIwIEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QK
ICAgICB9KTsKIH0KIAordm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJlZGlyZWN0KHVp
bnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSkKK3sKKyAgICBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gcHJvdG9jb2wgPSBwcm90
b2NvbEZvcklEKGN1c3RvbVByb3RvY29sSUQpOworICAgIGlmICghcHJvdG9jb2wpCisgICAgICAg
IHJldHVybjsKKworICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG5zTmV3UmVxdWVzdCA9IG5l
d1JlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkRvTm90VXBkYXRlSFRUUEJvZHkpOworICAg
IFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBuc1JlZGlyZWN0UmVzcG9uc2UgPSByZWRpcmVjdFJl
c3BvbnNlLm5zVVJMUmVzcG9uc2UoKTsKKworICAgIGRpc3BhdGNoT25SZXNvdXJjZUxvYWRlclJ1
bkxvb3AoXiB7CisgICAgICAgIFtbcHJvdG9jb2wgY2xpZW50XSBVUkxQcm90b2NvbDpwcm90b2Nv
bC5nZXQoKSB3YXNSZWRpcmVjdGVkVG9SZXF1ZXN0Om5zTmV3UmVxdWVzdC5nZXQoKSByZWRpcmVj
dFJlc3BvbnNlOm5zUmVkaXJlY3RSZXNwb25zZS5nZXQoKV07CisgICAgfSk7Cit9CisKIHZvaWQg
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpkaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1c3RvbVBy
b3RvY29sSUQpCiB7CiAgICAgUmV0YWluUHRyPFdLQ3VzdG9tUHJvdG9jb2w+IHByb3RvY29sID0g
cHJvdG9jb2xGb3JJRChjdXN0b21Qcm90b2NvbElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Q
cm90b2NvbE1hbmFnZXIuaAppbmRleCBmNGI5NjQ2YjYyOWFmNDRhYjcwNDI3YWFiM2RiMThmYzBj
MDFlMTMwLi44Y2U5YzY0Y2I4OTBlNWJlN2I4NWM2NDFjNjJlZmJlNjI5OTZmZWFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCkBAIC01MSw2ICs1MSw3IEBAIGNs
YXNzIERhdGFSZWZlcmVuY2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNl
RXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC05NSw2ICs5Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZExvYWREYXRhKHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCB1aW50MzJfdCBjYWNoZVN0b3JhZ2VQb2xpY3kpOworICAgIHZv
aWQgZGlkUmVkaXJlY3QodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodWludDY0
X3QgY3VzdG9tUHJvdG9jb2xJRCk7CiAKICAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggMjM3NmQ5MjlkYmY0Y2M0MDdhYzI3M2ZiZGE3MDZlMTAxOThjODNhZC4uYWVj
ZmE1YjVkZTE3YjVmMDhlZTgxZDMwYjgwYzA0NWVmYWExMTI4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsy
Niw3IEBAIG1lc3NhZ2VzIC0+IEN1c3RvbVByb3RvY29sTWFuYWdlciB7CiAgICAgRGlkRmFpbFdp
dGhFcnJvcih1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yKQogICAgIERpZExvYWREYXRhKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIElQQzo6
RGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBjdXN0
b21Qcm90b2NvbElELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCB1aW50MzJf
dCBjYWNoZVN0b3JhZ2VQb2xpY3kpCisgICAgRGlkUmVkaXJlY3QodWludDY0X3QgY3VzdG9tUHJv
dG9jb2xJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRGaW5pc2hMb2FkaW5nKHVp
bnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiAKICAgICBSZWdpc3RlclNjaGVtZShTdHJpbmcgbmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
U291cC5jcHAKaW5kZXggNmI3MWFjMDZmMDJlNWU0YmFjNjg4NDEyNzU4NjdmMWI0ZWFmMjBiMS4u
YTM3MzRkZWE3MjU2ZDRkNWNjNWFmMDU0YWEwZjZjYWZmNzExM2U3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAKQEAgLTEw
Myw2ICsxMDMsMTEgQEAgdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJlY2VpdmVSZXNw
b25zZSh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdAogICAgIG1faW1wbC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGN1c3RvbVByb3RvY29sSUQsIHJlc3BvbnNlKTsKIH0KIAordm9pZCBDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OmRpZFJlZGlyZWN0KHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6ZGlkRmluaXNoTG9hZGlu
Zyh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKQogewogICAgIG1faW1wbC0+ZGlkRmluaXNoTG9h
ZGluZyhjdXN0b21Qcm90b2NvbElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDdkMGVmY2E0M2Yz
Nzg3ZmQ5ZTdhNGRjN2EwOTIxNGY2MzE5NzVlZTguLjVhMzU4ZTYxMTQ1MjVlNzYwMWY5ZWUzYTc2
YmI4YjYzYTdlNGM1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21h
Yy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtMTA5LDYgKzEwOSwxOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0
ICopcmVxdWVzdCByZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNw
b25zZQogeworICAgIC8vIElmIGl0J3Mgbm90IGEgdHJ1ZSByZWRpcmVjdCB3ZSBjYW4gaWdub3Jl
IGl0IGhlcmUuCisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlKQorICAgICAgICByZXR1cm4gcmVx
dWVzdDsKKworICAgIFJlc291cmNlUmVxdWVzdCBjb3JlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBS
ZXNvdXJjZVJlc3BvbnNlIGNvcmVSZWRpcmVjdFJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOwor
ICAgIF9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRp
ZFJlZGlyZWN0KF9jdXN0b21Qcm90b2NvbElELCBjb3JlUmVxdWVzdCwgY29yZVJlZGlyZWN0UmVz
cG9uc2UpLCAwKTsKKworICAgIC8vIEFiYW5kb24gdGhlIGN1cnJlbnQgY29ubmVjdGlvbiwgYSBu
ZXcgcHJvdG9jb2wgY29ubmVjdGlvbiBmb3IgInJlcXVlc3QiIHdpbGwgYmUgaW5pdGlhdGVkIGxh
dGVyLgorICAgIC8vIFRoaXMgY2xlYW51cCBpcyBkb25lIGJlY2F1c2UgdGhlIGN1cnJlbnQgV0tD
dXN0b21Qcm90b2NvbExvYWRlciBpbnN0YW5jZSBpcyBub3QgbmVlZGVkIGFueW1vcmUsCisgICAg
Ly8gYXMgdGhlIGN1c3RvbSBwcm90b2NvbCBpcyBub3QgcmV1c2VkIGFmdGVyIHJlZGlyZWN0aW9u
LgorICAgIF9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS0+c3RvcExvYWRpbmcoX2N1c3RvbVBy
b3RvY29sSUQpOworCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjODU5NDQ5YTNiNjUyZjQwMGI5ZTE0
ODhjZTU5NzgxMWU0NzA1NGEwLi5lODgxMTFjOTQ1OGQzOTM4NTAzMGVlMzVlMWI2ZmU3ZjZkZTJk
MGI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTQtMTAtMzAgIERhbmllbCBMYXphcmVua28gIDxkYW5pZWxvQG9w
ZXJhLmNvbT4KKworICAgICAgICBsb2NhdGlvbi5ocmVmIGlzIG5vdCB1cGRhdGVkIG9uIGEgcmVk
aXJlY3Qgd2l0aCBhIGN1c3RvbSBwcm90b2NvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlIGZvciBhIHJlZGlyZWN0IHdpdGggYSBjdXN0
b20gcHJvdG9jb2w6CisgICAgICAgICJXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdC5SZWRpcmVj
dENoYW5nZXNVUkwiCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpD
L0N1c3RvbVByb3RvY29sc1Rlc3QubW06CisgICAgICAgICgrW1dlYktpdDJDdXN0b21Qcm90b2Nv
bHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIHRhcmdldFVSTF0pOgorICAgICAgICAoLVtX
ZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9SZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBzdGFydExv
YWRpbmddKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE0LTA5LTMwICBF
dmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHRoaXJkcGFydHkvdW5pdHRlc3QyIGZyb20gd2Via2l0cHkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJvdG9jb2xz
VGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mk9iakMvQ3VzdG9tUHJv
dG9jb2xzVGVzdC5tbQppbmRleCBiN2IzZWQ4YmUwMTI0NDEzOTFhODNkYTlkZTY3YTYyMzdiYmQ3
YmIzLi41Mjc0MjdlZDU0ZTQxM2RkODc0N2YwYWU4ZDE3MDE0MGMzN2ZlOTMyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpDL0N1c3RvbVByb3RvY29sc1Rl
c3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Q
cm90b2NvbHNUZXN0Lm1tCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJKYXZhU2NyaXB0VGVzdC5oIgogI2ltcG9ydCAiVGVzdC5oIgogCiAjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgpAQCAtMzEsMTUgKzMyLDUxIEBACiAjaW1wb3J0ICJU
ZXN0UHJvdG9jb2wuaCIKICNpbXBvcnQgPFdlYktpdC9XZWJLaXQyLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIAogc3RhdGljIGJvb2wgdGVzdEZpbmlzaGVkID0gZmFsc2U7CiAKK0BpbnRl
cmZhY2UgV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3RfUmVkaXJlY3RpbmdUZXN0UHJvdG9jb2wg
OiBUZXN0UHJvdG9jb2wKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktpdDJDdXN0b21Qcm90
b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sCisKKysgKE5TVVJMICopdGFyZ2V0VVJM
Cit7CisgICAgcmV0dXJuIFtOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUA6Ly90ZXN0IiwgW1Rlc3RQcm90b2NvbCBzY2hlbWVdXV07Cit9CisKKy0gKHZv
aWQpc3RhcnRMb2FkaW5nCit7CisgICAgaWYgKCFbc2VsZi5yZXF1ZXN0LlVSTC5ob3N0IGlzRXF1
YWxUb1N0cmluZzpAInJlZGlyZWN0Il0pIHsKKyAgICAgICAgW3N1cGVyIHN0YXJ0TG9hZGluZ107
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW1tzZWxm
IGNsYXNzXSB0YXJnZXRVUkxdOworICAgIFJldGFpblB0cjxOU011dGFibGVVUkxSZXF1ZXN0PiBy
ZXF1ZXN0UHRyID0gYWRvcHROUyhbc2VsZi5yZXF1ZXN0IG11dGFibGVDb3B5XSk7CisgICAgTlNN
dXRhYmxlVVJMUmVxdWVzdCAqcmVxdWVzdCA9IHJlcXVlc3RQdHIuZ2V0KCk7CisgICAgcmVxdWVz
dC5VUkwgPSB0YXJnZXRVUkw7CisKKyAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IFtbTlNI
VFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhcmdldFVSTAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6
MzAyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBIVFRQVmVyc2lvbjpAIkhUVFAvMS4wIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZHM6QHsgQCJMb2NhdGlvbiIg
OiB0YXJnZXRVUkwuYWJzb2x1dGVTdHJpbmcgfV07CisgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9u
c2U+IHJlc3BvbnNlUHRyID0gYWRvcHROUyhyZXNwb25zZSk7CisKKyAgICBbc2VsZi5jbGllbnQg
VVJMUHJvdG9jb2w6c2VsZiB3YXNSZWRpcmVjdGVkVG9SZXF1ZXN0OnJlcXVlc3QgcmVkaXJlY3RS
ZXNwb25zZTpyZXNwb25zZV07Cit9CisKK0BlbmQKKworCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAKIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIE1haW5SZXNvdXJjZSkKIHsK
KyAgICB0ZXN0RmluaXNoZWQgPSBmYWxzZTsKICAgICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNs
YXNzOltUZXN0UHJvdG9jb2wgY2xhc3NdXTsKICAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyIHJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6W1Rlc3RQcm90b2NvbCBzY2hlbWVd
XTsKIApAQCAtNTQsNiArOTEsMjkgQEAgVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwg
TWFpblJlc291cmNlKQogICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKIH0KIAorVEVTVChX
ZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwgUmVkaXJlY3RDaGFuZ2VzVVJMKQoreworICAgIHRl
c3RGaW5pc2hlZCA9IGZhbHNlOworICAgIFtOU1VSTFByb3RvY29sIHJlZ2lzdGVyQ2xhc3M6W1dl
YktpdDJDdXN0b21Qcm90b2NvbHNUZXN0X1JlZGlyZWN0aW5nVGVzdFByb3RvY29sIGNsYXNzXV07
CisgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1c3Rv
bVByb3RvY29sOltUZXN0UHJvdG9jb2wgc2NoZW1lXV07CisKKyAgICBSZXRhaW5QdHI8V0tQcm9j
ZXNzR3JvdXA+IHByb2Nlc3NHcm91cCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NHcm91cCBhbGxvY10g
aW5pdF0pOworICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dEdyb3VwPiBicm93c2luZ0Nv
bnRleHRHcm91cCA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIGFsbG9jXSBpbml0
V2l0aElkZW50aWZpZXI6QCJUZXN0SWRlbnRpZmllciJdKTsKKyAgICBSZXRhaW5QdHI8V0tWaWV3
PiB3a1ZpZXcgPSBhZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIHByb2Nlc3NHcm91cDpwcm9jZXNzR3JvdXAuZ2V0KCkgYnJvd3Np
bmdDb250ZXh0R3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCldKTsKKworICAgIHdrVmll
dy5nZXQoKS5icm93c2luZ0NvbnRleHRDb250cm9sbGVyLmxvYWREZWxlZ2F0ZSA9IFtbVGVzdEJy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhCbG9ja1RvUnVuT25Mb2Fk
Ol4oV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpzZW5kZXIpCisgICAgeworICAgICAgICBO
U1N0cmluZyAqdGFyZ2V0VVJMU3RyaW5nID0gW1tXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdF9S
ZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCB0YXJnZXRVUkxdIGFic29sdXRlU3RyaW5nXTsKKyAgICAg
ICAgRVhQRUNUX0pTX0VRKHdrVmlldy5nZXQoKS5wYWdlUmVmLCAibG9jYXRpb24uaHJlZiIsIFt0
YXJnZXRVUkxTdHJpbmcgVVRGOFN0cmluZ10pOworICAgICAgICB0ZXN0RmluaXNoZWQgPSB0cnVl
OworICAgIH1dOworICAgIFt3a1ZpZXcuZ2V0KCkuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA6Ly9yZWRpcmVjdCIsIFtUZXN0UHJv
dG9jb2wgc2NoZW1lXV1dXV07CisKKyAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAg
W05TVVJMUHJvdG9jb2wgdW5yZWdpc3RlckNsYXNzOltXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVz
dF9SZWRpcmVjdGluZ1Rlc3RQcm90b2NvbCBjbGFzc11dOworICAgIFtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgdW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOltUZXN0UHJvdG9j
b2wgc2NoZW1lXV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECg==
</data>

          </attachment>
      

    </bug>

</bugzilla>