<?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>46105</bug_id>
          
          <creation_ts>2010-09-20 11:12:00 -0700</creation_ts>
          <short_desc>[BREWMP] Add TextBoundaries and TextBreakIterator</short_desc>
          <delta_ts>2010-10-13 17:55:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>
          
          <blocked>33564</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281673</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-09-20 11:12:00 -0700</bug_when>
    <thetext>Copy the code from WinCE port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281677</commentid>
    <comment_count>1</comment_count>
      <attachid>68113</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-09-20 11:13:44 -0700</bug_when>
    <thetext>Created attachment 68113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293834</commentid>
    <comment_count>2</comment_count>
      <attachid>68113</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-13 17:16:54 -0700</bug_when>
    <thetext>Comment on attachment 68113
Patch

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

&gt; WebCore/platform/text/brew/TextBoundariesBrew.cpp:37
&gt; +int findNextWordFromIndex(const UChar * buffer, int len, int position, bool forward)

The position of &quot;*&quot; is noncommittal.  We usually use &quot;const UChar* buffer&quot;.

&gt; WebCore/platform/text/brew/TextBoundariesBrew.cpp:43
&gt; +void findWordBoundary(const UChar * buffer, int len, int position, int* start, int* end)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293863</commentid>
    <comment_count>3</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-10-13 17:50:12 -0700</bug_when>
    <thetext>Manually committed r69722: http://trac.webkit.org/changeset/69722</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293869</commentid>
    <comment_count>4</comment_count>
      <attachid>68113</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-10-13 17:55:54 -0700</bug_when>
    <thetext>Comment on attachment 68113
Patch

Clear flags on attachment 68113</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68113</attachid>
            <date>2010-09-20 11:13:44 -0700</date>
            <delta_ts>2010-10-13 17:55:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>text.patch</filename>
            <type>text/plain</type>
            <size>12614</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Nzg2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDktMjAgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQlJFV01QXSBBZGQgVGV4dEJvdW5kYXJpZXMgYW5kIFRleHRCcmVha0l0ZXJhdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjEwNQorCisgICAg
ICAgIENvcHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIFdpbkNFIHBvcnQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L2JyZXcvVGV4dEJvdW5kYXJpZXNCcmV3LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpmaW5kTmV4dFdvcmRGcm9tSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Zmlu
ZFdvcmRCb3VuZGFyeSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9icmV3L1RleHRCcmVha0l0
ZXJhdG9yQnJldy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNDaGFyU3RvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjppc0xpbmVTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2VudGVu
Y2VTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCcmVha0l0ZXJhdG9yOjpyZXNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0QnJlYWtJdGVyYXRvcjo6Zm9sbG93aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRCcmVha0l0ZXJhdG9yOjpwcmVjZWRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6V29yZEJyZWFrSXRlcmF0b3I6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmRCcmVh
a0l0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmRCcmVha0l0ZXJhdG9yOjpw
cmV2aW91cyk6CisgICAgICAgIChXZWJDb3JlOjpDaGFyQnJlYWtJdGVyYXRvcjo6Zmlyc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hhckJyZWFrSXRlcmF0b3I6Om5leHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hhckJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVCcmVha0l0ZXJhdG9yOjpmaXJzdCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lQnJlYWtJdGVy
YXRvcjo6bmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lQnJlYWtJdGVyYXRvcjo6cHJldmlv
dXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VudGVuY2VCcmVha0l0ZXJhdG9yOjpmaXJzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZW50ZW5jZUJyZWFrSXRlcmF0b3I6Om5leHQpOgorICAgICAgICAo
V2ViQ29yZTo6U2VudGVuY2VCcmVha0l0ZXJhdG9yOjpwcmV2aW91cyk6CisgICAgICAgIChXZWJD
b3JlOjp3b3JkQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpjaGFyYWN0ZXJCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNlbnRlbmNlQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjp0
ZXh0QnJlYWtGaXJzdCk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0QnJlYWtOZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnRleHRCcmVha1ByZWNlZGluZyk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
QnJlYWtGb2xsb3dpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dEJyZWFrQ3VycmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjppc1RleHRCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKToKKwogMjAxMC0wOS0yMCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL3RleHQvYnJldy9UZXh0Qm91bmRhcmllc0JyZXcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9icmV3L1RleHRCb3VuZGFyaWVzQnJldy5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQvYnJldy9UZXh0Qm91bmRhcmllc0Jy
ZXcuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0y
MDA5IFRvcmNoIE1vYmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0Qm91bmRhcmllcy5oIgorCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCit1c2luZyBu
YW1lc3BhY2UgV1RGOjpVbmljb2RlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBmaW5k
TmV4dFdvcmRGcm9tSW5kZXgoY29uc3QgVUNoYXIgKiBidWZmZXIsIGludCBsZW4sIGludCBwb3Np
dGlvbiwgYm9vbCBmb3J3YXJkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK3ZvaWQgZmluZFdvcmRCb3VuZGFyeShjb25zdCBVQ2hhciAqIGJ1ZmZlciwgaW50
IGxlbiwgaW50IHBvc2l0aW9uLCBpbnQqIHN0YXJ0LCBpbnQqIGVuZCkKK3sKKyAgICBpZiAocG9z
aXRpb24gPiBsZW4pIHsKKyAgICAgICAgKnN0YXJ0ID0gMDsKKyAgICAgICAgKmVuZCA9IDA7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgc3RyKGJ1ZmZlciwgbGVuKTsKKwor
ICAgIGludCBjdXJyZW50UG9zaXRpb24gPSBwb3NpdGlvbiAtIDE7CisgICAgU3RyaW5nIGZvdW5k
V29yZDsKKyAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uID49IDAgJiYgaXNMZXR0ZXIoc3RyW2N1
cnJlbnRQb3NpdGlvbl0pKSB7CisgICAgICAgIFVDaGFyIGMgPSBzdHJbY3VycmVudFBvc2l0aW9u
XTsKKyAgICAgICAgZm91bmRXb3JkLmluc2VydCgmYywgMSwgMCk7CisgICAgICAgIC0tY3VycmVu
dFBvc2l0aW9uOworICAgIH0KKworICAgIC8vIGN1cnJlbnRQb3NpdGlvbiA9PSAwIG1lYW5zIHRo
ZSBmaXJzdCBjaGFyIGlzIG5vdCBsZXR0ZXIKKyAgICAvLyBjdXJyZW50UG9zaXRpb24gPT0gLTEg
bWVhbnMgd2UgcmVhY2hlZCB0aGUgYmVnaW5uaW5nCisgICAgaW50IHN0YXJ0UG9zID0gKGN1cnJl
bnRQb3NpdGlvbiA8IDApID8gMCA6ICsrY3VycmVudFBvc2l0aW9uOworICAgIGN1cnJlbnRQb3Np
dGlvbiA9IHBvc2l0aW9uOworICAgIHdoaWxlIChpc0xldHRlcihzdHJbY3VycmVudFBvc2l0aW9u
XSkpIHsKKyAgICAgICAgZm91bmRXb3JkLmFwcGVuZChzdHJbY3VycmVudFBvc2l0aW9uXSk7Cisg
ICAgICAgICsrY3VycmVudFBvc2l0aW9uOworICAgIH0KKworICAgICpzdGFydCA9IHN0YXJ0UG9z
OworICAgICplbmQgPSBjdXJyZW50UG9zaXRpb247Cit9CisKKworfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L2JyZXcvVGV4dEJyZWFrSXRlcmF0b3JCcmV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvYnJldy9UZXh0QnJlYWtJdGVyYXRvckJyZXcuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2JyZXcvVGV4dEJyZWFrSXRlcmF0
b3JCcmV3LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgTGFycyBLbm9sbCA8bGFyc0B0cm9sbHRlY2guY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9u
LCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUv
VW5pY29kZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIEhhY2ssIG5vdCBlbnRpcmVseSBjb3JyZWN0CitzdGF0aWMgaW5saW5l
IGJvb2wgaXNDaGFyU3RvcChVQ2hhciBjKQoreworICAgIENoYXJDYXRlZ29yeSBjaGFyQ2F0ZWdv
cnkgPSBjYXRlZ29yeShjKTsKKyAgICByZXR1cm4gY2hhckNhdGVnb3J5ICE9IE1hcmtfTm9uU3Bh
Y2luZyAmJiAoY2hhckNhdGVnb3J5ICE9IE90aGVyX1N1cnJvZ2F0ZSB8fCAoYyA8IDB4ZDgwMCB8
fCBjID49IDB4ZGMwMCkpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNMaW5lU3RvcChVQ2hh
ciBjKQoreworICAgIHJldHVybiBjYXRlZ29yeShjKSAhPSBTZXBhcmF0b3JfTGluZTsKK30KKwor
c3RhdGljIGlubGluZSBib29sIGlzU2VudGVuY2VTdG9wKFVDaGFyIGMpCit7CisgICAgcmV0dXJu
IGlzUHVuY3QoYyk7Cit9CisKK2NsYXNzIFRleHRCcmVha0l0ZXJhdG9yIHsKK3B1YmxpYzoKKyAg
ICB2b2lkIHJlc2V0KGNvbnN0IFVDaGFyKiBzdHIsIGludCBsZW4pCisgICAgeworICAgICAgICBz
dHJpbmcgPSBzdHI7CisgICAgICAgIGxlbmd0aCA9IGxlbjsKKyAgICAgICAgY3VycmVudFBvcyA9
IDA7CisgICAgfQorICAgIHZpcnR1YWwgaW50IGZpcnN0KCkgPSAwOworICAgIHZpcnR1YWwgaW50
IG5leHQoKSA9IDA7CisgICAgdmlydHVhbCBpbnQgcHJldmlvdXMoKSA9IDA7CisgICAgaW50IGZv
bGxvd2luZyhpbnQgcG9zaXRpb24pCisgICAgeworICAgICAgICBjdXJyZW50UG9zID0gcG9zaXRp
b247CisgICAgICAgIHJldHVybiBuZXh0KCk7CisgICAgfQorICAgIGludCBwcmVjZWRpbmcoaW50
IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgY3VycmVudFBvcyA9IHBvc2l0aW9uOworICAgICAg
ICByZXR1cm4gcHJldmlvdXMoKTsKKyAgICB9CisKKyAgICBpbnQgY3VycmVudFBvczsKKyAgICBj
b25zdCBVQ2hhciogc3RyaW5nOworICAgIGludCBsZW5ndGg7Cit9OworCitzdHJ1Y3QgV29yZEJy
ZWFrSXRlcmF0b3I6IFRleHRCcmVha0l0ZXJhdG9yIHsKKyAgICB2aXJ0dWFsIGludCBmaXJzdCgp
OworICAgIHZpcnR1YWwgaW50IG5leHQoKTsKKyAgICB2aXJ0dWFsIGludCBwcmV2aW91cygpOwor
fTsKKworc3RydWN0IENoYXJCcmVha0l0ZXJhdG9yOiBUZXh0QnJlYWtJdGVyYXRvciB7CisgICAg
dmlydHVhbCBpbnQgZmlyc3QoKTsKKyAgICB2aXJ0dWFsIGludCBuZXh0KCk7CisgICAgdmlydHVh
bCBpbnQgcHJldmlvdXMoKTsKK307CisKK3N0cnVjdCBMaW5lQnJlYWtJdGVyYXRvcjogVGV4dEJy
ZWFrSXRlcmF0b3IgeworICAgIHZpcnR1YWwgaW50IGZpcnN0KCk7CisgICAgdmlydHVhbCBpbnQg
bmV4dCgpOworICAgIHZpcnR1YWwgaW50IHByZXZpb3VzKCk7Cit9OworCitzdHJ1Y3QgU2VudGVu
Y2VCcmVha0l0ZXJhdG9yIDogVGV4dEJyZWFrSXRlcmF0b3IgeworICAgIHZpcnR1YWwgaW50IGZp
cnN0KCk7CisgICAgdmlydHVhbCBpbnQgbmV4dCgpOworICAgIHZpcnR1YWwgaW50IHByZXZpb3Vz
KCk7Cit9OworCitpbnQgV29yZEJyZWFrSXRlcmF0b3I6OmZpcnN0KCkKK3sKKyAgICBjdXJyZW50
UG9zID0gMDsKKyAgICByZXR1cm4gY3VycmVudFBvczsKK30KKworaW50IFdvcmRCcmVha0l0ZXJh
dG9yOjpuZXh0KCkKK3sKKyAgICBpZiAoY3VycmVudFBvcyA9PSBsZW5ndGgpIHsKKyAgICAgICAg
Y3VycmVudFBvcyA9IC0xOworICAgICAgICByZXR1cm4gY3VycmVudFBvczsKKyAgICB9CisgICAg
Ym9vbCBoYXZlU3BhY2UgPSBmYWxzZTsKKyAgICB3aGlsZSAoY3VycmVudFBvcyA8IGxlbmd0aCkg
eworICAgICAgICBpZiAoaGF2ZVNwYWNlICYmICFpc1NwYWNlKHN0cmluZ1tjdXJyZW50UG9zXSkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQ
b3NdKSkKKyAgICAgICAgICAgIGhhdmVTcGFjZSA9IHRydWU7CisgICAgICAgICsrY3VycmVudFBv
czsKKyAgICB9CisgICAgcmV0dXJuIGN1cnJlbnRQb3M7Cit9CisKK2ludCBXb3JkQnJlYWtJdGVy
YXRvcjo6cHJldmlvdXMoKQoreworICAgIGlmICghY3VycmVudFBvcykgeworICAgICAgICBjdXJy
ZW50UG9zID0gLTE7CisgICAgICAgIHJldHVybiBjdXJyZW50UG9zOworICAgIH0KKyAgICBib29s
IGhhdmVTcGFjZSA9IGZhbHNlOworICAgIHdoaWxlIChjdXJyZW50UG9zID4gMCkgeworICAgICAg
ICBpZiAoaGF2ZVNwYWNlICYmICFpc1NwYWNlKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgaWYgKGlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQb3NdKSkKKyAg
ICAgICAgICAgIGhhdmVTcGFjZSA9IHRydWU7CisgICAgICAgIC0tY3VycmVudFBvczsKKyAgICB9
CisgICAgcmV0dXJuIGN1cnJlbnRQb3M7Cit9CisKK2ludCBDaGFyQnJlYWtJdGVyYXRvcjo6Zmly
c3QoKQoreworICAgIGN1cnJlbnRQb3MgPSAwOworICAgIHJldHVybiBjdXJyZW50UG9zOworfQor
CitpbnQgQ2hhckJyZWFrSXRlcmF0b3I6Om5leHQoKQoreworICAgIGlmIChjdXJyZW50UG9zID49
IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgICsrY3VycmVudFBvczsKKyAgICB3aGls
ZSAoY3VycmVudFBvcyA8IGxlbmd0aCAmJiAhaXNDaGFyU3RvcChzdHJpbmdbY3VycmVudFBvc10p
KQorICAgICAgICArK2N1cnJlbnRQb3M7CisgICAgcmV0dXJuIGN1cnJlbnRQb3M7Cit9CisKK2lu
dCBDaGFyQnJlYWtJdGVyYXRvcjo6cHJldmlvdXMoKQoreworICAgIGlmIChjdXJyZW50UG9zIDw9
IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoY3VycmVudFBvcyA+IGxlbmd0aCkKKyAg
ICAgICAgY3VycmVudFBvcyA9IGxlbmd0aDsKKyAgICAtLWN1cnJlbnRQb3M7CisgICAgd2hpbGUg
KGN1cnJlbnRQb3MgPiAwICYmICFpc0NoYXJTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAg
ICAgIC0tY3VycmVudFBvczsKKyAgICByZXR1cm4gY3VycmVudFBvczsKK30KKworaW50IExpbmVC
cmVha0l0ZXJhdG9yOjpmaXJzdCgpCit7CisgICAgY3VycmVudFBvcyA9IDA7CisgICAgcmV0dXJu
IGN1cnJlbnRQb3M7Cit9CisKK2ludCBMaW5lQnJlYWtJdGVyYXRvcjo6bmV4dCgpCit7CisgICAg
aWYgKGN1cnJlbnRQb3MgPT0gbGVuZ3RoKSB7CisgICAgICAgIGN1cnJlbnRQb3MgPSAtMTsKKyAg
ICAgICAgcmV0dXJuIGN1cnJlbnRQb3M7CisgICAgfQorICAgIGJvb2wgaGF2ZVNwYWNlID0gZmFs
c2U7CisgICAgd2hpbGUgKGN1cnJlbnRQb3MgPCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKGhhdmVT
cGFjZSAmJiAhaXNMaW5lU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGlmIChpc0xpbmVTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAg
ICAgICBoYXZlU3BhY2UgPSB0cnVlOworICAgICAgICArK2N1cnJlbnRQb3M7CisgICAgfQorICAg
IHJldHVybiBjdXJyZW50UG9zOworfQorCitpbnQgTGluZUJyZWFrSXRlcmF0b3I6OnByZXZpb3Vz
KCkKK3sKKyAgICBpZiAoIWN1cnJlbnRQb3MpIHsKKyAgICAgICAgY3VycmVudFBvcyA9IC0xOwor
ICAgICAgICByZXR1cm4gY3VycmVudFBvczsKKyAgICB9CisgICAgYm9vbCBoYXZlU3BhY2UgPSBm
YWxzZTsKKyAgICB3aGlsZSAoY3VycmVudFBvcyA+IDApIHsKKyAgICAgICAgaWYgKGhhdmVTcGFj
ZSAmJiAhaXNMaW5lU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGlmIChpc0xpbmVTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAg
ICBoYXZlU3BhY2UgPSB0cnVlOworICAgICAgICAtLWN1cnJlbnRQb3M7CisgICAgfQorICAgIHJl
dHVybiBjdXJyZW50UG9zOworfQorCitpbnQgU2VudGVuY2VCcmVha0l0ZXJhdG9yOjpmaXJzdCgp
Cit7CisgICAgY3VycmVudFBvcyA9IDA7CisgICAgcmV0dXJuIGN1cnJlbnRQb3M7Cit9CisKK2lu
dCBTZW50ZW5jZUJyZWFrSXRlcmF0b3I6Om5leHQoKQoreworICAgIGlmIChjdXJyZW50UG9zID09
IGxlbmd0aCkgeworICAgICAgICBjdXJyZW50UG9zID0gLTE7CisgICAgICAgIHJldHVybiBjdXJy
ZW50UG9zOworICAgIH0KKyAgICBib29sIGhhdmVTcGFjZSA9IGZhbHNlOworICAgIHdoaWxlIChj
dXJyZW50UG9zIDwgbGVuZ3RoKSB7CisgICAgICAgIGlmIChoYXZlU3BhY2UgJiYgIWlzU2VudGVu
Y2VTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
aWYgKGlzU2VudGVuY2VTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAgICBoYXZl
U3BhY2UgPSB0cnVlOworICAgICAgICArK2N1cnJlbnRQb3M7CisgICAgfQorICAgIHJldHVybiBj
dXJyZW50UG9zOworfQorCitpbnQgU2VudGVuY2VCcmVha0l0ZXJhdG9yOjpwcmV2aW91cygpCit7
CisgICAgaWYgKCFjdXJyZW50UG9zKSB7CisgICAgICAgIGN1cnJlbnRQb3MgPSAtMTsKKyAgICAg
ICAgcmV0dXJuIGN1cnJlbnRQb3M7CisgICAgfQorICAgIGJvb2wgaGF2ZVNwYWNlID0gZmFsc2U7
CisgICAgd2hpbGUgKGN1cnJlbnRQb3MgPiAwKSB7CisgICAgICAgIGlmIChoYXZlU3BhY2UgJiYg
IWlzU2VudGVuY2VTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgaWYgKGlzU2VudGVuY2VTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAg
ICAgICBoYXZlU3BhY2UgPSB0cnVlOworICAgICAgICAtLWN1cnJlbnRQb3M7CisgICAgfQorICAg
IHJldHVybiBjdXJyZW50UG9zOworfQorCitUZXh0QnJlYWtJdGVyYXRvciogd29yZEJyZWFrSXRl
cmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdvcmRCcmVha0l0ZXJhdG9yLCBpdGVyYXRvciwgKCkpOworICAgIGl0ZXJhdG9y
LnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKKyAgICByZXR1cm4gJml0ZXJhdG9yOworfQorCitUZXh0
QnJlYWtJdGVyYXRvciogY2hhcmFjdGVyQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5n
LCBpbnQgbGVuZ3RoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ2hhckJyZWFrSXRlcmF0
b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwor
ICAgIHJldHVybiAmaXRlcmF0b3I7Cit9CisKK1RleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoTGluZUJyZWFrSXRlcmF0b3IgLCBpdGVyYXRvciwgKCkpOworICAgIGl0ZXJh
dG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKKyAgICByZXR1cm4gJml0ZXJhdG9yOworfQorCitU
ZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJp
bmcsIGludCBsZW5ndGgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTZW50ZW5jZUJyZWFr
SXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5n
dGgpOworICAgIHJldHVybiAmaXRlcmF0b3I7Cit9CisKK2ludCB0ZXh0QnJlYWtGaXJzdChUZXh0
QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvcikKK3sKKyAgICByZXR1cm4gYnJlYWtJdGVyYXRv
ci0+Zmlyc3QoKTsKK30KKworaW50IHRleHRCcmVha05leHQoVGV4dEJyZWFrSXRlcmF0b3IqIGJy
ZWFrSXRlcmF0b3IpCit7CisgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3ItPm5leHQoKTsKK30KKwor
aW50IHRleHRCcmVha1ByZWNlZGluZyhUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciwg
aW50IHBvc2l0aW9uKQoreworICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5wcmVjZWRpbmcocG9z
aXRpb24pOworfQorCitpbnQgdGV4dEJyZWFrRm9sbG93aW5nKFRleHRCcmVha0l0ZXJhdG9yKiBi
cmVha0l0ZXJhdG9yLCBpbnQgcG9zaXRpb24pCit7CisgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3It
PmZvbGxvd2luZyhwb3NpdGlvbik7Cit9CisKK2ludCB0ZXh0QnJlYWtDdXJyZW50KFRleHRCcmVh
a0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yKQoreworICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5j
dXJyZW50UG9zOworfQorCitib29sIGlzVGV4dEJyZWFrKFRleHRCcmVha0l0ZXJhdG9yKiwgaW50
KQoreworICAgIHJldHVybiB0cnVlOworfQorCitUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92
ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQoreworICAgIHJl
dHVybiBjaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKHN0cmluZywgbGVuZ3RoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>