<?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>194843</bug_id>
          
          <creation_ts>2019-02-19 16:55:20 -0800</creation_ts>
          <short_desc>Crash under IDBServer::IDBConnectionToClient::identifier() const</short_desc>
          <delta_ts>2019-02-22 15:41:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507918</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-19 16:55:20 -0800</bug_when>
    <thetext>3 WebCore: WebCore::IDBServer::IDBConnectionToClient::identifier() const &lt;==
3 WebCore: WebCore::IDBResourceIdentifier::IDBResourceIdentifier(WebCore::IDBServer::IDBConnectionToClient const&amp;)
3 WebCore: WebCore::IDBTransactionInfo::versionChange(WebCore::IDBServer::IDBConnectionToClient const&amp;, WebCore::IDBDatabaseInfo const&amp;, unsigned long long)
3 WebCore: WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction(unsigned long long)
3 WebCore: WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction()
3 WebCore: WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation()
3 WebCore: WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations()
pruning: 2 WebCore: WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired()
pruning: 1 WebCore: WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507919</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-19 16:56:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/48203102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507924</commentid>
    <comment_count>2</comment_count>
      <attachid>362455</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-19 17:11:58 -0800</bug_when>
    <thetext>Created attachment 362455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508151</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-20 11:19:43 -0800</bug_when>
    <thetext>Can you test this with an API test that allocates a WebView, starts a long-running IDB transaction, and then deallocates the WebView?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508647</commentid>
    <comment_count>4</comment_count>
      <attachid>362455</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-21 13:44:12 -0800</bug_when>
    <thetext>Comment on attachment 362455
Patch

r=me

Since this is a regression, and our initial attempt at a test did not crash, let&apos;s get this fix in as soon as we can. We can pursue a test case separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508793</commentid>
    <comment_count>5</comment_count>
      <attachid>362678</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-21 17:47:55 -0800</bug_when>
    <thetext>Created attachment 362678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508814</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-21 18:58:34 -0800</bug_when>
    <thetext>The patch is failing to build:

In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/unified-sources/UnifiedSource134.cpp:7:
In file included from ./Modules/indexeddb/server/MemoryObjectStore.cpp:39:
In file included from ./Modules/indexeddb/server/UniqueIDBDatabase.h:34:
In file included from ./Modules/indexeddb/server/ServerOpenDBRequest.h:30:
./Modules/indexeddb/server/IDBConnectionToClient.h:88:30: error: expected &apos;;&apos; at end of declaration list
    bool m_isClosed { false }
                             ^
                             ;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508917</commentid>
    <comment_count>7</comment_count>
      <attachid>362699</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-21 23:44:30 -0800</bug_when>
    <thetext>Created attachment 362699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509065</commentid>
    <comment_count>8</comment_count>
      <attachid>362699</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-22 10:55:19 -0800</bug_when>
    <thetext>Comment on attachment 362699
Patch

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

It seems like this patch is specific to requests to open a database. Is that sufficient? What about other database operations that might happen after a connection has closed?

Is there some central bottleneck (maybe handleCurrentOperation() or operationAndTransactionTimerFired() or handleDatabaseOperations()?) that can check for a closed connection, instead of checking at all relevant call sites?

&gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h:82
&gt; +    bool isConenctionClosed() { return m_isClosed; }

We usually name the getter to match the data member: bool isClosed() { return m_isClosed; }.

If you prefer &quot;isConnectionClosed&quot;, you can name the data member that way too. But I think isClosed is better. The object is the connection, so putting &quot;connection&quot; in all its function names is redundant. (Relatedly, connectionToClientClosed() should probably be renamed to close() or setClosed().)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509119</commentid>
    <comment_count>9</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-22 12:32:02 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; Comment on attachment 362699 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362699&amp;action=review
&gt; 
&gt; It seems like this patch is specific to requests to open a database. Is that
&gt; sufficient? What about other database operations that might happen after a
&gt; connection has closed?
&gt; 
&gt; Is there some central bottleneck (maybe handleCurrentOperation() or
&gt; operationAndTransactionTimerFired() or handleDatabaseOperations()?) that can
&gt; check for a closed connection, instead of checking at all relevant call
&gt; sites?
&gt; 

My idea was to clear the requests of closed connection when the UniqueIDBDatabase was notified by UniqueIDBDatabaseConnection with connectionClosedFromClient. But it turned out UniqueIDBDatabase may being created without having UniqueIDBDatabaseConnection (UniqueIDBDatabase is opening its backingstore in background thread). So this didn&apos;t work.

handleDatabaseOperations() finds next available request and handleCurrentOperation() finds next available transaction, so it seems more reasonable to check on handleDatabaseOperations(). But when operationAndTransactionTimerFired() is called with non-null m_currentOpenDBRequest, it didn&apos;t call handleDatabaseOperations(). 

This patch should at least fix cases exposed by the crash reports: inside handleDatabaseOperations() and operationAndTransactionTimerFired().

Database operations correspond to transactions, so they will be taken care by the transaction abortion steps in UniqueIDBDatabase::connectionClosedFromClient.

&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h:82
&gt; &gt; +    bool isConenctionClosed() { return m_isClosed; }
&gt; 
&gt; We usually name the getter to match the data member: bool isClosed() {
&gt; return m_isClosed; }.
&gt; 
&gt; If you prefer &quot;isConnectionClosed&quot;, you can name the data member that way
&gt; too. But I think isClosed is better. The object is the connection, so
&gt; putting &quot;connection&quot; in all its function names is redundant. (Relatedly,
&gt; connectionToClientClosed() should probably be renamed to close() or
&gt; setClosed().)
&gt;

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509123</commentid>
    <comment_count>10</comment_count>
      <attachid>362747</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-22 12:39:07 -0800</bug_when>
    <thetext>Created attachment 362747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509140</commentid>
    <comment_count>11</comment_count>
      <attachid>362747</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-22 13:08:54 -0800</bug_when>
    <thetext>Comment on attachment 362747
Patch

I think you could write a helper function like this:

