<?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>185138</bug_id>
          
          <creation_ts>2018-04-30 11:10:43 -0700</creation_ts>
          <short_desc>[Curl] Add OpenSSL/LibreSSL multi-threading support</short_desc>
          <delta_ts>2018-05-03 00:24:15 -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>WebCore Misc.</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="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>basuke</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>pvollan</cc>
    
    <cc>rniwa</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419053</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-04-30 11:10:43 -0700</bug_when>
    <thetext>The older OpenSSL manual says the locking_function and threadid_funcion should set when use it in multi-threading environment. This applies to LibreSSL also.
https://www.openssl.org/docs/man1.0.2/crypto/threads.html

For unix and other similar os, the default threadId_function implementation is good enough. We&apos;ll set custom callback only for Windows OS.

Note it&apos;s not required for OpenSSL 1.1.0 and after.
https://www.openssl.org/blog/blog/2017/02/21/threads/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419054</commentid>
    <comment_count>1</comment_count>
      <attachid>339130</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-04-30 11:15:16 -0700</bug_when>
    <thetext>Created attachment 339130
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419104</commentid>
    <comment_count>2</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-04-30 13:50:24 -0700</bug_when>
    <thetext>Would it be sufficient to require that OpenSSL 1.1.0 or later is used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419149</commentid>
    <comment_count>3</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-04-30 15:44:18 -0700</bug_when>
    <thetext>We believe so. What is your worry for instance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419218</commentid>
    <comment_count>4</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-04-30 18:52:20 -0700</bug_when>
    <thetext>I was just wondering if this change is strictly needed, since this issue has been addressed in OpenSSL 1.1.0 or later. But this is perhaps not the case for LibreSSL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419248</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-04-30 21:18:28 -0700</bug_when>
    <thetext>Oh, that’s not true. This is required for both OpenSSL prior to 1.1.0 and whole version of LibreSSL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419289</commentid>
    <comment_count>6</comment_count>
      <attachid>339130</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-01 07:09:06 -0700</bug_when>
    <thetext>Comment on attachment 339130
PATCH

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

&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:147
&gt; +    if (!lock || (type &gt; lockNum))
&gt; +        return;

I think this should be &apos;(type &gt;= lockNum)&apos;. Also, should we return early if type &lt; 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419494</commentid>
    <comment_count>7</comment_count>
      <attachid>339130</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-01 18:04:06 -0700</bug_when>
    <thetext>Comment on attachment 339130
PATCH

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

Thank you for the review.

&gt;&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:147
&gt;&gt; +        return;
&gt; 
&gt; I think this should be &apos;(type &gt;= lockNum)&apos;. Also, should we return early if type &lt; 0?

type argument are hard-coded in OpenSSL/LibreSSL code and used internally only. I think it should be not run-time check, but assert. Also lock shouldn&apos;t be checked like this. If it failed, it may fail in multi thread env. I will move it to more robust place to define locks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419570</commentid>
    <comment_count>8</comment_count>
      <attachid>339278</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-01 22:14:37 -0700</bug_when>
    <thetext>Created attachment 339278
fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419571</commentid>
    <comment_count>9</comment_count>
      <attachid>339279</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-01 22:16:19 -0700</bug_when>
    <thetext>Created attachment 339279
fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419639</commentid>
    <comment_count>10</comment_count>
      <attachid>339279</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-02 07:03:49 -0700</bug_when>
    <thetext>Comment on attachment 339279
fix

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

R=me.

&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:144
&gt; +    ASSERT(type &gt;= 0 &amp;&amp; type &lt; CRYPTO_NUM_LOCKS);

I think we should use RELEASE_ASSERT here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419648</commentid>
    <comment_count>11</comment_count>
      <attachid>339279</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-02 07:55:44 -0700</bug_when>
    <thetext>Comment on attachment 339279
fix

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

&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:143
&gt; +    static Lock lock[CRYPTO_NUM_LOCKS];

Also, I think you need to make sure the initialization of lock is thread safe, by using call_once, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419713</commentid>
    <comment_count>12</comment_count>
      <attachid>339279</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 10:21:18 -0700</bug_when>
    <thetext>Comment on attachment 339279
fix

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

Thanks for the review.

&gt;&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:143
&gt;&gt; +    static Lock lock[CRYPTO_NUM_LOCKS];
&gt; 
&gt; Also, I think you need to make sure the initialization of lock is thread safe, by using call_once, for example.

I think Lock is constexpr constructor class and it is initialized in compile time, which means no run-time initialization. I am not confident about this behavior so I am asking about this my co-workers.

&gt;&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.cpp:144
&gt;&gt; +    ASSERT(type &gt;= 0 &amp;&amp; type &lt; CRYPTO_NUM_LOCKS);
&gt; 
&gt; I think we should use RELEASE_ASSERT here.

Sure I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419857</commentid>
    <comment_count>13</comment_count>
      <attachid>339340</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 14:29:32 -0700</bug_when>
    <thetext>Created attachment 339340
Fix potential security issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419860</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-02 14:31:58 -0700</bug_when>
    <thetext>Attachment 339340 did not pass style-queue:


ERROR: Source/WebCore/platform/network/curl/CurlSSLHandle.h:69:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/network/curl/CurlSSLHandle.h:74:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419885</commentid>
    <comment_count>15</comment_count>
      <attachid>339353</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 15:14:22 -0700</bug_when>
    <thetext>Created attachment 339353
Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419919</commentid>
    <comment_count>16</comment_count>
      <attachid>339353</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-02 16:13:53 -0700</bug_when>
    <thetext>Comment on attachment 339353
Fix style

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

R=me.

&gt; Source/WebCore/ChangeLog:6
&gt; +        The older OpenSSL manual says the locking_function and threadid_funcion should

Small typo, change phrase to &apos;threadid_function should be set&apos;.

&gt; Source/WebCore/platform/network/curl/CurlSSLHandle.h:74
&gt; +            static ThreadSupport shared;

I think we can use NeverDestroyed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420029</commentid>
    <comment_count>17</comment_count>
      <attachid>339391</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 23:27:35 -0700</bug_when>
    <thetext>Created attachment 339391
Fox

Thanks for r+ Per Arne.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420030</commentid>
    <comment_count>18</comment_count>
      <attachid>339392</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 23:41:56 -0700</bug_when>
    <thetext>Created attachment 339392
typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420037</commentid>
    <comment_count>19</comment_count>
      <attachid>339392</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 00:23:14 -0700</bug_when>
    <thetext>Comment on attachment 339392
typo

Clearing flags on attachment: 339392

Committed r231297: &lt;https://trac.webkit.org/changeset/231297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420038</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 00:23:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420040</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-03 00:24:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/39934014&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339130</attachid>
            <date>2018-04-30 11:15:16 -0700</date>
            <delta_ts>2018-05-01 22:14:37 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>4173</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uYzZjZDRjYmM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNC0zMCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY2lvbiBzaG91bGQKKyAgICAgICAgc2V0
