<?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>45751</bug_id>
          
          <creation_ts>2010-09-14 07:44:23 -0700</creation_ts>
          <short_desc>Extend YARR Interpreter with beginning character look-up optimization</short_desc>
          <delta_ts>2010-11-17 03:06:29 -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>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>
          <dependson>45748</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Varga">pvarga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278893</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-09-14 07:44:23 -0700</bug_when>
    <thetext>Search the start index of the first potential match before the pattern
matching process. Use the vector of possible beginning characters which are collected
by YARR&apos;s parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278894</commentid>
    <comment_count>1</comment_count>
      <attachid>67550</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-09-14 07:47:51 -0700</bug_when>
    <thetext>Created attachment 67550
proposed patch

Performance results:

                                      ref               mod
regexp-dna:   2.15x as fast   273.3ms +/- 0.1%  127.0ms +/- 0.0% 
v8-regexp:    1.23x as fast  1794.8ms +/- 0.1% 1460.6ms +/- 0.6%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278906</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-14 08:05:03 -0700</bug_when>
    <thetext>Attachment 67550 did not build on qt:
Build output: http://queues.webkit.org/results/4007008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278909</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-14 08:06:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 67550 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/4007008

It will build on Qt after https://bugs.webkit.org/show_bug.cgi?id=45748 fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278911</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 08:09:09 -0700</bug_when>
    <thetext>Attachment 67550 did not build on gtk:
Build output: http://queues.webkit.org/results/4004008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278947</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:11:35 -0700</bug_when>
    <thetext>Attachment 67550 did not build on win:
Build output: http://queues.webkit.org/results/4061010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281597</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-09-20 09:21:14 -0700</bug_when>
    <thetext>The new performance results without the collecting of character classes:

                                       ref                mod
regexp-dna:  1.74x as fast     297.1ms +/- 0.3%   170.8ms +/- 0.2%
v8-regexp:   1.065x as fast   2628.8ms +/- 0.6%  2468.0ms +/- 0.3%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287967</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-09-30 17:46:36 -0700</bug_when>
    <thetext>I did some analysis of this patch and why v8-regexp is slower with it.

Using shark, I examined the performance of the JIT code generated with and without the patch.  I looked at the top four regular expressions by time spent in the corresponding JIT&apos;ed code. This patch doesn&apos;t change the JIT&apos;ed code for the #1 regular expression, as it begins with (^|[^\\]).  Expressions 2, 3 and 4 are fixed strings of /NQ_VQ/, /d1/ and /d2/ respectively which are impacted by this code.

I think that this patch slows down these expressions since the code looks for the beginning characters in a loop, advancing index until the characters are found and then falls through to the original code which looks again at the first characters.  For each of these patterns, the patch isn&apos;t providing much benefit as they degenerate to looking for the beginning characters as well.  It may make sense to not emit the look for beginning characters when the whole pattern is a fixed string.

