<?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>145201</bug_id>
          
          <creation_ts>2015-05-19 20:31:58 -0700</creation_ts>
          <short_desc>Give StringView a utf8() API.</short_desc>
          <delta_ts>2015-05-20 08:30:11 -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>Web Template Framework</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096148</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-19 20:31:58 -0700</bug_when>
    <thetext>It would be nice if StringView had an API like String::utf8().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096151</commentid>
    <comment_count>1</comment_count>
      <attachid>253422</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-19 20:40:22 -0700</bug_when>
    <thetext>Created attachment 253422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096152</commentid>
    <comment_count>2</comment_count>
      <attachid>253423</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-19 20:41:19 -0700</bug_when>
    <thetext>Created attachment 253423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096186</commentid>
    <comment_count>3</comment_count>
      <attachid>253423</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 22:58:03 -0700</bug_when>
    <thetext>Comment on attachment 253423
Patch

Clearing flags on attachment: 253423

Committed r184617: &lt;http://trac.webkit.org/changeset/184617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096187</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 22:58:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096235</commentid>
    <comment_count>5</comment_count>
      <attachid>253423</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-20 08:30:11 -0700</bug_when>
    <thetext>Comment on attachment 253423
Patch

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

&gt; Source/WTF/wtf/text/StringImpl.h:519
&gt; +    static WTF_EXPORT_STRING_API CString utf8ForCharacters(const LChar* characters, unsigned length);
&gt;      static WTF_EXPORT_STRING_API CString utf8ForCharacters(const UChar* characters, unsigned length, ConversionMode = LenientConversion);

For future consideration: It’s peculiar that these two functions are members of StringImpl. They would make more sense in the CString class itself, as free functions in UTF8.h, or possibly as members of StringView, which encapsulates character pointers and lengths.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253422</attachid>
            <date>2015-05-19 20:40:22 -0700</date>
            <delta_ts>2015-05-19 20:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145131.diff</filename>
            <type>text/plain</type>
            <size>11011</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZlNjMxNjkuLjczYTQ4ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTA1LTE4ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBHaXZlIEpTU3RyaW5nIGEgU3RyaW5nVmll
