<?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>227863</bug_id>
          
          <creation_ts>2021-07-11 16:37:20 -0700</creation_ts>
          <short_desc>[curl] Can&apos;t finish loading some websites after r271946 started throttling low priority resources</short_desc>
          <delta_ts>2021-07-12 21:40:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>basuke</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</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>1776232</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-11 16:37:20 -0700</bug_when>
    <thetext>[curl] Can&apos;t finish loading some websites after r271946 started throttle low priority resources

1. Remove the cache directory manually
   C:\Users\&lt;username&gt;\AppData\Local\Apple Computer\WebKit
2. Start WinCairo WK2 MiniBrowser
3. Go to https://dictionary.goo.ne.jp/

Actual: Doesn&apos;t finish loading, and WebKitNetworkProcess.exe becomes busy
Expected: Finish loading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776233</commentid>
    <comment_count>1</comment_count>
      <attachid>433293</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-11 16:39:14 -0700</bug_when>
    <thetext>Created attachment 433293
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776256</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-11 23:32:23 -0700</bug_when>
    <thetext>Even though there are active jobs, curl_multi_fdset constantly
returned -1 because CURLMOPT_MAX_HOST_CONNECTIONS was set to
6 (CurlDefaultMaxHostConnections) and 6 handles were paused.

17 active jobs

6 paused jobs:
https://dictionary.goo.ne.jp/img/nandoku_kanji/promotion/300x90.jpg
https://dictionary.goo.ne.jp/img/knowledge/exam_english_word.jpg
https://dictionary.goo.ne.jp/img/knowledge/english_column.jpg
https://dictionary.goo.ne.jp/img/header/goo.png
https://dictionary.goo.ne.jp/img/knowledge/kanji_yugi.jpg
https://dictionary.goo.ne.jp/img/dictionary.png

11 non paused jobs:
https://dictionary.goo.ne.jp/css/newAttention.css?1586565636
https://dictionary.goo.ne.jp/hyge_modified/js/page.js?1583994318
https://dictionary.goo.ne.jp/img/knowledge/study_incase.jpg
https://dictionary.goo.ne.jp/js/suggest.js?1583994318
https://dictionary.goo.ne.jp/img/header/dictionary.png
https://dictionary.goo.ne.jp/js/script.js?1583994318
https://dictionary.goo.ne.jp/js/headerFix.js?1583994318
https://dictionary.goo.ne.jp/js/personal.js?1613702118
https://dictionary.goo.ne.jp/hyge_modified/js/sp_header_app_balloon.js?1583994318
https://dictionary.goo.ne.jp/img/knowledge/quote.jpg
https://dictionary.goo.ne.jp/css/addLogin.css?1596157312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776260</commentid>
    <comment_count>3</comment_count>
      <attachid>433300</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-12 00:06:18 -0700</bug_when>
    <thetext>Created attachment 433300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776414</commentid>
    <comment_count>4</comment_count>
      <attachid>433300</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-07-12 12:55:00 -0700</bug_when>
    <thetext>Comment on attachment 433300
Patch

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

This is informal review: Looks good to me.

One question on cancel(). Isn&apos;t it safe to add status check before cancelling the request which did not start yet? It seems harmless, but it is the question of the reader of this code that start() and cancel() are related method and it should be taken care of the status of the flag.

Other thing we should take care is there&apos;s so many boolean flags in the code and it makes reviewing so hard. For instance, m_shouldSuspend and m_didStart is tied together very closely. It can be merged into tri-state enum like { StartSuspended, WaitingForStart, DidStart }. That may be out of scope of this bug. I&apos;ll open a new bug to make the logic clean.

&gt; Source/WebCore/platform/network/curl/CurlRequest.cpp:-646
&gt; -        m_shouldSuspend = m_isPausedOfRequest = paused;

This is good. m_shouldSuspend is used before setup, there&apos;s no need to update this. And it makes the purpose of m_shouldSuspend clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776421</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-12 13:35:19 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #4)
&gt; One question on cancel(). Isn&apos;t it safe to add status check before
&gt; cancelling the request which did not start yet? It seems harmless, but it is
&gt; the question of the reader of this code that start() and cancel() are
&gt; related method and it should be taken care of the status of the flag.