Although much more work, you may want to code up eliminating the normal character match for prefixes handled by the beginning check code.  This certainly would get complicated for captured characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288195</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-10-01 05:33:28 -0700</bug_when>
    <thetext>(In reply to comment #7)

Thanks, Michael for the advices.

Avoiding this optimization in case of fixed strings was a really good idea
because it significantly reduces the number of cases where the optimization is
searching for beginning characters in case of the v8-regexp test.
The new version of patch has been uploaded at 
https://bugs.webkit.org/show_bug.cgi?id=45748 but I haven&apos;t noticed a significant
performance improvement compared to the previous results.

Your other idea to try to avoid the normal matching of prefixes seems to be too 
complex and probably it doesn&apos;t yield significant performance improvements on the
v8-regexp test, because the beginning character look-up optimization
isn&apos;t able to make this test faster. The cause for this is that there are a lot
of special patterns (eg. which contain assertions like BOL) in v8-regexp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288474</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-01 14:08:27 -0700</bug_when>
    <thetext>I ran some tests on patch #4 of 45748 and this patch on a MacPro.

The performance changes I saw are:
                        
   SunSpider  base: 274.0  with mods: 273.8 (+.1%)
   regexp-dna base: 16.8 with mods: 16.0 (+5%)
  V8 Base base: 1778.7 with mods: 1778.6 (no change)
  v8-regexp base:174.1 with mods: 172.5 (+.9%)

The concern now is why the total v8 time is unchanged with a 1.6ms improvement on v8-regexp.  I didn&apos;t analyze what other tests did with the patches.  Note that since we don&apos;t see any regression, I believe we can move forward with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294947</commentid>
    <comment_count>10</comment_count>
      <attachid>67550</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-15 15:04:27 -0700</bug_when>
    <thetext>Comment on attachment 67550
proposed patch

OK, this patch is ready to go, but we can&apos;t land it until we land bug 45748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297418</commentid>
    <comment_count>11</comment_count>
      <attachid>71436</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-10-21 07:56:46 -0700</bug_when>
    <thetext>Created attachment 71436
proposed patch v2

update patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297444</commentid>
    <comment_count>12</comment_count>
      <attachid>67550</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 08:45:00 -0700</bug_when>
    <thetext>Comment on attachment 67550
proposed patch

Cleared Geoffrey Garen&apos;s review+ from obsolete attachment 67550 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309874</commentid>
    <comment_count>13</comment_count>
      <attachid>71436</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-11-16 12:35:51 -0800</bug_when>
    <thetext>Comment on attachment 71436
proposed patch v2

Looks good to go!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309896</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-16 13:15:47 -0800</bug_when>
    <thetext>Attachment 71436 did not build on qt:
Build output: http://queues.webkit.org/results/6024098</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310026</commentid>
    <comment_count>15</comment_count>
      <attachid>71436</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 16:40:12 -0800</bug_when>
    <thetext>Comment on attachment 71436
proposed patch v2

Rejecting patch 71436 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, 71436]&quot; exit_code: 2
Last 500 characters of output:
5 succeeded at 1212 with fuzz 1 (offset 42 lines).
Hunk #6 FAILED at 1323.
3 out of 6 hunks FAILED -- saving rejects to file JavaScriptCore/yarr/RegexInterpreter.cpp.rej
patching file JavaScriptCore/yarr/RegexInterpreter.h
Hunk #1 succeeded at 324 (offset 15 lines).
Hunk #2 succeeded at 336 (offset 15 lines).
Hunk #3 succeeded at 349 (offset 15 lines).

Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Gavin Barraclough&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/6138004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310192</commentid>
    <comment_count>16</comment_count>
      <attachid>71436</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-17 03:06:02 -0800</bug_when>
    <thetext>Comment on attachment 71436
proposed patch v2

Peter resolved the conflict and then I landed it: http://trac.webkit.org/changeset/72186</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67550</attachid>
            <date>2010-09-14 07:47:51 -0700</date>
            <delta_ts>2010-10-21 08:45:00 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-kilincs-interpreter-optimization.patch</filename>
            <type>text/plain</type>
            <size>6539</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">RnJvbSA2NTY3YTNmMmU5NWMwOTBlNjM5MjA0NjYyYjEyMzJhMDJmOWQxNzVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBWYXJnYSA8cHZhcmdhQGluZi51LXN6ZWdlZC5odT4K
