<?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>185041</bug_id>
          
          <creation_ts>2018-04-26 13:01:08 -0700</creation_ts>
          <short_desc>[WKHTTPCookieStore getAllCookies] returns inconsistent creation time</short_desc>
          <delta_ts>2018-05-25 11:35:20 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>185434</dependson>
    
    <dependson>185435</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418197</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-04-26 13:01:08 -0700</bug_when>
    <thetext>Calling getAllCookies multiple times would return different creation time/expiration time for the same cookie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418199</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-04-26 13:02:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/34684214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419228</commentid>
    <comment_count>2</comment_count>
      <attachid>339171</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-04-30 20:01:30 -0700</bug_when>
    <thetext>Created attachment 339171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419324</commentid>
    <comment_count>3</comment_count>
      <attachid>339171</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-01 09:30:30 -0700</bug_when>
    <thetext>Comment on attachment 339171
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:335
&gt; +    NSMutableDictionary *cookieProperties = [[NSMutableDictionary alloc] init];

Doesn&apos;t this leak? Should probably use RetainPtr and adoptNS().

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:357
&gt; +    [cookies release];

Should probably use RetainPtr instead of manual release.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:359
&gt; +    sleep(5_s);

Do we need to sleep for that long? We do not like slow tests in general.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:367
&gt; +    ASSERT_EQ(cookies.count, 1u);

I believe this is reversed:
ASSERT_EQ(1U, cookies.count);

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:371
&gt; +    [cookies release];

Should probably use RetainPtr instead of manual release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419327</commentid>
    <comment_count>4</comment_count>
      <attachid>339171</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-01 09:44:40 -0700</bug_when>
    <thetext>Comment on attachment 339171
Patch

r- I agree with Chris. Let&apos;s discuss Cocoa retain/release in more detail when we have a chance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419368</commentid>
    <comment_count>5</comment_count>
      <attachid>339212</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-01 12:02:53 -0700</bug_when>
    <thetext>Created attachment 339212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419442</commentid>
    <comment_count>6</comment_count>
      <attachid>339212</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-01 15:21:09 -0700</bug_when>
    <thetext>Comment on attachment 339212
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:348
&gt; +        *cookiesPtr = [nsCookies retain];

RetainPtr is a smart pointer &lt;https://en.wikipedia.org/wiki/Smart_pointer&gt; that automatically retains and releases the pointer it holds. The act of assignment is an implicit retain of the new value and release of the old value, so please remove this explicit retain, which is an extra retain, and therefore a memory leak.

Also, you can just lambda capture &amp;cookies and use &quot;cookies&quot; by name, rather than capturing cookiesPtr = &amp;cookies. I think that&apos;s simpler.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:356
&gt; +    sleep(1_s);

What is the resolution of creation time? If it&apos;s milliseconds, then you can reduce this sleep to something like 10ms.

It&apos;s good to make tests as fast as possible because we have tens of thousands of them.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:359
&gt; +        *cookiesPtr = [nsCookies retain];

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419463</commentid>
    <comment_count>7</comment_count>
      <attachid>339240</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-01 16:29:32 -0700</bug_when>
    <thetext>Created attachment 339240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419466</commentid>
    <comment_count>8</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-01 16:37:29 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #6)
&gt; Comment on attachment 339212 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339212&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:348
&gt; &gt; +        *cookiesPtr = [nsCookies retain];
&gt; 
&gt; RetainPtr is a smart pointer &lt;https://en.wikipedia.org/wiki/Smart_pointer&gt;
&gt; that automatically retains and releases the pointer it holds. The act of
&gt; assignment is an implicit retain of the new value and release of the old
&gt; value, so please remove this explicit retain, which is an extra retain, and
&gt; therefore a memory leak.
&gt; 
&gt; Also, you can just lambda capture &amp;cookies and use &quot;cookies&quot; by name, rather
&gt; than capturing cookiesPtr = &amp;cookies. I think that&apos;s simpler.
&gt; 
Done. Lambda capture seems to pass non-static params by value. But I realized we don&apos;t need a cookies variable here...

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:356
&gt; &gt; +    sleep(1_s);
&gt; 
&gt; What is the resolution of creation time? If it&apos;s milliseconds, then you can
&gt; reduce this sleep to something like 10ms.
&gt; 
&gt; It&apos;s good to make tests as fast as possible because we have tens of
&gt; thousands of them.
&gt; 
It&apos;s measured in seconds.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:359
&gt; &gt; +        *cookiesPtr = [nsCookies retain];
&gt; 
&gt; Ditto.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421602</commentid>
    <comment_count>9</comment_count>
      <attachid>339240</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-07 19:49:25 -0700</bug_when>
    <thetext>Comment on attachment 339240
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:351
&gt; +    RetainPtr&lt;NSNumber&gt; creationTime = nil;
&gt; +    [globalCookieStore getAllCookies:[creationTimePtr = &amp;creationTime](NSArray&lt;NSHTTPCookie *&gt; *cookies) {
&gt; +        ASSERT_EQ(1u, cookies.count);
&gt; +        *creationTimePtr = [cookies objectAtIndex:0].properties[@&quot;Created&quot;];
&gt; +        gotFlag = true;
&gt; +    }];

