<?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>64068</bug_id>
          
          <creation_ts>2011-07-07 00:08:25 -0700</creation_ts>
          <short_desc>DFG JIT unnecessarily boxes and unboxes values during silent spilling</short_desc>
          <delta_ts>2011-07-14 10:32:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433310</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-07 00:08:25 -0700</bug_when>
    <thetext>DFG silent spilling is performed for guarded slow-path C function calls.  There is a one-to-one relationship between each silent spill and silent fill.  Hence, there is no need to box and unbox values, yet the DFG JIT boxes and unboxes anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433314</commentid>
    <comment_count>1</comment_count>
      <attachid>99951</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-07 00:12:11 -0700</bug_when>
    <thetext>Created attachment 99951
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433753</commentid>
    <comment_count>2</comment_count>
      <attachid>99951</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-07 15:45:40 -0700</bug_when>
    <thetext>Comment on attachment 99951
the patch

Hi Filip, I think there may be a subtle bug in this code.  When a register is silently spilled it is only actually written out to memory if it needs to be spilled (hasn&apos;t already been).  This means that if you have values in registers XMM0 &amp; XMM1, and XMM0 has already been spilled as a boxed value, then after the silent spill one of the values in memory will be boxed and the other won&apos;t.  As such, you need to handle this in the silentFillFPR.  If the register needsSpill() then it is unboxed, if not the value in memory is boxed.  Also, please expand on the ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436958</commentid>
    <comment_count>3</comment_count>
      <attachid>100776</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-13 23:45:46 -0700</bug_when>
    <thetext>Created attachment 100776