Good point. Will try to fix.

&gt; Other thing we should take care is there&apos;s so many boolean flags in the code
&gt; and it makes reviewing so hard. For instance, m_shouldSuspend and m_didStart
&gt; is tied together very closely. It can be merged into tri-state enum like {
&gt; StartSuspended, WaitingForStart, DidStart }. That may be out of scope of
&gt; this bug. I&apos;ll open a new bug to make the logic clean.

Umm, I&apos;m not confident it can properly handle the following four cases.

case #1:
  CurlRequest(ShouldSuspend::No)
  CurlRequest::start()
  CurlRequest::suspend()

case #2:
  CurlRequest(ShouldSuspend::No)
  CurlRequest::suspend()
  CurlRequest::start()
  CurlRequest::resume()

case #3:
  CurlRequest(ShouldSuspend::Yes)
  CurlRequest::start()
  CurlRequest::resume()

case #4:
  CurlRequest(ShouldSuspend::Yes)
  CurlRequest::resume()
  CurlRequest::start()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776465</commentid>
    <comment_count>6</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-07-12 15:01:16 -0700</bug_when>
    <thetext>&gt; Umm, I&apos;m not confident it can properly handle the following four cases.

Once it get m_didStart == true, m_shouldSuspend has no effect entirely. So suspend/resume is rewritten like this:

void CurlRequest::suspend()
{
    ASSERT(isMainThread());

    if (m_didStart)
        setRequestPaused(true);
    else
        m_shouldSuspend = true;
}

void CurlRequest::resume()
{
    ASSERT(isMainThread());

    if (m_didStart)
        setRequestPaused(false);
    else {
        m_shouldSuspend = false;
        start();
    }
}

Then it is more clear that state to manage is:

1. m_didStart == false &amp;&amp; m_shouldSuspend = true
2. m_didStart == false &amp;&amp; m_shouldSuspend = false
3. m_didStart == true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776466</commentid>
    <comment_count>7</comment_count>
      <attachid>433300</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-07-12 15:05:35 -0700</bug_when>
    <thetext>Comment on attachment 433300
Patch

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

&gt; Source/WebCore/platform/network/curl/CurlRequest.cpp:113
&gt; +    if (m_shouldSuspend)

It is safe to check m_didStart to escape early. Obviously it is a logic error to call start() twice, but it&apos;s nice to have to make the intent clear.
&gt; if (m_shouldSuspend || m_didStart)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776493</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-12 16:48:38 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #6)
&gt; &gt; Umm, I&apos;m not confident it can properly handle the following four cases.
&gt; 
&gt; Once it get m_didStart == true, m_shouldSuspend has no effect entirely. So
&gt; suspend/resume is rewritten like this:
&gt; 
&gt; void CurlRequest::suspend()
&gt; {
&gt;     ASSERT(isMainThread());
&gt; 
&gt;     if (m_didStart)
&gt;         setRequestPaused(true);
&gt;     else
&gt;         m_shouldSuspend = true;
&gt; }
&gt; 
&gt; void CurlRequest::resume()
&gt; {
&gt;     ASSERT(isMainThread());
&gt; 
&gt;     if (m_didStart)
&gt;         setRequestPaused(false);
&gt;     else {
&gt;         m_shouldSuspend = false;
&gt;         start();
&gt;     }
&gt; }
&gt; 
&gt; Then it is more clear that state to manage is:
&gt; 
&gt; 1. m_didStart == false &amp;&amp; m_shouldSuspend = true
&gt; 2. m_didStart == false &amp;&amp; m_shouldSuspend = false
&gt; 3. m_didStart == true

I got it. I will revise the patch with your tri-state idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776495</commentid>
    <comment_count>9</comment_count>
      <attachid>433300</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-12 16:49:53 -0700</bug_when>
    <thetext>Comment on attachment 433300