IHdoZW4gdXNlIGl0IGluIG11bHRpLXRocmVhZGluZyBlbnZpcm9ubWVudC4gVGhpcyBhcHBsaWVz
IHRvIExpYnJlU1NMIGFsc28uCisgICAgICAgIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3Mv
bWFuMS4wLjIvY3J5cHRvL3RocmVhZHMuaHRtbAorCisgICAgICAgIEZvciB1bml4IGFuZCBvdGhl
ciBzaW1pbGFyIG9zLCB0aGUgZGVmYXVsdCB0aHJlYWRJZF9mdW5jdGlvbiBpbXBsZW1lbnRhdGlv
biBpcworICAgICAgICBnb29kIGVub3VnaC4gV2UnbGwgc2V0IGN1c3RvbSBjYWxsYmFjayBvbmx5
IGZvciBXaW5kb3dzIE9TLgorCisgICAgICAgIE5vdGUgaXQncyBub3QgcmVxdWlyZWQgZm9yIE9w
ZW5TU0wgMS4xLjAgYW5kIGFmdGVyLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9i
bG9nL2Jsb2cvMjAxNy8wMi8yMS90aHJlYWRzLworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6Q3VybFNTTEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpzZXR1cFRocmVhZFNldHRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OmxvY2tpbmdDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjp0aHJlYWRJZENhbGxiYWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oOgorCiAyMDE4LTA0LTMwICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBXZWJraXQgc2hvdWxkIHNwb29mIGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNv
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwCmluZGV4IDNjN2ZkMjA1NDhkLi44YjYwYjExZDlmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmNw
cApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYK
IAorI2lmIE5FRURfT1BFTlNTTF9USFJFQURfSURfQ0FMTEJBQ0sgJiYgT1MoV0lORE9XUykKKyNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDdXJsU1NMSGFuZGxlOjpDdXJsU1NMSGFuZGxlKCkKQEAgLTQ1LDYgKzQ5LDEwIEBAIEN1cmxT
U0xIYW5kbGU6OkN1cmxTU0xIYW5kbGUoKQogICAgIGNoYXIqIGlnbm9yZVNTTEVycm9ycyA9IGdl
dGVudigiV0VCS0lUX0lHTk9SRV9TU0xfRVJST1JTIik7CiAgICAgaWYgKGlnbm9yZVNTTEVycm9y
cykKICAgICAgICAgbV9pZ25vcmVTU0xFcnJvcnMgPSB0cnVlOworCisjaWYgTkVFRF9PUEVOU1NM
X1RIUkVBRF9JRF9DQUxMQkFDSworICAgIHNldHVwVGhyZWFkU2V0dGluZ3MoKTsKKyNlbmRpZgog
fQogCiBDU3RyaW5nIEN1cmxTU0xIYW5kbGU6OmdldENBQ2VydFBhdGhFbnYoKQpAQCAtMTIwLDYg
KzEyOCw0MSBAQCBzdGQ6Om9wdGlvbmFsPEN1cmxTU0xIYW5kbGU6OkNsaWVudENlcnRpZmljYXRl
PiBDdXJsU1NMSGFuZGxlOjpnZXRTU0xDbGllbnRDZXJ0aQogICAgIHJldHVybiBpdC0+dmFsdWU7
CiB9CiAKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFEX0lEX0NBTExCQUNLCisKK3ZvaWQgQ3VybFNT
TEhhbmRsZTo6c2V0dXBUaHJlYWRTZXR0aW5ncygpCit7CisgICAgQ1JZUFRPX3NldF9sb2NraW5n
X2NhbGxiYWNrKGxvY2tpbmdDYWxsYmFjayk7CisjaWYgT1MoV0lORE9XUykKKyAgICBDUllQVE9f
VEhSRUFESURfc2V0X2NhbGxiYWNrKHRocmVhZElkQ2FsbGJhY2spOworI2VuZGlmCit9CisKK3Zv
aWQgQ3VybFNTTEhhbmRsZTo6bG9ja2luZ0NhbGxiYWNrKGludCBtb2RlLCBpbnQgdHlwZSwgY29u
c3QgY2hhciosIGludCkKK3sKKyAgICBzdGF0aWMgYXV0byBsb2NrTnVtID0gQ1JZUFRPX251bV9s
b2NrcygpOworICAgIHN0YXRpYyBhdXRvIGxvY2sgPSBuZXcgTG9ja1tsb2NrTnVtXTsKKworICAg
IGlmICghbG9jayB8fCAodHlwZSA+IGxvY2tOdW0pKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobW9kZSAmIENSWVBUT19MT0NLKQorICAgICAgICBsb2NrW3R5cGVdLmxvY2soKTsKKyAgICBl
bHNlCisgICAgICAgIGxvY2tbdHlwZV0udW5sb2NrKCk7Cit9CisKKyNpZiBPUyhXSU5ET1dTKQor
Cit2b2lkIEN1cmxTU0xIYW5kbGU6OnRocmVhZElkQ2FsbGJhY2soQ1JZUFRPX1RIUkVBRElEKiB0
aHJlYWRJZCkKK3sKKyAgICBDUllQVE9fVEhSRUFESURfc2V0X251bWVyaWModGhyZWFkSWQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KFRocmVhZDo6Y3VycmVudElEKCkpKTsKK30KKworI2Vu
ZGlmCisKKyNlbmRpZgorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmgKaW5kZXggMDg4ZTY0YTZmMzQuLjVh
M2E3MDIwNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFNTTEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsU1NMSGFuZGxlLmgKQEAgLTMxLDEyICszMSwxOCBAQAogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorI2lmICgh
ZGVmaW5lZChMSUJSRVNTTF9WRVJTSU9OX05VTUJFUikgJiYgT1BFTlNTTF9WRVJTSU9OX05VTUJF
UiA+PSAweDEwMTAwMDBmTCkKKyNkZWZpbmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9JRF9DQUxMQkFD
SyAwCisjZWxzZQorI2RlZmluZSBORUVEX09QRU5TU0xfVEhSRUFEX0lEX0NBTExCQUNLIDEKKyNp
bmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ3VybFNTTEhhbmRsZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3VybFNT
TEhhbmRsZSk7CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEN1cmxTU0xIYW5kbGU+OwotCiBw
dWJsaWM6CiAgICAgQ3VybFNTTEhhbmRsZSgpOwogCkBAIC01NSw2ICs2MSwxNCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIENTdHJpbmcgZ2V0Q0FDZXJ0UGF0aEVudigpOwogCisjaWYgTkVFRF9P
UEVOU1NMX1RIUkVBRF9JRF9DQUxMQkFDSworICAgIHZvaWQgc2V0dXBUaHJlYWRTZXR0aW5ncygp
OworICAgIHN0YXRpYyB2b2lkIGxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50IHR5cGUsIGNv
bnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHN0YXRpYyB2
b2lkIHRocmVhZElkQ2FsbGJhY2soQ1JZUFRPX1RIUkVBRElEKik7CisjZW5kaWYKKyNlbmRpZgor
CiAgICAgYm9vbCBtX2lnbm9yZVNTTEVycm9ycyB7IGZhbHNlIH07CiAgICAgQ1N0cmluZyBtX2Nh
Q2VydFBhdGg7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339278</attachid>
            <date>2018-05-01 22:14:37 -0700</date>
            <delta_ts>2018-05-01 22:16:19 -0700</delta_ts>
            <desc>fix</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>4120</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uYzZjZDRjYmM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNC0zMCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY2lvbiBzaG91bGQKKyAgICAgICAgc2V0
