<?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>207450</bug_id>
          
          <creation_ts>2020-02-09 20:47:34 -0800</creation_ts>
          <short_desc>[Curl] Implement NetworkStorageSession::get/set/deleteCookie</short_desc>
          <delta_ts>2020-02-14 15:18:19 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Windows 10</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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>basuke</cc>
    
    <cc>chris.reid</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>galpeter</cc>
    
    <cc>takashi.komori</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616760</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-09 20:47:34 -0800</bug_when>
    <thetext>Implementing methods for WK2 to operate on cookies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616761</commentid>
    <comment_count>1</comment_count>
      <attachid>390230</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-09 20:49:39 -0800</bug_when>
    <thetext>Created attachment 390230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616763</commentid>
    <comment_count>2</comment_count>
      <attachid>390231</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-09 20:58:22 -0800</bug_when>
    <thetext>Created attachment 390231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616766</commentid>
    <comment_count>3</comment_count>
      <attachid>390231</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-02-09 21:09:08 -0800</bug_when>
    <thetext>Comment on attachment 390231
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Is there any existing layout tests this patch will make green?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617079</commentid>
    <comment_count>4</comment_count>
      <attachid>390231</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2020-02-10 13:42:56 -0800</bug_when>
    <thetext>Comment on attachment 390231
Patch

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

Note: I&apos;m not a reviewer so these are just some informal comments.
The patch looks good overall.