void clearStaleOpenDBRequests()
{
    if (m_currentOpenDBRequest &amp;&amp; m_currentOpenDBRequest-&gt;connection().isClosed())
        m_currentOpenDBRequest = nullptr;

    while (!m_pendingOpenDBRequests.isEmpty() &amp;&amp; m_pendingOpenDBRequests.first()-&gt;connection().isClosed())
        m_pendingOpenDBRequests.removeFirst();

    if (!m_currentOpenDBRequest &amp;&amp; !m_pendingOpenDBRequests.isEmpty())
        m_currentOpenDBRequest = m_pendingOpenDBRequests.takeFirst();
}


Then you can call the function before the first use of m_currentOpenDBRequest inside handleDatabaseOperations() and operationAndTransactionTimerFired(). If you do that, you don&apos;t need to change any other code.

Also, I think there&apos;s a small bug in the current version of this patch, where operationAndTransactionTimerFired() forgets to set m_currentOpenDBRequest to nullptr if the connection is closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509172</commentid>
    <comment_count>12</comment_count>
      <attachid>362765</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-22 14:28:52 -0800</bug_when>
    <thetext>Created attachment 362765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509174</commentid>
    <comment_count>13</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-22 14:33:39 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #11)
&gt; Comment on attachment 362747 [details]
&gt; Patch
&gt; 
&gt; I think you could write a helper function like this:
&gt; 
&gt; void clearStaleOpenDBRequests()
&gt; {
&gt;     if (m_currentOpenDBRequest &amp;&amp;
&gt; m_currentOpenDBRequest-&gt;connection().isClosed())
&gt;         m_currentOpenDBRequest = nullptr;
&gt; 
&gt;     while (!m_pendingOpenDBRequests.isEmpty() &amp;&amp;
&gt; m_pendingOpenDBRequests.first()-&gt;connection().isClosed())
&gt;         m_pendingOpenDBRequests.removeFirst();
&gt; 
&gt;     if (!m_currentOpenDBRequest &amp;&amp; !m_pendingOpenDBRequests.isEmpty())
&gt;         m_currentOpenDBRequest = m_pendingOpenDBRequests.takeFirst();
&gt; }
&gt; 
&gt; 
&gt; Then you can call the function before the first use of
&gt; m_currentOpenDBRequest inside handleDatabaseOperations() and
&gt; operationAndTransactionTimerFired(). If you do that, you don&apos;t need to
&gt; change any other code.
&gt; 
It seems we cannot use this helper function because it always sets m_currentOpenDBRequest if it is null. But in UniqueIDBDatabase::handleDatabaseOperations(), it&apos;s possible that we let m_currentOpenDBRequest stay null when there is m_versionChangeDatabaseConnection or m_versionChangeTransaction.

&gt; Also, I think there&apos;s a small bug in the current version of this patch,
&gt; where operationAndTransactionTimerFired() forgets to set
&gt; m_currentOpenDBRequest to nullptr if the connection is closed.
&gt;
True. Fix it by using an else in operationAndTransactionTimerFired().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509176</commentid>
    <comment_count>14</comment_count>
      <attachid>362765</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-22 14:37:23 -0800</bug_when>
    <thetext>Comment on attachment 362765
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509198</commentid>
    <comment_count>15</comment_count>
      <attachid>362765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-22 15:41:22 -0800</bug_when>
    <thetext>Comment on attachment 362765
Patch

Clearing flags on attachment: 362765

Committed r241967: &lt;https://trac.webkit.org/changeset/241967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509199</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-22 15:41:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362455</attachid>
            <date>2019-02-19 17:11:58 -0800</date>
            <delta_ts>2019-02-21 17:47:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194843-20190219171158.patch</filename>
            <type>text/plain</type>
            <size>4853</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZkYTUzZmU4ZTA0YWQ3
