<?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>21541</bug_id>
          
          <creation_ts>2008-10-10 19:30:57 -0700</creation_ts>
          <short_desc>Move RegisterFile growth check to callee</short_desc>
          <delta_ts>2008-10-13 17:21:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          <cc>barraclough</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94968</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-10 19:30:57 -0700</bug_when>
    <thetext>We currently do the RegisterFile growth check in the caller, when it should really be in the callee, except in the case where there are too few arguments and you need to fill the unpassed ones with jsUndefined().

If we do this, then we can conceivably inline the &quot;correct number of arguments&quot; case of op_call in the generated machine code. The only thing preventing this is the check for the existence of the CodeBlock on the JSFunction, but this could possibly be done in assembly with a jump to a slow case.

I have a patch to only move the check to the callee that is a wash on V8&apos;s benchmark suite and a slight speedup on SunSpider, but I might be able to speed it up a bit more. I will post it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94969</commentid>
    <comment_count>1</comment_count>
      <attachid>24287</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-10 19:32:11 -0700</bug_when>
    <thetext>Created attachment 24287
Patch in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94970</commentid>
    <comment_count>2</comment_count>
      <attachid>24288</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-10 20:11:04 -0700</bug_when>
    <thetext>Created attachment 24288
Patch in progress

This is a 1.1% progression on SunSpider and a wash on V8. However, it is a significant speedup on DeltaBlue and Earley-Boyer, and only a wash because of a massive (hopefully random) slowdown on Richards.

I still need to implement the exception-handling correctly, and there might be a better way to do the branch to the slow case at the start of a function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94971</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-10 20:18:17 -0700</bug_when>
    <thetext>Here are the results on the V8 harness. Before:

Richards: 1530
DeltaBlue: 1165
Crypto: 2140
RayTrace: 1439
EarleyBoyer: 2894
----
Score (version 2): 1739

After:

Richards: 1640
DeltaBlue: 1216
Crypto: 2109
RayTrace: 1454
EarleyBoyer: 2939
----
Score (version 2): 1782
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94974</commentid>
    <comment_count>4</comment_count>
      <attachid>24289</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-10 20:32:41 -0700</bug_when>
    <thetext>Created attachment 24289
SunSpider harness results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95205</commentid>
    <comment_count>5</comment_count>
      <attachid>24324</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-13 14:06:34 -0700</bug_when>
    <thetext>Created attachment 24324
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95208</commentid>
    <comment_count>6</comment_count>
      <attachid>24326</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-13 14:11:33 -0700</bug_when>
    <thetext>Created attachment 24326
Proposed patch

Oops. I accidentally removed a comment that is useful in cti_op_construct_JSConstruct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95228</commentid>
    <comment_count>7</comment_count>
      <attachid>24326</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-10-13 17:03:23 -0700</bug_when>
    <thetext>Comment on attachment 24326
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95231</commentid>
    <comment_count>8</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-13 17:21:48 -0700</bug_when>
    <thetext>Landed in r37570.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24287</attachid>
            <date>2008-10-10 19:32:11 -0700</date>
            <delta_ts>2008-10-10 20:11:04 -0700</delta_ts>
            <desc>Patch in progress</desc>
            <filename>fast.diff</filename>
            <type>text/plain</type>
            <size>7590</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IFZNL0NUSS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzc0
OTQpCisrKyBWTS9DVEkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEwLDYgKzI2MTAsMTcgQEAg
dm9pZCBDVEk6OnByaXZhdGVDb21waWxlKCkKICAgICBtX2ppdC5wb3BsX3IoWDg2OjplY3gpOwog
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihYODY6OmVjeCwgUmVnaXN0ZXJGaWxlOjpSZXR1
cm5QQyk7CiAKKyAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSkg
eworICAgICAgICBlbWl0R2V0Q1RJUGFyYW0oQ1RJX0FSR1NfcmVnaXN0ZXJGaWxlLCBYODY6OmVh
eCk7CisgICAgICAgIG1faml0LmxlYWxfbXIobV9jb2RlQmxvY2stPm51bUNhbGxlZVJlZ2lzdGVy
cyAqIHNpemVvZihSZWdpc3RlciksIFg4Njo6ZWRpLCBYODY6OmVkeCk7CisgICAgICAgIG1faml0
LmNtcGxfbXIoT0JKRUNUX09GRlNFVChSZWdpc3RlckZpbGUsIG1fZW5kKSwgWDg2OjplYXgsIFg4
Njo6ZWR4KTsKKyAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgc2tpcFJlZ2lzdGVyRmlsZUdy
b3cgPSBtX2ppdC5lbWl0VW5saW5rZWRKbGUoKTsKKworICAgICAgICBlbWl0Q2FsbCgwLCBNYWNo
aW5lOjpjdGlfcmVnaXN0ZXJfZmlsZV9jaGVjayk7CisKKyAgICAgICAgbV9qaXQubGluayhza2lw
UmVnaXN0ZXJGaWxlR3JvdywgbV9qaXQubGFiZWwoKSk7CisgICAgfQorCiAgICAgcHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlTGlua1Bhc3MoKTsKICAgICBwcml2
YXRlQ29tcGlsZVNsb3dDYXNlcygpOwpJbmRleDogVk0vTWFjaGluZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVk0vTWFjaGluZS5jcHAJKHJldmlzaW9uIDM3NDk0KQorKysgVk0vTWFjaGluZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU3MSw2ICs1NzEsMzUgQEAgQUxXQVlTX0lOTElORSBDYWxsRnJhbWUq
IE1hY2hpbmU6OnNsaWRlUgogICAgIHJldHVybiBDYWxsRnJhbWU6OmNyZWF0ZShyKTsKIH0KIAor
QUxXQVlTX0lOTElORSBDYWxsRnJhbWUqIE1hY2hpbmU6OnNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JD
VElDYWxsKENvZGVCbG9jayogbmV3Q29kZUJsb2NrLCBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmls
ZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHNpemVfdCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ2Mp
Cit7CisgICAgaWYgKExJS0VMWShhcmdjID09IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycykp
CisgICAgICAgIHJldHVybiBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygp
ICsgcmVnaXN0ZXJPZmZzZXQpOworCisgICAgaWYgKGFyZ2MgPiBuZXdDb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMpIHsKKyAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBuZXdDb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnM7CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSArIHJlZ2lzdGVyT2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKKworICAgICAgICBSZWdpc3Rl
ciogYXJndiA9IHIgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBudW1QYXJh
bWV0ZXJzIC0gYXJnYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1QYXJhbWV0
ZXJzOyArK2kpCisgICAgICAgICAgICBhcmd2W2kgKyBhcmdjXSA9IGFyZ3ZbaV07CisKKyAgICAg
ICAgcmV0dXJuIENhbGxGcmFtZTo6Y3JlYXRlKHIpOworICAgIH0KKworICAgIHNpemVfdCBvbWl0
dGVkQXJnQ291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdjOworICAgIFJl
Z2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0ICsgb21p
dHRlZEFyZ0NvdW50OworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSByICsgbmV3Q29kZUJsb2NrLT5u
dW1DYWxsZWVSZWdpc3RlcnM7CisgICAgaWYgKCFyZWdpc3RlckZpbGUtPmdyb3cobmV3RW5kKSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWdpc3RlciogYXJndiA9IHIgLSBSZWdpc3RlckZp
bGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBvbWl0dGVkQXJnQ291bnQ7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvbWl0dGVkQXJnQ291bnQ7ICsraSkKKyAgICAgICAgYXJndltpXSA9IGpz
VW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gQ2FsbEZyYW1lOjpjcmVhdGUocik7Cit9CisKIHN0
YXRpYyBORVZFUl9JTkxJTkUgYm9vbCBpc05vdE9iamVjdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
Ym9vbCBmb3JJbnN0YW5jZU9mLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSW5zdHJ1Y3Rp
b24qIHZQQywgSlNWYWx1ZSogdmFsdWUsIEpTVmFsdWUqJiBleGNlcHRpb25EYXRhKQogewogICAg
IGlmICh2YWx1ZS0+aXNPYmplY3QoKSkKQEAgLTQzMzYsNiArNDM2NSwxNiBAQCB2b2lkIE1hY2hp
bmU6OmN0aV90aW1lb3V0X2NoZWNrKENUSV9BUkdTCiAgICAgfQogfQogCit2b2lkIE1hY2hpbmU6
OmN0aV9yZWdpc3Rlcl9maWxlX2NoZWNrKENUSV9BUkdTKQoreworICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gQVJHX2NhbGxGcmFtZTsKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7CisgICAgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGUgPSBBUkdf
cmVnaXN0ZXJGaWxlOworCisgICAgaWYgKCFyZWdpc3RlckZpbGUtPmdyb3coY2FsbEZyYW1lICsg
Y29kZUJsb2NrLT5udW1DYWxsZWVSZWdpc3RlcnMpKQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKwogaW50IE1hY2hpbmU6OmN0aV9vcF9sb29wX2lmX2xlc3MoQ1RJX0FSR1MpCiB7
CiAgICAgSlNWYWx1ZSogc3JjMSA9IEFSR19zcmMxOwpAQCAtNDU1MCwxNCArNDU4OSw0MCBAQCBW
b2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3BfY2FsbF9KU0Z1bmN0CiAKICAgICBTY29wZUNoYWlu
Tm9kZSogY2FsbERhdGFTY29wZUNoYWluID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KEFSR19z
cmMxKS0+bV9zY29wZUNoYWluLm5vZGUoKTsKICAgICBDb2RlQmxvY2sqIG5ld0NvZGVCbG9jayA9
ICZzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oQVJHX3NyYzEpLT5tX2JvZHktPmJ5dGVDb2RlKGNh
bGxEYXRhU2NvcGVDaGFpbik7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBBUkdfY2FsbEZy
YW1lOworICAgIHNpemVfdCByZWdpc3Rlck9mZnNldCA9IEFSR19pbnQyOworICAgIGludCBhcmdj
ID0gQVJHX2ludDM7CiAKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJX
aW5kb3dGb3JDYWxsKG5ld0NvZGVCbG9jaywgQVJHX3JlZ2lzdGVyRmlsZSwgQVJHX2NhbGxGcmFt
ZSwgQVJHX2ludDIsIEFSR19pbnQzKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsK
KyAgICBpZiAoTElLRUxZKGFyZ2MgPT0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKSkgewor
ICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3Jl
YXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCkgfTsKKyAgICAgICAg
cmV0dXJuIHBhaXI7CisgICAgfQorCisgICAgaWYgKGFyZ2MgPiBuZXdDb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMpIHsKKyAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBuZXdDb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnM7CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSArIHJlZ2lzdGVyT2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKKworICAgICAgICBSZWdpc3Rl
ciogYXJndiA9IHIgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBudW1QYXJh
bWV0ZXJzIC0gYXJnYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1QYXJhbWV0
ZXJzOyArK2kpCisgICAgICAgICAgICBhcmd2W2kgKyBhcmdjXSA9IGFyZ3ZbaV07CisKKyAgICAg
ICAgVm9pZFB0clBhaXIgcGFpciA9IHsgbmV3Q29kZUJsb2NrLCBDYWxsRnJhbWU6OmNyZWF0ZShy
KSB9OworICAgICAgICByZXR1cm4gcGFpcjsKKyAgICB9CisKKyAgICBzaXplX3Qgb21pdHRlZEFy
Z0NvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzIC0gYXJnYzsKKyAgICBSZWdpc3Rl
ciogciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG9taXR0ZWRB
cmdDb3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bnVtQ2Fs
bGVlUmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7
CiAgICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoQVJHX2NhbGxGcmFtZSk7CiAgICAgICAgIFZNX1RIUk9XX0VYQ0VQVElPTl8yKCk7CiAg
ICAgfQogCi0gICAgVm9pZFB0clBhaXIgcGFpciA9IHsgbmV3Q29kZUJsb2NrLCBjYWxsRnJhbWUg
fTsKKyAgICBSZWdpc3RlciogYXJndiA9IHIgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
clNpemUgLSBvbWl0dGVkQXJnQ291bnQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvbWl0
dGVkQXJnQ291bnQ7ICsraSkKKyAgICAgICAgYXJndltpXSA9IGpzVW5kZWZpbmVkKCk7CisKKyAg
ICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKHIp
IH07CiAgICAgcmV0dXJuIHBhaXI7CiB9CiAKQEAgLTQ3MTUsNyArNDc4MCw3IEBAIFZvaWRQdHJQ
YWlyIE1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlMKIAogICAgIGNhbGxGcmFtZVtmaXJzdEFy
Z10gPSBuZXdPYmplY3Q7IC8vICJ0aGlzIiB2YWx1ZQogCi0gICAgY2FsbEZyYW1lID0gc2xpZGVS
ZWdpc3RlcldpbmRvd0ZvckNhbGwobmV3Q29kZUJsb2NrLCByZWdpc3RlckZpbGUsIGNhbGxGcmFt
ZSwgcmVnaXN0ZXJPZmZzZXQsIGFyZ0NvdW50KTsKKyAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lz
dGVyV2luZG93Rm9yQ1RJQ2FsbChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1l
LCByZWdpc3Rlck9mZnNldCwgYXJnQ291bnQpOwogICAgIGlmIChVTkxJS0VMWSghY2FsbEZyYW1l
KSkgewogICAgICAgICBBUkdfZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKEFSR19jYWxsRnJhbWUpOwogICAgICAgICBWTV9USFJPV19FWENFUFRJT05fMigp
OwpJbmRleDogVk0vTWFjaGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL01hY2hpbmUuaAkocmV2aXNp
b24gMzc0OTQpCisrKyBWTS9NYWNoaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw2ICsxNTMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoQ1RJKQogCiAgICAgICAgIHN0YXRpYyB2
b2lkIFNGWF9DQUxMIGN0aV90aW1lb3V0X2NoZWNrKENUSV9BUkdTKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgU0ZYX0NBTEwgY3RpX3JlZ2lzdGVyX2ZpbGVfY2hlY2soQ1RJX0FSR1MpOwogCiAgICAg
ICAgIHN0YXRpYyBKU1ZhbHVlKiBTRlhfQ0FMTCBjdGlfb3BfY29udmVydF90aGlzKENUSV9BUkdT
KTsKICAgICAgICAgc3RhdGljIHZvaWQgU0ZYX0NBTEwgY3RpX29wX2VuZChDVElfQVJHUyk7CkBA
IC0yNzcsNiArMjc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE5FVkVSX0lOTElORSBi
b29sIHJlc29sdmVCYXNlQW5kRnVuYyhDYWxsRnJhbWUqLCBJbnN0cnVjdGlvbiosIEpTVmFsdWUq
JiBleGNlcHRpb25WYWx1ZSk7CiAKICAgICAgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgQ2FsbEZy
YW1lKiBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbChDb2RlQmxvY2sqLCBSZWdpc3RlckZpbGUq
LCBDYWxsRnJhbWUqLCBzaXplX3QgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmdjKTsKKyAgICAgICAg
c3RhdGljIEFMV0FZU19JTkxJTkUgQ2FsbEZyYW1lKiBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ1RJ
Q2FsbChDb2RlQmxvY2sqLCBSZWdpc3RlckZpbGUqLCBDYWxsRnJhbWUqLCBzaXplX3QgcmVnaXN0
ZXJPZmZzZXQsIGludCBhcmdjKTsKIAogICAgICAgICBzdGF0aWMgQ2FsbEZyYW1lKiBmaW5kRnVu
Y3Rpb25DYWxsRnJhbWUoQ2FsbEZyYW1lKiwgSW50ZXJuYWxGdW5jdGlvbiopOwogCkluZGV4OiBW
TS9SZWdpc3RlckZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9SZWdpc3RlckZpbGUuaAkocmV2aXNp
b24gMzc0OTQpCisrKyBWTS9SZWdpc3RlckZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiAr
ODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogICAg
IGNsYXNzIFJlZ2lzdGVyRmlsZSA6IE5vbmNvcHlhYmxlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNz
IENUSTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0gQ2FsbEZyYW1lSGVhZGVyRW50cnkgewog
ICAgICAgICAgICAgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDgsCkluZGV4OiBtYXNtL1g4NkFzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIG1hc20vWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDM3NDk0
KQorKysgbWFzbS9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw3
IEBAIHB1YmxpYzoKICAgICAgICAgUFJFX1BSRURJQ1RfQlJBTkNIX05PVF9UQUtFTiAgICA9IDB4
MkUsCiAgICAgICAgIE9QX1hPUl9Fdkd2ICAgICAgICAgICAgICAgICAgICAgPSAweDMxLAogICAg
ICAgICBPUF9DTVBfRXZHdiAgICAgICAgICAgICAgICAgICAgID0gMHgzOSwKKyAgICAgICAgT1Bf
Q01QX0d2RXYgICAgICAgICAgICAgICAgICAgICA9IDB4M0IsCiAgICAgICAgIE9QX1BVU0hfRUFY
ICAgICAgICAgICAgICAgICAgICAgPSAweDUwLAogICAgICAgICBPUF9QT1BfRUFYICAgICAgICAg
ICAgICAgICAgICAgID0gMHg1OCwKICAgICAgICAgUFJFX09QRVJBTkRfU0laRSAgICAgICAgICAg
ICAgICA9IDB4NjYsCkBAIC0zNzMsNiArMzc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgZW1pdE1v
ZFJtX3JtKHNyYywgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKKyAgICB2b2lkIGNtcGxfbXIoaW50
IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAg
IG1fYnVmZmVyLT5wdXRCeXRlKE9QX0NNUF9HdkV2KTsKKyAgICAgICAgZW1pdE1vZFJtX3JtKGRz
dCwgYmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKICAgICB2b2lkIGNtcGxfaTMycihpbnQgaW1tLCBS
ZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fYnVmZmVyLT5wdXRCeXRlKE9QX0dST1VQ
MV9Fdkl6KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24288</attachid>
            <date>2008-10-10 20:11:04 -0700</date>
            <delta_ts>2008-10-13 14:06:34 -0700</delta_ts>
            <desc>Patch in progress</desc>
            <filename>fast.diff</filename>
            <type>text/plain</type>
            <size>7386</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IFZNL0NUSS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzc0