the patch (fix review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436960</commentid>
    <comment_count>4</comment_count>
      <attachid>100776</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-13 23:52:17 -0700</bug_when>
    <thetext>Comment on attachment 100776
the patch (fix review)

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437172</commentid>
    <comment_count>5</comment_count>
      <attachid>100776</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 10:32:25 -0700</bug_when>
    <thetext>Comment on attachment 100776
the patch (fix review)

Clearing flags on attachment: 100776

Committed r91010: &lt;http://trac.webkit.org/changeset/91010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437173</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 10:32:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99951</attachid>
            <date>2011-07-07 00:12:11 -0700</date>
            <delta_ts>2011-07-13 23:45:46 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>spillfill_patch_1.diff</filename>
            <type>text/plain</type>
            <size>11261</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA1NDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDctMDcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIHVubmVjZXNzYXJpbHkgYm94ZXMgYW5kIHVuYm94ZXMgdmFsdWVzIGR1cmluZyBzaWxl
bnQgc3BpbGxpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NDA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJ
VENvZGVHZW5lcmF0b3I6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENv
ZGVHZW5lcmF0b3I6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2Vu
ZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6c2lsZW50U3Bp
bGxHUFIpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OnNpbGVudFNwaWxs
RlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpzaWxlbnRGaWxsRlBS
KToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVycyk6CisgICAgICAgICogZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6dmFsdWVUb051bWJlcik6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OnZhbHVlVG9JbnQzMik6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6Omtub3duQ29uc3RhbnRBcml0aE9wKToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6YmFzaWNBcml0aE9wKToKKyAgICAgICAg
KEpTQzo6REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZSk6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUp
OgorCiAyMDExLTA3LTA2ICBKdWFuIEMuIE1vbnRlbWF5b3IgIDxqbW9udEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEIHJ1bm5pbmcgdGVzdCAyNjIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkocmV2
aXNpb24gOTA1NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNyArMzQ5LDcgQEAgSklUQ29tcGlsZXI6
OkNhbGwgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaAogICAgIAogICAgIEpJVENvbXBpbGVyOjpMYWJl
bCBzbG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVy
cyhyZXN1bHRHUFIsIGJhc2VHUFIpOworICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3Vs
dEdQUik7CiAgICAgbV9qaXQubW92ZShiYXNlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwog
ICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OkltbVB0cihpZGVudGlmaWVyKGlkZW50aWZpZXJO
dW1iZXIpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBtX2ppdC5tb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpAQCAtNDE0LDcgKzQx
NCw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaGVkUHV0QnlJZChHUFIKIAogICAgIEpJ
VENvbXBpbGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVycyhJbnZhbGlkR1BSUmVnLCBiYXNlR1BSLCB2YWx1ZUdQUik7CisgICAg
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoSW52YWxpZEdQUlJlZyk7CiAgICAgc2V0dXBUd29TdHVi
QXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMj4odmFsdWVH
UFIsIGJhc2VHUFIpOwogICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OkltbVB0cihpZGVudGlm
aWVyKGlkZW50aWZpZXJOdW1iZXIpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKICAgICBtX2pp
dC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJh
dG9yLmgJKHJldmlzaW9uIDkwNTQxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsxODgsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gdGhleSBzcGlsbCBhbGwgbGl2ZSB2YWx1ZXMgdG8gdGhlIGFwcHJvcHJp
YXRlCiAgICAgLy8gc2xvdHMgaW4gdGhlIFJlZ2lzdGVyRmlsZSB3aXRob3V0IGNoYW5naW5nIGFu
eSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICB2b2lkIHNpbGVudFNw
aWxsR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgY2FuVHJhbXBsZSwgR1BSUmVn
IGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHZvaWQgc2lsZW50U3BpbGxHUFIoVmlydHVh
bFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBleGNsdWRlID0gSW52YWxpZEdQUlJlZykKICAgICB7
CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1l
XTsKICAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9u
ZSk7CkBAIC0yMDAsMTQgKzIwMCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIERhdGFGb3JtYXQg
cmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7CiAKICAgICAgICAgaWYgKHJl
Z2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBtX2ppdC5v
clB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGluZm8uZ3ByKCksIGNhblRyYW1w
bGUpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoY2FuVHJhbXBsZSwgSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihpbmZvLmdw
cigpLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMgfHwgcmVn
aXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwpOwogICAgICAgICAgICAgbV9qaXQuc3RvcmVQ
dHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOwogICAgICAg
ICB9CiAgICAgfQotICAgIHZvaWQgc2lsZW50U3BpbGxGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxs
TWUsIEdQUlJlZyBjYW5UcmFtcGxlLCBGUFJSZWcgZXhjbHVkZSA9IEludmFsaWRGUFJSZWcpCisg
ICAgdm9pZCBzaWxlbnRTcGlsbEZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIGV4
Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQogICAgIHsKICAgICAgICAgR2VuZXJhdGlvbkluZm8mIGlu
Zm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwogICAgICAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUpOwpAQCAtMjE1LDggKzIxNCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSB8fCAoaW5mby5mcHIoKSA9
PSBleGNsdWRlKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBib3hEb3VibGUoaW5m
by5mcHIoKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKGNhblRyYW1wbGUs
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpKTsKKyAgICAgICAgbV9qaXQuc3RvcmVE
b3VibGUoaW5mby5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOwogICAg
IH0KIAogICAgIHZvaWQgc2lsZW50RmlsbEdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BS
UmVnIGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQpAQCAtMjYyLDM3ICsyNjAsMzAgQEAgcHJvdGVj
dGVkOgogICAgICAgICAgICAgbV9qaXQubW92ZShKSVRDb21waWxlcjo6SW1tUHRyKGJpdHdpc2Vf
Y2FzdDx2b2lkKj4odmFsdWVPZkRvdWJsZUNvbnN0YW50KG5vZGVJbmRleCkpKSwgY2FuVHJhbXBs
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUoY2FuVHJhbXBsZSwgaW5mby5m
cHIoKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENv
bXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpLCBjYW5UcmFtcGxlKTsKLSAgICAgICAgICAgIHVu
Ym94RG91YmxlKGNhblRyYW1wbGUsIGluZm8uZnByKCkpOworICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSwgaW5mby5mcHIoKSk7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhH
UFJSZWcgZXhjbHVkZSwgR1BSUmVnIHByZXNlcnZlMSA9IEludmFsaWRHUFJSZWcsIEdQUlJlZyBw
cmVzZXJ2ZTIgPSBJbnZhbGlkR1BSUmVnLCBHUFJSZWcgcHJlc2VydmUzID0gSW52YWxpZEdQUlJl
ZykKKyAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKEdQUlJlZyBleGNsdWRlKQogICAg
IHsKLSAgICAgICAgR1BSUmVnIGNhblRyYW1wbGUgPSBzZWxlY3RTY3JhdGNoR1BSKHByZXNlcnZl
MSwgcHJlc2VydmUyLCBwcmVzZXJ2ZTMpOwotICAgICAgICAKICAgICAgICAgZm9yIChncHJfaXRl
cmF0b3IgaXRlciA9IG1fZ3Bycy5iZWdpbigpOyBpdGVyICE9IG1fZ3Bycy5lbmQoKTsgKytpdGVy
KSB7CiAgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1YWxSZWdpc3Rl
cikKLSAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEdQUihpdGVyLm5hbWUoKSwgY2FuVHJhbXBs
ZSwgZXhjbHVkZSk7CisgICAgICAgICAgICAgICAgc2lsZW50U3BpbGxHUFIoaXRlci5uYW1lKCks
IGV4Y2x1ZGUpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoZnByX2l0ZXJhdG9yIGl0ZXIgPSBt
X2ZwcnMuYmVnaW4oKTsgaXRlciAhPSBtX2ZwcnMuZW5kKCk7ICsraXRlcikgewogICAgICAgICAg
ICAgaWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpCi0gICAgICAgICAg
ICAgICAgc2lsZW50U3BpbGxGUFIoaXRlci5uYW1lKCksIGNhblRyYW1wbGUpOworICAgICAgICAg
ICAgICAgIHNpbGVudFNwaWxsRlBSKGl0ZXIubmFtZSgpKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKEZQUlJlZyBleGNsdWRlLCBHUFJSZWcgcHJl
c2VydmUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMo
RlBSUmVnIGV4Y2x1ZGUpCiAgICAgewotICAgICAgICBHUFJSZWcgY2FuVHJhbXBsZSA9IEdQUklu
Zm86OnJlZ1QwOwotICAgICAgICBpZiAocHJlc2VydmUgPT0gR1BSSW5mbzo6cmVnVDApCi0gICAg
ICAgICAgICBjYW5UcmFtcGxlID0gR1BSSW5mbzo6cmVnVDE7Ci0gICAgICAgIAogICAgICAgICBm
b3IgKGdwcl9pdGVyYXRvciBpdGVyID0gbV9ncHJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9ncHJzLmVu
ZCgpOyArK2l0ZXIpIHsKICAgICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAhPSBJbnZhbGlkVmly
dHVhbFJlZ2lzdGVyKQotICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsR1BSKGl0ZXIubmFtZSgp
LCBjYW5UcmFtcGxlKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEdQUihpdGVyLm5hbWUo
KSk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChmcHJfaXRlcmF0b3IgaXRlciA9IG1fZnBycy5i
ZWdpbigpOyBpdGVyICE9IG1fZnBycy5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBpZiAo
aXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1YWxSZWdpc3RlcikKLSAgICAgICAgICAgICAgICBz
aWxlbnRTcGlsbEZQUihpdGVyLm5hbWUoKSwgY2FuVHJhbXBsZSwgZXhjbHVkZSk7CisgICAgICAg
ICAgICAgICAgc2lsZW50U3BpbGxGUFIoaXRlci5uYW1lKCksIGV4Y2x1ZGUpOwogICAgICAgICB9
CiAgICAgfQogICAgIHZvaWQgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhHUFJSZWcgZXhjbHVkZSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9uU3BlY3VsYXRp
dmVKSVQuY3BwCShyZXZpc2lvbiA5MDU0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBA
IHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OnZhbHVlVG9OdW1iZXIoSlMKIAogICAgIC8vIE5leHQg
aGFuZGxlIGNlbGxzICgmIG90aGVyIEpTIGltbWVkaWF0ZXMpCiAgICAgbm9uTnVtZXJpYy5saW5r
KCZtX2ppdCk7Ci0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoZ3ByLCBqc1ZhbHVlR3ByKTsK
KyAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhncHIpOwogICAgIG1faml0Lm1vdmUoanNWYWx1
ZUdwciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2soZGZnQ29udmVydEpTVmFsdWVUb051bWJlcik7CkBAIC05MSw3ICs5
MSw3IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OnZhbHVlVG9JbnQzMihKU1YKICAgICBKSVRD
b21waWxlcjo6SnVtcCBpc0ludGVnZXIgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwganNWYWx1ZUdwciwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KTsKIAogICAgIC8vIEZpcnN0IGhhbmRsZSBub24taW50ZWdlcnMKLSAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhyZXN1bHQsIGpzVmFsdWVHcHIpOworICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdCk7CiAgICAgbV9qaXQubW92ZShqc1ZhbHVlR3ByLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhkZmdD
b252ZXJ0SlNWYWx1ZVRvSW50MzIpOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgTm9uU3BlY3Vs
YXRpdmVKSVQ6Omtub3duQ29uc3RhbnRBcmkKICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKHJlZ0No
aWxkKSkKICAgICAgICAgbm90SW50LmxpbmsoJm1faml0KTsKICAgICAKLSAgICBzaWxlbnRTcGls
bEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIsIHJlZ0FyZ0dQUik7CisgICAgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgY2FzZSBWYWx1ZUFk
ZDoKICAgICAgICAgaWYgKGNvbW11dGUpIHsKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIE5vblNw
ZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3AoTm9kCiAgICAgCiAgICAgc2xvd1BhdGgubGluaygm
bV9qaXQpOwogICAgIAotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUiwgYXJn
MUdQUiwgYXJnMkdQUik7CisgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsK
ICAgICBpZiAob3AgPT0gVmFsdWVBZGQpIHsKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFy
ZzFHUFIsIGFyZzJHUFIpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpAQCAtMzY3LDcgKzM2Nyw3IEBAIHZvaWQg
Tm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUoTm9kZSYgbm8KICAgICAKICAgICBzbG93UGF0aC5s
aW5rKCZtX2ppdCk7CiAgICAgCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
LCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRH
UFIpOwogICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKICAgICBtX2pp
dC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soaGVscGVyRnVuY3Rpb24pOwpAQCAt
NzE4LDcgKzcxOCw3IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoU3BlY3VsYXQK
ICAgICAgICAgbV9qaXQueG9yUHRyKFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihW
YWx1ZUZhbHNlKSksIHJlc3VsdEdQUik7CiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGZhc3RD
YXNlID0gbV9qaXQuYnJhbmNoVGVzdFB0cihKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSLCBU
cnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4ofjEpKSk7CiAgICAgICAgIAotICAgICAg
ICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIsIGFyZzFHUFIpOworICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC5tb3ZlKGFy
ZzFHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soZGZnQ29udmVydEpTVmFsdWVUb0Jvb2xlYW4pOwpA
QCAtNzk0LDcgKzc5NCw3IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoU3BlY3Vs
YXQKICAgICAgICAgb3V0T2ZCb3VuZHMubGluaygmbV9qaXQpOwogICAgICAgICBsb2FkRmFpbGVk
LmxpbmsoJm1faml0KTsKIAotICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhzdG9yYWdl
R1BSLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUik7CisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHN0b3JhZ2VHUFIpOwogICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYmFzZUdQUiwgcHJv
cGVydHlHUFIpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbkdldEJ5VmFsKTsKQEAgLTEwMzgsNyArMTAzOCw3IEBAIHZvaWQgTm9u
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoU3BlY3VsYXQKICAgICAgICAgbm90RGVmYXVsdEhhc0lu
c3RhbmNlLmxpbmsoJm1faml0KTsKICAgICAgICAgcHJvdG9Ob3RPYmplY3QubGluaygmbV9qaXQp
OwogCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHNjcmF0Y2hSZWcsIHZhbHVlUmVn
LCBiYXNlUmVnLCBwcm90b3R5cGVSZWcpOworICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVy
cyhzY3JhdGNoUmVnKTsKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKHZhbHVlUmVnLCBiYXNl
UmVnLCBwcm90b3R5cGVSZWcpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkluc3RhbmNlT2YpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkwNTQx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg3OCw3ICs4NzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHdpdGhpbkFycmF5
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNBcnJheTo6dmVjdG9yTGVuZ3Ro
T2Zmc2V0KCkpKTsKIAogICAgICAgICAvLyBDb2RlIHRvIGhhbmRsZSBwdXQgYmV5b25kIGFycmF5
IGJvdW5kcy4KLSAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoc2NyYXRjaFJlZywgYmFz
ZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKTsKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdp
c3RlcnMoc2NyYXRjaFJlZyk7CiAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhiYXNlUmVnLCBw
cm9wZXJ0eVJlZywgdmFsdWVSZWcpOwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBKSVRDb21waWxl
cjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHMpOwo=
</data>
<flag name="review"
          id="94549"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100776</attachid>
            <date>2011-07-13 23:45:46 -0700</date>
            <delta_ts>2011-07-14 10:32:25 -0700</delta_ts>
            <desc>the patch (fix review)</desc>
            <filename>spillfill_patch_3.diff</filename>
            <type>text/plain</type>
            <size>12994</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA5NzUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAK
KzIwMTEtMDctMDcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIHVubmVjZXNzYXJpbHkgYm94ZXMgYW5kIHVuYm94ZXMgdmFsdWVzIGR1cmluZyBzaWxl
bnQgc3BpbGxpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NDA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgU2lsZW50IHNwaWxsaW5nIGFuZCBmaWxsaW5nIG9mIHJlZ2lzdGVycyBpcyBk
b25lIGR1cmluZyBzbG93LXBhdGggQworICAgICAgICBmdW5jdGlvbiBjYWxscy4gIFRoZSBzaWxl
bnQgc3BpbGwvZmlsbCBsb2dpYyBkb2VzIG5vdCBhZmZlY3QgcmVnaXN0ZXIKKyAgICAgICAgYWxs
b2NhdGlvbiBvbiBwYXRocyB0aGF0IGRvbid0IGludm9sdmUgdGhlIEMgZnVuY3Rpb24gY2FsbC4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlcyB0aGUgc2lsZW50IHNwaWxsaW5nIGNvZGUg
dG8gc3BpbGwgaW4gdW5ib3hlZCBmb3JtLiAgVGhlCisgICAgICAgIHNpbGVudCBmaWxsIHdpbGwg
cmVmaWxsIGluIHdoYXRldmVyIGZvcm0gdGhlIHJlZ2lzdGVyIHdhcyBzcGlsbGVkIGluLgorICAg
ICAgICBGb3IgZXhhbXBsZSwgdGhlIHNpbGVudCBzcGlsbCBjb2RlIG1heSBjaG9vc2Ugbm90IHRv
IHNwaWxsIHRoZSByZWdpc3RlcgorICAgICAgICBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IHNwaWxs
ZWQgcHJldmlvdXNseSwgd2hpY2ggd291bGQgaW1wbHkgdGhhdCBpdAorICAgICAgICB3YXMgc3Bp
bGxlZCBpbiBib3hlZCBmb3JtLiAgVGhlIGZpbGxpbmcgY29kZSBkZXRlY3RzIHRoaXMgYW5kIGVp
dGhlcgorICAgICAgICB1bmJveGVzLCBvciBub3QsIGRlcGVuZGluZyBvbiB3aGF0IGlzIGFwcHJv
cHJpYXRlLgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxzbyByZXN1bHRzIGluIGEg
c2ltcGxpZmljYXRpb24gb2YgdGhlIHNpbGVudCBzcGlsbC9maWxsCisgICAgICAgIEFQSTogc2ls
ZW50IHNwaWxsaW5nIG5vIGxvbmdlciBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBzZXQgb2YgcmVn
aXN0ZXJzCisgICAgICAgIHRoYXQgY2Fubm90IGJlIHRyYW1wbGVkLCBzaW5jZSBpdCBuZXZlciBk
b2VzIGJveGluZyBhbmQgaGVuY2UgZG9lcyBub3QKKyAgICAgICAgbmVlZCBhIHRlbXBvcmFyeSBy
ZWdpc3Rlci4KKworICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKiBk
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5l
cmF0b3I6OnNpbGVudFNwaWxsR1BSKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJh
dG9yOjpzaWxlbnRTcGlsbEZQUik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRv
cjo6c2lsZW50RmlsbEZQUik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnMpOgorICAgICAgICAqIGRmZy9ERkdOb25TcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OnZhbHVlVG9O
dW1iZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjp2YWx1ZVRvSW50
MzIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjprbm93bkNvbnN0YW50
QXJpdGhPcCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmJhc2ljQXJp
dGhPcCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKwogMjAxMS0wNy0xMyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2Zm
QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjQyMDIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdl
bmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gOTA5NzUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDks
NyArMzQ5LDcgQEAgSklUQ29tcGlsZXI6OkNhbGwgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaAogICAg
IAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CiAKLSAg
ICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIsIGJhc2VHUFIpOworICAgIHNpbGVu
dFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgbV9qaXQubW92ZShiYXNlR1BSLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OkltbVB0
cihpZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsK
ICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwpAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6Y2Fj
aGVkUHV0QnlJZChHUFIKIAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1faml0
LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhJbnZhbGlkR1BSUmVnLCBi
YXNlR1BSLCB2YWx1ZUdQUik7CisgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoSW52YWxpZEdQ
UlJlZyk7CiAgICAgc2V0dXBUd29TdHViQXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMj4odmFsdWVHUFIsIGJhc2VHUFIpOwogICAgIG1faml0Lm1vdmUoSklU
Q29tcGlsZXI6OkltbVB0cihpZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIzKTsKICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDkwOTc1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE4OCw3ICsxODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gdGhleSBzcGlsbCBhbGwgbGl2
ZSB2YWx1ZXMgdG8gdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gc2xvdHMgaW4gdGhlIFJlZ2lzdGVy
RmlsZSB3aXRob3V0IGNoYW5naW5nIGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9u
SW5mby4KLSAgICB2b2lkIHNpbGVudFNwaWxsR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBH
UFJSZWcgY2FuVHJhbXBsZSwgR1BSUmVnIGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHZv
aWQgc2lsZW50U3BpbGxHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBleGNsdWRl
ID0gSW52YWxpZEdQUlJlZykKICAgICB7CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0g
bV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1lXTsKICAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJG
b3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9uZSk7CkBAIC0yMDAsMjMgKzIwMCwzMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9y
bWF0KCk7CiAKICAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2Vy
KSB7Ci0gICAgICAgICAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIsIGluZm8uZ3ByKCksIGNhblRyYW1wbGUpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIo
Y2FuVHJhbXBsZSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOworICAgICAgICAg
ICAgbV9qaXQuc3RvcmUzMihpbmZvLmdwcigpLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGls
bE1lKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgJiBEYXRhRm9ybWF0SlMgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwpOwog
ICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3Ioc3BpbGxNZSkpOwogICAgICAgICB9CiAgICAgfQotICAgIHZvaWQgc2lsZW50U3BpbGxG
UFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBjYW5UcmFtcGxlLCBGUFJSZWcgZXhj
bHVkZSA9IEludmFsaWRGUFJSZWcpCisgICAgdm9pZCBzaWxlbnRTcGlsbEZQUihWaXJ0dWFsUmVn
aXN0ZXIgc3BpbGxNZSwgRlBSUmVnIGV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQogICAgIHsKICAg
ICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwog
ICAgICAgICBBU1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUp
OwogCi0gICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkgfHwgKGluZm8uZnByKCkgPT0gZXhj
bHVkZSkpCisgICAgICAgIGlmIChpbmZvLmZwcigpID09IGV4Y2x1ZGUpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpIHsKKyAgICAgICAgICAgIC8v
IGl0J3MgZWl0aGVyIGEgY29uc3RhbnQgb3IgaXQncyBhbHJlYWR5IGJlZW4gc3BpbGxlZAorICAg
ICAgICAgICAgQVNTRVJUKG1faml0LmdyYXBoKClbaW5mby5ub2RlSW5kZXgoKV0uaXNDb25zdGFu
dCgpIHx8IGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9uZSk7CiAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGl0J3MgbmVpdGhlciBh
IGNvbnN0YW50IG5vciBoYXMgaXQgYmVlbiBzcGlsbGVkLgorICAgICAgICBBU1NFUlQoIW1faml0
LmdyYXBoKClbaW5mby5ub2RlSW5kZXgoKV0uaXNDb25zdGFudCgpKTsKKyAgICAgICAgQVNTRVJU
KGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0Tm9uZSk7CiAKLSAgICAgICAgYm94RG91
YmxlKGluZm8uZnByKCksIGNhblRyYW1wbGUpOwotICAgICAgICBtX2ppdC5zdG9yZVB0cihjYW5U
cmFtcGxlLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CisgICAgICAgIG1faml0
LnN0b3JlRG91YmxlKGluZm8uZnByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUp
KTsKICAgICB9CiAKICAgICB2b2lkIHNpbGVudEZpbGxHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxs
TWUsIEdQUlJlZyBleGNsdWRlID0gSW52YWxpZEdQUlJlZykKQEAgLTI2MSwzOCArMjY4LDQwIEBA
IHByb3RlY3RlZDoKICAgICAgICAgICAgIEFTU0VSVChpc0RvdWJsZUNvbnN0YW50KG5vZGVJbmRl
eCkpOwogICAgICAgICAgICAgbV9qaXQubW92ZShKSVRDb21waWxlcjo6SW1tUHRyKGJpdHdpc2Vf
Y2FzdDx2b2lkKj4odmFsdWVPZkRvdWJsZUNvbnN0YW50KG5vZGVJbmRleCkpKSwgY2FuVHJhbXBs
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUoY2FuVHJhbXBsZSwgaW5mby5m
cHIoKSk7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdE5v
bmUpIHsKKyAgICAgICAgICAgIC8vIGl0IHdhcyBhbHJlYWR5IHNwaWxsZWQgcHJldmlvdXNseSwg
d2hpY2ggbWVhbnMgd2UgbmVlZCB1bmJveGluZy4KKyAgICAgICAgICAgIEFTU0VSVChpbmZvLnNw
aWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSwgY2FuVHJhbXBsZSk7CiAgICAgICAgICAg
ICB1bmJveERvdWJsZShjYW5UcmFtcGxlLCBpbmZvLmZwcigpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorCisgICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OmFk
ZHJlc3NGb3Ioc3BpbGxNZSksIGluZm8uZnByKCkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzKEdQUlJlZyBleGNsdWRlLCBHUFJSZWcgcHJlc2VydmUxID0g
SW52YWxpZEdQUlJlZywgR1BSUmVnIHByZXNlcnZlMiA9IEludmFsaWRHUFJSZWcsIEdQUlJlZyBw
cmVzZXJ2ZTMgPSBJbnZhbGlkR1BSUmVnKQorICAgIHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnMoR1BSUmVnIGV4Y2x1ZGUpCiAgICAgewotICAgICAgICBHUFJSZWcgY2FuVHJhbXBsZSA9IHNl
bGVjdFNjcmF0Y2hHUFIocHJlc2VydmUxLCBwcmVzZXJ2ZTIsIHByZXNlcnZlMyk7Ci0gICAgICAg
IAogICAgICAgICBmb3IgKGdwcl9pdGVyYXRvciBpdGVyID0gbV9ncHJzLmJlZ2luKCk7IGl0ZXIg
IT0gbV9ncHJzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAh
PSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyKQotICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsR1BS
KGl0ZXIubmFtZSgpLCBjYW5UcmFtcGxlLCBleGNsdWRlKTsKKyAgICAgICAgICAgICAgICBzaWxl
bnRTcGlsbEdQUihpdGVyLm5hbWUoKSwgZXhjbHVkZSk7CiAgICAgICAgIH0KICAgICAgICAgZm9y
IChmcHJfaXRlcmF0b3IgaXRlciA9IG1fZnBycy5iZWdpbigpOyBpdGVyICE9IG1fZnBycy5lbmQo
KTsgKytpdGVyKSB7CiAgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1
YWxSZWdpc3RlcikKLSAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEZQUihpdGVyLm5hbWUoKSwg
Y2FuVHJhbXBsZSk7CisgICAgICAgICAgICAgICAgc2lsZW50U3BpbGxGUFIoaXRlci5uYW1lKCkp
OwogICAgICAgICB9CiAgICAgfQotICAgIHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoRlBS
UmVnIGV4Y2x1ZGUsIEdQUlJlZyBwcmVzZXJ2ZSA9IEludmFsaWRHUFJSZWcpCisgICAgdm9pZCBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhGUFJSZWcgZXhjbHVkZSkKICAgICB7Ci0gICAgICAgIEdQ
UlJlZyBjYW5UcmFtcGxlID0gR1BSSW5mbzo6cmVnVDA7Ci0gICAgICAgIGlmIChwcmVzZXJ2ZSA9
PSBHUFJJbmZvOjpyZWdUMCkKLSAgICAgICAgICAgIGNhblRyYW1wbGUgPSBHUFJJbmZvOjpyZWdU
MTsKLSAgICAgICAgCiAgICAgICAgIGZvciAoZ3ByX2l0ZXJhdG9yIGl0ZXIgPSBtX2dwcnMuYmVn
aW4oKTsgaXRlciAhPSBtX2dwcnMuZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgaWYgKGl0
ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpCi0gICAgICAgICAgICAgICAgc2ls
ZW50U3BpbGxHUFIoaXRlci5uYW1lKCksIGNhblRyYW1wbGUpOworICAgICAgICAgICAgICAgIHNp
bGVudFNwaWxsR1BSKGl0ZXIubmFtZSgpKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGZwcl9p
dGVyYXRvciBpdGVyID0gbV9mcHJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9mcHJzLmVuZCgpOyArK2l0
ZXIpIHsKICAgICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAhPSBJbnZhbGlkVmlydHVhbFJlZ2lz
dGVyKQotICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsRlBSKGl0ZXIubmFtZSgpLCBjYW5UcmFt
cGxlLCBleGNsdWRlKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEZQUihpdGVyLm5hbWUo
KSwgZXhjbHVkZSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgdm9pZCBzaWxlbnRGaWxsQWxsUmVn
aXN0ZXJzKEdQUlJlZyBleGNsdWRlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkwOTc1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6dmFsdWVUb051
bWJlcihKUwogCiAgICAgLy8gTmV4dCBoYW5kbGUgY2VsbHMgKCYgb3RoZXIgSlMgaW1tZWRpYXRl
cykKICAgICBub25OdW1lcmljLmxpbmsoJm1faml0KTsKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lz
dGVycyhncHIsIGpzVmFsdWVHcHIpOworICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGdwcik7
CiAgICAgbV9qaXQubW92ZShqc1ZhbHVlR3ByLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAg
IG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhkZmdDb252ZXJ0SlNWYWx1
ZVRvTnVtYmVyKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6dmFs
dWVUb0ludDMyKEpTVgogICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzSW50ZWdlciA9IG1faml0LmJy
YW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBqc1ZhbHVlR3ByLCBHUFJJbmZv
Ojp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogCiAgICAgLy8gRmlyc3QgaGFuZGxlIG5vbi1pbnRl
Z2VycwotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdCwganNWYWx1ZUdwcik7Cisg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0KTsKICAgICBtX2ppdC5tb3ZlKGpzVmFs
dWVHcHIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVlVG9JbnQzMik7CkBAIC0yMjAsNyAr
MjIwLDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFyaQogICAgIGlm
ICghaXNLbm93bkludGVnZXIocmVnQ2hpbGQpKQogICAgICAgICBub3RJbnQubGluaygmbV9qaXQp
OwogICAgIAotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUiwgcmVnQXJnR1BS
KTsKKyAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgIHN3aXRjaCAo
b3ApIHsKICAgICBjYXNlIFZhbHVlQWRkOgogICAgICAgICBpZiAoY29tbXV0ZSkgewpAQCAtMzEw
LDcgKzMxMCw3IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmJhc2ljQXJpdGhPcChOb2QKICAg
ICAKICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CiAgICAgCi0gICAgc2lsZW50U3BpbGxBbGxS
ZWdpc3RlcnMocmVzdWx0R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgIGlmIChvcCA9PSBWYWx1ZUFkZCkgewogICAgICAg
ICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMUdQUiwgYXJnMkdQUik7CiAgICAgICAgIG1faml0Lm1v
dmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CkBA
IC0zNjcsNyArMzY3LDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlJiBu
bwogICAgIAogICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKICAgICAKLSAgICBzaWxlbnRTcGls
bEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIsIGFyZzFHUFIsIGFyZzJHUFIpOworICAgIHNpbGVudFNw
aWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFyZzFH
UFIsIGFyZzJHUFIpOwogICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhoZWxwZXJGdW5jdGlvbik7CkBAIC03MTgsNyArNzE4LDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShTcGVjdWxhdAogICAgICAgICBtX2ppdC54b3JQdHIoVHJ1c3RlZEltbTMy
KHN0YXRpY19jYXN0PGludDMyX3Q+KFZhbHVlRmFsc2UpKSwgcmVzdWx0R1BSKTsKICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgZmFzdENhc2UgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBp
bGVyOjpaZXJvLCByZXN1bHRHUFIsIFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90Pih+
MSkpKTsKICAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQ
UiwgYXJnMUdQUik7CisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7
CiAgICAgICAgIG1faml0Lm1vdmUoYXJnMUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAg
ICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhkZmdDb252
ZXJ0SlNWYWx1ZVRvQm9vbGVhbik7CkBAIC03OTQsNyArNzk0LDcgQEAgdm9pZCBOb25TcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShTcGVjdWxhdAogICAgICAgICBvdXRPZkJvdW5kcy5saW5rKCZtX2pp
dCk7CiAgICAgICAgIGxvYWRGYWlsZWQubGluaygmbV9qaXQpOwogCi0gICAgICAgIHNpbGVudFNw
aWxsQWxsUmVnaXN0ZXJzKHN0b3JhZ2VHUFIsIGJhc2VHUFIsIHByb3BlcnR5R1BSKTsKKyAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoc3RvcmFnZUdQUik7CiAgICAgICAgIHNldHVwU3R1
YkFyZ3VtZW50cyhiYXNlR1BSLCBwcm9wZXJ0eUdQUik7CiAgICAgICAgIG1faml0Lm1vdmUoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAg
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uR2V0QnlWYWwpOwpAQCAtMTAz
OCw3ICsxMDM4LDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShTcGVjdWxhdAog
ICAgICAgICBub3REZWZhdWx0SGFzSW5zdGFuY2UubGluaygmbV9qaXQpOwogICAgICAgICBwcm90
b05vdE9iamVjdC5saW5rKCZtX2ppdCk7CiAKLSAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnMoc2NyYXRjaFJlZywgdmFsdWVSZWcsIGJhc2VSZWcsIHByb3RvdHlwZVJlZyk7CisgICAgICAg
IHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHNjcmF0Y2hSZWcpOwogICAgICAgICBzZXR1cFN0dWJB
cmd1bWVudHModmFsdWVSZWcsIGJhc2VSZWcsIHByb3RvdHlwZVJlZyk7CiAgICAgICAgIG1faml0
Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uSW5zdGFuY2VP
Zik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAkocmV2aXNpb24gOTA5NzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtODc2LDcgKzg3Niw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgd2l0aGluQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVn
LCBKU0FycmF5Ojp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwogCiAgICAgICAgIC8vIENvZGUgdG8g
aGFuZGxlIHB1dCBiZXlvbmQgYXJyYXkgYm91bmRzLgotICAgICAgICBzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVycyhzY3JhdGNoUmVnLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWcpOworICAg
ICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhzY3JhdGNoUmVnKTsKICAgICAgICAgc2V0dXBT
dHViQXJndW1lbnRzKGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZyk7CiAgICAgICAgIG1f
aml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kcyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>