OWRkMDZjMTE3YzQxMGEwNDBiMmI5N2U3Ni4uODk5MTA3MWE4NDU3NDM2MGY4YWJhZTcwMDRmMzlj
N2I3MjAwZTc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAyLTE5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIHVuZGVyIElEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjppZGVudGlmaWVyKCkgY29uc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDgyMDMxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBuZXR3b3JrIHByb2Nlc3MgbG9zZXMgaXRzIGNvbmVuY3Rp
b24gdG8gd2ViIHByb2Nlc3MsIHdlIHNob3VsZCBjYW5jZWwgdGhlIHJlcXVlc3QgZnJvbSB0aGF0
IGNvbm5lY3Rpb24sIAorICAgICAgICBvdGhlcndpc2UgVW5pcXVlSURCRGF0YWJhc2Ugd291bGQg
dHJ5IHRvIGNvbXBsZXRlIHRoZSByZXF1ZXN0IGFuZCBjcmFzaCBvbiByZXF1aXJpbmcgaWRlbnRp
ZmllciBmcm9tIAorICAgICAgICBub24tZXhpc3RlbnQgY29ubmVjdGlvbi4KKworICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuREJSZXF1ZXN0Q2Fu
Y2VsbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OmNhbmNlbFJlcXVlc3RGb3JJZGVudGlmaWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xv
c2VkRnJvbUNsaWVudCk6CisKIDIwMTktMDItMTkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDE3MjIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA3MjJlN2U5NDY4MmQzNDU2YWQ3MWJmNWVj
NjIyYjFlMGM0MzU2ZDYzLi5lZjdiNDBhNGFjMjY3YmVlZjJhOWI0MGNjYTQzZTMzZTgzYmQ1OGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU5Miw4ICs1OTIsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFz
ZTo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZCAtICVzIiwgcmVxdWVzdElkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QgJiYgbV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRp
ZmllcigpID09IHJlcXVlc3RJZGVudGlmaWVyKQotICAgICAgICBtX2N1cnJlbnRPcGVuREJSZXF1
ZXN0ID0gbnVsbHB0cjsKKyAgICBjYW5jZWxSZXF1ZXN0Rm9ySWRlbnRpZmllcihyZXF1ZXN0SWRl
bnRpZmllcik7CiAKICAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uICYm
IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbi0+b3BlblJlcXVlc3RJZGVudGlmaWVy
KCkgPT0gcmVxdWVzdElkZW50aWZpZXIpIHsKICAgICAgICAgQVNTRVJUKCFtX3ZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbiB8fCBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25u
ZWN0aW9uKCkub3BlblJlcXVlc3RJZGVudGlmaWVyKCkgPT0gcmVxdWVzdElkZW50aWZpZXIpOwpA
QCAtNjAxLDcgKzYwMCwxMyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuREJSZXF1ZXN0
Q2FuY2VsbGVkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdQogCiAgICAgICAgIGNv
bm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KCptX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rp
b24pOwogICAgIH0KK30KIAordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2FuY2VsUmVxdWVzdEZv
cklkZW50aWZpZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
cikKK3sKKyAgICBpZiAobV9jdXJyZW50T3BlbkRCUmVxdWVzdCAmJiBtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCkgPT0gcmVxdWVzdElkZW50
aWZpZXIpCisgICAgICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QgPSBudWxscHRyOworICAgIAog
ICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzKSB7CiAgICAg
ICAgIGlmIChyZXF1ZXN0LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCkgPT0gcmVx
dWVzdElkZW50aWZpZXIpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnJl
bW92ZShyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggODNjMGM5MDhhNTRlNTli
NDYzYTBmNjcwZGE5ZTE5MjU1NGUyOTk3Ny4uZTJmMGJjNzFjMDA0NDBjYzliZDU1NTY3ZjY0MGQz
NjAyN2QxMGZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjb25maXJtQ29ubmVjdGlvbkNsb3NlZE9uU2VydmVyKFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVu
dChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9p
ZCBjYW5jZWxSZXF1ZXN0Rm9ySWRlbnRpZmllcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIo
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAKICAgICB2b2lkIGVucXVldWVUcmFuc2Fj
dGlvbihSZWY8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCmluZGV4IGU4MTRmYjE2ODdhY2ExMTM5MmI5
ODZjYzgyOTFhOGZhNDJkMDk5MGMuLmY4MGJhOGNjNTQ5MDE2YmU2OGZjNDBjMzkyNDA3OGFhYmU4
MTg4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBA
IC05Myw4ICs5MywxMCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6Y29ubmVj
dGlvbkNsb3NlZEZyb21DbGllbnQoKQogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50IC0gJXMgLSAlIiBQUkl1
NjQsIG1fb3BlblJlcXVlc3RJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBpZGVudGlmaWVyKCkpOwogCiAgICAgQVNTRVJUKG1fZGF0YWJhc2UpOwotICAgIGlmIChtX2Rh
dGFiYXNlKQorICAgIGlmIChtX2RhdGFiYXNlKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPmNhbmNl
bFJlcXVlc3RGb3JJZGVudGlmaWVyKG1fb3BlblJlcXVlc3RJZGVudGlmaWVyKTsKICAgICAgICAg
bV9kYXRhYmFzZS0+Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQoKnRoaXMpOworICAgIH0KIH0K
IAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmNvbmZpcm1EaWRDbG9zZUZyb21T
ZXJ2ZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362678</attachid>
            <date>2019-02-21 17:47:55 -0800</date>
            <delta_ts>2019-02-21 23:44:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194843-20190221174754.patch</filename>
            <type>text/plain</type>
            <size>5921</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZkYTUzZmU4ZTA0YWQ3
