<?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>180985</bug_id>
          
          <creation_ts>2017-12-19 11:47:13 -0800</creation_ts>
          <short_desc>Add support for computing the frontmost longest effective marker subrange</short_desc>
          <delta_ts>2017-12-19 13:29:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>hyatt</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1383208</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 11:47:13 -0800</bug_when>
    <thetext>Add support for computing the frontmost longest effective marker subrange. This will allow us to minimize the number of drawing commands needed to paint the currently selected text on a page when using MarkerSubrange instances for such painting. Currently the text selection painting code does not make use of MarkerSubrange instances and implements this optimization. We want to write the text selection painting code in terms of MarkerSubrange (bug #180984) to make it straightforward to support all of the style options afforded to the pseudo element ::selection. We should keep this optimization when migrating the text selection painting code to use MarkerSubrange instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383210</commentid>
    <comment_count>1</comment_count>
      <attachid>329782</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 11:48:53 -0800</bug_when>
    <thetext>Created attachment 329782
Patch and unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383211</commentid>
    <comment_count>2</comment_count>
      <attachid>329783</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 11:57:24 -0800</bug_when>
    <thetext>Created attachment 329783
Patch and unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383212</commentid>
    <comment_count>3</comment_count>
      <attachid>329784</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 11:59:18 -0800</bug_when>
    <thetext>Created attachment 329784
Patch and unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383246</commentid>
    <comment_count>4</comment_count>
      <attachid>329784</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2017-12-19 13:12:59 -0800</bug_when>
    <thetext>Comment on attachment 329784
Patch and unit test

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

r=me

&gt; Source/WebCore/ChangeLog:12
&gt; +        of drawing commands needed to paint an entire line of text. We are not making this of
&gt; +        this functionality now. We will make use of it to simplify the patch for &lt;https://bugs.webkit.org/show_bug.cgi?id=180984&gt;.

Typo, &quot;We are not making use of this functionality now.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383259</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 13:27:37 -0800</bug_when>
    <thetext>(In reply to Dave Hyatt from comment #4)
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        of drawing commands needed to paint an entire line of text. We are not making this of
&gt; &gt; +        this functionality now. We will make use of it to simplify the patch for &lt;https://bugs.webkit.org/show_bug.cgi?id=180984&gt;.
&gt; 
&gt; Typo, &quot;We are not making use of this functionality now.&quot;

Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383260</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-19 13:28:43 -0800</bug_when>
    <thetext>Committed r226137: &lt;https://trac.webkit.org/changeset/226137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383262</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-19 13:29:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/36139345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329782</attachid>
            <date>2017-12-19 11:48:53 -0800</date>
            <delta_ts>2017-12-19 11:57:23 -0800</delta_ts>
            <desc>Patch and unit test</desc>
            <filename>bug-180985-20171219114852.patch</filename>
            <type>text/plain</type>
            <size>7485</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNmZDZmZjkzNzdlYmZi
ODZiYmFhYjkyMzRhYmY5NTgxYjQxMjJkMC4uYzdkMDYzZjc0YTIxMWQyZDRiNjE0MzM4MjBjMmVl
MmY0MmI5OTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTEyLTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
Y29tcHV0aW5nIHRoZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBu
ZXcgc3ViZGl2aXNpb24gb3ZlcmxhcCBzdHJhdGVneSB0byByZXR1cm4gdGhlIG1pbmltdW0gbGlz
dCBvZiBtYXhpbWFsIGxlbmd0aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcy4g
V2Ugd2lsbCBtYWtlIHVzZSBvZiB0aGlzIHN0cmF0ZWd5IHRvZ2V0aGVyIHdpdGggYW4gYWxnb3Jp
dGhtIHRvCisgICAgICAgIGNvYWxlc2NlIGFkamFjZW50IHN1YnJhbmdlcyB3aXRoIHZpc3VhbGx5
IGluZGlzdGluY3Qgc3R5bGVzIHRvIG1pbmltaXplIHRoZSB0b3RhbCBudW1iZXIKKyAgICAgICAg
b2YgZHJhd2luZyBjb21tYW5kcyBuZWVkZWQgdG8gcGFpbnQgYW4gZW50aXJlIGxpbmUgb2YgdGV4
dC4gV2UgYXJlIG5vdCBtYWtpbmcgdGhpcyBvZgorICAgICAgICB0aGlzIGZ1bmN0aW9uYWxpdHkg
bm93LiBXZSB3aWxsIG1ha2UgdXNlIG9mIGl0IHRvIHNpbXBsaWZ5IHRoZSBwYXRjaCBmb3IgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODQ+LgorCisgICAgICAg
ICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN1YmRp
dmlkZSk6CisgICAgICAgICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmg6CisKIDIwMTctMTIt
MTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBQYXld
IE9ubHkgaW5jbHVkZSBwaG9uZXRpYyBuYW1lIHByb3BlcnRpZXMgaW4gQXBwbGVQYXlQYXltZW50
Q29udGFjdCB3aGVuIHZlcnNpb24gPj0gMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJr
ZXJTdWJyYW5nZS5jcHAKaW5kZXggMzJjYmY5NmU3NDc3MmE1YTc4OWFjZDdkZGQ4M2IxOWRkNDgz
ZGY5Yi4uZjRjYTBiNjRmNDFlNzExN2ZhZTcwYzkzMjkxMzgzNmRiMjAxMDcyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuY3BwCkBAIC02NywxNCArNjcsMjIg
QEAgVmVjdG9yPE1hcmtlclN1YnJhbmdlPiBzdWJkaXZpZGUoY29uc3QgVmVjdG9yPE1hcmtlclN1
YnJhbmdlPiYgc3VicmFuZ2VzLCBPdmVybGEKICAgICB1bnNpZ25lZCBvZmZzZXRTb0ZhciA9IG9m
ZnNldHNbMF0udmFsdWU7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJlck9mT2Zm
c2V0czsgKytpKSB7CiAgICAgICAgIGlmIChvZmZzZXRzW2ldLnZhbHVlID4gb2Zmc2V0c1tpIC0g
MV0udmFsdWUpIHsKLSAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0
cmF0ZWd5OjpGcm9udG1vc3QpIHsKKyAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0g
T3ZlcmxhcFN0cmF0ZWd5OjpGcm9udG1vc3QgfHwgb3ZlcmxhcFN0cmF0ZWd5ID09IE92ZXJsYXBT
dHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZSkgewogICAgICAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZyb250bW9zdDsKICAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgaTsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNvbnRhaW5zKG9mZnNldHNbal0uc3VicmFuZ2UpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRtb3N0ID0gajsKICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKGZyb250bW9zdCkKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCh7IG9mZnNldFNvRmFyLCBvZmZzZXRzW2ldLnZhbHVlLCBvZmZzZXRzW2Zyb250
bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+dHlwZSwgb2Zmc2V0c1tmcm9udG1vc3QudmFsdWUoKV0u
c3VicmFuZ2UtPm1hcmtlciB9KTsKKyAgICAgICAgICAgICAgICBpZiAoZnJvbnRtb3N0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0cmF0ZWd5
OjpGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdlICYmICFyZXN1bHQuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBwcmV2aW91cyA9IHJlc3Vs
dC5sYXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMuZW5kT2Zmc2V0
ID09IG9mZnNldFNvRmFyICYmIHByZXZpb3VzLnR5cGUgPT0gb2Zmc2V0c1tmcm9udG1vc3QudmFs
dWUoKV0uc3VicmFuZ2UtPnR5cGUgJiYgcHJldmlvdXMubWFya2VyID09IG9mZnNldHNbZnJvbnRt
b3N0LnZhbHVlKCldLnN1YnJhbmdlLT5tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJldmlvdXMuZW5kT2Zmc2V0ID0gb2Zmc2V0c1tpXS52YWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHsgb2Zmc2V0U29GYXIsIG9mZnNldHNbaV0udmFsdWUsIG9mZnNldHNbZnJvbnRtb3N0LnZhbHVl
KCldLnN1YnJhbmdlLT50eXBlLCBvZmZzZXRzW2Zyb250bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+
bWFya2VyIH0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoeyBvZmZzZXRTb0Zhciwgb2Zmc2V0c1tpXS52YWx1ZSwgb2Zm
c2V0c1tmcm9udG1vc3QudmFsdWUoKV0uc3VicmFuZ2UtPnR5cGUsIG9mZnNldHNbZnJvbnRtb3N0
LnZhbHVlKCldLnN1YnJhbmdlLT5tYXJrZXIgfSk7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwg
aTsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNv
bnRhaW5zKG9mZnNldHNbal0uc3VicmFuZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFy
a2VyU3VicmFuZ2UuaAppbmRleCBkZDUyMTE4MDkxYWY4MTU0NzE4MzBmN2ZmNzIxMzBiZDE1ZmFj
MzFiLi41NmZmN2FmZjQyODVjYWVkMGY2YWE1NzRiMjJmZDdjZWNmNjkxYzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1
Y3QgTWFya2VyU3VicmFuZ2UgewogICAgICAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxl
bS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1MpLWd1YXJkLgogICAgICAg
ICBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLAogI2VuZGlmCisgICAgICAgIFNlbGVj
dGlvbiwKICAgICB9OwogI2lmICFDT01QSUxFUl9TVVBQT1JUUyhOU0RNSV9GT1JfQUdHUkVHQVRF
UykKICAgICBNYXJrZXJTdWJyYW5nZSgpID0gZGVmYXVsdDsKQEAgLTYxLDcgKzYyLDcgQEAgc3Ry
dWN0IE1hcmtlclN1YnJhbmdlIHsKICAgICBjb25zdCBSZW5kZXJlZERvY3VtZW50TWFya2VyKiBt
YXJrZXIgeyBudWxscHRyIH07CiB9OwogCi1lbnVtIGNsYXNzIE92ZXJsYXBTdHJhdGVneSB7IE5v
bmUsIEZyb250bW9zdCB9OworZW51bSBjbGFzcyBPdmVybGFwU3RyYXRlZ3kgeyBOb25lLCBGcm9u
dG1vc3QsIEZyb250bW9zdFdpdGhMb25nZXN0RWZmZWN0aXZlUmFuZ2UgfTsKIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3ViZGl2aWRlKGNvbnN0IFZlY3RvcjxNYXJrZXJT
dWJyYW5nZT4mLCBPdmVybGFwU3RyYXRlZ3kgPSBPdmVybGFwU3RyYXRlZ3k6Ok5vbmUpOwogCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzZk
OGEwZGIzNjU5ODBmNGU5N2JmYWUwMjE1YzM0NTE5MjRmOTQ0Mi4uMzFkYWVkZThjMzM4NTFlNTU1
ZjIwZTNiNzNlYjNiNjU3MDA0NjYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTE5ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29tcHV0
aW5nIHRoZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgdGVzdCBj
YXNlIHRvIGVuc3VyZSB0aGF0IHdlIGNvbXB1dGUgdGhlIG1pbmltdW0gbGlzdCBvZiBtYXhpbWFs
IGxlbmd0aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcyB3aGVuIHVzaW5nIHN0
cmF0ZWd5IE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5n
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZXJTdWJyYW5n
ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0xMi0xOCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXR0YWNobWVu
dCBTdXBwb3J0XSBUaGUgJ3dlYmtpdGF0dGFjaG1lbnRibG9idXJsJyBhdHRyaWJ1dGUgc2hvdWxk
IG5vdCBwZXJzaXN0IGFmdGVyIG1hcmt1cCBzZXJpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlclN1YnJhbmdlLmNwcAppbmRleCBkOGQw
ZmZkZGM0OWJiYTBhZTVlNWM3MDJkZDM5N2FjNzc2MGU5N2Y4Li5mMDg1MGMwOGE1ZWMyZWMwZmIy
YjBjNjQ5NDg3M2MwMWU2ZTNiZWZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9NYXJrZXJTdWJyYW5nZS5jcHAKQEAgLTE3NSw0ICsxNzUsNDAgQEAgVEVT
VChNYXJrZXJTdWJyYW5nZSwgU3ViZGl2aWRlU3BlbGxpbmdBbmRHcmFtbWFyQ29tcGxpY2F0ZWRG
cm9udG1vc3QpCiAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVzdWx0
c1tpXSk7CiB9CiAKK1RFU1QoTWFya2VyU3VicmFuZ2UsIFN1YmRpdmlkZUdyYW1tYXJBbmRTZWxl
Y3Rpb25PdmVybGFwRnJvbnRtb3N0KQoreworICAgIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3Vi
cmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCA0MCwgTWFya2VyU3VicmFuZ2U6
OkdyYW1tYXJFcnJvciB9LAorICAgICAgICBNYXJrZXJTdWJyYW5nZSB7IDIsIDYwLCBNYXJrZXJT
dWJyYW5nZTo6U2VsZWN0aW9uIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgNTAsIDYwLCBN
YXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAgfTsKKyAgICBWZWN0b3I8TWFya2Vy
U3VicmFuZ2U+IGV4cGVjdGVkU3VicmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAw
LCAyLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAgICAgIE1hcmtlclN1YnJh
bmdlIHsgMiwgNDAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAgTWFya2Vy
U3VicmFuZ2UgeyA0MCwgNTAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAg
TWFya2VyU3VicmFuZ2UgeyA1MCwgNjAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAg
ICB9OworICAgIGF1dG8gcmVzdWx0cyA9IHN1YmRpdmlkZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJh
dGVneTo6RnJvbnRtb3N0KTsKKyAgICBBU1NFUlRfRVEoZXhwZWN0ZWRTdWJyYW5nZXMuc2l6ZSgp
LCByZXN1bHRzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleHBlY3RlZFN1
YnJhbmdlcy5zaXplKCk7ICsraSkKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3VicmFuZ2Vz
W2ldLCByZXN1bHRzW2ldKTsKK30KKworVEVTVChNYXJrZXJTdWJyYW5nZSwgU3ViZGl2aWRlR3Jh
bW1hckFuZFNlbGVjdGlvbk92ZXJsYXBGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdl
KQoreworICAgIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3VicmFuZ2VzIHsKKyAgICAgICAgTWFy
a2VyU3VicmFuZ2UgeyAwLCA0MCwgTWFya2VyU3VicmFuZ2U6OkdyYW1tYXJFcnJvciB9LAorICAg
ICAgICBNYXJrZXJTdWJyYW5nZSB7IDIsIDYwLCBNYXJrZXJTdWJyYW5nZTo6U2VsZWN0aW9uIH0s
CisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgNTAsIDYwLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1h
ckVycm9yIH0sCisgICAgfTsKKyAgICBWZWN0b3I8TWFya2VyU3VicmFuZ2U+IGV4cGVjdGVkU3Vi
cmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCAyLCBNYXJrZXJTdWJyYW5nZTo6
R3JhbW1hckVycm9yIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgMiwgNjAsIE1hcmtlclN1
YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICB9OworICAgIGF1dG8gcmVzdWx0cyA9IHN1YmRpdmlk
ZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3Rp
dmVSYW5nZSk7CisgICAgQVNTRVJUX0VRKGV4cGVjdGVkU3VicmFuZ2VzLnNpemUoKSwgcmVzdWx0
cy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhwZWN0ZWRTdWJyYW5nZXMu
c2l6ZSgpOyArK2kpCisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVz
dWx0c1tpXSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329783</attachid>
            <date>2017-12-19 11:57:24 -0800</date>
            <delta_ts>2017-12-19 11:59:17 -0800</delta_ts>
            <desc>Patch and unit test</desc>
            <filename>bug-180985-20171219115724.patch</filename>
            <type>text/plain</type>
            <size>8787</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNmZDZmZjkzNzdlYmZi
ODZiYmFhYjkyMzRhYmY5NTgxYjQxMjJkMC4uYzdkMDYzZjc0YTIxMWQyZDRiNjE0MzM4MjBjMmVl
MmY0MmI5OTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTEyLTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
Y29tcHV0aW5nIHRoZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBu
ZXcgc3ViZGl2aXNpb24gb3ZlcmxhcCBzdHJhdGVneSB0byByZXR1cm4gdGhlIG1pbmltdW0gbGlz
dCBvZiBtYXhpbWFsIGxlbmd0aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcy4g
V2Ugd2lsbCBtYWtlIHVzZSBvZiB0aGlzIHN0cmF0ZWd5IHRvZ2V0aGVyIHdpdGggYW4gYWxnb3Jp
dGhtIHRvCisgICAgICAgIGNvYWxlc2NlIGFkamFjZW50IHN1YnJhbmdlcyB3aXRoIHZpc3VhbGx5
IGluZGlzdGluY3Qgc3R5bGVzIHRvIG1pbmltaXplIHRoZSB0b3RhbCBudW1iZXIKKyAgICAgICAg
b2YgZHJhd2luZyBjb21tYW5kcyBuZWVkZWQgdG8gcGFpbnQgYW4gZW50aXJlIGxpbmUgb2YgdGV4
dC4gV2UgYXJlIG5vdCBtYWtpbmcgdGhpcyBvZgorICAgICAgICB0aGlzIGZ1bmN0aW9uYWxpdHkg
bm93LiBXZSB3aWxsIG1ha2UgdXNlIG9mIGl0IHRvIHNpbXBsaWZ5IHRoZSBwYXRjaCBmb3IgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODQ+LgorCisgICAgICAg
ICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN1YmRp
dmlkZSk6CisgICAgICAgICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmg6CisKIDIwMTctMTIt
MTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBQYXld
IE9ubHkgaW5jbHVkZSBwaG9uZXRpYyBuYW1lIHByb3BlcnRpZXMgaW4gQXBwbGVQYXlQYXltZW50
Q29udGFjdCB3aGVuIHZlcnNpb24gPj0gMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJr
ZXJTdWJyYW5nZS5jcHAKaW5kZXggMzJjYmY5NmU3NDc3MmE1YTc4OWFjZDdkZGQ4M2IxOWRkNDgz
ZGY5Yi4uZjRjYTBiNjRmNDFlNzExN2ZhZTcwYzkzMjkxMzgzNmRiMjAxMDcyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuY3BwCkBAIC02NywxNCArNjcsMjIg
QEAgVmVjdG9yPE1hcmtlclN1YnJhbmdlPiBzdWJkaXZpZGUoY29uc3QgVmVjdG9yPE1hcmtlclN1
YnJhbmdlPiYgc3VicmFuZ2VzLCBPdmVybGEKICAgICB1bnNpZ25lZCBvZmZzZXRTb0ZhciA9IG9m
ZnNldHNbMF0udmFsdWU7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJlck9mT2Zm
c2V0czsgKytpKSB7CiAgICAgICAgIGlmIChvZmZzZXRzW2ldLnZhbHVlID4gb2Zmc2V0c1tpIC0g
MV0udmFsdWUpIHsKLSAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0
cmF0ZWd5OjpGcm9udG1vc3QpIHsKKyAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0g
T3ZlcmxhcFN0cmF0ZWd5OjpGcm9udG1vc3QgfHwgb3ZlcmxhcFN0cmF0ZWd5ID09IE92ZXJsYXBT
dHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZSkgewogICAgICAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZyb250bW9zdDsKICAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgaTsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNvbnRhaW5zKG9mZnNldHNbal0uc3VicmFuZ2UpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRtb3N0ID0gajsKICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKGZyb250bW9zdCkKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCh7IG9mZnNldFNvRmFyLCBvZmZzZXRzW2ldLnZhbHVlLCBvZmZzZXRzW2Zyb250
bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+dHlwZSwgb2Zmc2V0c1tmcm9udG1vc3QudmFsdWUoKV0u
c3VicmFuZ2UtPm1hcmtlciB9KTsKKyAgICAgICAgICAgICAgICBpZiAoZnJvbnRtb3N0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0cmF0ZWd5
OjpGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdlICYmICFyZXN1bHQuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBwcmV2aW91cyA9IHJlc3Vs
dC5sYXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMuZW5kT2Zmc2V0
ID09IG9mZnNldFNvRmFyICYmIHByZXZpb3VzLnR5cGUgPT0gb2Zmc2V0c1tmcm9udG1vc3QudmFs
dWUoKV0uc3VicmFuZ2UtPnR5cGUgJiYgcHJldmlvdXMubWFya2VyID09IG9mZnNldHNbZnJvbnRt
b3N0LnZhbHVlKCldLnN1YnJhbmdlLT5tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJldmlvdXMuZW5kT2Zmc2V0ID0gb2Zmc2V0c1tpXS52YWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHsgb2Zmc2V0U29GYXIsIG9mZnNldHNbaV0udmFsdWUsIG9mZnNldHNbZnJvbnRtb3N0LnZhbHVl
KCldLnN1YnJhbmdlLT50eXBlLCBvZmZzZXRzW2Zyb250bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+
bWFya2VyIH0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoeyBvZmZzZXRTb0Zhciwgb2Zmc2V0c1tpXS52YWx1ZSwgb2Zm
c2V0c1tmcm9udG1vc3QudmFsdWUoKV0uc3VicmFuZ2UtPnR5cGUsIG9mZnNldHNbZnJvbnRtb3N0
LnZhbHVlKCldLnN1YnJhbmdlLT5tYXJrZXIgfSk7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwg
aTsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNv
bnRhaW5zKG9mZnNldHNbal0uc3VicmFuZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFy
a2VyU3VicmFuZ2UuaAppbmRleCBkZDUyMTE4MDkxYWY4MTU0NzE4MzBmN2ZmNzIxMzBiZDE1ZmFj
MzFiLi41NmZmN2FmZjQyODVjYWVkMGY2YWE1NzRiMjJmZDdjZWNmNjkxYzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1
Y3QgTWFya2VyU3VicmFuZ2UgewogICAgICAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxl
bS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1MpLWd1YXJkLgogICAgICAg
ICBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLAogI2VuZGlmCisgICAgICAgIFNlbGVj
dGlvbiwKICAgICB9OwogI2lmICFDT01QSUxFUl9TVVBQT1JUUyhOU0RNSV9GT1JfQUdHUkVHQVRF
UykKICAgICBNYXJrZXJTdWJyYW5nZSgpID0gZGVmYXVsdDsKQEAgLTYxLDcgKzYyLDcgQEAgc3Ry
dWN0IE1hcmtlclN1YnJhbmdlIHsKICAgICBjb25zdCBSZW5kZXJlZERvY3VtZW50TWFya2VyKiBt
YXJrZXIgeyBudWxscHRyIH07CiB9OwogCi1lbnVtIGNsYXNzIE92ZXJsYXBTdHJhdGVneSB7IE5v
bmUsIEZyb250bW9zdCB9OworZW51bSBjbGFzcyBPdmVybGFwU3RyYXRlZ3kgeyBOb25lLCBGcm9u
dG1vc3QsIEZyb250bW9zdFdpdGhMb25nZXN0RWZmZWN0aXZlUmFuZ2UgfTsKIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3ViZGl2aWRlKGNvbnN0IFZlY3RvcjxNYXJrZXJT
dWJyYW5nZT4mLCBPdmVybGFwU3RyYXRlZ3kgPSBPdmVybGFwU3RyYXRlZ3k6Ok5vbmUpOwogCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzZk
OGEwZGIzNjU5ODBmNGU5N2JmYWUwMjE1YzM0NTE5MjRmOTQ0Mi4uMzFkYWVkZThjMzM4NTFlNTU1
ZjIwZTNiNzNlYjNiNjU3MDA0NjYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTE5ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29tcHV0
aW5nIHRoZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgdGVzdCBj
YXNlIHRvIGVuc3VyZSB0aGF0IHdlIGNvbXB1dGUgdGhlIG1pbmltdW0gbGlzdCBvZiBtYXhpbWFs
IGxlbmd0aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcyB3aGVuIHVzaW5nIHN0
cmF0ZWd5IE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5n
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZXJTdWJyYW5n
ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0xMi0xOCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXR0YWNobWVu
dCBTdXBwb3J0XSBUaGUgJ3dlYmtpdGF0dGFjaG1lbnRibG9idXJsJyBhdHRyaWJ1dGUgc2hvdWxk
IG5vdCBwZXJzaXN0IGFmdGVyIG1hcmt1cCBzZXJpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlclN1YnJhbmdlLmNwcAppbmRleCBkOGQw
ZmZkZGM0OWJiYTBhZTVlNWM3MDJkZDM5N2FjNzc2MGU5N2Y4Li5lYWVjZDcyNGVkMWZmNDk3Yjgw
OTE2OWIzY2IxNWNiZTE4N2E3ZmMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9NYXJrZXJTdWJyYW5nZS5jcHAKQEAgLTM2LDIzICszNiwyNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBv
cywgTWFya2VyU3VicmFuZ2U6OlR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIE1hcmtlclN1YnJhbmdlOjpVbm1hcmtlZDoKLSAgICAgICAgcmV0dXJuIG9zIDw8ICJV
bm1hcmtlZCI7Ci0gICAgY2FzZSBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yOgotICAgICAg
ICByZXR1cm4gb3MgPDwgIkdyYW1tYXJFcnJvciI7CiAgICAgY2FzZSBNYXJrZXJTdWJyYW5nZTo6
Q29ycmVjdGlvbjoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJDb3JyZWN0aW9uIjsKLSAgICBjYXNl
IE1hcmtlclN1YnJhbmdlOjpTcGVsbGluZ0Vycm9yOgotICAgICAgICByZXR1cm4gb3MgPDwgIlNw
ZWxsaW5nRXJyb3IiOwotICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OlRleHRNYXRjaDoKLSAgICAg
ICAgcmV0dXJuIG9zIDw8ICJUZXh0TWF0Y2giOwogICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OkRp
Y3RhdGlvbkFsdGVybmF0aXZlczoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJEaWN0YXRpb25BbHRl
cm5hdGl2ZXMiOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gRklYTUU6IFNlZSA8cmRh
cjovL3Byb2JsZW0vODkzMzM1Mj4uIEFsc28sIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFy
ZC4KKyAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxlbS84OTMzMzUyPi4gQWxzbywgcmVt
b3ZlIHRoZSBQTEFURk9STShJT1MpLWd1YXJkLgogICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OkRp
Y3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6CiAgICAgICAgIHJldHVybiBvcyA8PCAiRGlj
dGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcyI7CiAjZW5kaWYKKyAgICBjYXNlIE1hcmtlclN1
YnJhbmdlOjpHcmFtbWFyRXJyb3I6CisgICAgICAgIHJldHVybiBvcyA8PCAiR3JhbW1hckVycm9y
IjsKKyAgICBjYXNlIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb246CisgICAgICAgIHJldHVybiBv
cyA8PCAiU2VsZWN0aW9uIjsKKyAgICBjYXNlIE1hcmtlclN1YnJhbmdlOjpTcGVsbGluZ0Vycm9y
OgorICAgICAgICByZXR1cm4gb3MgPDwgIlNwZWxsaW5nRXJyb3IiOworICAgIGNhc2UgTWFya2Vy
U3VicmFuZ2U6OlRleHRNYXRjaDoKKyAgICAgICAgcmV0dXJuIG9zIDw8ICJUZXh0TWF0Y2giOwor
ICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OlVubWFya2VkOgorICAgICAgICByZXR1cm4gb3MgPDwg
IlVubWFya2VkIjsKICAgICB9CiB9CiAKQEAgLTE3NSw0ICsxNzcsNDAgQEAgVEVTVChNYXJrZXJT
dWJyYW5nZSwgU3ViZGl2aWRlU3BlbGxpbmdBbmRHcmFtbWFyQ29tcGxpY2F0ZWRGcm9udG1vc3Qp
CiAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVzdWx0c1tpXSk7CiB9
CiAKK1RFU1QoTWFya2VyU3VicmFuZ2UsIFN1YmRpdmlkZUdyYW1tYXJBbmRTZWxlY3Rpb25PdmVy
bGFwRnJvbnRtb3N0KQoreworICAgIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3VicmFuZ2VzIHsK
KyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCA0MCwgTWFya2VyU3VicmFuZ2U6OkdyYW1tYXJF
cnJvciB9LAorICAgICAgICBNYXJrZXJTdWJyYW5nZSB7IDIsIDYwLCBNYXJrZXJTdWJyYW5nZTo6
U2VsZWN0aW9uIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgNTAsIDYwLCBNYXJrZXJTdWJy
YW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAgfTsKKyAgICBWZWN0b3I8TWFya2VyU3VicmFuZ2U+
IGV4cGVjdGVkU3VicmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCAyLCBNYXJr
ZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgMiwg
NDAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAgTWFya2VyU3VicmFuZ2Ug
eyA0MCwgNTAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAgTWFya2VyU3Vi
cmFuZ2UgeyA1MCwgNjAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICB9OworICAg
IGF1dG8gcmVzdWx0cyA9IHN1YmRpdmlkZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJv
bnRtb3N0KTsKKyAgICBBU1NFUlRfRVEoZXhwZWN0ZWRTdWJyYW5nZXMuc2l6ZSgpLCByZXN1bHRz
LnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleHBlY3RlZFN1YnJhbmdlcy5z
aXplKCk7ICsraSkKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3VicmFuZ2VzW2ldLCByZXN1
bHRzW2ldKTsKK30KKworVEVTVChNYXJrZXJTdWJyYW5nZSwgU3ViZGl2aWRlR3JhbW1hckFuZFNl
bGVjdGlvbk92ZXJsYXBGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdlKQoreworICAg
IFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3VicmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFu
Z2UgeyAwLCA0MCwgTWFya2VyU3VicmFuZ2U6OkdyYW1tYXJFcnJvciB9LAorICAgICAgICBNYXJr
ZXJTdWJyYW5nZSB7IDIsIDYwLCBNYXJrZXJTdWJyYW5nZTo6U2VsZWN0aW9uIH0sCisgICAgICAg
IE1hcmtlclN1YnJhbmdlIHsgNTAsIDYwLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0s
CisgICAgfTsKKyAgICBWZWN0b3I8TWFya2VyU3VicmFuZ2U+IGV4cGVjdGVkU3VicmFuZ2VzIHsK
KyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCAyLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVy
cm9yIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgMiwgNjAsIE1hcmtlclN1YnJhbmdlOjpT
ZWxlY3Rpb24gfSwKKyAgICB9OworICAgIGF1dG8gcmVzdWx0cyA9IHN1YmRpdmlkZShzdWJyYW5n
ZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZSk7
CisgICAgQVNTRVJUX0VRKGV4cGVjdGVkU3VicmFuZ2VzLnNpemUoKSwgcmVzdWx0cy5zaXplKCkp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhwZWN0ZWRTdWJyYW5nZXMuc2l6ZSgpOyAr
K2kpCisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVzdWx0c1tpXSk7
Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329784</attachid>
            <date>2017-12-19 11:59:18 -0800</date>
            <delta_ts>2017-12-19 13:12:59 -0800</delta_ts>
            <desc>Patch and unit test</desc>
            <filename>bug-180985-20171219115917.patch</filename>
            <type>text/plain</type>
            <size>8781</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNmZDZmZjkzNzdlYmZi
ODZiYmFhYjkyMzRhYmY5NTgxYjQxMjJkMC4uYzdkMDYzZjc0YTIxMWQyZDRiNjE0MzM4MjBjMmVl
MmY0MmI5OTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTEyLTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
Y29tcHV0aW5nIHRoZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBu
ZXcgc3ViZGl2aXNpb24gb3ZlcmxhcCBzdHJhdGVneSB0byByZXR1cm4gdGhlIG1pbmltdW0gbGlz
dCBvZiBtYXhpbWFsIGxlbmd0aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcy4g
V2Ugd2lsbCBtYWtlIHVzZSBvZiB0aGlzIHN0cmF0ZWd5IHRvZ2V0aGVyIHdpdGggYW4gYWxnb3Jp
dGhtIHRvCisgICAgICAgIGNvYWxlc2NlIGFkamFjZW50IHN1YnJhbmdlcyB3aXRoIHZpc3VhbGx5
IGluZGlzdGluY3Qgc3R5bGVzIHRvIG1pbmltaXplIHRoZSB0b3RhbCBudW1iZXIKKyAgICAgICAg
b2YgZHJhd2luZyBjb21tYW5kcyBuZWVkZWQgdG8gcGFpbnQgYW4gZW50aXJlIGxpbmUgb2YgdGV4
dC4gV2UgYXJlIG5vdCBtYWtpbmcgdGhpcyBvZgorICAgICAgICB0aGlzIGZ1bmN0aW9uYWxpdHkg
bm93LiBXZSB3aWxsIG1ha2UgdXNlIG9mIGl0IHRvIHNpbXBsaWZ5IHRoZSBwYXRjaCBmb3IgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODQ+LgorCisgICAgICAg
ICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN1YmRp
dmlkZSk6CisgICAgICAgICogcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmg6CisKIDIwMTctMTIt
MTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBQYXld
IE9ubHkgaW5jbHVkZSBwaG9uZXRpYyBuYW1lIHByb3BlcnRpZXMgaW4gQXBwbGVQYXlQYXltZW50
Q29udGFjdCB3aGVuIHZlcnNpb24gPj0gMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJr
ZXJTdWJyYW5nZS5jcHAKaW5kZXggMzJjYmY5NmU3NDc3MmE1YTc4OWFjZDdkZGQ4M2IxOWRkNDgz
ZGY5Yi4uY2NjNjMyZDkyZDRkNTQ4MzFhZGIzYmI1MjhmYTk2Y2RhZTE2Yjc3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlclN1YnJhbmdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuY3BwCkBAIC02NywxNCArNjcsMjIg
QEAgVmVjdG9yPE1hcmtlclN1YnJhbmdlPiBzdWJkaXZpZGUoY29uc3QgVmVjdG9yPE1hcmtlclN1
YnJhbmdlPiYgc3VicmFuZ2VzLCBPdmVybGEKICAgICB1bnNpZ25lZCBvZmZzZXRTb0ZhciA9IG9m
ZnNldHNbMF0udmFsdWU7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJlck9mT2Zm
c2V0czsgKytpKSB7CiAgICAgICAgIGlmIChvZmZzZXRzW2ldLnZhbHVlID4gb2Zmc2V0c1tpIC0g
MV0udmFsdWUpIHsKLSAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0
cmF0ZWd5OjpGcm9udG1vc3QpIHsKKyAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0g
T3ZlcmxhcFN0cmF0ZWd5OjpGcm9udG1vc3QgfHwgb3ZlcmxhcFN0cmF0ZWd5ID09IE92ZXJsYXBT
dHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZSkgewogICAgICAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGZyb250bW9zdDsKICAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgaTsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNvbnRhaW5zKG9mZnNldHNbal0uc3VicmFuZ2UpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRtb3N0ID0gajsKICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKGZyb250bW9zdCkKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCh7IG9mZnNldFNvRmFyLCBvZmZzZXRzW2ldLnZhbHVlLCBvZmZzZXRzW2Zyb250
bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+dHlwZSwgb2Zmc2V0c1tmcm9udG1vc3QudmFsdWUoKV0u
c3VicmFuZ2UtPm1hcmtlciB9KTsKKyAgICAgICAgICAgICAgICBpZiAoZnJvbnRtb3N0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChvdmVybGFwU3RyYXRlZ3kgPT0gT3ZlcmxhcFN0cmF0ZWd5
OjpGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdlICYmICFyZXN1bHQuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvJiBwcmV2aW91cyA9IHJlc3VsdC5sYXN0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMuZW5kT2Zmc2V0ID09IG9m
ZnNldFNvRmFyICYmIHByZXZpb3VzLnR5cGUgPT0gb2Zmc2V0c1tmcm9udG1vc3QudmFsdWUoKV0u
c3VicmFuZ2UtPnR5cGUgJiYgcHJldmlvdXMubWFya2VyID09IG9mZnNldHNbZnJvbnRtb3N0LnZh
bHVlKCldLnN1YnJhbmdlLT5tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXMuZW5kT2Zmc2V0ID0gb2Zmc2V0c1tpXS52YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsgb2Zm
c2V0U29GYXIsIG9mZnNldHNbaV0udmFsdWUsIG9mZnNldHNbZnJvbnRtb3N0LnZhbHVlKCldLnN1
YnJhbmdlLT50eXBlLCBvZmZzZXRzW2Zyb250bW9zdC52YWx1ZSgpXS5zdWJyYW5nZS0+bWFya2Vy
IH0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoeyBvZmZzZXRTb0Zhciwgb2Zmc2V0c1tpXS52YWx1ZSwgb2Zmc2V0c1tm
cm9udG1vc3QudmFsdWUoKV0uc3VicmFuZ2UtPnR5cGUsIG9mZnNldHNbZnJvbnRtb3N0LnZhbHVl
KCldLnN1YnJhbmdlLT5tYXJrZXIgfSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgaTsgKytq
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvY2Vzc2VkU3VicmFuZ2VzLmNvbnRhaW5z
KG9mZnNldHNbal0uc3VicmFuZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL01hcmtlclN1YnJhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3Vi
cmFuZ2UuaAppbmRleCBkZDUyMTE4MDkxYWY4MTU0NzE4MzBmN2ZmNzIxMzBiZDE1ZmFjMzFiLi41
NmZmN2FmZjQyODVjYWVkMGY2YWE1NzRiMjJmZDdjZWNmNjkxYzk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTWFya2VyU3VicmFuZ2UuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgTWFy
a2VyU3VicmFuZ2UgewogICAgICAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxlbS84OTMz
MzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1MpLWd1YXJkLgogICAgICAgICBEaWN0
YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLAogI2VuZGlmCisgICAgICAgIFNlbGVjdGlvbiwK
ICAgICB9OwogI2lmICFDT01QSUxFUl9TVVBQT1JUUyhOU0RNSV9GT1JfQUdHUkVHQVRFUykKICAg
ICBNYXJrZXJTdWJyYW5nZSgpID0gZGVmYXVsdDsKQEAgLTYxLDcgKzYyLDcgQEAgc3RydWN0IE1h
cmtlclN1YnJhbmdlIHsKICAgICBjb25zdCBSZW5kZXJlZERvY3VtZW50TWFya2VyKiBtYXJrZXIg
eyBudWxscHRyIH07CiB9OwogCi1lbnVtIGNsYXNzIE92ZXJsYXBTdHJhdGVneSB7IE5vbmUsIEZy
b250bW9zdCB9OworZW51bSBjbGFzcyBPdmVybGFwU3RyYXRlZ3kgeyBOb25lLCBGcm9udG1vc3Qs
IEZyb250bW9zdFdpdGhMb25nZXN0RWZmZWN0aXZlUmFuZ2UgfTsKIFdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxNYXJrZXJTdWJyYW5nZT4gc3ViZGl2aWRlKGNvbnN0IFZlY3RvcjxNYXJrZXJTdWJyYW5n
ZT4mLCBPdmVybGFwU3RyYXRlZ3kgPSBPdmVybGFwU3RyYXRlZ3k6Ok5vbmUpOwogCiB9CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzZkOGEwZGIz
NjU5ODBmNGU5N2JmYWUwMjE1YzM0NTE5MjRmOTQ0Mi4uMzFkYWVkZThjMzM4NTFlNTU1ZjIwZTNi
NzNlYjNiNjU3MDA0NjYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTE5ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29tcHV0aW5nIHRo
ZSBmcm9udG1vc3QgbG9uZ2VzdCBlZmZlY3RpdmUgbWFya2VyIHN1YnJhbmdlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5ODUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgdGVzdCBjYXNlIHRv
IGVuc3VyZSB0aGF0IHdlIGNvbXB1dGUgdGhlIG1pbmltdW0gbGlzdCBvZiBtYXhpbWFsIGxlbmd0
aCBub24tCisgICAgICAgIG92ZXJsYXBwaW5nIHN1YnJhbmdlcyB3aGVuIHVzaW5nIHN0cmF0ZWd5
IE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZXJTdWJyYW5nZS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0xMi0xOCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXR0YWNobWVudCBTdXBw
b3J0XSBUaGUgJ3dlYmtpdGF0dGFjaG1lbnRibG9idXJsJyBhdHRyaWJ1dGUgc2hvdWxkIG5vdCBw
ZXJzaXN0IGFmdGVyIG1hcmt1cCBzZXJpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlclN1YnJhbmdlLmNwcAppbmRleCBkOGQwZmZkZGM0
OWJiYTBhZTVlNWM3MDJkZDM5N2FjNzc2MGU5N2Y4Li5lYWVjZDcyNGVkMWZmNDk3YjgwOTE2OWIz
Y2IxNWNiZTE4N2E3ZmMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvTWFya2VyU3VicmFuZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9NYXJrZXJTdWJyYW5nZS5jcHAKQEAgLTM2LDIzICszNiwyNSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgTWFy
a2VyU3VicmFuZ2U6OlR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNl
IE1hcmtlclN1YnJhbmdlOjpVbm1hcmtlZDoKLSAgICAgICAgcmV0dXJuIG9zIDw8ICJVbm1hcmtl
ZCI7Ci0gICAgY2FzZSBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yOgotICAgICAgICByZXR1
cm4gb3MgPDwgIkdyYW1tYXJFcnJvciI7CiAgICAgY2FzZSBNYXJrZXJTdWJyYW5nZTo6Q29ycmVj
dGlvbjoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJDb3JyZWN0aW9uIjsKLSAgICBjYXNlIE1hcmtl
clN1YnJhbmdlOjpTcGVsbGluZ0Vycm9yOgotICAgICAgICByZXR1cm4gb3MgPDwgIlNwZWxsaW5n
RXJyb3IiOwotICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OlRleHRNYXRjaDoKLSAgICAgICAgcmV0
dXJuIG9zIDw8ICJUZXh0TWF0Y2giOwogICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OkRpY3RhdGlv
bkFsdGVybmF0aXZlczoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJEaWN0YXRpb25BbHRlcm5hdGl2
ZXMiOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gRklYTUU6IFNlZSA8cmRhcjovL3By
b2JsZW0vODkzMzM1Mj4uIEFsc28sIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFyZC4KKyAg
ICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxlbS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRo
ZSBQTEFURk9STShJT1MpLWd1YXJkLgogICAgIGNhc2UgTWFya2VyU3VicmFuZ2U6OkRpY3RhdGlv
blBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6CiAgICAgICAgIHJldHVybiBvcyA8PCAiRGljdGF0aW9u
UGhyYXNlV2l0aEFsdGVybmF0aXZlcyI7CiAjZW5kaWYKKyAgICBjYXNlIE1hcmtlclN1YnJhbmdl
OjpHcmFtbWFyRXJyb3I6CisgICAgICAgIHJldHVybiBvcyA8PCAiR3JhbW1hckVycm9yIjsKKyAg
ICBjYXNlIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb246CisgICAgICAgIHJldHVybiBvcyA8PCAi
U2VsZWN0aW9uIjsKKyAgICBjYXNlIE1hcmtlclN1YnJhbmdlOjpTcGVsbGluZ0Vycm9yOgorICAg
ICAgICByZXR1cm4gb3MgPDwgIlNwZWxsaW5nRXJyb3IiOworICAgIGNhc2UgTWFya2VyU3VicmFu
Z2U6OlRleHRNYXRjaDoKKyAgICAgICAgcmV0dXJuIG9zIDw8ICJUZXh0TWF0Y2giOworICAgIGNh
c2UgTWFya2VyU3VicmFuZ2U6OlVubWFya2VkOgorICAgICAgICByZXR1cm4gb3MgPDwgIlVubWFy
a2VkIjsKICAgICB9CiB9CiAKQEAgLTE3NSw0ICsxNzcsNDAgQEAgVEVTVChNYXJrZXJTdWJyYW5n
ZSwgU3ViZGl2aWRlU3BlbGxpbmdBbmRHcmFtbWFyQ29tcGxpY2F0ZWRGcm9udG1vc3QpCiAgICAg
ICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVzdWx0c1tpXSk7CiB9CiAKK1RF
U1QoTWFya2VyU3VicmFuZ2UsIFN1YmRpdmlkZUdyYW1tYXJBbmRTZWxlY3Rpb25PdmVybGFwRnJv
bnRtb3N0KQoreworICAgIFZlY3RvcjxNYXJrZXJTdWJyYW5nZT4gc3VicmFuZ2VzIHsKKyAgICAg
ICAgTWFya2VyU3VicmFuZ2UgeyAwLCA0MCwgTWFya2VyU3VicmFuZ2U6OkdyYW1tYXJFcnJvciB9
LAorICAgICAgICBNYXJrZXJTdWJyYW5nZSB7IDIsIDYwLCBNYXJrZXJTdWJyYW5nZTo6U2VsZWN0
aW9uIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgNTAsIDYwLCBNYXJrZXJTdWJyYW5nZTo6
R3JhbW1hckVycm9yIH0sCisgICAgfTsKKyAgICBWZWN0b3I8TWFya2VyU3VicmFuZ2U+IGV4cGVj
dGVkU3VicmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAwLCAyLCBNYXJrZXJTdWJy
YW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgMiwgNDAsIE1h
cmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyA0MCwg
NTAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICAgICAgTWFya2VyU3VicmFuZ2Ug
eyA1MCwgNjAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rpb24gfSwKKyAgICB9OworICAgIGF1dG8g
cmVzdWx0cyA9IHN1YmRpdmlkZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0
KTsKKyAgICBBU1NFUlRfRVEoZXhwZWN0ZWRTdWJyYW5nZXMuc2l6ZSgpLCByZXN1bHRzLnNpemUo
KSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleHBlY3RlZFN1YnJhbmdlcy5zaXplKCk7
ICsraSkKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3VicmFuZ2VzW2ldLCByZXN1bHRzW2ld
KTsKK30KKworVEVTVChNYXJrZXJTdWJyYW5nZSwgU3ViZGl2aWRlR3JhbW1hckFuZFNlbGVjdGlv
bk92ZXJsYXBGcm9udG1vc3RXaXRoTG9uZ2VzdEVmZmVjdGl2ZVJhbmdlKQoreworICAgIFZlY3Rv
cjxNYXJrZXJTdWJyYW5nZT4gc3VicmFuZ2VzIHsKKyAgICAgICAgTWFya2VyU3VicmFuZ2UgeyAw
LCA0MCwgTWFya2VyU3VicmFuZ2U6OkdyYW1tYXJFcnJvciB9LAorICAgICAgICBNYXJrZXJTdWJy
YW5nZSB7IDIsIDYwLCBNYXJrZXJTdWJyYW5nZTo6U2VsZWN0aW9uIH0sCisgICAgICAgIE1hcmtl
clN1YnJhbmdlIHsgNTAsIDYwLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0sCisgICAg
fTsKKyAgICBWZWN0b3I8TWFya2VyU3VicmFuZ2U+IGV4cGVjdGVkU3VicmFuZ2VzIHsKKyAgICAg
ICAgTWFya2VyU3VicmFuZ2UgeyAwLCAyLCBNYXJrZXJTdWJyYW5nZTo6R3JhbW1hckVycm9yIH0s
CisgICAgICAgIE1hcmtlclN1YnJhbmdlIHsgMiwgNjAsIE1hcmtlclN1YnJhbmdlOjpTZWxlY3Rp
b24gfSwKKyAgICB9OworICAgIGF1dG8gcmVzdWx0cyA9IHN1YmRpdmlkZShzdWJyYW5nZXMsIE92
ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0V2l0aExvbmdlc3RFZmZlY3RpdmVSYW5nZSk7CisgICAg
QVNTRVJUX0VRKGV4cGVjdGVkU3VicmFuZ2VzLnNpemUoKSwgcmVzdWx0cy5zaXplKCkpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhwZWN0ZWRTdWJyYW5nZXMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN1YnJhbmdlc1tpXSwgcmVzdWx0c1tpXSk7Cit9CisK
IH0K
</data>
<flag name="review"
          id="348820"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>