Patch

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

&gt;&gt; Source/WebCore/platform/network/curl/CurlRequest.cpp:113
&gt;&gt; +    if (m_shouldSuspend)
&gt; 
&gt; It is safe to check m_didStart to escape early. Obviously it is a logic error to call start() twice, but it&apos;s nice to have to make the intent clear.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776515</commentid>
    <comment_count>10</comment_count>
      <attachid>433380</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-12 17:41:29 -0700</bug_when>
    <thetext>Created attachment 433380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776542</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-12 21:39:35 -0700</bug_when>
    <thetext>Committed r279864 (239617@main): &lt;https://commits.webkit.org/239617@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433380.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776543</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-12 21:40:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/80499301&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433293</attachid>
            <date>2021-07-11 16:39:14 -0700</date>
            <delta_ts>2021-07-12 00:06:07 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>2144</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuY3BwCmluZGV4IDVhMmI3MzA4NDYwZi4uZjlhODA5MzgzZWRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKQEAgLTEx
MCw2ICsxMTAsMTAgQEAgdm9pZCBDdXJsUmVxdWVzdDo6c3RhcnQoKQogCiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAorICAgIGlmIChtX3Nob3VsZFN1c3BlbmQpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2RpZFN0YXJ0ID0gdHJ1ZTsKKwogICAgIGlmIChtX3JlcXVlc3QudXJsKCkuaXNM
b2NhbEZpbGUoKSkKICAgICAgICAgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZShtX3Jl
cXVlc3QudXJsKCkpOwogICAgIGVsc2UKQEAgLTE2MywxNCArMTY3LDIwIEBAIHZvaWQgQ3VybFJl
cXVlc3Q6OnN1c3BlbmQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBz
ZXRSZXF1ZXN0UGF1c2VkKHRydWUpOworICAgIG1fc2hvdWxkU3VzcGVuZCA9IHRydWU7CisgICAg
aWYgKG1fZGlkU3RhcnQpCisgICAgICAgIHNldFJlcXVlc3RQYXVzZWQodHJ1ZSk7CiB9CiAKIHZv
aWQgQ3VybFJlcXVlc3Q6OnJlc3VtZSgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAotICAgIHNldFJlcXVlc3RQYXVzZWQoZmFsc2UpOworICAgIG1fc2hvdWxkU3VzcGVuZCA9IGZh
bHNlOworICAgIGlmIChtX2RpZFN0YXJ0KQorICAgICAgICBzZXRSZXF1ZXN0UGF1c2VkKGZhbHNl
KTsKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0KCk7CiB9CiAKIC8qIGB0aGlzYCBpcyBwcm90ZWN0
ZWQgaW5zaWRlIHRoaXMgbWV0aG9kLiAqLwpAQCAtMjM4LDkgKzI0OCw2IEBAIENVUkwqIEN1cmxS
ZXF1ZXN0OjpzZXR1cFRyYW5zZmVyKCkKIAogICAgIG1fY3VybEhhbmRsZS0+c2V0VGltZW91dCh0
aW1lb3V0SW50ZXJ2YWwoKSk7CiAKLSAgICBpZiAobV9zaG91bGRTdXNwZW5kKQotICAgICAgICBz
ZXRSZXF1ZXN0UGF1c2VkKHRydWUpOwotCiAgICAgbV9wZXJmb3JtU3RhcnRUaW1lID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CiAKICAgICByZXR1cm4gbV9jdXJsSGFuZGxlLT5oYW5kbGUoKTsKQEAg
LTY0Myw3ICs2NTAsNyBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpzZXRSZXF1ZXN0UGF1c2VkKGJvb2wg
cGF1c2VkKQogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9wYXVzZVN0YXRlTXV0ZXggfTsKIAog
ICAgICAgICBhdXRvIHNhdmVkU3RhdGUgPSBzaG91bGRCZVBhdXNlZCgpOwotICAgICAgICBtX3No
b3VsZFN1c3BlbmQgPSBtX2lzUGF1c2VkT2ZSZXF1ZXN0ID0gcGF1c2VkOworICAgICAgICBtX2lz
UGF1c2VkT2ZSZXF1ZXN0ID0gcGF1c2VkOwogICAgICAgICBpZiAoc2hvdWxkQmVQYXVzZWQoKSA9
PSBzYXZlZFN0YXRlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKaW5kZXggZjIyOTU4
MmNiOWRmLi4xNDM0ZjUxZTY3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0xNzYsNiArMTc2LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb25nIG1fYXV0aFR5cGUgeyBDVVJMQVVUSF9BTlkgfTsKICAgICBib29s
IG1fc2hvdWxkRGlzYWJsZVNlcnZlclRydXN0RXZhbHVhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3Nob3VsZFN1c3BlbmQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kaWRTdGFydCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2VuYWJsZU11bHRpcGFydCB7IGZhbHNlIH07CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q3VybEhhbmRsZT4gbV9jdXJsSGFuZGxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433300</attachid>
            <date>2021-07-12 00:06:18 -0700</date>
            <delta_ts>2021-07-12 17:41:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227863-20210712160617.patch</filename>
            <type>text/plain</type>
            <size>3731</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMyNzVhYTJkMDJjMTIx
MzhmY2YyMzM4ZjljZmI0MDFlODgwOWI4OC4uMjYzZTJmMWRkZTJkNjE3ODdjZjdlYWNjYWFjMWY0
MTYxYmVlMTcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA3LTExICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtjdXJsXSBD
YW4ndCBmaW5pc2ggbG9hZGluZyBzb21lIHdlYnNpdGVzIGFmdGVyIHIyNzE5NDYgc3RhcnRlZCB0
aHJvdHRsaW5nIGxvdyBwcmlvcml0eSByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzg2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldHdvcmtMb2FkU2NoZWR1bGVyIHN0YXJ0ZWQgdGhy
b3R0bGluZyBsb3cgcHJpb3JpdHkgcmVzb3VyY2UKKyAgICAgICAgbG9hZGluZyBzaW5jZSByMjcx
OTQ2LiBJdCB1c2VzIGN1cmxfZWFzeV9wYXVzZSB0byBwYXVzZSB0aGUKKyAgICAgICAgcmVzb3Vy
Y2UgbG9hZHMuIENVUkxNT1BUX01BWF9IT1NUX0NPTk5FQ1RJT05TIGlzIHNldCB0byA2IHRvIGxp
bWl0CisgICAgICAgIHRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgcGVyIGhvc3QuIEluIHRoZSBj
ZXJ0YWluIGNvbmRpdGlvbiwKKyAgICAgICAgY3VybF9tdWx0aV9mZHNldCBjYW4gY29uc3RhbnRs
eSByZXR1cm4gLTEgaWYgNiBoYW5kbGVzIHRoZSBzYW1lCisgICAgICAgIGhvc3QgYXJlIHBhdXNl
ZC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgQ3VybFJlcXVlc3Q6OnN0YXJ0IG5vdCB0
byBhY3R1YWxseSBzdGFydCB0aGUKKyAgICAgICAgam9iIGlmIGl0IGlzIHN1c3BlbmRlZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJl
cXVlc3Q6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnJlc3VtZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0dXBUcmFuc2Zlcik6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0UmVxdWVzdFBhdXNlZCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0Lmg6CisKIDIwMjEtMDctMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBYTUxTZXJpYWxpemVyLnNlcmlhbGl6
ZVRvU3RyaW5nKCkgZG9lc24ndCBwcm9wZXJseSBlc2NhcGUgXG4sIFxuIGFuZCBcdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAK
aW5kZXggNWEyYjczMDg0NjBmZDc2YWI2ZTE4OTU0YWE0NmQ5MDI0MjczM2RjZS4uZjlhODA5Mzgz
ZWRjMDFlYjg1ZWFmOTVkOTkwYTRmMjg0Y2VmMmNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCkBAIC0xMTAsNiArMTEw
LDEwIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OnN0YXJ0KCkKIAogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKKyAgICBpZiAobV9zaG91bGRTdXNwZW5kKQorICAgICAgICByZXR1cm47CisgICAg
bV9kaWRTdGFydCA9IHRydWU7CisKICAgICBpZiAobV9yZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxl
KCkpCiAgICAgICAgIGludm9rZURpZFJlY2VpdmVSZXNwb25zZUZvckZpbGUobV9yZXF1ZXN0LnVy
bCgpKTsKICAgICBlbHNlCkBAIC0xNjMsMTQgKzE2NywyMCBAQCB2b2lkIEN1cmxSZXF1ZXN0Ojpz
dXNwZW5kKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc2V0UmVxdWVz
dFBhdXNlZCh0cnVlKTsKKyAgICBtX3Nob3VsZFN1c3BlbmQgPSB0cnVlOworICAgIGlmIChtX2Rp
ZFN0YXJ0KQorICAgICAgICBzZXRSZXF1ZXN0UGF1c2VkKHRydWUpOwogfQogCiB2b2lkIEN1cmxS
ZXF1ZXN0OjpyZXN1bWUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBz
ZXRSZXF1ZXN0UGF1c2VkKGZhbHNlKTsKKyAgICBtX3Nob3VsZFN1c3BlbmQgPSBmYWxzZTsKKyAg
ICBpZiAobV9kaWRTdGFydCkKKyAgICAgICAgc2V0UmVxdWVzdFBhdXNlZChmYWxzZSk7CisgICAg
ZWxzZQorICAgICAgICBzdGFydCgpOwogfQogCiAvKiBgdGhpc2AgaXMgcHJvdGVjdGVkIGluc2lk
ZSB0aGlzIG1ldGhvZC4gKi8KQEAgLTIzOCw5ICsyNDgsNiBAQCBDVVJMKiBDdXJsUmVxdWVzdDo6
c2V0dXBUcmFuc2ZlcigpCiAKICAgICBtX2N1cmxIYW5kbGUtPnNldFRpbWVvdXQodGltZW91dElu
dGVydmFsKCkpOwogCi0gICAgaWYgKG1fc2hvdWxkU3VzcGVuZCkKLSAgICAgICAgc2V0UmVxdWVz
dFBhdXNlZCh0cnVlKTsKLQogICAgIG1fcGVyZm9ybVN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogCiAgICAgcmV0dXJuIG1fY3VybEhhbmRsZS0+aGFuZGxlKCk7CkBAIC02NDMsNyAr
NjUwLDcgQEAgdm9pZCBDdXJsUmVxdWVzdDo6c2V0UmVxdWVzdFBhdXNlZChib29sIHBhdXNlZCkK
ICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcGF1c2VTdGF0ZU11dGV4IH07CiAKICAgICAgICAg
YXV0byBzYXZlZFN0YXRlID0gc2hvdWxkQmVQYXVzZWQoKTsKLSAgICAgICAgbV9zaG91bGRTdXNw
ZW5kID0gbV9pc1BhdXNlZE9mUmVxdWVzdCA9IHBhdXNlZDsKKyAgICAgICAgbV9pc1BhdXNlZE9m
UmVxdWVzdCA9IHBhdXNlZDsKICAgICAgICAgaWYgKHNob3VsZEJlUGF1c2VkKCkgPT0gc2F2ZWRT
dGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCmluZGV4IGYyMjk1ODJjYjlkZjVk
YmRhNGM0NDMwNDZjNDk1ZjUyYThmZTQ5YTkuLjE0MzRmNTFlNjdhM2FmNjEwNzBhN2U3ZjdjMTkw
MWZmMDg3MzA3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsUmVxdWVzdC5oCkBAIC0xNzYsNiArMTc2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBsb25nIG1fYXV0aFR5cGUgeyBDVVJMQVVUSF9BTlkgfTsKICAgICBib29sIG1fc2hvdWxk
RGlzYWJsZVNlcnZlclRydXN0RXZhbHVhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZFN1c3BlbmQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kaWRTdGFydCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2VuYWJsZU11bHRpcGFydCB7IGZhbHNlIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q3VybEhhbmRsZT4gbV9jdXJsSGFuZGxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433380</attachid>
            <date>2021-07-12 17:41:29 -0700</date>
            <delta_ts>2021-07-12 21:39:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227863-20210713094128.patch</filename>
            <type>text/plain</type>
            <size>5432</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMyNzVhYTJkMDJjMTIx
MzhmY2YyMzM4ZjljZmI0MDFlODgwOWI4OC4uN2ViMWQ5YTJhMmJhZmE5ZGNhNzczNWY3Y2ZjMGY4
NmQ2MWNkY2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA3LTExICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtjdXJsXSBD
YW4ndCBmaW5pc2ggbG9hZGluZyBzb21lIHdlYnNpdGVzIGFmdGVyIHIyNzE5NDYgc3RhcnRlZCB0
aHJvdHRsaW5nIGxvdyBwcmlvcml0eSByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzg2MworCisgICAgICAgIFJldmlld2VkIGJ5IERv
biBPbG1zdGVhZC4KKworICAgICAgICBOZXR3b3JrTG9hZFNjaGVkdWxlciBzdGFydGVkIHRocm90
dGxpbmcgbG93IHByaW9yaXR5IHJlc291cmNlCisgICAgICAgIGxvYWRpbmcgc2luY2UgcjI3MTk0
Ni4gSXQgdXNlcyBjdXJsX2Vhc3lfcGF1c2UgdG8gcGF1c2UgdGhlCisgICAgICAgIHJlc291cmNl
IGxvYWRzLiBDVVJMTU9QVF9NQVhfSE9TVF9DT05ORUNUSU9OUyBpcyBzZXQgdG8gNiB0byBsaW1p
dAorICAgICAgICB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHBlciBob3N0LiBJbiB0aGUgY2Vy
dGFpbiBjb25kaXRpb24sCisgICAgICAgIGN1cmxfbXVsdGlfZmRzZXQgY2FuIGNvbnN0YW50bHkg
cmV0dXJuIC0xIGlmIDYgaGFuZGxlcyBvZiB0aGUgc2FtZQorICAgICAgICBob3N0IGFyZSBwYXVz
ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIEN1cmxSZXF1ZXN0OjpzdGFydCBub3Qg
dG8gYWN0dWFsbHkgc3RhcnQgdGhlCisgICAgICAgIGpvYiBpZiBpdCBpcyBzdXNwZW5kZWQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxS
ZXF1ZXN0OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpyZXN1bWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnNldHVwVHJhbnNmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnNldFJlcXVlc3RQYXVzZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oOgorCiAyMDIxLTA3LTExICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgWE1MU2VyaWFsaXplci5zZXJpYWxp
emVUb1N0cmluZygpIGRvZXNuJ3QgcHJvcGVybHkgZXNjYXBlIFxuLCBcbiBhbmQgXHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3Bw
CmluZGV4IDVhMmI3MzA4NDYwZmQ3NmFiNmUxODk1NGFhNDZkOTAyNDI3MzNkY2UuLjI5ODczNTU4
NWJiYzI1ZDEyNzdmOTY1YjU5OWU0M2NhNjZlNmZjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNDYsNyArNDYs
NyBAQCBDdXJsUmVxdWVzdDo6Q3VybFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JnJlcXVl
c3QsIEN1cmxSZXF1ZXN0Q2xpZW50KiBjbGllbgogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAg
ICwgbV9tZXNzYWdlUXVldWUoV1RGTW92ZShtZXNzYWdlUXVldWUpKQogICAgICwgbV9yZXF1ZXN0
KHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX3Nob3VsZFN1c3BlbmQoc2hvdWxkU3Vz
cGVuZCA9PSBTaG91bGRTdXNwZW5kOjpZZXMpCisgICAgLCBtX3N0YXJ0U3RhdGUoc2hvdWxkU3Vz
cGVuZCA9PSBTaG91bGRTdXNwZW5kOjpZZXMgPyBTdGFydFN0YXRlOjpTdGFydFN1c3BlbmRlZCA6
IFN0YXJ0U3RhdGU6OldhaXRpbmdGb3JTdGFydCkKICAgICAsIG1fZW5hYmxlTXVsdGlwYXJ0KGVu
YWJsZU11bHRpcGFydCA9PSBFbmFibGVNdWx0aXBhcnQ6OlllcykKICAgICAsIG1fZm9ybURhdGFT
dHJlYW0obV9yZXF1ZXN0Lmh0dHBCb2R5KCkpCiAgICAgLCBtX2NhcHR1cmVFeHRyYU1ldHJpY3Mo
Y2FwdHVyZUV4dHJhTWV0cmljcyA9PSBDYXB0dXJlTmV0d29ya0xvYWRNZXRyaWNzOjpFeHRlbmRl
ZCkKQEAgLTExMCw2ICsxMTAsMTYgQEAgdm9pZCBDdXJsUmVxdWVzdDo6c3RhcnQoKQogCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIHN3aXRjaCAobV9zdGFydFN0YXRlKSB7Cisg
ICAgY2FzZSBTdGFydFN0YXRlOjpEaWRTdGFydDoKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAg
ICAgICAgW1tmYWxsdGhyb3VnaF1dOworICAgIGNhc2UgU3RhcnRTdGF0ZTo6U3RhcnRTdXNwZW5k
ZWQ6CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXJ0U3RhdGUgPSBTdGFydFN0
YXRlOjpEaWRTdGFydDsKKwogICAgIGlmIChtX3JlcXVlc3QudXJsKCkuaXNMb2NhbEZpbGUoKSkK
ICAgICAgICAgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZShtX3JlcXVlc3QudXJsKCkp
OwogICAgIGVsc2UKQEAgLTE0MSw3ICsxNTEsNyBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpjYW5jZWwo
KQogICAgICAgICBydW5PbldvcmtlclRocmVhZElmUmVxdWlyZWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CiAgICAgICAgICAgICBkaWRDYW5jZWxUcmFuc2Zlcigp
OwogICAgICAgICB9KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgaWYgKG1fc3RhcnRTdGF0ZSA9
PSBTdGFydFN0YXRlOjpEaWRTdGFydCkKICAgICAgICAgc2NoZWR1bGVyLmNhbmNlbCh0aGlzKTsK
IAogICAgIGludmFsaWRhdGVDbGllbnQoKTsKQEAgLTE2MywxNCArMTczLDM1IEBAIHZvaWQgQ3Vy
bFJlcXVlc3Q6OnN1c3BlbmQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAg
ICBzZXRSZXF1ZXN0UGF1c2VkKHRydWUpOworICAgIHN3aXRjaCAobV9zdGFydFN0YXRlKSB7Cisg
ICAgY2FzZSBTdGFydFN0YXRlOjpTdGFydFN1c3BlbmRlZDoKKyAgICAgICAgQVNTRVJUKGZhbHNl
KTsKKyAgICAgICAgW1tmYWxsdGhyb3VnaF1dOworICAgIGNhc2UgU3RhcnRTdGF0ZTo6V2FpdGlu
Z0ZvclN0YXJ0OgorICAgICAgICBtX3N0YXJ0U3RhdGUgPSBTdGFydFN0YXRlOjpTdGFydFN1c3Bl
bmRlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdGFydFN0YXRlOjpEaWRTdGFydDoKKyAg
ICAgICAgc2V0UmVxdWVzdFBhdXNlZCh0cnVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQog
CiB2b2lkIEN1cmxSZXF1ZXN0OjpyZXN1bWUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKLSAgICBzZXRSZXF1ZXN0UGF1c2VkKGZhbHNlKTsKKyAgICBzd2l0Y2ggKG1fc3RhcnRT
dGF0ZSkgeworICAgIGNhc2UgU3RhcnRTdGF0ZTo6V2FpdGluZ0ZvclN0YXJ0OgorICAgICAgICBB
U1NFUlQoZmFsc2UpOworICAgICAgICBbW2ZhbGx0aHJvdWdoXV07CisgICAgY2FzZSBTdGFydFN0
YXRlOjpTdGFydFN1c3BlbmRlZDoKKyAgICAgICAgbV9zdGFydFN0YXRlID0gU3RhcnRTdGF0ZTo6
V2FpdGluZ0ZvclN0YXJ0OworICAgICAgICBzdGFydCgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFN0YXJ0U3RhdGU6OkRpZFN0YXJ0OgorICAgICAgICBzZXRSZXF1ZXN0UGF1c2VkKGZhbHNl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiAvKiBgdGhpc2AgaXMgcHJvdGVjdGVkIGlu
c2lkZSB0aGlzIG1ldGhvZC4gKi8KQEAgLTIzOCw5ICsyNjksNiBAQCBDVVJMKiBDdXJsUmVxdWVz
dDo6c2V0dXBUcmFuc2ZlcigpCiAKICAgICBtX2N1cmxIYW5kbGUtPnNldFRpbWVvdXQodGltZW91
dEludGVydmFsKCkpOwogCi0gICAgaWYgKG1fc2hvdWxkU3VzcGVuZCkKLSAgICAgICAgc2V0UmVx
dWVzdFBhdXNlZCh0cnVlKTsKLQogICAgIG1fcGVyZm9ybVN0YXJ0VGltZSA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogCiAgICAgcmV0dXJuIG1fY3VybEhhbmRsZS0+aGFuZGxlKCk7CkBAIC02NDMs
NyArNjcxLDcgQEAgdm9pZCBDdXJsUmVxdWVzdDo6c2V0UmVxdWVzdFBhdXNlZChib29sIHBhdXNl
ZCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcGF1c2VTdGF0ZU11dGV4IH07CiAKICAgICAg
ICAgYXV0byBzYXZlZFN0YXRlID0gc2hvdWxkQmVQYXVzZWQoKTsKLSAgICAgICAgbV9zaG91bGRT
dXNwZW5kID0gbV9pc1BhdXNlZE9mUmVxdWVzdCA9IHBhdXNlZDsKKyAgICAgICAgbV9pc1BhdXNl
ZE9mUmVxdWVzdCA9IHBhdXNlZDsKICAgICAgICAgaWYgKHNob3VsZEJlUGF1c2VkKCkgPT0gc2F2
ZWRTdGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCmluZGV4IGYyMjk1ODJjYjlk
ZjVkYmRhNGM0NDMwNDZjNDk1ZjUyYThmZTQ5YTkuLjZiZDhhNmJmYmEzNzUyY2VkZGRiYzUwMDll
YWU4M2M0ZjBlZWQ2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0xNzUsOSArMTc1LDExIEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fcGFzc3dvcmQ7CiAgICAgdW5zaWduZWQgbG9uZyBtX2F1dGhUeXBlIHsgQ1VSTEFV
VEhfQU5ZIH07CiAgICAgYm9vbCBtX3Nob3VsZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24g
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGRTdXNwZW5kIHsgZmFsc2UgfTsKICAgICBib29s
IG1fZW5hYmxlTXVsdGlwYXJ0IHsgZmFsc2UgfTsKIAorICAgIGVudW0gY2xhc3MgU3RhcnRTdGF0
ZSA6IHVpbnQ4X3QgeyBTdGFydFN1c3BlbmRlZCwgV2FpdGluZ0ZvclN0YXJ0LCBEaWRTdGFydCB9
OworICAgIFN0YXJ0U3RhdGUgbV9zdGFydFN0YXRlOworICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDdXJsSGFuZGxlPiBtX2N1cmxIYW5kbGU7CiAgICAgQ3VybEZvcm1EYXRhU3RyZWFtIG1fZm9y
bURhdGFTdHJlYW07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1cmxNdWx0aXBhcnRIYW5kbGU+IG1f
bXVsdGlwYXJ0SGFuZGxlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>