OWRkMDZjMTE3YzQxMGEwNDBiMmI5N2U3Ni4uMjYyMTc3ZTA1ZjRiZThjM2FjNmY3MWUyZjU2YjJh
MjRjZDQ0NzIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTIxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIHVuZGVyIElEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjppZGVudGlmaWVyKCkgY29uc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDgyMDMxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5pcXVlSURCRGF0YWJhc2Ugc2hvdWxkIGlnbm9yZSByZXF1ZXN0
cyBmcm9tIGNvbm5lY3Rpb25zIHRoYXQgYXJlIGFscmVhZHkgY2xvc2VkLgorCisgICAgICAgIFRl
c3RzIGFyZSBoYXJkIHRvIGNyZWF0ZSB3aXRob3V0IHNvbWUgdHJpY2tzIG9uIFVuaXF1ZUlEQkRh
dGFiYXNlIHNvIHRoaXMgZml4IGlzIHZlcmlmaWVkIG1hbnVhbGx5LiAKKyAgICAgICAgT25lIHRl
c3QgaXMgY3JlYXRlZCBieSBhZGRpbmcgZGVsYXkgdG8gVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5C
YWNraW5nU3RvcmUgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIHRvIG1ha2Ugc3VyZQorICAgICAg
ICBkaXNjb25uZWN0aW9uIG9mIHdlYiBwcm9jZXNzIGhhcHBlbnMgYmVmb3JlIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlLCBiZWNhdXNlIGRpZE9wZW5CYWNraW5nU3RvcmUK
KyAgICAgICAgbWF5IHN0YXJ0IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gYW5kIGFzayBm
b3IgaWRlbnRpZmllciBmcm9tIHRoZSBjb25uZWN0aW9uIHRoYXQgaXMgYWxyZWFkeSBnb25lLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6Y29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXNDb25lbmN0aW9uQ2xvc2VkKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJh
c2VPcGVyYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6Om9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGltZXJGaXJlZCk6CisKIDIwMTktMDItMTkg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDE3MjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCmluZGV4IDhjOGI3MjA1MjI0Mzc2OWNjOWU4M2UzNDkwOGFkNjNjNDYzMWEzYmIuLjZiZTM0
MzBiZmU5NGU2MDg2MWM3NjE1ZTMwODE5Mjc5MTQxMjQyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmNvbm5lY3Rpb25Ub0NsaWVudENsb3NlZCgpCiAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudCgpOwogICAgIH0KIAorICAgIG1faXNDbG9zZWQg
PSB0cnVlOwogICAgIG1fZGF0YWJhc2VDb25uZWN0aW9ucy5jbGVhcigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggMTYwYWJmZWVjOTYwMDNjYmIxZGYzMzUyOTdmN2Iw
OTlkMGY2ODAwZi4uMjM5OTIxYzdhMWNlMWEyY2Y3NmYwYWM5MTQzZDM1Y2Y4ZjE1YjZjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtNzksMTIgKzc5LDEzIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25Ub0NsaWVudENsb3Nl
ZCgpOwotCisgICAgYm9vbCBpc0NvbmVuY3Rpb25DbG9zZWQoKSB7IHJldHVybiBtX2lzQ2xvc2Vk
OyB9OwogcHJpdmF0ZToKICAgICBJREJDb25uZWN0aW9uVG9DbGllbnQoSURCQ29ubmVjdGlvblRv
Q2xpZW50RGVsZWdhdGUmKTsKICAgICAKICAgICBXZWFrUHRyPElEQkNvbm5lY3Rpb25Ub0NsaWVu
dERlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIEhhc2hTZXQ8VW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uKj4gbV9kYXRhYmFzZUNvbm5lY3Rpb25zOworICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZh
bHNlIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKaW5kZXggNzIyZTdlOTQ2ODJkMzQ1NmFkNzFiZjVlYzYyMmIxZTBjNDM1NmQ2My4uNGZl
NGRjN2Y2YjgzZjQ5YTIxZjM5ZjI1NGM3YjE5MjBkZTBlNjVjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC0zNTMsMjAgKzM1MywyOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpo
YW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogICAgIGlmIChtX2RlbGV0ZUJhY2tpbmdTdG9yZUlu
UHJvZ3Jlc3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VEYXRh
YmFzZUNvbm5lY3Rpb24gfHwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwgbV9jdXJyZW50
T3BlbkRCUmVxdWVzdCkgeworICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rp
b24gfHwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwgKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QgJiYgIW1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25D
bG9zZWQoKSkpIHsKICAgICAgICAgLy8gV2UgY2FuJ3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFi
YXNlIG9wZXJhdGlvbnMgcmlnaHQgbm93LCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBo
YW5kbGluZyBhIGRlbGV0ZSBvcGVyYXRpb24uCi0gICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRC
UmVxdWVzdCAmJiAhbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGlu
Z09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpKQotICAgICAgICAgICAg
bV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnRha2VGaXJz
dCgpOworICAgICAgICBpZiAoIW1fY3VycmVudE9wZW5EQlJlcXVlc3QpIHsKKyAgICAgICAgICAg
IHdoaWxlICghbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09w
ZW5EQlJlcXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9zZWQoKSkK
KyAgICAgICAgICAgICAgICBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5yZW1vdmVGaXJzdCgpOwor
ICAgICAgICAgICAgaWYgKCFtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgbV9w
ZW5kaW5nT3BlbkRCUmVxdWVzdHMuZmlyc3QoKS0+aXNEZWxldGVSZXF1ZXN0KCkpCisgICAgICAg
ICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgICAgICB9CiAKICAgICAgICAgLy8gU29tZSBvcGVyYXRpb25zIChz
dWNoIGFzIHRoZSBmaXJzdCBvcGVuIG9wZXJhdGlvbiBhZnRlciBhIGRlbGV0ZSkgcmVxdWlyZSBt
dWx0aXBsZSBwYXNzZXMgdG8gY29tcGxldGVseSBoYW5kbGUKICAgICAgICAgaWYgKG1fY3VycmVu
dE9wZW5EQlJlcXVlc3QpCiAgICAgICAgICAgICBoYW5kbGVDdXJyZW50T3BlcmF0aW9uKCk7Ci0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX3BlbmRpbmdPcGVuREJSZXF1ZXN0
cy5pc0VtcHR5KCkpCisgICAgLy8gU2tpcCByZXF1ZXN0cyB3aXRoIGNsb3NlZCBjb25uZWN0aW9u
LgorICAgIHdoaWxlICghbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVu
ZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9z
ZWQoKSkKKyAgICAgICAgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMucmVtb3ZlRmlyc3QoKTsKKyAg
ICBpZiAobV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fY3Vy
cmVudE9wZW5EQlJlcXVlc3QgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnRha2VG
aXJzdCgpOwogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0
YWJhc2VPcGVyYXRpb25zIC0gUG9wcGVkIGFuIG9wZXJhdGlvbiwgbm93IHRoZXJlIGFyZSAldSBw
ZW5kaW5nIiwgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuc2l6ZSgpKTsKQEAgLTE1NzMsNyArMTU4
MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGlt
ZXJGaXJlZCgpCiAKICAgICAvLyBUaGUgY3VycmVudCBvcGVyYXRpb24gbWlnaHQgcmVxdWlyZSBt
dWx0aXBsZSBhdHRlbXB0cyB0byBoYW5kbGUsIHNvIHRyeSB0bwogICAgIC8vIG1ha2UgZnVydGhl
ciBwcm9ncmVzcyBvbiBpdCBub3cuCi0gICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpCisg
ICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVlc3QgJiYgIW1fY3VycmVudE9wZW5EQlJlcXVlc3Qt
PmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9zZWQoKSkKICAgICAgICAgaGFuZGxlQ3VycmVu
dE9wZXJhdGlvbigpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362699</attachid>
            <date>2019-02-21 23:44:30 -0800</date>
            <delta_ts>2019-02-22 12:39:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194843-20190221234429.patch</filename>
            <type>text/plain</type>
            <size>5921</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZkYTUzZmU4ZTA0YWQ3