I think it should work to do &quot;[globalCookieStore getAllCookies:[&amp;](...) { ... creationTime = ... }&quot;. Then you capture the creationTime RetainPtr by reference, and assign to it.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:359
&gt; +        RetainPtr&lt;NSNumber&gt; creationTime2 = [cookies objectAtIndex:0].properties[@&quot;Created&quot;];

You can use NSNumber * here instead of RetainPtr&lt;NSNumber&gt; because objectAtIndex returns an autoreleased value, which remains live within this scope. 

&lt;https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc/uid/20000047-CJBFBEDI&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421662</commentid>
    <comment_count>10</comment_count>
      <attachid>339803</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-07 23:06:30 -0700</bug_when>
    <thetext>Created attachment 339803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421767</commentid>
    <comment_count>11</comment_count>
      <attachid>339803</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-08 10:17:44 -0700</bug_when>
    <thetext>Comment on attachment 339803
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421790</commentid>
    <comment_count>12</comment_count>
      <attachid>339803</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-08 10:44:08 -0700</bug_when>
    <thetext>Comment on attachment 339803
Patch

Clearing flags on attachment: 339803

Committed r231491: &lt;https://trac.webkit.org/changeset/231491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421791</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-08 10:44:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421819</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-08 11:22:45 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 185434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427034</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-24 13:12:42 -0700</bug_when>
    <thetext>If we need a CF change to get the behavior we want, then we should conditionalize this new behavior and exclude it from OS&apos;s that lack the change we need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427358</commentid>
    <comment_count>16</comment_count>
      <attachid>341302</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-25 11:01:46 -0700</bug_when>
    <thetext>Created attachment 341302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427361</commentid>
    <comment_count>17</comment_count>
      <attachid>341302</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-25 11:08:31 -0700</bug_when>
    <thetext>Comment on attachment 341302
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427373</commentid>
    <comment_count>18</comment_count>
      <attachid>341302</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-25 11:35:18 -0700</bug_when>
    <thetext>Comment on attachment 341302
Patch

Clearing flags on attachment: 341302

Committed r232191: &lt;https://trac.webkit.org/changeset/232191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427374</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-25 11:35:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339171</attachid>
            <date>2018-04-30 20:01:30 -0700</date>
            <delta_ts>2018-05-01 12:02:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185041-20180430200129.patch</filename>
            <type>text/plain</type>
            <size>5953</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYxMmIwNmFlOGY2YzBh
YTBmYzc3NGZlNGJhZjNjYWRhNzU2MDU4ZC4uOWJhZmFlNDIxMjI1NzZjYmVkNDk0YmFjYTFlOGU0
MGUyZTM0MDlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA0LTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFtXS0hUVFBDb29raWVTdG9y
ZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVudCBjcmVhdGlvbiB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNob3VsZCBiZSBjb21taXR0ZWQgYWZ0ZXIgPHJkYXI6Ly8z
OTgyOTY0MD4uCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXZWJLaXQuV0tIVFRQQ29va2llU3Rv
cmVDcmVhdGlvblRpbWUKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2ll
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6Om9wZXJhdG9yIE5TSFRUUENvb2tp
ZSAqIGNvbnN0KToKKwogMjAxOC0wNC0zMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIzMDkxNCkgU2VsZWN0aW5nIHRleHQgb24gdGhpcyBh
cHBsZS5jb20gcGFnZSBtYWtlcyBpdCB2YW5pc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZUNvY29hLm1tCmluZGV4IDU3NTU3OWRiYmJkYzNh
MTA0ZjlmNDYxYTE0Y2I4MzgwZmE5YzZhYmQuLjFiNjllN2IzNTA5NGNiYTc5OTJmNTBjOTI1OGEy
MjE3ODgxMDFiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvQ29va2llQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9Db29raWVDb2NvYS5tbQpAQCAtODIsNyArODIsNyBAQCBDb29raWU6Om9wZXJhdG9y
IE5TSFRUUENvb2tpZSAqKCkgY29uc3QKICAgICBpZiAoaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpwcm9wZXJ0aWVzID0gW05TTXV0YWJs
ZURpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDYXBhY2l0eToxMl07CisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqcHJvcGVydGllcyA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRo
Q2FwYWNpdHk6MTNdOwogCiAgICAgaWYgKCFjb21tZW50LmlzTnVsbCgpKQogICAgICAgICBbcHJv
cGVydGllcyBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29tbWVudCBmb3JLZXk6TlNIVFRQQ29va2ll
Q29tbWVudF07CkBAIC0xMDYsNiArMTA2LDggQEAgQ29va2llOjpvcGVyYXRvciBOU0hUVFBDb29r
aWUgKigpIGNvbnN0CiAgICAgYXV0byBtYXhBZ2UgPSBjZWlsKFtleHBpcmF0aW9uRGF0ZSB0aW1l
SW50ZXJ2YWxTaW5jZU5vd10pOwogICAgIGlmIChtYXhBZ2UgPiAwKQogICAgICAgICBbcHJvcGVy
dGllcyBzZXRPYmplY3Q6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlZiIsIG1heEFnZV0g
Zm9yS2V5Ok5TSFRUUENvb2tpZU1heGltdW1BZ2VdOworICAgIAorICAgIFtwcm9wZXJ0aWVzIHNl
dE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjcmVhdGVkIC8gMTAwMC4wXSBmb3JL
ZXk6QCJDcmVhdGVkIl07CiAKICAgICBhdXRvKiBwb3J0U3RyaW5nID0gcG9ydFN0cmluZ0Zyb21W
ZWN0b3IocG9ydHMpOwogICAgIGlmIChwb3J0U3RyaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNiYTkwNWU2MTc5ZTRhNzhmNzlhMDczNTRm
ZDdhOWU1MTg3NDAzMjkuLjU5NGViMjdmNDI3NGIzNjQwYmU2MDQ0MGQ0OWVjZjkzZGJkZTc3MjYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOC0wNC0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBbV0tIVFRQQ29va2llU3RvcmUgZ2V0QWxsQ29va2llc10gcmV0dXJucyBpbmNv
bnNpc3RlbnQgY3JlYXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg1MDQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDY4NDIxND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW06CisgICAgICAg
IChURVNUKToKKwogMjAxOC0wNC0zMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQXBwbHkgUHRyVGFncyB0byB0aGUgTWV0YUFsbG9jYXRvciBhbmQgZnJpZW5kcy4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQ
Q29va2llU3RvcmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
SFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDlkNWQ3ZWNkNmRjMmE0NzE5Y2Q3ZDQ5ZmNjMGEyNTRl
Y2Q2MTk3OTguLjllZTRkNDM5NThmMDk2MGQ4MGQ4ZjU4NWNjMGExZjhjNWQ3OTMxNTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2ll
U3RvcmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hU
VFBDb29raWVTdG9yZS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL1NlY29uZHMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKQEAgLTMxMCw2ICszMTEsNjYg
QEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlSHR0cE9ubHkpCiAgICAgW2Nvb2tpZXMg
cmVsZWFzZV07CiB9CiAKK1RFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUNyZWF0aW9uVGlt
ZSkgCit7ICAgCisgICAgV0tXZWJzaXRlRGF0YVN0b3JlKiBkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25m
aWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBkYXRhU3RvcmU7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiV2ViS2l0IFRlc3QiIGJhc2VVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKKyAgICBbd2ViVmlldyBf
dGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBbZGF0YVN0b3JlIHJlbW92
ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9k
aWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpbXSB7Cisg
ICAgICAgIGdvdEZsYWcgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZ290RmxhZyk7CisgICAgZ290RmxhZyA9IGZhbHNlOworCisgICAgZ2xvYmFsQ29va2ll
U3RvcmUgPSBkYXRhU3RvcmUuaHR0cENvb2tpZVN0b3JlOworCisgICAgTlNBcnJheTxOU0hUVFBD
b29raWUgKj4gKmNvb2tpZXMgPSBuaWw7CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjb29r
aWVQcm9wZXJ0aWVzID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XTsKKyAgICBb
Y29va2llUHJvcGVydGllcyBzZXRPYmplY3Q6QCJjb29raWVOYW1lIiBmb3JLZXk6TlNIVFRQQ29v
a2llTmFtZV07CisgICAgW2Nvb2tpZVByb3BlcnRpZXMgc2V0T2JqZWN0OkAiY29va2llVmFsdWUi
IGZvcktleTpOU0hUVFBDb29raWVWYWx1ZV07CisgICAgW2Nvb2tpZVByb3BlcnRpZXMgc2V0T2Jq
ZWN0OkAiLnd3dy53ZWJraXQub3JnIiBmb3JLZXk6TlNIVFRQQ29va2llRG9tYWluXTsKKyAgICBb
Y29va2llUHJvcGVydGllcyBzZXRPYmplY3Q6QCIvcGF0aCIgZm9yS2V5Ok5TSFRUUENvb2tpZVBh
dGhdOworICAgIAorICAgIFJldGFpblB0cjxOU0hUVFBDb29raWU+IGNvb2tpZSA9IFtOU0hUVFBD
b29raWUgY29va2llV2l0aFByb3BlcnRpZXM6Y29va2llUHJvcGVydGllc107CisKKyAgICBbZ2xv
YmFsQ29va2llU3RvcmUgc2V0Q29va2llOmNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpb
XSgpIHsKKyAgICAgICAgZ290RmxhZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBnb3RGbGFnID0gZmFsc2U7CisKKyAgICBbZ2xv
YmFsQ29va2llU3RvcmUgZ2V0QWxsQ29va2llczpbY29va2llc1B0ciA9ICZjb29raWVzXShOU0Fy
cmF5PE5TSFRUUENvb2tpZSAqPiAqbnNDb29raWVzKSB7CisgICAgICAgICpjb29raWVzUHRyID0g
W25zQ29va2llcyByZXRhaW5dOworICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxz
ZTsKKyAgICBBU1NFUlRfRVEoY29va2llcy5jb3VudCwgMXUpOworICAgIE5TTnVtYmVyICpjcmVh
dGlvblRpbWUgPSBbY29va2llcyBvYmplY3RBdEluZGV4OjBdLnByb3BlcnRpZXNbQCJDcmVhdGVk
Il07CisgICAgW2Nvb2tpZXMgcmVsZWFzZV07CisKKyAgICBzbGVlcCg1X3MpOworCisgICAgW2ds
b2JhbENvb2tpZVN0b3JlIGdldEFsbENvb2tpZXM6W2Nvb2tpZXNQdHIgPSAmY29va2llc10oTlNB
cnJheTxOU0hUVFBDb29raWUgKj4gKm5zQ29va2llcykgeworICAgICAgICAqY29va2llc1B0ciA9
IFtuc0Nvb2tpZXMgcmV0YWluXTsKKyAgICAgICAgZ290RmxhZyA9IHRydWU7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBnb3RGbGFnID0gZmFs
c2U7CisgICAgQVNTRVJUX0VRKGNvb2tpZXMuY291bnQsIDF1KTsKKyAgICBOU051bWJlciAqY3Jl
YXRpb25UaW1lMiA9IFtjb29raWVzIG9iamVjdEF0SW5kZXg6MF0ucHJvcGVydGllc1tAIkNyZWF0
ZWQiXTsKKworICAgIEVYUEVDVF9UUlVFKFtjcmVhdGlvblRpbWUgaXNFcXVhbDpjcmVhdGlvblRp
bWUyXSk7CisgICAgW2Nvb2tpZXMgcmVsZWFzZV07Cit9CisKIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzM1MzQ0MjAyPiBpcyByZXNvbHZlZCBh
bmQgYm90cyBhcmUgdXBkYXRlZC4KICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPD0gMTAxMzAxKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01BWF9BTExPV0VEIDw9IDExMDEwMikKIFRFU1QoV2ViS2l0LCBXS0hUVFBD
b29raWVTdG9yZU5vblBlcnNpc3RlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339212</attachid>
            <date>2018-05-01 12:02:53 -0700</date>
            <delta_ts>2018-05-01 16:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185041-20180501120253.patch</filename>
            <type>text/plain</type>
            <size>3699</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2JhOTA1ZTYxNzllNGE3OGY3OWEwNzM1NGZkN2E5ZTUx
ODc0MDMyOS4uNTk0ZWIyN2Y0Mjc0YjM2NDBiZTYwNDQwZDQ5ZWNmOTNkYmRlNzcyNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE4LTA0LTMwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXS0hUVFBDb29raWVTdG9yZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVu
dCBjcmVhdGlvbiB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODUwNDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbToKKyAgICAgICAgKFRFU1Qp
OgorCiAyMDE4LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBcHBseSBQdHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29v
a2llU3RvcmUubW0KaW5kZXggOWQ1ZDdlY2Q2ZGMyYTQ3MTljZDdkNDlmY2MwYTI1NGVjZDYxOTc5
OC4uNjViNTVmMWRmZDlmNTMxYWQyMzVkNjViYzQ3ZDA0M2EzZDkzOTdiYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tp
ZVN0b3JlLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0
YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2Vj
b25kcy5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApAQCAtMzEwLDYgKzMxMSw2MiBAQCBURVNU
KFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkKICAgICBbY29va2llcyByZWxlYXNl
XTsKIH0KIAorVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaW1lKSAKK3sg
ICAKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmUqIGRhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3Rv
cmUgZGVmYXVsdERhdGFTdG9yZV07CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCJXZWJLaXQgVGVzdCIgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9m
VHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNp
bmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOltdIHsKKyAgICAgICAg
Z290RmxhZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZn
b3RGbGFnKTsKKyAgICBnb3RGbGFnID0gZmFsc2U7CisKKyAgICBnbG9iYWxDb29raWVTdG9yZSA9
IGRhdGFTdG9yZS5odHRwQ29va2llU3RvcmU7CisKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxOU0hU
VFBDb29raWUgKj4+IGNvb2tpZXM7CisgICAgUmV0YWluUHRyPE5TSFRUUENvb2tpZT4gY29va2ll
ID0gW05TSFRUUENvb2tpZSBjb29raWVXaXRoUHJvcGVydGllczpAeworICAgICAgICBOU0hUVFBD
b29raWVQYXRoOiBAIi9wYXRoIiwKKyAgICAgICAgTlNIVFRQQ29va2llTmFtZTogQCJDb29raWVO
YW1lIiwKKyAgICAgICAgTlNIVFRQQ29va2llVmFsdWU6IEAiQ29va2llVmFsdWUiLAorICAgICAg
ICBOU0hUVFBDb29raWVEb21haW46IEAiLnd3dy53ZWJraXQub3JnIiwKKyAgICB9XTsKKworICAg
IFtnbG9iYWxDb29raWVTdG9yZSBzZXRDb29raWU6Y29va2llLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOltdKCkgeworICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxzZTsKKworICAg
IFtnbG9iYWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVzOltjb29raWVzUHRyID0gJmNvb2tpZXNd
KE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICpuc0Nvb2tpZXMpIHsKKyAgICAgICAgKmNvb2tpZXNQ
dHIgPSBbbnNDb29raWVzIHJldGFpbl07CisgICAgICAgIGdvdEZsYWcgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgZ290RmxhZyA9
IGZhbHNlOworICAgIEFTU0VSVF9FUSgxdSwgY29va2llcy5nZXQoKS5jb3VudCk7CisgICAgTlNO
dW1iZXIgKmNyZWF0aW9uVGltZSA9IFtjb29raWVzIG9iamVjdEF0SW5kZXg6MF0ucHJvcGVydGll
c1tAIkNyZWF0ZWQiXTsKKworICAgIHNsZWVwKDFfcyk7CisKKyAgICBbZ2xvYmFsQ29va2llU3Rv
cmUgZ2V0QWxsQ29va2llczpbY29va2llc1B0ciA9ICZjb29raWVzXShOU0FycmF5PE5TSFRUUENv
b2tpZSAqPiAqbnNDb29raWVzKSB7CisgICAgICAgICpjb29raWVzUHRyID0gW25zQ29va2llcyBy
ZXRhaW5dOworICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxzZTsKKyAgICBBU1NF
UlRfRVEoMXUsIGNvb2tpZXMuZ2V0KCkuY291bnQpOworICAgIE5TTnVtYmVyICpjcmVhdGlvblRp
bWUyID0gW2Nvb2tpZXMgb2JqZWN0QXRJbmRleDowXS5wcm9wZXJ0aWVzW0AiQ3JlYXRlZCJdOwor
CisgICAgRVhQRUNUX1RSVUUoW2NyZWF0aW9uVGltZSBpc0VxdWFsOmNyZWF0aW9uVGltZTJdKTsK
K30KKwogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2Js
ZW0vMzUzNDQyMDI+IGlzIHJlc29sdmVkIGFuZCBib3RzIGFyZSB1cGRhdGVkLgogI2lmIChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8PSAxMDEzMDEpIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPD0gMTEw
MTAyKQogVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlTm9uUGVyc2lzdGVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339240</attachid>
            <date>2018-05-01 16:29:32 -0700</date>
            <delta_ts>2018-05-07 23:06:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185041-20180501162931.patch</filename>
            <type>text/plain</type>
            <size>3615</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2JhOTA1ZTYxNzllNGE3OGY3OWEwNzM1NGZkN2E5ZTUx
ODc0MDMyOS4uNTk0ZWIyN2Y0Mjc0YjM2NDBiZTYwNDQwZDQ5ZWNmOTNkYmRlNzcyNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE4LTA0LTMwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXS0hUVFBDb29raWVTdG9yZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVu
dCBjcmVhdGlvbiB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODUwNDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbToKKyAgICAgICAgKFRFU1Qp
OgorCiAyMDE4LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBcHBseSBQdHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29v
a2llU3RvcmUubW0KaW5kZXggOWQ1ZDdlY2Q2ZGMyYTQ3MTljZDdkNDlmY2MwYTI1NGVjZDYxOTc5
OC4uNmU3NTM3ZjY0ZmE4MjZmM2NlZWJhMWI4NjE5MDEzOTg3YmJiMDc1OSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tp
ZVN0b3JlLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0
YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2Vj
b25kcy5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApAQCAtMzEwLDYgKzMxMSw1OSBAQCBURVNU
KFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkKICAgICBbY29va2llcyByZWxlYXNl
XTsKIH0KIAorVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaW1lKSAKK3sg
ICAKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmUqIGRhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3Rv
cmUgZGVmYXVsdERhdGFTdG9yZV07CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCJXZWJLaXQgVGVzdCIgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9m
VHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNp
bmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOltdIHsKKyAgICAgICAg
Z290RmxhZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZn
b3RGbGFnKTsKKyAgICBnb3RGbGFnID0gZmFsc2U7CisKKyAgICBnbG9iYWxDb29raWVTdG9yZSA9
IGRhdGFTdG9yZS5odHRwQ29va2llU3RvcmU7CisKKyAgICBSZXRhaW5QdHI8TlNIVFRQQ29va2ll
PiBjb29raWUgPSBbTlNIVFRQQ29va2llIGNvb2tpZVdpdGhQcm9wZXJ0aWVzOkB7CisgICAgICAg
IE5TSFRUUENvb2tpZVBhdGg6IEAiL3BhdGgiLAorICAgICAgICBOU0hUVFBDb29raWVOYW1lOiBA
IkNvb2tpZU5hbWUiLAorICAgICAgICBOU0hUVFBDb29raWVWYWx1ZTogQCJDb29raWVWYWx1ZSIs
CisgICAgICAgIE5TSFRUUENvb2tpZURvbWFpbjogQCIud3d3LndlYmtpdC5vcmciLAorICAgIH1d
OworCisgICAgW2dsb2JhbENvb2tpZVN0b3JlIHNldENvb2tpZTpjb29raWUuZ2V0KCkgY29tcGxl
dGlvbkhhbmRsZXI6W10oKSB7CisgICAgICAgIGdvdEZsYWcgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgZ290RmxhZyA9IGZhbHNl
OworCisgICAgUmV0YWluUHRyPE5TTnVtYmVyPiBjcmVhdGlvblRpbWUgPSBuaWw7CisgICAgW2ds
b2JhbENvb2tpZVN0b3JlIGdldEFsbENvb2tpZXM6W2NyZWF0aW9uVGltZVB0ciA9ICZjcmVhdGlv
blRpbWVdKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICpjb29raWVzKSB7CisgICAgICAgIEFTU0VS
VF9FUSgxdSwgY29va2llcy5jb3VudCk7CisgICAgICAgICpjcmVhdGlvblRpbWVQdHIgPSBbY29v
a2llcyBvYmplY3RBdEluZGV4OjBdLnByb3BlcnRpZXNbQCJDcmVhdGVkIl07CisgICAgICAgIGdv
dEZsYWcgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290
RmxhZyk7CisgICAgZ290RmxhZyA9IGZhbHNlOworCisgICAgc2xlZXAoMV9zKTsKKworICAgIFtn
bG9iYWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVzOl4oTlNBcnJheTxOU0hUVFBDb29raWUgKj4g
KmNvb2tpZXMpIHsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBjb29raWVzLmNvdW50KTsKKyAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiBjcmVhdGlvblRpbWUyID0gW2Nvb2tpZXMgb2JqZWN0QXRJ
bmRleDowXS5wcm9wZXJ0aWVzW0AiQ3JlYXRlZCJdOworICAgICAgICBFWFBFQ1RfVFJVRShbY3Jl
YXRpb25UaW1lLmdldCgpIGlzRXF1YWw6Y3JlYXRpb25UaW1lMi5nZXQoKV0pOworICAgICAgICBn
b3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdv
dEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxzZTsKK30KKwogLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMzUzNDQyMDI+IGlzIHJlc29sdmVkIGFu
ZCBib3RzIGFyZSB1cGRhdGVkLgogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA8PSAxMDEzMDEpIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPD0gMTEwMTAyKQogVEVTVChXZWJLaXQsIFdLSFRUUENv
b2tpZVN0b3JlTm9uUGVyc2lzdGVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339803</attachid>
            <date>2018-05-07 23:06:30 -0700</date>
            <delta_ts>2018-05-25 11:01:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185041-20180507230629.patch</filename>
            <type>text/plain</type>
            <size>5709</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQzMzlkNWRiNzQwMDlj
ZWFmYThlNjFlYzJmZDFlNzFiMTI4ZDNlMi4uNTI1YzZmNjRjOWY5ZGUyYTNmMzdiYWM5MjNhNDdl
MTk5ZDIyNGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTA3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFtXS0hUVFBDb29raWVTdG9y
ZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVudCBjcmVhdGlvbiB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNldCBjcmVhdGlvbnRpbWUgcHJvcGVydHkgd2hlbiBjcmVh
dGluZyBDb29raWUgb2JqZWN0IHRvIGtlZXAgY29uc2lzdGVuY3kgYWZ0ZXIgY29udmVyc2lvbi4K
KworICAgICAgICBOZXcgQVBJIHRlc3Q6IFdlYktpdC5XS0hUVFBDb29raWVTdG9yZUNyZWF0aW9u
VGltZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6Om9wZXJhdG9yIE5TSFRUUENvb2tpZSAqIGNvbnN0
KToKKwogMjAxOC0wNS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQ1NQIHN0YXR1cy1jb2RlIGluY29ycmVjdCBmb3IgZG9jdW1lbnQgYmxvY2tlZCBkdWUg
dG8gdmlvbGF0aW9uIG9mIGl0cyBmcmFtZS1hbmNlc3RvcnMgZGlyZWN0aXZlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZUNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVDb2NvYS5tbQppbmRl
eCA1NzU1NzlkYmJiZGMzYTEwNGY5ZjQ2MWExNGNiODM4MGZhOWM2YWJkLi4xYjY5ZTdiMzUwOTRj
YmE3OTkyZjUwYzkyNThhMjIxNzg4MTAxYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW0KQEAgLTgyLDcgKzgyLDcgQEAg
Q29va2llOjpvcGVyYXRvciBOU0hUVFBDb29raWUgKigpIGNvbnN0CiAgICAgaWYgKGlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcHJvcGVy
dGllcyA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ2FwYWNpdHk6MTJdOwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnByb3BlcnRpZXMgPSBbTlNNdXRhYmxlRGljdGlvbmFy
eSBkaWN0aW9uYXJ5V2l0aENhcGFjaXR5OjEzXTsKIAogICAgIGlmICghY29tbWVudC5pc051bGwo
KSkKICAgICAgICAgW3Byb3BlcnRpZXMgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvbW1lbnQgZm9y
S2V5Ok5TSFRUUENvb2tpZUNvbW1lbnRdOwpAQCAtMTA2LDYgKzEwNiw4IEBAIENvb2tpZTo6b3Bl
cmF0b3IgTlNIVFRQQ29va2llICooKSBjb25zdAogICAgIGF1dG8gbWF4QWdlID0gY2VpbChbZXhw
aXJhdGlvbkRhdGUgdGltZUludGVydmFsU2luY2VOb3ddKTsKICAgICBpZiAobWF4QWdlID4gMCkK
ICAgICAgICAgW3Byb3BlcnRpZXMgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiJWYiLCBtYXhBZ2VdIGZvcktleTpOU0hUVFBDb29raWVNYXhpbXVtQWdlXTsKKyAgICAKKyAg
ICBbcHJvcGVydGllcyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y3JlYXRl
ZCAvIDEwMDAuMF0gZm9yS2V5OkAiQ3JlYXRlZCJdOwogCiAgICAgYXV0byogcG9ydFN0cmluZyA9
IHBvcnRTdHJpbmdGcm9tVmVjdG9yKHBvcnRzKTsKICAgICBpZiAocG9ydFN0cmluZykKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0Zjc2Yzg2ZWFm
Y2IwNzliM2VhYzcwOTU5MDk4MTdlNTliMDA0ZTg4Li42NGIxMzIzZmEwMWE1ZmRmNDYwYzdmYjg1
NzhlNzBmMTE3ZmI2OTY4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDUtMDcgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLSFRUUENvb2tpZVN0b3JlIGdldEFsbENvb2tp
ZXNdIHJldHVybnMgaW5jb25zaXN0ZW50IGNyZWF0aW9uIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0MQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzQ2ODQyMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIEFQSSB0ZXN0IENvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbToKKyAgICAgICAgKFRFU1Qp
OgorCiAyMDE4LTA1LTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgSW5QbGFjZUFic3RyYWN0U3RhdGU6OmJlZ2luQmFzaWNCbG9jayBzaG91bGRuJ3QgaGF2ZSB0
byBjbGVhciBhbnkgYWJzdHJhY3QgdmFsdWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQppbmRleCA5ZDVk
N2VjZDZkYzJhNDcxOWNkN2Q0OWZjYzBhMjU0ZWNkNjE5Nzk4Li40ODM1MGY2NDFkM2QwZWMxN2Q0
N2VjZGFmYzZkYzIzNTMyZGJhZDE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTMzLDYgKzMz
LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9TZWNvbmRzLmg+CiAKICNpZiBXS19BUElf
RU5BQkxFRAogCkBAIC0zMTAsNiArMzExLDU5IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVT
dG9yZUh0dHBPbmx5KQogICAgIFtjb29raWVzIHJlbGVhc2VdOwogfQogCitURVNUKFdlYktpdCwg
V0tIVFRQQ29va2llU3RvcmVDcmVhdGlvblRpbWUpIAoreyAgIAorICAgIFdLV2Vic2l0ZURhdGFT
dG9yZSogZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsK
KworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0
b3JlID0gZGF0YVN0b3JlOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
ZzpAIldlYktpdCBUZXN0IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dl
YmtpdC5vcmciXV07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25dOworCisgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFz
dF0gY29tcGxldGlvbkhhbmRsZXI6W10geworICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIGdvdEZsYWcg
PSBmYWxzZTsKKworICAgIGdsb2JhbENvb2tpZVN0b3JlID0gZGF0YVN0b3JlLmh0dHBDb29raWVT
dG9yZTsKKworICAgIFJldGFpblB0cjxOU0hUVFBDb29raWU+IGNvb2tpZSA9IFtOU0hUVFBDb29r
aWUgY29va2llV2l0aFByb3BlcnRpZXM6QHsKKyAgICAgICAgTlNIVFRQQ29va2llUGF0aDogQCIv
cGF0aCIsCisgICAgICAgIE5TSFRUUENvb2tpZU5hbWU6IEAiQ29va2llTmFtZSIsCisgICAgICAg
IE5TSFRUUENvb2tpZVZhbHVlOiBAIkNvb2tpZVZhbHVlIiwKKyAgICAgICAgTlNIVFRQQ29va2ll
RG9tYWluOiBAIi53d3cud2Via2l0Lm9yZyIsCisgICAgfV07CisKKyAgICBbZ2xvYmFsQ29va2ll
U3RvcmUgc2V0Q29va2llOmNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbXSgpIHsKKyAg
ICAgICAgZ290RmxhZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZnb3RGbGFnKTsKKyAgICBnb3RGbGFnID0gZmFsc2U7CisKKyAgICBSZXRhaW5QdHI8TlNO
dW1iZXI+IGNyZWF0aW9uVGltZSA9IG5pbDsKKyAgICBbZ2xvYmFsQ29va2llU3RvcmUgZ2V0QWxs
Q29va2llczpbJl0oTlNBcnJheTxOU0hUVFBDb29raWUgKj4gKmNvb2tpZXMpIHsKKyAgICAgICAg
QVNTRVJUX0VRKDF1LCBjb29raWVzLmNvdW50KTsKKyAgICAgICAgY3JlYXRpb25UaW1lID0gW2Nv
b2tpZXMgb2JqZWN0QXRJbmRleDowXS5wcm9wZXJ0aWVzW0AiQ3JlYXRlZCJdOworICAgICAgICBn
b3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdv
dEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxzZTsKKworICAgIHNsZWVwKDFfcyk7CisKKyAgICBb
Z2xvYmFsQ29va2llU3RvcmUgZ2V0QWxsQ29va2llczpeKE5TQXJyYXk8TlNIVFRQQ29va2llICo+
ICpjb29raWVzKSB7CisgICAgICAgIEFTU0VSVF9FUSgxdSwgY29va2llcy5jb3VudCk7CisgICAg
ICAgIE5TTnVtYmVyKiBjcmVhdGlvblRpbWUyID0gW2Nvb2tpZXMgb2JqZWN0QXRJbmRleDowXS5w
cm9wZXJ0aWVzW0AiQ3JlYXRlZCJdOworICAgICAgICBFWFBFQ1RfVFJVRShbY3JlYXRpb25UaW1l
LmdldCgpIGlzRXF1YWw6Y3JlYXRpb25UaW1lMl0pOworICAgICAgICBnb3RGbGFnID0gdHJ1ZTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIGdv
dEZsYWcgPSBmYWxzZTsKK30KKwogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMzUzNDQyMDI+IGlzIHJlc29sdmVkIGFuZCBib3RzIGFyZSB1cGRh
dGVkLgogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA8PSAxMDEzMDEpIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPD0gMTEwMTAyKQogVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlTm9uUGVy
c2lzdGVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341302</attachid>
            <date>2018-05-25 11:01:46 -0700</date>
            <delta_ts>2018-05-25 11:35:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185041-20180525110146.patch</filename>
            <type>text/plain</type>
            <size>6067</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFlZTZmYzQzNTFlZmM0
OTNhMjY1MDJlYmIzZjdkYzc5OTgxOWE0My4uNGRkZmI2M2U4NmZlNGVlOWNmZTVhOWU5MzgyZTBm
OWNkYmUzZWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTI1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFtXS0hUVFBDb29raWVTdG9y
ZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVudCBjcmVhdGlvbiB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNldCBjcmVhdGlvbnRpbWUgcHJvcGVydHkgd2hlbiBjcmVh
dGluZyBDb29raWUgb2JqZWN0IHRvIGtlZXAgY29uc2lzdGVuY3kgYWZ0ZXIgY29udmVyc2lvbi4K
KworICAgICAgICBOZXcgQVBJIHRlc3Q6IFdlYktpdC5XS0hUVFBDb29raWVTdG9yZUNyZWF0aW9u
VGltZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6Om9wZXJhdG9yIE5TSFRUUENvb2tpZSAqIGNvbnN0
KToKKwogMjAxOC0wNS0yNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdIEltcGxlbWVudCBib3JkZXIgYW5kIHBhZGRpbmcgY29tcHV0YXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZUNvY29hLm1t
CmluZGV4IDliYzJjYWJhMDk2N2JhYmJmMzAyMWRhYTFiZDgyOTcyMzMwYzY1ZDYuLjQ0MTczZjRk
OTgyYWZhMTEyOTM0Y2NjY2Q4NjRhYmUzOGI2ZDA0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVDb2NvYS5tbQpAQCAtOTIsNyArOTIs
NyBAQCBDb29raWU6Om9wZXJhdG9yIE5TSFRUUENvb2tpZSAqKCkgY29uc3QKICAgICBpZiAoaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpw
cm9wZXJ0aWVzID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDYXBhY2l0eTox
Ml07CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcHJvcGVydGllcyA9IFtOU011dGFibGVEaWN0
aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ2FwYWNpdHk6MTNdOwogCiAgICAgaWYgKCFjb21tZW50Lmlz
TnVsbCgpKQogICAgICAgICBbcHJvcGVydGllcyBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29tbWVu
dCBmb3JLZXk6TlNIVFRQQ29va2llQ29tbWVudF07CkBAIC0xMTcsNiArMTE3LDEwIEBAIENvb2tp
ZTo6b3BlcmF0b3IgTlNIVFRQQ29va2llICooKSBjb25zdAogICAgIGlmIChtYXhBZ2UgPiAwKQog
ICAgICAgICBbcHJvcGVydGllcyBzZXRPYmplY3Q6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCIlZiIsIG1heEFnZV0gZm9yS2V5Ok5TSFRUUENvb2tpZU1heGltdW1BZ2VdOwogCisjaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAp
IHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEyMDAwMCkKKyAgICBbcHJvcGVydGllcyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhE
b3VibGU6Y3JlYXRlZCAvIDEwMDAuMF0gZm9yS2V5OkAiQ3JlYXRlZCJdOworI2VuZGlmCisKICAg
ICBhdXRvKiBwb3J0U3RyaW5nID0gcG9ydFN0cmluZ0Zyb21WZWN0b3IocG9ydHMpOwogICAgIGlm
IChwb3J0U3RyaW5nKQogICAgICAgICBbcHJvcGVydGllcyBzZXRPYmplY3Q6cG9ydFN0cmluZyBm
b3JLZXk6TlNIVFRQQ29va2llUG9ydF07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNjQ1ZjcwY2RjNTUxMjY3MzhmNTliMDI5YzVlZjhmOGFlYmVl
NTYwYS4uMjdkNWRmMDExNmMwNDhiZGZhZGVhMGU5ZmQyNTA2YTFlYTZkMzQyMyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTA1LTI1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IFtXS0hUVFBDb29raWVTdG9yZSBnZXRBbGxDb29raWVzXSByZXR1cm5zIGluY29uc2lzdGVudCBj
cmVhdGlvbiB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUwNDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0Njg0MjE0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3Zl
cmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQ
Q29va2llU3RvcmUubW06CisgICAgICAgIChURVNUKToKKwogMjAxOC0wNS0yNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBjb3B5aW5nIG9mIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24gb2JqZWN0cyBieSBtb3ZpbmcgdGhlbSBhcm91bmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3Rv
cmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tp
ZVN0b3JlLm1tCmluZGV4IGRlYjA5YTEyN2VhMGU3MGRkN2VhNDU5MjI3NDA0NWVlYmZjNzc4NzEu
LjhmOTRiMzRkNmQwM2E4NWNhYjc3YWQ3ZWM3MTg3ODM4OWU5MDQ2N2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NlY29u
ZHMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgV0tfQVBJX0VOQUJM
RUQKQEAgLTMxMSw2ICszMTIsNjAgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlSHR0
cE9ubHkpCiAgICAgW2Nvb2tpZXMgcmVsZWFzZV07CiB9CiAKKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQorVEVT
VChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaW1lKSAKK3sgICAKKyAgICBhdXRv
IGRhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBk
YXRhU3RvcmU7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiV2Vi
S2l0IFRlc3QiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9y
ZyJdXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisK
KyAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpbXSB7CisgICAgICAgIGdvdEZsYWcgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgZ290RmxhZyA9IGZhbHNl
OworCisgICAgZ2xvYmFsQ29va2llU3RvcmUgPSBkYXRhU3RvcmUuaHR0cENvb2tpZVN0b3JlOwor
CisgICAgUmV0YWluUHRyPE5TSFRUUENvb2tpZT4gY29va2llID0gW05TSFRUUENvb2tpZSBjb29r
aWVXaXRoUHJvcGVydGllczpAeworICAgICAgICBOU0hUVFBDb29raWVQYXRoOiBAIi9wYXRoIiwK
KyAgICAgICAgTlNIVFRQQ29va2llTmFtZTogQCJDb29raWVOYW1lIiwKKyAgICAgICAgTlNIVFRQ
Q29va2llVmFsdWU6IEAiQ29va2llVmFsdWUiLAorICAgICAgICBOU0hUVFBDb29raWVEb21haW46
IEAiLnd3dy53ZWJraXQub3JnIiwKKyAgICB9XTsKKworICAgIFtnbG9iYWxDb29raWVTdG9yZSBz
ZXRDb29raWU6Y29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOltdKCkgeworICAgICAgICBn
b3RGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdv
dEZsYWcpOworICAgIGdvdEZsYWcgPSBmYWxzZTsKKworICAgIFJldGFpblB0cjxOU051bWJlcj4g
Y3JlYXRpb25UaW1lID0gbmlsOworICAgIFtnbG9iYWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVz
OlsmXShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAqY29va2llcykgeworICAgICAgICBBU1NFUlRf
RVEoMXUsIGNvb2tpZXMuY291bnQpOworICAgICAgICBjcmVhdGlvblRpbWUgPSBbY29va2llcyBv
YmplY3RBdEluZGV4OjBdLnByb3BlcnRpZXNbQCJDcmVhdGVkIl07CisgICAgICAgIGdvdEZsYWcg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7
CisgICAgZ290RmxhZyA9IGZhbHNlOworCisgICAgc2xlZXAoMV9zKTsKKworICAgIFtnbG9iYWxD
b29raWVTdG9yZSBnZXRBbGxDb29raWVzOl4oTlNBcnJheTxOU0hUVFBDb29raWUgKj4gKmNvb2tp
ZXMpIHsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBjb29raWVzLmNvdW50KTsKKyAgICAgICAgTlNO
dW1iZXIqIGNyZWF0aW9uVGltZTIgPSBbY29va2llcyBvYmplY3RBdEluZGV4OjBdLnByb3BlcnRp
ZXNbQCJDcmVhdGVkIl07CisgICAgICAgIEVYUEVDVF9UUlVFKFtjcmVhdGlvblRpbWUuZ2V0KCkg
aXNFcXVhbDpjcmVhdGlvblRpbWUyXSk7CisgICAgICAgIGdvdEZsYWcgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgZ290RmxhZyA9
IGZhbHNlOworfQorI2VuZGlmIC8vIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCisKIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzM1MzQ0MjAyPiBpcyByZXNvbHZlZCBh
bmQgYm90cyBhcmUgdXBkYXRlZC4KICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPD0gMTAxMzAxKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01BWF9BTExPV0VEIDw9IDExMDEwMikKIFRFU1QoV2ViS2l0LCBXS0hUVFBD
b29raWVTdG9yZU5vblBlcnNpc3RlbnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>