<?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>50237</bug_id>
          
          <creation_ts>2010-11-30 06:53:17 -0800</creation_ts>
          <short_desc>[Gtk] Implement layoutTestController.findString</short_desc>
          <delta_ts>2011-02-07 17:23:49 -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>Tools / Tests</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>Gtk, LayoutTestFailure, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>joone.hur</cc>
    
    <cc>joone</cc>
    
    <cc>mitz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>315008</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-30 06:53:17 -0800</bug_when>
    <thetext>r72887 added layoutTestController.findString and r72889 added the one test that uses it to the Skipped list. We should implement layoutTestController.findString so that we can run that test (and any future tests that are added that use it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345497</commentid>
    <comment_count>1</comment_count>
      <attachid>81221</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-02-04 08:28:01 -0800</bug_when>
    <thetext>Created attachment 81221
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345502</commentid>
    <comment_count>2</comment_count>
      <attachid>81221</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-04 08:34:11 -0800</bug_when>
    <thetext>Comment on attachment 81221
Proposed Patch

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

Thanks for implementing this! I think in this case, the next step is to ensure that this functionality is part of the public API and then remove it from DumpRenderTreeSupportGtk. This patch also needs to unskip tests which use this functionality.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:548
&gt; +/**
&gt; + * findString:
&gt; + * @webView: a #WebKitWebView
&gt; + * @context: a JavaScript context 
&gt; + * @targetString: a string to look for
&gt; + * @optionsArray: an arrary containing search options
&gt; + *
&gt; + * Return value: TRUE if the string was found 
&gt; + */

I know that we&apos;ve added documentation like this to the file before, but I think we can just remove this. It doesn&apos;t add anything because it just restates the argument names.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:577
&gt; +    JSRetainPtr&lt;JSStringRef&gt; lengthPropertyName(Adopt, JSStringCreateWithUTF8CString(&quot;length&quot;));
&gt; +    JSValueRef lengthValue = JSObjectGetProperty(context, optionsArray, lengthPropertyName.get(), 0); 
&gt; +    if (!JSValueIsNumber(context, lengthValue))
&gt; +        return false;
&gt; +
&gt; +    WebCore::FindOptions options = 0;
&gt; +    size_t length = static_cast&lt;size_t&gt;(JSValueToNumber(context, lengthValue, 0));
&gt; +    for (size_t i = 0; i &lt; length; ++i) {
&gt; +        JSValueRef value = JSObjectGetPropertyAtIndex(context, optionsArray, i, 0); 
&gt; +        if (!JSValueIsString(context, value))
&gt; +            continue;
&gt; +                
&gt; +        JSRetainPtr&lt;JSStringRef&gt; optionName(Adopt, JSValueToStringCopy(context, value, 0));
&gt; +
&gt; +        if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;CaseInsensitive&quot;))
&gt; +            options |= WebCore::CaseInsensitive;
&gt; +        else if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;AtWordStarts&quot;))
&gt; +            options |= WebCore::AtWordStarts;
&gt; +        else if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;TreatMedialCapitalAsWordStart&quot;))
&gt; +            options |= WebCore::TreatMedialCapitalAsWordStart;
&gt; +        else if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;Backwards&quot;))
&gt; +            options |= WebCore::Backwards;
&gt; +        else if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;WrapAround&quot;))
&gt; +            options |= WebCore::WrapAround;
&gt; +        else if (JSStringIsEqualToUTF8CString(optionName.get(), &quot;StartInSelection&quot;))
&gt; +            options |= WebCore::StartInSelection;
&gt; +    }

We shouldn&apos;t pass the JSC objects to DumpRenderSupportGtk unless we are forced to. This is an implementation detail that DRTSupport shouldn&apos;t need to know. Instead parse the values in LayoutTestController and use an enum defined in DRTSupportGtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346046</commentid>
    <comment_count>3</comment_count>
      <attachid>81345</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-02-04 20:42:14 -0800</bug_when>
    <thetext>Created attachment 81345
Proposed Patch2

Yes, the current search API needs to be improved with the new search feature of WebCore.
https://bugs.webkit.org/show_bug.cgi?id=16624
https://bugs.webkit.org/show_bug.cgi?id=16584