IHdoZW4gdXNlIGl0IGluIG11bHRpLXRocmVhZGluZyBlbnZpcm9ubWVudC4gVGhpcyBhcHBsaWVz
IHRvIExpYnJlU1NMIGFsc28uCisgICAgICAgIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3Mv
bWFuMS4wLjIvY3J5cHRvL3RocmVhZHMuaHRtbAorCisgICAgICAgIEZvciB1bml4IGFuZCBvdGhl
ciBzaW1pbGFyIG9zLCB0aGUgZGVmYXVsdCB0aHJlYWRJZF9mdW5jdGlvbiBpbXBsZW1lbnRhdGlv
biBpcworICAgICAgICBnb29kIGVub3VnaC4gV2UnbGwgc2V0IGN1c3RvbSBjYWxsYmFjayBvbmx5
IGZvciBXaW5kb3dzIE9TLgorCisgICAgICAgIE5vdGUgaXQncyBub3QgcmVxdWlyZWQgZm9yIE9w
ZW5TU0wgMS4xLjAgYW5kIGFmdGVyLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9i
bG9nL2Jsb2cvMjAxNy8wMi8yMS90aHJlYWRzLworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6Q3VybFNTTEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpzZXR1cFRocmVhZFNldHRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OmxvY2tpbmdDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjp0aHJlYWRJZENhbGxiYWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oOgorCiAyMDE4LTA0LTMwICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBXZWJraXQgc2hvdWxkIHNwb29mIGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNv
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwCmluZGV4IDNjN2ZkMjA1NDhkLi4xMjQxNzU0NzcwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmNw
cApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYK
IAorI2lmIE5FRURfT1BFTlNTTF9USFJFQURfSURfQ0FMTEJBQ0sgJiYgT1MoV0lORE9XUykKKyNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDdXJsU1NMSGFuZGxlOjpDdXJsU1NMSGFuZGxlKCkKQEAgLTQ1LDYgKzQ5LDEwIEBAIEN1cmxT
U0xIYW5kbGU6OkN1cmxTU0xIYW5kbGUoKQogICAgIGNoYXIqIGlnbm9yZVNTTEVycm9ycyA9IGdl
dGVudigiV0VCS0lUX0lHTk9SRV9TU0xfRVJST1JTIik7CiAgICAgaWYgKGlnbm9yZVNTTEVycm9y
cykKICAgICAgICAgbV9pZ25vcmVTU0xFcnJvcnMgPSB0cnVlOworCisjaWYgTkVFRF9PUEVOU1NM
X1RIUkVBRF9JRF9DQUxMQkFDSworICAgIHNldHVwVGhyZWFkU2V0dGluZ3MoKTsKKyNlbmRpZgog
fQogCiBDU3RyaW5nIEN1cmxTU0xIYW5kbGU6OmdldENBQ2VydFBhdGhFbnYoKQpAQCAtMTIwLDYg
KzEyOCwzOCBAQCBzdGQ6Om9wdGlvbmFsPEN1cmxTU0xIYW5kbGU6OkNsaWVudENlcnRpZmljYXRl
PiBDdXJsU1NMSGFuZGxlOjpnZXRTU0xDbGllbnRDZXJ0aQogICAgIHJldHVybiBpdC0+dmFsdWU7
CiB9CiAKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFEX0lEX0NBTExCQUNLCisKK3ZvaWQgQ3VybFNT
TEhhbmRsZTo6c2V0dXBUaHJlYWRTZXR0aW5ncygpCit7CisgICAgQ1JZUFRPX3NldF9sb2NraW5n
X2NhbGxiYWNrKGxvY2tpbmdDYWxsYmFjayk7CisjaWYgT1MoV0lORE9XUykKKyAgICBDUllQVE9f
VEhSRUFESURfc2V0X2NhbGxiYWNrKHRocmVhZElkQ2FsbGJhY2spOworI2VuZGlmCit9CisKK3Zv
aWQgQ3VybFNTTEhhbmRsZTo6bG9ja2luZ0NhbGxiYWNrKGludCBtb2RlLCBpbnQgdHlwZSwgY29u
c3QgY2hhciosIGludCkKK3sKKyAgICBzdGF0aWMgTG9jayBsb2NrW0NSWVBUT19OVU1fTE9DS1Nd
OworICAgIEFTU0VSVCh0eXBlID49IDAgJiYgdHlwZSA8IENSWVBUT19OVU1fTE9DS1MpOworCisg
ICAgaWYgKG1vZGUgJiBDUllQVE9fTE9DSykKKyAgICAgICAgbG9ja1t0eXBlXS5sb2NrKCk7Cisg
ICAgZWxzZQorICAgICAgICBsb2NrW3R5cGVdLnVubG9jaygpOworfQorCisjaWYgT1MoV0lORE9X
UykKKwordm9pZCBDdXJsU1NMSGFuZGxlOjp0aHJlYWRJZENhbGxiYWNrKENSWVBUT19USFJFQURJ
RCogdGhyZWFkSWQpCit7CisgICAgQ1JZUFRPX1RIUkVBRElEX3NldF9udW1lcmljKHRocmVhZElk
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihUaHJlYWQ6OmN1cnJlbnRJRCgpKSk7Cit9CisK
KyNlbmRpZgorCisjZW5kaWYKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCmluZGV4IDA4OGU2NGE2ZjM0
Li41YTNhNzAyMDZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxTU0xIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCkBAIC0zMSwxMiArMzEsMTggQEAKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKKyNp
ZiAoIWRlZmluZWQoTElCUkVTU0xfVkVSU0lPTl9OVU1CRVIpICYmIE9QRU5TU0xfVkVSU0lPTl9O
VU1CRVIgPj0gMHgxMDEwMDAwZkwpCisjZGVmaW5lIE5FRURfT1BFTlNTTF9USFJFQURfSURfQ0FM
TEJBQ0sgMAorI2Vsc2UKKyNkZWZpbmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9JRF9DQUxMQkFDSyAx
CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEN1cmxTU0xIYW5kbGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEN1
cmxTU0xIYW5kbGUpOwogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxDdXJsU1NMSGFuZGxlPjsK
LQogcHVibGljOgogICAgIEN1cmxTU0xIYW5kbGUoKTsKIApAQCAtNTUsNiArNjEsMTQgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBDU3RyaW5nIGdldENBQ2VydFBhdGhFbnYoKTsKIAorI2lmIE5F
RURfT1BFTlNTTF9USFJFQURfSURfQ0FMTEJBQ0sKKyAgICB2b2lkIHNldHVwVGhyZWFkU2V0dGlu
Z3MoKTsKKyAgICBzdGF0aWMgdm9pZCBsb2NraW5nQ2FsbGJhY2soaW50IG1vZGUsIGludCB0eXBl
LCBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSk7CisjaWYgT1MoV0lORE9XUykKKyAgICBzdGF0
aWMgdm9pZCB0aHJlYWRJZENhbGxiYWNrKENSWVBUT19USFJFQURJRCopOworI2VuZGlmCisjZW5k
aWYKKwogICAgIGJvb2wgbV9pZ25vcmVTU0xFcnJvcnMgeyBmYWxzZSB9OwogICAgIENTdHJpbmcg
bV9jYUNlcnRQYXRoOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339279</attachid>
            <date>2018-05-01 22:16:19 -0700</date>
            <delta_ts>2018-05-02 14:29:32 -0700</delta_ts>
            <desc>fix</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>3999</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uYzZjZDRjYmM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNC0zMCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY2lvbiBzaG91bGQKKyAgICAgICAgc2V0
