<?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>72201</bug_id>
          
          <creation_ts>2011-11-11 18:52:12 -0800</creation_ts>
          <short_desc>Fix silent spilling/filling GPRs in DFG 32_64</short_desc>
          <delta_ts>2011-11-13 14:44:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Yuqiang Xian">yuqiang.xian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501306</commentid>
    <comment_count>0</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-11-11 18:52:12 -0800</bug_when>
    <thetext>Current silentSpillGPR/silentFillGPR may not work as expected for some cases in 32_64. If there&apos;s a JSValue which was retained by two GPRs, we may end up failing to spill/fill some GPRs or redundantly spilling/filling some GPRs. For example, if we tend to exclude &quot;eax&quot; from spilling while a JSValue is retained by both &quot;eax&quot; and &quot;edx&quot;, then &quot;edx&quot; won&apos;t be spilled as well (wrong). And if another JSValue is retained by &quot;ecx&quot; and &quot;ebx&quot;, both &quot;ecx&quot; and &quot;ebx&quot; will be spilled twice. The similar problem applies to silentFillGPR.
The fix is to make silentSpillGPR/silentFillGPR more straightforward, i.e., spilling/filling based on the GPR instead of the virtual register. FPR spilling/filling is also modified accordingly to make it consistent with GPR spilling/filling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501312</commentid>
    <comment_count>1</comment_count>
      <attachid>114812</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-11-11 18:57:50 -0800</bug_when>
    <thetext>Created attachment 114812
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501545</commentid>
    <comment_count>2</comment_count>
      <attachid>114812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-13 14:44:33 -0800</bug_when>
    <thetext>Comment on attachment 114812
the patch

Clearing flags on attachment: 114812

Committed r100095: &lt;http://trac.webkit.org/changeset/100095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501546</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-13 14:44:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114812</attachid>
            <date>2011-11-11 18:57:50 -0800</date>
            <delta_ts>2011-11-13 14:44:33 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>72201.patch</filename>
            <type>text/plain</type>
            <size>16541</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwMDU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDExLTExLTExICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29tPgorCisg