dyBnZXR0ZXIgYW5kIHN0YXJ0IHVzaW5nIGl0LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTQ1MTMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gSlNTdHJpbmcgaXMgYSBzdWJzdHJpbmcgaW50ZXJuYWxseSwgY2FsbGluZyB2YWx1
ZShFeGVjU3RhdGUqKSBvbiBpdAorICAgICAgICB3aWxsIHJlaWZ5IHRoZSBiYXNlU3RyaW5nL3N0
YXJ0L2xlbmd0aCB0dXBsZSBpbnRvIGEgbmV3IFN0cmluZ0ltcGwuCisKKyAgICAgICAgRm9yIGNs
aWVudHMgdGhhdCBvbmx5IHdhbnQgdG8gbG9vayBhdCB0aGUgY2hhcmFjdGVycyBvZiBhIEpTU3Ry
aW5nLCBidXQKKyAgICAgICAgZG9uJ3QgYWN0dWFsbHkgbmVlZCBhIHJlZmZhYmxlIFN0cmluZ0lt
cGwsIGFkZGluZyBhIGxpZ2h0LXdlaWdodCBTdHJpbmdWaWV3CisgICAgICAgIGdldHRlciBsZXRz
IHRoZW0gYXZvaWQgY29uc3RydWN0aW5nIGFueXRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBKU1N0cmluZzo6dmlldyhFeGVjU3RhdGUqKSBhbmQgdXNlcyBpdCBpbiBhIGZldyBwbGFj
ZXMuCisgICAgICAgIFRoZXJlIGFyZSBtYW55IG1vcmUgb3Bwb3J0dW5pdGllcyB0byB1c2UgdGhp
cyBBUEksIGJ1dCBsZXQncyBkbyBhIGZldyB0aGluZ3MKKyAgICAgICAgYXQgYSB0aW1lLgorCisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2spOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpkZWNvZGUp
OgorICAgICAgICAoSlNDOjpwYXJzZUludCk6CisgICAgICAgIChKU0M6OmpzVG9OdW1iZXIpOgor
ICAgICAgICAoSlNDOjpwYXJzZUZsb2F0KToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNl
SW50KToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxvYXQpOgorICAgICAgICAoSlND
OjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1VuZXNjYXBlKToK
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
cnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTlByb3RvRnVuY1BhcnNl
KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6OmdldFByaW1pdGl2ZU51bWJlcik6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjp0b051bWJl
cik6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAoSlNDOjpKU1JvcGVT
dHJpbmc6OnZpZXcpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6dmlldyk6CisKIDIwMTUtMDUt
MTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODQ0MTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ0NDhkNmYuLmRi
ZTQyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xMDMsMTMgKzEwMywxMyBAQCBKU09iamVjdCogY29uc3Ry
dWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgie2Z1bmN0aW9uICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChmdW5jdGlv
bk5hbWUuc3RyaW5nKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhl
YykpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGFyZ3Muc2l6ZSgpIC0gMTsgaSsr
KSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7Ci0gICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChhcmdzLmF0KGkpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChhcmdzLmF0KGkpLnRvU3RyaW5nKGV4ZWMpLT52
aWV3KGV4ZWMpKTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikg
e1xuIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ3MuYXQoYXJncy5zaXplKCkgLSAxKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOworICAgICAgICBidWlsZGVyLmFwcGVuZChhcmdz
LmF0KGFyZ3Muc2l6ZSgpIC0gMSkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhlYykpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKICAgICAgICAgcHJvZ3JhbSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggOTlkODRkNC4uYzQ5
YjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyBKU1Zh
bHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBp
bnQgbGVuZ3RoLCBjCiAKIHN0YXRpYyBKU1ZhbHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IGNoYXIqIGRvTm90VW5lc2NhcGUsIGJvb2wgc3RyaWN0KQogewotICAgIFN0cmluZyBzdHIg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgU3Ry
aW5nVmlldyBzdHIgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmlldyhleGVj
KTsKICAgICAKICAgICBpZiAoc3RyLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gZGVjb2RlKGV4
ZWMsIHN0ci5jaGFyYWN0ZXJzOCgpLCBzdHIubGVuZ3RoKCksIGRvTm90VW5lc2NhcGUsIHN0cmlj
dCk7CkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGljIGRvdWJsZSBwYXJzZUludE92ZXJmbG93KFN0
cmluZ1ZpZXcgc3RyaW5nLCBpbnQgcmFkaXgpCiAvLyBFUzUuMSAxNS4xLjIuMgogdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgogQUxXQVlTX0lOTElORQotc3RhdGljIGRvdWJsZSBwYXJzZUlu
dChjb25zdCBTdHJpbmcmIHMsIGNvbnN0IENoYXJUeXBlKiBkYXRhLCBpbnQgcmFkaXgpCitzdGF0
aWMgZG91YmxlIHBhcnNlSW50KFN0cmluZ1ZpZXcgcywgY29uc3QgQ2hhclR5cGUqIGRhdGEsIGlu
dCByYWRpeCkKIHsKICAgICAvLyAxLiBMZXQgaW5wdXRTdHJpbmcgYmUgVG9TdHJpbmcoc3RyaW5n
KS4KICAgICAvLyAyLiBMZXQgUyBiZSBhIG5ld2x5IGNyZWF0ZWQgc3Vic3RyaW5nIG9mIGlucHV0
U3RyaW5nIGNvbnNpc3Rpbmcgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGF0IGlzIG5vdCBhCkBA
IC0zMTEsMTYgKzMxMSwxNiBAQCBzdGF0aWMgZG91YmxlIHBhcnNlSW50KGNvbnN0IFN0cmluZyYg
cywgY29uc3QgQ2hhclR5cGUqIGRhdGEsIGludCByYWRpeCkKICAgICBpZiAobnVtYmVyID49IG1h
bnRpc3NhT3ZlcmZsb3dMb3dlckJvdW5kKSB7CiAgICAgICAgIGlmIChyYWRpeCA9PSAxMCkgewog
ICAgICAgICAgICAgc2l6ZV90IHBhcnNlZExlbmd0aDsKLSAgICAgICAgICAgIG51bWJlciA9IHBh
cnNlRG91YmxlKFN0cmluZ1ZpZXcocykuc3Vic3RyaW5nKGZpcnN0RGlnaXRQb3NpdGlvbiwgcCAt
IGZpcnN0RGlnaXRQb3NpdGlvbiksIHBhcnNlZExlbmd0aCk7CisgICAgICAgICAgICBudW1iZXIg
PSBwYXJzZURvdWJsZShzLnN1YnN0cmluZyhmaXJzdERpZ2l0UG9zaXRpb24sIHAgLSBmaXJzdERp
Z2l0UG9zaXRpb24pLCBwYXJzZWRMZW5ndGgpOwogICAgICAgICB9IGVsc2UgaWYgKHJhZGl4ID09
IDIgfHwgcmFkaXggPT0gNCB8fCByYWRpeCA9PSA4IHx8IHJhZGl4ID09IDE2IHx8IHJhZGl4ID09
IDMyKQotICAgICAgICAgICAgbnVtYmVyID0gcGFyc2VJbnRPdmVyZmxvdyhTdHJpbmdWaWV3KHMp
LnN1YnN0cmluZyhmaXJzdERpZ2l0UG9zaXRpb24sIHAgLSBmaXJzdERpZ2l0UG9zaXRpb24pLCBy
YWRpeCk7CisgICAgICAgICAgICBudW1iZXIgPSBwYXJzZUludE92ZXJmbG93KHMuc3Vic3RyaW5n
KGZpcnN0RGlnaXRQb3NpdGlvbiwgcCAtIGZpcnN0RGlnaXRQb3NpdGlvbiksIHJhZGl4KTsKICAg
ICB9CiAKICAgICAvLyAxNS4gUmV0dXJuIHNpZ24geCBudW1iZXIuCiAgICAgcmV0dXJuIHNpZ24g
KiBudW1iZXI7CiB9CiAKLXN0YXRpYyBkb3VibGUgcGFyc2VJbnQoY29uc3QgU3RyaW5nJiBzLCBp
bnQgcmFkaXgpCitzdGF0aWMgZG91YmxlIHBhcnNlSW50KFN0cmluZ1ZpZXcgcywgaW50IHJhZGl4
KQogewogICAgIGlmIChzLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gcGFyc2VJbnQocywgcy5j
aGFyYWN0ZXJzOCgpLCByYWRpeCk7CkBAIC00OTAsNyArNDkwLDcgQEAgc3RhdGljIGRvdWJsZSB0
b0RvdWJsZShjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKIH0KIAog
Ly8gU2VlIGVjbWEtMjYyIDZ0aCAxMS44LjMKLWRvdWJsZSBqc1RvTnVtYmVyKGNvbnN0IFN0cmlu
ZyYgcykKK2RvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcgcykKIHsKICAgICB1bnNpZ25lZCBz
aXplID0gcy5sZW5ndGgoKTsKIApAQCAtNTA4LDcgKzUwOCw3IEBAIGRvdWJsZSBqc1RvTnVtYmVy
KGNvbnN0IFN0cmluZyYgcykKICAgICByZXR1cm4gdG9Eb3VibGUocy5jaGFyYWN0ZXJzMTYoKSwg
c2l6ZSk7CiB9CiAKLXN0YXRpYyBkb3VibGUgcGFyc2VGbG9hdChjb25zdCBTdHJpbmcmIHMpCitz
dGF0aWMgZG91YmxlIHBhcnNlRmxvYXQoU3RyaW5nVmlldyBzKQogewogICAgIHVuc2lnbmVkIHNp
emUgPSBzLmxlbmd0aCgpOwogCkBAIC02MDEsNyArNjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VJbnQoRXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAog
ICAgIC8vIElmIFRvU3RyaW5nIHRocm93cywgd2Ugc2hvdWxkbid0IGNhbGwgVG9JbnQzMi4KLSAg
ICBTdHJpbmcgcyA9IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBTdHJp
bmdWaWV3IHMgPSB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmlldyhleGVjKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAKQEAgLTYxMCw3ICs2MTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocGFyc2VGbG9hdChleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihwYXJzZUZsb2F0KGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52aWV3KGV4ZWMpKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNJc05hTihFeGVjU3RhdGUqIGV4ZWMpCkBAIC02NjgsNyArNjY4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgIiorLS4vQF8iOwogCiAgICAgSlNTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgU3RyaW5nIHN0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKKyAgICBTdHJpbmdWaWV3IHN0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpLT52aWV3KGV4ZWMpOwogICAgIGlmIChzdHIuaXM4Qml0KCkpIHsKICAgICAgICAgY29uc3Qg
TENoYXIqIGMgPSBzdHIuY2hhcmFjdGVyczgoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0g
MDsgayA8IHN0ci5sZW5ndGgoKTsgaysrLCBjKyspIHsKQEAgLTcwNiw3ICs3MDYsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVj
KQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBTdHJpbmcgc3Ry
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgIFN0
cmluZ1ZpZXcgc3RyID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhl
Yyk7CiAgICAgaW50IGsgPSAwOwogICAgIGludCBsZW4gPSBzdHIubGVuZ3RoKCk7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaAppbmRleCA2OTkwMmRmLi44ZDBkMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTYw
LDcgKzYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxQcml2YXRlRnVu
Y0Zsb29yKEV4ZWNTdGF0ZSopOwogc3RhdGljIGNvbnN0IGRvdWJsZSBtYW50aXNzYU92ZXJmbG93
TG93ZXJCb3VuZCA9IDkwMDcxOTkyNTQ3NDA5OTIuMDsKIGRvdWJsZSBwYXJzZUludE92ZXJmbG93
KGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgcmFkaXgpOwogYm9vbCBpc1N0cldo
aXRlU3BhY2UoVUNoYXIpOwotZG91YmxlIGpzVG9OdW1iZXIoY29uc3QgV1RGOjpTdHJpbmcmKTsK
K2RvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA4YzY5
ZWU5Li42MWRjMDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcApAQCAtNzE5LDcgKzcxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNPTlByb3RvRnVuY1BhcnNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoIWV4ZWMtPmFy
Z3VtZW50Q291bnQoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkpTT04ucGFyc2UgcmVxdWlyZXMgYXQgbGVhc3Qgb25l
IHBhcmFtZXRlciIpKSk7Ci0gICAgU3RyaW5nIHNvdXJjZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBTdHJpbmdWaWV3IHNvdXJj
ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3KGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bGwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmNwcAppbmRleCAxM2I5MGVmLi4xNTc4MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0zODUsNyArMzg1LDcgQEAgSlNWYWx1ZSBKU1N0cmlu
Zzo6dG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3QK
IGJvb2wgSlNTdHJpbmc6OmdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIGRvdWJs
ZSYgbnVtYmVyLCBKU1ZhbHVlJiByZXN1bHQpIGNvbnN0CiB7CiAgICAgcmVzdWx0ID0gdGhpczsK
LSAgICBudW1iZXIgPSBqc1RvTnVtYmVyKHZhbHVlKGV4ZWMpKTsKKyAgICBudW1iZXIgPSBqc1Rv
TnVtYmVyKHZpZXcoZXhlYykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMzk2LDcgKzM5
Niw3IEBAIGJvb2wgSlNTdHJpbmc6OnRvQm9vbGVhbigpIGNvbnN0CiAKIGRvdWJsZSBKU1N0cmlu
Zzo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBqc1RvTnVt
YmVyKHZhbHVlKGV4ZWMpKTsKKyAgICByZXR1cm4ganNUb051bWJlcih2aWV3KGV4ZWMpKTsKIH0K
IAogaW5saW5lIFN0cmluZ09iamVjdCogU3RyaW5nT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggYTIyZTZmYi4uZTQ4ZDA1YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVk
ZSA8YXJyYXk+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMTQzLDYgKzE0NCw3IEBAIHB1YmxpYzoKICAgICBJZGVudGlmaWVyIHRvSWRl
bnRpZmllcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICBBdG9taWNTdHJpbmcgdG9BdG9taWNTdHJp
bmcoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgQXRvbWljU3RyaW5nSW1wbCogdG9FeGlzdGluZ0F0
b21pY1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBTdHJpbmdWaWV3IHZpZXcoRXhlY1N0
YXRlKikgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiB2YWx1ZShFeGVjU3RhdGUqKSBjb25zdDsK
ICAgICBjb25zdCBTdHJpbmcmIHRyeUdldFZhbHVlKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5n
SW1wbCogdHJ5R2V0VmFsdWVJbXBsKCkgY29uc3Q7CkBAIC0zNjksNiArMzcxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlc29sdmVSb3BlSW50ZXJuYWwxNihVQ2hhciopIGNvbnN0OwogICAgIHZv
aWQgcmVzb2x2ZVJvcGVJbnRlcm5hbDE2Tm9TdWJzdHJpbmcoVUNoYXIqKSBjb25zdDsKICAgICB2
b2lkIGNsZWFyRmliZXJzKCkgY29uc3Q7CisgICAgU3RyaW5nVmlldyB2aWV3KEV4ZWNTdGF0ZSop
IGNvbnN0OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNTdHJpbmcqIGdldEluZGV4U2xvd0Nh
c2UoRXhlY1N0YXRlKiwgdW5zaWduZWQpOwogCkBAIC02OTgsNiArNzAxLDI0IEBAIEFMV0FZU19J
TkxJTkUgU3RyaW5nIEpTVmFsdWU6OnRvV1RGU3RyaW5nSW5saW5lKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKICAgICByZXR1cm4gaW5saW5lSlNWYWx1ZU5vdFN0cmluZ3RvU3RyaW5nKCp0aGlzLCBl
eGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTUm9wZVN0cmluZzo6dmlldyhF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3Vic3RyaW5nKCkpIHsKKyAgICAg
ICAgaWYgKGlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1ZpZXcoc3Vic3RyaW5n
QmFzZSgpLT5tX3ZhbHVlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwgbV9sZW5n
dGgpOworICAgICAgICByZXR1cm4gU3RyaW5nVmlldyhzdWJzdHJpbmdCYXNlKCktPm1fdmFsdWUu
Y2hhcmFjdGVyczE2KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwgbV9sZW5ndGgpOworICAgIH0KKyAg
ICByZXNvbHZlUm9wZShleGVjKTsKKyAgICByZXR1cm4gU3RyaW5nVmlldyhtX3ZhbHVlKTsKK30K
KworQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTU3RyaW5nOjp2aWV3KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKK3sKKyAgICBpZiAoaXNSb3BlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBKU1JvcGVTdHJpbmcqPih0aGlzKS0+dmlldyhleGVjKTsKKyAgICByZXR1cm4gU3Ry
aW5nVmlldyhtX3ZhbHVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBK
U1N0cmluZ19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253423</attachid>
            <date>2015-05-19 20:41:19 -0700</date>
            <delta_ts>2015-05-19 22:58:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145201.diff</filename>
            <type>text/plain</type>
            <size>7158</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVjOTkxMjMuLjhkMGI0NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA1LTE5ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBHaXZlIFN0cmluZ1ZpZXcgYSB1dGY4KCkg
QVBJLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ1MjAxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBKU1N0cmluZzo6dmlldygp
IGluIGEgZmV3IHBsYWNlcyB3aGVyZSB3ZSBjb3VsZG4ndCBiZWZvcmUgZHVlIHRvIFN0cmluZ1Zp
ZXcKKyAgICAgICAgbGFja2luZyBhIHV0ZjgoKSBBUEkuIFRoaXMgaXMgYSBtaW5vciBzcGVlZC11
cCBvbiBLcmFrZW4ncyBjcnlwdG8gc3VidGVzdHMsCisgICAgICAgIHdoaWNoIGxpa2UgdG8gY2Fs
bCBlbmNvZGUoKSB3aXRoIHN1YnN0cmluZyBKU1N0cmluZ3MuCisKKyAgICAgICAgKiBqc2MuY3Bw
OgorICAgICAgICAoZnVuY3Rpb25QcmludCk6CisgICAgICAgIChmdW5jdGlvbkRlYnVnKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpT
Qzo6ZW5jb2RlKToKKwogMjAxNS0wNS0xOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcHJvdmUgUHJldmlldyBmb3IgTm9k
ZUxpc3QgLyBhcnJheSBsaWtlIGNvbGxlY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGEw
ZWM3NzAuLjIwZjExMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC02OTAsNyArNjkwLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50KEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgaWYgKGkpCiAgICAgICAgICAgICBwdXRjaGFyKCcgJyk7CiAKLSAgICAgICAg
cHJpbnRmKCIlcyIsIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcHJpbnRmKCIlcyIsIGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KGkpLnRvU3RyaW5nKGV4ZWMpLT52aWV3KGV4ZWMpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIH0KIAogICAgIHB1dGNoYXIoJ1xuJyk7CkBAIC03MTEsNyArNzExLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoRXhlY1N0YXRl
KiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVidWcoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiLS0+ICVzXG4iLCBleGVjLT5h
cmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykudXRmOCgpLmRhdGEoKSk7Cisg
ICAgZnByaW50ZihzdGRlcnIsICItLT4gJXNcbiIsIGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52aWV3KGV4ZWMpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCBkNDI4MDRk
Li4zNzQxMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBC
aXRtYXA8MjU2PiBtYWtlQ2hhcmFjdGVyQml0bWFwKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtj
aGFyYWN0ZXJzQ291bnRdCiAKIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSkKIHsKLSAgICBDU3RyaW5nIGNzdHIgPSBl
eGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykudXRmOChTdHJpY3RD
b252ZXJzaW9uKTsKKyAgICBDU3RyaW5nIGNzdHIgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKS0+dmlldyhleGVjKS51dGY4KFN0cmljdENvbnZlcnNpb24pOwogICAgIGlmICghY3N0
ci5kYXRhKCkpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVVSSUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiU3RyaW5nIGNvbnRhaW5lZCBhbiBp
bGxlZ2FsIFVURi0xNiBzZXF1ZW5jZS4iKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1NGJkNDExLi5kYzVjYzZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA1LTE5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFw
cGxlLmNvbT4KKworICAgICAgICBHaXZlIFN0cmluZ1ZpZXcgYSB1dGY4KCkgQVBJLgorICAgICAg
ICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ1MjAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpCisKKyAgICAgICAgQWRkZWQgYW4gTENoYXIgdmVyc2lvbiBvZiBTdHJpbmdJ
bXBsOjp1dGY4Rm9yQ2hhcmFjdGVycygpIGFuZCB1c2UgdGhhdCB0byBnaXZlCisgICAgICAgIFN0
cmluZ1ZpZXcgYSB1dGY4KCkgQVBJIGp1c3QgbGlrZSBTdHJpbmcgaGFzLgorCisgICAgICAgICog
d3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnV0ZjhG
b3JDaGFyYWN0ZXJzKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OnV0
ZjgpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDoKKwogMjAxNS0wNS0xOSAgVGlu
Zy1XZWkgTGFuICA8bGFudHc0NEBnbWFpbC5jb20+CiAKICAgICAgICAgW1NPVVBdIFVzZSBzdF9i
aXJ0aHRpbWUgdG8gZ2V0IGNyZWF0aW9uIHRpbWUgb2YgZmlsZXMgb24gc3lzdGVtcyBzdXBwb3J0
IGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCBiMDE5N2IyLi5mZTA3ODU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTIxOTgsNiArMjE5OCwyMCBAQCBib29s
IFN0cmluZ0ltcGw6OnV0ZjhJbXBsKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgsIGNoYXIqJiBidWZmZQogICAgIHJldHVybiB0cnVlOwogfQogCitDU3RyaW5nIFN0cmlu
Z0ltcGw6OnV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25l
ZCBsZW5ndGgpCit7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCIi
LCAwKTsKKyAgICBpZiAobGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpIC8gMykKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICBWZWN0b3I8Y2hhciwgMTAy
ND4gYnVmZmVyVmVjdG9yKGxlbmd0aCAqIDMpOworICAgIGNoYXIqIGJ1ZmZlciA9IGJ1ZmZlclZl
Y3Rvci5kYXRhKCk7CisgICAgY29uc3QgTENoYXIqIHNvdXJjZSA9IGNoYXJhY3RlcnM7CisgICAg
Q29udmVyc2lvblJlc3VsdCByZXN1bHQgPSBjb252ZXJ0TGF0aW4xVG9VVEY4KCZzb3VyY2UsIHNv
dXJjZSArIGxlbmd0aCwgJmJ1ZmZlciwgYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSk7Cisg
ICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCAhPSB0YXJnZXRFeGhhdXN0ZWQpOyAvLyAo
bGVuZ3RoICogMykgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGFueSBjb252ZXJzaW9uCisgICAg
cmV0dXJuIENTdHJpbmcoYnVmZmVyVmVjdG9yLmRhdGEoKSwgYnVmZmVyIC0gYnVmZmVyVmVjdG9y
LmRhdGEoKSk7Cit9CisKIENTdHJpbmcgU3RyaW5nSW1wbDo6dXRmOEZvckNoYXJhY3RlcnMoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29udmVyc2lvbk1vZGUgbW9k
ZSkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggZGEy
OWZiYS4uMzRmMDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTUxNSw2ICs1MTUs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1YlN0cmluZygpIGNvbnN0IHsgcmV0dXJuIGJ1ZmZl
ck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZzsgfQogI2VuZGlmCiAKKyAgICBzdGF0aWMg
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgdXRmOEZvckNoYXJhY3RlcnMoY29uc3QgTENo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFdURl9FWFBPUlRf
U1RSSU5HX0FQSSBDU3RyaW5nIHV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvbnZlcnNpb25Nb2RlID0gTGVuaWVudENvbnZlcnNpb24p
OwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIHV0ZjhGb3JSYW5nZSh1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVy
c2lvbikgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgdXRmOChDb252
ZXJzaW9uTW9kZSA9IExlbmllbnRDb252ZXJzaW9uKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z1ZpZXcuY3BwCmluZGV4IGYzOGQ1NzcuLjQxYjczYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdW
aWV3LmNwcApAQCAtMzAsOSArMzAsMTIgQEAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvdW5pY29kZS9VVEY4Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCit1c2luZyBuYW1l
c3BhY2UgVW5pY29kZTsKKwogYm9vbCBTdHJpbmdWaWV3Ojpjb250YWluc0lnbm9yaW5nQVNDSUlD
YXNlKGNvbnN0IFN0cmluZ1ZpZXcmIG1hdGNoU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBm
aW5kSWdub3JpbmdBU0NJSUNhc2UobWF0Y2hTdHJpbmcpICE9IG5vdEZvdW5kOwpAQCAtODQsNiAr
ODcsMTUgQEAgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcgYSwgY29uc3Qg
Y2hhciogYiwgdW5zaWduZWQgYkxlbmd0aCkKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShhLmNoYXJhY3RlcnMxNigpLCBiLCBiTGVuZ3RoKTsKIH0KIAorQ1N0cmluZyBTdHJpbmdW
aWV3Ojp1dGY4KENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0Cit7CisgICAgaWYgKGlzTnVsbCgp
KQorICAgICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7CisgICAgaWYgKGlzOEJpdCgpKQorICAg
ICAgICByZXR1cm4gU3RyaW5nSW1wbDo6dXRmOEZvckNoYXJhY3RlcnMoY2hhcmFjdGVyczgoKSwg
bGVuZ3RoKCkpOworICAgIHJldHVybiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjaGFy
YWN0ZXJzMTYoKSwgbGVuZ3RoKCksIG1vZGUpOworfQorCiAjaWYgQ0hFQ0tfU1RSSU5HVklFV19M
SUZFVElNRQogCiAvLyBNYW5hZ2UgcmVmZXJlbmNlIGNvdW50IG1hbnVhbGx5IHNvIFVuZGVybHlp
bmdTdHJpbmcgZG9lcyBub3QgbmVlZCB0byBiZSBkZWZpbmVkIGluIHRoZSBoZWFkZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nVmlldy5oCmluZGV4IDJiMTJlMWIuLjM0M2RlMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nVmlldy5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9Db252ZXJzaW9u
TW9kZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0xDaGFyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQ29tbW9uLmg+CiAKQEAgLTk2LDYgKzk4LDggQEAgcHVibGljOgogICAgIFdURl9FWFBP
UlRfU1RSSU5HX0FQSSBSZXRhaW5QdHI8TlNTdHJpbmc+IGNyZWF0ZU5TU3RyaW5nV2l0aG91dENv
cHlpbmcoKSBjb25zdDsKICNlbmRpZgogCisgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJp
bmcgdXRmOChDb252ZXJzaW9uTW9kZSA9IExlbmllbnRDb252ZXJzaW9uKSBjb25zdDsKKwogICAg
IGNsYXNzIFVwY29udmVydGVkQ2hhcmFjdGVyczsKICAgICBVcGNvbnZlcnRlZENoYXJhY3RlcnMg
dXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCkgY29uc3Q7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>