<?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>16458</bug_id>
          
          <creation_ts>2007-12-15 19:32:47 -0800</creation_ts>
          <short_desc>REGRESSION (r28164): regular expressions can now hang due to lack of a match limit</short_desc>
          <delta_ts>2007-12-18 11:33:03 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>64341</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-15 19:32:47 -0800</bug_when>
    <thetext>When we removed the match limit in http://trac.webkit.org/projects/webkit/changeset/28164 we made it possible to create regular expressions that hang because of exponential complexity of matching. Here&apos;s an example:

    /(?:[^(?!)]||){23}\z/

&lt;rdar://problem/5636067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64352</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-15 21:04:09 -0800</bug_when>
    <thetext>I&apos;d like to get bug 16438 reviewed and landed before fixing this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64488</commentid>
    <comment_count>2</comment_count>
      <attachid>17953</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-17 01:08:50 -0800</bug_when>
    <thetext>Created attachment 17953
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64489</commentid>
    <comment_count>3</comment_count>
      <attachid>17954</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-17 01:09:44 -0800</bug_when>
    <thetext>Created attachment 17954
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64490</commentid>
    <comment_count>4</comment_count>
      <attachid>17955</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-17 01:13:21 -0800</bug_when>
    <thetext>Created attachment 17955
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64491</commentid>
    <comment_count>5</comment_count>
      <attachid>17953</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-17 01:14:35 -0800</bug_when>
    <thetext>Comment on attachment 17953
patch

I&apos;m curious as to what sunspider says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64492</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-17 01:17:01 -0800</bug_when>
    <thetext>Unfortunately this does slow down the regexp-dna test 1.13x times; a big slowdown! Overall effect on SunSpider is 1.01x as slow.

If we can find a faster way to do it, I&apos;m all for it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64543</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-17 10:00:02 -0800</bug_when>
    <thetext>By the way, I made a loop to run this expression with various numbers and you can see the problem:

    /(?:[^(?!)]||){1}z/ took 0 milliseconds.
    /(?:[^(?!)]||){2}z/ took 0 milliseconds.
    /(?:[^(?!)]||){3}z/ took 0 milliseconds.
    /(?:[^(?!)]||){4}z/ took 0 milliseconds.
    /(?:[^(?!)]||){5}z/ took 0 milliseconds.
    /(?:[^(?!)]||){6}z/ took 1 milliseconds.
    /(?:[^(?!)]||){7}z/ took 2 milliseconds.
    /(?:[^(?!)]||){8}z/ took 4 milliseconds.
    /(?:[^(?!)]||){9}z/ took 11 milliseconds.
    /(?:[^(?!)]||){10}z/ took 25 milliseconds.
    /(?:[^(?!)]||){11}z/ took 60 milliseconds.
    /(?:[^(?!)]||){12}z/ took 144 milliseconds.
    /(?:[^(?!)]||){13}z/ took 341 milliseconds.
    /(?:[^(?!)]||){14}z/ took 805 milliseconds.
    /(?:[^(?!)]||){15}z/ took 1885 milliseconds.
    /(?:[^(?!)]||){16}z/ took 10120 milliseconds.
    /(?:[^(?!)]||){17}z/ took 29980 milliseconds.

This is an exponential curve. To handle expressions like this one we need some sort of limit.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64611</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-18 03:16:52 -0800</bug_when>
    <thetext>the performance hit hurts. I wonder if there is a way to do the check that would be less costly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64643</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-18 10:02:40 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; the performance hit hurts. I wonder if there is a way to do the check that
&gt; would be less costly.

It&apos;d great! I&apos;d love it if someone could figure out a new optimization other than just removing the match limit. Knowing that it&apos;s a 13% speed-up to remove the match limit may point us at something.

But I think the right thing to do is to restore the feature, and remove the incorrect optimization. Then we can look for effective, correct optimizations.

I don&apos;t think it makes sense to leave this incorrect optimization in just because it was a good speed-up!

Could someone review the patch, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64648</commentid>
    <comment_count>10</comment_count>
      <attachid>17955</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-12-18 10:27:56 -0800</bug_when>
    <thetext>Comment on attachment 17955
patch

r=me

Might be good to file a bug recording the potential speed gain from optimizing this code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64651</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-18 10:55:02 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Might be good to file a bug recording the potential speed gain from optimizing
&gt; this code path.

Done, bug 16503.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64653</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-18 11:33:03 -0800</bug_when>
    <thetext>Committed revision 28833.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17953</attachid>
            <date>2007-12-17 01:08:50 -0800</date>
            <delta_ts>2007-12-17 01:09:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>MatchLimitPatch.txt</filename>
            <type>text/plain</type>
            <size>12160</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4Nzk5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMTItMTcgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0NTgKKyAgICAgICAgICBSRUdSRVNTSU9OIChyMjgxNjQpOiByZWd1bGFyIGV4