RGF0ZTogVHVlLCAxNCBTZXAgMjAxMCAxNjo0NjoyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGtp
bGluY3MgaW50ZXJwcmV0ZXIgb3B0aW1pemF0aW9uCgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrKysrKwogSmF2YVNjcmlwdENvcmUv
eWFyci9SZWdleEludGVycHJldGVyLmNwcCB8ICAgNTMgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0KIEphdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oICAgfCAgICA2ICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBhNzM0NTA2Li5kNzZjNDcyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBFeHRlbmQg
WUFSUiBJbnRlcnByZXRlciB3aXRoIGJlZ2lubmluZyBjaGFyYWN0ZXIgbG9vay11cCBvcHRpbWl6
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
NzUxCisKKyAgICAgICAgQWRkIGJlZ2lubmluZyBjaGFyYWN0ZXIgbG9vay11cCBvcHRpbWl6YXRp
b24gd2hpY2ggc2V0cyB0aGUgc3RhcnQKKyAgICAgICAgaW5kZXggdG8gdGhlIGZpcnN0IHBvc3Np
YmxlIHN1Y2Nlc3NmdWwgcGF0dGVybiBtYXRjaC4KKyAgICAgICAgRXh0ZW5kIFlBUlIgSW50ZXJw
cmV0ZXIgd2l0aCBsb29rdXBGb3JCZWdpbkNoYXJzIGZ1bmN0aW9uIHdoaWNoCisgICAgICAgIGlt
cGxlbWVudHMgdGhlIGJlZ2lubmluZyBjaGFyYWN0ZXIgbG9vay11cCBvcHRpbWl6YXRpb24uCisK
KyAgICAgICAgKiB5YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpZYXJy
OjpJbnRlcnByZXRlcjo6SW5wdXRTdHJlYW06OnJlYWRQYWlyKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6SW50ZXJwcmV0ZXI6OklucHV0U3RyZWFtOjppc05vdEF2YWlsYWJsZUlucHV0KToKKyAgICAg
ICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6Omxvb2t1cEZvckJlZ2luQ2hhcnMpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6bWF0Y2hEaXNqdW5jdGlvbik6CisgICAgICAgIChK
U0M6OllhcnI6OkludGVycHJldGVyOjppbnRlcnByZXQpOgorICAgICAgICAqIHlhcnIvUmVnZXhJ
bnRlcnByZXRlci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlY29kZVBhdHRlcm46OkJ5dGVj
b2RlUGF0dGVybik6CisKKzIwMTAtMDktMTQgIFBldGVyIFZhcmdhICA8cHZhcmdhQGluZi51LXN6
ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAg
ICBDb2xsZWN0IHRoZSBiZWdpbm5pbmcgY2hhcmFjdGVycyBpbiBhIFJlZ0V4cCBwYXR0ZXJuIGZv
ciBsb29rLXVwCiAgICAgICAgIG9wdGltaXphdGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU3NDgKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3lhcnIvUmVnZXhJbnRlcnByZXRlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SW50
ZXJwcmV0ZXIuY3BwCmluZGV4IGQ1MGM2YzguLmRlZjQxY2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUveWFy
ci9SZWdleEludGVycHJldGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIFBldGVyIFZhcmdhIChwdmFyZ2FAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDYgKzE5Niwx
MiBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KIAorICAgICAg
ICBpbnQgcmVhZFBhaXIoKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQocG9zICsgMSA8
IGxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gaW5wdXRbcG9zXSB8IGlucHV0W3BvcyArIDFd
IDw8IDE2OworICAgICAgICB9CisKICAgICAgICAgaW50IHJlYWRDaGVja2VkKGludCBwb3NpdGlv
bikKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHBvc2l0aW9uIDwgMCk7CkBAIC0yNjIs
NiArMjY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiAocG9zICsgcG9zaXRpb24p
ID09IGxlbmd0aDsKICAgICAgICAgfQogCisgICAgICAgIGJvb2wgaXNOb3RBdmFpbGFibGVJbnB1
dChpbnQgcG9zaXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAocG9zICsgcG9z
aXRpb24pID4gbGVuZ3RoOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICBjb25z
dCBVQ2hhciogaW5wdXQ7CiAgICAgICAgIHVuc2lnbmVkIHBvczsKQEAgLTkzOSwxNCArOTUxLDQ2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHZvaWQgbG9v
a3VwRm9yQmVnaW5DaGFycygpCisgICAgeworICAgICAgICBpbnQgY2hhcmFjdGVyOworICAgICAg
ICBib29sIGZpcnN0U2luZ2xlQ2hhckZvdW5kOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7Cisg
ICAgICAgICAgICBpZiAoaW5wdXQuaXNOb3RBdmFpbGFibGVJbnB1dCgyKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZpcnN0U2luZ2xlQ2hhckZvdW5kID0gZmFsc2U7
CisKKyAgICAgICAgICAgIGNoYXJhY3RlciA9IGlucHV0LnJlYWRQYWlyKCk7CisKKyAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXR0ZXJuLT5tX2JlZ2luQ2hhckhlbHBlci5z
aXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIEJlZ2luQ2hhciBiYyA9IHBhdHRlcm4tPm1f
YmVnaW5DaGFySGVscGVyLm1fYmVnaW5DaGFyc1tpXTsKKworICAgICAgICAgICAgICAgIGlmICgh
Zmlyc3RTaW5nbGVDaGFyRm91bmQgJiYgYmMudmFsdWUgPD0gMHhGRkZGKSB7CisgICAgICAgICAg
ICAgICAgICAgIGZpcnN0U2luZ2xlQ2hhckZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgY2hhcmFjdGVyICY9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBpZiAoKGNoYXJhY3RlciB8IGJjLm1hc2spID09IGJjLnZhbHVlKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlucHV0Lm5leHQo
KTsKKyAgICAgICAgfQorICAgIH0KKwogI2RlZmluZSBNQVRDSF9ORVhUKCkgeyArK2NvbnRleHQt
PnRlcm07IGdvdG8gbWF0Y2hBZ2FpbjsgfQogI2RlZmluZSBCQUNLVFJBQ0soKSB7IC0tY29udGV4
dC0+dGVybTsgZ290byBiYWNrdHJhY2s7IH0KICNkZWZpbmUgY3VycmVudFRlcm0oKSAoZGlzanVu
Y3Rpb24tPnRlcm1zW2NvbnRleHQtPnRlcm1dKQotICAgIGJvb2wgbWF0Y2hEaXNqdW5jdGlvbihC
eXRlRGlzanVuY3Rpb24qIGRpc2p1bmN0aW9uLCBEaXNqdW5jdGlvbkNvbnRleHQqIGNvbnRleHQs
IGJvb2wgYnRyYWNrID0gZmFsc2UpCisgICAgYm9vbCBtYXRjaERpc2p1bmN0aW9uKEJ5dGVEaXNq
dW5jdGlvbiogZGlzanVuY3Rpb24sIERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCBi
dHJhY2sgPSBmYWxzZSwgYm9vbCBpc0JvZHkgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIGlmIChi
dHJhY2spCiAgICAgICAgICAgICBCQUNLVFJBQ0soKTsKIAorICAgICAgICBpZiAocGF0dGVybi0+
bV9jb250YWluc0JlZ2luQ2hhcnMgJiYgaXNCb2R5KQorICAgICAgICAgICAgbG9va3VwRm9yQmVn
aW5DaGFycygpOworCiAgICAgICAgIGNvbnRleHQtPm1hdGNoQmVnaW4gPSBpbnB1dC5nZXRQb3Mo
KTsKICAgICAgICAgY29udGV4dC0+dGVybSA9IDA7CiAKQEAgLTEwOTgsNiArMTE0Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgY2FzZSBCeXRlVGVybTo6VHlwZUJvZHlBbHRlcm5hdGl2ZURpc2p1bmN0
aW9uOiB7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY3VycmVudFRlcm0oKS5hbHRlcm5hdGl2
ZS5uZXh0OwogICAgICAgICAgICAgY29udGV4dC0+dGVybSArPSBvZmZzZXQ7CisKICAgICAgICAg
ICAgIGlmIChvZmZzZXQgPiAwKQogICAgICAgICAgICAgICAgIE1BVENIX05FWFQoKTsKIApAQCAt
MTEwNSw2ICsxMTUwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgICAgIGlucHV0Lm5leHQoKTsKKworICAgICAgICAgICAgaWYgKHBhdHRlcm4t
Pm1fY29udGFpbnNCZWdpbkNoYXJzICYmIGlzQm9keSkKKyAgICAgICAgICAgICAgICBsb29rdXBG
b3JCZWdpbkNoYXJzKCk7CisKICAgICAgICAgICAgIGNvbnRleHQtPm1hdGNoQmVnaW4gPSBpbnB1
dC5nZXRQb3MoKTsKICAgICAgICAgICAgIE1BVENIX05FWFQoKTsKICAgICAgICAgfQpAQCAtMTIw
OCw3ICsxMjU3LDcgQEAgcHVibGljOgogCiAgICAgICAgIERpc2p1bmN0aW9uQ29udGV4dCogY29u
dGV4dCA9IGFsbG9jRGlzanVuY3Rpb25Db250ZXh0KHBhdHRlcm4tPm1fYm9keS5nZXQoKSk7CiAK
LSAgICAgICAgaWYgKG1hdGNoRGlzanVuY3Rpb24ocGF0dGVybi0+bV9ib2R5LmdldCgpLCBjb250
ZXh0KSkgeworICAgICAgICBpZiAobWF0Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2JvZHkuZ2V0
KCksIGNvbnRleHQsIGZhbHNlLCB0cnVlKSkgewogICAgICAgICAgICAgb3V0cHV0WzBdID0gY29u
dGV4dC0+bWF0Y2hCZWdpbjsKICAgICAgICAgICAgIG91dHB1dFsxXSA9IGNvbnRleHQtPm1hdGNo
RW5kOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SW50
ZXJwcmV0ZXIuaCBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oCmluZGV4
IDRkYTljYzUuLjI5MGViZmIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJ
bnRlcnByZXRlci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5o
CkBAIC0zMDIsOCArMzAyLDExIEBAIHN0cnVjdCBCeXRlY29kZVBhdHRlcm4gOiBGYXN0QWxsb2NC
YXNlIHsKICAgICAgICAgOiBtX2JvZHkoYm9keSkKICAgICAgICAgLCBtX2lnbm9yZUNhc2UocGF0
dGVybi5tX2lnbm9yZUNhc2UpCiAgICAgICAgICwgbV9tdWx0aWxpbmUocGF0dGVybi5tX211bHRp
bGluZSkKKyAgICAgICAgLCBtX2NvbnRhaW5zQmVnaW5DaGFycyhwYXR0ZXJuLm1fY29udGFpbnNC
ZWdpbkNoYXJzKQogICAgICAgICAsIG1fYWxsb2NhdG9yKGFsbG9jYXRvcikKICAgICB7CisgICAg
ICAgIG1fYmVnaW5DaGFySGVscGVyID0gcGF0dGVybi5tX2JlZ2luQ2hhckhlbHBlcjsKKwogICAg
ICAgICBuZXdsaW5lQ2hhcmFjdGVyQ2xhc3MgPSBwYXR0ZXJuLm5ld2xpbmVDaGFyYWN0ZXJDbGFz
cygpOwogICAgICAgICB3b3JkY2hhckNoYXJhY3RlckNsYXNzID0gcGF0dGVybi53b3JkY2hhckNo
YXJhY3RlckNsYXNzKCk7CiAKQEAgLTMyNCwxMiArMzI3LDE1IEBAIHN0cnVjdCBCeXRlY29kZVBh
dHRlcm4gOiBGYXN0QWxsb2NCYXNlIHsKICAgICBPd25QdHI8Qnl0ZURpc2p1bmN0aW9uPiBtX2Jv
ZHk7CiAgICAgYm9vbCBtX2lnbm9yZUNhc2U7CiAgICAgYm9vbCBtX211bHRpbGluZTsKKyAgICBi
b29sIG1fY29udGFpbnNCZWdpbkNoYXJzOwogICAgIC8vIEVhY2ggQnl0ZWNvZGVQYXR0ZXJuIGlz
IGFzc29jaWF0ZWQgd2l0aCBhIFJlZ0V4cCwgZWFjaCBSZWdFeHAgaXMgYXNzb2NpYXRlZAogICAg
IC8vIHdpdGggYSBKU0dsb2JhbERhdGEuICBDYWNoZSBhIHBvaW50ZXIgdG8gb3V0IEpTR2xvYmFs
RGF0YSdzIG1fcmVnZXhBbGxvY2F0b3IuCiAgICAgQnVtcFBvaW50ZXJBbGxvY2F0b3IqIG1fYWxs
b2NhdG9yOwogCiAgICAgQ2hhcmFjdGVyQ2xhc3MqIG5ld2xpbmVDaGFyYWN0ZXJDbGFzczsKICAg
ICBDaGFyYWN0ZXJDbGFzcyogd29yZGNoYXJDaGFyYWN0ZXJDbGFzczsKKworICAgIEJlZ2luQ2hh
ckhlbHBlciBtX2JlZ2luQ2hhckhlbHBlcjsKIHByaXZhdGU6CiAgICAgVmVjdG9yPEJ5dGVEaXNq
dW5jdGlvbio+IG1fYWxsUGFyZW50aGVzZXNJbmZvOwogICAgIFZlY3RvcjxDaGFyYWN0ZXJDbGFz
cyo+IG1fdXNlckNoYXJhY3RlckNsYXNzZXM7Ci0tIAoxLjcuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71436</attachid>
            <date>2010-10-21 07:56:46 -0700</date>
            <delta_ts>2010-11-17 03:06:02 -0800</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>0001-kilincs-interpreter-optimization-v2.patch</filename>
            <type>text/plain</type>
            <size>6368</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">RnJvbSAxNjE5ZDRmZWQ1YzdjOTVhODJhNjZhODM4MmFjN2I3YjQ5NzE1NzBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBWYXJnYSA8cHZhcmdhQGluZi51LXN6ZWdlZC5odT4K