Thanks, Martin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346163</commentid>
    <comment_count>4</comment_count>
      <attachid>81345</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-05 10:38:23 -0800</bug_when>
    <thetext>Comment on attachment 81345
Proposed Patch2

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

Awesome. Please consider one small change.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h:39
&gt; +enum {
&gt; +    FindOptionsCaseInsensitive = 1 &lt;&lt; 0,
&gt; +    FindOptionsAtWordStarts = 1 &lt;&lt; 1,
&gt; +    FindOptionsTreatMedialCapitalAsWordStart = 1 &lt;&lt; 2,
&gt; +    FindOptionsBackwards = 1 &lt;&lt; 3,
&gt; +    FindOptionsWrapAround = 1 &lt;&lt; 4,
&gt; +    FindOptionsStartInSelection = 1 &lt;&lt; 5
&gt; +};

You should use something like COMPILE_ASSERT_MATCHING_ENUM from the src/WebKit/chromium source to ensure that these are equivalent to their WebCore counterparts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346264</commentid>
    <comment_count>5</comment_count>
      <attachid>81397</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-02-06 05:22:57 -0800</bug_when>
    <thetext>Created attachment 81397
Proposed Patch3

I have added AssertMatchingEnums.cpp like Chromium as Martin suggested.
It could be used to assert that various WebKit API enum values continue matching WebCore defined enum values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346267</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-06 05:25:42 -0800</bug_when>
    <thetext>Attachment 81397 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp:24:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 8 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>346589</commentid>
    <comment_count>7</comment_count>
      <attachid>81397</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-07 08:09:10 -0800</bug_when>
    <thetext>Comment on attachment 81397
Proposed Patch3

Great! Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346969</commentid>
    <comment_count>8</comment_count>
      <attachid>81397</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-07 17:23:44 -0800</bug_when>
    <thetext>Comment on attachment 81397
Proposed Patch3

Clearing flags on attachment: 81397

Committed r77868: &lt;http://trac.webkit.org/changeset/77868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346970</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-07 17:23:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81221</attachid>
            <date>2011-02-04 08:28:01 -0800</date>
            <delta_ts>2011-02-04 20:42:14 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>findString.patch</filename>
            <type>text/plain</type>
            <size>7308</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MGMyMjBkLi5hZmY2MzMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MDQgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gSW1wbGVtZW50IGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMjM3CisKKyAgICAgICAgVW5za2lwIGVkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDogVW5za2lwIGZpbmRTdHJpbmcgdGVzdC4KKwogMjAxMS0wMi0wMyAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0
ZWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBjMDIzMmZkLi5hOTU5ZTUzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDU3NSw5ICs0NTc1LDYgQEAgZmFzdC90ZXh0L2xh
cmdlLXRleHQtY29tcG9zZWQtY2hhci1kb3MuaHRtbAogIyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdCBub3QgaW1wbGVtZW50ZWQgZm9yIGd0awogcGx1Z2lucy9wbHVnaW4tZG9j
dW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAKLSMgTWlzc2luZyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCkgaHR0cDovL3dlYmtpdC5vcmcvYi81MDIzNwotZWRp
dGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmcuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
YmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IGQyNmM5MjkuLjcyNTMzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0wMi0wNCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBJbXBsZW1lbnQg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzcKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oOgorCiAyMDExLTAyLTAzICBBZGFtIExhbmdsZXkgIDxhZ2xAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAppbmRleCA2ZjMxODg3Li40OTczNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAo
QykgMjAxMCBKb29uZSBIdXIgPGpvb25lQGtsZHAub3JnPgogICogIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAx
MSBDb2xsYWJvcmEgTHRkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNiArMzksNyBAQAog
I2luY2x1ZGUgIkpTRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpT
Tm9kZUxpc3QuaCIKKyNpbmNsdWRlICJKU09iamVjdFJlZi5oIgogI2luY2x1ZGUgIkpTVmFsdWUu
aCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtNTMs
NiArNTUsOCBAQAogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3
ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50RXh0ZW5zaW9ucy5oIgpAQCAtNTMyLDMgKzUzNiw0NiBAQCBib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6d2Via2l0V2ViRnJhbWVTZWxlY3Rpb25IYXNTcGVsbGluZ01hcmtlcihX
ZWJLaXRXZQogCiAgICAgcmV0dXJuIGNvcmUoZnJhbWUpLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3Rh
cnRIYXNTcGVsbGluZ01hcmtlckZvcihmcm9tLCBsZW5ndGgpOwogfQorCisvKioKKyAqIGZpbmRT
dHJpbmc6CisgKiBAd2ViVmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGNvbnRleHQ6IGEgSmF2
YVNjcmlwdCBjb250ZXh0IAorICogQHRhcmdldFN0cmluZzogYSBzdHJpbmcgdG8gbG9vayBmb3IK
KyAqIEBvcHRpb25zQXJyYXk6IGFuIGFycmFyeSBjb250YWluaW5nIHNlYXJjaCBvcHRpb25zCisg
KgorICogUmV0dXJuIHZhbHVlOiBUUlVFIGlmIHRoZSBzdHJpbmcgd2FzIGZvdW5kIAorICovCiti
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBKU0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgZ2NoYXIqIHRhcmdldFN0cmluZywg
SlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KQoreworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBsZW5ndGhQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJsZW5ndGgiKSk7CisgICAgSlNWYWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJv
cGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIDAp
OyAKKyAgICBpZiAoIUpTVmFsdWVJc051bWJlcihjb250ZXh0LCBsZW5ndGhWYWx1ZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIFdlYkNvcmU6OkZpbmRPcHRpb25zIG9wdGlvbnMgPSAw
OworICAgIHNpemVfdCBsZW5ndGggPSBzdGF0aWNfY2FzdDxzaXplX3Q+KEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBsZW5ndGhWYWx1ZSwgMCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiB2YWx1ZSA9IEpTT2JqZWN0R2V0UHJv
cGVydHlBdEluZGV4KGNvbnRleHQsIG9wdGlvbnNBcnJheSwgaSwgMCk7IAorICAgICAgICBpZiAo
IUpTVmFsdWVJc1N0cmluZyhjb250ZXh0LCB2YWx1ZSkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9wdGlv
bk5hbWUoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgdmFsdWUsIDApKTsKKwor
ICAgICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgp
LCAiQ2FzZUluc2Vuc2l0aXZlIikpCisgICAgICAgICAgICBvcHRpb25zIHw9IFdlYkNvcmU6OkNh
c2VJbnNlbnNpdGl2ZTsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhvcHRpb25OYW1lLmdldCgpLCAiQXRXb3JkU3RhcnRzIikpCisgICAgICAgICAgICBvcHRp
b25zIHw9IFdlYkNvcmU6OkF0V29yZFN0YXJ0czsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiVHJlYXRNZWRpYWxDYXBpdGFs
QXNXb3JkU3RhcnQiKSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gV2ViQ29yZTo6VHJlYXRNZWRp
YWxDYXBpdGFsQXNXb3JkU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkJhY2t3YXJkcyIpKQorICAgICAgICAgICAg
b3B0aW9ucyB8PSBXZWJDb3JlOjpCYWNrd2FyZHM7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIldyYXBBcm91bmQiKSkKKyAg
ICAgICAgICAgIG9wdGlvbnMgfD0gV2ViQ29yZTo6V3JhcEFyb3VuZDsKKyAgICAgICAgZWxzZSBp
ZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiU3RhcnRJ
blNlbGVjdGlvbiIpKQorICAgICAgICAgICAgb3B0aW9ucyB8PSBXZWJDb3JlOjpTdGFydEluU2Vs
ZWN0aW9uOworICAgIH0KKworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0
cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgb3B0aW9ucyk7Cit9CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggNjYzZjEzYS4uMzhhN2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
QEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAgIC8vIFdlYktpdFdlYlZpZXcKICAgICBzdGF0
aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdj
aGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbWFu
ZEVuYWJsZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsKKyAgICBzdGF0aWMg
Ym9vbCBmaW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBKU0NvbnRleHRSZWYsIGNvbnN0IGdjaGFy
KiwgSlNPYmplY3RSZWYpOwogCiAgICAgLy8gR0MKICAgICBzdGF0aWMgdm9pZCBnY0NvbGxlY3RK
YXZhc2NyaXB0T2JqZWN0cygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGNjZTgwY2IuLjE0YWZlZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMi0wNCAg
Sm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBJbXBsZW1lbnQgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZmluZFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTAyMzcKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZmluZFN0cmluZyk6CisKIDIwMTEtMDItMDMgIEFuZHJldyBXYXNvbiAgPHJlY3RhbG9naWNAcmVj
dGFsb2dpYy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKaW5kZXggYjYzYzI2OC4uMDdjODMxNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC01NDQsMTAgKzU0NCwxMyBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1l
LCBKU1N0cmluZ1JlZiB2YWx1ZSkKICAgICBnX2ZyZWUoY1ZhbHVlKTsKIH0KIAotYm9vbCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYgLyogY29udGV4dCAqLywg
SlNTdHJpbmdSZWYgLyogdGFyZ2V0ICovLCBKU09iamVjdFJlZiAvKiBvcHRpb25zQXJyYXkgKi8p
Citib29sIExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU1N0cmluZ1JlZiB0YXJnZXQsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSkKIHsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwor
ICAgIEdPd25QdHI8Z2NoYXI+IHRhcmdldFN0cmluZyhKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh0
YXJnZXQpKTsKKworICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJp
bmcod2ViVmlldywgY29udGV4dCwgdGFyZ2V0U3RyaW5nLmdldCgpLCBvcHRpb25zQXJyYXkpOwor
CiB9CiAKIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzQ29tbWFuZEVuYWJsZWQoSlNTdHJp
bmdSZWYgbmFtZSkK
</data>
<flag name="review"
          id="72777"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81345</attachid>
            <date>2011-02-04 20:42:14 -0800</date>
            <delta_ts>2011-02-06 05:22:57 -0800</delta_ts>
            <desc>Proposed Patch2</desc>
            <filename>findString.patch</filename>
            <type>text/plain</type>
            <size>7085</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZDYyMjNjLi4yMDBlZjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MDQgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gSW1wbGVtZW50IGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMjM3CisKKyAgICAgICAgVW5za2lwIGVkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDogVW5za2lwIGZpbmRTdHJpbmcgdGVzdC4KKwogMjAxMS0wMi0wNCAgSGlyb25vcmkgQm9ubyAg