IHdoZW4gdXNlIGl0IGluIG11bHRpLXRocmVhZGluZyBlbnZpcm9ubWVudC4gVGhpcyBhcHBsaWVz
IHRvIExpYnJlU1NMIGFsc28uCisgICAgICAgIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3Mv
bWFuMS4wLjIvY3J5cHRvL3RocmVhZHMuaHRtbAorCisgICAgICAgIEZvciB1bml4IGFuZCBvdGhl
ciBzaW1pbGFyIG9zLCB0aGUgZGVmYXVsdCB0aHJlYWRJZF9mdW5jdGlvbiBpbXBsZW1lbnRhdGlv
biBpcworICAgICAgICBnb29kIGVub3VnaC4gV2UnbGwgc2V0IGN1c3RvbSBjYWxsYmFjayBvbmx5
IGZvciBXaW5kb3dzIE9TLgorCisgICAgICAgIE5vdGUgaXQncyBub3QgcmVxdWlyZWQgZm9yIE9w
ZW5TU0wgMS4xLjAgYW5kIGFmdGVyLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9i
bG9nL2Jsb2cvMjAxNy8wMi8yMS90aHJlYWRzLworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6Q3VybFNTTEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpzZXR1cFRocmVhZFNldHRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OmxvY2tpbmdDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjp0aHJlYWRJZENhbGxiYWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oOgorCiAyMDE4LTA0LTMwICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBXZWJraXQgc2hvdWxkIHNwb29mIGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNv
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxT
U0xIYW5kbGUuY3BwCmluZGV4IDNjN2ZkMjA1NDhkLi4xMjQxNzU0NzcwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmNw
cApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYK
IAorI2lmIE5FRURfT1BFTlNTTF9USFJFQURfSURfQ0FMTEJBQ0sgJiYgT1MoV0lORE9XUykKKyNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDdXJsU1NMSGFuZGxlOjpDdXJsU1NMSGFuZGxlKCkKQEAgLTQ1LDYgKzQ5LDEwIEBAIEN1cmxT
U0xIYW5kbGU6OkN1cmxTU0xIYW5kbGUoKQogICAgIGNoYXIqIGlnbm9yZVNTTEVycm9ycyA9IGdl
dGVudigiV0VCS0lUX0lHTk9SRV9TU0xfRVJST1JTIik7CiAgICAgaWYgKGlnbm9yZVNTTEVycm9y
cykKICAgICAgICAgbV9pZ25vcmVTU0xFcnJvcnMgPSB0cnVlOworCisjaWYgTkVFRF9PUEVOU1NM
X1RIUkVBRF9JRF9DQUxMQkFDSworICAgIHNldHVwVGhyZWFkU2V0dGluZ3MoKTsKKyNlbmRpZgog
fQogCiBDU3RyaW5nIEN1cmxTU0xIYW5kbGU6OmdldENBQ2VydFBhdGhFbnYoKQpAQCAtMTIwLDYg
KzEyOCwzOCBAQCBzdGQ6Om9wdGlvbmFsPEN1cmxTU0xIYW5kbGU6OkNsaWVudENlcnRpZmljYXRl
PiBDdXJsU1NMSGFuZGxlOjpnZXRTU0xDbGllbnRDZXJ0aQogICAgIHJldHVybiBpdC0+dmFsdWU7
CiB9CiAKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFEX0lEX0NBTExCQUNLCisKK3ZvaWQgQ3VybFNT
TEhhbmRsZTo6c2V0dXBUaHJlYWRTZXR0aW5ncygpCit7CisgICAgQ1JZUFRPX3NldF9sb2NraW5n
X2NhbGxiYWNrKGxvY2tpbmdDYWxsYmFjayk7CisjaWYgT1MoV0lORE9XUykKKyAgICBDUllQVE9f
VEhSRUFESURfc2V0X2NhbGxiYWNrKHRocmVhZElkQ2FsbGJhY2spOworI2VuZGlmCit9CisKK3Zv
aWQgQ3VybFNTTEhhbmRsZTo6bG9ja2luZ0NhbGxiYWNrKGludCBtb2RlLCBpbnQgdHlwZSwgY29u
c3QgY2hhciosIGludCkKK3sKKyAgICBzdGF0aWMgTG9jayBsb2NrW0NSWVBUT19OVU1fTE9DS1Nd
OworICAgIEFTU0VSVCh0eXBlID49IDAgJiYgdHlwZSA8IENSWVBUT19OVU1fTE9DS1MpOworCisg
ICAgaWYgKG1vZGUgJiBDUllQVE9fTE9DSykKKyAgICAgICAgbG9ja1t0eXBlXS5sb2NrKCk7Cisg
ICAgZWxzZQorICAgICAgICBsb2NrW3R5cGVdLnVubG9jaygpOworfQorCisjaWYgT1MoV0lORE9X
UykKKwordm9pZCBDdXJsU1NMSGFuZGxlOjp0aHJlYWRJZENhbGxiYWNrKENSWVBUT19USFJFQURJ
RCogdGhyZWFkSWQpCit7CisgICAgQ1JZUFRPX1RIUkVBRElEX3NldF9udW1lcmljKHRocmVhZElk
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihUaHJlYWQ6OmN1cnJlbnRJRCgpKSk7Cit9CisK
KyNlbmRpZgorCisjZW5kaWYKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCmluZGV4IDA4OGU2NGE2ZjM0
Li40NTY0MmZiNGUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxTU0xIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCkBAIC0zMSw2ICszMSwxMyBAQAogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorI2lm
ICghZGVmaW5lZChMSUJSRVNTTF9WRVJTSU9OX05VTUJFUikgJiYgT1BFTlNTTF9WRVJTSU9OX05V
TUJFUiA+PSAweDEwMTAwMDBmTCkKKyNkZWZpbmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9JRF9DQUxM
QkFDSyAwCisjZWxzZQorI2RlZmluZSBORUVEX09QRU5TU0xfVEhSRUFEX0lEX0NBTExCQUNLIDEK
KyNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ3VybFNTTEhhbmRsZSB7CkBAIC01NSw2ICs2MiwxNCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIENTdHJpbmcgZ2V0Q0FDZXJ0UGF0aEVudigpOwogCisjaWYgTkVFRF9PUEVO
U1NMX1RIUkVBRF9JRF9DQUxMQkFDSworICAgIHZvaWQgc2V0dXBUaHJlYWRTZXR0aW5ncygpOwor
ICAgIHN0YXRpYyB2b2lkIGxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50IHR5cGUsIGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHN0YXRpYyB2b2lk
IHRocmVhZElkQ2FsbGJhY2soQ1JZUFRPX1RIUkVBRElEKik7CisjZW5kaWYKKyNlbmRpZgorCiAg
ICAgYm9vbCBtX2lnbm9yZVNTTEVycm9ycyB7IGZhbHNlIH07CiAgICAgQ1N0cmluZyBtX2NhQ2Vy
dFBhdGg7CiAK
</data>
<flag name="review"
          id="357517"
          type_id="1"
          status="+"
          setter="pvollan"
    />
    <flag name="commit-queue"
          id="357518"
          type_id="3"
          status="-"
          setter="pvollan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339340</attachid>
            <date>2018-05-02 14:29:32 -0700</date>
            <delta_ts>2018-05-02 15:14:22 -0700</delta_ts>
            <desc>Fix potential security issue</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>4965</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uMjM4MTNjNGZkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wNS0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY2lvbiBzaG91bGQKKyAgICAgICAgc2V0