RGF0ZTogVGh1LCAyMSBPY3QgMjAxMCAwNzo1NTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGtp
bGluY3MgaW50ZXJwcmV0ZXIgb3B0aW1pemF0aW9uIHYyCgotLS0KIEphdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrKysrKwogSmF2YVNjcmlwdENv
cmUveWFyci9SZWdleEludGVycHJldGVyLmNwcCB8ICAgNTIgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIEphdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oICAgfCAgICA3
ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKaW5kZXggMzMyNzYxZC4uM2NmYzVhMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEwLTEwLTIxICBQZXRlciBWYXJnYSAgPHB2YXJnYUBpbmYudS1zemVnZWQuaHU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIFlB
UlIgSW50ZXJwcmV0ZXIgd2l0aCBiZWdpbm5pbmcgY2hhcmFjdGVyIGxvb2stdXAgb3B0aW1pemF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTc1
MQorCisgICAgICAgIEFkZCBiZWdpbm5pbmcgY2hhcmFjdGVyIGxvb2stdXAgb3B0aW1pemF0aW9u
IHdoaWNoIHNldHMgdGhlIHN0YXJ0CisgICAgICAgIGluZGV4IHRvIHRoZSBmaXJzdCBwb3NzaWJs
ZSBzdWNjZXNzZnVsIHBhdHRlcm4gbWF0Y2guCisgICAgICAgIEV4dGVuZCBZQVJSIEludGVycHJl
dGVyIHdpdGggbG9va3VwRm9yQmVnaW5DaGFycyBmdW5jdGlvbiB3aGljaAorICAgICAgICBpbXBs
ZW1lbnRzIHRoZSBiZWdpbm5pbmcgY2hhcmFjdGVyIGxvb2stdXAgb3B0aW1pemF0aW9uLgorCisg
ICAgICAgICogeWFyci9SZWdleEludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6
SW50ZXJwcmV0ZXI6OklucHV0U3RyZWFtOjpyZWFkUGFpcik6CisgICAgICAgIChKU0M6OllhcnI6
OkludGVycHJldGVyOjpJbnB1dFN0cmVhbTo6aXNOb3RBdmFpbGFibGVJbnB1dCk6CisgICAgICAg
IChKU0M6OllhcnI6OkludGVycHJldGVyOjpsb29rdXBGb3JCZWdpbkNoYXJzKToKKyAgICAgICAg
KEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6Om1hdGNoRGlzanVuY3Rpb24pOgorICAgICAgICAoSlND
OjpZYXJyOjpJbnRlcnByZXRlcjo6aW50ZXJwcmV0KToKKyAgICAgICAgKiB5YXJyL1JlZ2V4SW50
ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6Qnl0ZWNvZGVQYXR0ZXJuOjpCeXRlY29k
ZVBhdHRlcm4pOgorCiAyMDEwLTEwLTIxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcwMTc0LgpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUveWFyci9SZWdleEludGVycHJldGVyLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3lhcnIvUmVnZXhJbnRlcnByZXRlci5jcHAKaW5kZXggMzNmM2M4OS4uYzA5NjQ4OCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEludGVycHJldGVyLmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUGV0ZXIgVmFyZ2EgKHB2YXJnYUBpbmYudS1zemVnZWQuaHUp
LCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xOTUsNiArMTk2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAg
ICAgfQogCisgICAgICAgIGludCByZWFkUGFpcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFT
U0VSVChwb3MgKyAxIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBpbnB1dFtwb3NdIHwg
aW5wdXRbcG9zICsgMV0gPDwgMTY7CisgICAgICAgIH0KKwogICAgICAgICBpbnQgcmVhZENoZWNr
ZWQoaW50IHBvc2l0aW9uKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQocG9zaXRpb24g
PCAwKTsKQEAgLTI2Miw2ICsyNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIChw
b3MgKyBwb3NpdGlvbikgPT0gbGVuZ3RoOwogICAgICAgICB9CiAKKyAgICAgICAgYm9vbCBpc05v
dEF2YWlsYWJsZUlucHV0KGludCBwb3NpdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIChwb3MgKyBwb3NpdGlvbikgPiBsZW5ndGg7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6
CiAgICAgICAgIGNvbnN0IFVDaGFyKiBpbnB1dDsKICAgICAgICAgdW5zaWduZWQgcG9zOwpAQCAt
OTYwLDE0ICs5NzIsNDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CisgICAgdm9pZCBsb29rdXBGb3JCZWdpbkNoYXJzKCkKKyAgICB7CisgICAgICAgIGludCBjaGFy
YWN0ZXI7CisgICAgICAgIGJvb2wgZmlyc3RTaW5nbGVDaGFyRm91bmQ7CisKKyAgICAgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChpbnB1dC5pc05vdEF2YWlsYWJsZUlucHV0KDIp
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZmlyc3RTaW5nbGVDaGFy
Rm91bmQgPSBmYWxzZTsKKworICAgICAgICAgICAgY2hhcmFjdGVyID0gaW5wdXQucmVhZFBhaXIo
KTsKKworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBhdHRlcm4tPm1fYmVn
aW5DaGFycy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIEJlZ2luQ2hhciBiYyA9IHBh
dHRlcm4tPm1fYmVnaW5DaGFyc1tpXTsKKworICAgICAgICAgICAgICAgIGlmICghZmlyc3RTaW5n
bGVDaGFyRm91bmQgJiYgYmMudmFsdWUgPD0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAg
IGZpcnN0U2luZ2xlQ2hhckZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcmFj
dGVyICY9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAo
KGNoYXJhY3RlciB8IGJjLm1hc2spID09IGJjLnZhbHVlKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlucHV0Lm5leHQoKTsKKyAgICAg
ICAgfQorICAgIH0KKwogI2RlZmluZSBNQVRDSF9ORVhUKCkgeyArK2NvbnRleHQtPnRlcm07IGdv
dG8gbWF0Y2hBZ2FpbjsgfQogI2RlZmluZSBCQUNLVFJBQ0soKSB7IC0tY29udGV4dC0+dGVybTsg
Z290byBiYWNrdHJhY2s7IH0KICNkZWZpbmUgY3VycmVudFRlcm0oKSAoZGlzanVuY3Rpb24tPnRl
cm1zW2NvbnRleHQtPnRlcm1dKQotICAgIGJvb2wgbWF0Y2hEaXNqdW5jdGlvbihCeXRlRGlzanVu
Y3Rpb24qIGRpc2p1bmN0aW9uLCBEaXNqdW5jdGlvbkNvbnRleHQqIGNvbnRleHQsIGJvb2wgYnRy
YWNrID0gZmFsc2UpCisgICAgYm9vbCBtYXRjaERpc2p1bmN0aW9uKEJ5dGVEaXNqdW5jdGlvbiog
ZGlzanVuY3Rpb24sIERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCBidHJhY2sgPSBm
YWxzZSwgYm9vbCBpc0JvZHkgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIGlmIChidHJhY2spCiAg
ICAgICAgICAgICBCQUNLVFJBQ0soKTsKIAorICAgICAgICBpZiAocGF0dGVybi0+bV9jb250YWlu
c0JlZ2luQ2hhcnMgJiYgaXNCb2R5KQorICAgICAgICAgICAgbG9va3VwRm9yQmVnaW5DaGFycygp
OworCiAgICAgICAgIGNvbnRleHQtPm1hdGNoQmVnaW4gPSBpbnB1dC5nZXRQb3MoKTsKICAgICAg
ICAgY29udGV4dC0+dGVybSA9IDA7CiAKQEAgLTExMjYsNiArMTE3MCwxMCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBpbnB1dC5uZXh0KCk7
CisKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuLT5tX2NvbnRhaW5zQmVnaW5DaGFycyAmJiBpc0Jv
ZHkpCisgICAgICAgICAgICAgICAgbG9va3VwRm9yQmVnaW5DaGFycygpOworCiAgICAgICAgICAg
ICBjb250ZXh0LT5tYXRjaEJlZ2luID0gaW5wdXQuZ2V0UG9zKCk7CiAKICAgICAgICAgICAgIGlm
IChjdXJyZW50VGVybSgpLmFsdGVybmF0aXZlLm9uY2VUaHJvdWdoKQpAQCAtMTIzMyw3ICsxMjgx
LDcgQEAgcHVibGljOgogCiAgICAgICAgIERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCA9IGFs
bG9jRGlzanVuY3Rpb25Db250ZXh0KHBhdHRlcm4tPm1fYm9keS5nZXQoKSk7CiAKLSAgICAgICAg
aWYgKG1hdGNoRGlzanVuY3Rpb24ocGF0dGVybi0+bV9ib2R5LmdldCgpLCBjb250ZXh0KSkgewor
ICAgICAgICBpZiAobWF0Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2JvZHkuZ2V0KCksIGNvbnRl
eHQsIGZhbHNlLCB0cnVlKSkgewogICAgICAgICAgICAgb3V0cHV0WzBdID0gY29udGV4dC0+bWF0
Y2hCZWdpbjsKICAgICAgICAgICAgIG91dHB1dFsxXSA9IGNvbnRleHQtPm1hdGNoRW5kOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIu
aCBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oCmluZGV4IDM3ZjE3ZmUu
LjJjNjk0ZjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRl
ci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oCkBAIC0zMDks
NiArMzA5LDcgQEAgc3RydWN0IEJ5dGVjb2RlUGF0dGVybiA6IEZhc3RBbGxvY0Jhc2UgewogICAg
ICAgICA6IG1fYm9keShib2R5KQogICAgICAgICAsIG1faWdub3JlQ2FzZShwYXR0ZXJuLm1faWdu
b3JlQ2FzZSkKICAgICAgICAgLCBtX211bHRpbGluZShwYXR0ZXJuLm1fbXVsdGlsaW5lKQorICAg
ICAgICAsIG1fY29udGFpbnNCZWdpbkNoYXJzKHBhdHRlcm4ubV9jb250YWluc0JlZ2luQ2hhcnMp
CiAgICAgICAgICwgbV9hbGxvY2F0b3IoYWxsb2NhdG9yKQogICAgIHsKICAgICAgICAgbmV3bGlu
ZUNoYXJhY3RlckNsYXNzID0gcGF0dGVybi5uZXdsaW5lQ2hhcmFjdGVyQ2xhc3MoKTsKQEAgLTMy
MCw2ICszMjEsOCBAQCBzdHJ1Y3QgQnl0ZWNvZGVQYXR0ZXJuIDogRmFzdEFsbG9jQmFzZSB7CiAg
ICAgICAgIC8vIGFycmF5LCBzbyB0aGF0IGl0IHdvbid0IGRlbGV0ZSB0aGVtIG9uIGRlc3RydWN0
aW9uLiAgV2UnbGwKICAgICAgICAgLy8gdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgdGhhdC4KICAg
ICAgICAgcGF0dGVybi5tX3VzZXJDaGFyYWN0ZXJDbGFzc2VzLmNsZWFyKCk7CisKKyAgICAgICAg
bV9iZWdpbkNoYXJzLmFwcGVuZChwYXR0ZXJuLm1fYmVnaW5DaGFycyk7CiAgICAgfQogCiAgICAg
fkJ5dGVjb2RlUGF0dGVybigpCkBAIC0zMzEsMTIgKzMzNCwxNiBAQCBzdHJ1Y3QgQnl0ZWNvZGVQ
YXR0ZXJuIDogRmFzdEFsbG9jQmFzZSB7CiAgICAgT3duUHRyPEJ5dGVEaXNqdW5jdGlvbj4gbV9i
b2R5OwogICAgIGJvb2wgbV9pZ25vcmVDYXNlOwogICAgIGJvb2wgbV9tdWx0aWxpbmU7CisgICAg
Ym9vbCBtX2NvbnRhaW5zQmVnaW5DaGFyczsKICAgICAvLyBFYWNoIEJ5dGVjb2RlUGF0dGVybiBp
cyBhc3NvY2lhdGVkIHdpdGggYSBSZWdFeHAsIGVhY2ggUmVnRXhwIGlzIGFzc29jaWF0ZWQKICAg
ICAvLyB3aXRoIGEgSlNHbG9iYWxEYXRhLiAgQ2FjaGUgYSBwb2ludGVyIHRvIG91dCBKU0dsb2Jh
bERhdGEncyBtX3JlZ2V4QWxsb2NhdG9yLgogICAgIEJ1bXBQb2ludGVyQWxsb2NhdG9yKiBtX2Fs
bG9jYXRvcjsKIAogICAgIENoYXJhY3RlckNsYXNzKiBuZXdsaW5lQ2hhcmFjdGVyQ2xhc3M7CiAg
ICAgQ2hhcmFjdGVyQ2xhc3MqIHdvcmRjaGFyQ2hhcmFjdGVyQ2xhc3M7CisKKyAgICBWZWN0b3I8
QmVnaW5DaGFyPiBtX2JlZ2luQ2hhcnM7CisKIHByaXZhdGU6CiAgICAgVmVjdG9yPEJ5dGVEaXNq
dW5jdGlvbio+IG1fYWxsUGFyZW50aGVzZXNJbmZvOwogICAgIFZlY3RvcjxDaGFyYWN0ZXJDbGFz
cyo+IG1fdXNlckNoYXJhY3RlckNsYXNzZXM7Ci0tIAoxLjcuMi4yCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>