<?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>12175</bug_id>
          
          <creation_ts>2007-01-08 22:03:55 -0800</creation_ts>
          <short_desc>port break_lines.cpp to be platform independent</short_desc>
          <delta_ts>2007-01-09 05:43:20 -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>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>4628</dup_id>
          
          <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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>36153</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-08 22:03:55 -0800</bug_when>
    <thetext>Hyatt asked me to port break_lines.cpp to &quot;use ICU&quot;, but it can be ported to use TextBreakIterator.h and hence be more-or-less platform independent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36139</commentid>
    <comment_count>1</comment_count>
      <attachid>12324</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-08 22:07:00 -0800</bug_when>
    <thetext>Created attachment 12324
patch, including change log -- passes all layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36137</commentid>
    <comment_count>2</comment_count>
      <attachid>12324</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-08 22:33:05 -0800</bug_when>
    <thetext>Comment on attachment 12324
patch, including change log -- passes all layout tests

r=me.  Run tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36138</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-08 23:04:45 -0800</bug_when>
    <thetext>Be sure to test Thai word breaks! See &lt;http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/test/thaitest/&gt; for possible test data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36089</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-09 05:43:20 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 4628 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12324</attachid>
            <date>2007-01-08 22:07:00 -0800</date>
            <delta_ts>2007-01-08 22:33:05 -0800</delta_ts>
            <desc>patch, including change log -- passes all layout tests</desc>
            <filename>BreakPatch.txt</filename>
            <type>text/plain</type>
            <size>11583</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE4Njk4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDctMDEt
MDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxNzUKKyAgICAgICAgICBwb3J0IGJyZWFrX2xpbmVzLmNwcCB0byBiZSBw
bGF0Zm9ybSBpbmRlcGVuZGVudAorCisgICAgICAgICogcGxhdGZvcm0vVGV4dEJyZWFrSXRlcmF0
b3IuaDogQWRkZWQgbGluZUJyZWFrSXRlcmF0b3IuCisgICAgICAgIFJlbW92ZWQgSUNVLXNwZWNp
ZmljIHN0dWZmIGZyb20gdGhlIGhlYWRlci4KKworICAgICAgICAqIHBsYXRmb3JtL1RleHRCcmVh
a0l0ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldFVwSXRlcmF0b3IpOiBBZGRl
ZCBoZWxwZXIgdG8gYmUgc2hhcmVkIGJ5IHRoZSB0aHJlZSBkaWZmZXJlbnQKKyAgICAgICAgY3Jl
YXRpb24gZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyQnJlYWtJdGVyYXRv
cik6IENoYW5nZWQgdG8gdXNlIHNldFVwSXRlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjp3b3Jk
QnJlYWtJdGVyYXRvcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6bGluZUJyZWFrSXRlcmF0
b3IpOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1RleHRCcmVha0l0ZXJhdG9yUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bGluZUJyZWFrSXRlcmF0b3IpOiBBZGRlZCBhIHN0dWIu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNCcmVha2FibGVTcGFjZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQnJl
YWtBZnRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bmVlZHNBZHZhbmNlZEJyZWFrQW5h
bHlzaXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om5leHRCcmVha2FibGVQb3NpdGlvbik6
IENoYW5nZWQgdG8gdXNlIFRleHRCcmVha0l0ZXJhdG9yIGluc3RlYWQKKyAgICAgICAgb2YgVUNG
aW5kVGV4dEJyZWFrLgorCiAyMDA3LTAxLTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICAtIHJvbGxlZCBvdXQgQmV0aCdzIFJlbmRlckZsb3c6OmRlc3Ryb3kgY2hh
bmdlLCB3aGljaCBicm9rZSA1IGVkaXRpbmcgdGVzdHMKSW5kZXg6IHBsYXRmb3JtL1RleHRCcmVh
a0l0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vVGV4dEJyZWFrSXRlcmF0b3IuaAko
cmV2aXNpb24gMTg2OTUpCisrKyBwbGF0Zm9ybS9UZXh0QnJlYWtJdGVyYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDcgKzEsNiBAQAogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBE
T00gaW1wbGVtZW50YXRpb24gZm9yIEtERS4KLSAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTGFy
cyBLbm9sbCA8bGFyc0B0cm9sbHRlY2guY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxl
IENvbXB1dGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTE5LDMwICsxOCwyOSBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKgog
ICovCisKICNpZm5kZWYgVGV4dEJyZWFrSXRlcmF0b3JfaAogI2RlZmluZSBUZXh0QnJlYWtJdGVy
YXRvcl9oCiAKLSNpbmNsdWRlICJ3dGYvdW5pY29kZS9Vbmljb2RlLmgiCisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKQotI2luY2x1ZGUgPHVu
aWNvZGUvdWJyay5oPgotdHlwZWRlZiBVQnJlYWtJdGVyYXRvciBUZXh0QnJlYWtJdGVyYXRvcjsK
LSNlbGlmIFVTRShRVDRfVU5JQ09ERSkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBU
ZXh0QnJlYWtJdGVyYXRvcjsKLX0KLSNlbmRpZgogCisgICAgY2xhc3MgVGV4dEJyZWFrSXRlcmF0
b3I7CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogd29yZEJy
ZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCk7Ci0gICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIGNoYXJhY3RlckJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywg
aW50IGxlbmd0aCk7CisgICAgLy8gTm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdvb2Qg
b25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IuCisgICAgVGV4dEJyZWFrSXRlcmF0
b3IqIGNoYXJhY3RlckJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKKyAg
ICBUZXh0QnJlYWtJdGVyYXRvciogd29yZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQg
bGVuZ3RoKTsKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3Qg
VUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0QnJlYWtJ
dGVyYXRvciopOwogICAgIGludCB0ZXh0QnJlYWtOZXh0KFRleHRCcmVha0l0ZXJhdG9yKik7CiAg
ICAgaW50IHRleHRCcmVha0N1cnJlbnQoVGV4dEJyZWFrSXRlcmF0b3IqKTsKICAgICBpbnQgdGV4
dEJyZWFrUHJlY2VkaW5nKFRleHRCcmVha0l0ZXJhdG9yKiwgaW50KTsKICAgICBpbnQgdGV4dEJy
ZWFrRm9sbG93aW5nKFRleHRCcmVha0l0ZXJhdG9yKiwgaW50KTsKLSAgICBlbnVtIHsgVGV4dEJy
ZWFrRG9uZSA9IC0xIH07CisKKyAgICBjb25zdCBpbnQgVGV4dEJyZWFrRG9uZSA9IC0xOworCiB9
CisKICNlbmRpZgpJbmRleDogcGxhdGZvcm0vVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHBsYXRmb3JtL1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gMTg2
OTUpCisrKyBwbGF0Zm9ybS9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw2IEBACiAvKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIERPTSBpbXBs
ZW1lbnRhdGlvbiBmb3IgS0RFLgotICoKICAqIENvcHlyaWdodCAoQykgMjAwNiBMYXJzIEtub2xs
IDxsYXJzQHRyb2xsdGVjaC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAs
MjggKzE5LDM0IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJU
ZXh0QnJlYWtJdGVyYXRvci5oIgogCisjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Iq
IHNldFVwSXRlcmF0b3IoYm9vbCYgY3JlYXRlZEl0ZXJhdG9yLCBUZXh0QnJlYWtJdGVyYXRvciom
IGl0ZXJhdG9yLAorICAgIFVCcmVha0l0ZXJhdG9yVHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3Ry
aW5nLCBpbnQgbGVuZ3RoKQogewotICAgIC8vIFRoZSBsb2NhbGUgaXMgY3VycmVudGx5IGlnbm9y
ZWQgd2hlbiBkZXRlcm1pbmluZyBjaGFyYWN0ZXIgY2x1c3RlciBicmVha3MuCi0gICAgLy8gVGhp
cyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUsIGFjY29yZGluZyB0byBEZWJvcmFoIEdvbGRzbWl0
aC4KLSAgICBzdGF0aWMgYm9vbCBjcmVhdGVkSXRlcmF0b3IgPSBmYWxzZTsKLSAgICBzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yOwotICAgIFVFcnJvckNvZGUgc3RhdHVzOworICAgIGlm
ICghc3RyaW5nKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGlmICghY3JlYXRlZEl0ZXJhdG9y
KSB7Ci0gICAgICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICAgICAgaXRlcmF0b3IgPSB1
YnJrX29wZW4oVUJSS19XT1JELCAiZW5fdXMiLCAwLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgLy8g
VGhlIGxvY2FsZSBpcyBjdXJyZW50bHkgaWdub3JlZCB3aGVuIGRldGVybWluaW5nIGNoYXJhY3Rl
ciBjbHVzdGVyIGJyZWFrcy4KKyAgICAgICAgLy8gVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1
cmUsIGFjY29yZGluZyB0byBEZWJvcmFoIEdvbGRzbWl0aC4KKyAgICAgICAgLy8gRklYTUU6IFBy
ZXN1bWFibHkgd2UgZG8gbmVlZCB0byBwYXNzIHRoZSBjb3JyZWN0IGxvY2FsZSBmb3Igd29yZCBh
bmQgbGluZQorICAgICAgICAvLyBicmVhayBpdGVyYXRvcnMsIHRob3VnaCEKKyAgICAgICAgVUVy
cm9yQ29kZSBvcGVuU3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBpdGVyYXRvciA9IHN0
YXRpY19jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4odWJya19vcGVuKHR5cGUsICJlbl91cyIsIDAs
IDAsICZvcGVuU3RhdHVzKSk7CiAgICAgICAgIGNyZWF0ZWRJdGVyYXRvciA9IHRydWU7CiAgICAg
fQogICAgIGlmICghaXRlcmF0b3IpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgc3RhdHVzID0g
VV9aRVJPX0VSUk9SOwotICAgIHVicmtfc2V0VGV4dChpdGVyYXRvciwgc3RyaW5nLCBsZW5ndGgs
ICZzdGF0dXMpOwotICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICBVRXJyb3JDb2RlIHNl
dFRleHRTdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgdWJya19zZXRUZXh0KGl0ZXJhdG9yLCBz
dHJpbmcsIGxlbmd0aCwgJnNldFRleHRTdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc2V0VGV4
dFN0YXR1cykpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmV0dXJuIGl0ZXJhdG9yOwpAQCAt
NDksMjggKzU0LDI2IEBAIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb24K
IAogVGV4dEJyZWFrSXRlcmF0b3IqIGNoYXJhY3RlckJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIq
IHN0cmluZywgaW50IGxlbmd0aCkKIHsKLSAgICBpZiAoIXN0cmluZykKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICAvLyBUaGUgbG9jYWxlIGlzIGN1cnJlbnRseSBpZ25vcmVkIHdoZW4gZGV0ZXJt
aW5pbmcgY2hhcmFjdGVyIGNsdXN0ZXIgYnJlYWtzLgotICAgIC8vIFRoaXMgbWF5IGNoYW5nZSBp
biB0aGUgZnV0dXJlLCBhY2NvcmRpbmcgdG8gRGVib3JhaCBHb2xkc21pdGguCi0gICAgc3RhdGlj
IGJvb2wgY3JlYXRlZEl0ZXJhdG9yID0gZmFsc2U7Ci0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9y
KiBpdGVyYXRvcjsKLSAgICBVRXJyb3JDb2RlIHN0YXR1czsKLSAgICBpZiAoIWNyZWF0ZWRJdGVy
YXRvcikgewotICAgICAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICAgIGl0ZXJhdG9y
ID0gdWJya19vcGVuKFVCUktfQ0hBUkFDVEVSLCAiZW5fdXMiLCAwLCAwLCAmc3RhdHVzKTsKLSAg
ICAgICAgY3JlYXRlZEl0ZXJhdG9yID0gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKCFpdGVyYXRvcikK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgc3RhdGljIGJvb2wgY3JlYXRlZENoYXJhY3RlckJyZWFr
SXRlcmF0b3IgPSBmYWxzZTsKKyAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0No
YXJhY3RlckJyZWFrSXRlcmF0b3I7CisgICAgcmV0dXJuIHNldFVwSXRlcmF0b3IoY3JlYXRlZENo
YXJhY3RlckJyZWFrSXRlcmF0b3IsCisgICAgICAgIHN0YXRpY0NoYXJhY3RlckJyZWFrSXRlcmF0
b3IsIFVCUktfQ0hBUkFDVEVSLCBzdHJpbmcsIGxlbmd0aCk7Cit9CiAKLSAgICBzdGF0dXMgPSBV
X1pFUk9fRVJST1I7Ci0gICAgdWJya19zZXRUZXh0KGl0ZXJhdG9yLCByZWludGVycHJldF9jYXN0
PGNvbnN0IFVDaGFyKj4oc3RyaW5nKSwgbGVuZ3RoLCAmc3RhdHVzKTsKLSAgICBpZiAoc3RhdHVz
ICE9IFVfWkVST19FUlJPUikKLSAgICAgICAgcmV0dXJuIDA7CitUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBjcmVhdGVkV29yZEJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKKyAgICBzdGF0
aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yOworICAgIHJldHVy
biBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRXb3JkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgc3RhdGlj
V29yZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3RyaW5nLCBsZW5ndGgpOworfQogCi0gICAg
cmV0dXJuIGl0ZXJhdG9yOworVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCit7CisgICAgc3RhdGljIGJvb2wgY3JlYXRl
ZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9y
KiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKKyAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVh
dGVkTGluZUJyZWFrSXRlcmF0b3IsCisgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBV
QlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAogaW50IHRleHRCcmVha0ZpcnN0KFRleHRC
cmVha0l0ZXJhdG9yKiBiaSkKSW5kZXg6IHBsYXRmb3JtL3F0L1RleHRCcmVha0l0ZXJhdG9yUXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCShy
ZXZpc2lvbiAxODY5NSkKKysrIHBsYXRmb3JtL3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDEyIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBjaGFy
YWN0ZXJCcmVha0l0ZXJhdG8KICAgICByZXR1cm4gaXRlcmF0b3I7CiB9CiAKK1RleHRCcmVha0l0
ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCkKK3sKKyAgICAvLyBu
b3QgeWV0IGltcGxlbWVudGVkCisgICAgcmV0dXJuIDA7Cit9CisKIGludCB0ZXh0QnJlYWtGaXJz
dChUZXh0QnJlYWtJdGVyYXRvciogYmkpCiB7CiAgICAgcmV0dXJuIGJpLT5maXJzdCgpOwpJbmRl
eDogcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvYnJl
YWtfbGluZXMuY3BwCShyZXZpc2lvbiAxODY5NSkKKysrIHJlbmRlcmluZy9icmVha19saW5lcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw1IEBACiAvKgotICogVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIERPTSBpbXBsZW1lbnRhdGlvbiBmb3IgS0RFLgotICoKLSAqIENvcHlyaWdodCAo
QykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA3
IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDUxICsyMiw3
MiBAQAogI2luY2x1ZGUgImJyZWFrX2xpbmVzLmgiCiAKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
Ci0KLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8Q29yZVNlcnZpY2VzL0NvcmVTZXJ2aWNl
cy5oPgotI2VuZGlmCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiBzdHIs
IGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQKQorY29uc3QgVUNoYXIgbm9CcmVha1Nw
YWNlID0gMHgwMEEwOworY29uc3QgVUNoYXIgc29mdEh5cGhlbiA9IDB4MDBBRDsKKworc3RhdGlj
IGlubGluZSBib29sIGlzQnJlYWthYmxlU3BhY2UoVUNoYXIgY2gsIGJvb2wgdHJlYXROb0JyZWFr
U3BhY2VBc0JyZWFrKQogewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBPU1N0YXR1cyBzdGF0dXMg
PSAwLCBmaW5kU3RhdHVzID0gLTE7Ci0gICAgc3RhdGljIFRleHRCcmVha0xvY2F0b3JSZWYgYnJl
YWtMb2NhdG9yID0gMDsKLSAgICBpbnQgbmV4dFVDQnJlYWsgPSAtMTsKLSNlbmRpZgotICAgIGlu
dCBpOwotICAgIHVuc2lnbmVkIHNob3J0IGNoLCBsYXN0Q2g7Ci0gICAgCi0gICAgbGFzdENoID0g
cG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7Ci0gICAgZm9yIChpID0gcG9zOyBpIDwgbGVuOyBp
KyspIHsKLSAgICAgICAgY2ggPSBzdHJbaV07Ci0gICAgICAgIGlmIChjaCA9PSAnICcgfHwgY2gg
PT0gJ1xuJyB8fCBjaCA9PSAnXHQnIHx8IChicmVha05CU1AgJiYgY2ggPT0gMHhhMCkpCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgLy8gTWF0Y2ggV2luSUUncyBicmVha2luZyBzdHJhdGVn
eSwgd2hpY2ggaXMgdG8gYWx3YXlzIGFsbG93IGJyZWFrcyBhZnRlciBoeXBoZW5zIGFuZCBxdWVz
dGlvbiBtYXJrcy4KLSAgICAgICAgaWYgKGxhc3RDaCA9PSAnLScgfHwgbGFzdENoID09ICc/JyB8
fCBsYXN0Q2ggPT0gU09GVF9IWVBIRU4pCi0gICAgICAgICAgICBicmVhazsKLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgICAgIC8vIEZJWE1FOiBSZXdyaXRlIGJyZWFrIGxvY2F0aW9uIHVzaW5nIElD
VS4KLSAgICAgICAgLy8gSWYgY3VycmVudCBjaGFyYWN0ZXIsIG9yIHRoZSBwcmV2aW91cyBjaGFy
YWN0ZXIgYXJlbid0IHNpbXBsZSBsYXRpbjEgdGhlbgotICAgICAgICAvLyB1c2UgdGhlIFVDIGxp
bmUgYnJlYWsgbG9jYXRvci4gIFVDRmluZFRleHRCcmVhayB3aWxsIHJlcG9ydCBmYWxzZSBpZiB3
ZQotICAgICAgICAvLyBoYXZlIGEgc2VxdWVuY2Ugb2YgMHhhMCAweDIwIChuYnNwLCBzcCksIHNv
IHdlIGV4cGxpY2l0eSBjaGVjayBmb3IgdGhhdAotICAgICAgICAvLyBjYXNlLgotICAgICAgICBp
ZiAoKGNoID4gMHg3ZiAmJiBjaCAhPSAweGEwKSB8fCAobGFzdENoID4gMHg3ZiAmJiBsYXN0Q2gg
IT0gMHhhMCkpIHsKLSAgICAgICAgICAgIGlmIChuZXh0VUNCcmVhayA8IGkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIWJyZWFrTG9jYXRvcikKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0g
VUNDcmVhdGVUZXh0QnJlYWtMb2NhdG9yKE5VTEwsIDAsIGtVQ1RleHRCcmVha0xpbmVNYXNrLCAm
YnJlYWtMb2NhdG9yKTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IDApCi0gICAgICAg
ICAgICAgICAgICAgIGZpbmRTdGF0dXMgPSBVQ0ZpbmRUZXh0QnJlYWsoYnJlYWtMb2NhdG9yLCBr
VUNUZXh0QnJlYWtMaW5lTWFzaywgMCwgKGNvbnN0IFVuaUNoYXIgKilzdHIsIGxlbiwgaSwgKFVu
aUNoYXJBcnJheU9mZnNldCAqKSZuZXh0VUNCcmVhayk7CisgICAgc3dpdGNoIChjaCkgeworICAg
ICAgICBjYXNlICcgJzoKKyAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICBjYXNlICdcdCc6Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBub0JyZWFrU3BhY2U6CisgICAg
ICAgICAgICByZXR1cm4gdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworc3RhdGljIGlubGluZSBi
b29sIHNob3VsZEJyZWFrQWZ0ZXIoVUNoYXIgY2gpCit7CisgICAgLy8gTWF0Y2ggV2luSUUncyBi
cmVha2luZyBzdHJhdGVneSwgd2hpY2ggaXMgdG8gYWx3YXlzIGFsbG93IGJyZWFrcyBhZnRlciBo
eXBoZW5zIGFuZCBxdWVzdGlvbiBtYXJrcy4KKyAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNh
c2UgJy0nOgorICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgY2FzZSBzb2Z0SHlwaGVuOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIGJvb2wgbmVlZHNMaW5lQnJlYWtJ
dGVyYXRvcihVQ2hhciBjaCkKK3sKKyAgICByZXR1cm4gY2ggPiAweDdGICYmIGNoICE9IG5vQnJl
YWtTcGFjZTsKK30KKworaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciogc3Ry
LCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaykKK3sKKyAg
ICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IDA7CisgICAgaW50IG5leHRCcmVh
ayA9IC0xOworCisgICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7
CisgICAgZm9yIChpbnQgaSA9IHBvczsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIFVDaGFyIGNo
ID0gc3RyW2ldOworCisgICAgICAgIGlmIChpc0JyZWFrYWJsZVNwYWNlKGNoLCB0cmVhdE5vQnJl
YWtTcGFjZUFzQnJlYWspIHx8IHNob3VsZEJyZWFrQWZ0ZXIobGFzdENoKSkKKyAgICAgICAgICAg
IHJldHVybiBpOworCisgICAgICAgIGlmIChuZWVkc0xpbmVCcmVha0l0ZXJhdG9yKGNoKSB8fCBu
ZWVkc0xpbmVCcmVha0l0ZXJhdG9yKGxhc3RDaCkpIHsKKyAgICAgICAgICAgIGlmIChuZXh0QnJl
YWsgPCBpICYmIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJyZWFrSXRlcmF0b3IpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvcihzdHIsIGxl
bik7CisgICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCisgICAgICAgICAgICAgICAg
ICAgIG5leHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhicmVha0l0ZXJhdG9yLCBpIC0gMSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZmluZFN0YXR1cyA9PSAwICYmIGkgPT0g
bmV4dFVDQnJlYWsgJiYgIShsYXN0Q2ggPT0gJyAnIHx8IGxhc3RDaCA9PSAnXG4nIHx8IGxhc3RD
aCA9PSAnXHQnIHx8IChicmVha05CU1AgJiYgbGFzdENoID09IDB4YTApKSkKLSAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChpID09IG5leHRCcmVhayAmJiAhaXNCcmVha2Fi
bGVTcGFjZShsYXN0Q2gsIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaykpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGk7CiAgICAgICAgIH0KLSNlbmRpZgorCiAgICAgICAgIGxhc3RDaCA9IGNoOwog
ICAgIH0KLSAgICByZXR1cm4gaTsKKworICAgIHJldHVybiBsZW47CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="4611"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>