IHdoZW4gdXNlIGl0IGluIG11bHRpLXRocmVhZGluZyBlbnZpcm9ubWVudC4gVGhpcyBhcHBsaWVz
IHRvIExpYnJlU1NMIGFsc28uCisgICAgICAgIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3Mv
bWFuMS4wLjIvY3J5cHRvL3RocmVhZHMuaHRtbAorCisgICAgICAgIEZvciB1bml4IGFuZCBvdGhl
ciBzaW1pbGFyIG9zLCB0aGUgZGVmYXVsdCB0aHJlYWRJZF9mdW5jdGlvbiBpbXBsZW1lbnRhdGlv
biBpcworICAgICAgICBnb29kIGVub3VnaC4gV2UnbGwgc2V0IGN1c3RvbSBjYWxsYmFjayBvbmx5
IGZvciBXaW5kb3dzIE9TLgorCisgICAgICAgIE5vdGUgaXQncyBub3QgcmVxdWlyZWQgZm9yIE9w
ZW5TU0wgMS4xLjAgYW5kIGFmdGVyLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9i
bG9nL2Jsb2cvMjAxNy8wMi8yMS90aHJlYWRzLworCisgICAgICAgIFJldmlld2VkIGJ5IFBlciBB
cm5lIFZvbGxhbi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OkN1cmxTU0xIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6VGhyZWFk
U3VwcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpUaHJlYWRTdXBwb3J0
Ojpsb2NraW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhy
ZWFkU3VwcG9ydDo6dGhyZWFkSWRDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxTU0xIYW5kbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6
OlRocmVhZFN1cHBvcnQ6OnNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6
OlRocmVhZFN1cHBvcnQ6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFu
ZGxlOjpUaHJlYWRTdXBwb3J0Ojpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5k
bGU6OlRocmVhZFN1cHBvcnQ6OnVubG9jayk6CisKIDIwMTgtMDQtMzAgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYmtpdCBzaG91
bGQgc3Bvb2YgYXMgU2FmYXJpIG9uIGEgTWFjIHdoZW4gb24gQ2hhc2UuY29tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAK
aW5kZXggM2M3ZmQyMDU0OGQuLmFiZDAyYmM3MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCkBAIC0zNyw2ICsz
NywxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCisjaWYgTkVFRF9P
UEVOU1NMX1RIUkVBRF9TVVBQT1JUICYmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VybFNTTEhhbmRsZTo6
Q3VybFNTTEhhbmRsZSgpCkBAIC00NSw2ICs0OSwxMyBAQCBDdXJsU1NMSGFuZGxlOjpDdXJsU1NM
SGFuZGxlKCkKICAgICBjaGFyKiBpZ25vcmVTU0xFcnJvcnMgPSBnZXRlbnYoIldFQktJVF9JR05P
UkVfU1NMX0VSUk9SUyIpOwogICAgIGlmIChpZ25vcmVTU0xFcnJvcnMpCiAgICAgICAgIG1faWdu
b3JlU1NMRXJyb3JzID0gdHJ1ZTsKKworI2lmIE5FRURfT1BFTlNTTF9USFJFQURfU1VQUE9SVAor
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShv
bmNlRmxhZywgW10geworICAgICAgICBUaHJlYWRTdXBwb3J0OjpzZXR1cCgpOworICAgIH0pOwor
I2VuZGlmCiB9CiAKIENTdHJpbmcgQ3VybFNTTEhhbmRsZTo6Z2V0Q0FDZXJ0UGF0aEVudigpCkBA
IC0xMjAsNiArMTMxLDM4IEBAIHN0ZDo6b3B0aW9uYWw8Q3VybFNTTEhhbmRsZTo6Q2xpZW50Q2Vy
dGlmaWNhdGU+IEN1cmxTU0xIYW5kbGU6OmdldFNTTENsaWVudENlcnRpCiAgICAgcmV0dXJuIGl0
LT52YWx1ZTsKIH0KIAorI2lmIE5FRURfT1BFTlNTTF9USFJFQURfU1VQUE9SVAorCitDdXJsU1NM
SGFuZGxlOjpUaHJlYWRTdXBwb3J0OjpUaHJlYWRTdXBwb3J0KCkKK3sKKyAgICBDUllQVE9fc2V0
X2xvY2tpbmdfY2FsbGJhY2sobG9ja2luZ0NhbGxiYWNrKTsKKyNpZiBPUyhXSU5ET1dTKQorICAg
IENSWVBUT19USFJFQURJRF9zZXRfY2FsbGJhY2sodGhyZWFkSWRDYWxsYmFjayk7CisjZW5kaWYK
K30KKwordm9pZCBDdXJsU1NMSGFuZGxlOjpUaHJlYWRTdXBwb3J0Ojpsb2NraW5nQ2FsbGJhY2so
aW50IG1vZGUsIGludCB0eXBlLCBjb25zdCBjaGFyKiwgaW50KQoreworICAgIFJFTEVBU0VfQVNT
RVJUKHR5cGUgPj0gMCAmJiB0eXBlIDwgQ1JZUFRPX05VTV9MT0NLUyk7CisgICAgYXV0byYgbG9j
a2VyID0gVGhyZWFkU3VwcG9ydDo6c2luZ2xldG9uKCk7CisKKyAgICBpZiAobW9kZSAmIENSWVBU
T19MT0NLKQorICAgICAgICBsb2NrZXIubG9jayh0eXBlKTsKKyAgICBlbHNlCisgICAgICAgIGxv
Y2tlci51bmxvY2sodHlwZSk7Cit9CisKKyNpZiBPUyhXSU5ET1dTKQorCit2b2lkIEN1cmxTU0xI
YW5kbGU6OlRocmVhZFN1cHBvcnQ6OnRocmVhZElkQ2FsbGJhY2soQ1JZUFRPX1RIUkVBRElEKiB0
aHJlYWRJZCkKK3sKKyAgICBDUllQVE9fVEhSRUFESURfc2V0X251bWVyaWModGhyZWFkSWQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KFRocmVhZDo6Y3VycmVudElEKCkpKTsKK30KKworI2Vu
ZGlmCisKKyNlbmRpZgorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmgKaW5kZXggMDg4ZTY0YTZmMzQuLjZj
MjgyOWY1YTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFNTTEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsU1NMSGFuZGxlLmgKQEAgLTI2LDExICsyNiwxOSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKKy8vIGFsbCB2ZXJzaW9uIG9m
IExpYnJlU1NMIGFuZCBPcGVuU1NMIHByaW9yIHRvIDEuMS4wCisjaWYgZGVmaW5lZChMSUJSRVNT
TF9WRVJTSU9OX05VTUJFUikgfHwgKGRlZmluZWQoT1BFTlNTTF9WRVJTSU9OX05VTUJFUikgJiYg
T1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMGZMKQorI2RlZmluZSBORUVEX09QRU5T
U0xfVEhSRUFEX1NVUFBPUlQgMQorI2Vsc2UKKyNkZWZpbmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9T
VVBQT1JUIDAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cmxTU0xI
YW5kbGUgewpAQCAtNTUsNiArNjMsMzIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU3RyaW5n
IGdldENBQ2VydFBhdGhFbnYoKTsKIAorI2lmIE5FRURfT1BFTlNTTF9USFJFQURfU1VQUE9SVAor
ICAgIGNsYXNzIFRocmVhZFN1cHBvcnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHZv
aWQgc2V0dXAoKSB7CisgICAgICAgICAgICBzaW5nbGV0b24oKTsKKyAgICAgICAgfQorCisgICAg
cHJpdmF0ZToKKyAgICAgICAgc3RhdGljIFRocmVhZFN1cHBvcnQmIHNpbmdsZXRvbigpIHsKKyAg
ICAgICAgICAgIHN0YXRpYyBUaHJlYWRTdXBwb3J0IHNoYXJlZDsKKyAgICAgICAgICAgIHJldHVy
biBzaGFyZWQ7CisgICAgICAgIH0KKworICAgICAgICBUaHJlYWRTdXBwb3J0KCk7CisgICAgICAg
IHZvaWQgbG9jayhpbnQgdHlwZSkgeyBtX2xvY2tzW3R5cGVdLmxvY2soKTsgfQorICAgICAgICB2
b2lkIHVubG9jayhpbnQgdHlwZSkgeyBtX2xvY2tzW3R5cGVdLnVubG9jaygpOyB9CisKKyAgICAg
ICAgTG9jayBtX2xvY2tzW0NSWVBUT19OVU1fTE9DS1NdOworCisgICAgICAgIHN0YXRpYyB2b2lk
IGxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50IHR5cGUsIGNvbnN0IGNoYXIqIGZpbGUsIGlu
dCBsaW5lKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgICAgICBzdGF0aWMgdm9pZCB0aHJlYWRJZENh
bGxiYWNrKENSWVBUT19USFJFQURJRCopOworI2VuZGlmCisgICAgfTsKKyNlbmRpZgorCiAgICAg
Ym9vbCBtX2lnbm9yZVNTTEVycm9ycyB7IGZhbHNlIH07CiAgICAgQ1N0cmluZyBtX2NhQ2VydFBh
dGg7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339353</attachid>
            <date>2018-05-02 15:14:22 -0700</date>
            <delta_ts>2018-05-02 23:27:35 -0700</delta_ts>
            <desc>Fix style</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>5006</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uMjM4MTNjNGZkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wNS0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY2lvbiBzaG91bGQKKyAgICAgICAgc2V0