OTQpCisrKyBWTS9DVEkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEwLDYgKzI2MTAsMTcgQEAg
dm9pZCBDVEk6OnByaXZhdGVDb21waWxlKCkKICAgICBtX2ppdC5wb3BsX3IoWDg2OjplY3gpOwog
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihYODY6OmVjeCwgUmVnaXN0ZXJGaWxlOjpSZXR1
cm5QQyk7CiAKKyAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSkg
eworICAgICAgICBlbWl0R2V0Q1RJUGFyYW0oQ1RJX0FSR1NfcmVnaXN0ZXJGaWxlLCBYODY6OmVh
eCk7CisgICAgICAgIG1faml0LmxlYWxfbXIobV9jb2RlQmxvY2stPm51bUNhbGxlZVJlZ2lzdGVy
cyAqIHNpemVvZihSZWdpc3RlciksIFg4Njo6ZWRpLCBYODY6OmVkeCk7CisgICAgICAgIG1faml0
LmNtcGxfbXIoT0JKRUNUX09GRlNFVChSZWdpc3RlckZpbGUsIG1fZW5kKSwgWDg2OjplYXgsIFg4
Njo6ZWR4KTsKKyAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgc2tpcFJlZ2lzdGVyRmlsZUdy
b3cgPSBtX2ppdC5lbWl0VW5saW5rZWRKbGUoKTsKKworICAgICAgICBlbWl0Q2FsbCgwLCBNYWNo
aW5lOjpjdGlfcmVnaXN0ZXJfZmlsZV9jaGVjayk7CisKKyAgICAgICAgbV9qaXQubGluayhza2lw
UmVnaXN0ZXJGaWxlR3JvdywgbV9qaXQubGFiZWwoKSk7CisgICAgfQorCiAgICAgcHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlTGlua1Bhc3MoKTsKICAgICBwcml2
YXRlQ29tcGlsZVNsb3dDYXNlcygpOwpJbmRleDogVk0vTWFjaGluZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVk0vTWFjaGluZS5jcHAJKHJldmlzaW9uIDM3NDk0KQorKysgVk0vTWFjaGluZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzMzYsNiArNDMzNiwxNiBAQCB2b2lkIE1hY2hpbmU6OmN0aV90aW1l
b3V0X2NoZWNrKENUSV9BUkdTCiAgICAgfQogfQogCit2b2lkIE1hY2hpbmU6OmN0aV9yZWdpc3Rl
cl9maWxlX2NoZWNrKENUSV9BUkdTKQoreworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gQVJH
X2NhbGxGcmFtZTsKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCk7CisgICAgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGUgPSBBUkdfcmVnaXN0ZXJGaWxl
OworCisgICAgaWYgKCFyZWdpc3RlckZpbGUtPmdyb3coY2FsbEZyYW1lICsgY29kZUJsb2NrLT5u
dW1DYWxsZWVSZWdpc3RlcnMpKQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwog
aW50IE1hY2hpbmU6OmN0aV9vcF9sb29wX2lmX2xlc3MoQ1RJX0FSR1MpCiB7CiAgICAgSlNWYWx1
ZSogc3JjMSA9IEFSR19zcmMxOwpAQCAtNDU1MCwxNCArNDU2MCw0MCBAQCBWb2lkUHRyUGFpciBN
YWNoaW5lOjpjdGlfb3BfY2FsbF9KU0Z1bmN0CiAKICAgICBTY29wZUNoYWluTm9kZSogY2FsbERh
dGFTY29wZUNoYWluID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KEFSR19zcmMxKS0+bV9zY29w
ZUNoYWluLm5vZGUoKTsKICAgICBDb2RlQmxvY2sqIG5ld0NvZGVCbG9jayA9ICZzdGF0aWNfY2Fz
dDxKU0Z1bmN0aW9uKj4oQVJHX3NyYzEpLT5tX2JvZHktPmJ5dGVDb2RlKGNhbGxEYXRhU2NvcGVD
aGFpbik7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBBUkdfY2FsbEZyYW1lOworICAgIHNp
emVfdCByZWdpc3Rlck9mZnNldCA9IEFSR19pbnQyOworICAgIGludCBhcmdDb3VudCA9IEFSR19p
bnQzOworCisgICAgaWYgKExJS0VMWShhcmdDb3VudCA9PSBuZXdDb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMpKSB7CisgICAgICAgIFZvaWRQdHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2Fs
bEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0KSB9
OworICAgICAgICByZXR1cm4gcGFpcjsKKyAgICB9CisKKyAgICBpZiAoYXJnQ291bnQgPiBuZXdD
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMpIHsKKyAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMg
PSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnM7CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2Fs
bEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKIAot
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwobmV3
Q29kZUJsb2NrLCBBUkdfcmVnaXN0ZXJGaWxlLCBBUkdfY2FsbEZyYW1lLCBBUkdfaW50MiwgQVJH
X2ludDMpOwotICAgIGlmIChVTkxJS0VMWSghY2FsbEZyYW1lKSkgewotICAgICAgICBBUkdfZ2xv
YmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKEFSR19jYWxsRnJh
bWUpOworICAgICAgICBSZWdpc3RlciogYXJndiA9IHIgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFt
ZUhlYWRlclNpemUgLSBudW1QYXJhbWV0ZXJzIC0gYXJnQ291bnQ7CisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbnVtUGFyYW1ldGVyczsgKytpKQorICAgICAgICAgICAgYXJndltpICsg
YXJnQ291bnRdID0gYXJndltpXTsKKworICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdD
b2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKHIpIH07CisgICAgICAgIHJldHVybiBwYWlyOwor
ICAgIH0KKworICAgIHNpemVfdCBvbWl0dGVkQXJnQ291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMgLSBhcmdDb3VudDsKKyAgICBSZWdpc3RlciogciA9IGNhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG9taXR0ZWRBcmdDb3VudDsKKyAgICBSZWdpc3Rlciog
bmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgIGlmICgh
QVJHX3JlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7CisgICAgICAgIEFSR19nbG9iYWxEYXRh
LT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAg
ICAgVk1fVEhST1dfRVhDRVBUSU9OXzIoKTsKICAgICB9CiAKLSAgICBWb2lkUHRyUGFpciBwYWly
ID0geyBuZXdDb2RlQmxvY2ssIGNhbGxGcmFtZSB9OworICAgIFJlZ2lzdGVyKiBhcmd2ID0gciAt
IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIG9taXR0ZWRBcmdDb3VudDsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9taXR0ZWRBcmdDb3VudDsgKytpKQorICAgICAgICBh
cmd2W2ldID0ganNVbmRlZmluZWQoKTsKKworICAgIFZvaWRQdHJQYWlyIHBhaXIgPSB7IG5ld0Nv
ZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUocikgfTsKICAgICByZXR1cm4gcGFpcjsKIH0KIApA
QCAtNDY4NSw3ICs0NzIxLDYgQEAgSlNWYWx1ZSogTWFjaGluZTo6Y3RpX29wX3Jlc29sdmUoQ1RJ
X0FSRwogCiBWb2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3BfY29uc3RydWN0X0pTQ29uc3RydWN0
KENUSV9BUkdTKQogewotICAgIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlID0gQVJHX3JlZ2lz
dGVyRmlsZTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IEFSR19jYWxsRnJhbWU7CiAKICAg
ICBKU0Z1bmN0aW9uKiBjb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihBUkdf
c3JjMSk7CkBAIC00NzEyLDE2ICs0NzQ3LDM4IEBAIFZvaWRQdHJQYWlyIE1hY2hpbmU6OmN0aV9v
cF9jb25zdHJ1Y3RfSlMKICAgICBlbHNlCiAgICAgICAgIHN0cnVjdHVyZSA9IGNhbGxEYXRhU2Nv
cGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCk7CiAgICAgSlNP
YmplY3QqIG5ld09iamVjdCA9IG5ldyAoQVJHX2dsb2JhbERhdGEpIEpTT2JqZWN0KHN0cnVjdHVy
ZSk7CisgICAgY2FsbEZyYW1lW2ZpcnN0QXJnXSA9IG5ld09iamVjdDsKIAotICAgIGNhbGxGcmFt
ZVtmaXJzdEFyZ10gPSBuZXdPYmplY3Q7IC8vICJ0aGlzIiB2YWx1ZQorICAgIGlmIChMSUtFTFko
YXJnQ291bnQgPT0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKSkgeworICAgICAgICBWb2lk
UHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCkgfTsKKyAgICAgICAgcmV0dXJuIHBhaXI7
CisgICAgfQogCi0gICAgY2FsbEZyYW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwobmV3
Q29kZUJsb2NrLCByZWdpc3RlckZpbGUsIGNhbGxGcmFtZSwgcmVnaXN0ZXJPZmZzZXQsIGFyZ0Nv
dW50KTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsKLSAgICAgICAgQVJHX2dsb2Jh
bERhdGEtPmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihBUkdfY2FsbEZyYW1l
KTsKKyAgICBpZiAoYXJnQ291bnQgPiBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpIHsKKyAg
ICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnM7
CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVy
T2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKKworICAgICAgICBSZWdpc3RlciogYXJndiA9IHIgLSBS
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBudW1QYXJhbWV0ZXJzIC0gYXJnQ291
bnQ7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUGFyYW1ldGVyczsgKytpKQor
ICAgICAgICAgICAgYXJndltpICsgYXJnQ291bnRdID0gYXJndltpXTsKKworICAgICAgICBWb2lk
UHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKHIpIH07Cisg
ICAgICAgIHJldHVybiBwYWlyOworICAgIH0KKworICAgIHNpemVfdCBvbWl0dGVkQXJnQ291bnQg
PSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdDb3VudDsKKyAgICBSZWdpc3Rlciog
ciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG9taXR0ZWRBcmdD
b3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bnVtQ2FsbGVl
UmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7Cisg
ICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJy
b3IoY2FsbEZyYW1lKTsKICAgICAgICAgVk1fVEhST1dfRVhDRVBUSU9OXzIoKTsKICAgICB9CiAK
LSAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIGNhbGxGcmFtZSB9OworICAg
IFJlZ2lzdGVyKiBhcmd2ID0gciAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAt
IG9taXR0ZWRBcmdDb3VudDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9taXR0ZWRBcmdD
b3VudDsgKytpKQorICAgICAgICBhcmd2W2ldID0ganNVbmRlZmluZWQoKTsKKworICAgIFZvaWRQ
dHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUocikgfTsKICAg
ICByZXR1cm4gcGFpcjsKIH0KIApJbmRleDogVk0vTWFjaGluZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZN
L01hY2hpbmUuaAkocmV2aXNpb24gMzc0OTQpCisrKyBWTS9NYWNoaW5lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Myw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoQ1RJKQog
CiAgICAgICAgIHN0YXRpYyB2b2lkIFNGWF9DQUxMIGN0aV90aW1lb3V0X2NoZWNrKENUSV9BUkdT
KTsKKyAgICAgICAgc3RhdGljIHZvaWQgU0ZYX0NBTEwgY3RpX3JlZ2lzdGVyX2ZpbGVfY2hlY2so
Q1RJX0FSR1MpOwogCiAgICAgICAgIHN0YXRpYyBKU1ZhbHVlKiBTRlhfQ0FMTCBjdGlfb3BfY29u
dmVydF90aGlzKENUSV9BUkdTKTsKICAgICAgICAgc3RhdGljIHZvaWQgU0ZYX0NBTEwgY3RpX29w
X2VuZChDVElfQVJHUyk7CkluZGV4OiBWTS9SZWdpc3RlckZpbGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBW
TS9SZWdpc3RlckZpbGUuaAkocmV2aXNpb24gMzc0OTQpCisrKyBWTS9SZWdpc3RlckZpbGUuaAko
d29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFz
cyBKU0dsb2JhbE9iamVjdDsKIAogICAgIGNsYXNzIFJlZ2lzdGVyRmlsZSA6IE5vbmNvcHlhYmxl
IHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENUSTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0g
Q2FsbEZyYW1lSGVhZGVyRW50cnkgewogICAgICAgICAgICAgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9
IDgsCkluZGV4OiBtYXNtL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1hc20vWDg2QXNz
ZW1ibGVyLmgJKHJldmlzaW9uIDM3NDk0KQorKysgbWFzbS9YODZBc3NlbWJsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgUFJFX1BSRURJQ1Rf
QlJBTkNIX05PVF9UQUtFTiAgICA9IDB4MkUsCiAgICAgICAgIE9QX1hPUl9Fdkd2ICAgICAgICAg
ICAgICAgICAgICAgPSAweDMxLAogICAgICAgICBPUF9DTVBfRXZHdiAgICAgICAgICAgICAgICAg
ICAgID0gMHgzOSwKKyAgICAgICAgT1BfQ01QX0d2RXYgICAgICAgICAgICAgICAgICAgICA9IDB4
M0IsCiAgICAgICAgIE9QX1BVU0hfRUFYICAgICAgICAgICAgICAgICAgICAgPSAweDUwLAogICAg
ICAgICBPUF9QT1BfRUFYICAgICAgICAgICAgICAgICAgICAgID0gMHg1OCwKICAgICAgICAgUFJF
X09QRVJBTkRfU0laRSAgICAgICAgICAgICAgICA9IDB4NjYsCkBAIC0zNzMsNiArMzc0LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgZW1pdE1vZFJtX3JtKHNyYywgYmFzZSwgb2Zmc2V0KTsKICAgICB9
CiAKKyAgICB2b2lkIGNtcGxfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3Rl
cklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fYnVmZmVyLT5wdXRCeXRlKE9QX0NNUF9HdkV2KTsK
KyAgICAgICAgZW1pdE1vZFJtX3JtKGRzdCwgYmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKICAgICB2
b2lkIGNtcGxfaTMycihpbnQgaW1tLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1f
YnVmZmVyLT5wdXRCeXRlKE9QX0dST1VQMV9Fdkl6KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24289</attachid>
            <date>2008-10-10 20:32:41 -0700</date>
            <delta_ts>2008-10-10 20:32:41 -0700</delta_ts>
            <desc>SunSpider harness results</desc>
            <filename>results.txt</filename>
            <type>text/plain</type>
            <size>4465</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">VEVTVCAgICAgICAgICAgICAgICAgICBDT01QQVJJU09OICAgICAgICAgICAgRlJPTSAgICAgICAg