cHJlc3Npb25zIGNhbiBub3cgaGFuZyBkdWUgdG8gbGFjayBvZiBhIG1hdGNoIGxpbWl0CisgICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MzYwNjc+CisKKyAgICAgICAgVGVzdDogZmFzdC9yZWdl
eC9zbG93Lmh0bWwKKworICAgICAgICAqIHBjcmUvcGNyZS5oOiBDaGFuZ2VkIG5hbWUgb2YgZXJy
b3IgY29kZSB0byBub3Qgc3BlY2lmaWNhbGx5IG1lbnRpb24gInJlY3Vyc2lvbiIuCisgICAgICAg
ICogcGNyZS9wY3JlX2V4ZWMuY3BwOgorICAgICAgICAobWF0Y2gpOiBSZXBsYWNlZCB0aGUgZGVw
dGggbGltaXQsIE1BVENIX1JFQ1VSU0lPTl9MSU1JVCwgd2l0aCBhIHRvdGFsIG1hdGNoIGxvb3Bp
bmcKKyAgICAgICAgbGltaXQsIG1hdGNoTGltaXQuIEFsc28gZWxpbWluYXRlZCB0aGUgY29uc3Rh
bnRzIGZvciBNQVRDSF9NQVRDSCBhbmQgTUFUQ0hfTk9NQVRDSCwKKyAgICAgICAgc2luY2UgdGhl
eSBhcmUganVzdCB0cnVlIGFuZCBmYWxzZSAoMSBhbmQgMCkuCisgICAgICAgIChqc1JlZ0V4cEV4
ZWN1dGUpOiBNb3JlIG9mIHRoZSBNQVRDSF9NQVRDSCBjaGFuZ2UuCisKIDIwMDctMTItMTcgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gc3BlY3VsYXRpdmUgYnVp
bGQgZml4IGZvciBub24tZ2NjIHBsYXRmb3JtcwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHJldmlzaW9u
IDI4NzkxKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDcgKzUxLDcgQEAgZW51bSBKU1JlZ0V4cE11bHRpbGluZU9wdGlvbiB7IEpTUmVnRXhwUwog
CiAvKiBqc1JlZ0V4cEV4ZWN1dGUgZXJyb3IgY29kZXMgKi8KIGNvbnN0IGludCBKU1JlZ0V4cEVy
cm9yTm9NYXRjaCA9IC0xOwotY29uc3QgaW50IEpTUmVnRXhwRXJyb3JSZWN1cnNpb25MaW1pdCA9
IC0yOworY29uc3QgaW50IEpTUmVnRXhwRXJyb3JIaXRMaW1pdCA9IC0yOwogY29uc3QgaW50IEpT
UmVnRXhwRXJyb3JOb01lbW9yeSA9IC0zOwogY29uc3QgaW50IEpTUmVnRXhwRXJyb3JJbnRlcm5h
bCA9IC00OwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCShyZXZpc2lvbiAyODc5
OSkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIxLDI1ICsxMjEsMTUgQEAgc3RydWN0IE1hdGNoRGF0YSB7CiAgIGJvb2wgICBpZ25vcmVD
YXNlOwogfTsKIAotLyogTm9uLWVycm9yIHJldHVybnMgZnJvbSB0aGUgbWF0Y2goKSBmdW5jdGlv
bi4gRXJyb3IgcmV0dXJucyBhcmUgZXh0ZXJuYWxseQotZGVmaW5lZCBlcnJvciBjb2Rlcywgd2hp
Y2ggYXJlIGFsbCBuZWdhdGl2ZS4gKi8KLQotI2RlZmluZSBNQVRDSF9NQVRDSCAgICAgICAgMQot
I2RlZmluZSBNQVRDSF9OT01BVENIICAgICAgMAotCiAvKiBUaGUgbWF4aW11bSByZW1haW5pbmcg
bGVuZ3RoIG9mIHN1YmplY3Qgd2UgYXJlIHByZXBhcmVkIHRvIHNlYXJjaCBmb3IgYQogcmVxX2J5
dGUgbWF0Y2guICovCiAKICNkZWZpbmUgUkVRX0JZVEVfTUFYIDEwMDAKIAotLyogVGhlIGJlbG93
IGxpbWl0IHJlc3RyaWN0cyB0aGUgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBtYXRjaCBjYWxscyBpbiBv
cmRlciB0bwotbGltaXQgdGhlIG1heGltdW0gYW1vdW50IG9mIHN0b3JhZ2UuCi0gCi1UaGlzIGxp
bWl0IGlzIHRpZWQgdG8gdGhlIHNpemUgb2YgTWF0Y2hGcmFtZS4gIFJpZ2h0IG5vdyB3ZSBhbGxv
dyBQQ1JFIHRvIGFsbG9jYXRlIHVwCi10byBNQVRDSF9SRUNVUlNJT05fTElNSVQgLSAxNiAqIHNp
emVvZihNYXRjaEZyYW1lKSBieXRlcyBvZiAic3RhY2siIHNwYWNlIGJlZm9yZSB3ZSBnaXZlIHVw
LgotQ3VycmVudGx5IHRoYXQncyAxMDAwMDAgLSAxNiAqICgyMyAqIDQpICB+IDkwTUIuICovCisv
KiBUaGUgYmVsb3cgbGltaXQgcmVzdHJpY3RzIHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2ZSIgbWF0
Y2ggY2FsbHMgaW4gb3JkZXIgdG8KK2F2b2lkIHNwZW5kaW5nIGV4cG9uZW50aWFsIHRpbWUgb24g
Y29tcGxleCByZWd1bGFyIGV4cHJlc3Npb25zLiAqLwogCi0jZGVmaW5lIE1BVENIX1JFQ1VSU0lP
Tl9MSU1JVCAxMDAwMDAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXRjaExpbWl0ID0gMTAwMDAw
OwogCiAjaWZkZWYgREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCkBAIC0yNTEsOCArMjQxLDggQEAgYSBiaXQgbW9yZSBjb2RlIGFuZCBub3Rp
Y2UgaWYgd2UgdXNlIGNvbgogI2VuZGlmCiAKICNkZWZpbmUgUkVDVVJTSVZFX01BVENIX0NPTU1P
TihudW0pIFwKLSAgICBpZiAoc3RhY2suc2l6ZSA+PSBNQVRDSF9SRUNVUlNJT05fTElNSVQpIFwK
LSAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNSZWdFeHBFcnJvclJlY3Vyc2lvbkxpbWl0LCBz
dGFjayk7IFwKKyAgICBpZiAoKyttYXRjaENvdW50ID4gbWF0Y2hMaW1pdCkgXAorICAgICAgICBy
ZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySGl0TGltaXQsIHN0YWNrKTsgXAogICAgIGdv
dG8gUkVDVVJTRTtcCiAgICAgUlJFVFVSTl8jI251bTogXAogICAgIHN0YWNrLnBvcEN1cnJlbnRG
cmFtZSgpOwpAQCAtMjkxLDggKzI4MSw4IEBAIEFyZ3VtZW50czoKICAgIG9mZnNldFRvcCAgY3Vy
cmVudCB0b3AgcG9pbnRlcgogICAgbWQgICAgICAgICAgcG9pbnRlciB0byAic3RhdGljIiBpbmZv
IGZvciB0aGUgbWF0Y2gKIAotUmV0dXJuczogICAgICAgTUFUQ0hfTUFUQ0ggaWYgbWF0Y2hlZCAg
ICAgICAgICAgICkgIHRoZXNlIHZhbHVlcyBhcmUgPj0gMAotICAgICAgICAgICAgICAgTUFUQ0hf
Tk9NQVRDSCBpZiBmYWlsZWQgdG8gbWF0Y2ggICkKK1JldHVybnM6ICAgICAgIDEgaWYgbWF0Y2hl
ZCAgICAgICAgICApICB0aGVzZSB2YWx1ZXMgYXJlID49IDAKKyAgICAgICAgICAgICAgIDAgaWYg
ZmFpbGVkIHRvIG1hdGNoICApCiAgICAgICAgICAgICAgICBhIG5lZ2F0aXZlIGVycm9yIHZhbHVl
IGlmIGFib3J0ZWQgYnkgYW4gZXJyb3IgY29uZGl0aW9uCiAgICAgICAgICAgICAgICAgIChlLmcu
IHN0b3BwZWQgYnkgcmVwZWF0ZWQgY2FsbCBvciByZWN1cnNpb24gbGltaXQpCiAqLwpAQCAtNDA3
LDkgKzM5NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVwZWF0SW5mb3JtYXRpb25Gcm9tCiAK
IHN0YXRpYyBpbnQgbWF0Y2goY29uc3QgVUNoYXIqIHN1YmplY3RQdHIsIGNvbnN0IHVuc2lnbmVk
IGNoYXIqIGluc3RydWN0aW9uUHRyLCBpbnQgb2Zmc2V0VG9wLCBNYXRjaERhdGEmIG1kKQogewot
ICAgIGludCBpc01hdGNoID0gZmFsc2U7CisgICAgYm9vbCBpc01hdGNoID0gZmFsc2U7CiAgICAg
aW50IG1pbjsKICAgICBib29sIG1pbmltaXplID0gZmFsc2U7IC8qIEluaXRpYWxpemF0aW9uIG5v
dCByZWFsbHkgbmVlZGVkLCBidXQgc29tZSBjb21waWxlcnMgdGhpbmsgc28uICovCisgICAgdW5z
aWduZWQgbWF0Y2hDb3VudCA9IDA7CiAgICAgCiAgICAgTWF0Y2hTdGFjayBzdGFjazsKIApAQCAt
NTYzLDcgKzU1NCw3IEBAIFJFQ1VSU0U6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAvKiBFbmQgb2YgYSBncm91cCwgcmVwZWF0ZWQgb3Igbm9uLXJlcGVhdGlu
Zy4gSWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YKLSAgICAgICAgICAgICBhbiBhc3NlcnRpb24gImdy
b3VwIiwgc3RvcCBtYXRjaGluZyBhbmQgcmV0dXJuIE1BVENIX01BVENILCBidXQgcmVjb3JkIHRo
ZQorICAgICAgICAgICAgIGFuIGFzc2VydGlvbiAiZ3JvdXAiLCBzdG9wIG1hdGNoaW5nIGFuZCBy
ZXR1cm4gMSwgYnV0IHJlY29yZCB0aGUKICAgICAgICAgICAgICBjdXJyZW50IGhpZ2ggd2F0ZXIg
bWFyayBmb3IgdXNlIGJ5IHBvc2l0aXZlIGFzc2VydGlvbnMuIERvIHRoaXMgYWxzbwogICAgICAg
ICAgICAgIGZvciB0aGUgIm9uY2UiIChub3QtYmFja3VwIHVwKSBncm91cHMuICovCiAgICAgICAg
ICAgICAgICAgCkBAIC0xNzc5LDcgKzE3NzAsNiBAQCBSUkVUVVJOX1NXSVRDSDoKICNlbmRpZgog
ICAgIAogUkVUVVJOOgotICAgIEFTU0VSVChpc01hdGNoID09IE1BVENIX01BVENIIHx8IGlzTWF0
Y2ggPT0gTUFUQ0hfTk9NQVRDSCk7CiAgICAgcmV0dXJuIGlzTWF0Y2g7CiB9CiAKQEAgLTIwMTIs
MTMgKzIwMDIsMTMgQEAgaW50IGpzUmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCiAg
ICAgICAgIAogICAgICAgICAvKiBXaGVuIHRoZSByZXN1bHQgaXMgbm8gbWF0Y2gsIGFkdmFuY2Ug
dGhlIHBvaW50ZXIgdG8gdGhlIG5leHQgY2hhcmFjdGVyCiAgICAgICAgICBhbmQgY29udGludWUu
ICovCi0gICAgICAgIAotICAgICAgICBpZiAocmV0dXJuQ29kZSA9PSBNQVRDSF9OT01BVENIKSB7
CisgICAgICAgIGlmIChyZXR1cm5Db2RlID09IGZhbHNlKSB7CiAgICAgICAgICAgICBzdGFydE1h
dGNoKys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgaWYgKHJldHVybkNvZGUgIT0gTUFUQ0hfTUFUQ0gpIHsKKworICAgICAgICBpZiAocmV0dXJu
Q29kZSAhPSB0cnVlKSB7CisgICAgICAgICAgICBBU1NFUlQocmV0dXJuQ29kZSA9PSBKU1JlZ0V4
cEVycm9ySGl0TGltaXQgfHwgcmV0dXJuQ29kZSA9PSBKU1JlZ0V4cEVycm9yTm9NZW1vcnkpOwog
ICAgICAgICAgICAgRFBSSU5URigoIj4+Pj4gZXJyb3I6IHJldHVybmluZyAlZFxuIiwgcmMpKTsK
ICAgICAgICAgICAgIHJldHVybiByZXR1cm5Db2RlOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyODc5OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE2IEBACisyMDA3LTEyLTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHRlc3Qg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDU4CisgICAgICAg
ICAgUkVHUkVTU0lPTiAocjI4MTY0KTogcmVndWxhciBleHByZXNzaW9ucyBjYW4gbm93IGhhbmcg
ZHVlIHRvIGxhY2sgb2YgYSBtYXRjaCBsaW1pdAorCisgICAgICAgICogZmFzdC9yZWdleC9yZXNv
dXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0
bWw6IENvcGllZCBmcm9tIGZhc3QvanMvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwuCisgICAgICAg
ICogZmFzdC9yZWdleC9yZXNvdXJjZXMvc2xvdy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdleC9zbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdleC9zbG93
Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTEyLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICAqIGZhc3QvanMvcmVnZXhwLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogVXBk
YXRlZC4gSSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbiBhbgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9zZWxlY3Qtb3B0aW9ucy1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL3NlbGVjdC1vcHRpb25zLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyODc5MSkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvc2VsZWN0LW9wdGlvbnMtcmVtb3ZlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTcsMjcgKzcsNiBAQAogPGJvZHk+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdj4KLTxzZWxlY3QgaWQ9InNlbGVjdDEiPjwv
c2VsZWN0PgotPHNlbGVjdCBpZD0ic2VsZWN0MiI+Ci08b3B0aW9uIHZhbHVlPSJBIj4xPC9vcHRp
b24+Ci08b3B0aW9uIHZhbHVlPSJCIj4yPC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJDIj4zPC9v
cHRpb24+Ci08b3B0aW9uIHZhbHVlPSJEIj40PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJFIj41
PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJGIj42PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJH
Ij43PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJIIj44PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVl
PSJJIj45PC9vcHRpb24+Ci08b3B0aW9uIHZhbHVlPSJKIj4xMDwvb3B0aW9uPgotPG9wdGlvbiB2
YWx1ZT0iSyI+MTE8L29wdGlvbj4KLTxvcHRpb24gdmFsdWU9IkwiPjEyPC9vcHRpb24+Ci08b3B0
aW9uIHZhbHVlPSJNIj4xMzwvb3B0aW9uPgotPG9wdGlvbiB2YWx1ZT0iTiI+MTQ8L29wdGlvbj4K
LTxvcHRpb24gdmFsdWU9Ik8iIHNlbGVjdGVkPSJzZWxlY3RlZCI+MTU8L29wdGlvbj4KLTxvcHRp
b24gdmFsdWU9IlAiPjE2PC9vcHRpb24+Ci08L3NlbGVjdD4KLTwvZGl2PgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zZWxlY3Qtb3B0aW9ucy1yZW1vdmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nsb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMCBAQAorVGVzdCBmb3IgZXhwcmVzc2lvbnMgdGhhdCB3b3VsZCBoYW5nIHdoZW4g
ZXZhbHVhdGVkIGR1ZSB0byBleHBvbmVudGlhbCBtYXRjaGluZyBiZWhhdmlvci4gSWYgdGhlIHRl
c3QgZG9lcyBub3QgaGFuZyBpdCBpcyBhIHN1Y2Nlc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIC8oPzpbXig/ISldfHwpezIzfXovLnRlc3QoIi8oPzpbXig/ISldfHwp
ezIzfXovIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4
L3Nsb3ctZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5h
dGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2xvdy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2xvdy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2xv
dy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nsb3cuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1l
LXR5cGUKICAgKyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAko
cmV2aXNpb24gMjg3OTEpCShmcm9tIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL1RFTVBM
QVRFLmh0bWw6Mjg3OTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1Q
TEFURS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFURS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFU
RS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiA8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KIDxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9zbG93LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL3Nsb3cuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9zbG93LmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK2Rlc2NyaXB0aW9uKAorJ1Rlc3QgZm9yIGV4cHJlc3Np
b25zIHRoYXQgd291bGQgaGFuZyB3aGVuIGV2YWx1YXRlZCBkdWUgdG8gZXhwb25lbnRpYWwgbWF0
Y2hpbmcgYmVoYXZpb3IuIElmIHRoZSB0ZXN0IGRvZXMgbm90IGhhbmcgaXQgaXMgYSBzdWNjZXNz
LicKKyk7CisKK3Nob3VsZEJlKCcvKD86W14oPyEpXXx8KXsyM316Ly50ZXN0KCIvKD86W14oPyEp
XXx8KXsyM316LyIpJywgJ2ZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL2Zhc3QvY3NzL2NzczItc3lz
dGVtLWNvbG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtdGlnZXIvZmFzdC9jc3MvY3NzMi1zeXN0ZW0tY29sb3ItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyODc5MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9mYXN0L2Nzcy9j
c3MyLXN5c3RlbS1jb2xvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlckJsb2NrIChm
bG9hdGluZykge0RJVn0gYXQgKDAsMCkgc2l6ZSA2NHgxMgogICAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjR4MTIKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNjQ6ICJBY3RpdmVCb3JkZXIiCi0gICAgICAgICAgUmVuZGVyQmxvY2sgKGZs
b2F0aW5nKSB7RElWfSBhdCAoMTMwLDApIHNpemUgNjIweDEyIFtiZ2NvbG9yPSM4OUFERDVdCisg
ICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMTMwLDApIHNpemUgNjIw
eDEyIFtiZ2NvbG9yPSM3RUFERDldCiAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA0eDEyCiAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgogICAgICAgICAgIFJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIGF0ICgwLDEyKSBzaXplIDc1
MHgwCkBAIC05OCw3ICs5OCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDAsMCkgc2l6ZSA0NXgxMgogICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDV4MTIKICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDU6ICJIaWdobGlnaHQiCi0gICAgICAgICAg
UmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMTMwLDApIHNpemUgNjIweDEyIFtiZ2Nv
bG9yPSNCQ0Q2RkJdCisgICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAo
MTMwLDApIHNpemUgNjIweDEyIFtiZ2NvbG9yPSNCNUQ1RkZdCiAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDEyCiAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ6ICIgIgogICAgICAgICAgIFJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIGF0
ICgwLDEyKSBzaXplIDc1MHgwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17954</attachid>
            <date>2007-12-17 01:09:44 -0800</date>
            <delta_ts>2007-12-17 01:13:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>MatchLimitPatch.txt</filename>
            <type>text/plain</type>
            <size>9734</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4Nzk5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMTItMTcgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0NTgKKyAgICAgICAgICBSRUdSRVNTSU9OIChyMjgxNjQpOiByZWd1bGFyIGV4