ICAgICAgIEZpeCBzaWxlbnQgc3BpbGxpbmcvZmlsbGluZyBHUFJzIGluIERGRyAzMl82NAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50IHNpbGVu
dFNwaWxsR1BSL3NpbGVudEZpbGxHUFIgbWF5IG5vdCB3b3JrIGFzIGV4cGVjdGVkIGZvciBzb21l
CisgICAgICAgIGNhc2VzIGluIDMyXzY0LiBJZiB0aGVyZSdzIGEgSlNWYWx1ZSB3aGljaCB3YXMg
cmV0YWluZWQgYnkgdHdvIEdQUnMsCisgICAgICAgIHdlIG1heSBlbmQgdXAgZmFpbGluZyB0byBz
cGlsbC9maWxsIHNvbWUgR1BScyBvciByZWR1bmRhbnRseQorICAgICAgICBzcGlsbGluZy9maWxs
aW5nIHNvbWUgR1BScy4gRm9yIGV4YW1wbGUsIGlmIHdlIHRlbmQgdG8gZXhjbHVkZSAiZWF4Igor
ICAgICAgICBmcm9tIHNwaWxsaW5nIHdoaWxlIGEgSlNWYWx1ZSBpcyByZXRhaW5lZCBieSBib3Ro
ICJlYXgiIGFuZCAiZWR4IiwKKyAgICAgICAgdGhlbiAiZWR4IiB3b24ndCBiZSBzcGlsbGVkIGFz
IHdlbGwgKHdyb25nKS4gQW5kIGlmIGFub3RoZXIgSlNWYWx1ZSBpcworICAgICAgICByZXRhaW5l
ZCBieSAiZWN4IiBhbmQgImVieCIsIGJvdGggImVjeCIgYW5kICJlYngiIHdpbGwgYmUgc3BpbGxl
ZAorICAgICAgICB0d2ljZS4gVGhlIHNpbWlsYXIgcHJvYmxlbSBhcHBsaWVzIHRvIHNpbGVudEZp
bGxHUFIuCisgICAgICAgIFRoZSBmaXggaXMgdG8gbWFrZSBzaWxlbnRTcGlsbEdQUi9zaWxlbnRG
aWxsR1BSIG1vcmUgc3RyYWlnaHRmb3J3YXJkLAorICAgICAgICBpLmUuLCBzcGlsbGluZy9maWxs
aW5nIGJhc2VkIG9uIHRoZSBHUFIgaW5zdGVhZCBvZiB0aGUgdmlydHVhbAorICAgICAgICByZWdp
c3Rlci4gRlBSIHNwaWxsaW5nL2ZpbGxpbmcgaXMgYWxzbyBtb2RpZmllZCBhY2NvcmRpbmdseSB0
byBtYWtlIGl0CisgICAgICAgIGNvbnNpc3RlbnQgd2l0aCBHUFIgc3BpbGxpbmcvZmlsbGluZy4K
KworICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6SklUQ29kZUdlbmVyYXRvcjo6c2lsZW50U3BpbGxHUFIpOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvZGVHZW5lcmF0b3I6OnNpbGVudFNwaWxsRlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpK
SVRDb2RlR2VuZXJhdG9yOjpzaWxlbnRGaWxsR1BSKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRD
b2RlR2VuZXJhdG9yOjpzaWxlbnRGaWxsRlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2Rl
R2VuZXJhdG9yOjpzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkRGRzo6
SklUQ29kZUdlbmVyYXRvcjo6c2lsZW50RmlsbEFsbFJlZ2lzdGVycyk6CisKIDIwMTEtMTEtMTEg
IEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSBpT1MgY29tcGlsZXIgdmVyc2lvbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxMDAwNTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMjYyLDc2ICsyNjIsNDUgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZvaWQgY2xlYXJH
ZW5lcmF0aW9uSW5mbygpOwogCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBib29sIHJlZ2lz
dGVyc01hdGNoZWQoR2VuZXJhdGlvbkluZm8mIGluZm8sIEdQUlJlZyBleGNsdWRlLCBHUFJSZWcg
ZXhjbHVkZTIpCi0gICAgewotICAgICAgICBBU1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpICE9
IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSAh
PSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSAhPSBEYXRhRm9ybWF0SlNEb3VibGUpOwotCi0gICAgICAgIGlmIChleGNsdWRlID09IEludmFs
aWRHUFJSZWcgJiYgZXhjbHVkZTIgPT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgICAgICBib29sIG1hdGNoZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGV4
Y2x1ZGUyID09IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICBtYXRjaGVkID0gKCEoaW5mby5y
ZWdpc3RlckZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKSkgPyAoaW5mby5ncHIoKSA9PSBleGNsdWRl
KSA6ICAoaW5mby50YWdHUFIoKSA9PSBleGNsdWRlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IGV4
Y2x1ZGUpOwotICAgICAgICBlbHNlIGlmIChleGNsdWRlID09IEludmFsaWRHUFJSZWcpCi0gICAg
ICAgICAgICBtYXRjaGVkID0gKCEoaW5mby5yZWdpc3RlckZvcm1hdCgpICYgRGF0YUZvcm1hdEpT
KSkgPyAoaW5mby5ncHIoKSA9PSBleGNsdWRlMikgOiAgKGluZm8udGFnR1BSKCkgPT0gZXhjbHVk
ZTIgfHwgaW5mby5wYXlsb2FkR1BSKCkgPT0gZXhjbHVkZTIpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtYXRjaGVkID0gKCEoaW5mby5yZWdpc3RlckZvcm1hdCgpICYgRGF0YUZvcm1hdEpT
KSkgPyAoaW5mby5ncHIoKSA9PSBleGNsdWRlIHx8IGluZm8uZ3ByKCkgPT0gZXhjbHVkZTIpIDog
IChpbmZvLnRhZ0dQUigpID09IGV4Y2x1ZGUgfHwgaW5mby50YWdHUFIoKSA9PSBleGNsdWRlMiB8
fCBpbmZvLnBheWxvYWRHUFIoKSA9PSBleGNsdWRlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IGV4
Y2x1ZGUyKTsKLSAgICAgICAgcmV0dXJuIG1hdGNoZWQ7Ci0gICAgfQotI2VuZGlmCi0KICAgICAv
LyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHdoZW4gZ2VuZXJhdGluZyAndW5leHBlY3RlZCcKICAg
ICAvLyBjYWxscyBvdXQgZnJvbSBKSVQgY29kZSB0byBDKysgaGVscGVyIHJvdXRpbmVzIC0KICAg
ICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUgYXBwcm9wcmlhdGUKICAgICAv
LyBzbG90cyBpbiB0aGUgUmVnaXN0ZXJGaWxlIHdpdGhvdXQgY2hhbmdpbmcgYW55IHN0YXRlCiAg
ICAgLy8gaW4gdGhlIEdlbmVyYXRpb25JbmZvLgotICAgIHZvaWQgc2lsZW50U3BpbGxHUFIoVmly
dHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBleGNsdWRlID0gSW52YWxpZEdQUlJlZywgR1BS
UmVnIGV4Y2x1ZGUyID0gSW52YWxpZEdQUlJlZykKKyAgICB2b2lkIHNpbGVudFNwaWxsR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKQogICAgIHsKICAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwogICAgICAgICBB
U1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpICE9IERhdGFGb3JtYXROb25lKTsKICAgICAgICAg
QVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSAhPSBEYXRhRm9ybWF0RG91YmxlKTsKIAotI2lm
IFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIFVOVVNFRF9QQVJBTShleGNsdWRlMik7Ci0gICAgICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkgfHwgKGluZm8uZ3ByKCkgPT0gZXhjbHVkZSkpCi0jZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpIHx8IHJl
Z2lzdGVyc01hdGNoZWQoaW5mbywgZXhjbHVkZSwgZXhjbHVkZTIpKQotI2VuZGlmCisgICAgICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
RGF0YUZvcm1hdCByZWdpc3RlckZvcm1hdCA9IGluZm8ucmVnaXN0ZXJGb3JtYXQoKTsKIAogI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CiAg
ICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlcikKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3Bp
bGxNZSkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihzb3VyY2UsIEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKHNwaWxsTWUpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdENlbGwgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UpOwotICAgICAg
ICAgICAgbV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Io
c3BpbGxNZSkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoc291cmNlLCBKSVRDb21waWxl
cjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CiAgICAgICAgIH0KICNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCi0gICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlciB8fCBy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikKLSAgICAgICAgICAgIG1faml0LnN0
b3JlMzIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSkpOwotICAg
ICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCkKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlUHRyKGluZm8uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHNw
aWxsTWUpKTsKLSAgICAgICAgZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0
b3JhZ2UpCi0gICAgICAgICAgICBtX2ppdC5zdG9yZVB0cihpbmZvLmdwcigpLCBKSVRDb21waWxl
cjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNT
RVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIG1faml0LnN0
b3JlMzIoaW5mby50YWdHUFIoKSwgSklUQ29tcGlsZXI6OnRhZ0ZvcihzcGlsbE1lKSk7Ci0gICAg
ICAgICAgICBtX2ppdC5zdG9yZTMyKGluZm8ucGF5bG9hZEdQUigpLCBKSVRDb21waWxlcjo6cGF5
bG9hZEZvcihzcGlsbE1lKSk7CisgICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3Jt
YXRKUykgeworICAgICAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8IGlu
Zm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHNv
dXJjZSwgc291cmNlID09IGluZm8udGFnR1BSKCkgPyBKSVRDb21waWxlcjo6dGFnRm9yKHNwaWxs
TWUpIDogSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSkpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAg
IG1faml0LnN0b3JlMzIoc291cmNlLCBKSVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1lKSk7
CiAgICAgICAgIH0KICNlbmRpZgogICAgIH0KLSAgICB2b2lkIHNpbGVudFNwaWxsRlBSKFZpcnR1
YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgZXhjbHVkZSA9IEludmFsaWRGUFJSZWcpCisgICAg
dm9pZCBzaWxlbnRTcGlsbEZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJj
ZSkKICAgICB7CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5m
b1tzcGlsbE1lXTsKICAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRh
Rm9ybWF0RG91YmxlKTsKIAotICAgICAgICBpZiAoaW5mby5mcHIoKSA9PSBleGNsdWRlKQotICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpKSB7CiAgICAg
ICAgICAgICAvLyBpdCdzIGVpdGhlciBhIGNvbnN0YW50IG9yIGl0J3MgYWxyZWFkeSBiZWVuIHNw
aWxsZWQKICAgICAgICAgICAgIEFTU0VSVChhdChpbmZvLm5vZGVJbmRleCgpKS5oYXNDb25zdGFu
dCgpIHx8IGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9uZSk7CkBAIC0zNDEsMjAg
KzMxMCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIGl0J3MgbmVpdGhlciBhIGNvbnN0YW50
IG5vciBoYXMgaXQgYmVlbiBzcGlsbGVkLgogICAgICAgICBBU1NFUlQoIWF0KGluZm8ubm9kZUlu
ZGV4KCkpLmhhc0NvbnN0YW50KCkpOwogICAgICAgICBBU1NFUlQoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXROb25lKTsKKyAgICAgICAgQVNTRVJUKGluZm8uZnByKCkgPT0gc291cmNl
KTsKIAotICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShpbmZvLmZwcigpLCBKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihzcGlsbE1lKSk7CisgICAgICAgIG1faml0LnN0b3JlRG91YmxlKHNvdXJjZSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOwogICAgIH0KIAotICAgIHZvaWQgc2ls
ZW50RmlsbEdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIGV4Y2x1ZGUgPSBJbnZh
bGlkR1BSUmVnLCBHUFJSZWcgZXhjbHVkZTIgPSBJbnZhbGlkR1BSUmVnKQorICAgIHZvaWQgc2ls
ZW50RmlsbEdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIHRhcmdldCkKICAgICB7
CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1l
XTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBVTlVTRURfUEFSQU0oZXhjbHVkZTIpOwot
ICAgICAgICBpZiAoaW5mby5ncHIoKSA9PSBleGNsdWRlKQotI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKLSAgICAgICAgaWYgKHJlZ2lzdGVyc01hdGNoZWQoaW5mbywgZXhjbHVkZSwgZXhjbHVkZTIp
KQotI2VuZGlmCi0gICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgTm9kZUluZGV4IG5vZGVJ
bmRleCA9IGluZm8ubm9kZUluZGV4KCk7CiAgICAgICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOwpAQCAtMzYzLDEyICszMjYsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBEYXRhRm9ybWF0
IHJlZ2lzdGVyRm9ybWF0ID0gaW5mby5yZWdpc3RlckZvcm1hdCgpOwogCiAgICAgICAgIGlmIChy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlcikgeworICAgICAgICAgICAgQVNTRVJU
KGluZm8uZ3ByKCkgPT0gdGFyZ2V0KTsKICAgICAgICAgICAgIEFTU0VSVChpc0pTSW50ZWdlcihp
bmZvLnJlZ2lzdGVyRm9ybWF0KCkpKTsKICAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50
KCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkp
OwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkludDMyQ29uc3RhbnQo
bm9kZUluZGV4KSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1t
MzIodmFsdWVPZkludDMyQ29uc3RhbnQobm9kZUluZGV4KSksIHRhcmdldCk7CiAgICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxv
YWRGb3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWQz
MihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1lKSwgdGFyZ2V0KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKQEAgLTM3Niw2MSArMzQwLDY4IEBAIHByb3Rl
Y3RlZDoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3By
KCkgPT0gdGFyZ2V0KTsKICAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKICAg
ICAgICAgICAgICAgICBBU1NFUlQoaXNCb29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSk7Ci0gICAg
ICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mQm9vbGVhbkNvbnN0YW50KG5vZGVJ
bmRleCkpLCBpbmZvLmdwcigpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZh
bHVlT2ZCb29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSksIHRhcmdldCk7CiAgICAgICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRG
b3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1lKSwgdGFyZ2V0KTsKICNlbmRpZgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ID09
IERhdGFGb3JtYXRDZWxsKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSB0YXJn
ZXQpOwogICAgICAgICAgICAgaWYgKG5vZGUuaXNDb25zdGFudCgpKSB7CiAgICAgICAgICAgICAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKEltbVB0cih2YWx1ZS5hc0NlbGwoKSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgICAg
IG1faml0Lm1vdmUoSW1tUHRyKHZhbHVlLmFzQ2VsbCgpKSwgdGFyZ2V0KTsKICAgICAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OnBheWxv
YWRGb3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSksIHRhcmdldCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdFN0b3JhZ2UpIHsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOworICAgICAgICAgICAgQVNTRVJUKGlu
Zm8uZ3ByKCkgPT0gdGFyZ2V0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSksIHRhcmdldCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAogICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMp
OwogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHRhcmdl
dCk7CiAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpCi0gICAgICAgICAgICBtX2ppdC5t
b3ZlKHZhbHVlT2ZKU0NvbnN0YW50QXNJbW1QdHIobm9kZUluZGV4KSwgaW5mby5ncHIoKSk7Cisg
ICAgICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT2ZKU0NvbnN0YW50QXNJbW1QdHIobm9kZUluZGV4
KSwgdGFyZ2V0KTsKICAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFG
b3JtYXRJbnRlZ2VyKSB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEpTSW50ZWdlcik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOwotICAgICAgICAgICAgbV9qaXQub3JQ
dHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBpbmZvLmdwcigpKTsKKyAgICAgICAg
ICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1lKSwgdGFyZ2V0
KTsKKyAgICAgICAgICAgIG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
ciwgdGFyZ2V0KTsKICAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0
YUZvcm1hdERvdWJsZSkgewogICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERh
dGFGb3JtYXRKU0RvdWJsZSk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVy
OjphZGRyZXNzRm9yKHNwaWxsTWUpLCBpbmZvLmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1
YlB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGluZm8uZ3ByKCkpOworICAgICAg
ICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSwgdGFy
Z2V0KTsKKyAgICAgICAgICAgIG1faml0LnN1YlB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIsIHRhcmdldCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9qaXQubG9hZFB0
cihKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSwgaW5mby5ncHIoKSk7CisgICAgICAg
ICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpLCB0YXJn
ZXQpOwogI2Vsc2UKLSAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkKLSAgICAgICAgICAg
IG1faml0LmVtaXRMb2FkKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCksIGluZm8udGFnR1BS
KCksIGluZm8ucGF5bG9hZEdQUigpKTsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1h
dCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgIEFTU0VSVChpbmZvLnRhZ0dQUigp
ID09IHRhcmdldCB8fCBpbmZvLnBheWxvYWRHUFIoKSA9PSB0YXJnZXQpOworICAgICAgICBpZiAo
bm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHYgPSB2YWx1ZU9mSlND
b25zdGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgbV9qaXQubW92ZShpbmZvLnRhZ0dQUigp
ID09IHRhcmdldCA/IEltbTMyKHYudGFnKCkpIDogSW1tMzIodi5wYXlsb2FkKCkpLCB0YXJnZXQp
OworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50
ZWdlcikgewogICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRK
U0ludGVnZXIpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2Fk
Rm9yKHNwaWxsTWUpLCBpbmZvLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIGluZm8udGFnR1BSKCkpOworICAgICAg
ICAgICAgaWYgKGluZm8ucGF5bG9hZEdQUigpID09IHRhcmdldCkgCisgICAgICAgICAgICAgICAg
bV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHNwaWxsTWUpLCB0YXJnZXQpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSwgdGFyZ2V0KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBtX2ppdC5lbWl0TG9hZChub2RlSW5kZXgsIGluZm8udGFnR1BSKCksIGluZm8ucGF5bG9hZEdQ
UigpKTsKKyAgICAgICAgICAgIG1faml0LmxvYWQzMihpbmZvLnRhZ0dQUigpID09IHRhcmdldCA/
IEpJVENvbXBpbGVyOjp0YWdGb3Ioc3BpbGxNZSkgOiBKSVRDb21waWxlcjo6cGF5bG9hZEZvcihz
cGlsbE1lKSwgdGFyZ2V0KTsKICNlbmRpZgogICAgIH0KIAotICAgIHZvaWQgc2lsZW50RmlsbEZQ
UihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIGNhblRyYW1wbGUsIEZQUlJlZyBleGNs
dWRlID0gSW52YWxpZEZQUlJlZykKKyAgICB2b2lkIHNpbGVudEZpbGxGUFIoVmlydHVhbFJlZ2lz
dGVyIHNwaWxsTWUsIEdQUlJlZyBjYW5UcmFtcGxlLCBGUFJSZWcgdGFyZ2V0KQogICAgIHsKICAg
ICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwot
ICAgICAgICBpZiAoaW5mby5mcHIoKSA9PSBleGNsdWRlKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSB0YXJnZXQpOwogCiAgICAgICAgIE5vZGVJbmRl
eCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOwogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC00
NDAsNyArNDExLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgp
KSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKICAg
ICAgICAgICAgIG1faml0Lm1vdmUoSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4odmFsdWVPZk51
bWJlckNvbnN0YW50KG5vZGVJbmRleCkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2pp
dC5tb3ZlUHRyVG9Eb3VibGUoY2FuVHJhbXBsZSwgaW5mby5mcHIoKSk7CisgICAgICAgICAgICBt
X2ppdC5tb3ZlUHRyVG9Eb3VibGUoY2FuVHJhbXBsZSwgdGFyZ2V0KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICAKQEAgLTQ0OCwzOCArNDE5LDQwIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgICAgIC8vIGl0IHdhcyBhbHJlYWR5IHNwaWxsZWQgcHJldmlvdXNseSBhbmQg
bm90IGFzIGEgZG91YmxlLCB3aGljaCBtZWFucyB3ZSBuZWVkIHVuYm94aW5nLgogICAgICAgICAg
ICAgQVNTRVJUKGluZm8uc3BpbGxGb3JtYXQoKSAmIERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAg
ICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpLCBjYW5UcmFt
cGxlKTsKLSAgICAgICAgICAgIHVuYm94RG91YmxlKGNhblRyYW1wbGUsIGluZm8uZnByKCkpOwor
ICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgdGFyZ2V0KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSksIGluZm8uZnByKCkpOworICAgICAgICBtX2ppdC5sb2Fk
RG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpLCB0YXJnZXQpOwogI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgVU5VU0VEX1BBUkFNKGNhblRyYW1wbGUpOwogICAg
ICAgICBBU1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwg
aW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXRKU0RvdWJsZSk7Ci0gICAgICAgIG1f
aml0LmVtaXRMb2FkRG91YmxlKG5vZGVJbmRleCwgaW5mby5mcHIoKSk7CisgICAgICAgIG1faml0
LmVtaXRMb2FkRG91YmxlKG5vZGVJbmRleCwgdGFyZ2V0KTsKICNlbmRpZgogICAgIH0KIAogICAg
IHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBleGNs
dWRlMiA9IEludmFsaWRHUFJSZWcpCiAgICAgewogICAgICAgICBmb3IgKGdwcl9pdGVyYXRvciBp
dGVyID0gbV9ncHJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9ncHJzLmVuZCgpOyArK2l0ZXIpIHsKLSAg
ICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAhPSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyKQotICAg
ICAgICAgICAgICAgIHNpbGVudFNwaWxsR1BSKGl0ZXIubmFtZSgpLCBleGNsdWRlLCBleGNsdWRl
Mik7CisgICAgICAgICAgICBHUFJSZWcgZ3ByID0gaXRlci5yZWdJRCgpOworICAgICAgICAgICAg
aWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIgJiYgZ3ByICE9IGV4Y2x1
ZGUgJiYgZ3ByICE9IGV4Y2x1ZGUyKQorICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsR1BSKGl0
ZXIubmFtZSgpLCBncHIpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoZnByX2l0ZXJhdG9yIGl0
ZXIgPSBtX2ZwcnMuYmVnaW4oKTsgaXRlciAhPSBtX2ZwcnMuZW5kKCk7ICsraXRlcikgewogICAg
ICAgICAgICAgaWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpCi0gICAg
ICAgICAgICAgICAgc2lsZW50U3BpbGxGUFIoaXRlci5uYW1lKCkpOworICAgICAgICAgICAgICAg
IHNpbGVudFNwaWxsRlBSKGl0ZXIubmFtZSgpLCBpdGVyLnJlZ0lEKCkpOwogICAgICAgICB9CiAg
ICAgfQogICAgIHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoRlBSUmVnIGV4Y2x1ZGUpCiAg
ICAgewogICAgICAgICBmb3IgKGdwcl9pdGVyYXRvciBpdGVyID0gbV9ncHJzLmJlZ2luKCk7IGl0
ZXIgIT0gbV9ncHJzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgICAgIGlmIChpdGVyLm5hbWUo
KSAhPSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyKQotICAgICAgICAgICAgICAgIHNpbGVudFNwaWxs
R1BSKGl0ZXIubmFtZSgpKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEdQUihpdGVyLm5h
bWUoKSwgaXRlci5yZWdJRCgpKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGZwcl9pdGVyYXRv
ciBpdGVyID0gbV9mcHJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9mcHJzLmVuZCgpOyArK2l0ZXIpIHsK
LSAgICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAhPSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyKQot
ICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsRlBSKGl0ZXIubmFtZSgpLCBleGNsdWRlKTsKKyAg
ICAgICAgICAgIEZQUlJlZyBmcHIgPSBpdGVyLnJlZ0lEKCk7CisgICAgICAgICAgICBpZiAoaXRl
ci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1YWxSZWdpc3RlciAmJiBmcHIgIT0gZXhjbHVkZSkKKyAg
ICAgICAgICAgICAgICBzaWxlbnRTcGlsbEZQUihpdGVyLm5hbWUoKSwgZnByKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtNDkxLDExICs0NjQsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAg
ICAgICAgZm9yIChmcHJfaXRlcmF0b3IgaXRlciA9IG1fZnBycy5iZWdpbigpOyBpdGVyICE9IG1f
ZnBycy5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52
YWxpZFZpcnR1YWxSZWdpc3RlcikKLSAgICAgICAgICAgICAgICBzaWxlbnRGaWxsRlBSKGl0ZXIu
bmFtZSgpLCBjYW5UcmFtcGxlKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRGaWxsRlBSKGl0ZXIu
bmFtZSgpLCBjYW5UcmFtcGxlLCBpdGVyLnJlZ0lEKCkpOwogICAgICAgICB9CiAgICAgICAgIGZv
ciAoZ3ByX2l0ZXJhdG9yIGl0ZXIgPSBtX2dwcnMuYmVnaW4oKTsgaXRlciAhPSBtX2dwcnMuZW5k
KCk7ICsraXRlcikgewotICAgICAgICAgICAgaWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0
dWFsUmVnaXN0ZXIpCi0gICAgICAgICAgICAgICAgc2lsZW50RmlsbEdQUihpdGVyLm5hbWUoKSwg
ZXhjbHVkZSwgZXhjbHVkZTIpOworICAgICAgICAgICAgR1BSUmVnIGdwciA9IGl0ZXIucmVnSUQo
KTsKKyAgICAgICAgICAgIGlmIChpdGVyLm5hbWUoKSAhPSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVy
ICYmIGdwciAhPSBleGNsdWRlICYmIGdwciAhPSBleGNsdWRlMikKKyAgICAgICAgICAgICAgICBz
aWxlbnRGaWxsR1BSKGl0ZXIubmFtZSgpLCBncHIpOwogICAgICAgICB9CiAgICAgfQogICAgIHZv
aWQgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhGUFJSZWcgZXhjbHVkZSkKQEAgLTUwMywxNCArNDc3
LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgR1BSUmVnIGNhblRyYW1wbGUgPSBHUFJJbmZvOjpy
ZWdUMDsKICAgICAgICAgCiAgICAgICAgIGZvciAoZnByX2l0ZXJhdG9yIGl0ZXIgPSBtX2ZwcnMu
YmVnaW4oKTsgaXRlciAhPSBtX2ZwcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgaWYg
KGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpIHsKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfVU5VU0VEKGV4Y2x1ZGUsIGl0ZXIucmVnSUQoKSAhPSBleGNsdWRlKTsKLSAgICAg
ICAgICAgICAgICBzaWxlbnRGaWxsRlBSKGl0ZXIubmFtZSgpLCBjYW5UcmFtcGxlLCBleGNsdWRl
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEZQUlJlZyBmcHIgPSBpdGVyLnJlZ0lEKCk7
CisgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1YWxSZWdpc3RlciAm
JiBmcHIgIT0gZXhjbHVkZSkKKyAgICAgICAgICAgICAgICBzaWxlbnRGaWxsRlBSKGl0ZXIubmFt
ZSgpLCBjYW5UcmFtcGxlLCBmcHIpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoZ3ByX2l0ZXJh
dG9yIGl0ZXIgPSBtX2dwcnMuYmVnaW4oKTsgaXRlciAhPSBtX2dwcnMuZW5kKCk7ICsraXRlcikg
ewogICAgICAgICAgICAgaWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIp
Ci0gICAgICAgICAgICAgICAgc2lsZW50RmlsbEdQUihpdGVyLm5hbWUoKSk7CisgICAgICAgICAg
ICAgICAgc2lsZW50RmlsbEdQUihpdGVyLm5hbWUoKSwgaXRlci5yZWdJRCgpKTsKICAgICAgICAg
fQogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>