ICAgICAgICAgVE8gICAgICAgICAgICAgREVUQUlMUwoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioq
IFRPVEFMICoqOiAgICAgICAgICAgMS4wMTF4IGFzIGZhc3QgICAgODQ2LjBtcyArLy0gMC4xJSAg
IDgzNy4xbXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50Cgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoK
ICAzZDogICAgICAgICAgICAgICAgICAxLjAwNnggYXMgZmFzdCAgICAxNDQuOW1zICsvLSAwLjEl
ICAgMTQ0LjBtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGN1YmU6ICAgICAgICAgICAg
ICAqMS4wMDd4IGFzIHNsb3cqICAgNTIuOG1zICsvLSAwLjQlICAgIDUzLjFtcyArLy0gMC40JSAg
ICAgc2lnbmlmaWNhbnQKICAgIG1vcnBoOiAgICAgICAgICAgICAxLjAyMnggYXMgZmFzdCAgICAg
NTUuNW1zICsvLSAwLjIlICAgIDU0LjNtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIHJh
eXRyYWNlOiAgICAgICAgICAtICAgICAgICAgICAgICAgICAgMzYuNm1zICsvLSAwLjMlICAgIDM2
LjZtcyArLy0gMC4zJSAKCiAgYWNjZXNzOiAgICAgICAgICAgICAgMS4wMTB4IGFzIGZhc3QgICAg
IDc2LjNtcyArLy0gMC4zJSAgICA3NS41bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CiAgICBi
aW5hcnktdHJlZXM6ICAgICAgMS4wNDF4IGFzIGZhc3QgICAgIDExLjdtcyArLy0gMC45JSAgICAx
MS4ybXMgKy8tIDAuNyUgICAgIHNpZ25pZmljYW50CiAgICBmYW5ua3VjaDogICAgICAgICAgKjEu
MDE4eCBhcyBzbG93KiAgIDE3LjRtcyArLy0gMC42JSAgICAxNy43bXMgKy8tIDAuNSUgICAgIHNp
Z25pZmljYW50CiAgICBuYm9keTogICAgICAgICAgICAgMS4wMTR4IGFzIGZhc3QgICAgIDM4LjZt
cyArLy0gMC4zJSAgICAzOC4xbXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBuc2lldmU6
ICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgICA4LjZtcyArLy0gMS4yJSAgICAgOC41bXMg
Ky8tIDEuMiUgCgogIGJpdG9wczogICAgICAgICAgICAgIDEuMDkyeCBhcyBmYXN0ICAgICA0NC4x
bXMgKy8tIDAuMyUgICAgNDAuNG1zICsvLSAwLjMlICAgICBzaWduaWZpY2FudAogICAgM2JpdC1i
aXRzLWluLWJ5dGU6IDEuMTE2eCBhcyBmYXN0ICAgICAgNi4ybXMgKy8tIDEuMyUgICAgIDUuNm1z
ICsvLSAxLjglICAgICBzaWduaWZpY2FudAogICAgYml0cy1pbi1ieXRlOiAgICAgIDEuMTQxeCBh
cyBmYXN0ICAgICAxMC42bXMgKy8tIDAuOSUgICAgIDkuM21zICsvLSAxLjAlICAgICBzaWduaWZp
Y2FudAogICAgYml0d2lzZS1hbmQ6ICAgICAgIC0gICAgICAgICAgICAgICAgICAgNy40bXMgKy8t
IDEuMyUgICAgIDcuNG1zICsvLSAxLjMlIAogICAgbnNpZXZlLWJpdHM6ICAgICAgIDEuMDk1eCBh
cyBmYXN0ICAgICAxOS44bXMgKy8tIDAuNSUgICAgMTguMW1zICsvLSAwLjQlICAgICBzaWduaWZp
Y2FudAoKICBjb250cm9sZmxvdzogICAgICAgICAxLjA4NXggYXMgZmFzdCAgICAgIDguMW1zICsv
LSAwLjYlICAgICA3LjRtcyArLy0gMS4zJSAgICAgc2lnbmlmaWNhbnQKICAgIHJlY3Vyc2l2ZTog
ICAgICAgICAxLjA4NXggYXMgZmFzdCAgICAgIDguMW1zICsvLSAwLjYlICAgICA3LjRtcyArLy0g
MS4zJSAgICAgc2lnbmlmaWNhbnQKCiAgY3J5cHRvOiAgICAgICAgICAgICAgMS4wMzh4IGFzIGZh
c3QgICAgIDU1LjZtcyArLy0gMC4yJSAgICA1My41bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50
CiAgICBhZXM6ICAgICAgICAgICAgICAgMS4wMjF4IGFzIGZhc3QgICAgIDE4LjJtcyArLy0gMC41
JSAgICAxNy44bXMgKy8tIDAuNSUgICAgIHNpZ25pZmljYW50CiAgICBtZDU6ICAgICAgICAgICAg
ICAgMS4wNDN4IGFzIGZhc3QgICAgIDE5LjFtcyArLy0gMC4zJSAgICAxOC4zbXMgKy8tIDAuNSUg
ICAgIHNpZ25pZmljYW50CiAgICBzaGExOiAgICAgICAgICAgICAgMS4wNTF4IGFzIGZhc3QgICAg
IDE4LjNtcyArLy0gMC41JSAgICAxNy40bXMgKy8tIDAuNiUgICAgIHNpZ25pZmljYW50CgogIGRh
dGU6ICAgICAgICAgICAgICAgIDEuMDA0eCBhcyBmYXN0ICAgICA4Ny42bXMgKy8tIDAuMiUgICAg
ODcuM21zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgZm9ybWF0LXRvZnRlOiAgICAgID8/
ICAgICAgICAgICAgICAgICAzOC42bXMgKy8tIDAuMyUgICAgMzguN21zICsvLSAwLjMlICAgICBu
b3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDAzeCBhcyBzbG93KgogICAgZm9ybWF0LXhwYXJi
OiAgICAgIDEuMDA5eCBhcyBmYXN0ICAgICA0OS4wbXMgKy8tIDAuMiUgICAgNDguNW1zICsvLSAw
LjIlICAgICBzaWduaWZpY2FudAoKICBtYXRoOiAgICAgICAgICAgICAgICAxLjAwOHggYXMgZmFz
dCAgICAxMDIuN21zICsvLSAwLjElICAgMTAyLjBtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQK
ICAgIGNvcmRpYzogICAgICAgICAgICAxLjAyMXggYXMgZmFzdCAgICAgMzYuNG1zICsvLSAwLjMl
ICAgIDM1LjZtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIHBhcnRpYWwtc3VtczogICAg
ICA/PyAgICAgICAgICAgICAgICAgNDguNG1zICsvLSAwLjIlICAgIDQ4LjRtcyArLy0gMC4yJSAg
ICAgbm90IGNvbmNsdXNpdmU6IG1pZ2h0IGJlICoxLjAwMXggYXMgc2xvdyoKICAgIHNwZWN0cmFs
LW5vcm06ICAgICAxLjAwNnggYXMgZmFzdCAgICAgMTguMG1zICsvLSAwLjIlICAgIDE3LjltcyAr
Ly0gMC40JSAgICAgc2lnbmlmaWNhbnQKCiAgcmVnZXhwOiAgICAgICAgICAgICAgLSAgICAgICAg
ICAgICAgICAgIDQ4LjBtcyArLy0gMC4zJSAgICA0Ny45bXMgKy8tIDAuMyUgCiAgICBkbmE6ICAg
ICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgIDQ4LjBtcyArLy0gMC4zJSAgICA0Ny45bXMg
Ky8tIDAuMyUgCgogIHN0cmluZzogICAgICAgICAgICAgID8/ICAgICAgICAgICAgICAgIDI3OC44
bXMgKy8tIDAuMSUgICAyNzkuMW1zICsvLSAwLjElICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQg
YmUgKjEuMDAxeCBhcyBzbG93KgogICAgYmFzZTY0OiAgICAgICAgICAgIDEuMDE0eCBhcyBmYXN0
ICAgICAyMy4xbXMgKy8tIDAuMyUgICAgMjIuOG1zICsvLSAwLjYlICAgICBzaWduaWZpY2FudAog
ICAgZmFzdGE6ICAgICAgICAgICAgID8/ICAgICAgICAgICAgICAgICAzOS45bXMgKy8tIDAuMiUg
ICAgMzkuOW1zICsvLSAwLjIlICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDAyeCBh
cyBzbG93KgogICAgdGFnY2xvdWQ6ICAgICAgICAgICoxLjAwNnggYXMgc2xvdyogIDEwMi42bXMg
Ky8tIDAuMiUgICAxMDMuMm1zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgdW5wYWNrLWNv
ZGU6ICAgICAgICoxLjAwNHggYXMgc2xvdyogICA2Ny4zbXMgKy8tIDAuMiUgICAgNjcuNW1zICsv
LSAwLjIlICAgICBzaWduaWZpY2FudAogICAgdmFsaWRhdGUtaW5wdXQ6ICAgIC0gICAgICAgICAg
ICAgICAgICA0Ni4wbXMgKy8tIDAuNSUgICAgNDUuN21zICsvLSAwLjQlCgoKVEVTVCAgICAgICAg
ICAgICAgQ09NUEFSSVNPTiAgICAgICAgICAgIEZST00gICAgICAgICAgICAgICAgIFRPICAgICAg
ICAgICAgIERFVEFJTFMKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiBUT1RBTCAqKjogICAgICAt
ICAgICAgICAgICAgICAgICAyODgzLjJtcyArLy0gMC4yJSAgIDI4ODQuOG1zICsvLSAxLjIlIAoK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KCiAgdjg6ICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAg
IDI4ODMuMm1zICsvLSAwLjIlICAgMjg4NC44bXMgKy8tIDEuMiUgCiAgICBjcnlwdG86ICAgICAg
ICoxLjAwN3ggYXMgc2xvdyogICAzMzguMG1zICsvLSAwLjIlICAgIDM0MC4zbXMgKy8tIDAuMiUg
ICAgIHNpZ25pZmljYW50CiAgICBkZWx0YWJsdWU6ICAgIDEuMDQ1eCBhcyBmYXN0ICAgICA5NjAu
NW1zICsvLSAwLjIlICAgIDkxOS41bXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBlYXJs
ZXktYm95ZXI6IDEuMDMxeCBhcyBmYXN0ICAgICAzOTMuNW1zICsvLSAwLjIlICAgIDM4MS42bXMg
Ky8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICByYXl0cmFjZTogICAgIC0gICAgICAgICAgICAg
ICAgICA0MTYuNW1zICsvLSAwLjMlICAgIDQxNi44bXMgKy8tIDAuMiUgCiAgICByaWNoYXJkczog
ICAgICoxLjA2N3ggYXMgc2xvdyogICA3NzQuOG1zICsvLSAwLjIlICAgIDgyNi41bXMgKy8tIDQu
NCUgICAgIHNpZ25pZmljYW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24324</attachid>
            <date>2008-10-13 14:06:34 -0700</date>
            <delta_ts>2008-10-13 14:11:33 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>fast.diff</filename>
            <type>text/plain</type>
            <size>10270</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTYw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMTAt
MTMgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTU0MTogTW92ZSBSZWdpc3Rl
ckZpbGUgZ3Jvd3RoIGNoZWNrIHRvIGNhbGxlZQorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTQxPgorCisgICAgICAgIE1vdmUgdGhlIFJlZ2lzdGVy
RmlsZSBncm93dGggY2hlY2sgdG8gdGhlIGNhbGxlZSBpbiB0aGUgY29tbW9uIGNhc2UsCisgICAg
ICAgIHdoZXJlIG1vcmUgb2YgdGhlIGluZm9ybWF0aW9uIGlzIGtub3duIHN0YXRpY2FsbHkgYXQg
SklUIHRpbWUuIFRoZXJlIGlzCisgICAgICAgIHN0aWxsIGEgY2hlY2sgaW4gdGhlIGNhbGxlciBp
biB0aGUgY2FzZSB3aGVyZSB0aGUgY2FsbGVyIHByb3ZpZGVzIHRvbworICAgICAgICBmZXcgYXJn
dW1lbnRzLgorCisgICAgICAgIFRoaXMgaXMgYSAyLjElIHNwZWVkdXAgb24gdGhlIFY4IGJlbmNo
bWFyaywgaW5jbHVkaW5nIGEgNS4xJSBzcGVlZHVwIG9uCisgICAgICAgIHRoZSBSaWNoYXJkcyBi
ZW5jaG1hcmssIGEgNC4xJSBzcGVlZHVwIG9uIHRoZSBEZWx0YUJsdWUgYmVuY2htYXJrLCBhbmQg
YQorICAgICAgICAxLjQlIHNwZWVkdXAgb24gdGhlIEVhcmxleS1Cb3llciBiZW5jaG1hcmsuIEl0
IGlzIGFsc28gYSAwLjUlIHNwZWVkdXAgb24KKyAgICAgICAgU3VuU3BpZGVyLgorCisgICAgICAg
ICogVk0vQ1RJLmNwcDoKKyAgICAgICAgKEpTQzo6Q1RJOjpwcml2YXRlQ29tcGlsZSk6CisgICAg
ICAgICogVk0vTWFjaGluZS5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9yZWdpc3Rl
cl9maWxlX2NoZWNrKToKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6Y3RpX29wX2NhbGxfSlNGdW5j
dGlvbik6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1
Y3QpOgorICAgICAgICAqIFZNL01hY2hpbmUuaDoKKyAgICAgICAgKiBWTS9SZWdpc3RlckZpbGUu
aDoKKyAgICAgICAgKiBtYXNtL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZBc3Nl
bWJsZXI6Oik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y21wbF9tcik6CisgICAgICAg
IChKU0M6Olg4NkFzc2VtYmxlcjo6ZW1pdFVubGlua2VkSmcpOgorCiAyMDA4LTEwLTEzICBNYXJj
byBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLiBMYW5kZWQgYnkgSmFuIEFsb256by4KSW5kZXg6IFZN
L0NUSS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzc1NTYpCisrKyBW
TS9DVEkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjE1LDEwICsyNjE1LDI3IEBAIHZvaWQgQ1RJ
Ojpwcml2YXRlQ29tcGlsZSgpCiAgICAgbV9qaXQucG9wbF9yKFg4Njo6ZWN4KTsKICAgICBlbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIoWDg2OjplY3gsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwog
CisgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgc2xvd1JlZ2lzdGVyRmlsZUNoZWNrOworICAgIFg4
NkFzc2VtYmxlcjo6Sm1wRHN0IGFmdGVyUmVnaXN0ZXJGaWxlQ2hlY2s7CisgICAgaWYgKG1fY29k
ZUJsb2NrLT5jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUpIHsKKyAgICAgICAgZW1pdEdldENUSVBh
cmFtKENUSV9BUkdTX3JlZ2lzdGVyRmlsZSwgWDg2OjplYXgpOworICAgICAgICBtX2ppdC5sZWFs
X21yKG1fY29kZUJsb2NrLT5udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpLCBY
ODY6OmVkaSwgWDg2OjplZHgpOworICAgICAgICBtX2ppdC5jbXBsX21yKE9CSkVDVF9PRkZTRVQo
UmVnaXN0ZXJGaWxlLCBtX2VuZCksIFg4Njo6ZWF4LCBYODY6OmVkeCk7CisgICAgICAgIHNsb3dS
ZWdpc3RlckZpbGVDaGVjayA9IG1faml0LmVtaXRVbmxpbmtlZEpnKCk7CisgICAgICAgIGFmdGVy
UmVnaXN0ZXJGaWxlQ2hlY2sgPSBtX2ppdC5sYWJlbCgpOworICAgIH0KKwogICAgIHByaXZhdGVD
b21waWxlTWFpblBhc3MoKTsKICAgICBwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCk7CiAgICAgcHJp
dmF0ZUNvbXBpbGVTbG93Q2FzZXMoKTsKIAorICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUg
PT0gRnVuY3Rpb25Db2RlKSB7CisgICAgICAgIG1faml0Lmxpbmsoc2xvd1JlZ2lzdGVyRmlsZUNo
ZWNrLCBtX2ppdC5sYWJlbCgpKTsKKyAgICAgICAgZW1pdENhbGwoMCwgTWFjaGluZTo6Y3RpX3Jl
Z2lzdGVyX2ZpbGVfY2hlY2spOworICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNyYyBiYWNrVG9C
b2R5ID0gbV9qaXQuZW1pdFVubGlua2VkSm1wKCk7CisgICAgICAgIG1faml0LmxpbmsoYmFja1Rv
Qm9keSwgYWZ0ZXJSZWdpc3RlckZpbGVDaGVjayk7CisgICAgfQorCiAgICAgQVNTRVJUKG1fam1w
VGFibGUuaXNFbXB0eSgpKTsKIAogICAgIHZvaWQqIGNvZGUgPSBtX2ppdC5jb3B5KCk7CkluZGV4
OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNwcAkocmV2aXNpb24g
Mzc1NTYpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzNiw2ICs0MzM2
LDIyIEBAIHZvaWQgTWFjaGluZTo6Y3RpX3RpbWVvdXRfY2hlY2soQ1RJX0FSR1MKICAgICB9CiB9
CiAKK3ZvaWQgTWFjaGluZTo6Y3RpX3JlZ2lzdGVyX2ZpbGVfY2hlY2soQ1RJX0FSR1MpCit7Cisg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBBUkdfY2FsbEZyYW1lOworICAgIENvZGVCbG9jayog
Y29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICBSZWdpc3RlckZpbGUqIHJl
Z2lzdGVyRmlsZSA9IEFSR19yZWdpc3RlckZpbGU7CisKKyAgICBpZiAoIXJlZ2lzdGVyRmlsZS0+
Z3JvdyhjYWxsRnJhbWUgKyBjb2RlQmxvY2stPm51bUNhbGxlZVJlZ2lzdGVycykpIHsKKyAgICAg
ICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKKyAg
ICAgICAgQVJHX3NldENhbGxGcmFtZShjYWxsZXJGcmFtZSk7CisgICAgICAgIEFSR19nbG9iYWxE
YXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpOwor
ICAgICAgICBBU1NFUlQoQVJHX2dsb2JhbERhdGEtPmV4Y2VwdGlvbik7CisgICAgICAgIEFSR19n
bG9iYWxEYXRhLT50aHJvd1JldHVybkFkZHJlc3MgPSBjYWxsRnJhbWUtPnJldHVyblBDKCk7Cisg
ICAgICAgIGRvU2V0UmV0dXJuQWRkcmVzc1ZNVGhyb3dUcmFtcG9saW5lKCZDVElfUkVUVVJOX0FE
RFJFU1MpOworICAgIH0KK30KKwogaW50IE1hY2hpbmU6OmN0aV9vcF9sb29wX2lmX2xlc3MoQ1RJ
X0FSR1MpCiB7CiAgICAgSlNWYWx1ZSogc3JjMSA9IEFSR19zcmMxOwpAQCAtNDU1MCwxNCArNDU2
Niw0MCBAQCBWb2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3BfY2FsbF9KU0Z1bmN0CiAKICAgICBT
Y29wZUNoYWluTm9kZSogY2FsbERhdGFTY29wZUNoYWluID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlv
bio+KEFSR19zcmMxKS0+bV9zY29wZUNoYWluLm5vZGUoKTsKICAgICBDb2RlQmxvY2sqIG5ld0Nv
ZGVCbG9jayA9ICZzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oQVJHX3NyYzEpLT5tX2JvZHktPmJ5
dGVDb2RlKGNhbGxEYXRhU2NvcGVDaGFpbik7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBB
UkdfY2FsbEZyYW1lOworICAgIHNpemVfdCByZWdpc3Rlck9mZnNldCA9IEFSR19pbnQyOworICAg
IGludCBhcmdDb3VudCA9IEFSR19pbnQzOworCisgICAgaWYgKExJS0VMWShhcmdDb3VudCA9PSBu
ZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpKSB7CisgICAgICAgIFZvaWRQdHJQYWlyIHBhaXIg
PSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSArIHJlZ2lzdGVyT2Zmc2V0KSB9OworICAgICAgICByZXR1cm4gcGFpcjsKKyAgICB9CiAKLSAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKG5ld0Nv
ZGVCbG9jaywgQVJHX3JlZ2lzdGVyRmlsZSwgQVJHX2NhbGxGcmFtZSwgQVJHX2ludDIsIEFSR19p
bnQzKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsKLSAgICAgICAgQVJHX2dsb2Jh
bERhdGEtPmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihBUkdfY2FsbEZyYW1l
KTsKKyAgICBpZiAoYXJnQ291bnQgPiBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpIHsKKyAg
ICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnM7
CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVy
T2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKKworICAgICAgICBSZWdpc3RlciogYXJndiA9IHIgLSBS
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBudW1QYXJhbWV0ZXJzIC0gYXJnQ291
bnQ7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUGFyYW1ldGVyczsgKytpKQor
ICAgICAgICAgICAgYXJndltpICsgYXJnQ291bnRdID0gYXJndltpXTsKKworICAgICAgICBWb2lk
UHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKHIpIH07Cisg
ICAgICAgIHJldHVybiBwYWlyOworICAgIH0KKworICAgIHNpemVfdCBvbWl0dGVkQXJnQ291bnQg
PSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdDb3VudDsKKyAgICBSZWdpc3Rlciog
ciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG9taXR0ZWRBcmdD
b3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bnVtQ2FsbGVl
UmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7Cisg
ICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJy
b3IoY2FsbEZyYW1lKTsKICAgICAgICAgVk1fVEhST1dfRVhDRVBUSU9OXzIoKTsKICAgICB9CiAK
LSAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIGNhbGxGcmFtZSB9OworICAg
IFJlZ2lzdGVyKiBhcmd2ID0gciAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAt
IG9taXR0ZWRBcmdDb3VudDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9taXR0ZWRBcmdD
b3VudDsgKytpKQorICAgICAgICBhcmd2W2ldID0ganNVbmRlZmluZWQoKTsKKworICAgIFZvaWRQ
dHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUocikgfTsKICAg
ICByZXR1cm4gcGFpcjsKIH0KIApAQCAtNDY4NSw3ICs0NzI3LDYgQEAgSlNWYWx1ZSogTWFjaGlu
ZTo6Y3RpX29wX3Jlc29sdmUoQ1RJX0FSRwogCiBWb2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3Bf
Y29uc3RydWN0X0pTQ29uc3RydWN0KENUSV9BUkdTKQogewotICAgIFJlZ2lzdGVyRmlsZSogcmVn
aXN0ZXJGaWxlID0gQVJHX3JlZ2lzdGVyRmlsZTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IEFSR19jYWxsRnJhbWU7CiAKICAgICBKU0Z1bmN0aW9uKiBjb25zdHJ1Y3RvciA9IHN0YXRpY19j
YXN0PEpTRnVuY3Rpb24qPihBUkdfc3JjMSk7CkBAIC00NzEyLDE2ICs0NzUzLDM4IEBAIFZvaWRQ
dHJQYWlyIE1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlMKICAgICBlbHNlCiAgICAgICAgIHN0
cnVjdHVyZSA9IGNhbGxEYXRhU2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0
U3RydWN0dXJlKCk7CiAgICAgSlNPYmplY3QqIG5ld09iamVjdCA9IG5ldyAoQVJHX2dsb2JhbERh
dGEpIEpTT2JqZWN0KHN0cnVjdHVyZSk7CisgICAgY2FsbEZyYW1lW2ZpcnN0QXJnXSA9IG5ld09i
amVjdDsKIAotICAgIGNhbGxGcmFtZVtmaXJzdEFyZ10gPSBuZXdPYmplY3Q7IC8vICJ0aGlzIiB2
YWx1ZQorICAgIGlmIChMSUtFTFkoYXJnQ291bnQgPT0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0
ZXJzKSkgeworICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxG
cmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCkgfTsK
KyAgICAgICAgcmV0dXJuIHBhaXI7CisgICAgfQorCisgICAgaWYgKGFyZ0NvdW50ID4gbmV3Q29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKSB7CisgICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0g
bmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzOworICAgICAgICBSZWdpc3RlciogciA9IGNhbGxG
cmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG51bVBhcmFtZXRlcnM7CisKKyAg
ICAgICAgUmVnaXN0ZXIqIGFyZ3YgPSByIC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJT
aXplIC0gbnVtUGFyYW1ldGVycyAtIGFyZ0NvdW50OworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVBhcmFtZXRlcnM7ICsraSkKKyAgICAgICAgICAgIGFyZ3ZbaSArIGFyZ0NvdW50
XSA9IGFyZ3ZbaV07CiAKLSAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2Fs
bChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCByZWdpc3Rlck9mZnNldCwg
YXJnQ291bnQpOwotICAgIGlmIChVTkxJS0VMWSghY2FsbEZyYW1lKSkgewotICAgICAgICBBUkdf
Z2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKEFSR19jYWxs
RnJhbWUpOworICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxG
cmFtZTo6Y3JlYXRlKHIpIH07CisgICAgICAgIHJldHVybiBwYWlyOworICAgIH0KKworICAgIHNp
emVfdCBvbWl0dGVkQXJnQ291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdD
b3VudDsKKyAgICBSZWdpc3RlciogciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rl
ck9mZnNldCArIG9taXR0ZWRBcmdDb3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5l
d0NvZGVCbG9jay0+bnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmls
ZS0+Z3JvdyhuZXdFbmQpKSB7CisgICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBj
cmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgVk1fVEhST1dfRVhD
RVBUSU9OXzIoKTsKICAgICB9CiAKLSAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxv
Y2ssIGNhbGxGcmFtZSB9OworICAgIFJlZ2lzdGVyKiBhcmd2ID0gciAtIFJlZ2lzdGVyRmlsZTo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIG9taXR0ZWRBcmdDb3VudDsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG9taXR0ZWRBcmdDb3VudDsgKytpKQorICAgICAgICBhcmd2W2ldID0ganNVbmRl
ZmluZWQoKTsKKworICAgIFZvaWRQdHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZy
YW1lOjpjcmVhdGUocikgfTsKICAgICByZXR1cm4gcGFpcjsKIH0KIApJbmRleDogVk0vTWFjaGlu
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFZNL01hY2hpbmUuaAkocmV2aXNpb24gMzc1NTYpCisrKyBWTS9N
YWNoaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICNpZiBFTkFCTEUoQ1RJKQogCiAgICAgICAgIHN0YXRpYyB2b2lkIFNGWF9DQUxMIGN0aV90
aW1lb3V0X2NoZWNrKENUSV9BUkdTKTsKKyAgICAgICAgc3RhdGljIHZvaWQgU0ZYX0NBTEwgY3Rp
X3JlZ2lzdGVyX2ZpbGVfY2hlY2soQ1RJX0FSR1MpOwogCiAgICAgICAgIHN0YXRpYyBKU1ZhbHVl
KiBTRlhfQ0FMTCBjdGlfb3BfY29udmVydF90aGlzKENUSV9BUkdTKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgU0ZYX0NBTEwgY3RpX29wX2VuZChDVElfQVJHUyk7CkluZGV4OiBWTS9SZWdpc3RlckZp
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBWTS9SZWdpc3RlckZpbGUuaAkocmV2aXNpb24gMzc1NTYpCisr
KyBWTS9SZWdpc3RlckZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogICAgIGNsYXNzIFJlZ2lz
dGVyRmlsZSA6IE5vbmNvcHlhYmxlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENUSTsKICAgICBw
dWJsaWM6CiAgICAgICAgIGVudW0gQ2FsbEZyYW1lSGVhZGVyRW50cnkgewogICAgICAgICAgICAg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDgsCkluZGV4OiBtYXNtL1g4NkFzc2VtYmxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIG1hc20vWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDM3NTU2KQorKysgbWFzbS9Y
ODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgUFJFX1BSRURJQ1RfQlJBTkNIX05PVF9UQUtFTiAgICA9IDB4MkUsCiAgICAgICAg
IE9QX1hPUl9Fdkd2ICAgICAgICAgICAgICAgICAgICAgPSAweDMxLAogICAgICAgICBPUF9DTVBf
RXZHdiAgICAgICAgICAgICAgICAgICAgID0gMHgzOSwKKyAgICAgICAgT1BfQ01QX0d2RXYgICAg
ICAgICAgICAgICAgICAgICA9IDB4M0IsCiAgICAgICAgIE9QX1BVU0hfRUFYICAgICAgICAgICAg
ICAgICAgICAgPSAweDUwLAogICAgICAgICBPUF9QT1BfRUFYICAgICAgICAgICAgICAgICAgICAg
ID0gMHg1OCwKICAgICAgICAgUFJFX09QRVJBTkRfU0laRSAgICAgICAgICAgICAgICA9IDB4NjYs
CkBAIC0yNDAsNiArMjQxLDcgQEAgcHVibGljOgogICAgICAgICBPUDJfSkxfcmVsMzIgICAgICAg
ID0gMHg4QywKICAgICAgICAgT1AyX0pHRV9yZWwzMiAgICAgICA9IDB4OEQsCiAgICAgICAgIE9Q
Ml9KTEVfcmVsMzIgICAgICAgPSAweDhFLAorICAgICAgICBPUDJfSkdfcmVsMzIgICAgICAgPSAw
eDhGLAogICAgICAgICBPUDJfSU1VTF9HdkV2ICAgICAgID0gMHhBRiwKICAgICAgICAgT1AyX01P
VlpYX0d2RWIgICAgICA9IDB4QjYsCiAgICAgICAgIE9QMl9NT1ZaWF9HdkV3ICAgICAgPSAweEI3
LApAQCAtMzczLDYgKzM3NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRNb2RSbV9ybShzcmMs
IGJhc2UsIG9mZnNldCk7CiAgICAgfQogCisgICAgdm9pZCBjbXBsX21yKGludCBvZmZzZXQsIFJl
Z2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2J1ZmZlci0+
cHV0Qnl0ZShPUF9DTVBfR3ZFdik7CisgICAgICAgIGVtaXRNb2RSbV9ybShkc3QsIGJhc2UsIG9m
ZnNldCk7CisgICAgfQorCiAgICAgdm9pZCBjbXBsX2kzMnIoaW50IGltbSwgUmVnaXN0ZXJJRCBk
c3QpCiAgICAgewogICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUF9HUk9VUDFfRXZJeik7CkBA
IC05NDUsNyArOTUzLDE1IEBAIHB1YmxpYzoKICAgICAgICAgbV9idWZmZXItPnB1dEludCgwKTsK
ICAgICAgICAgcmV0dXJuIEptcFNyYyhtX2J1ZmZlci0+Z2V0T2Zmc2V0KCkpOwogICAgIH0KLSAg
ICAKKworICAgIEptcFNyYyBlbWl0VW5saW5rZWRKZygpCisgICAgeworICAgICAgICBtX2J1ZmZl
ci0+cHV0Qnl0ZShPUF8yQllURV9FU0NBUEUpOworICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShP
UDJfSkdfcmVsMzIpOworICAgICAgICBtX2J1ZmZlci0+cHV0SW50KDApOworICAgICAgICByZXR1
cm4gSm1wU3JjKG1fYnVmZmVyLT5nZXRPZmZzZXQoKSk7CisgICAgfQorCiAgICAgSm1wU3JjIGVt
aXRVbmxpbmtlZEphKCkKICAgICB7CiAgICAgICAgIG1fYnVmZmVyLT5wdXRCeXRlKE9QXzJCWVRF
X0VTQ0FQRSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24326</attachid>
            <date>2008-10-13 14:11:33 -0700</date>
            <delta_ts>2008-10-13 17:03:23 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>fast.diff</filename>
            <type>text/plain</type>
            <size>10270</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTYw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMTAt
MTMgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTU0MTogTW92ZSBSZWdpc3Rl
ckZpbGUgZ3Jvd3RoIGNoZWNrIHRvIGNhbGxlZQorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTQxPgorCisgICAgICAgIE1vdmUgdGhlIFJlZ2lzdGVy
RmlsZSBncm93dGggY2hlY2sgdG8gdGhlIGNhbGxlZSBpbiB0aGUgY29tbW9uIGNhc2UsCisgICAg
ICAgIHdoZXJlIG1vcmUgb2YgdGhlIGluZm9ybWF0aW9uIGlzIGtub3duIHN0YXRpY2FsbHkgYXQg
SklUIHRpbWUuIFRoZXJlIGlzCisgICAgICAgIHN0aWxsIGEgY2hlY2sgaW4gdGhlIGNhbGxlciBp
biB0aGUgY2FzZSB3aGVyZSB0aGUgY2FsbGVyIHByb3ZpZGVzIHRvbworICAgICAgICBmZXcgYXJn
dW1lbnRzLgorCisgICAgICAgIFRoaXMgaXMgYSAyLjElIHNwZWVkdXAgb24gdGhlIFY4IGJlbmNo
bWFyaywgaW5jbHVkaW5nIGEgNS4xJSBzcGVlZHVwIG9uCisgICAgICAgIHRoZSBSaWNoYXJkcyBi
ZW5jaG1hcmssIGEgNC4xJSBzcGVlZHVwIG9uIHRoZSBEZWx0YUJsdWUgYmVuY2htYXJrLCBhbmQg
YQorICAgICAgICAxLjQlIHNwZWVkdXAgb24gdGhlIEVhcmxleS1Cb3llciBiZW5jaG1hcmsuIEl0
IGlzIGFsc28gYSAwLjUlIHNwZWVkdXAgb24KKyAgICAgICAgU3VuU3BpZGVyLgorCisgICAgICAg
ICogVk0vQ1RJLmNwcDoKKyAgICAgICAgKEpTQzo6Q1RJOjpwcml2YXRlQ29tcGlsZSk6CisgICAg
ICAgICogVk0vTWFjaGluZS5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9yZWdpc3Rl
cl9maWxlX2NoZWNrKToKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6Y3RpX29wX2NhbGxfSlNGdW5j
dGlvbik6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1
Y3QpOgorICAgICAgICAqIFZNL01hY2hpbmUuaDoKKyAgICAgICAgKiBWTS9SZWdpc3RlckZpbGUu
aDoKKyAgICAgICAgKiBtYXNtL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZBc3Nl
bWJsZXI6Oik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y21wbF9tcik6CisgICAgICAg
IChKU0M6Olg4NkFzc2VtYmxlcjo6ZW1pdFVubGlua2VkSmcpOgorCiAyMDA4LTEwLTEzICBNYXJj
byBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLiBMYW5kZWQgYnkgSmFuIEFsb256by4KSW5kZXg6IFZN
L0NUSS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzc1NTYpCisrKyBW
TS9DVEkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjE1LDEwICsyNjE1LDI3IEBAIHZvaWQgQ1RJ
Ojpwcml2YXRlQ29tcGlsZSgpCiAgICAgbV9qaXQucG9wbF9yKFg4Njo6ZWN4KTsKICAgICBlbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIoWDg2OjplY3gsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwog
CisgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgc2xvd1JlZ2lzdGVyRmlsZUNoZWNrOworICAgIFg4
NkFzc2VtYmxlcjo6Sm1wRHN0IGFmdGVyUmVnaXN0ZXJGaWxlQ2hlY2s7CisgICAgaWYgKG1fY29k
ZUJsb2NrLT5jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUpIHsKKyAgICAgICAgZW1pdEdldENUSVBh
cmFtKENUSV9BUkdTX3JlZ2lzdGVyRmlsZSwgWDg2OjplYXgpOworICAgICAgICBtX2ppdC5sZWFs
X21yKG1fY29kZUJsb2NrLT5udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpLCBY
ODY6OmVkaSwgWDg2OjplZHgpOworICAgICAgICBtX2ppdC5jbXBsX21yKE9CSkVDVF9PRkZTRVQo
UmVnaXN0ZXJGaWxlLCBtX2VuZCksIFg4Njo6ZWF4LCBYODY6OmVkeCk7CisgICAgICAgIHNsb3dS
ZWdpc3RlckZpbGVDaGVjayA9IG1faml0LmVtaXRVbmxpbmtlZEpnKCk7CisgICAgICAgIGFmdGVy
UmVnaXN0ZXJGaWxlQ2hlY2sgPSBtX2ppdC5sYWJlbCgpOworICAgIH0KKwogICAgIHByaXZhdGVD
b21waWxlTWFpblBhc3MoKTsKICAgICBwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCk7CiAgICAgcHJp
dmF0ZUNvbXBpbGVTbG93Q2FzZXMoKTsKIAorICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUg
PT0gRnVuY3Rpb25Db2RlKSB7CisgICAgICAgIG1faml0Lmxpbmsoc2xvd1JlZ2lzdGVyRmlsZUNo
ZWNrLCBtX2ppdC5sYWJlbCgpKTsKKyAgICAgICAgZW1pdENhbGwoMCwgTWFjaGluZTo6Y3RpX3Jl
Z2lzdGVyX2ZpbGVfY2hlY2spOworICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNyYyBiYWNrVG9C
b2R5ID0gbV9qaXQuZW1pdFVubGlua2VkSm1wKCk7CisgICAgICAgIG1faml0LmxpbmsoYmFja1Rv
Qm9keSwgYWZ0ZXJSZWdpc3RlckZpbGVDaGVjayk7CisgICAgfQorCiAgICAgQVNTRVJUKG1fam1w
VGFibGUuaXNFbXB0eSgpKTsKIAogICAgIHZvaWQqIGNvZGUgPSBtX2ppdC5jb3B5KCk7CkluZGV4
OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNwcAkocmV2aXNpb24g
Mzc1NTYpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzNiw2ICs0MzM2
LDIyIEBAIHZvaWQgTWFjaGluZTo6Y3RpX3RpbWVvdXRfY2hlY2soQ1RJX0FSR1MKICAgICB9CiB9
CiAKK3ZvaWQgTWFjaGluZTo6Y3RpX3JlZ2lzdGVyX2ZpbGVfY2hlY2soQ1RJX0FSR1MpCit7Cisg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBBUkdfY2FsbEZyYW1lOworICAgIENvZGVCbG9jayog
Y29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICBSZWdpc3RlckZpbGUqIHJl
Z2lzdGVyRmlsZSA9IEFSR19yZWdpc3RlckZpbGU7CisKKyAgICBpZiAoIXJlZ2lzdGVyRmlsZS0+
Z3JvdyhjYWxsRnJhbWUgKyBjb2RlQmxvY2stPm51bUNhbGxlZVJlZ2lzdGVycykpIHsKKyAgICAg
ICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKKyAg
ICAgICAgQVJHX3NldENhbGxGcmFtZShjYWxsZXJGcmFtZSk7CisgICAgICAgIEFSR19nbG9iYWxE
YXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpOwor
ICAgICAgICBBU1NFUlQoQVJHX2dsb2JhbERhdGEtPmV4Y2VwdGlvbik7CisgICAgICAgIEFSR19n
bG9iYWxEYXRhLT50aHJvd1JldHVybkFkZHJlc3MgPSBjYWxsRnJhbWUtPnJldHVyblBDKCk7Cisg
ICAgICAgIGRvU2V0UmV0dXJuQWRkcmVzc1ZNVGhyb3dUcmFtcG9saW5lKCZDVElfUkVUVVJOX0FE
RFJFU1MpOworICAgIH0KK30KKwogaW50IE1hY2hpbmU6OmN0aV9vcF9sb29wX2lmX2xlc3MoQ1RJ
X0FSR1MpCiB7CiAgICAgSlNWYWx1ZSogc3JjMSA9IEFSR19zcmMxOwpAQCAtNDU1MCwxNCArNDU2
Niw0MCBAQCBWb2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3BfY2FsbF9KU0Z1bmN0CiAKICAgICBT
Y29wZUNoYWluTm9kZSogY2FsbERhdGFTY29wZUNoYWluID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlv
bio+KEFSR19zcmMxKS0+bV9zY29wZUNoYWluLm5vZGUoKTsKICAgICBDb2RlQmxvY2sqIG5ld0Nv
ZGVCbG9jayA9ICZzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oQVJHX3NyYzEpLT5tX2JvZHktPmJ5
dGVDb2RlKGNhbGxEYXRhU2NvcGVDaGFpbik7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBB
UkdfY2FsbEZyYW1lOworICAgIHNpemVfdCByZWdpc3Rlck9mZnNldCA9IEFSR19pbnQyOworICAg
IGludCBhcmdDb3VudCA9IEFSR19pbnQzOworCisgICAgaWYgKExJS0VMWShhcmdDb3VudCA9PSBu
ZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpKSB7CisgICAgICAgIFZvaWRQdHJQYWlyIHBhaXIg
PSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSArIHJlZ2lzdGVyT2Zmc2V0KSB9OworICAgICAgICByZXR1cm4gcGFpcjsKKyAgICB9CiAKLSAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKG5ld0Nv
ZGVCbG9jaywgQVJHX3JlZ2lzdGVyRmlsZSwgQVJHX2NhbGxGcmFtZSwgQVJHX2ludDIsIEFSR19p
bnQzKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkpIHsKLSAgICAgICAgQVJHX2dsb2Jh
bERhdGEtPmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihBUkdfY2FsbEZyYW1l
KTsKKyAgICBpZiAoYXJnQ291bnQgPiBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpIHsKKyAg
ICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnM7
CisgICAgICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVy
T2Zmc2V0ICsgbnVtUGFyYW1ldGVyczsKKworICAgICAgICBSZWdpc3RlciogYXJndiA9IHIgLSBS
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBudW1QYXJhbWV0ZXJzIC0gYXJnQ291
bnQ7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUGFyYW1ldGVyczsgKytpKQor
ICAgICAgICAgICAgYXJndltpICsgYXJnQ291bnRdID0gYXJndltpXTsKKworICAgICAgICBWb2lk
UHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxGcmFtZTo6Y3JlYXRlKHIpIH07Cisg
ICAgICAgIHJldHVybiBwYWlyOworICAgIH0KKworICAgIHNpemVfdCBvbWl0dGVkQXJnQ291bnQg
PSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdDb3VudDsKKyAgICBSZWdpc3Rlciog
ciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG9taXR0ZWRBcmdD
b3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bnVtQ2FsbGVl
UmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7Cisg
ICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJy
b3IoY2FsbEZyYW1lKTsKICAgICAgICAgVk1fVEhST1dfRVhDRVBUSU9OXzIoKTsKICAgICB9CiAK
LSAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIGNhbGxGcmFtZSB9OworICAg
IFJlZ2lzdGVyKiBhcmd2ID0gciAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAt
IG9taXR0ZWRBcmdDb3VudDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9taXR0ZWRBcmdD
b3VudDsgKytpKQorICAgICAgICBhcmd2W2ldID0ganNVbmRlZmluZWQoKTsKKworICAgIFZvaWRQ
dHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZyYW1lOjpjcmVhdGUocikgfTsKICAg
ICByZXR1cm4gcGFpcjsKIH0KIApAQCAtNDY4NSw3ICs0NzI3LDYgQEAgSlNWYWx1ZSogTWFjaGlu
ZTo6Y3RpX29wX3Jlc29sdmUoQ1RJX0FSRwogCiBWb2lkUHRyUGFpciBNYWNoaW5lOjpjdGlfb3Bf
Y29uc3RydWN0X0pTQ29uc3RydWN0KENUSV9BUkdTKQogewotICAgIFJlZ2lzdGVyRmlsZSogcmVn
aXN0ZXJGaWxlID0gQVJHX3JlZ2lzdGVyRmlsZTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IEFSR19jYWxsRnJhbWU7CiAKICAgICBKU0Z1bmN0aW9uKiBjb25zdHJ1Y3RvciA9IHN0YXRpY19j
YXN0PEpTRnVuY3Rpb24qPihBUkdfc3JjMSk7CkBAIC00NzEyLDE2ICs0NzUzLDM4IEBAIFZvaWRQ
dHJQYWlyIE1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlMKICAgICBlbHNlCiAgICAgICAgIHN0
cnVjdHVyZSA9IGNhbGxEYXRhU2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0
U3RydWN0dXJlKCk7CiAgICAgSlNPYmplY3QqIG5ld09iamVjdCA9IG5ldyAoQVJHX2dsb2JhbERh
dGEpIEpTT2JqZWN0KHN0cnVjdHVyZSk7CisgICAgY2FsbEZyYW1lW2ZpcnN0QXJnXSA9IG5ld09i
amVjdDsKIAotICAgIGNhbGxGcmFtZVtmaXJzdEFyZ10gPSBuZXdPYmplY3Q7IC8vICJ0aGlzIiB2
YWx1ZQorICAgIGlmIChMSUtFTFkoYXJnQ291bnQgPT0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0
ZXJzKSkgeworICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxG
cmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCkgfTsK
KyAgICAgICAgcmV0dXJuIHBhaXI7CisgICAgfQorCisgICAgaWYgKGFyZ0NvdW50ID4gbmV3Q29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKSB7CisgICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0g
bmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzOworICAgICAgICBSZWdpc3RlciogciA9IGNhbGxG
cmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNldCArIG51bVBhcmFtZXRlcnM7CisKKyAg
ICAgICAgUmVnaXN0ZXIqIGFyZ3YgPSByIC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJT
aXplIC0gbnVtUGFyYW1ldGVycyAtIGFyZ0NvdW50OworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVBhcmFtZXRlcnM7ICsraSkKKyAgICAgICAgICAgIGFyZ3ZbaSArIGFyZ0NvdW50
XSA9IGFyZ3ZbaV07CiAKLSAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2Fs
bChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCByZWdpc3Rlck9mZnNldCwg
YXJnQ291bnQpOwotICAgIGlmIChVTkxJS0VMWSghY2FsbEZyYW1lKSkgewotICAgICAgICBBUkdf
Z2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKEFSR19jYWxs
RnJhbWUpOworICAgICAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxvY2ssIENhbGxG
cmFtZTo6Y3JlYXRlKHIpIH07CisgICAgICAgIHJldHVybiBwYWlyOworICAgIH0KKworICAgIHNp
emVfdCBvbWl0dGVkQXJnQ291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSBhcmdD
b3VudDsKKyAgICBSZWdpc3RlciogciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rl
ck9mZnNldCArIG9taXR0ZWRBcmdDb3VudDsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5l
d0NvZGVCbG9jay0+bnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgIGlmICghQVJHX3JlZ2lzdGVyRmls
ZS0+Z3JvdyhuZXdFbmQpKSB7CisgICAgICAgIEFSR19nbG9iYWxEYXRhLT5leGNlcHRpb24gPSBj
cmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgVk1fVEhST1dfRVhD
RVBUSU9OXzIoKTsKICAgICB9CiAKLSAgICBWb2lkUHRyUGFpciBwYWlyID0geyBuZXdDb2RlQmxv
Y2ssIGNhbGxGcmFtZSB9OworICAgIFJlZ2lzdGVyKiBhcmd2ID0gciAtIFJlZ2lzdGVyRmlsZTo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIG9taXR0ZWRBcmdDb3VudDsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG9taXR0ZWRBcmdDb3VudDsgKytpKQorICAgICAgICBhcmd2W2ldID0ganNVbmRl
ZmluZWQoKTsKKworICAgIFZvaWRQdHJQYWlyIHBhaXIgPSB7IG5ld0NvZGVCbG9jaywgQ2FsbEZy
YW1lOjpjcmVhdGUocikgfTsKICAgICByZXR1cm4gcGFpcjsKIH0KIApJbmRleDogVk0vTWFjaGlu
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFZNL01hY2hpbmUuaAkocmV2aXNpb24gMzc1NTYpCisrKyBWTS9N
YWNoaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICNpZiBFTkFCTEUoQ1RJKQogCiAgICAgICAgIHN0YXRpYyB2b2lkIFNGWF9DQUxMIGN0aV90
aW1lb3V0X2NoZWNrKENUSV9BUkdTKTsKKyAgICAgICAgc3RhdGljIHZvaWQgU0ZYX0NBTEwgY3Rp
X3JlZ2lzdGVyX2ZpbGVfY2hlY2soQ1RJX0FSR1MpOwogCiAgICAgICAgIHN0YXRpYyBKU1ZhbHVl
KiBTRlhfQ0FMTCBjdGlfb3BfY29udmVydF90aGlzKENUSV9BUkdTKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgU0ZYX0NBTEwgY3RpX29wX2VuZChDVElfQVJHUyk7CkluZGV4OiBWTS9SZWdpc3RlckZp
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBWTS9SZWdpc3RlckZpbGUuaAkocmV2aXNpb24gMzc1NTYpCisr
KyBWTS9SZWdpc3RlckZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogICAgIGNsYXNzIFJlZ2lz
dGVyRmlsZSA6IE5vbmNvcHlhYmxlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENUSTsKICAgICBw
dWJsaWM6CiAgICAgICAgIGVudW0gQ2FsbEZyYW1lSGVhZGVyRW50cnkgewogICAgICAgICAgICAg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDgsCkluZGV4OiBtYXNtL1g4NkFzc2VtYmxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIG1hc20vWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDM3NTU2KQorKysgbWFzbS9Y
ODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgUFJFX1BSRURJQ1RfQlJBTkNIX05PVF9UQUtFTiAgICA9IDB4MkUsCiAgICAgICAg
IE9QX1hPUl9Fdkd2ICAgICAgICAgICAgICAgICAgICAgPSAweDMxLAogICAgICAgICBPUF9DTVBf
RXZHdiAgICAgICAgICAgICAgICAgICAgID0gMHgzOSwKKyAgICAgICAgT1BfQ01QX0d2RXYgICAg
ICAgICAgICAgICAgICAgICA9IDB4M0IsCiAgICAgICAgIE9QX1BVU0hfRUFYICAgICAgICAgICAg
ICAgICAgICAgPSAweDUwLAogICAgICAgICBPUF9QT1BfRUFYICAgICAgICAgICAgICAgICAgICAg
ID0gMHg1OCwKICAgICAgICAgUFJFX09QRVJBTkRfU0laRSAgICAgICAgICAgICAgICA9IDB4NjYs
CkBAIC0yNDAsNiArMjQxLDcgQEAgcHVibGljOgogICAgICAgICBPUDJfSkxfcmVsMzIgICAgICAg
ID0gMHg4QywKICAgICAgICAgT1AyX0pHRV9yZWwzMiAgICAgICA9IDB4OEQsCiAgICAgICAgIE9Q
Ml9KTEVfcmVsMzIgICAgICAgPSAweDhFLAorICAgICAgICBPUDJfSkdfcmVsMzIgICAgICAgPSAw
eDhGLAogICAgICAgICBPUDJfSU1VTF9HdkV2ICAgICAgID0gMHhBRiwKICAgICAgICAgT1AyX01P
VlpYX0d2RWIgICAgICA9IDB4QjYsCiAgICAgICAgIE9QMl9NT1ZaWF9HdkV3ICAgICAgPSAweEI3
LApAQCAtMzczLDYgKzM3NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRNb2RSbV9ybShzcmMs
IGJhc2UsIG9mZnNldCk7CiAgICAgfQogCisgICAgdm9pZCBjbXBsX21yKGludCBvZmZzZXQsIFJl
Z2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2J1ZmZlci0+
cHV0Qnl0ZShPUF9DTVBfR3ZFdik7CisgICAgICAgIGVtaXRNb2RSbV9ybShkc3QsIGJhc2UsIG9m
ZnNldCk7CisgICAgfQorCiAgICAgdm9pZCBjbXBsX2kzMnIoaW50IGltbSwgUmVnaXN0ZXJJRCBk
c3QpCiAgICAgewogICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUF9HUk9VUDFfRXZJeik7CkBA
IC05NDUsNyArOTUzLDE1IEBAIHB1YmxpYzoKICAgICAgICAgbV9idWZmZXItPnB1dEludCgwKTsK
ICAgICAgICAgcmV0dXJuIEptcFNyYyhtX2J1ZmZlci0+Z2V0T2Zmc2V0KCkpOwogICAgIH0KLSAg
ICAKKworICAgIEptcFNyYyBlbWl0VW5saW5rZWRKZygpCisgICAgeworICAgICAgICBtX2J1ZmZl
ci0+cHV0Qnl0ZShPUF8yQllURV9FU0NBUEUpOworICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShP
UDJfSkdfcmVsMzIpOworICAgICAgICBtX2J1ZmZlci0+cHV0SW50KDApOworICAgICAgICByZXR1
cm4gSm1wU3JjKG1fYnVmZmVyLT5nZXRPZmZzZXQoKSk7CisgICAgfQorCiAgICAgSm1wU3JjIGVt
aXRVbmxpbmtlZEphKCkKICAgICB7CiAgICAgICAgIG1fYnVmZmVyLT5wdXRCeXRlKE9QXzJCWVRF
X0VTQ0FQRSk7Cg==
</data>
<flag name="review"
          id="11081"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>