<?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>96125</bug_id>
          
          <creation_ts>2012-09-07 10:08:43 -0700</creation_ts>
          <short_desc>StringImpl::find(StringImpl*) doesn&apos;t handle cases where search and match strings are different bitness</short_desc>
          <delta_ts>2012-09-07 15:25:04 -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>JavaScriptCore</component>
          <version>528+ (Nightly 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>benjamin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714653</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 10:08:43 -0700</bug_when>
    <thetext>StringImpl::FInd(StringImpl*) handles the case where both strings are 8 bit.  If one string is 16 bit, the other string is unconverted to 16 bit to perform the search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714722</commentid>
    <comment_count>1</comment_count>
      <attachid>162813</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 10:46:27 -0700</bug_when>
    <thetext>Created attachment 162813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714729</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 10:50:42 -0700</bug_when>
    <thetext>Attachment 162813 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/te...&quot; exit_code: 1
Source/WTF/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714739</commentid>
    <comment_count>3</comment_count>
      <attachid>162818</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 10:54:34 -0700</bug_when>
    <thetext>Created attachment 162818
Patch with Tab character removed from ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714916</commentid>
    <comment_count>4</comment_count>
      <attachid>162818</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-07 13:41:26 -0700</bug_when>
    <thetext>Comment on attachment 162818
Patch with Tab character removed from ChangeLog

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

r- for the the other find().

Why not update find(StringImpl* matchString, unsigned index) similarly?

&gt; Source/WTF/wtf/text/StringImpl.cpp:971
&gt; -    while (searchHash != matchHash || memcmp(searchCharacters + i, matchCharacters, matchLength * sizeof(CharType))) {
&gt; +    while (searchHash != matchHash || !equal(searchCharacters + i, matchCharacters, matchLength)) {

This may causes regressions, although that is unlikely for the length we use with find().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714979</commentid>
    <comment_count>5</comment_count>
      <attachid>162869</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 14:20:28 -0700</bug_when>
    <thetext>Created attachment 162869
Patch with changes for both exported find()&apos;s and reverseFind()

(In reply to comment #4)
&gt; (From update of attachment 162818 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162818&amp;action=review
&gt; 
&gt; r- for the the other find().
&gt; 
&gt; Why not update find(StringImpl* matchString, unsigned index) similarly?

Okay - done.  I also added reverseFind().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714981</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 14:21:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
 
&gt; &gt; Source/WTF/wtf/text/StringImpl.cpp:971
&gt; &gt; -    while (searchHash != matchHash || memcmp(searchCharacters + i, matchCharacters, matchLength * sizeof(CharType))) {
&gt; &gt; +    while (searchHash != matchHash || !equal(searchCharacters + i, matchCharacters, matchLength)) {
&gt; 
&gt; This may causes regressions, although that is unlikely for the length we use with find().

Performance results.  Doesn&apos;t seem to be an issue.


Generating benchmark report at /Volumes/Data/src/webkit/BaseLine_96125_SunSpiderV8Real_msaboff-pro_20120907_1415_report.txt
And raw data at /Volumes/Data/src/webkit/BaseLine_96125_SunSpiderV8Real_msaboff-pro_20120907_1415.json

Benchmark report for SunSpider and V8Real on msaboff-pro (MacPro5,1).

VMs tested:
&quot;BaseLine&quot; at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/DumpRenderTree (r127888)
&quot;96125&quot; at /Volumes/Data/src/webkit.work/WebKitBuild/Release/DumpRenderTree (r127888)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between
sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific
preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence
intervals in milliseconds.

                                         BaseLine                   96125                                       
SunSpider:
   3d-cube                            8.7977+-0.5067            8.6507+-0.5261          might be 1.0170x faster
   3d-morph                           8.1564+-0.0928     ?      8.1984+-0.1211        ?
   3d-raytrace                       12.4149+-0.3862     ?     12.4155+-0.3946        ?
   access-binary-trees                2.4674+-0.4458            2.3497+-0.4525          might be 1.0501x faster
   access-fannkuch                    6.8857+-0.0270     ?      6.9154+-0.0627        ?
   access-nbody                       4.2681+-0.1196            4.2181+-0.0692          might be 1.0119x faster
   access-nsieve                      3.3983+-0.0395     ?      3.4485+-0.0620        ? might be 1.0148x slower
   bitops-3bit-bits-in-byte           1.3664+-0.0103            1.3625+-0.0079        
   bitops-bits-in-byte                5.7576+-0.0217     ?      5.7651+-0.0136        ?
   bitops-bitwise-and                 2.1705+-0.1227            2.0922+-0.1335          might be 1.0374x faster
   bitops-nsieve-bits                 3.5294+-0.0185            3.5262+-0.0237        
   controlflow-recursive              2.5184+-0.0217            2.5136+-0.0307        
   crypto-aes                         9.8818+-0.5973            9.7241+-0.5389          might be 1.0162x faster
   crypto-md5                         3.8916+-0.1044     ?      3.9928+-0.1031        ? might be 1.0260x slower
   crypto-sha1                        3.1377+-0.0400            3.1106+-0.0284        
   date-format-tofte                 14.2957+-0.6866     ?     14.9089+-1.0965        ? might be 1.0429x slower
   date-format-xparb                 11.5976+-0.1341     ?     11.7902+-0.2157        ? might be 1.0166x slower
   math-cordic                        4.2203+-0.0755     ?      4.2681+-0.0663        ? might be 1.0113x slower
   math-partial-sums                 10.1748+-0.0727           10.1726+-0.0382        
   math-spectral-norm                 3.0190+-0.0195     ?      3.0290+-0.0179        ?
   regexp-dna                        10.4678+-0.3456     ?     10.4715+-0.3451        ?
   string-base64                      6.1099+-0.5521     ?      6.1596+-0.5285        ?
   string-fasta                       8.2396+-0.2519     ?      8.5118+-0.4220        ? might be 1.0330x slower
   string-tagcloud                   13.7735+-0.3097           13.7045+-0.3052        
   string-unpack-code                23.8898+-0.5114           23.7975+-0.6630        
   string-validate-input              8.7721+-0.5857     ?      9.1247+-0.4853        ? might be 1.0402x slower

   &lt;arithmetic&gt; *                     7.4308+-0.1244     ?      7.4701+-0.1598        ? might be 1.0053x slower
   &lt;geometric&gt;                        5.9255+-0.0953     ?      5.9367+-0.1142        ? might be 1.0019x slower
   &lt;harmonic&gt;                         4.6523+-0.0844            4.6334+-0.0915          might be 1.0041x faster

                                         BaseLine                   96125                                       
V8Real:
   encrypt                           0.40235+-0.00059    ?     0.40247+-0.00067       ?
   decrypt                           6.94680+-0.01378    ?     6.96763+-0.03970       ?
   deltablue                x2       0.56615+-0.00542    ?     0.57171+-0.00694       ?
   earley                            1.23551+-0.00667    ?     1.24194+-0.01050       ?
   boyer                            13.70504+-0.05580         13.66802+-0.07235       
   raytrace                 x2       4.54731+-0.05376    ?     4.60798+-0.05023       ? might be 1.0133x slower
   regexp                   x2      26.80334+-0.12066    ?    26.91426+-0.17851       ?
   richards                 x2       0.27124+-0.00194          0.27095+-0.00141       
   splay                    x2       0.75214+-0.00602          0.74667+-0.00341       
   navier-stokes            x2      12.75767+-0.00745    ^    12.73450+-0.01316       ^ definitely 1.0018x faster

   &lt;arithmetic&gt;                      7.10534+-0.01566    ?     7.12326+-0.02639       ? might be 1.0025x slower
   &lt;geometric&gt; *                     2.43480+-0.00627    ?     2.44082+-0.00531       ? might be 1.0025x slower
   &lt;harmonic&gt;                        0.90144+-0.00387    ?     0.90232+-0.00223       ? might be 1.0010x slower

                                         BaseLine                   96125                                       
All benchmarks:
   &lt;arithmetic&gt;                       7.3068+-0.0794     ?      7.3380+-0.1016        ? might be 1.0043x slower
   &lt;geometric&gt;                        4.2223+-0.0425     ?      4.2311+-0.0501        ? might be 1.0021x slower
   &lt;harmonic&gt;                         1.7994+-0.0095            1.7989+-0.0087          might be 1.0003x faster

                                         BaseLine                   96125                                       
Geomean of preferred means:
   &lt;scaled-result&gt;                   13.4499+-0.1172     ?     13.5012+-0.1431        ? might be 1.0038x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714987</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-07 14:30:34 -0700</bug_when>
    <thetext>&gt; Performance results.  Doesn&apos;t seem to be an issue.
&gt;                   
&gt; Geomean of preferred means:
&gt;    &lt;scaled-result&gt;                   13.4499+-0.1172     ?     13.5012+-0.1431        ? might be 1.0038x slower

Aren&apos;t many the string-test showing as slower?
Just an issue for that particular run?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715003</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-09-07 14:46:14 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Performance results.  Doesn&apos;t seem to be an issue.
&gt; &gt;                   
&gt; &gt; Geomean of preferred means:
&gt; &gt;    &lt;scaled-result&gt;                   13.4499+-0.1172     ?     13.5012+-0.1431        ? might be 1.0038x slower
&gt; 
&gt; Aren&apos;t many the string-test showing as slower?
&gt; Just an issue for that particular run?

The differences are all within the confidence interval, that&apos;s why I don&apos;t think there are any slowdowns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715027</commentid>
    <comment_count>9</comment_count>
      <attachid>162869</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-07 15:03:24 -0700</bug_when>
    <thetext>Comment on attachment 162869
Patch with changes for both exported find()&apos;s and reverseFind()

&gt; The differences are all within the confidence interval, that&apos;s why I don&apos;t think there are any slowdowns.

Fair enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715044</commentid>
    <comment_count>10</comment_count>
      <attachid>162869</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 15:25:01 -0700</bug_when>
    <thetext>Comment on attachment 162869
Patch with changes for both exported find()&apos;s and reverseFind()

Clearing flags on attachment: 162869

Committed r127928: &lt;http://trac.webkit.org/changeset/127928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715045</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 15:25:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162813</attachid>
            <date>2012-09-07 10:46:27 -0700</date>
            <delta_ts>2012-09-07 10:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>96125.patch</filename>
            <type>text/plain</type>
            <size>3236</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjc4ODYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTA3ICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0ltcGw6OmZpbmQoU3RyaW5nSW1wbCop
IGRvZXNuJ3QgaGFuZGxlIGNhc2VzIHdoZXJlIHNlYXJjaCBhbmQgbWF0Y2ggc3RyaW5ncyBhcmUg
ZGlmZmVyZW50IGJpdG5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmaW5kSW5uZXIgdG8gYmUgdGVtcGxhdGVkIG9uIGJvdGggc2VhcmNo
IGFuZCBtYXRjaCBjaGFyYWN0ZXIgdHlwZXMuICBDaGFuZ2VkCisJZmluZCgpIHRvIHVzZSBhbGwg
Zm91ciBiaXRuZXNzIGNvbWJpbmF0aW9ucyBvZiBmaW5kSW5uZXIoKS4KKworICAgICAgICAqIHd0
Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpmaW5kSW5uZXIpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsOjpmaW5kKToKKwogMjAxMi0wOS0wNyAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0lOXSBEZXByZWNhdGUgU3RyaW5n
ICs9IG9wZXJhdG9yCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHJldmlzaW9u
IDEyNzg2OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk0OSwxMSArOTQ5LDExIEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kSWdub3Jp
bmdDYXNlKGNvbnMKICAgICByZXR1cm4gaW5kZXggKyBpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgQ2hhclR5cGU+Ci1BTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElubmVyKGNvbnN0
IENoYXJUeXBlKiBzZWFyY2hDaGFyYWN0ZXJzLCBjb25zdCBDaGFyVHlwZSogbWF0Y2hDaGFyYWN0
ZXJzLCB1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgc2VhcmNoTGVuZ3RoLCB1bnNpZ25lZCBtYXRj
aExlbmd0aCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBTZWFyY2hDaGFyYWN0ZXJUeXBlLCB0eXBlbmFt
ZSBNYXRjaENoYXJhY3RlclR5cGU+CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElu
bmVyKGNvbnN0IFNlYXJjaENoYXJhY3RlclR5cGUqIHNlYXJjaENoYXJhY3RlcnMsIGNvbnN0IE1h
dGNoQ2hhcmFjdGVyVHlwZSogbWF0Y2hDaGFyYWN0ZXJzLCB1bnNpZ25lZCBpbmRleCwgdW5zaWdu
ZWQgc2VhcmNoTGVuZ3RoLCB1bnNpZ25lZCBtYXRjaExlbmd0aCkKIHsKICAgICAvLyBPcHRpbWl6
YXRpb246IGtlZXAgYSBydW5uaW5nIGhhc2ggb2YgdGhlIHN0cmluZ3MsCi0gICAgLy8gb25seSBj
YWxsIG1lbWNtcCBpZiB0aGUgaGFzaGVzIG1hdGNoLgorICAgIC8vIG9ubHkgY2FsbCBlcXVhbCgp
IGlmIHRoZSBoYXNoZXMgbWF0Y2guCiAKICAgICAvLyBkZWx0YSBpcyB0aGUgbnVtYmVyIG9mIGFk
ZGl0aW9uYWwgdGltZXMgdG8gdGVzdDsgZGVsdGEgPT0gMCBtZWFucyB0ZXN0IG9ubHkgb25jZS4K
ICAgICB1bnNpZ25lZCBkZWx0YSA9IHNlYXJjaExlbmd0aCAtIG1hdGNoTGVuZ3RoOwpAQCAtOTY4
LDcgKzk2OCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHNpemVfdCBmaW5kSW5uZXIoY28KIAog
ICAgIHVuc2lnbmVkIGkgPSAwOwogICAgIC8vIGtlZXAgbG9vcGluZyB1bnRpbCB3ZSBtYXRjaAot
ICAgIHdoaWxlIChzZWFyY2hIYXNoICE9IG1hdGNoSGFzaCB8fCBtZW1jbXAoc2VhcmNoQ2hhcmFj
dGVycyArIGksIG1hdGNoQ2hhcmFjdGVycywgbWF0Y2hMZW5ndGggKiBzaXplb2YoQ2hhclR5cGUp
KSkgeworICAgIHdoaWxlIChzZWFyY2hIYXNoICE9IG1hdGNoSGFzaCB8fCAhZXF1YWwoc2VhcmNo
Q2hhcmFjdGVycyArIGksIG1hdGNoQ2hhcmFjdGVycywgbWF0Y2hMZW5ndGgpKSB7CiAgICAgICAg
IGlmIChpID09IGRlbHRhKQogICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogICAgICAgICBz
ZWFyY2hIYXNoICs9IHNlYXJjaENoYXJhY3RlcnNbaSArIG1hdGNoTGVuZ3RoXTsKQEAgLTEwMDUs
MTAgKzEwMDUsMTYgQEAgc2l6ZV90IFN0cmluZ0ltcGw6OmZpbmQoU3RyaW5nSW1wbCogbWF0Ywog
ICAgIGlmIChVTkxJS0VMWSghbWF0Y2hMZW5ndGgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IGlmIChpczhCaXQoKSAmJiBtYXRjaFN0cmluZy0+aXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBm
aW5kSW5uZXIoY2hhcmFjdGVyczgoKSwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnM4KCksIDAsIGxl
bmd0aCgpLCBtYXRjaExlbmd0aCk7CisgICAgaWYgKGlzOEJpdCgpKSB7CisgICAgICAgIGlmICht
YXRjaFN0cmluZy0+aXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gZmluZElubmVyKGNoYXJh
Y3RlcnM4KCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgpLCAwLCBsZW5ndGgoKSwgbWF0Y2hM
ZW5ndGgpOworICAgICAgICByZXR1cm4gZmluZElubmVyKGNoYXJhY3RlcnM4KCksIG1hdGNoU3Ry
aW5nLT5jaGFyYWN0ZXJzMTYoKSwgMCwgbGVuZ3RoKCksIG1hdGNoTGVuZ3RoKTsKKyAgICB9CisK
KyAgICBpZiAobWF0Y2hTdHJpbmctPmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZmluZElubmVy
KGNoYXJhY3RlcnMxNigpLCBtYXRjaFN0cmluZy0+Y2hhcmFjdGVyczgoKSwgMCwgbGVuZ3RoKCks
IG1hdGNoTGVuZ3RoKTsKIAotICAgIHJldHVybiBmaW5kSW5uZXIoY2hhcmFjdGVycygpLCBtYXRj
aFN0cmluZy0+Y2hhcmFjdGVycygpLCAwLCBsZW5ndGgoKSwgbWF0Y2hMZW5ndGgpOworICAgIHJl
dHVybiBmaW5kSW5uZXIoY2hhcmFjdGVyczE2KCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzMTYo
KSwgMCwgbGVuZ3RoKCksIG1hdGNoTGVuZ3RoKTsKIH0KIAogc2l6ZV90IFN0cmluZ0ltcGw6OmZp
bmQoU3RyaW5nSW1wbCogbWF0Y2hTdHJpbmcsIHVuc2lnbmVkIGluZGV4KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162818</attachid>
            <date>2012-09-07 10:54:34 -0700</date>
            <delta_ts>2012-09-07 14:20:28 -0700</delta_ts>
            <desc>Patch with Tab character removed from ChangeLog</desc>
            <filename>96125-2.patch</filename>
            <type>text/plain</type>
            <size>3243</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjc4ODYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTA3ICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0ltcGw6OmZpbmQoU3RyaW5nSW1wbCop
IGRvZXNuJ3QgaGFuZGxlIGNhc2VzIHdoZXJlIHNlYXJjaCBhbmQgbWF0Y2ggc3RyaW5ncyBhcmUg
ZGlmZmVyZW50IGJpdG5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmaW5kSW5uZXIgdG8gYmUgdGVtcGxhdGVkIG9uIGJvdGggc2VhcmNo
IGFuZCBtYXRjaCBjaGFyYWN0ZXIgdHlwZXMuICBDaGFuZ2VkCisgICAgICAgIGZpbmQoKSB0byB1
c2UgYWxsIGZvdXIgYml0bmVzcyBjb21iaW5hdGlvbnMgb2YgZmluZElubmVyKCkuCisKKyAgICAg
ICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6ZmluZElubmVyKToK
KyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6ZmluZCk6CisKIDIwMTItMDktMDcgIFBhdHJpY2sg
R2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dJTl0gRGVwcmVjYXRl
IFN0cmluZyArPSBvcGVyYXRvcgpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCShy
ZXZpc2lvbiAxMjc4NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05NDksMTEgKzk0OSwxMSBAQCBzaXplX3QgU3RyaW5nSW1wbDo6Zmlu
ZElnbm9yaW5nQ2FzZShjb25zCiAgICAgcmV0dXJuIGluZGV4ICsgaTsKIH0KIAotdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgotQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90IGZpbmRJbm5l
cihjb25zdCBDaGFyVHlwZSogc2VhcmNoQ2hhcmFjdGVycywgY29uc3QgQ2hhclR5cGUqIG1hdGNo
Q2hhcmFjdGVycywgdW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIHNlYXJjaExlbmd0aCwgdW5zaWdu
ZWQgbWF0Y2hMZW5ndGgpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VhcmNoQ2hhcmFjdGVyVHlwZSwg
dHlwZW5hbWUgTWF0Y2hDaGFyYWN0ZXJUeXBlPgorQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90
IGZpbmRJbm5lcihjb25zdCBTZWFyY2hDaGFyYWN0ZXJUeXBlKiBzZWFyY2hDaGFyYWN0ZXJzLCBj
b25zdCBNYXRjaENoYXJhY3RlclR5cGUqIG1hdGNoQ2hhcmFjdGVycywgdW5zaWduZWQgaW5kZXgs
IHVuc2lnbmVkIHNlYXJjaExlbmd0aCwgdW5zaWduZWQgbWF0Y2hMZW5ndGgpCiB7CiAgICAgLy8g
T3B0aW1pemF0aW9uOiBrZWVwIGEgcnVubmluZyBoYXNoIG9mIHRoZSBzdHJpbmdzLAotICAgIC8v
IG9ubHkgY2FsbCBtZW1jbXAgaWYgdGhlIGhhc2hlcyBtYXRjaC4KKyAgICAvLyBvbmx5IGNhbGwg
ZXF1YWwoKSBpZiB0aGUgaGFzaGVzIG1hdGNoLgogCiAgICAgLy8gZGVsdGEgaXMgdGhlIG51bWJl
ciBvZiBhZGRpdGlvbmFsIHRpbWVzIHRvIHRlc3Q7IGRlbHRhID09IDAgbWVhbnMgdGVzdCBvbmx5
IG9uY2UuCiAgICAgdW5zaWduZWQgZGVsdGEgPSBzZWFyY2hMZW5ndGggLSBtYXRjaExlbmd0aDsK
QEAgLTk2OCw3ICs5NjgsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElubmVy
KGNvCiAKICAgICB1bnNpZ25lZCBpID0gMDsKICAgICAvLyBrZWVwIGxvb3BpbmcgdW50aWwgd2Ug
bWF0Y2gKLSAgICB3aGlsZSAoc2VhcmNoSGFzaCAhPSBtYXRjaEhhc2ggfHwgbWVtY21wKHNlYXJj
aENoYXJhY3RlcnMgKyBpLCBtYXRjaENoYXJhY3RlcnMsIG1hdGNoTGVuZ3RoICogc2l6ZW9mKENo
YXJUeXBlKSkpIHsKKyAgICB3aGlsZSAoc2VhcmNoSGFzaCAhPSBtYXRjaEhhc2ggfHwgIWVxdWFs
KHNlYXJjaENoYXJhY3RlcnMgKyBpLCBtYXRjaENoYXJhY3RlcnMsIG1hdGNoTGVuZ3RoKSkgewog
ICAgICAgICBpZiAoaSA9PSBkZWx0YSkKICAgICAgICAgICAgIHJldHVybiBub3RGb3VuZDsKICAg
ICAgICAgc2VhcmNoSGFzaCArPSBzZWFyY2hDaGFyYWN0ZXJzW2kgKyBtYXRjaExlbmd0aF07CkBA
IC0xMDA1LDEwICsxMDA1LDE2IEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKFN0cmluZ0ltcGwq
IG1hdGMKICAgICBpZiAoVU5MSUtFTFkoIW1hdGNoTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBpZiAoaXM4Qml0KCkgJiYgbWF0Y2hTdHJpbmctPmlzOEJpdCgpKQotICAgICAgICBy
ZXR1cm4gZmluZElubmVyKGNoYXJhY3RlcnM4KCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgp
LCAwLCBsZW5ndGgoKSwgbWF0Y2hMZW5ndGgpOworICAgIGlmIChpczhCaXQoKSkgeworICAgICAg
ICBpZiAobWF0Y2hTdHJpbmctPmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpbmRJbm5l
cihjaGFyYWN0ZXJzOCgpLCBtYXRjaFN0cmluZy0+Y2hhcmFjdGVyczgoKSwgMCwgbGVuZ3RoKCks
IG1hdGNoTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGZpbmRJbm5lcihjaGFyYWN0ZXJzOCgpLCBt
YXRjaFN0cmluZy0+Y2hhcmFjdGVyczE2KCksIDAsIGxlbmd0aCgpLCBtYXRjaExlbmd0aCk7Cisg
ICAgfQorCisgICAgaWYgKG1hdGNoU3RyaW5nLT5pczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGZp
bmRJbm5lcihjaGFyYWN0ZXJzMTYoKSwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnM4KCksIDAsIGxl
bmd0aCgpLCBtYXRjaExlbmd0aCk7CiAKLSAgICByZXR1cm4gZmluZElubmVyKGNoYXJhY3RlcnMo
KSwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnMoKSwgMCwgbGVuZ3RoKCksIG1hdGNoTGVuZ3RoKTsK
KyAgICByZXR1cm4gZmluZElubmVyKGNoYXJhY3RlcnMxNigpLCBtYXRjaFN0cmluZy0+Y2hhcmFj
dGVyczE2KCksIDAsIGxlbmd0aCgpLCBtYXRjaExlbmd0aCk7CiB9CiAKIHNpemVfdCBTdHJpbmdJ
bXBsOjpmaW5kKFN0cmluZ0ltcGwqIG1hdGNoU3RyaW5nLCB1bnNpZ25lZCBpbmRleCkK
</data>
<flag name="review"
          id="174048"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162869</attachid>
            <date>2012-09-07 14:20:28 -0700</date>
            <delta_ts>2012-09-07 15:25:01 -0700</delta_ts>
            <desc>Patch with changes for both exported find()&apos;s and reverseFind()</desc>
            <filename>96125-3.patch</filename>
            <type>text/plain</type>
            <size>7132</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjc5MTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTA3ICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0ltcGw6OmZpbmQoU3RyaW5nSW1wbCop
IGRvZXNuJ3QgaGFuZGxlIGNhc2VzIHdoZXJlIHNlYXJjaCBhbmQgbWF0Y2ggc3RyaW5ncyBhcmUg
ZGlmZmVyZW50IGJpdG5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmaW5kSW5uZXIgYW5kIHJldmVyc2VGaW5kSW5uZXIgdG8gYmUgdGVt
cGxhdGVkIG9uIGJvdGggc2VhcmNoIGFuZCBtYXRjaCBjaGFyYWN0ZXIgdHlwZXMuCisgICAgICAg
IENoYW5nZWQgYm90aCBmaW5kJ3MgYW5kIHJldmVyc2VGaW5kIHRvIHVzZSBhbGwgZm91ciBiaXRu
ZXNzIGNvbWJpbmF0aW9ucyBvZiBmaW5kSW5uZXIgYW5kCisgICAgICAgIHJldmVyc2VGaW5kSW5u
ZXIuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6
ZmluZElubmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6ZmluZCk6CisgICAgICAgIChX
VEY6OnJldmVyc2VGaW5kSW5uZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZXZlcnNl
RmluZCk6CisKIDIwMTItMDktMDcgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+
CiAKICAgICAgICAgZXF1YWxJZ25vcmluZ0Nhc2Ugb2YgdHdvIFN0cmluZ0ltcGxzIGRvZXNuJ3Qg
aGFuZGxlIDggYml0IHN0cmluZ3MKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAko
cmV2aXNpb24gMTI3ODg4KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODkwLDcgKzg5MCw3IEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5k
KGNvbnN0IExDaGFyKiBtYXQKICAgICBjb25zdCBVQ2hhciogc2VhcmNoQ2hhcmFjdGVycyA9IGNo
YXJhY3RlcnMoKSArIGluZGV4OwogCiAgICAgLy8gT3B0aW1pemF0aW9uIDI6IGtlZXAgYSBydW5u
aW5nIGhhc2ggb2YgdGhlIHN0cmluZ3MsCi0gICAgLy8gb25seSBjYWxsIG1lbWNtcCBpZiB0aGUg
aGFzaGVzIG1hdGNoLgorICAgIC8vIG9ubHkgY2FsbCBlcXVhbCBpZiB0aGUgaGFzaGVzIG1hdGNo
LgogICAgIHVuc2lnbmVkIHNlYXJjaEhhc2ggPSAwOwogICAgIHVuc2lnbmVkIG1hdGNoSGFzaCA9
IDA7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1hdGNoTGVuZ3RoOyArK2kpIHsKQEAg
LTk0MywxMSArOTQzLDExIEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kSWdub3JpbmdDYXNlKGNv
bnMKICAgICByZXR1cm4gaW5kZXggKyBpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5
cGU+Ci1BTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElubmVyKGNvbnN0IENoYXJUeXBl
KiBzZWFyY2hDaGFyYWN0ZXJzLCBjb25zdCBDaGFyVHlwZSogbWF0Y2hDaGFyYWN0ZXJzLCB1bnNp
Z25lZCBpbmRleCwgdW5zaWduZWQgc2VhcmNoTGVuZ3RoLCB1bnNpZ25lZCBtYXRjaExlbmd0aCkK
K3RlbXBsYXRlIDx0eXBlbmFtZSBTZWFyY2hDaGFyYWN0ZXJUeXBlLCB0eXBlbmFtZSBNYXRjaENo
YXJhY3RlclR5cGU+CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElubmVyKGNvbnN0
IFNlYXJjaENoYXJhY3RlclR5cGUqIHNlYXJjaENoYXJhY3RlcnMsIGNvbnN0IE1hdGNoQ2hhcmFj
dGVyVHlwZSogbWF0Y2hDaGFyYWN0ZXJzLCB1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgc2VhcmNo
TGVuZ3RoLCB1bnNpZ25lZCBtYXRjaExlbmd0aCkKIHsKICAgICAvLyBPcHRpbWl6YXRpb246IGtl
ZXAgYSBydW5uaW5nIGhhc2ggb2YgdGhlIHN0cmluZ3MsCi0gICAgLy8gb25seSBjYWxsIG1lbWNt
cCBpZiB0aGUgaGFzaGVzIG1hdGNoLgorICAgIC8vIG9ubHkgY2FsbCBlcXVhbCgpIGlmIHRoZSBo
YXNoZXMgbWF0Y2guCiAKICAgICAvLyBkZWx0YSBpcyB0aGUgbnVtYmVyIG9mIGFkZGl0aW9uYWwg
dGltZXMgdG8gdGVzdDsgZGVsdGEgPT0gMCBtZWFucyB0ZXN0IG9ubHkgb25jZS4KICAgICB1bnNp
Z25lZCBkZWx0YSA9IHNlYXJjaExlbmd0aCAtIG1hdGNoTGVuZ3RoOwpAQCAtOTYyLDcgKzk2Miw3
IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHNpemVfdCBmaW5kSW5uZXIoY28KIAogICAgIHVuc2ln
bmVkIGkgPSAwOwogICAgIC8vIGtlZXAgbG9vcGluZyB1bnRpbCB3ZSBtYXRjaAotICAgIHdoaWxl
IChzZWFyY2hIYXNoICE9IG1hdGNoSGFzaCB8fCBtZW1jbXAoc2VhcmNoQ2hhcmFjdGVycyArIGks
IG1hdGNoQ2hhcmFjdGVycywgbWF0Y2hMZW5ndGggKiBzaXplb2YoQ2hhclR5cGUpKSkgeworICAg
IHdoaWxlIChzZWFyY2hIYXNoICE9IG1hdGNoSGFzaCB8fCAhZXF1YWwoc2VhcmNoQ2hhcmFjdGVy
cyArIGksIG1hdGNoQ2hhcmFjdGVycywgbWF0Y2hMZW5ndGgpKSB7CiAgICAgICAgIGlmIChpID09
IGRlbHRhKQogICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogICAgICAgICBzZWFyY2hIYXNo
ICs9IHNlYXJjaENoYXJhY3RlcnNbaSArIG1hdGNoTGVuZ3RoXTsKQEAgLTk5OSwxMCArOTk5LDE2
IEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKFN0cmluZ0ltcGwqIG1hdGMKICAgICBpZiAoVU5M
SUtFTFkoIW1hdGNoTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoaXM4Qml0
KCkgJiYgbWF0Y2hTdHJpbmctPmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gZmluZElubmVyKGNo
YXJhY3RlcnM4KCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgpLCAwLCBsZW5ndGgoKSwgbWF0
Y2hMZW5ndGgpOworICAgIGlmIChpczhCaXQoKSkgeworICAgICAgICBpZiAobWF0Y2hTdHJpbmct
PmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpbmRJbm5lcihjaGFyYWN0ZXJzOCgpLCBt
YXRjaFN0cmluZy0+Y2hhcmFjdGVyczgoKSwgMCwgbGVuZ3RoKCksIG1hdGNoTGVuZ3RoKTsKKyAg
ICAgICAgcmV0dXJuIGZpbmRJbm5lcihjaGFyYWN0ZXJzOCgpLCBtYXRjaFN0cmluZy0+Y2hhcmFj
dGVyczE2KCksIDAsIGxlbmd0aCgpLCBtYXRjaExlbmd0aCk7CisgICAgfQogCi0gICAgcmV0dXJu
IGZpbmRJbm5lcihjaGFyYWN0ZXJzKCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzKCksIDAsIGxl
bmd0aCgpLCBtYXRjaExlbmd0aCk7CisgICAgaWYgKG1hdGNoU3RyaW5nLT5pczhCaXQoKSkKKyAg
ICAgICAgcmV0dXJuIGZpbmRJbm5lcihjaGFyYWN0ZXJzMTYoKSwgbWF0Y2hTdHJpbmctPmNoYXJh
Y3RlcnM4KCksIDAsIGxlbmd0aCgpLCBtYXRjaExlbmd0aCk7CisKKyAgICByZXR1cm4gZmluZElu
bmVyKGNoYXJhY3RlcnMxNigpLCBtYXRjaFN0cmluZy0+Y2hhcmFjdGVyczE2KCksIDAsIGxlbmd0
aCgpLCBtYXRjaExlbmd0aCk7CiB9CiAKIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKFN0cmluZ0lt
cGwqIG1hdGNoU3RyaW5nLCB1bnNpZ25lZCBpbmRleCkKQEAgLTEwMzUsMTAgKzEwNDEsMTYgQEAg
c2l6ZV90IFN0cmluZ0ltcGw6OmZpbmQoU3RyaW5nSW1wbCogbWF0YwogICAgIGlmIChtYXRjaExl
bmd0aCA+IHNlYXJjaExlbmd0aCkKICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCi0gICAgaWYg
KGlzOEJpdCgpICYmIG1hdGNoU3RyaW5nLT5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGZpbmRJ
bm5lcihjaGFyYWN0ZXJzOCgpICsgaW5kZXgsIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgpLCBp
bmRleCwgc2VhcmNoTGVuZ3RoLCBtYXRjaExlbmd0aCk7CisgICAgaWYgKGlzOEJpdCgpKSB7Cisg
ICAgICAgIGlmIChtYXRjaFN0cmluZy0+aXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gZmlu
ZElubmVyKGNoYXJhY3RlcnM4KCkgKyBpbmRleCwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnM4KCks
IGluZGV4LCBzZWFyY2hMZW5ndGgsIG1hdGNoTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGZpbmRJ
bm5lcihjaGFyYWN0ZXJzOCgpICsgaW5kZXgsIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzMTYoKSwg
aW5kZXgsIHNlYXJjaExlbmd0aCwgbWF0Y2hMZW5ndGgpOworICAgIH0KKworICAgIGlmIChtYXRj
aFN0cmluZy0+aXM4Qml0KCkpCisgICAgICAgIHJldHVybiBmaW5kSW5uZXIoY2hhcmFjdGVyczE2
KCkgKyBpbmRleCwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnM4KCksIGluZGV4LCBzZWFyY2hMZW5n
dGgsIG1hdGNoTGVuZ3RoKTsKIAotICAgIHJldHVybiBmaW5kSW5uZXIoY2hhcmFjdGVycygpICsg
aW5kZXgsIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzKCksIGluZGV4LCBzZWFyY2hMZW5ndGgsIG1h
dGNoTGVuZ3RoKTsKKyAgICByZXR1cm4gZmluZElubmVyKGNoYXJhY3RlcnMxNigpICsgaW5kZXgs
IG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzMTYoKSwgaW5kZXgsIHNlYXJjaExlbmd0aCwgbWF0Y2hM
ZW5ndGgpOwogfQogCiBzaXplX3QgU3RyaW5nSW1wbDo6ZmluZElnbm9yaW5nQ2FzZShTdHJpbmdJ
bXBsKiBtYXRjaFN0cmluZywgdW5zaWduZWQgaW5kZXgpCkBAIC0xMDc5LDExICsxMDkxLDExIEBA
IHNpemVfdCBTdHJpbmdJbXBsOjpyZXZlcnNlRmluZChVQ2hhciBjLCAKICAgICByZXR1cm4gV1RG
OjpyZXZlcnNlRmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIGMsIGluZGV4KTsKIH0KIAot
dGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90
IHJldmVyc2VGaW5kSW5uZXIoY29uc3QgQ2hhclR5cGUqIHNlYXJjaENoYXJhY3RlcnMsIGNvbnN0
IENoYXJUeXBlKiBtYXRjaENoYXJhY3RlcnMsIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBsZW5n
dGgsIHVuc2lnbmVkIG1hdGNoTGVuZ3RoKQordGVtcGxhdGUgPHR5cGVuYW1lIFNlYXJjaENoYXJh
Y3RlclR5cGUsIHR5cGVuYW1lIE1hdGNoQ2hhcmFjdGVyVHlwZT4KK0FMV0FZU19JTkxJTkUgc3Rh
dGljIHNpemVfdCByZXZlcnNlRmluZElubmVyKGNvbnN0IFNlYXJjaENoYXJhY3RlclR5cGUqIHNl
YXJjaENoYXJhY3RlcnMsIGNvbnN0IE1hdGNoQ2hhcmFjdGVyVHlwZSogbWF0Y2hDaGFyYWN0ZXJz
LCB1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBtYXRjaExlbmd0aCkK
IHsKICAgICAvLyBPcHRpbWl6YXRpb246IGtlZXAgYSBydW5uaW5nIGhhc2ggb2YgdGhlIHN0cmlu
Z3MsCi0gICAgLy8gb25seSBjYWxsIG1lbWNtcCBpZiB0aGUgaGFzaGVzIG1hdGNoLgorICAgIC8v
IG9ubHkgY2FsbCBlcXVhbCBpZiB0aGUgaGFzaGVzIG1hdGNoLgogCiAgICAgLy8gZGVsdGEgaXMg
dGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIHRpbWVzIHRvIHRlc3Q7IGRlbHRhID09IDAgbWVhbnMg
dGVzdCBvbmx5IG9uY2UuCiAgICAgdW5zaWduZWQgZGVsdGEgPSBtaW4oaW5kZXgsIGxlbmd0aCAt
IG1hdGNoTGVuZ3RoKTsKQEAgLTEwOTYsNyArMTEwOCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IHNpemVfdCByZXZlcnNlRmluZEkKICAgICB9CiAKICAgICAvLyBrZWVwIGxvb3BpbmcgdW50aWwg
d2UgbWF0Y2gKLSAgICB3aGlsZSAoc2VhcmNoSGFzaCAhPSBtYXRjaEhhc2ggfHwgbWVtY21wKHNl
YXJjaENoYXJhY3RlcnMgKyBkZWx0YSwgbWF0Y2hDaGFyYWN0ZXJzLCBtYXRjaExlbmd0aCAqIHNp
emVvZihDaGFyVHlwZSkpKSB7CisgICAgd2hpbGUgKHNlYXJjaEhhc2ggIT0gbWF0Y2hIYXNoIHx8
ICFlcXVhbChzZWFyY2hDaGFyYWN0ZXJzICsgZGVsdGEsIG1hdGNoQ2hhcmFjdGVycywgbWF0Y2hM
ZW5ndGgpKSB7CiAgICAgICAgIGlmICghZGVsdGEpCiAgICAgICAgICAgICByZXR1cm4gbm90Rm91
bmQ7CiAgICAgICAgIGRlbHRhLS07CkBAIC0xMTI3LDEwICsxMTM5LDE2IEBAIHNpemVfdCBTdHJp
bmdJbXBsOjpyZXZlcnNlRmluZChTdHJpbmdJbXAKICAgICBpZiAobWF0Y2hMZW5ndGggPiBvdXJM
ZW5ndGgpCiAgICAgICAgIHJldHVybiBub3RGb3VuZDsKIAotICAgIGlmIChpczhCaXQoKSAmJiBt
YXRjaFN0cmluZy0+aXM4Qml0KCkpCi0gICAgICAgIHJldHVybiByZXZlcnNlRmluZElubmVyKGNo
YXJhY3RlcnM4KCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgpLCBpbmRleCwgb3VyTGVuZ3Ro
LCBtYXRjaExlbmd0aCk7CisgICAgaWYgKGlzOEJpdCgpKSB7CisgICAgICAgIGlmIChtYXRjaFN0
cmluZy0+aXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gcmV2ZXJzZUZpbmRJbm5lcihjaGFy
YWN0ZXJzOCgpLCBtYXRjaFN0cmluZy0+Y2hhcmFjdGVyczgoKSwgaW5kZXgsIG91ckxlbmd0aCwg
bWF0Y2hMZW5ndGgpOworICAgICAgICByZXR1cm4gcmV2ZXJzZUZpbmRJbm5lcihjaGFyYWN0ZXJz
OCgpLCBtYXRjaFN0cmluZy0+Y2hhcmFjdGVyczE2KCksIGluZGV4LCBvdXJMZW5ndGgsIG1hdGNo
TGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgaWYgKG1hdGNoU3RyaW5nLT5pczhCaXQoKSkKKyAg
ICAgICAgcmV0dXJuIHJldmVyc2VGaW5kSW5uZXIoY2hhcmFjdGVyczE2KCksIG1hdGNoU3RyaW5n
LT5jaGFyYWN0ZXJzOCgpLCBpbmRleCwgb3VyTGVuZ3RoLCBtYXRjaExlbmd0aCk7CiAKLSAgICBy
ZXR1cm4gcmV2ZXJzZUZpbmRJbm5lcihjaGFyYWN0ZXJzKCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0
ZXJzKCksIGluZGV4LCBvdXJMZW5ndGgsIG1hdGNoTGVuZ3RoKTsKKyAgICByZXR1cm4gcmV2ZXJz
ZUZpbmRJbm5lcihjaGFyYWN0ZXJzMTYoKSwgbWF0Y2hTdHJpbmctPmNoYXJhY3RlcnMxNigpLCBp
bmRleCwgb3VyTGVuZ3RoLCBtYXRjaExlbmd0aCk7CiB9CiAKIHNpemVfdCBTdHJpbmdJbXBsOjpy
ZXZlcnNlRmluZElnbm9yaW5nQ2FzZShTdHJpbmdJbXBsKiBtYXRjaFN0cmluZywgdW5zaWduZWQg
aW5kZXgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>