OWRkMDZjMTE3YzQxMGEwNDBiMmI5N2U3Ni4uMjYyMTc3ZTA1ZjRiZThjM2FjNmY3MWUyZjU2YjJh
MjRjZDQ0NzIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTIxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIHVuZGVyIElEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjppZGVudGlmaWVyKCkgY29uc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDgyMDMxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5pcXVlSURCRGF0YWJhc2Ugc2hvdWxkIGlnbm9yZSByZXF1ZXN0
cyBmcm9tIGNvbm5lY3Rpb25zIHRoYXQgYXJlIGFscmVhZHkgY2xvc2VkLgorCisgICAgICAgIFRl
c3RzIGFyZSBoYXJkIHRvIGNyZWF0ZSB3aXRob3V0IHNvbWUgdHJpY2tzIG9uIFVuaXF1ZUlEQkRh
dGFiYXNlIHNvIHRoaXMgZml4IGlzIHZlcmlmaWVkIG1hbnVhbGx5LiAKKyAgICAgICAgT25lIHRl
c3QgaXMgY3JlYXRlZCBieSBhZGRpbmcgZGVsYXkgdG8gVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5C
YWNraW5nU3RvcmUgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIHRvIG1ha2Ugc3VyZQorICAgICAg
ICBkaXNjb25uZWN0aW9uIG9mIHdlYiBwcm9jZXNzIGhhcHBlbnMgYmVmb3JlIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlLCBiZWNhdXNlIGRpZE9wZW5CYWNraW5nU3RvcmUK
KyAgICAgICAgbWF5IHN0YXJ0IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gYW5kIGFzayBm
b3IgaWRlbnRpZmllciBmcm9tIHRoZSBjb25uZWN0aW9uIHRoYXQgaXMgYWxyZWFkeSBnb25lLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6Y29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXNDb25lbmN0aW9uQ2xvc2VkKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJh
c2VPcGVyYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6Om9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGltZXJGaXJlZCk6CisKIDIwMTktMDItMTkg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDE3MjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCmluZGV4IDhjOGI3MjA1MjI0Mzc2OWNjOWU4M2UzNDkwOGFkNjNjNDYzMWEzYmIuLjZiZTM0
MzBiZmU5NGU2MDg2MWM3NjE1ZTMwODE5Mjc5MTQxMjQyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmNvbm5lY3Rpb25Ub0NsaWVudENsb3NlZCgpCiAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudCgpOwogICAgIH0KIAorICAgIG1faXNDbG9zZWQg
PSB0cnVlOwogICAgIG1fZGF0YWJhc2VDb25uZWN0aW9ucy5jbGVhcigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggMTYwYWJmZWVjOTYwMDNjYmIxZGYzMzUyOTdmN2Iw
OTlkMGY2ODAwZi4uZWQyM2I0YmM2NTJiNDk3MDc0MWIxYTYwYTJiZDYyNTM1YjdmNjMzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtNzksMTIgKzc5LDEzIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25Ub0NsaWVudENsb3Nl
ZCgpOwotCisgICAgYm9vbCBpc0NvbmVuY3Rpb25DbG9zZWQoKSB7IHJldHVybiBtX2lzQ2xvc2Vk
OyB9CiBwcml2YXRlOgogICAgIElEQkNvbm5lY3Rpb25Ub0NsaWVudChJREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZSYpOwogICAgIAogICAgIFdlYWtQdHI8SURCQ29ubmVjdGlvblRvQ2xpZW50
RGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgSGFzaFNldDxVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24qPiBtX2RhdGFiYXNlQ29ubmVjdGlvbnM7CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKaW5kZXggNzIyZTdlOTQ2ODJkMzQ1NmFkNzFiZjVlYzYyMmIxZTBjNDM1NmQ2My4uNGZl
NGRjN2Y2YjgzZjQ5YTIxZjM5ZjI1NGM3YjE5MjBkZTBlNjVjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC0zNTMsMjAgKzM1MywyOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpo
YW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogICAgIGlmIChtX2RlbGV0ZUJhY2tpbmdTdG9yZUlu
UHJvZ3Jlc3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VEYXRh
YmFzZUNvbm5lY3Rpb24gfHwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwgbV9jdXJyZW50
T3BlbkRCUmVxdWVzdCkgeworICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rp
b24gfHwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwgKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QgJiYgIW1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25D
bG9zZWQoKSkpIHsKICAgICAgICAgLy8gV2UgY2FuJ3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFi
YXNlIG9wZXJhdGlvbnMgcmlnaHQgbm93LCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBo
YW5kbGluZyBhIGRlbGV0ZSBvcGVyYXRpb24uCi0gICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRC
UmVxdWVzdCAmJiAhbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGlu
Z09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpKQotICAgICAgICAgICAg
bV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnRha2VGaXJz
dCgpOworICAgICAgICBpZiAoIW1fY3VycmVudE9wZW5EQlJlcXVlc3QpIHsKKyAgICAgICAgICAg
IHdoaWxlICghbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09w
ZW5EQlJlcXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9zZWQoKSkK
KyAgICAgICAgICAgICAgICBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5yZW1vdmVGaXJzdCgpOwor
ICAgICAgICAgICAgaWYgKCFtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgbV9w
ZW5kaW5nT3BlbkRCUmVxdWVzdHMuZmlyc3QoKS0+aXNEZWxldGVSZXF1ZXN0KCkpCisgICAgICAg
ICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgICAgICB9CiAKICAgICAgICAgLy8gU29tZSBvcGVyYXRpb25zIChz
dWNoIGFzIHRoZSBmaXJzdCBvcGVuIG9wZXJhdGlvbiBhZnRlciBhIGRlbGV0ZSkgcmVxdWlyZSBt
dWx0aXBsZSBwYXNzZXMgdG8gY29tcGxldGVseSBoYW5kbGUKICAgICAgICAgaWYgKG1fY3VycmVu
dE9wZW5EQlJlcXVlc3QpCiAgICAgICAgICAgICBoYW5kbGVDdXJyZW50T3BlcmF0aW9uKCk7Ci0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX3BlbmRpbmdPcGVuREJSZXF1ZXN0
cy5pc0VtcHR5KCkpCisgICAgLy8gU2tpcCByZXF1ZXN0cyB3aXRoIGNsb3NlZCBjb25uZWN0aW9u
LgorICAgIHdoaWxlICghbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVu
ZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9z
ZWQoKSkKKyAgICAgICAgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMucmVtb3ZlRmlyc3QoKTsKKyAg
ICBpZiAobV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fY3Vy
cmVudE9wZW5EQlJlcXVlc3QgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnRha2VG
aXJzdCgpOwogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0
YWJhc2VPcGVyYXRpb25zIC0gUG9wcGVkIGFuIG9wZXJhdGlvbiwgbm93IHRoZXJlIGFyZSAldSBw
ZW5kaW5nIiwgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuc2l6ZSgpKTsKQEAgLTE1NzMsNyArMTU4
MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGlt
ZXJGaXJlZCgpCiAKICAgICAvLyBUaGUgY3VycmVudCBvcGVyYXRpb24gbWlnaHQgcmVxdWlyZSBt
dWx0aXBsZSBhdHRlbXB0cyB0byBoYW5kbGUsIHNvIHRyeSB0bwogICAgIC8vIG1ha2UgZnVydGhl
ciBwcm9ncmVzcyBvbiBpdCBub3cuCi0gICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpCisg
ICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVlc3QgJiYgIW1fY3VycmVudE9wZW5EQlJlcXVlc3Qt
PmNvbm5lY3Rpb24oKS5pc0NvbmVuY3Rpb25DbG9zZWQoKSkKICAgICAgICAgaGFuZGxlQ3VycmVu
dE9wZXJhdGlvbigpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362747</attachid>
            <date>2019-02-22 12:39:07 -0800</date>
            <delta_ts>2019-02-22 14:28:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194843-20190222123906.patch</filename>
            <type>text/plain</type>
            <size>5861</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZkYTUzZmU4ZTA0YWQ3