cHJlc3Npb25zIGNhbiBub3cgaGFuZyBkdWUgdG8gbGFjayBvZiBhIG1hdGNoIGxpbWl0CisgICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MzYwNjc+CisKKyAgICAgICAgVGVzdDogZmFzdC9yZWdl
eC9zbG93Lmh0bWwKKworICAgICAgICAqIHBjcmUvcGNyZS5oOiBDaGFuZ2VkIG5hbWUgb2YgZXJy
b3IgY29kZSB0byBub3Qgc3BlY2lmaWNhbGx5IG1lbnRpb24gInJlY3Vyc2lvbiIuCisgICAgICAg
ICogcGNyZS9wY3JlX2V4ZWMuY3BwOgorICAgICAgICAobWF0Y2gpOiBSZXBsYWNlZCB0aGUgZGVw
dGggbGltaXQsIE1BVENIX1JFQ1VSU0lPTl9MSU1JVCwgd2l0aCBhIHRvdGFsIG1hdGNoIGxvb3Bp
bmcKKyAgICAgICAgbGltaXQsIG1hdGNoTGltaXQuIEFsc28gZWxpbWluYXRlZCB0aGUgY29uc3Rh
bnRzIGZvciBNQVRDSF9NQVRDSCBhbmQgTUFUQ0hfTk9NQVRDSCwKKyAgICAgICAgc2luY2UgdGhl
eSBhcmUganVzdCB0cnVlIGFuZCBmYWxzZSAoMSBhbmQgMCkuCisgICAgICAgIChqc1JlZ0V4cEV4
ZWN1dGUpOiBNb3JlIG9mIHRoZSBNQVRDSF9NQVRDSCBjaGFuZ2UuCisKIDIwMDctMTItMTcgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gc3BlY3VsYXRpdmUgYnVp
bGQgZml4IGZvciBub24tZ2NjIHBsYXRmb3JtcwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHJldmlzaW9u
IDI4NzkxKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDcgKzUxLDcgQEAgZW51bSBKU1JlZ0V4cE11bHRpbGluZU9wdGlvbiB7IEpTUmVnRXhwUwog
CiAvKiBqc1JlZ0V4cEV4ZWN1dGUgZXJyb3IgY29kZXMgKi8KIGNvbnN0IGludCBKU1JlZ0V4cEVy
cm9yTm9NYXRjaCA9IC0xOwotY29uc3QgaW50IEpTUmVnRXhwRXJyb3JSZWN1cnNpb25MaW1pdCA9
IC0yOworY29uc3QgaW50IEpTUmVnRXhwRXJyb3JIaXRMaW1pdCA9IC0yOwogY29uc3QgaW50IEpT
UmVnRXhwRXJyb3JOb01lbW9yeSA9IC0zOwogY29uc3QgaW50IEpTUmVnRXhwRXJyb3JJbnRlcm5h
bCA9IC00OwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCShyZXZpc2lvbiAyODc5
OSkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIxLDI1ICsxMjEsMTUgQEAgc3RydWN0IE1hdGNoRGF0YSB7CiAgIGJvb2wgICBpZ25vcmVD
YXNlOwogfTsKIAotLyogTm9uLWVycm9yIHJldHVybnMgZnJvbSB0aGUgbWF0Y2goKSBmdW5jdGlv
bi4gRXJyb3IgcmV0dXJucyBhcmUgZXh0ZXJuYWxseQotZGVmaW5lZCBlcnJvciBjb2Rlcywgd2hp
Y2ggYXJlIGFsbCBuZWdhdGl2ZS4gKi8KLQotI2RlZmluZSBNQVRDSF9NQVRDSCAgICAgICAgMQot
I2RlZmluZSBNQVRDSF9OT01BVENIICAgICAgMAotCiAvKiBUaGUgbWF4aW11bSByZW1haW5pbmcg
bGVuZ3RoIG9mIHN1YmplY3Qgd2UgYXJlIHByZXBhcmVkIHRvIHNlYXJjaCBmb3IgYQogcmVxX2J5
dGUgbWF0Y2guICovCiAKICNkZWZpbmUgUkVRX0JZVEVfTUFYIDEwMDAKIAotLyogVGhlIGJlbG93
IGxpbWl0IHJlc3RyaWN0cyB0aGUgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBtYXRjaCBjYWxscyBpbiBv
cmRlciB0bwotbGltaXQgdGhlIG1heGltdW0gYW1vdW50IG9mIHN0b3JhZ2UuCi0gCi1UaGlzIGxp
bWl0IGlzIHRpZWQgdG8gdGhlIHNpemUgb2YgTWF0Y2hGcmFtZS4gIFJpZ2h0IG5vdyB3ZSBhbGxv
dyBQQ1JFIHRvIGFsbG9jYXRlIHVwCi10byBNQVRDSF9SRUNVUlNJT05fTElNSVQgLSAxNiAqIHNp
emVvZihNYXRjaEZyYW1lKSBieXRlcyBvZiAic3RhY2siIHNwYWNlIGJlZm9yZSB3ZSBnaXZlIHVw
LgotQ3VycmVudGx5IHRoYXQncyAxMDAwMDAgLSAxNiAqICgyMyAqIDQpICB+IDkwTUIuICovCisv
KiBUaGUgYmVsb3cgbGltaXQgcmVzdHJpY3RzIHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2ZSIgbWF0
Y2ggY2FsbHMgaW4gb3JkZXIgdG8KK2F2b2lkIHNwZW5kaW5nIGV4cG9uZW50aWFsIHRpbWUgb24g
Y29tcGxleCByZWd1bGFyIGV4cHJlc3Npb25zLiAqLwogCi0jZGVmaW5lIE1BVENIX1JFQ1VSU0lP
Tl9MSU1JVCAxMDAwMDAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXRjaExpbWl0ID0gMTAwMDAw
OwogCiAjaWZkZWYgREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCkBAIC0yNTEsOCArMjQxLDggQEAgYSBiaXQgbW9yZSBjb2RlIGFuZCBub3Rp
Y2UgaWYgd2UgdXNlIGNvbgogI2VuZGlmCiAKICNkZWZpbmUgUkVDVVJTSVZFX01BVENIX0NPTU1P
TihudW0pIFwKLSAgICBpZiAoc3RhY2suc2l6ZSA+PSBNQVRDSF9SRUNVUlNJT05fTElNSVQpIFwK
LSAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNSZWdFeHBFcnJvclJlY3Vyc2lvbkxpbWl0LCBz
dGFjayk7IFwKKyAgICBpZiAoKyttYXRjaENvdW50ID4gbWF0Y2hMaW1pdCkgXAorICAgICAgICBy
ZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySGl0TGltaXQsIHN0YWNrKTsgXAogICAgIGdv
dG8gUkVDVVJTRTtcCiAgICAgUlJFVFVSTl8jI251bTogXAogICAgIHN0YWNrLnBvcEN1cnJlbnRG
cmFtZSgpOwpAQCAtMjkxLDggKzI4MSw4IEBAIEFyZ3VtZW50czoKICAgIG9mZnNldFRvcCAgY3Vy
cmVudCB0b3AgcG9pbnRlcgogICAgbWQgICAgICAgICAgcG9pbnRlciB0byAic3RhdGljIiBpbmZv
IGZvciB0aGUgbWF0Y2gKIAotUmV0dXJuczogICAgICAgTUFUQ0hfTUFUQ0ggaWYgbWF0Y2hlZCAg
ICAgICAgICAgICkgIHRoZXNlIHZhbHVlcyBhcmUgPj0gMAotICAgICAgICAgICAgICAgTUFUQ0hf
Tk9NQVRDSCBpZiBmYWlsZWQgdG8gbWF0Y2ggICkKK1JldHVybnM6ICAgICAgIDEgaWYgbWF0Y2hl
ZCAgICAgICAgICApICB0aGVzZSB2YWx1ZXMgYXJlID49IDAKKyAgICAgICAgICAgICAgIDAgaWYg
ZmFpbGVkIHRvIG1hdGNoICApCiAgICAgICAgICAgICAgICBhIG5lZ2F0aXZlIGVycm9yIHZhbHVl
IGlmIGFib3J0ZWQgYnkgYW4gZXJyb3IgY29uZGl0aW9uCiAgICAgICAgICAgICAgICAgIChlLmcu
IHN0b3BwZWQgYnkgcmVwZWF0ZWQgY2FsbCBvciByZWN1cnNpb24gbGltaXQpCiAqLwpAQCAtNDA3
LDkgKzM5NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVwZWF0SW5mb3JtYXRpb25Gcm9tCiAK
IHN0YXRpYyBpbnQgbWF0Y2goY29uc3QgVUNoYXIqIHN1YmplY3RQdHIsIGNvbnN0IHVuc2lnbmVk
IGNoYXIqIGluc3RydWN0aW9uUHRyLCBpbnQgb2Zmc2V0VG9wLCBNYXRjaERhdGEmIG1kKQogewot
ICAgIGludCBpc01hdGNoID0gZmFsc2U7CisgICAgYm9vbCBpc01hdGNoID0gZmFsc2U7CiAgICAg
aW50IG1pbjsKICAgICBib29sIG1pbmltaXplID0gZmFsc2U7IC8qIEluaXRpYWxpemF0aW9uIG5v
dCByZWFsbHkgbmVlZGVkLCBidXQgc29tZSBjb21waWxlcnMgdGhpbmsgc28uICovCisgICAgdW5z
aWduZWQgbWF0Y2hDb3VudCA9IDA7CiAgICAgCiAgICAgTWF0Y2hTdGFjayBzdGFjazsKIApAQCAt
NTYzLDcgKzU1NCw3IEBAIFJFQ1VSU0U6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAvKiBFbmQgb2YgYSBncm91cCwgcmVwZWF0ZWQgb3Igbm9uLXJlcGVhdGlu
Zy4gSWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YKLSAgICAgICAgICAgICBhbiBhc3NlcnRpb24gImdy
b3VwIiwgc3RvcCBtYXRjaGluZyBhbmQgcmV0dXJuIE1BVENIX01BVENILCBidXQgcmVjb3JkIHRo
ZQorICAgICAgICAgICAgIGFuIGFzc2VydGlvbiAiZ3JvdXAiLCBzdG9wIG1hdGNoaW5nIGFuZCBy
ZXR1cm4gMSwgYnV0IHJlY29yZCB0aGUKICAgICAgICAgICAgICBjdXJyZW50IGhpZ2ggd2F0ZXIg
bWFyayBmb3IgdXNlIGJ5IHBvc2l0aXZlIGFzc2VydGlvbnMuIERvIHRoaXMgYWxzbwogICAgICAg
ICAgICAgIGZvciB0aGUgIm9uY2UiIChub3QtYmFja3VwIHVwKSBncm91cHMuICovCiAgICAgICAg
ICAgICAgICAgCkBAIC0xNzc5LDcgKzE3NzAsNiBAQCBSUkVUVVJOX1NXSVRDSDoKICNlbmRpZgog
ICAgIAogUkVUVVJOOgotICAgIEFTU0VSVChpc01hdGNoID09IE1BVENIX01BVENIIHx8IGlzTWF0
Y2ggPT0gTUFUQ0hfTk9NQVRDSCk7CiAgICAgcmV0dXJuIGlzTWF0Y2g7CiB9CiAKQEAgLTIwMTIs
MTMgKzIwMDIsMTMgQEAgaW50IGpzUmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCiAg
ICAgICAgIAogICAgICAgICAvKiBXaGVuIHRoZSByZXN1bHQgaXMgbm8gbWF0Y2gsIGFkdmFuY2Ug
dGhlIHBvaW50ZXIgdG8gdGhlIG5leHQgY2hhcmFjdGVyCiAgICAgICAgICBhbmQgY29udGludWUu
ICovCi0gICAgICAgIAotICAgICAgICBpZiAocmV0dXJuQ29kZSA9PSBNQVRDSF9OT01BVENIKSB7
CisgICAgICAgIGlmIChyZXR1cm5Db2RlID09IGZhbHNlKSB7CiAgICAgICAgICAgICBzdGFydE1h
dGNoKys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgaWYgKHJldHVybkNvZGUgIT0gTUFUQ0hfTUFUQ0gpIHsKKworICAgICAgICBpZiAocmV0dXJu
Q29kZSAhPSB0cnVlKSB7CisgICAgICAgICAgICBBU1NFUlQocmV0dXJuQ29kZSA9PSBKU1JlZ0V4
cEVycm9ySGl0TGltaXQgfHwgcmV0dXJuQ29kZSA9PSBKU1JlZ0V4cEVycm9yTm9NZW1vcnkpOwog
ICAgICAgICAgICAgRFBSSU5URigoIj4+Pj4gZXJyb3I6IHJldHVybmluZyAlZFxuIiwgcmMpKTsK
ICAgICAgICAgICAgIHJldHVybiByZXR1cm5Db2RlOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyODc5OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE2IEBACisyMDA3LTEyLTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHRlc3Qg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDU4CisgICAgICAg
ICAgUkVHUkVTU0lPTiAocjI4MTY0KTogcmVndWxhciBleHByZXNzaW9ucyBjYW4gbm93IGhhbmcg
ZHVlIHRvIGxhY2sgb2YgYSBtYXRjaCBsaW1pdAorCisgICAgICAgICogZmFzdC9yZWdleC9yZXNv
dXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0
bWw6IENvcGllZCBmcm9tIGZhc3QvanMvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwuCisgICAgICAg
ICogZmFzdC9yZWdleC9yZXNvdXJjZXMvc2xvdy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdleC9zbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdleC9zbG93
Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTEyLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICAqIGZhc3QvanMvcmVnZXhwLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogVXBk
YXRlZC4gSSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbiBhbgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3JlZ2V4L3Nsb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAor
VGVzdCBmb3IgZXhwcmVzc2lvbnMgdGhhdCB3b3VsZCBoYW5nIHdoZW4gZXZhbHVhdGVkIGR1ZSB0
byBleHBvbmVudGlhbCBtYXRjaGluZyBiZWhhdmlvci4gSWYgdGhlIHRlc3QgZG9lcyBub3QgaGFu
ZyBpdCBpcyBhIHN1Y2Nlc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IC8oPzpbXig/ISldfHwpezIzfXovLnRlc3QoIi8oPzpbXig/ISldfHwpezIzfXovIikgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nsb3ctZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvcmVnZXgvc2xvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvcmVnZXgvc2xvdy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZWdleC9zbG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2xvdy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0
L3JlZ2V4L3Nsb3cuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0
L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9yZWdleC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMjg3OTEp
CShmcm9tIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWw6Mjg3OTEp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFURS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZ
T1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFURS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQg
c3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9zbG93LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL3Nsb3cuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9zbG93LmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDcgQEAKK2Rlc2NyaXB0aW9uKAorJ1Rlc3QgZm9yIGV4cHJlc3Npb25zIHRoYXQgd291bGQg
aGFuZyB3aGVuIGV2YWx1YXRlZCBkdWUgdG8gZXhwb25lbnRpYWwgbWF0Y2hpbmcgYmVoYXZpb3Iu
IElmIHRoZSB0ZXN0IGRvZXMgbm90IGhhbmcgaXQgaXMgYSBzdWNjZXNzLicKKyk7CisKK3Nob3Vs
ZEJlKCcvKD86W14oPyEpXXx8KXsyM316Ly50ZXN0KCIvKD86W14oPyEpXXx8KXsyM316LyIpJywg
J2ZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17955</attachid>
            <date>2007-12-17 01:13:21 -0800</date>
            <delta_ts>2007-12-18 10:27:56 -0800</delta_ts>
            <desc>patch</desc>
            <filename>MatchLimitPatch.txt</filename>
            <type>text/plain</type>
            <size>9932</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4Nzk5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMTItMTcgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0NTgKKyAgICAgICAgICBSRUdSRVNTSU9OIChyMjgxNjQpOiByZWd1bGFyIGV4