IHdoZW4gdXNlIGl0IGluIG11bHRpLXRocmVhZGluZyBlbnZpcm9ubWVudC4gVGhpcyBhcHBsaWVz
IHRvIExpYnJlU1NMIGFsc28uCisgICAgICAgIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3Mv
bWFuMS4wLjIvY3J5cHRvL3RocmVhZHMuaHRtbAorCisgICAgICAgIEZvciB1bml4IGFuZCBvdGhl
ciBzaW1pbGFyIG9zLCB0aGUgZGVmYXVsdCB0aHJlYWRJZF9mdW5jdGlvbiBpbXBsZW1lbnRhdGlv
biBpcworICAgICAgICBnb29kIGVub3VnaC4gV2UnbGwgc2V0IGN1c3RvbSBjYWxsYmFjayBvbmx5
IGZvciBXaW5kb3dzIE9TLgorCisgICAgICAgIE5vdGUgaXQncyBub3QgcmVxdWlyZWQgZm9yIE9w
ZW5TU0wgMS4xLjAgYW5kIGFmdGVyLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9i
bG9nL2Jsb2cvMjAxNy8wMi8yMS90aHJlYWRzLworCisgICAgICAgIFJldmlld2VkIGJ5IFBlciBB
cm5lIFZvbGxhbi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OkN1cmxTU0xIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6VGhyZWFk
U3VwcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpUaHJlYWRTdXBwb3J0
Ojpsb2NraW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhy
ZWFkU3VwcG9ydDo6dGhyZWFkSWRDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxTU0xIYW5kbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6
OlRocmVhZFN1cHBvcnQ6OnNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6
OlRocmVhZFN1cHBvcnQ6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFu
ZGxlOjpUaHJlYWRTdXBwb3J0Ojpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5k
bGU6OlRocmVhZFN1cHBvcnQ6OnVubG9jayk6CisKIDIwMTgtMDQtMzAgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYmtpdCBzaG91
bGQgc3Bvb2YgYXMgU2FmYXJpIG9uIGEgTWFjIHdoZW4gb24gQ2hhc2UuY29tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAK
aW5kZXggM2M3ZmQyMDU0OGQuLmY0ZWEzNzJmNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCkBAIC0zNyw2ICsz
NywxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCisjaWYgTkVFRF9P
UEVOU1NMX1RIUkVBRF9TVVBQT1JUICYmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VybFNTTEhhbmRsZTo6
Q3VybFNTTEhhbmRsZSgpCkBAIC00NSw2ICs0OSwxMCBAQCBDdXJsU1NMSGFuZGxlOjpDdXJsU1NM
SGFuZGxlKCkKICAgICBjaGFyKiBpZ25vcmVTU0xFcnJvcnMgPSBnZXRlbnYoIldFQktJVF9JR05P
UkVfU1NMX0VSUk9SUyIpOwogICAgIGlmIChpZ25vcmVTU0xFcnJvcnMpCiAgICAgICAgIG1faWdu
b3JlU1NMRXJyb3JzID0gdHJ1ZTsKKworI2lmIE5FRURfT1BFTlNTTF9USFJFQURfU1VQUE9SVAor
ICAgIFRocmVhZFN1cHBvcnQ6OnNldHVwKCk7CisjZW5kaWYKIH0KIAogQ1N0cmluZyBDdXJsU1NM
SGFuZGxlOjpnZXRDQUNlcnRQYXRoRW52KCkKQEAgLTEyMCw2ICsxMjgsNDYgQEAgc3RkOjpvcHRp
b25hbDxDdXJsU1NMSGFuZGxlOjpDbGllbnRDZXJ0aWZpY2F0ZT4gQ3VybFNTTEhhbmRsZTo6Z2V0
U1NMQ2xpZW50Q2VydGkKICAgICByZXR1cm4gaXQtPnZhbHVlOwogfQogCisjaWYgTkVFRF9PUEVO
U1NMX1RIUkVBRF9TVVBQT1JUCisKK3ZvaWQgQ3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6
c2V0dXAoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBzaW5nbGV0b24oKTsKKyAgICB9KTsK
K30KKworQ3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6VGhyZWFkU3VwcG9ydCgpCit7Cisg
ICAgQ1JZUFRPX3NldF9sb2NraW5nX2NhbGxiYWNrKGxvY2tpbmdDYWxsYmFjayk7CisjaWYgT1Mo
V0lORE9XUykKKyAgICBDUllQVE9fVEhSRUFESURfc2V0X2NhbGxiYWNrKHRocmVhZElkQ2FsbGJh
Y2spOworI2VuZGlmCit9CisKK3ZvaWQgQ3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6bG9j
a2luZ0NhbGxiYWNrKGludCBtb2RlLCBpbnQgdHlwZSwgY29uc3QgY2hhciosIGludCkKK3sKKyAg
ICBSRUxFQVNFX0FTU0VSVCh0eXBlID49IDAgJiYgdHlwZSA8IENSWVBUT19OVU1fTE9DS1MpOwor
ICAgIGF1dG8mIGxvY2tlciA9IFRocmVhZFN1cHBvcnQ6OnNpbmdsZXRvbigpOworCisgICAgaWYg
KG1vZGUgJiBDUllQVE9fTE9DSykKKyAgICAgICAgbG9ja2VyLmxvY2sodHlwZSk7CisgICAgZWxz
ZQorICAgICAgICBsb2NrZXIudW5sb2NrKHR5cGUpOworfQorCisjaWYgT1MoV0lORE9XUykKKwor
dm9pZCBDdXJsU1NMSGFuZGxlOjpUaHJlYWRTdXBwb3J0Ojp0aHJlYWRJZENhbGxiYWNrKENSWVBU
T19USFJFQURJRCogdGhyZWFkSWQpCit7CisgICAgQ1JZUFRPX1RIUkVBRElEX3NldF9udW1lcmlj
KHRocmVhZElkLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihUaHJlYWQ6OmN1cnJlbnRJRCgp
KSk7Cit9CisKKyNlbmRpZgorCisjZW5kaWYKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCmluZGV4IDA4
OGU2NGE2ZjM0Li40ZTVjMGQwYzhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oCkBAIC0yNiwxMSArMjYsMTkgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCisvLyBh
bGwgdmVyc2lvbiBvZiBMaWJyZVNTTCBhbmQgT3BlblNTTCBwcmlvciB0byAxLjEuMAorI2lmIGRl
ZmluZWQoTElCUkVTU0xfVkVSU0lPTl9OVU1CRVIpIHx8IChkZWZpbmVkKE9QRU5TU0xfVkVSU0lP
Tl9OVU1CRVIpICYmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDBmTCkKKyNkZWZp
bmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9TVVBQT1JUIDEKKyNlbHNlCisjZGVmaW5lIE5FRURfT1BF
TlNTTF9USFJFQURfU1VQUE9SVCAwCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDdXJsU1NMSGFuZGxlIHsKQEAgLTU1LDYgKzYzLDMxIEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQ1N0cmluZyBnZXRDQUNlcnRQYXRoRW52KCk7CiAKKyNpZiBORUVEX09QRU5TU0xfVEhS
RUFEX1NVUFBPUlQKKyAgICBjbGFzcyBUaHJlYWRTdXBwb3J0IHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHN0YXRpYyB2b2lkIHNldHVwKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdGF0aWMg
VGhyZWFkU3VwcG9ydCYgc2luZ2xldG9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3RhdGlj
IFRocmVhZFN1cHBvcnQgc2hhcmVkOworICAgICAgICAgICAgcmV0dXJuIHNoYXJlZDsKKyAgICAg
ICAgfQorCisgICAgICAgIFRocmVhZFN1cHBvcnQoKTsKKyAgICAgICAgdm9pZCBsb2NrKGludCB0
eXBlKSB7IG1fbG9ja3NbdHlwZV0ubG9jaygpOyB9CisgICAgICAgIHZvaWQgdW5sb2NrKGludCB0
eXBlKSB7IG1fbG9ja3NbdHlwZV0udW5sb2NrKCk7IH0KKworICAgICAgICBMb2NrIG1fbG9ja3Nb
Q1JZUFRPX05VTV9MT0NLU107CisKKyAgICAgICAgc3RhdGljIHZvaWQgbG9ja2luZ0NhbGxiYWNr
KGludCBtb2RlLCBpbnQgdHlwZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpOworI2lmIE9T
KFdJTkRPV1MpCisgICAgICAgIHN0YXRpYyB2b2lkIHRocmVhZElkQ2FsbGJhY2soQ1JZUFRPX1RI
UkVBRElEKik7CisjZW5kaWYKKyAgICB9OworI2VuZGlmCisKICAgICBib29sIG1faWdub3JlU1NM
RXJyb3JzIHsgZmFsc2UgfTsKICAgICBDU3RyaW5nIG1fY2FDZXJ0UGF0aDsKIAo=
</data>
<flag name="review"
          id="357601"
          type_id="1"
          status="+"
          setter="pvollan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339391</attachid>
            <date>2018-05-02 23:27:35 -0700</date>
            <delta_ts>2018-05-02 23:41:56 -0700</delta_ts>
            <desc>Fox</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>5163</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uYWIzNDA5MmE4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wNS0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY3Rpb24gc2hvdWxkCisgICAgICAgIHNl