OWRkMDZjMTE3YzQxMGEwNDBiMmI5N2U3Ni4uODQ1YjYxNTg3Yjc4MjkxODljOWIzZTdkYjM3ZWUy
N2M4YTU3MmU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTIxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIHVuZGVyIElEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjppZGVudGlmaWVyKCkgY29uc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDgyMDMxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5pcXVlSURCRGF0YWJhc2Ugc2hvdWxkIGlnbm9yZSByZXF1ZXN0
cyBmcm9tIGNvbm5lY3Rpb25zIHRoYXQgYXJlIGFscmVhZHkgY2xvc2VkLgorCisgICAgICAgIFRl
c3RzIGFyZSBoYXJkIHRvIGNyZWF0ZSB3aXRob3V0IHNvbWUgdHJpY2tzIG9uIFVuaXF1ZUlEQkRh
dGFiYXNlIHNvIHRoaXMgZml4IGlzIHZlcmlmaWVkIG1hbnVhbGx5LiAKKyAgICAgICAgT25lIHRl
c3QgaXMgY3JlYXRlZCBieSBhZGRpbmcgZGVsYXkgdG8gVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5C
YWNraW5nU3RvcmUgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIHRvIG1ha2Ugc3VyZQorICAgICAg
ICBkaXNjb25uZWN0aW9uIG9mIHdlYiBwcm9jZXNzIGhhcHBlbnMgYmVmb3JlIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlLCBiZWNhdXNlIGRpZE9wZW5CYWNraW5nU3RvcmUK
KyAgICAgICAgbWF5IHN0YXJ0IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gYW5kIGFzayBm
b3IgaWRlbnRpZmllciBmcm9tIHRoZSBjb25uZWN0aW9uIHRoYXQgaXMgYWxyZWFkeSBnb25lLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6Y29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXNDbG9zZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3Bl
cmF0aW9uQW5kVHJhbnNhY3Rpb25UaW1lckZpcmVkKToKKwogMjAxOS0wMi0xOSAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjI0MTcyMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXgg
OGM4YjcyMDUyMjQzNzY5Y2M5ZTgzZTM0OTA4YWQ2M2M0NjMxYTNiYi4uNmJlMzQzMGJmZTk0ZTYw
ODYxYzc2MTVlMzA4MTkyNzkxNDEyNDIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHAKQEAgLTIwNyw2ICsyMDcsNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29u
bmVjdGlvblRvQ2xpZW50Q2xvc2VkKCkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbm5lY3Rp
b25DbG9zZWRGcm9tQ2xpZW50KCk7CiAgICAgfQogCisgICAgbV9pc0Nsb3NlZCA9IHRydWU7CiAg
ICAgbV9kYXRhYmFzZUNvbm5lY3Rpb25zLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuaAppbmRleCAxNjBhYmZlZWM5NjAwM2NiYjFkZjMzNTI5N2Y3YjA5OWQwZjY4MDBm
Li5hYWZjNTM4MDI0ODJiNTRmMWY3ZjM2ZWMyOGM3YWU3MTVlOWFhOTZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oCkBAIC03OSwxMiArNzksMTMgQEAgcHVibGljOgogICAgIHZvaWQg
cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgY29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKCk7Ci0KKyAg
ICBib29sIGlzQ2xvc2VkKCkgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQogcHJpdmF0ZToKICAgICBJ
REJDb25uZWN0aW9uVG9DbGllbnQoSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUmKTsKICAg
ICAKICAgICBXZWFrUHRyPElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlPiBtX2RlbGVnYXRl
OwogICAgIEhhc2hTZXQ8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9kYXRhYmFzZUNv
bm5lY3Rpb25zOworICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDcyMmU3ZTk0
NjgyZDM0NTZhZDcxYmY1ZWM2MjJiMWUwYzQzNTZkNjMuLjE5NDE2NzNiODYwMWY5OTBmNWY3NjQ4
YjgwMDA4MjY0MmYxOTM4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzUzLDIw
ICszNTMsMjggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRp
b25zKCkKICAgICBpZiAobV9kZWxldGVCYWNraW5nU3RvcmVJblByb2dyZXNzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uIHx8IG1f
dmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8IG1fY3VycmVudE9wZW5EQlJlcXVlc3QpIHsKKyAg
ICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uIHx8IG1fdmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uIHx8IChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ICYmICFtX2N1cnJlbnRPcGVu
REJSZXF1ZXN0LT5jb25uZWN0aW9uKCkuaXNDbG9zZWQoKSkpIHsKICAgICAgICAgLy8gV2UgY2Fu
J3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFiYXNlIG9wZXJhdGlvbnMgcmlnaHQgbm93LCBidXQg
d2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBoYW5kbGluZyBhIGRlbGV0ZSBvcGVyYXRpb24uCi0g
ICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRCUmVxdWVzdCAmJiAhbV9wZW5kaW5nT3BlbkRCUmVx
dWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmlzRGVs
ZXRlUmVxdWVzdCgpKQotICAgICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVu
ZGluZ09wZW5EQlJlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAoIW1fY3VycmVudE9w
ZW5EQlJlcXVlc3QpIHsKKyAgICAgICAgICAgIHdoaWxlICghbV9wZW5kaW5nT3BlbkRCUmVxdWVz
dHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rp
b24oKS5pc0Nsb3NlZCgpKQorICAgICAgICAgICAgICAgIG1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LnJlbW92ZUZpcnN0KCk7CisgICAgICAgICAgICBpZiAoIW1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LmlzRW1wdHkoKSAmJiBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5maXJzdCgpLT5pc0RlbGV0ZVJl
cXVlc3QoKSkKKyAgICAgICAgICAgICAgICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ID0gbV9wZW5k
aW5nT3BlbkRCUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBT
b21lIG9wZXJhdGlvbnMgKHN1Y2ggYXMgdGhlIGZpcnN0IG9wZW4gb3BlcmF0aW9uIGFmdGVyIGEg
ZGVsZXRlKSByZXF1aXJlIG11bHRpcGxlIHBhc3NlcyB0byBjb21wbGV0ZWx5IGhhbmRsZQogICAg
ICAgICBpZiAobV9jdXJyZW50T3BlbkRCUmVxdWVzdCkKICAgICAgICAgICAgIGhhbmRsZUN1cnJl
bnRPcGVyYXRpb24oKTsKLQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcGVu
ZGluZ09wZW5EQlJlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAvLyBTa2lwIHJlcXVlc3RzIHdpdGgg
Y2xvc2VkIGNvbm5lY3Rpb24uCisgICAgd2hpbGUgKCFtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5p
c0VtcHR5KCkgJiYgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuZmlyc3QoKS0+Y29ubmVjdGlvbigp
LmlzQ2xvc2VkKCkpCisgICAgICAgIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnJlbW92ZUZpcnN0
KCk7CisgICAgaWYgKG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmlzRW1wdHkoKSkgeworICAgICAg
ICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QgPSBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0
cy50YWtlRmlyc3QoKTsKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6Omhh
bmRsZURhdGFiYXNlT3BlcmF0aW9ucyAtIFBvcHBlZCBhbiBvcGVyYXRpb24sIG5vdyB0aGVyZSBh
cmUgJXUgcGVuZGluZyIsIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnNpemUoKSk7CkBAIC0xNTcz
LDcgKzE1ODEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVyYXRpb25BbmRUcmFuc2Fj
dGlvblRpbWVyRmlyZWQoKQogCiAgICAgLy8gVGhlIGN1cnJlbnQgb3BlcmF0aW9uIG1pZ2h0IHJl
cXVpcmUgbXVsdGlwbGUgYXR0ZW1wdHMgdG8gaGFuZGxlLCBzbyB0cnkgdG8KICAgICAvLyBtYWtl
IGZ1cnRoZXIgcHJvZ3Jlc3Mgb24gaXQgbm93LgotICAgIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1
ZXN0KQorICAgIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ICYmICFtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0LT5jb25uZWN0aW9uKCkuaXNDbG9zZWQoKSkKICAgICAgICAgaGFuZGxlQ3VycmVudE9w
ZXJhdGlvbigpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362765</attachid>
            <date>2019-02-22 14:28:52 -0800</date>
            <delta_ts>2019-02-22 15:41:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194843-20190222142852.patch</filename>
            <type>text/plain</type>
            <size>6556</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZkYTUzZmU4ZTA0YWQ3