cHJlc3Npb25zIGNhbiBub3cgaGFuZyBkdWUgdG8gbGFjayBvZiBhIG1hdGNoIGxpbWl0CisgICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MzYwNjc+CisKKyAgICAgICAgVGVzdDogZmFzdC9yZWdl
eC9zbG93Lmh0bWwKKworICAgICAgICAqIHBjcmUvcGNyZS5oOiBDaGFuZ2VkIG5hbWUgb2YgZXJy
b3IgY29kZSB0byBub3Qgc3BlY2lmaWNhbGx5IG1lbnRpb24gInJlY3Vyc2lvbiIuCisgICAgICAg
ICogcGNyZS9wY3JlX2V4ZWMuY3BwOgorICAgICAgICAobWF0Y2gpOiBSZXBsYWNlZCB0aGUgZGVw
dGggbGltaXQsIE1BVENIX1JFQ1VSU0lPTl9MSU1JVCwgd2l0aCBhIHRvdGFsIG1hdGNoIGxvb3Bp
bmcKKyAgICAgICAgbGltaXQsIG1hdGNoTGltaXQuIEFsc28gZWxpbWluYXRlZCB0aGUgY29uc3Rh
bnRzIGZvciBNQVRDSF9NQVRDSCBhbmQgTUFUQ0hfTk9NQVRDSCwKKyAgICAgICAgc2luY2UgdGhl
eSBhcmUganVzdCB0cnVlIGFuZCBmYWxzZSAoMSBhbmQgMCkuCisgICAgICAgIChqc1JlZ0V4cEV4
ZWN1dGUpOiBNb3JlIG9mIHRoZSBNQVRDSF9NQVRDSCBjaGFuZ2UuCisKIDIwMDctMTItMTcgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gc3BlY3VsYXRpdmUgYnVp
bGQgZml4IGZvciBub24tZ2NjIHBsYXRmb3JtcwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHJldmlzaW9u
IDI4NzkxKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDcgKzUxLDcgQEAgZW51bSBKU1JlZ0V4cE11bHRpbGluZU9wdGlvbiB7IEpTUmVnRXhwUwog
CiAvKiBqc1JlZ0V4cEV4ZWN1dGUgZXJyb3IgY29kZXMgKi8KIGNvbnN0IGludCBKU1JlZ0V4cEVy
cm9yTm9NYXRjaCA9IC0xOwotY29uc3QgaW50IEpTUmVnRXhwRXJyb3JSZWN1cnNpb25MaW1pdCA9
IC0yOworY29uc3QgaW50IEpTUmVnRXhwRXJyb3JIaXRMaW1pdCA9IC0yOwogY29uc3QgaW50IEpT
UmVnRXhwRXJyb3JOb01lbW9yeSA9IC0zOwogY29uc3QgaW50IEpTUmVnRXhwRXJyb3JJbnRlcm5h
bCA9IC00OwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCShyZXZpc2lvbiAyODc5
OSkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIxLDI1ICsxMjEsMTUgQEAgc3RydWN0IE1hdGNoRGF0YSB7CiAgIGJvb2wgICBpZ25vcmVD
YXNlOwogfTsKIAotLyogTm9uLWVycm9yIHJldHVybnMgZnJvbSB0aGUgbWF0Y2goKSBmdW5jdGlv
bi4gRXJyb3IgcmV0dXJucyBhcmUgZXh0ZXJuYWxseQotZGVmaW5lZCBlcnJvciBjb2Rlcywgd2hp
Y2ggYXJlIGFsbCBuZWdhdGl2ZS4gKi8KLQotI2RlZmluZSBNQVRDSF9NQVRDSCAgICAgICAgMQot
I2RlZmluZSBNQVRDSF9OT01BVENIICAgICAgMAotCiAvKiBUaGUgbWF4aW11bSByZW1haW5pbmcg
bGVuZ3RoIG9mIHN1YmplY3Qgd2UgYXJlIHByZXBhcmVkIHRvIHNlYXJjaCBmb3IgYQogcmVxX2J5
dGUgbWF0Y2guICovCiAKICNkZWZpbmUgUkVRX0JZVEVfTUFYIDEwMDAKIAotLyogVGhlIGJlbG93
IGxpbWl0IHJlc3RyaWN0cyB0aGUgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBtYXRjaCBjYWxscyBpbiBv
cmRlciB0bwotbGltaXQgdGhlIG1heGltdW0gYW1vdW50IG9mIHN0b3JhZ2UuCi0gCi1UaGlzIGxp
bWl0IGlzIHRpZWQgdG8gdGhlIHNpemUgb2YgTWF0Y2hGcmFtZS4gIFJpZ2h0IG5vdyB3ZSBhbGxv
dyBQQ1JFIHRvIGFsbG9jYXRlIHVwCi10byBNQVRDSF9SRUNVUlNJT05fTElNSVQgLSAxNiAqIHNp
emVvZihNYXRjaEZyYW1lKSBieXRlcyBvZiAic3RhY2siIHNwYWNlIGJlZm9yZSB3ZSBnaXZlIHVw
LgotQ3VycmVudGx5IHRoYXQncyAxMDAwMDAgLSAxNiAqICgyMyAqIDQpICB+IDkwTUIuICovCisv
KiBUaGUgYmVsb3cgbGltaXQgcmVzdHJpY3RzIHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2ZSIgbWF0
Y2ggY2FsbHMgaW4gb3JkZXIgdG8KK2F2b2lkIHNwZW5kaW5nIGV4cG9uZW50aWFsIHRpbWUgb24g
Y29tcGxleCByZWd1bGFyIGV4cHJlc3Npb25zLiAqLwogCi0jZGVmaW5lIE1BVENIX1JFQ1VSU0lP
Tl9MSU1JVCAxMDAwMDAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXRjaExpbWl0ID0gMTAwMDAw
OwogCiAjaWZkZWYgREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCkBAIC0yNTEsOCArMjQxLDYgQEAgYSBiaXQgbW9yZSBjb2RlIGFuZCBub3Rp
Y2UgaWYgd2UgdXNlIGNvbgogI2VuZGlmCiAKICNkZWZpbmUgUkVDVVJTSVZFX01BVENIX0NPTU1P
TihudW0pIFwKLSAgICBpZiAoc3RhY2suc2l6ZSA+PSBNQVRDSF9SRUNVUlNJT05fTElNSVQpIFwK
LSAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNSZWdFeHBFcnJvclJlY3Vyc2lvbkxpbWl0LCBz
dGFjayk7IFwKICAgICBnb3RvIFJFQ1VSU0U7XAogICAgIFJSRVRVUk5fIyNudW06IFwKICAgICBz
dGFjay5wb3BDdXJyZW50RnJhbWUoKTsKQEAgLTI5MSw4ICsyNzksOCBAQCBBcmd1bWVudHM6CiAg
ICBvZmZzZXRUb3AgIGN1cnJlbnQgdG9wIHBvaW50ZXIKICAgIG1kICAgICAgICAgIHBvaW50ZXIg
dG8gInN0YXRpYyIgaW5mbyBmb3IgdGhlIG1hdGNoCiAKLVJldHVybnM6ICAgICAgIE1BVENIX01B
VENIIGlmIG1hdGNoZWQgICAgICAgICAgICApICB0aGVzZSB2YWx1ZXMgYXJlID49IDAKLSAgICAg
ICAgICAgICAgIE1BVENIX05PTUFUQ0ggaWYgZmFpbGVkIHRvIG1hdGNoICApCitSZXR1cm5zOiAg
ICAgICAxIGlmIG1hdGNoZWQgICAgICAgICAgKSAgdGhlc2UgdmFsdWVzIGFyZSA+PSAwCisgICAg
ICAgICAgICAgICAwIGlmIGZhaWxlZCB0byBtYXRjaCAgKQogICAgICAgICAgICAgICAgYSBuZWdh
dGl2ZSBlcnJvciB2YWx1ZSBpZiBhYm9ydGVkIGJ5IGFuIGVycm9yIGNvbmRpdGlvbgogICAgICAg
ICAgICAgICAgICAoZS5nLiBzdG9wcGVkIGJ5IHJlcGVhdGVkIGNhbGwgb3IgcmVjdXJzaW9uIGxp
bWl0KQogKi8KQEAgLTQwNyw5ICszOTUsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHJlcGVhdElu
Zm9ybWF0aW9uRnJvbQogCiBzdGF0aWMgaW50IG1hdGNoKGNvbnN0IFVDaGFyKiBzdWJqZWN0UHRy
LCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnN0cnVjdGlvblB0ciwgaW50IG9mZnNldFRvcCwgTWF0
Y2hEYXRhJiBtZCkKIHsKLSAgICBpbnQgaXNNYXRjaCA9IGZhbHNlOworICAgIGJvb2wgaXNNYXRj
aCA9IGZhbHNlOwogICAgIGludCBtaW47CiAgICAgYm9vbCBtaW5pbWl6ZSA9IGZhbHNlOyAvKiBJ
bml0aWFsaXphdGlvbiBub3QgcmVhbGx5IG5lZWRlZCwgYnV0IHNvbWUgY29tcGlsZXJzIHRoaW5r
IHNvLiAqLworICAgIHVuc2lnbmVkIG1hdGNoQ291bnQgPSAwOwogICAgIAogICAgIE1hdGNoU3Rh
Y2sgc3RhY2s7CiAKQEAgLTQ0Miw2ICs0MzEsOCBAQCBzdGF0aWMgaW50IG1hdGNoKGNvbnN0IFVD
aGFyKiBzdWJqZWN0UHRyCiAgICAgLyogVGhpcyBpcyB3aGVyZSBjb250cm9sIGp1bXBzIGJhY2sg
dG8gdG8gZWZmZWN0ICJyZWN1cnNpb24iICovCiAgICAgCiBSRUNVUlNFOgorICAgIGlmICgrK21h
dGNoQ291bnQgPiBtYXRjaExpbWl0KQorICAgICAgICByZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4
cEVycm9ySGl0TGltaXQsIHN0YWNrKTsKIAogICAgIC8qIE5vdyBzdGFydCBwcm9jZXNzaW5nIHRo
ZSBvcGVyYXRpb25zLiAqLwogICAgIApAQCAtNTYzLDcgKzU1NCw3IEBAIFJFQ1VSU0U6CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAvKiBFbmQgb2YgYSBncm91
cCwgcmVwZWF0ZWQgb3Igbm9uLXJlcGVhdGluZy4gSWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YKLSAg
ICAgICAgICAgICBhbiBhc3NlcnRpb24gImdyb3VwIiwgc3RvcCBtYXRjaGluZyBhbmQgcmV0dXJu
IE1BVENIX01BVENILCBidXQgcmVjb3JkIHRoZQorICAgICAgICAgICAgIGFuIGFzc2VydGlvbiAi
Z3JvdXAiLCBzdG9wIG1hdGNoaW5nIGFuZCByZXR1cm4gMSwgYnV0IHJlY29yZCB0aGUKICAgICAg
ICAgICAgICBjdXJyZW50IGhpZ2ggd2F0ZXIgbWFyayBmb3IgdXNlIGJ5IHBvc2l0aXZlIGFzc2Vy
dGlvbnMuIERvIHRoaXMgYWxzbwogICAgICAgICAgICAgIGZvciB0aGUgIm9uY2UiIChub3QtYmFj
a3VwIHVwKSBncm91cHMuICovCiAgICAgICAgICAgICAgICAgCkBAIC0xNzc5LDcgKzE3NzAsNiBA
QCBSUkVUVVJOX1NXSVRDSDoKICNlbmRpZgogICAgIAogUkVUVVJOOgotICAgIEFTU0VSVChpc01h
dGNoID09IE1BVENIX01BVENIIHx8IGlzTWF0Y2ggPT0gTUFUQ0hfTk9NQVRDSCk7CiAgICAgcmV0
dXJuIGlzTWF0Y2g7CiB9CiAKQEAgLTIwMTIsMTMgKzIwMDIsMTMgQEAgaW50IGpzUmVnRXhwRXhl
Y3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCiAgICAgICAgIAogICAgICAgICAvKiBXaGVuIHRoZSBy
ZXN1bHQgaXMgbm8gbWF0Y2gsIGFkdmFuY2UgdGhlIHBvaW50ZXIgdG8gdGhlIG5leHQgY2hhcmFj
dGVyCiAgICAgICAgICBhbmQgY29udGludWUuICovCi0gICAgICAgIAotICAgICAgICBpZiAocmV0
dXJuQ29kZSA9PSBNQVRDSF9OT01BVENIKSB7CisgICAgICAgIGlmIChyZXR1cm5Db2RlID09IGZh
bHNlKSB7CiAgICAgICAgICAgICBzdGFydE1hdGNoKys7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHJldHVybkNvZGUgIT0gTUFUQ0hfTUFU
Q0gpIHsKKworICAgICAgICBpZiAocmV0dXJuQ29kZSAhPSB0cnVlKSB7CisgICAgICAgICAgICBB
U1NFUlQocmV0dXJuQ29kZSA9PSBKU1JlZ0V4cEVycm9ySGl0TGltaXQgfHwgcmV0dXJuQ29kZSA9
PSBKU1JlZ0V4cEVycm9yTm9NZW1vcnkpOwogICAgICAgICAgICAgRFBSSU5URigoIj4+Pj4gZXJy
b3I6IHJldHVybmluZyAlZFxuIiwgcmMpKTsKICAgICAgICAgICAgIHJldHVybiByZXR1cm5Db2Rl
OwogICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODc5OSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA3LTEyLTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAtIHRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NDU4CisgICAgICAgICAgUkVHUkVTU0lPTiAocjI4MTY0KTogcmVndWxh
ciBleHByZXNzaW9ucyBjYW4gbm93IGhhbmcgZHVlIHRvIGxhY2sgb2YgYSBtYXRjaCBsaW1pdAor
CisgICAgICAgICogZmFzdC9yZWdleC9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWw6IENvcGllZCBmcm9tIGZhc3QvanMvcmVzb3Vy
Y2VzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9yZWdleC9yZXNvdXJjZXMvc2xvdy5q
czogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdleC9zbG93Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTEyLTE2ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIGZhc3QvanMvcmVnZXhw
LW92ZXJmbG93LWV4cGVjdGVkLnR4dDogVXBkYXRlZC4gSSBhY2NpZGVudGFsbHkgY2hlY2tlZCBp
biBhbgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nsb3ctZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgZXhwcmVzc2lvbnMgdGhhdCB3b3Vs
ZCBoYW5nIHdoZW4gZXZhbHVhdGVkIGR1ZSB0byBleHBvbmVudGlhbCBtYXRjaGluZyBiZWhhdmlv
ci4gSWYgdGhlIHRlc3QgZG9lcyBub3QgaGFuZyBpdCBpcyBhIHN1Y2Nlc3MuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIC8oPzpbXig/ISldfHwpezIzfXovLnRlc3QoIi8o
PzpbXig/ISldfHwpezIzfXovIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L3JlZ2V4L3Nsb3ctZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1z
dHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2xvdy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2xvdy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zbG93Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2xvdy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nsb3cuaHRtbApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RFTVBMQVRF
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9yZXNvdXJjZXMvVEVN
UExBVEUuaHRtbAkocmV2aXNpb24gMjg3OTEpCShmcm9tIExheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL1RFTVBMQVRFLmh0bWw6Mjg3OTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jl
c291cmNlcy9URU1QTEFURS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9URU1QTEFU
RS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL1RF
TVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291
cmNlcy9URU1QTEFURS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiA8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFk
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9z
bG93LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvcmVzb3VyY2VzL3Ns
b3cuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9z
bG93LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK2Rlc2NyaXB0aW9uKAorJ1Rlc3Qg
Zm9yIGV4cHJlc3Npb25zIHRoYXQgd291bGQgaGFuZyB3aGVuIGV2YWx1YXRlZCBkdWUgdG8gZXhw
b25lbnRpYWwgbWF0Y2hpbmcgYmVoYXZpb3IuIElmIHRoZSB0ZXN0IGRvZXMgbm90IGhhbmcgaXQg
aXMgYSBzdWNjZXNzLicKKyk7CisKK3Nob3VsZEJlKCcvKD86W14oPyEpXXx8KXsyM316Ly50ZXN0
KCIvKD86W14oPyEpXXx8KXsyM316LyIpJywgJ2ZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="7788"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>