PGhib25vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBlNDNjZDJlLi42MmI4MDNmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDU2Nyw5ICs0NTY3LDYgQEAgZmFzdC90ZXh0L2xhcmdlLXRl
eHQtY29tcG9zZWQtY2hhci1kb3MuaHRtbAogIyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNl
clNjcmlwdCBub3QgaW1wbGVtZW50ZWQgZm9yIGd0awogcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQt
bG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAKLSMgTWlzc2luZyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5maW5kU3RyaW5nKCkgaHR0cDovL3dlYmtpdC5vcmcvYi81MDIzNwotZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmcuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGEwMDEx
NjguLjQ5MmNjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wMi0w
NCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBJbXBsZW1lbnQgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzcKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oOgorCiAyMDExLTAyLTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAppbmRleCA2ZjMxODg3Li5jNmU2ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTUzMiwzICs1MzIsOSBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6d2Via2l0V2ViRnJhbWVTZWxlY3Rpb25IYXNTcGVsbGluZ01hcmtlcihXZWJLaXRXZQogCiAg
ICAgcmV0dXJuIGNvcmUoZnJhbWUpLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGlu
Z01hcmtlckZvcihmcm9tLCBsZW5ndGgpOwogfQorCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogdGFy
Z2V0U3RyaW5nLCBXZWJLaXRGaW5kT3B0aW9ucyBmaW5kT3B0aW9ucykKK3sKKyAgICByZXR1cm4g
Y29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRhcmdldFN0cmluZyks
IGZpbmRPcHRpb25zKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA2NjNmMTNhLi40
YzdiYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMjksNiArMjksMTYgQEAKICNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKK2VudW0geworICAgIEZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlID0gMSA8PCAwLAor
ICAgIEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzID0gMSA8PCAxLAorICAgIEZpbmRPcHRpb25zVHJl
YXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgPSAxIDw8IDIsCisgICAgRmluZE9wdGlvbnNCYWNr
d2FyZHMgPSAxIDw8IDMsCisgICAgRmluZE9wdGlvbnNXcmFwQXJvdW5kID0gMSA8PCA0LAorICAg
IEZpbmRPcHRpb25zU3RhcnRJblNlbGVjdGlvbiA9IDEgPDwgNQorfTsKK3R5cGVkZWYgdW5zaWdu
ZWQgV2ViS2l0RmluZE9wdGlvbnM7CisKIGNsYXNzIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayB7
CiAKIHB1YmxpYzoKQEAgLTcwLDYgKzgwLDcgQEAgcHVibGljOgogICAgIC8vIFdlYktpdFdlYlZp
ZXcKICAgICBzdGF0aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmll
dyosIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGlzQ29tbWFuZEVuYWJsZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsK
KyAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhcios
IFdlYktpdEZpbmRPcHRpb25zKTsKIAogICAgIC8vIEdDCiAgICAgc3RhdGljIHZvaWQgZ2NDb2xs
ZWN0SmF2YXNjcmlwdE9iamVjdHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAxZjA0MmNhLi5mMDE3ZmZmIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDIt
MDQgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gSW1wbGVtZW50IGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMjM3CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmZpbmRTdHJpbmcpOgorCiAyMDExLTAyLTA0ICBLdW5kdSBTdWNoaXNtaXRhICA8c3VjaGku
a3VuZHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcAppbmRleCBmZmEzMDk0Li4yNzdkOTlhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTMsNyArMyw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEphbiBN
aWNoYWVsIEFsb256byA8am1hbG9uem9AZ21haWwuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5
IENvbGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMSBDb2xsYWJvcmEgTHRk
LgogICogQ29weXJpZ2h0IChDKSAyMDEwIEpvb25lIEh1ciA8am9vbmVAa2xkcC5vcmc+CiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC01NDQsMTAgKzU0NCw0MiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBKU1N0cmluZ1JlZiB2YWx1ZSkKICAg
ICBnX2ZyZWUoY1ZhbHVlKTsKIH0KIAotYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0
cmluZyhKU0NvbnRleHRSZWYgLyogY29udGV4dCAqLywgSlNTdHJpbmdSZWYgLyogdGFyZ2V0ICov
LCBKU09iamVjdFJlZiAvKiBvcHRpb25zQXJyYXkgKi8pCitib29sIExheW91dFRlc3RDb250cm9s
bGVyOjpmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmluZ1JlZiB0YXJnZXQs
IEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIFdlYktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zID0gMDsK
KyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3Zp
ZXcobWFpbkZyYW1lKTsKKyAgICBBU1NFUlQod2ViVmlldyk7CisKKyAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gbGVuZ3RoUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygibGVuZ3RoIikpOworICAgIEpTVmFsdWVSZWYgbGVuZ3RoVmFsdWUgPSBKU09i
amVjdEdldFByb3BlcnR5KGNvbnRleHQsIG9wdGlvbnNBcnJheSwgbGVuZ3RoUHJvcGVydHlOYW1l
LmdldCgpLCAwKTsgCisgICAgaWYgKCFKU1ZhbHVlSXNOdW1iZXIoY29udGV4dCwgbGVuZ3RoVmFs
dWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHT3duUHRyPGdjaGFyPiB0YXJnZXRT
dHJpbmcoSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcodGFyZ2V0KSk7CisKKyAgICBzaXplX3QgbGVu
Z3RoID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgbGVuZ3Ro
VmFsdWUsIDApKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleChjb250
ZXh0LCBvcHRpb25zQXJyYXksIGksIDApOyAKKyAgICAgICAgaWYgKCFKU1ZhbHVlSXNTdHJpbmco
Y29udGV4dCwgdmFsdWUpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgCisgICAgICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBvcHRpb25OYW1lKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIHZhbHVlLCAwKSk7CisKKyAgICAgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkNhc2VJbnNlbnNpdGl2ZSIpKQorICAgICAg
ICAgICAgZmluZE9wdGlvbnMgfD0gRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmU7CisgICAgICAg
IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwg
IkF0V29yZFN0YXJ0cyIpKQorICAgICAgICAgICAgZmluZE9wdGlvbnMgfD0gRmluZE9wdGlvbnNB
dFdvcmRTdGFydHM7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcob3B0aW9uTmFtZS5nZXQoKSwgIlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0IikpCisg
ICAgICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRhbEFz
V29yZFN0YXJ0OworICAgICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG9wdGlvbk5hbWUuZ2V0KCksICJCYWNrd2FyZHMiKSkKKyAgICAgICAgICAgIGZpbmRPcHRpb25z
IHw9IEZpbmRPcHRpb25zQmFja3dhcmRzOworICAgICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG9wdGlvbk5hbWUuZ2V0KCksICJXcmFwQXJvdW5kIikpCisgICAgICAg
ICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9uc1dyYXBBcm91bmQ7CisgICAgICAgIGVsc2Ug
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIlN0YXJ0
SW5TZWxlY3Rpb24iKSkKKyAgICAgICAgICAgIGZpbmRPcHRpb25zIHw9IEZpbmRPcHRpb25zU3Rh
cnRJblNlbGVjdGlvbjsKKyAgICB9ICAgCisKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpmaW5kU3RyaW5nKHdlYlZpZXcsIHRhcmdldFN0cmluZy5nZXQoKSwgZmluZE9wdGlv
bnMpOyAKIH0KIAogYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNDb21tYW5kRW5hYmxlZChK
U1N0cmluZ1JlZiBuYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81397</attachid>
            <date>2011-02-06 05:22:57 -0800</date>
            <delta_ts>2011-02-07 17:23:44 -0800</delta_ts>
            <desc>Proposed Patch3</desc>
            <filename>findString.patch</filename>
            <type>text/plain</type>
            <size>10222</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzhiODcwLi44YzQ1MTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MDYgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gSW1wbGVtZW50IGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMjM3CisKKyAgICAgICAgVW5za2lwIGVkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDogVW5za2lwIGZpbmRTdHJpbmcgdGVzdC4KKwogMjAxMS0wMi0wNiAgUm9iZXJ0IEhvZ2FuICA8
cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBmYWlsaW5nIHRl
c3Qgb24gUXQgYm90LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCAzNWM0ODA4Li4zMzk1
MWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDU2Nyw5ICs0NTY3LDYgQEAgZmFz
dC90ZXh0L2xhcmdlLXRleHQtY29tcG9zZWQtY2hhci1kb3MuaHRtbAogIyBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkVXNlclNjcmlwdCBub3QgaW1wbGVtZW50ZWQgZm9yIGd0awogcGx1Z2lucy9w
bHVnaW4tZG9jdW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAKLSMgTWlzc2lu
ZyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCkgaHR0cDovL3dlYmtpdC5vcmcvYi81
MDIzNwotZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmcuaHRtbAotCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IGY0YzM5NDYuLjk1MWExNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMS0wMi0wNiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBJ
bXBsZW1lbnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzcKKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBBZGQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IEFkZCB0aGlzIGZpbGUgdG8gYXNzZXJ0
IHRoYXQgdmFyaW91cyAKKyAgICAgICAgV2ViS2l0IEFQSSBlbnVtIHZhbHVlcyBjb250aW51ZSBt
YXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisKIDIwMTEtMDItMDQgIEpvb25lIEh1ciAgPGpvb25l
Lmh1ckBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgRml4IGNvbXBpbGF0
aW9uIHdhcm5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5h
bSBiL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgyYWYwOGEuLmQyMDdl
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xNTksNiArMTU5LDcgQEAgd2Via2l0
Z3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0
RE9NT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0SFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvV2ViS2l0SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCiAJU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggXAogCVNvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNTk2ZjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAx
MSBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworLy8gVXNl
IHRoaXMgZmlsZSB0byBhc3NlcnQgdGhhdCB2YXJpb3VzIFdlYktpdCBBUEkgZW51bSB2YWx1ZXMg
Y29udGludWUKKy8vIG1hdGNoaW5nIFdlYkNvcmUgZGVmaW5lZCBlbnVtIHZhbHVlcy4KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgi
CisjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgor
CisjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0od2Via2l0X25hbWUsIHdlYmNv
cmVfbmFtZSkgXAorICAgIENPTVBJTEVfQVNTRVJUKGludChXZWJLaXQ6OndlYmtpdF9uYW1lKSA9
PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCisKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgLCBD
YXNlSW5zZW5zaXRpdmUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaW5kT3B0
aW9uc0F0V29yZFN0YXJ0cywgQXRXb3JkU3RhcnRzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViRmluZE9wdGlvbnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCwgVHJlYXRN
ZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJGaW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViRmluZE9wdGlvbnNXcmFwQXJvdW5kLCBXcmFwQXJvdW5kKTsKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViRmluZE9wdGlvbnNTdGFydEluU2VsZWN0aW9uLCBTdGFy
dEluU2VsZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDZmMzE4ODcuLmM2
ZTZkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNTMyLDMgKzUzMiw5IEBAIGJv
b2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3ZWJraXRXZWJGcmFtZVNlbGVjdGlvbkhhc1Nw
ZWxsaW5nTWFya2VyKFdlYktpdFdlCiAKICAgICByZXR1cm4gY29yZShmcmFtZSktPmVkaXRvcigp
LT5zZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGZyb20sIGxlbmd0aCk7CiB9CisK
K2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5kU3RyaW5nKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcsIFdlYktpdEZpbmRPcHRpb25zIGZp
bmRPcHRpb25zKQoreworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmlu
Zzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlvbnMpOworfQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oCmluZGV4IDY2M2YxM2EuLmVhNmFhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
CkBAIC0xOSw3ICsxOSw2IEBACiAjaWZuZGVmIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0a19oCiAj
ZGVmaW5lIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0a19oCiAKLQogI2luY2x1ZGUgIkpTU3RyaW5n
UmVmLmgiCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KIApAQCAtMjksNiArMjgs
MjAgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIHsKKyAgICBXZWJG
aW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSA9IDEgPDwgMCwKKyAgICBXZWJGaW5kT3B0aW9uc0F0
V29yZFN0YXJ0cyA9IDEgPDwgMSwKKyAgICBXZWJGaW5kT3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRh
bEFzV29yZFN0YXJ0ID0gMSA8PCAyLAorICAgIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID0gMSA8
PCAzLAorICAgIFdlYkZpbmRPcHRpb25zV3JhcEFyb3VuZCA9IDEgPDwgNCwKKyAgICBXZWJGaW5k
T3B0aW9uc1N0YXJ0SW5TZWxlY3Rpb24gPSAxIDw8IDUKK307CisKK30KK3R5cGVkZWYgdW5zaWdu
ZWQgV2ViS2l0RmluZE9wdGlvbnM7CisKIGNsYXNzIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayB7
CiAKIHB1YmxpYzoKQEAgLTcwLDYgKzgzLDcgQEAgcHVibGljOgogICAgIC8vIFdlYktpdFdlYlZp
ZXcKICAgICBzdGF0aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmll
dyosIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGlzQ29tbWFuZEVuYWJsZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsK
KyAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhcios
IFdlYktpdEZpbmRPcHRpb25zKTsKIAogICAgIC8vIEdDCiAgICAgc3RhdGljIHZvaWQgZ2NDb2xs
ZWN0SmF2YXNjcmlwdE9iamVjdHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBiZWNjYjUxLi4zYTk5MThjIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDIt
MDYgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gSW1wbGVtZW50IGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMjM3CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmZpbmRTdHJpbmcpOgorCiAyMDExLTAyLTA2ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmlu
ZGV4IGZmYTMwOTQuLmM4NTU3ZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMyw3ICszLDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwg
QWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQ29sbGFi
b3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwyMDExIENvbGxhYm9yYSBMdGQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgSm9vbmUgSHVyIDxqb29uZUBrbGRwLm9yZz4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTU0NCwxMCArNTQ0LDQyIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmV4
ZWNDb21tYW5kKEpTU3RyaW5nUmVmIG5hbWUsIEpTU3RyaW5nUmVmIHZhbHVlKQogICAgIGdfZnJl
ZShjVmFsdWUpOwogfQogCi1ib29sIExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKEpT
Q29udGV4dFJlZiAvKiBjb250ZXh0ICovLCBKU1N0cmluZ1JlZiAvKiB0YXJnZXQgKi8sIEpTT2Jq
ZWN0UmVmIC8qIG9wdGlvbnNBcnJheSAqLykKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZp
bmRTdHJpbmcoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIHRhcmdldCwgSlNPYmpl
Y3RSZWYgb3B0aW9uc0FycmF5KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgV2ViS2l0RmluZE9wdGlvbnMgZmluZE9wdGlvbnMgPSAwOworICAgIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWlu
RnJhbWUpOworICAgIEFTU0VSVCh3ZWJWaWV3KTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBsZW5ndGhQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJsZW5ndGgiKSk7CisgICAgSlNWYWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0
UHJvcGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCks
IDApOyAKKyAgICBpZiAoIUpTVmFsdWVJc051bWJlcihjb250ZXh0LCBsZW5ndGhWYWx1ZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdPd25QdHI8Z2NoYXI+IHRhcmdldFN0cmluZyhK
U1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh0YXJnZXQpKTsKKworICAgIHNpemVfdCBsZW5ndGggPSBz
dGF0aWNfY2FzdDxzaXplX3Q+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBsZW5ndGhWYWx1ZSwg
MCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
SlNWYWx1ZVJlZiB2YWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4KGNvbnRleHQsIG9w
dGlvbnNBcnJheSwgaSwgMCk7IAorICAgICAgICBpZiAoIUpTVmFsdWVJc1N0cmluZyhjb250ZXh0
LCB2YWx1ZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IG9wdGlvbk5hbWUoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29u
dGV4dCwgdmFsdWUsIDApKTsKKworICAgICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhvcHRpb25OYW1lLmdldCgpLCAiQ2FzZUluc2Vuc2l0aXZlIikpCisgICAgICAgICAgICBm
aW5kT3B0aW9ucyB8PSBXZWJLaXQ6OldlYkZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlOworICAg
ICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG9wdGlvbk5hbWUuZ2V0
KCksICJBdFdvcmRTdGFydHMiKSkKKyAgICAgICAgICAgIGZpbmRPcHRpb25zIHw9IFdlYktpdDo6
V2ViRmluZE9wdGlvbnNBdFdvcmRTdGFydHM7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIlRyZWF0TWVkaWFsQ2FwaXRhbEFz
V29yZFN0YXJ0IikpCisgICAgICAgICAgICBmaW5kT3B0aW9ucyB8PSBXZWJLaXQ6OldlYkZpbmRP
cHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkJhY2t3YXJkcyIp
KQorICAgICAgICAgICAgZmluZE9wdGlvbnMgfD0gV2ViS2l0OjpXZWJGaW5kT3B0aW9uc0JhY2t3
YXJkczsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRp
b25OYW1lLmdldCgpLCAiV3JhcEFyb3VuZCIpKQorICAgICAgICAgICAgZmluZE9wdGlvbnMgfD0g
V2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQ7CisgICAgICAgIGVsc2UgaWYgKEpTU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIlN0YXJ0SW5TZWxlY3Rp
b24iKSkKKyAgICAgICAgICAgIGZpbmRPcHRpb25zIHw9IFdlYktpdDo6V2ViRmluZE9wdGlvbnNT
dGFydEluU2VsZWN0aW9uOworICAgIH0gICAKKworICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmZpbmRTdHJpbmcod2ViVmlldywgdGFyZ2V0U3RyaW5nLmdldCgpLCBmaW5kT3B0
aW9ucyk7IAogfQogCiBib29sIExheW91dFRlc3RDb250cm9sbGVyOjppc0NvbW1hbmRFbmFibGVk
KEpTU3RyaW5nUmVmIG5hbWUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>