OWRkMDZjMTE3YzQxMGEwNDBiMmI5N2U3Ni4uNjdiZDAyZWE2ZWY2MjdmZWM4NDZjYjQ4Zjg4MDAx
MTFkNWQzNDk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAyLTIyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIHVuZGVyIElEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjppZGVudGlmaWVyKCkgY29uc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDgyMDMxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5pcXVlSURCRGF0YWJhc2Ugc2hvdWxkIGlnbm9yZSByZXF1ZXN0
cyBmcm9tIGNvbm5lY3Rpb25zIHRoYXQgYXJlIGFscmVhZHkgY2xvc2VkLgorCisgICAgICAgIFRl
c3RzIGFyZSBoYXJkIHRvIGNyZWF0ZSB3aXRob3V0IHNvbWUgdHJpY2tzIG9uIFVuaXF1ZUlEQkRh
dGFiYXNlIHNvIHRoaXMgZml4IGlzIHZlcmlmaWVkIG1hbnVhbGx5LiAKKyAgICAgICAgT25lIHRl
c3QgaXMgY3JlYXRlZCBieSBhZGRpbmcgZGVsYXkgdG8gVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5C
YWNraW5nU3RvcmUgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIHRvIG1ha2Ugc3VyZQorICAgICAg
ICBkaXNjb25uZWN0aW9uIG9mIHdlYiBwcm9jZXNzIGhhcHBlbnMgYmVmb3JlIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlLCBiZWNhdXNlIGRpZE9wZW5CYWNraW5nU3RvcmUK
KyAgICAgICAgbWF5IHN0YXJ0IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gYW5kIGFzayBm
b3IgaWRlbnRpZmllciBmcm9tIHRoZSBjb25uZWN0aW9uIHRoYXQgaXMgYWxyZWFkeSBnb25lLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6Y29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXNDbG9zZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhclN0YWxlUGVuZGluZ09wZW5E
QlJlcXVlc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OmhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVyYXRpb25BbmRUcmFuc2FjdGlvblRpbWVyRmlyZWQp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
OgorCiAyMDE5LTAyLTE5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQxNzIyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA4YzhiNzIwNTIyNDM3NjljYzllODNlMzQ5MDhhZDYz
YzQ2MzFhM2JiLi42YmUzNDMwYmZlOTRlNjA4NjFjNzYxNWUzMDgxOTI3OTE0MTI0MjNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMjA3LDYgKzIwNyw3IEBAIHZvaWQg
SURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb25uZWN0aW9uVG9DbGllbnRDbG9zZWQoKQogICAgICAg
ICAgICAgY29ubmVjdGlvbi0+Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQoKTsKICAgICB9CiAK
KyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbnMuY2xlYXIo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDE2MGFiZmVlYzk2MDAz
Y2JiMWRmMzM1Mjk3ZjdiMDk5ZDBmNjgwMGYuLmFhZmM1MzgwMjQ4MmI1NGYxZjdmMzZlYzI4Yzdh
ZTcxNWU5YWE5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTc5LDEyICs3
OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNv
bm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAgICAgdm9pZCBjb25uZWN0
aW9uVG9DbGllbnRDbG9zZWQoKTsKLQorICAgIGJvb2wgaXNDbG9zZWQoKSB7IHJldHVybiBtX2lz
Q2xvc2VkOyB9CiBwcml2YXRlOgogICAgIElEQkNvbm5lY3Rpb25Ub0NsaWVudChJREJDb25uZWN0
aW9uVG9DbGllbnREZWxlZ2F0ZSYpOwogICAgIAogICAgIFdlYWtQdHI8SURCQ29ubmVjdGlvblRv
Q2xpZW50RGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgSGFzaFNldDxVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24qPiBtX2RhdGFiYXNlQ29ubmVjdGlvbnM7CisgICAgYm9vbCBtX2lzQ2xvc2Vk
IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAKaW5kZXggNzIyZTdlOTQ2ODJkMzQ1NmFkNzFiZjVlYzYyMmIxZTBjNDM1NmQ2
My4uNWI5ZmFkNDBkMWIyYzgyM2Y2ZDVhYTFkOGExMjBhODE1ZjJmNmRhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCkBAIC0zNDQsNiArMzQ0LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSh1aW50NjRfdCBkZWxldGVkVmVyc2lvbikKICAgICBp
bnZva2VPcGVyYXRpb25BbmRUcmFuc2FjdGlvblRpbWVyKCk7CiB9CiAKK3ZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmNsZWFyU3RhbGVQZW5kaW5nT3BlbkRCUmVxdWVzdHMoKQoreworICAgIHdoaWxl
ICghbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09wZW5EQlJl
cXVlc3RzLmZpcnN0KCktPmNvbm5lY3Rpb24oKS5pc0Nsb3NlZCgpKQorICAgICAgICBtX3BlbmRp
bmdPcGVuREJSZXF1ZXN0cy5yZW1vdmVGaXJzdCgpOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CkBAIC0zNTMsNyArMzU5LDkgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxl
RGF0YWJhc2VPcGVyYXRpb25zKCkKICAgICBpZiAobV9kZWxldGVCYWNraW5nU3RvcmVJblByb2dy
ZXNzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VD
b25uZWN0aW9uIHx8IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8IG1fY3VycmVudE9wZW5E
QlJlcXVlc3QpIHsKKyAgICBjbGVhclN0YWxlUGVuZGluZ09wZW5EQlJlcXVlc3RzKCk7CisKKyAg
ICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uIHx8IG1fdmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uIHx8IChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ICYmICFtX2N1cnJlbnRPcGVu
REJSZXF1ZXN0LT5jb25uZWN0aW9uKCkuaXNDbG9zZWQoKSkpIHsKICAgICAgICAgLy8gV2UgY2Fu
J3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFiYXNlIG9wZXJhdGlvbnMgcmlnaHQgbm93LCBidXQg
d2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBoYW5kbGluZyBhIGRlbGV0ZSBvcGVyYXRpb24uCiAg
ICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRCUmVxdWVzdCAmJiAhbV9wZW5kaW5nT3BlbkRCUmVx
dWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0KCktPmlzRGVs
ZXRlUmVxdWVzdCgpKQogICAgICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVu
ZGluZ09wZW5EQlJlcXVlc3RzLnRha2VGaXJzdCgpOwpAQCAtMzY1LDggKzM3MywxMCBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmlzRW1wdHko
KSkKKyAgICBpZiAobV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fY3VycmVudE9wZW5EQlJlcXVlc3QgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LnRha2VGaXJzdCgpOwogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6aGFu
ZGxlRGF0YWJhc2VPcGVyYXRpb25zIC0gUG9wcGVkIGFuIG9wZXJhdGlvbiwgbm93IHRoZXJlIGFy
ZSAldSBwZW5kaW5nIiwgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuc2l6ZSgpKTsKQEAgLTE1NzMs
MTAgKzE1ODMsOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVyYXRpb25BbmRUcmFuc2Fj
dGlvblRpbWVyRmlyZWQoKQogCiAgICAgLy8gVGhlIGN1cnJlbnQgb3BlcmF0aW9uIG1pZ2h0IHJl
cXVpcmUgbXVsdGlwbGUgYXR0ZW1wdHMgdG8gaGFuZGxlLCBzbyB0cnkgdG8KICAgICAvLyBtYWtl
IGZ1cnRoZXIgcHJvZ3Jlc3Mgb24gaXQgbm93LgotICAgIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1
ZXN0KQorICAgIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ICYmICFtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0LT5jb25uZWN0aW9uKCkuaXNDbG9zZWQoKSkKICAgICAgICAgaGFuZGxlQ3VycmVudE9w
ZXJhdGlvbigpOwotCi0gICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KQorICAgIGVsc2UK
ICAgICAgICAgaGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKCk7CiAKICAgICBib29sIGhhZERlZmVy
cmVkVHJhbnNhY3Rpb25zID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDgzYzBj
OTA4YTU0ZTU5YjQ2M2EwZjY3MGRhOWUxOTI1NTRlMjk5NzcuLmRlMDYwZTY4ZDdmNDYyZDk0NTY0
NzUxNWE4NmZjMzIxNTI3MGQ2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC0yMTQsNiAr
MjE0LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bj4gdGFrZU5leHRSdW5uYWJsZVRyYW5zYWN0aW9uKGJvb2wmIGhhZERlZmVycmVkVHJhbnNhY3Rp
b25zKTsKIAogICAgIGJvb2wgcHJlcGFyZVRvRmluaXNoVHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYpOworICAgIAorICAgIHZvaWQgY2xlYXJTdGFsZVBlbmRpbmdPcGVu
REJSZXF1ZXN0cygpOwogCiAgICAgdm9pZCBwb3N0RGF0YWJhc2VUYXNrKENyb3NzVGhyZWFkVGFz
ayYmKTsKICAgICB2b2lkIHBvc3REYXRhYmFzZVRhc2tSZXBseShDcm9zc1RocmVhZFRhc2smJik7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>