&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:164
&gt; +    String url = (cookie.secure ? &quot;https&quot; : &quot;http&quot;) + (&quot;://&quot; + cookie.domain + cookie.path);

String + String is pretty inefficient in WebKit.
This could be `String url = makeString((cookie.secure ? &quot;https&quot;_s : &quot;http&quot;_s), &quot;://&quot;_s, cookie.domain, cookie.path)`

&gt; Source/WebCore/platform/network/curl/CookieJarDB.cpp:453
&gt; +    const String sql = &quot;SELECT name, value, domain, path, expires, httponly, secure, session FROM Cookie&quot;;

String literals should now have a _s suffix.

&gt; Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp:66
&gt; +    , m_cookieDatabase(makeUniqueRef&lt;CookieJarDB&gt;(sessionID.isEphemeral() ? &quot;:memory:&quot; : defaultCookieJarPath()))

Ditto &quot;:memory:&quot;_s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617577</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-11 13:10:49 -0800</bug_when>
    <thetext>Thanks for looking into it.

This achieves feature parity with the Cocoa API in terms of raw cookie management. We&apos;d like to be able to manage cookies on the datastore / processpool level over the remote debugging protocol. The harness / web inspector client is not there (yet) and it&apos;ll take time, so this does not make any tests green yet. But it looks innocent in terms of adding simple yet functional implementations for those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618706</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-13 14:08:19 -0800</bug_when>
    <thetext>I&apos;m happy to follow up to all the nite below privided you accept the patch if I do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618712</commentid>
    <comment_count>7</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-13 14:35:05 -0800</bug_when>
    <thetext>(In reply to Pavel Feldman from comment #6)
&gt; I&apos;m happy to follow up to all the nite below privided you accept the patch
&gt; if I do!

We found https://github.com/microsoft/playwright/blob/master/browser_patches/webkit/patches/bootstrap.diff and see there&apos;s a bunch of stuff in there that impact the ports we maintain. We&apos;re happy to review any of those changes that directly effect us, like this one, but larger changes that effect everyone would probably be better to have an Apple reviewer.

As a heads up I saw quite a few cases of `if PLATFORM(COCOA) || USE(CURL) || USE(SOUP)` in your diff so in those cases you can just get rid of the guard since that&apos;s all the upstream ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619079</commentid>
    <comment_count>8</comment_count>
      <attachid>390785</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-14 10:44:22 -0800</bug_when>
    <thetext>Created attachment 390785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619080</commentid>
    <comment_count>9</comment_count>
      <attachid>390231</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-14 10:48:02 -0800</bug_when>
    <thetext>Comment on attachment 390231
Patch

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

&gt;&gt; Source/WebCore/platform/network/curl/CookieJarCurl.cpp:164
&gt;&gt; +    String url = (cookie.secure ? &quot;https&quot; : &quot;http&quot;) + (&quot;://&quot; + cookie.domain + cookie.path);
&gt; 
&gt; String + String is pretty inefficient in WebKit.
&gt; This could be `String url = makeString((cookie.secure ? &quot;https&quot;_s : &quot;http&quot;_s), &quot;://&quot;_s, cookie.domain, cookie.path)`

Done.

&gt;&gt; Source/WebCore/platform/network/curl/CookieJarDB.cpp:453
&gt;&gt; +    const String sql = &quot;SELECT name, value, domain, path, expires, httponly, secure, session FROM Cookie&quot;;
&gt; 
&gt; String literals should now have a _s suffix.

Done. Note that other strings in this file don&apos;t use it. Should I be changing them as well or only update the code I touch?

&gt;&gt; Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp:66
&gt;&gt; +    , m_cookieDatabase(makeUniqueRef&lt;CookieJarDB&gt;(sessionID.isEphemeral() ? &quot;:memory:&quot; : defaultCookieJarPath()))
&gt; 
&gt; Ditto &quot;:memory:&quot;_s

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619082</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-14 10:48:33 -0800</bug_when>
    <thetext>&gt; We found
&gt; https://github.com/microsoft/playwright/blob/master/browser_patches/webkit/
&gt; patches/bootstrap.diff and see there&apos;s a bunch of stuff in there that impact
&gt; the ports we maintain. We&apos;re happy to review any of those changes that
&gt; directly effect us, like this one, but larger changes that effect everyone
&gt; would probably be better to have an Apple reviewer.

Yes, that&apos;s the plan. There is no rush and we&apos;d like to make sure everyone is happy about the process. All the WebCore and Web Inspector patches will go by the WebCore and Web Inspector teams. When you say ports you maintain, do you mean Windows or some other ports as well?

In the Windows land, we have modified Minibrowser that allows headless operation. If you are interested in seeing headless operation upstream, I&apos;m happy to to upload some patches. Other than that, we don&apos;t have much. This network patch is nearly the only change that we need for the win platform.


&gt; As a heads up I saw quite a few cases of `if PLATFORM(COCOA) || USE(CURL) ||
&gt; USE(SOUP)` in your diff so in those cases you can just get rid of the guard
&gt; since that&apos;s all the upstream ports.

We are building all the platforms and all these PLATFORM checks are either 3 lines above/below the actual change in diff format or a couple of places where we touched it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619086</commentid>
    <comment_count>11</comment_count>
      <attachid>390785</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-14 10:56:00 -0800</bug_when>
    <thetext>Comment on attachment 390785
Patch

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

Fix the &quot;:memory:&quot;_s and we&apos;re good.

&gt; Source/WebCore/platform/network/curl/CookieJarDB.cpp:467
&gt; +        Cookie cookie;
&gt; +        cookie.name = pstmt-&gt;getColumnText(0);
&gt; +        cookie.value = pstmt-&gt;getColumnText(1);
&gt; +        cookie.domain = pstmt-&gt;getColumnText(2).convertToASCIILowercase();
&gt; +        cookie.path = pstmt-&gt;getColumnText(3);
&gt; +        cookie.expires = (double)pstmt-&gt;getColumnInt64(4) * 1000;
&gt; +        cookie.httpOnly = (pstmt-&gt;getColumnInt(5) == 1);
&gt; +        cookie.secure = (pstmt-&gt;getColumnInt(6) == 1);
&gt; +        cookie.session = (pstmt-&gt;getColumnInt(7) == 1);

I think this is something we can do in a follow up but I&apos;m just making a note that this is probably something we&apos;d want to do in a local function since I see this code elsewhere in the file.

&gt; Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp:66
&gt; +    , m_cookieDatabase(makeUniqueRef&lt;CookieJarDB&gt;(sessionID.isEphemeral() ? &quot;:memory:&quot; : defaultCookieJarPath()))

Missed the &quot;:memory:&quot;_s here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619169</commentid>
    <comment_count>12</comment_count>
      <attachid>390806</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-14 13:33:14 -0800</bug_when>
    <thetext>Created attachment 390806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619173</commentid>
    <comment_count>13</comment_count>
      <attachid>390785</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2020-02-14 13:35:47 -0800</bug_when>
    <thetext>Comment on attachment 390785
Patch

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

&gt;&gt; Source/WebCore/platform/network/curl/CookieJarDB.cpp:467
&gt;&gt; +        cookie.session = (pstmt-&gt;getColumnInt(7) == 1);
&gt; 
&gt; I think this is something we can do in a follow up but I&apos;m just making a note that this is probably something we&apos;d want to do in a local function since I see this code elsewhere in the file.

Happy to follow up. Do you plan to support the samesite cookies? https://web.dev/samesite-cookies-explained/, https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1 ? It would touch this code.

&gt;&gt; Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp:66
&gt;&gt; +    , m_cookieDatabase(makeUniqueRef&lt;CookieJarDB&gt;(sessionID.isEphemeral() ? &quot;:memory:&quot; : defaultCookieJarPath()))
&gt; 
&gt; Missed the &quot;:memory:&quot;_s here

Ouch. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619186</commentid>
    <comment_count>14</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-14 13:54:10 -0800</bug_when>
    <thetext>(In reply to Pavel Feldman from comment #13)
&gt; Comment on attachment 390785 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390785&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/network/curl/CookieJarDB.cpp:467
&gt; &gt;&gt; +        cookie.session = (pstmt-&gt;getColumnInt(7) == 1);
&gt; &gt; 
&gt; &gt; I think this is something we can do in a follow up but I&apos;m just making a note that this is probably something we&apos;d want to do in a local function since I see this code elsewhere in the file.
&gt; 
&gt; Happy to follow up. Do you plan to support the samesite cookies?
&gt; https://web.dev/samesite-cookies-explained/,
&gt; https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1 ?
&gt; It would touch this code.

Yes that&apos;s something we are interested in supporting for the cURL networking layer but haven&apos;t had the resources yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619198</commentid>
    <comment_count>15</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-14 14:10:31 -0800</bug_when>
    <thetext>(In reply to Pavel Feldman from comment #10)
&gt; &gt; We found
&gt; &gt; https://github.com/microsoft/playwright/blob/master/browser_patches/webkit/
&gt; &gt; patches/bootstrap.diff and see there&apos;s a bunch of stuff in there that impact
&gt; &gt; the ports we maintain. We&apos;re happy to review any of those changes that
&gt; &gt; directly effect us, like this one, but larger changes that effect everyone
&gt; &gt; would probably be better to have an Apple reviewer.
&gt; 
&gt; Yes, that&apos;s the plan. There is no rush and we&apos;d like to make sure everyone
&gt; is happy about the process. All the WebCore and Web Inspector patches will
&gt; go by the WebCore and Web Inspector teams. When you say ports you maintain,
&gt; do you mean Windows or some other ports as well?

We at Sony maintain the WinCairo port, which includes the cURL networking backend, and the PlayStation port. The later doesn&apos;t have an EWS and we&apos;re working towards spinning up a buildbot in the next couple weeks. So its only there if you&apos;re looking for it.

Since you&apos;re with MS you should be aware that there is also the FTW port which we hope to more or less merge the AppleWin and WinCairo port so there&apos;s one Windows port to rule them all. The between that and WinCairo is that the rendering is through Direct2D.

&gt; In the Windows land, we have modified Minibrowser that allows headless
&gt; operation. If you are interested in seeing headless operation upstream, I&apos;m
&gt; happy to to upload some patches. Other than that, we don&apos;t have much. This
&gt; network patch is nearly the only change that we need for the win platform.

Headless could be interesting. We have Docker containers for all our build and test bots so that might come in handy later on. If you want to do it we&apos;re happy to review it.

&gt; &gt; As a heads up I saw quite a few cases of `if PLATFORM(COCOA) || USE(CURL) ||
&gt; &gt; USE(SOUP)` in your diff so in those cases you can just get rid of the guard
&gt; &gt; since that&apos;s all the upstream ports.
&gt; 
&gt; We are building all the platforms and all these PLATFORM checks are either 3
&gt; lines above/below the actual change in diff format or a couple of places
&gt; where we touched it.

Sure I&apos;m just mentioning it for when you land it you might want to look at whether some of the PLATFORM checks can be removed like the above or modified so they don&apos;t effect downstream ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619256</commentid>
    <comment_count>16</comment_count>
      <attachid>390806</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-14 15:17:45 -0800</bug_when>
    <thetext>Comment on attachment 390806
Patch

Clearing flags on attachment: 390806

Committed r256651: &lt;https://trac.webkit.org/changeset/256651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619257</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-14 15:17:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619258</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-14 15:18:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/59474769&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390230</attachid>
            <date>2020-02-09 20:49:39 -0800</date>
            <delta_ts>2020-02-09 20:58:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207450-20200209204939.patch</filename>
            <type>text/plain</type>
            <size>5413</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY1YWYyM2QyZTU4NThh
MmZkM2NiZjM3NDg1M2FiOGEzMWRiZWM2Ni4uNGRkNDBjZTA1MTAyZTU4NzI1ZGU1NDllYzYyMjJh
YjM2M2I4ODhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAyLTA5ICBQYXZl
bCBGZWxkbWFuICA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgW0N1cmxdIElt
cGxlbWVudCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldC9zZXQvZGVsZXRlQ29va2llCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0NTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXJE
Qjo6Z2V0QWxsQ29va2llcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckRCLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzZXRDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpnZXRBbGxDb29raWVzKToKKwogMjAyMC0wMi0wNyAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0cml2aWFsIGRlZmluaXRpb25zIGZyb20gRmVh
dHVyZURlZmluZXMueGNjb25maWcgdG8gUGxhdGZvcm1FbmFibGVDb2NvYS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcAppbmRl
eCAxMDE2MjRmMjkwMGE5NGNjN2QxYTg5OTg5Njc2ZDZiNDVhYjdmYTNkLi42MjQ2NGQyNTRjYjE2
M2YyNWI2N2RhNTA1ZTY4MmEwNzZhYjBlMzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKQEAgLTQ0NSw2ICs0NDUsMzIg
QEAgT3B0aW9uYWw8VmVjdG9yPENvb2tpZT4+IENvb2tpZUphckRCOjpzZWFyY2hDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAorVmVj
dG9yPENvb2tpZT4gQ29va2llSmFyREI6OmdldEFsbENvb2tpZXMoKQoreworICAgIFZlY3RvcjxD
b29raWU+IHJlc3VsdDsKKyAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFtX2RhdGFiYXNlLmlzT3Bl
bigpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIGNvbnN0IFN0cmluZyBzcWwgPSAiU0VM
RUNUIG5hbWUsIHZhbHVlLCBkb21haW4sIHBhdGgsIGV4cGlyZXMsIGh0dHBvbmx5LCBzZWN1cmUs
IHNlc3Npb24gRlJPTSBDb29raWUiOworICAgIGF1dG8gcHN0bXQgPSBtYWtlVW5pcXVlPFNRTGl0
ZVN0YXRlbWVudD4obV9kYXRhYmFzZSwgc3FsKTsKKyAgICBpZiAoIXBzdG10KQorICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIHBzdG10LT5wcmVwYXJlKCk7CisgICAgd2hpbGUgKHBzdG10LT5z
dGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBDb29raWUgY29va2llOworICAgICAgICBj
b29raWUubmFtZSA9IHBzdG10LT5nZXRDb2x1bW5UZXh0KDApOworICAgICAgICBjb29raWUudmFs
dWUgPSBwc3RtdC0+Z2V0Q29sdW1uVGV4dCgxKTsKKyAgICAgICAgY29va2llLmRvbWFpbiA9IHBz
dG10LT5nZXRDb2x1bW5UZXh0KDIpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CisgICAgICAg
IGNvb2tpZS5wYXRoID0gcHN0bXQtPmdldENvbHVtblRleHQoMyk7CisgICAgICAgIGNvb2tpZS5l
eHBpcmVzID0gKGRvdWJsZSlwc3RtdC0+Z2V0Q29sdW1uSW50NjQoNCkgKiAxMDAwOworICAgICAg
ICBjb29raWUuaHR0cE9ubHkgPSAocHN0bXQtPmdldENvbHVtbkludCg1KSA9PSAxKTsKKyAgICAg
ICAgY29va2llLnNlY3VyZSA9IChwc3RtdC0+Z2V0Q29sdW1uSW50KDYpID09IDEpOworICAgICAg
ICBjb29raWUuc2Vzc2lvbiA9IChwc3RtdC0+Z2V0Q29sdW1uSW50KDcpID09IDEpOworICAgICAg
ICByZXN1bHQuYXBwZW5kKFdURk1vdmUoY29va2llKSk7CisgICAgfQorICAgIHBzdG10LT5maW5h
bGl6ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgQ29va2llSmFyREI6Omhhc0h0
dHBPbmx5Q29va2llKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBhdXRvJiBzdGF0ZW1lbnQgPSBwcmVwYXJlZFN0YXRl
bWVudChDSEVDS19FWElTVFNfSFRUUE9OTFlfQ09PS0lFX1NRTCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oCmluZGV4IDI2ODdhZTc0
ZmI5ZDk5NDI5NzJiZWRjYWM2YWI5YjExNTlhN2U1MGYuLjExMmY2MzIxMjhiMWFhNzJiNDYzOWI2
MmEzZWI1YTc5ZTM3YzVmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJEQi5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBD
b29raWVBY2NlcHRQb2xpY3kgYWNjZXB0UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlcHRQ
b2xpY3k7IH0KIAogICAgIE9wdGlvbmFsPFZlY3RvcjxDb29raWU+PiBzZWFyY2hDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiByZXF1ZXN0VXJsLCBjb25zdCBPcHRpb25h
bDxib29sPiYgaHR0cE9ubHksIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBzZWN1cmUsIGNvbnN0IE9w
dGlvbmFsPGJvb2w+JiBzZXNzaW9uKTsKKyAgICBWZWN0b3I8Q29va2llPiBnZXRBbGxDb29raWVz
KCk7CiAgICAgYm9vbCBzZXRDb29raWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZSwgU291cmNlKTsKICAgICBib29sIHNldENvb2tpZShjb25z
dCBDb29raWUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDVj
ZjFlMWVhMmE3MTJhNzAzM2U4MzkwZGE3ODEyODNjNjIwYjFjYWEuLjljZGFjOTUwMGFiODI1Nzg1
OTRmYjg1Y2M4YjNkMGI3ZjA0NWI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3Vy
bC5jcHAKQEAgLTYyLDcgKzYyLDggQEAgc3RhdGljIFN0cmluZyBkZWZhdWx0Q29va2llSmFyUGF0
aCgpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBt
X2Nvb2tpZVN0b3JhZ2UobWFrZVVuaXF1ZVJlZjxDb29raWVKYXJDdXJsPigpKQotICAgICwgbV9j
b29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUphckRCPihkZWZhdWx0Q29va2llSmFy
UGF0aCgpKSkKKyAgICAvLyA6bWVtb3J5OiBjcmVhdGVzIGluLW1lbW9yeSBkYXRhYmFzZSwgc2Vl
IGh0dHBzOi8vd3d3LnNxbGl0ZS5vcmcvaW5tZW1vcnlkYi5odG1sCisgICAgLCBtX2Nvb2tpZURh
dGFiYXNlKG1ha2VVbmlxdWVSZWY8Q29va2llSmFyREI+KHNlc3Npb25JRC5pc0VwaGVtZXJhbCgp
ID8gIjptZW1vcnk6IiA6IGRlZmF1bHRDb29raWVKYXJQYXRoKCkpKQogewogfQogCkBAIC0xMTMs
MTQgKzExNCwxNCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25z
dCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYsIGNvbnN0CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldENvb2tpZShjb25zdCBDb29raWUmKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNl
dENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGZvciBXZWJLaXQgdG8gdXNlLgorICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRDb29raWUoKnRoaXMs
IGNvb2tpZSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUo
Y29uc3QgQ29va2llJikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUo
Y29uc3QgQ29va2llJiBjb29raWUpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgV2Vi
S2l0IHRvIHVzZS4KKyAgICBjb29raWVTdG9yYWdlKCkuZGVsZXRlQ29va2llKCp0aGlzLCBjb29r
aWUpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZSkgY29uc3QKQEAgLTE1Miw4ICsxNTMsNyBA
QCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgY29vawogCiBWZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmdldEFsbENvb2tpZXMoKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9y
IFdlYktpdCB0byB1c2UuCi0gICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gY29va2llU3RvcmFn
ZSgpLmdldEFsbENvb2tpZXMoKnRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390231</attachid>
            <date>2020-02-09 20:58:22 -0800</date>
            <delta_ts>2020-02-14 10:44:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207450-20200209205821.patch</filename>
            <type>text/plain</type>
            <size>7876</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY1YWYyM2QyZTU4NThh
MmZkM2NiZjM3NDg1M2FiOGEzMWRiZWM2Ni4uMjQxMWE0ZGI2MjBlNjkzMjc3NjU1NjhkN2ZjY2Uz
YmE5MjczYjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAyLTA5ICBQYXZl
bCBGZWxkbWFuICA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgW0N1cmxdIElt
cGxlbWVudCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldC9zZXQvZGVsZXRlQ29va2llCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0NTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUph
ckN1cmw6OmdldEFsbENvb2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFy
Q3VybDo6c2V0Q29va2llIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphckN1cmw6
OmRlbGV0ZUNvb2tpZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nv
b2tpZUphckN1cmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
REIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyREI6OmdldEFsbENvb2tpZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsQ29va2ll
cyk6CisKIDIwMjAtMDItMDcgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgdHJpdmlhbCBkZWZpbml0aW9ucyBmcm9tIEZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IHRvIFBsYXRmb3JtRW5hYmxlQ29jb2EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDVlY2JhNjZlZjk0OTg0
ZWJmZjVlM2ZmMDM0Mzc1YWJiNjhjYTcyZmEuLjJhOWMxM2I1MGU4MzQzZWI3YjY4Njg2NzUxYTI0
MTIwMTg1YmM3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTE0Nyw2ICsxNDcsMjUgQEAgdm9pZCBDb29r
aWVKYXJDdXJsOjpkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbikgY29uc3QKICAgICBjb29raWVKYXJEQi5kZWxldGVBbGxDb29raWVzKCk7CiB9CiAK
K1ZlY3RvcjxDb29raWU+IENvb2tpZUphckN1cmw6OmdldEFsbENvb2tpZXMoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29r
aWVKYXJEQiA9IHNlc3Npb24uY29va2llRGF0YWJhc2UoKTsKKyAgICByZXR1cm4gY29va2llSmFy
REIuZ2V0QWxsQ29va2llcygpOworfQorCit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IENvb2tpZSYgY29va2ll
KSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29raWVKYXJEQiA9IHNlc3Npb24uY29va2ll
RGF0YWJhc2UoKTsKKyAgICBjb29raWVKYXJEQi5zZXRDb29raWUoY29va2llKTsKK30KKwordm9p
ZCBDb29raWVKYXJDdXJsOjpkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBDb29raWUmIGNvb2tpZSkgY29uc3QKK3sKKyAgICBTdHJpbmcgdXJs
ID0gKGNvb2tpZS5zZWN1cmUgPyAiaHR0cHMiIDogImh0dHAiKSArICgiOi8vIiArIGNvb2tpZS5k
b21haW4gKyBjb29raWUucGF0aCk7CisgICAgQ29va2llSmFyREImIGNvb2tpZUphckRCID0gc2Vz
c2lvbi5jb29raWVEYXRhYmFzZSgpOworICAgIGNvb2tpZUphckRCLmRlbGV0ZUNvb2tpZSh1cmws
IGNvb2tpZS5uYW1lKTsKK30KKwogdm9pZCBDb29raWVKYXJDdXJsOjpkZWxldGVBbGxDb29raWVz
TW9kaWZpZWRTaW5jZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBXYWxsVGltZSkgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKaW5kZXggNWU5
NzRmNWZiZGI4YzA0OTc1YTU1MTFiMGRjNGExNDJkMTAxYTMwOC4uMzZjZTc4Nzc0MzljM2I3ZTFi
M2UyZDVhZWU1MDJkZmE3N2VlNTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCkBAIC01OCw2ICs1OCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcykgY29uc3Q7
CiAgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYp
IGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgV2FsbFRpbWUpIGNvbnN0OworICAgIFZlY3RvcjxDb29raWU+
IGdldEFsbENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7CisgICAg
dm9pZCBzZXRDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2ll
JikgY29uc3Q7CisgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgQ29va2llJikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyREIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUph
ckRCLmNwcAppbmRleCAxMDE2MjRmMjkwMGE5NGNjN2QxYTg5OTg5Njc2ZDZiNDVhYjdmYTNkLi42
MjQ2NGQyNTRjYjE2M2YyNWI2N2RhNTA1ZTY4MmEwNzZhYjBlMzkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKQEAgLTQ0
NSw2ICs0NDUsMzIgQEAgT3B0aW9uYWw8VmVjdG9yPENvb2tpZT4+IENvb2tpZUphckRCOjpzZWFy
Y2hDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QKICAgICByZXR1cm4gcmVzdWx0
czsKIH0KIAorVmVjdG9yPENvb2tpZT4gQ29va2llSmFyREI6OmdldEFsbENvb2tpZXMoKQorewor
ICAgIFZlY3RvcjxDb29raWU+IHJlc3VsdDsKKyAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFtX2Rh
dGFiYXNlLmlzT3BlbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIGNvbnN0IFN0cmlu
ZyBzcWwgPSAiU0VMRUNUIG5hbWUsIHZhbHVlLCBkb21haW4sIHBhdGgsIGV4cGlyZXMsIGh0dHBv
bmx5LCBzZWN1cmUsIHNlc3Npb24gRlJPTSBDb29raWUiOworICAgIGF1dG8gcHN0bXQgPSBtYWtl
VW5pcXVlPFNRTGl0ZVN0YXRlbWVudD4obV9kYXRhYmFzZSwgc3FsKTsKKyAgICBpZiAoIXBzdG10
KQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHBzdG10LT5wcmVwYXJlKCk7CisgICAgd2hp
bGUgKHBzdG10LT5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBDb29raWUgY29va2ll
OworICAgICAgICBjb29raWUubmFtZSA9IHBzdG10LT5nZXRDb2x1bW5UZXh0KDApOworICAgICAg
ICBjb29raWUudmFsdWUgPSBwc3RtdC0+Z2V0Q29sdW1uVGV4dCgxKTsKKyAgICAgICAgY29va2ll
LmRvbWFpbiA9IHBzdG10LT5nZXRDb2x1bW5UZXh0KDIpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNl
KCk7CisgICAgICAgIGNvb2tpZS5wYXRoID0gcHN0bXQtPmdldENvbHVtblRleHQoMyk7CisgICAg
ICAgIGNvb2tpZS5leHBpcmVzID0gKGRvdWJsZSlwc3RtdC0+Z2V0Q29sdW1uSW50NjQoNCkgKiAx
MDAwOworICAgICAgICBjb29raWUuaHR0cE9ubHkgPSAocHN0bXQtPmdldENvbHVtbkludCg1KSA9
PSAxKTsKKyAgICAgICAgY29va2llLnNlY3VyZSA9IChwc3RtdC0+Z2V0Q29sdW1uSW50KDYpID09
IDEpOworICAgICAgICBjb29raWUuc2Vzc2lvbiA9IChwc3RtdC0+Z2V0Q29sdW1uSW50KDcpID09
IDEpOworICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoY29va2llKSk7CisgICAgfQorICAg
IHBzdG10LT5maW5hbGl6ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgQ29va2ll
SmFyREI6Omhhc0h0dHBPbmx5Q29va2llKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkb21haW4sIGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBhdXRvJiBzdGF0ZW1lbnQgPSBw
cmVwYXJlZFN0YXRlbWVudChDSEVDS19FWElTVFNfSFRUUE9OTFlfQ09PS0lFX1NRTCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oCmlu
ZGV4IDI2ODdhZTc0ZmI5ZDk5NDI5NzJiZWRjYWM2YWI5YjExNTlhN2U1MGYuLjExMmY2MzIxMjhi
MWFhNzJiNDYzOWI2MmEzZWI1YTc5ZTM3YzVmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICBDb29raWVBY2NlcHRQb2xpY3kgYWNjZXB0UG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9hY2NlcHRQb2xpY3k7IH0KIAogICAgIE9wdGlvbmFsPFZlY3RvcjxDb29raWU+PiBzZWFy
Y2hDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiByZXF1ZXN0VXJsLCBj
b25zdCBPcHRpb25hbDxib29sPiYgaHR0cE9ubHksIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBzZWN1
cmUsIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBzZXNzaW9uKTsKKyAgICBWZWN0b3I8Q29va2llPiBn
ZXRBbGxDb29raWVzKCk7CiAgICAgYm9vbCBzZXRDb29raWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZSwgU291cmNlKTsKICAgICBib29sIHNl
dENvb2tpZShjb25zdCBDb29raWUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwu
Y3BwCmluZGV4IDVjZjFlMWVhMmE3MTJhNzAzM2U4MzkwZGE3ODEyODNjNjIwYjFjYWEuLjljZGFj
OTUwMGFiODI1Nzg1OTRmYjg1Y2M4YjNkMGI3ZjA0NWI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uQ3VybC5jcHAKQEAgLTYyLDcgKzYyLDggQEAgc3RhdGljIFN0cmluZyBkZWZhdWx0
Q29va2llSmFyUGF0aCgpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCiAgICAgLCBtX2Nvb2tpZVN0b3JhZ2UobWFrZVVuaXF1ZVJlZjxDb29raWVKYXJDdXJsPigp
KQotICAgICwgbV9jb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUphckRCPihkZWZh
dWx0Q29va2llSmFyUGF0aCgpKSkKKyAgICAvLyA6bWVtb3J5OiBjcmVhdGVzIGluLW1lbW9yeSBk
YXRhYmFzZSwgc2VlIGh0dHBzOi8vd3d3LnNxbGl0ZS5vcmcvaW5tZW1vcnlkYi5odG1sCisgICAg
LCBtX2Nvb2tpZURhdGFiYXNlKG1ha2VVbmlxdWVSZWY8Q29va2llSmFyREI+KHNlc3Npb25JRC5p
c0VwaGVtZXJhbCgpID8gIjptZW1vcnk6IiA6IGRlZmF1bHRDb29raWVKYXJQYXRoKCkpKQogewog
fQogCkBAIC0xMTMsMTQgKzExNCwxNCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0
Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYsIGNvbnN0CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KIH0KIAotdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZShjb25zdCBDb29raWUmKQordm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIHsKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGZvciBXZWJLaXQgdG8gdXNlLgorICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRD
b29raWUoKnRoaXMsIGNvb2tpZSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpk
ZWxldGVDb29raWUoY29uc3QgQ29va2llJikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpk
ZWxldGVDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KKyAgICBjb29raWVTdG9yYWdlKCkuZGVsZXRlQ29va2ll
KCp0aGlzLCBjb29raWUpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRl
Q29va2llKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZSkgY29uc3QKQEAgLTE1
Miw4ICsxNTMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29vawogCiBWZWN0b3I8Q29va2llPiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldEFsbENvb2tpZXMoKQogewotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgZm9yIFdlYktpdCB0byB1c2UuCi0gICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4g
Y29va2llU3RvcmFnZSgpLmdldEFsbENvb2tpZXMoKnRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBo
b3N0bmFtZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390785</attachid>
            <date>2020-02-14 10:44:22 -0800</date>
            <delta_ts>2020-02-14 13:33:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207450-20200214104421.patch</filename>
            <type>text/plain</type>
            <size>7889</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY1YWYyM2QyZTU4NThh
MmZkM2NiZjM3NDg1M2FiOGEzMWRiZWM2Ni4uMjQxMWE0ZGI2MjBlNjkzMjc3NjU1NjhkN2ZjY2Uz
YmE5MjczYjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAyLTA5ICBQYXZl
bCBGZWxkbWFuICA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgW0N1cmxdIElt
cGxlbWVudCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldC9zZXQvZGVsZXRlQ29va2llCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0NTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUph
ckN1cmw6OmdldEFsbENvb2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFy
Q3VybDo6c2V0Q29va2llIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphckN1cmw6
OmRlbGV0ZUNvb2tpZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nv
b2tpZUphckN1cmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
REIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyREI6OmdldEFsbENvb2tpZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsQ29va2ll
cyk6CisKIDIwMjAtMDItMDcgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgdHJpdmlhbCBkZWZpbml0aW9ucyBmcm9tIEZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IHRvIFBsYXRmb3JtRW5hYmxlQ29jb2EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDVlY2JhNjZlZjk0OTg0
ZWJmZjVlM2ZmMDM0Mzc1YWJiNjhjYTcyZmEuLmI4OWI4YTJjMmJmZjBkYzMzMTlhOWVmZGE4MzRm
YzFhYTljZGNiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTE0Nyw2ICsxNDcsMjUgQEAgdm9pZCBDb29r
aWVKYXJDdXJsOjpkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbikgY29uc3QKICAgICBjb29raWVKYXJEQi5kZWxldGVBbGxDb29raWVzKCk7CiB9CiAK
K1ZlY3RvcjxDb29raWU+IENvb2tpZUphckN1cmw6OmdldEFsbENvb2tpZXMoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29r
aWVKYXJEQiA9IHNlc3Npb24uY29va2llRGF0YWJhc2UoKTsKKyAgICByZXR1cm4gY29va2llSmFy
REIuZ2V0QWxsQ29va2llcygpOworfQorCit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IENvb2tpZSYgY29va2ll
KSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29raWVKYXJEQiA9IHNlc3Npb24uY29va2ll
RGF0YWJhc2UoKTsKKyAgICBjb29raWVKYXJEQi5zZXRDb29raWUoY29va2llKTsKK30KKwordm9p
ZCBDb29raWVKYXJDdXJsOjpkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBDb29raWUmIGNvb2tpZSkgY29uc3QKK3sKKyAgICBTdHJpbmcgdXJs
ID0gbWFrZVN0cmluZyhjb29raWUuc2VjdXJlID8gImh0dHBzIl9zIDogImh0dHAiX3MsICI6Ly8i
X3MsIGNvb2tpZS5kb21haW4sIGNvb2tpZS5wYXRoKTsKKyAgICBDb29raWVKYXJEQiYgY29va2ll
SmFyREIgPSBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCk7CisgICAgY29va2llSmFyREIuZGVsZXRl
Q29va2llKHVybCwgY29va2llLm5hbWUpOworfQorCiB2b2lkIENvb2tpZUphckN1cmw6OmRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIFdh
bGxUaW1lKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwu
aAppbmRleCA1ZTk3NGY1ZmJkYjhjMDQ5NzVhNTUxMWIwZGM0YTE0MmQxMDFhMzA4Li4zNmNlNzg3
NzQzOWMzYjdlMWIzZTJkNWFlZTUwMmRmYTc3ZWU1MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTU4LDYgKzU4
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5h
bWVzKSBjb25zdDsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJikgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5j
ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBXYWxsVGltZSkgY29uc3Q7CisgICAgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBj
b25zdDsKKyAgICB2b2lkIHNldENvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBj
b25zdCBDb29raWUmKSBjb25zdDsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBDb29raWUmKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyREIuY3BwCmluZGV4IDEwMTYyNGYyOTAwYTk0Y2M3ZDFhODk5ODk2NzZkNmI0
NWFiN2ZhM2QuLjI1OTJlYmU3NDE3YTE4YzI2MWI3ZWU1ZDgxNjBiOWU4MTQ5YzIzMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRC
LmNwcApAQCAtNDQ1LDYgKzQ0NSwzMiBAQCBPcHRpb25hbDxWZWN0b3I8Q29va2llPj4gQ29va2ll
SmFyREI6OnNlYXJjaENvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdAogICAgIHJl
dHVybiByZXN1bHRzOwogfQogCitWZWN0b3I8Q29va2llPiBDb29raWVKYXJEQjo6Z2V0QWxsQ29v
a2llcygpCit7CisgICAgVmVjdG9yPENvb2tpZT4gcmVzdWx0OworICAgIGlmICghaXNFbmFibGVk
KCkgfHwgIW1fZGF0YWJhc2UuaXNPcGVuKCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
Y29uc3QgU3RyaW5nIHNxbCA9ICJTRUxFQ1QgbmFtZSwgdmFsdWUsIGRvbWFpbiwgcGF0aCwgZXhw
aXJlcywgaHR0cG9ubHksIHNlY3VyZSwgc2Vzc2lvbiBGUk9NIENvb2tpZSJfczsKKyAgICBhdXRv
IHBzdG10ID0gbWFrZVVuaXF1ZTxTUUxpdGVTdGF0ZW1lbnQ+KG1fZGF0YWJhc2UsIHNxbCk7Cisg
ICAgaWYgKCFwc3RtdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICBwc3RtdC0+cHJlcGFy
ZSgpOworICAgIHdoaWxlIChwc3RtdC0+c3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAg
Q29va2llIGNvb2tpZTsKKyAgICAgICAgY29va2llLm5hbWUgPSBwc3RtdC0+Z2V0Q29sdW1uVGV4
dCgwKTsKKyAgICAgICAgY29va2llLnZhbHVlID0gcHN0bXQtPmdldENvbHVtblRleHQoMSk7Cisg
ICAgICAgIGNvb2tpZS5kb21haW4gPSBwc3RtdC0+Z2V0Q29sdW1uVGV4dCgyKS5jb252ZXJ0VG9B
U0NJSUxvd2VyY2FzZSgpOworICAgICAgICBjb29raWUucGF0aCA9IHBzdG10LT5nZXRDb2x1bW5U
ZXh0KDMpOworICAgICAgICBjb29raWUuZXhwaXJlcyA9IChkb3VibGUpcHN0bXQtPmdldENvbHVt
bkludDY0KDQpICogMTAwMDsKKyAgICAgICAgY29va2llLmh0dHBPbmx5ID0gKHBzdG10LT5nZXRD
b2x1bW5JbnQoNSkgPT0gMSk7CisgICAgICAgIGNvb2tpZS5zZWN1cmUgPSAocHN0bXQtPmdldENv
bHVtbkludCg2KSA9PSAxKTsKKyAgICAgICAgY29va2llLnNlc3Npb24gPSAocHN0bXQtPmdldENv
bHVtbkludCg3KSA9PSAxKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkp
OworICAgIH0KKyAgICBwc3RtdC0+ZmluYWxpemUoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBib29sIENvb2tpZUphckRCOjpoYXNIdHRwT25seUNvb2tpZShjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgYXV0byYg
c3RhdGVtZW50ID0gcHJlcGFyZWRTdGF0ZW1lbnQoQ0hFQ0tfRVhJU1RTX0hUVFBPTkxZX0NPT0tJ
RV9TUUwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckRCLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29v
a2llSmFyREIuaAppbmRleCAyNjg3YWU3NGZiOWQ5OTQyOTcyYmVkY2FjNmFiOWIxMTU5YTdlNTBm
Li4xMTJmNjMyMTI4YjFhYTcyYjQ2MzliNjJhM2ViNWE3OWUzN2M1ZjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuaApAQCAtNTcs
NiArNTcsNyBAQCBwdWJsaWM6CiAgICAgQ29va2llQWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0UG9saWN5OyB9CiAKICAgICBPcHRpb25hbDxWZWN0b3I8
Q29va2llPj4gc2VhcmNoQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYg
cmVxdWVzdFVybCwgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGh0dHBPbmx5LCBjb25zdCBPcHRpb25h
bDxib29sPiYgc2VjdXJlLCBjb25zdCBPcHRpb25hbDxib29sPiYgc2Vzc2lvbik7CisgICAgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIGJvb2wgc2V0Q29va2llKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWUsIFNvdXJjZSk7
CiAgICAgYm9vbCBzZXRDb29raWUoY29uc3QgQ29va2llJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcAppbmRleCA1Y2YxZTFlYTJhNzEyYTcwMzNlODM5MGRhNzgxMjgzYzYy
MGIxY2FhLi45Y2RhYzk1MDBhYjgyNTc4NTk0ZmI4NWNjOGIzZDBiN2YwNDViNTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCkBAIC02Miw3ICs2Miw4IEBAIHN0YXRpYyBT
dHJpbmcgZGVmYXVsdENvb2tpZUphclBhdGgoKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb29raWVTdG9yYWdlKG1ha2VVbmlxdWVSZWY8Q29v
a2llSmFyQ3VybD4oKSkKLSAgICAsIG1fY29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxDb29r
aWVKYXJEQj4oZGVmYXVsdENvb2tpZUphclBhdGgoKSkpCisgICAgLy8gOm1lbW9yeTogY3JlYXRl
cyBpbi1tZW1vcnkgZGF0YWJhc2UsIHNlZSBodHRwczovL3d3dy5zcWxpdGUub3JnL2lubWVtb3J5
ZGIuaHRtbAorICAgICwgbV9jb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUphckRC
PihzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/ICI6bWVtb3J5OiIgOiBkZWZhdWx0Q29va2llSmFy
UGF0aCgpKSkKIHsKIH0KIApAQCAtMTEzLDE0ICsxMTQsMTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mLCBjb25zdCBVUkwmLCBj
b25zdAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFdlYktpdCB0byB1c2UuCiB9CiAKLXZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWUoY29uc3QgQ29va2llJikKK3ZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCiB7
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KKyAgICBjb29raWVT
dG9yYWdlKCkuc2V0Q29va2llKCp0aGlzLCBjb29raWUpOwogfQogCi12b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llKGNvbnN0IENvb2tpZSYpCit2b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llKGNvbnN0IENvb2tpZSYgY29va2llKQogewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgZm9yIFdlYktpdCB0byB1c2UuCisgICAgY29va2llU3RvcmFnZSgp
LmRlbGV0ZUNvb2tpZSgqdGhpcywgY29va2llKTsKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlbGV0ZUNvb2tpZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWUp
IGNvbnN0CkBAIC0xNTIsOCArMTUzLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2sKIAogVmVj
dG9yPENvb2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRBbGxDb29raWVzKCkKIHsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBXZWJLaXQgdG8gdXNlLgotICAgIHJldHVybiB7IH07
CisgICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5nZXRBbGxDb29raWVzKCp0aGlzKTsKIH0KIAog
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hT
ZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390806</attachid>
            <date>2020-02-14 13:33:14 -0800</date>
            <delta_ts>2020-02-14 15:17:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207450-20200214133313.patch</filename>
            <type>text/plain</type>
            <size>7891</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY1YWYyM2QyZTU4NThh
MmZkM2NiZjM3NDg1M2FiOGEzMWRiZWM2Ni4uMjQxMWE0ZGI2MjBlNjkzMjc3NjU1NjhkN2ZjY2Uz
YmE5MjczYjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAyLTA5ICBQYXZl
bCBGZWxkbWFuICA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgW0N1cmxdIElt
cGxlbWVudCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldC9zZXQvZGVsZXRlQ29va2llCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0NTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUph
ckN1cmw6OmdldEFsbENvb2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFy
Q3VybDo6c2V0Q29va2llIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphckN1cmw6
OmRlbGV0ZUNvb2tpZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nv
b2tpZUphckN1cmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
REIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyREI6OmdldEFsbENvb2tpZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsQ29va2ll
cyk6CisKIDIwMjAtMDItMDcgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgdHJpdmlhbCBkZWZpbml0aW9ucyBmcm9tIEZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IHRvIFBsYXRmb3JtRW5hYmxlQ29jb2EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDVlY2JhNjZlZjk0OTg0
ZWJmZjVlM2ZmMDM0Mzc1YWJiNjhjYTcyZmEuLmI4OWI4YTJjMmJmZjBkYzMzMTlhOWVmZGE4MzRm
YzFhYTljZGNiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTE0Nyw2ICsxNDcsMjUgQEAgdm9pZCBDb29r
aWVKYXJDdXJsOjpkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbikgY29uc3QKICAgICBjb29raWVKYXJEQi5kZWxldGVBbGxDb29raWVzKCk7CiB9CiAK
K1ZlY3RvcjxDb29raWU+IENvb2tpZUphckN1cmw6OmdldEFsbENvb2tpZXMoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29r
aWVKYXJEQiA9IHNlc3Npb24uY29va2llRGF0YWJhc2UoKTsKKyAgICByZXR1cm4gY29va2llSmFy
REIuZ2V0QWxsQ29va2llcygpOworfQorCit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IENvb2tpZSYgY29va2ll
KSBjb25zdAoreworICAgIENvb2tpZUphckRCJiBjb29raWVKYXJEQiA9IHNlc3Npb24uY29va2ll
RGF0YWJhc2UoKTsKKyAgICBjb29raWVKYXJEQi5zZXRDb29raWUoY29va2llKTsKK30KKwordm9p
ZCBDb29raWVKYXJDdXJsOjpkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBDb29raWUmIGNvb2tpZSkgY29uc3QKK3sKKyAgICBTdHJpbmcgdXJs
ID0gbWFrZVN0cmluZyhjb29raWUuc2VjdXJlID8gImh0dHBzIl9zIDogImh0dHAiX3MsICI6Ly8i
X3MsIGNvb2tpZS5kb21haW4sIGNvb2tpZS5wYXRoKTsKKyAgICBDb29raWVKYXJEQiYgY29va2ll
SmFyREIgPSBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCk7CisgICAgY29va2llSmFyREIuZGVsZXRl
Q29va2llKHVybCwgY29va2llLm5hbWUpOworfQorCiB2b2lkIENvb2tpZUphckN1cmw6OmRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIFdh
bGxUaW1lKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwu
aAppbmRleCA1ZTk3NGY1ZmJkYjhjMDQ5NzVhNTUxMWIwZGM0YTE0MmQxMDFhMzA4Li4zNmNlNzg3
NzQzOWMzYjdlMWIzZTJkNWFlZTUwMmRmYTc3ZWU1MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTU4LDYgKzU4
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5h
bWVzKSBjb25zdDsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJikgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5j
ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBXYWxsVGltZSkgY29uc3Q7CisgICAgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBj
b25zdDsKKyAgICB2b2lkIHNldENvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBj
b25zdCBDb29raWUmKSBjb25zdDsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBDb29raWUmKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyREIuY3BwCmluZGV4IDEwMTYyNGYyOTAwYTk0Y2M3ZDFhODk5ODk2NzZkNmI0
NWFiN2ZhM2QuLjI1OTJlYmU3NDE3YTE4YzI2MWI3ZWU1ZDgxNjBiOWU4MTQ5YzIzMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRC
LmNwcApAQCAtNDQ1LDYgKzQ0NSwzMiBAQCBPcHRpb25hbDxWZWN0b3I8Q29va2llPj4gQ29va2ll
SmFyREI6OnNlYXJjaENvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdAogICAgIHJl
dHVybiByZXN1bHRzOwogfQogCitWZWN0b3I8Q29va2llPiBDb29raWVKYXJEQjo6Z2V0QWxsQ29v
a2llcygpCit7CisgICAgVmVjdG9yPENvb2tpZT4gcmVzdWx0OworICAgIGlmICghaXNFbmFibGVk
KCkgfHwgIW1fZGF0YWJhc2UuaXNPcGVuKCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
Y29uc3QgU3RyaW5nIHNxbCA9ICJTRUxFQ1QgbmFtZSwgdmFsdWUsIGRvbWFpbiwgcGF0aCwgZXhw
aXJlcywgaHR0cG9ubHksIHNlY3VyZSwgc2Vzc2lvbiBGUk9NIENvb2tpZSJfczsKKyAgICBhdXRv
IHBzdG10ID0gbWFrZVVuaXF1ZTxTUUxpdGVTdGF0ZW1lbnQ+KG1fZGF0YWJhc2UsIHNxbCk7Cisg
ICAgaWYgKCFwc3RtdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICBwc3RtdC0+cHJlcGFy
ZSgpOworICAgIHdoaWxlIChwc3RtdC0+c3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAg
Q29va2llIGNvb2tpZTsKKyAgICAgICAgY29va2llLm5hbWUgPSBwc3RtdC0+Z2V0Q29sdW1uVGV4
dCgwKTsKKyAgICAgICAgY29va2llLnZhbHVlID0gcHN0bXQtPmdldENvbHVtblRleHQoMSk7Cisg
ICAgICAgIGNvb2tpZS5kb21haW4gPSBwc3RtdC0+Z2V0Q29sdW1uVGV4dCgyKS5jb252ZXJ0VG9B
U0NJSUxvd2VyY2FzZSgpOworICAgICAgICBjb29raWUucGF0aCA9IHBzdG10LT5nZXRDb2x1bW5U
ZXh0KDMpOworICAgICAgICBjb29raWUuZXhwaXJlcyA9IChkb3VibGUpcHN0bXQtPmdldENvbHVt
bkludDY0KDQpICogMTAwMDsKKyAgICAgICAgY29va2llLmh0dHBPbmx5ID0gKHBzdG10LT5nZXRD
b2x1bW5JbnQoNSkgPT0gMSk7CisgICAgICAgIGNvb2tpZS5zZWN1cmUgPSAocHN0bXQtPmdldENv
bHVtbkludCg2KSA9PSAxKTsKKyAgICAgICAgY29va2llLnNlc3Npb24gPSAocHN0bXQtPmdldENv
bHVtbkludCg3KSA9PSAxKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkp
OworICAgIH0KKyAgICBwc3RtdC0+ZmluYWxpemUoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBib29sIENvb2tpZUphckRCOjpoYXNIdHRwT25seUNvb2tpZShjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgYXV0byYg
c3RhdGVtZW50ID0gcHJlcGFyZWRTdGF0ZW1lbnQoQ0hFQ0tfRVhJU1RTX0hUVFBPTkxZX0NPT0tJ
RV9TUUwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckRCLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29v
a2llSmFyREIuaAppbmRleCAyNjg3YWU3NGZiOWQ5OTQyOTcyYmVkY2FjNmFiOWIxMTU5YTdlNTBm
Li4xMTJmNjMyMTI4YjFhYTcyYjQ2MzliNjJhM2ViNWE3OWUzN2M1ZjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuaApAQCAtNTcs
NiArNTcsNyBAQCBwdWJsaWM6CiAgICAgQ29va2llQWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0UG9saWN5OyB9CiAKICAgICBPcHRpb25hbDxWZWN0b3I8
Q29va2llPj4gc2VhcmNoQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYg
cmVxdWVzdFVybCwgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGh0dHBPbmx5LCBjb25zdCBPcHRpb25h
bDxib29sPiYgc2VjdXJlLCBjb25zdCBPcHRpb25hbDxib29sPiYgc2Vzc2lvbik7CisgICAgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIGJvb2wgc2V0Q29va2llKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWUsIFNvdXJjZSk7
CiAgICAgYm9vbCBzZXRDb29raWUoY29uc3QgQ29va2llJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcAppbmRleCA1Y2YxZTFlYTJhNzEyYTcwMzNlODM5MGRhNzgxMjgzYzYy
MGIxY2FhLi42YjkwM2NkNzYwMmJlZGI0NWQ0OWVjNWZhYzI5ZTM1MzRhMjI1ZDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCkBAIC02Miw3ICs2Miw4IEBAIHN0YXRpYyBT
dHJpbmcgZGVmYXVsdENvb2tpZUphclBhdGgoKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb29raWVTdG9yYWdlKG1ha2VVbmlxdWVSZWY8Q29v
a2llSmFyQ3VybD4oKSkKLSAgICAsIG1fY29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxDb29r
aWVKYXJEQj4oZGVmYXVsdENvb2tpZUphclBhdGgoKSkpCisgICAgLy8gOm1lbW9yeTogY3JlYXRl
cyBpbi1tZW1vcnkgZGF0YWJhc2UsIHNlZSBodHRwczovL3d3dy5zcWxpdGUub3JnL2lubWVtb3J5
ZGIuaHRtbAorICAgICwgbV9jb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUphckRC
PihzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/ICI6bWVtb3J5OiJfcyA6IGRlZmF1bHRDb29raWVK
YXJQYXRoKCkpKQogewogfQogCkBAIC0xMTMsMTQgKzExNCwxNCBAQCB2b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYs
IGNvbnN0CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KIH0KIAot
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZShjb25zdCBDb29raWUmKQordm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkK
IHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBXZWJLaXQgdG8gdXNlLgorICAgIGNvb2tp
ZVN0b3JhZ2UoKS5zZXRDb29raWUoKnRoaXMsIGNvb2tpZSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUoY29uc3QgQ29va2llJikKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCiB7Ci0gICAg
Ly8gRklYTUU6IEltcGxlbWVudCBmb3IgV2ViS2l0IHRvIHVzZS4KKyAgICBjb29raWVTdG9yYWdl
KCkuZGVsZXRlQ29va2llKCp0aGlzLCBjb29raWUpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVsZXRlQ29va2llKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tp
ZSkgY29uc3QKQEAgLTE1Miw4ICsxNTMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29vawogCiBW
ZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldEFsbENvb2tpZXMoKQogewot
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFdlYktpdCB0byB1c2UuCi0gICAgcmV0dXJuIHsg
fTsKKyAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmdldEFsbENvb2tpZXMoKnRoaXMpOwogfQog
CiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFz
aFNldDxTdHJpbmc+JiBob3N0bmFtZXMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>