dCB3aGVuIHVzZSBpdCBpbiBtdWx0aS10aHJlYWRpbmcgZW52aXJvbm1lbnQuIFRoaXMgYXBwbGll
cyB0byBMaWJyZVNTTCBhbHNvLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9kb2Nz
L21hbjEuMC4yL2NyeXB0by90aHJlYWRzLmh0bWwKKworICAgICAgICBGb3IgdW5peCBhbmQgb3Ro
ZXIgc2ltaWxhciBvcywgdGhlIGRlZmF1bHQgdGhyZWFkSWRfZnVuY3Rpb24gaW1wbGVtZW50YXRp
b24gaXMKKyAgICAgICAgZ29vZCBlbm91Z2guIFdlJ2xsIHNldCBjdXN0b20gY2FsbGJhY2sgb25s
eSBmb3IgV2luZG93cyBPUy4KKworICAgICAgICBOb3RlIGl0J3Mgbm90IHJlcXVpcmVkIGZvciBP
cGVuU1NMIDEuMS4wIGFuZCBhZnRlci4KKyAgICAgICAgaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcv
YmxvZy9ibG9nLzIwMTcvMDIvMjEvdGhyZWFkcy8KKworICAgICAgICBSZXZpZXdlZCBieSBQZXIg
QXJuZSBWb2xsYW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpDdXJsU1NMSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6OlRocmVh
ZFN1cHBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9y
dDo6bG9ja2luZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OlRo
cmVhZFN1cHBvcnQ6OnRocmVhZElkQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsU1NMSGFuZGxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxl
OjpUaHJlYWRTdXBwb3J0OjpzZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxl
OjpUaHJlYWRTdXBwb3J0OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhh
bmRsZTo6VGhyZWFkU3VwcG9ydDo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFu
ZGxlOjpUaHJlYWRTdXBwb3J0Ojp1bmxvY2spOgorCiAyMDE4LTA0LTMwICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJraXQgc2hv
dWxkIHNwb29mIGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNvbQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3Bw
CmluZGV4IDNjN2ZkMjA1NDhkLi5mNGVhMzcyZjU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmNwcApAQCAtMzcsNiAr
MzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIE5FRURf
T1BFTlNTTF9USFJFQURfU1VQUE9SVCAmJiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1cmxTU0xIYW5kbGU6
OkN1cmxTU0xIYW5kbGUoKQpAQCAtNDUsNiArNDksMTAgQEAgQ3VybFNTTEhhbmRsZTo6Q3VybFNT
TEhhbmRsZSgpCiAgICAgY2hhciogaWdub3JlU1NMRXJyb3JzID0gZ2V0ZW52KCJXRUJLSVRfSUdO
T1JFX1NTTF9FUlJPUlMiKTsKICAgICBpZiAoaWdub3JlU1NMRXJyb3JzKQogICAgICAgICBtX2ln
bm9yZVNTTEVycm9ycyA9IHRydWU7CisKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFEX1NVUFBPUlQK
KyAgICBUaHJlYWRTdXBwb3J0OjpzZXR1cCgpOworI2VuZGlmCiB9CiAKIENTdHJpbmcgQ3VybFNT
TEhhbmRsZTo6Z2V0Q0FDZXJ0UGF0aEVudigpCkBAIC0xMjAsNiArMTI4LDQ2IEBAIHN0ZDo6b3B0
aW9uYWw8Q3VybFNTTEhhbmRsZTo6Q2xpZW50Q2VydGlmaWNhdGU+IEN1cmxTU0xIYW5kbGU6Omdl
dFNTTENsaWVudENlcnRpCiAgICAgcmV0dXJuIGl0LT52YWx1ZTsKIH0KIAorI2lmIE5FRURfT1BF
TlNTTF9USFJFQURfU1VQUE9SVAorCit2b2lkIEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6
OnNldHVwKCkKK3sKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgc2luZ2xldG9uKCk7CisgICAgfSk7
Cit9CisKK0N1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6OlRocmVhZFN1cHBvcnQoKQorewor
ICAgIENSWVBUT19zZXRfbG9ja2luZ19jYWxsYmFjayhsb2NraW5nQ2FsbGJhY2spOworI2lmIE9T
KFdJTkRPV1MpCisgICAgQ1JZUFRPX1RIUkVBRElEX3NldF9jYWxsYmFjayh0aHJlYWRJZENhbGxi
YWNrKTsKKyNlbmRpZgorfQorCit2b2lkIEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6Omxv
Y2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50IHR5cGUsIGNvbnN0IGNoYXIqLCBpbnQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQodHlwZSA+PSAwICYmIHR5cGUgPCBDUllQVE9fTlVNX0xPQ0tTKTsK
KyAgICBhdXRvJiBsb2NrZXIgPSBUaHJlYWRTdXBwb3J0OjpzaW5nbGV0b24oKTsKKworICAgIGlm
IChtb2RlICYgQ1JZUFRPX0xPQ0spCisgICAgICAgIGxvY2tlci5sb2NrKHR5cGUpOworICAgIGVs
c2UKKyAgICAgICAgbG9ja2VyLnVubG9jayh0eXBlKTsKK30KKworI2lmIE9TKFdJTkRPV1MpCisK
K3ZvaWQgQ3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6dGhyZWFkSWRDYWxsYmFjayhDUllQ
VE9fVEhSRUFESUQqIHRocmVhZElkKQoreworICAgIENSWVBUT19USFJFQURJRF9zZXRfbnVtZXJp
Yyh0aHJlYWRJZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oVGhyZWFkOjpjdXJyZW50SUQo
KSkpOworfQorCisjZW5kaWYKKworI2VuZGlmCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaAppbmRleCAw
ODhlNjRhNmYzNC4uMmFmYmMxNTVlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaApAQCAtMjYsMTEgKzI2LDIwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorLy8gYWxsIHZlcnNpb24gb2YgTGlicmVTU0wg
YW5kIE9wZW5TU0wgcHJpb3IgdG8gMS4xLjAgbmVlZCB0aHJlYWQgc3VwcG9ydAorI2lmIGRlZmlu
ZWQoTElCUkVTU0xfVkVSU0lPTl9OVU1CRVIpIHx8IChkZWZpbmVkKE9QRU5TU0xfVkVSU0lPTl9O
VU1CRVIpICYmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDBmTCkKKyNkZWZpbmUg
TkVFRF9PUEVOU1NMX1RIUkVBRF9TVVBQT1JUIDEKKyNlbHNlCisjZGVmaW5lIE5FRURfT1BFTlNT
TF9USFJFQURfU1VQUE9SVCAwCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDdXJsU1NMSGFuZGxlIHsKQEAgLTU1LDYgKzY0LDMzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgQ1N0cmluZyBnZXRDQUNlcnRQYXRoRW52KCk7CiAKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFE
X1NVUFBPUlQKKyAgICBjbGFzcyBUaHJlYWRTdXBwb3J0IHsKKyAgICAgICAgZnJpZW5kIE5ldmVy
RGVzdHJveWVkPEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ+OworICAgICAgICAKKyAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkIHNldHVwKCk7CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBzdGF0aWMgVGhyZWFkU3VwcG9ydCYgc2luZ2xldG9uKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ+
IHNoYXJlZDsKKyAgICAgICAgICAgIHJldHVybiBzaGFyZWQ7CisgICAgICAgIH0KKworICAgICAg
ICBUaHJlYWRTdXBwb3J0KCk7CisgICAgICAgIHZvaWQgbG9jayhpbnQgdHlwZSkgeyBtX2xvY2tz
W3R5cGVdLmxvY2soKTsgfQorICAgICAgICB2b2lkIHVubG9jayhpbnQgdHlwZSkgeyBtX2xvY2tz
W3R5cGVdLnVubG9jaygpOyB9CisKKyAgICAgICAgTG9jayBtX2xvY2tzW0NSWVBUT19OVU1fTE9D
S1NdOworCisgICAgICAgIHN0YXRpYyB2b2lkIGxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50
IHR5cGUsIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKTsKKyNpZiBPUyhXSU5ET1dTKQorICAg
ICAgICBzdGF0aWMgdm9pZCB0aHJlYWRJZENhbGxiYWNrKENSWVBUT19USFJFQURJRCopOworI2Vu
ZGlmCisgICAgfTsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2lnbm9yZVNTTEVycm9ycyB7IGZhbHNl
IH07CiAgICAgQ1N0cmluZyBtX2NhQ2VydFBhdGg7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339392</attachid>
            <date>2018-05-02 23:41:56 -0700</date>
            <delta_ts>2018-05-03 00:23:14 -0700</delta_ts>
            <desc>typo</desc>
            <filename>185138.diff</filename>
            <type>text/plain</type>
            <size>5166</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGFkMjA3MGE0ZS4uYWIzNDA5MmE4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wNS0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEFkZCBPcGVuU1NML0xpYnJlU1NMIG11bHRpLXRocmVh
ZGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUxMzgKKworICAgICAgICBUaGUgb2xkZXIgT3BlblNTTCBtYW51YWwgc2F5cyB0aGUg
bG9ja2luZ19mdW5jdGlvbiBhbmQgdGhyZWFkaWRfZnVuY3Rpb24gc2hvdWxkCisgICAgICAgIGJl
IHNldCB3aGVuIHVzZSBpdCBpbiBtdWx0aS10aHJlYWRpbmcgZW52aXJvbm1lbnQuIFRoaXMgYXBw
bGllcyB0byBMaWJyZVNTTCBhbHNvLgorICAgICAgICBodHRwczovL3d3dy5vcGVuc3NsLm9yZy9k
b2NzL21hbjEuMC4yL2NyeXB0by90aHJlYWRzLmh0bWwKKworICAgICAgICBGb3IgdW5peCBhbmQg
b3RoZXIgc2ltaWxhciBvcywgdGhlIGRlZmF1bHQgdGhyZWFkSWRfZnVuY3Rpb24gaW1wbGVtZW50
YXRpb24gaXMKKyAgICAgICAgZ29vZCBlbm91Z2guIFdlJ2xsIHNldCBjdXN0b20gY2FsbGJhY2sg
b25seSBmb3IgV2luZG93cyBPUy4KKworICAgICAgICBOb3RlIGl0J3Mgbm90IHJlcXVpcmVkIGZv
ciBPcGVuU1NMIDEuMS4wIGFuZCBhZnRlci4KKyAgICAgICAgaHR0cHM6Ly93d3cub3BlbnNzbC5v
cmcvYmxvZy9ibG9nLzIwMTcvMDIvMjEvdGhyZWFkcy8KKworICAgICAgICBSZXZpZXdlZCBieSBQ
ZXIgQXJuZSBWb2xsYW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNT
TEhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFuZGxlOjpDdXJsU1NMSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6OlRo
cmVhZFN1cHBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNTTEhhbmRsZTo6VGhyZWFkU3Vw
cG9ydDo6bG9ja2luZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxTU0xIYW5kbGU6
OlRocmVhZFN1cHBvcnQ6OnRocmVhZElkQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFu
ZGxlOjpUaHJlYWRTdXBwb3J0OjpzZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NMSGFu
ZGxlOjpUaHJlYWRTdXBwb3J0OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNT
TEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsU1NM
SGFuZGxlOjpUaHJlYWRTdXBwb3J0Ojp1bmxvY2spOgorCiAyMDE4LTA0LTMwICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJraXQg
c2hvdWxkIHNwb29mIGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNvbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUu
Y3BwCmluZGV4IDNjN2ZkMjA1NDhkLi5mNGVhMzcyZjU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmNwcApAQCAtMzcs
NiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIE5F
RURfT1BFTlNTTF9USFJFQURfU1VQUE9SVCAmJiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1cmxTU0xIYW5k
bGU6OkN1cmxTU0xIYW5kbGUoKQpAQCAtNDUsNiArNDksMTAgQEAgQ3VybFNTTEhhbmRsZTo6Q3Vy
bFNTTEhhbmRsZSgpCiAgICAgY2hhciogaWdub3JlU1NMRXJyb3JzID0gZ2V0ZW52KCJXRUJLSVRf
SUdOT1JFX1NTTF9FUlJPUlMiKTsKICAgICBpZiAoaWdub3JlU1NMRXJyb3JzKQogICAgICAgICBt
X2lnbm9yZVNTTEVycm9ycyA9IHRydWU7CisKKyNpZiBORUVEX09QRU5TU0xfVEhSRUFEX1NVUFBP
UlQKKyAgICBUaHJlYWRTdXBwb3J0OjpzZXR1cCgpOworI2VuZGlmCiB9CiAKIENTdHJpbmcgQ3Vy
bFNTTEhhbmRsZTo6Z2V0Q0FDZXJ0UGF0aEVudigpCkBAIC0xMjAsNiArMTI4LDQ2IEBAIHN0ZDo6
b3B0aW9uYWw8Q3VybFNTTEhhbmRsZTo6Q2xpZW50Q2VydGlmaWNhdGU+IEN1cmxTU0xIYW5kbGU6
OmdldFNTTENsaWVudENlcnRpCiAgICAgcmV0dXJuIGl0LT52YWx1ZTsKIH0KIAorI2lmIE5FRURf
T1BFTlNTTF9USFJFQURfU1VQUE9SVAorCit2b2lkIEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBv
cnQ6OnNldHVwKCkKK3sKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAg
c3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgc2luZ2xldG9uKCk7CisgICAg
fSk7Cit9CisKK0N1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6OlRocmVhZFN1cHBvcnQoKQor
eworICAgIENSWVBUT19zZXRfbG9ja2luZ19jYWxsYmFjayhsb2NraW5nQ2FsbGJhY2spOworI2lm
IE9TKFdJTkRPV1MpCisgICAgQ1JZUFRPX1RIUkVBRElEX3NldF9jYWxsYmFjayh0aHJlYWRJZENh
bGxiYWNrKTsKKyNlbmRpZgorfQorCit2b2lkIEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ6
OmxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwgaW50IHR5cGUsIGNvbnN0IGNoYXIqLCBpbnQpCit7
CisgICAgUkVMRUFTRV9BU1NFUlQodHlwZSA+PSAwICYmIHR5cGUgPCBDUllQVE9fTlVNX0xPQ0tT
KTsKKyAgICBhdXRvJiBsb2NrZXIgPSBUaHJlYWRTdXBwb3J0OjpzaW5nbGV0b24oKTsKKworICAg
IGlmIChtb2RlICYgQ1JZUFRPX0xPQ0spCisgICAgICAgIGxvY2tlci5sb2NrKHR5cGUpOworICAg
IGVsc2UKKyAgICAgICAgbG9ja2VyLnVubG9jayh0eXBlKTsKK30KKworI2lmIE9TKFdJTkRPV1Mp
CisKK3ZvaWQgQ3VybFNTTEhhbmRsZTo6VGhyZWFkU3VwcG9ydDo6dGhyZWFkSWRDYWxsYmFjayhD
UllQVE9fVEhSRUFESUQqIHRocmVhZElkKQoreworICAgIENSWVBUT19USFJFQURJRF9zZXRfbnVt
ZXJpYyh0aHJlYWRJZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oVGhyZWFkOjpjdXJyZW50
SUQoKSkpOworfQorCisjZW5kaWYKKworI2VuZGlmCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFNTTEhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaAppbmRl
eCAwODhlNjRhNmYzNC4uMmFmYmMxNTVlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsU1NMSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxTU0xIYW5kbGUuaApAQCAtMjYsMTEgKzI2LDIwIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorLy8gYWxsIHZlcnNpb24gb2YgTGlicmVT
U0wgYW5kIE9wZW5TU0wgcHJpb3IgdG8gMS4xLjAgbmVlZCB0aHJlYWQgc3VwcG9ydAorI2lmIGRl
ZmluZWQoTElCUkVTU0xfVkVSU0lPTl9OVU1CRVIpIHx8IChkZWZpbmVkKE9QRU5TU0xfVkVSU0lP
Tl9OVU1CRVIpICYmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDBmTCkKKyNkZWZp
bmUgTkVFRF9PUEVOU1NMX1RIUkVBRF9TVVBQT1JUIDEKKyNlbHNlCisjZGVmaW5lIE5FRURfT1BF
TlNTTF9USFJFQURfU1VQUE9SVCAwCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDdXJsU1NMSGFuZGxlIHsKQEAgLTU1LDYgKzY0LDMzIEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQ1N0cmluZyBnZXRDQUNlcnRQYXRoRW52KCk7CiAKKyNpZiBORUVEX09QRU5TU0xfVEhS
RUFEX1NVUFBPUlQKKyAgICBjbGFzcyBUaHJlYWRTdXBwb3J0IHsKKyAgICAgICAgZnJpZW5kIE5l
dmVyRGVzdHJveWVkPEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBvcnQ+OworICAgICAgICAKKyAg
ICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkIHNldHVwKCk7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBzdGF0aWMgVGhyZWFkU3VwcG9ydCYgc2luZ2xldG9uKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cmxTU0xIYW5kbGU6OlRocmVhZFN1cHBv
cnQ+IHNoYXJlZDsKKyAgICAgICAgICAgIHJldHVybiBzaGFyZWQ7CisgICAgICAgIH0KKworICAg
ICAgICBUaHJlYWRTdXBwb3J0KCk7CisgICAgICAgIHZvaWQgbG9jayhpbnQgdHlwZSkgeyBtX2xv
Y2tzW3R5cGVdLmxvY2soKTsgfQorICAgICAgICB2b2lkIHVubG9jayhpbnQgdHlwZSkgeyBtX2xv
Y2tzW3R5cGVdLnVubG9jaygpOyB9CisKKyAgICAgICAgTG9jayBtX2xvY2tzW0NSWVBUT19OVU1f
TE9DS1NdOworCisgICAgICAgIHN0YXRpYyB2b2lkIGxvY2tpbmdDYWxsYmFjayhpbnQgbW9kZSwg
aW50IHR5cGUsIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKTsKKyNpZiBPUyhXSU5ET1dTKQor
ICAgICAgICBzdGF0aWMgdm9pZCB0aHJlYWRJZENhbGxiYWNrKENSWVBUT19USFJFQURJRCopOwor
I2VuZGlmCisgICAgfTsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2lnbm9yZVNTTEVycm9ycyB7IGZh
bHNlIH07CiAgICAgQ1N0cmluZyBtX2NhQ2VydFBhdGg7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>