<?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>109387</bug_id>
          
          <creation_ts>2013-02-10 13:47:18 -0800</creation_ts>
          <short_desc>DFG CompareEq(a, null) and CompareStrictEq(a, const) are unsound with respect to constant folding</short_desc>
          <delta_ts>2013-02-11 14:24:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109470</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>jberlin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829347</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-10 13:47:18 -0800</bug_when>
    <thetext>CompareEq(a, null) does strictly less speculation than CompareEq(a, b).  Hence if we do one run of CFA and eliminate checks based on seeing CompareEq(a, b) - which can happen because CompareEq(a, b) &quot;proves&quot; that we had done a check which we may later eliminate - and then later prove that b is null, then we will end up emitting zero checks.  And then weirdness ensues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829424</commentid>
    <comment_count>1</comment_count>
      <attachid>187510</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-10 21:01:31 -0800</bug_when>
    <thetext>Created attachment 187510
the patch

Not marking r? yet because I want to run more benchmarks...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829437</commentid>
    <comment_count>2</comment_count>
      <attachid>187514</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-10 22:36:47 -0800</bug_when>
    <thetext>Created attachment 187514
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829920</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-11 11:23:05 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/142491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829957</commentid>
    <comment_count>4</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-02-11 11:52:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Landed in http://trac.webkit.org/changeset/142491

This caused build breakage:

DFGSpeculativeJIT32_64.cpp:2113:13: error: enumeration values &apos;CompareEqConstant&apos; and &apos;CompareStrictEqConstant&apos; not handled in switch [-Werror,-Wswitch]
    switch (op) {
            ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829984</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:31:07 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829988</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-02-11 12:34:10 -0800</bug_when>
    <thetext>Rollout is happening in https://bugs.webkit.org/show_bug.cgi?id=109470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830130</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-11 14:24:54 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/142515</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187510</attachid>
            <date>2013-02-10 21:01:31 -0800</date>
            <delta_ts>2013-02-10 22:36:47 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12512</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNDI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDEzLTAyLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIENvbXBhcmVFcShhLCBudWxsKSBhbmQgQ29tcGFyZVN0cmljdEVxKGEsIGNvbnN0KSBhcmUg
dW5zb3VuZCB3aXRoIHJlc3BlY3QgdG8gY29uc3RhbnQgZm9sZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Mzg3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBMb2NrIGluIHRoZSBkZWNp
c2lvbiB0byB1c2UgYSBub24tc3BlY3VsYXRpdmUgY29uc3RhbnQgY29tcGFyaXNvbiBhcyBlYXJs
eSBhcyBwb3NzaWJsZQorICAgICAgICBhbmQgZG9uJ3QgbGV0IHRoZSBDRkEgY2hhbmdlIGl0IGJ5
IGZvbGRpbmcgY29uc3RhbnRzLiBUaGlzIG1pZ2h0IGJlIGEgcGVyZm9ybWFuY2UKKyAgICAgICAg
cGVuYWx0eSBvbiBzb21lIHJlYWxseSB3ZWlyZCBjb2RlIChGV0lXLCBJIGhhdmVuJ3Qgc2VlbiB0
aGlzIG9uIGJlbmNobWFya3MpLCBidXQgb24KKyAgICAgICAgdGhlIG90aGVyIGhhbmQgaXQgY29t
cGxldGVseSBzaWRlLXN0ZXBzIHRoZSB1bnNvdW5kbmVzcyB0aGF0IHRoZSBidWcgc3BlYWtzIG9m
LgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmlzQ29uc3RhbnRG
b3JDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAoQnl0ZUNvZGVQYXJzZXIpOgorICAgICAgICAo
SlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
Q1NFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNT
RSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgIChERkcpOgorICAgICAg
ICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVN0cmljdEVxKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorCiAy
MDEzLTAyLTEwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBGaXggdGhlIEdUSysgZ3lwIGJ1aWxkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDE0MjM3OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc3OCw3ICs3NzgsOCBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQg
aW5kCiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6CiAg
ICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgIGNhc2UgQ29tcGFyZUVxOiB7CisgICAgY2Fz
ZSBDb21wYXJlRXE6CisgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDogewogICAgICAgICBib29s
IGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7CiAKICAgICAgICAgSlNWYWx1ZSBsZWZ0Q29uc3QgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwpAQCAtODA5LDcgKzgxMCw3IEBAIGJvb2wg
QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFjb25zdGFudFdhc1NldCAmJiBub2RlLT5vcCgp
ID09IENvbXBhcmVFcSkgeworICAgICAgICBpZiAoIWNvbnN0YW50V2FzU2V0ICYmIChub2RlLT5v
cCgpID09IENvbXBhcmVFcUNvbnN0YW50IHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxKSkgewog
ICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgbGVmdFR5cGUgPSBmb3JOb2RlKG5vZGUtPmNoaWxk
MSgpKS5tX3R5cGU7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodFR5cGUgPSBmb3JO
b2RlKG5vZGUtPmNoaWxkMigpKS5tX3R5cGU7CiAgICAgICAgICAgICBpZiAoKGlzSW50MzJTcGVj
dWxhdGlvbihsZWZ0VHlwZSkgJiYgaXNPdGhlclNwZWN1bGF0aW9uKHJpZ2h0VHlwZSkpCkBAIC04
MjUsNiArODI2LDEyIEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQK
ICAgICAgICAgCiAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0KFNwZWNCb29sZWFuKTsKICAgICAg
ICAgCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcUNvbnN0YW50KSB7CisgICAg
ICAgICAgICAvLyBXZSBjYW4gZXhpdCBpZiB3ZSBoYXZlbid0IGZpcmVkIHRoZSBNYXNxdWVyYWRl
c0FzVW5kZWZpbmQgd2F0Y2hwb2ludCB5ZXQuCisgICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0
KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBOb2RlKiBsZWZ0ID0gbm9kZS0+
Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdodCA9IG5vZGUtPmNoaWxkMigpLm5v
ZGUoKTsKICAgICAgICAgU3BlY3VsYXRlZFR5cGUgZmlsdGVyOwpAQCAtODM2LDEzICs4NDMsNiBA
QCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAgICAgICBm
aWx0ZXIgPSBTcGVjTnVtYmVyOwogICAgICAgICAgICAgY2hlY2tlciA9IGlzTnVtYmVyU3BlY3Vs
YXRpb247CiAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBDb21wYXJlRXEpIHsKLSAg
ICAgICAgICAgIGlmICgobV9ncmFwaC5pc0NvbnN0YW50KGxlZnQpICYmIG1fZ3JhcGgudmFsdWVP
ZkpTQ29uc3RhbnQobGVmdCkuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgfHwgKG1fZ3JhcGgu
aXNDb25zdGFudChyaWdodCkgJiYgbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChyaWdodCkuaXNO
dWxsKCkpKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgY2FuIGV4aXQgaWYgd2UgaGF2ZW4ndCBm
aXJlZCB0aGUgTWFzcXVlcmFkZXNBc1VuZGVmaW5kIHdhdGNocG9pbnQgeWV0LgotICAgICAgICAg
ICAgICAgIG5vZGUtPnNldENhbkV4aXQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2Rl
LT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+aXNTdGls
bFZhbGlkKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAobGVmdC0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkgfHwg
cmlnaHQtPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKSB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
c2V0Q2FuRXhpdChmYWxzZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC04ODIsNyArODgy
LDggQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgICAgICAgICAKLSAgICBjYXNlIENvbXBhcmVTdHJpY3RFcTogewor
ICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxQ29uc3Rh
bnQ6IHsKICAgICAgICAgTm9kZSogbGVmdE5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7CiAg
ICAgICAgIE5vZGUqIHJpZ2h0Tm9kZSA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKICAgICAgICAg
SlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShsZWZ0Tm9kZSkudmFsdWUoKTsKQEAgLTg5NCwxOSArODk1
LDkgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZm9yTm9kZShub2RlKS5zZXQoU3BlY0Jvb2xl
YW4pOwotICAgICAgICBpZiAobV9ncmFwaC5pc0pTQ29uc3RhbnQobGVmdE5vZGUpKSB7Ci0gICAg
ICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChsZWZ0Tm9k
ZSk7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmlzTnVtYmVyKCkgJiYgIXZhbHVlLmlzU3RyaW5n
KCkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0KGZhbHNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAobV9n
cmFwaC5pc0pTQ29uc3RhbnQocmlnaHROb2RlKSkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQocmlnaHROb2RlKTsKLSAgICAgICAgICAgIGlm
ICghdmFsdWUuaXNOdW1iZXIoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKSkgewotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldENhbkV4aXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQorICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBDb21wYXJlU3RyaWN0RXFDb25z
dGFudCkgeworICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdChmYWxzZSk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50
ZWdlcihsZWZ0Tm9kZSwgcmlnaHROb2RlKSkgewogICAgICAgICAgICAgc3BlY3VsYXRlSW50MzJC
aW5hcnkobm9kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTQyMzc5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4NCw2ICs2
ODQsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG5vZGUtPmlzU3Ryb25nbHlQcm92ZWRD
b25zdGFudEluKGlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAgCisgICAgYm9vbCBpc0Nv
bnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAo
IW5vZGUtPmlzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
SlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpOworICAgICAgICByZXR1cm4g
dmFsdWUuaXNCb29sZWFuKCkgfHwgdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKTsKKyAgICB9Cisg
ICAgCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjcmVhdGUgYSBub2RlIGFuZCBhZGQgaXQgdG8gdGhl
IGdyYXBoLiBJZiBub2RlcyBvZiB0aGlzIHR5cGUgYXJlCiAgICAgLy8gJ211c3RHZW5lcmF0ZScg
dGhlbiB0aGUgbm9kZSAgd2lsbCBpbXBsaWNpdGx5IGJlIHJlZidlZCB0byBlbnN1cmUgZ2VuZXJh
dGlvbi4KICAgICBOb2RlKiBhZGRUb0dyYXBoKE5vZGVUeXBlIG9wLCBOb2RlKiBjaGlsZDEgPSAw
LCBOb2RlKiBjaGlsZDIgPSAwLCBOb2RlKiBjaGlsZDMgPSAwKQpAQCAtMjQxOCw3ICsyNDI2LDcg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogCiAgICAgICAgIGNh
c2Ugb3BfZXFfbnVsbDogewogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaChDb21wYXJlRXEsIHZhbHVlLCBjb25zdGFudE51
bGwoKSkpOworICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IGFkZFRvR3JhcGgoQ29tcGFyZUVxQ29uc3RhbnQsIHZhbHVlLCBjb25zdGFudE51bGwoKSkpOwog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZXFfbnVsbCk7CiAgICAgICAgIH0KIApAQCAtMjQz
NCw3ICsyNDQyLDEyIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQK
ICAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3RyaWN0ZXEpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKENvbXBhcmVTdHJpY3RFcSwgb3AxLCBvcDIpKTsK
KyAgICAgICAgICAgIGlmIChpc0NvbnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKG9wMSkpCisgICAg
ICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3Jh
cGgoQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQsIG9wMiwgb3AxKSk7CisgICAgICAgICAgICBlbHNl
IGlmIChpc0NvbnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKG9wMikpCisgICAgICAgICAgICAgICAg
c2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoQ29tcGFyZVN0
cmljdEVxQ29uc3RhbnQsIG9wMSwgb3AyKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoQ29t
cGFyZVN0cmljdEVxLCBvcDEsIG9wMikpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3Ry
aWN0ZXEpOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q1NFUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q1NFUGhhc2UuY3BwCShyZXZpc2lvbiAxNDIzNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NTRVBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExMSw2ICsxMTExLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBHZXRTY29wZVJlZ2lzdGVyczoKICAgICAgICAgY2FzZSBH
ZXRTY29wZToKICAgICAgICAgY2FzZSBUeXBlT2Y6CisgICAgICAgIGNhc2UgQ29tcGFyZUVxQ29u
c3RhbnQ6CiAgICAgICAgICAgICBzZXRSZXBsYWNlbWVudChwdXJlQ1NFKG5vZGUpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAxNDIzNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsOSBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ29tcGFyZUdyZWF0ZXIs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIp
IFwKICAgICBtYWNybyhDb21wYXJlR3JlYXRlckVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVN
dXN0R2VuZXJhdGUgfCBOb2RlTWlnaHRDbG9iYmVyKSBcCiAgICAgbWFjcm8oQ29tcGFyZUVxLCBO
b2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlTWlnaHRDbG9iYmVyKSBc
CisgICAgbWFjcm8oQ29tcGFyZUVxQ29uc3RhbnQsIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENvbXBhcmVTdHJpY3RFcSwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKKyAgICBtYWNybyhDb21wYXJlU3RyaWN0RXFDb25zdGFudCwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKICAgICBcCiAgICAgLyogQ2FsbHMuICovXAogICAgIG1hY3JvKENhbGwsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncyB8IE5vZGVDbG9iYmVyc1dv
cmxkKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTQyMzc5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwOCw3ICs1MDgsOSBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIENvbXBhcmVHcmVhdGVyOgogICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6CiAgICAg
ICAgIGNhc2UgQ29tcGFyZUVxOgorICAgICAgICBjYXNlIENvbXBhcmVFcUNvbnN0YW50OgogICAg
ICAgICBjYXNlIENvbXBhcmVTdHJpY3RFcToKKyAgICAgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFD
b25zdGFudDoKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mOgogICAgICAgICBjYXNlIElzVW5kZWZp
bmVkOgogICAgICAgICBjYXNlIElzQm9vbGVhbjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTQyMzc5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjUxMywyMiArMjUxMywyMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGlmIChjb21wYXJlKG5vZGUsIEpJVENvbXBpbGVy
OjpHcmVhdGVyVGhhbk9yRXF1YWwsIEpJVENvbXBpbGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yRXF1
YWwsIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBicmVhazsKKyAgICAgICAgCisgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDoKKyAgICAg
ICAgQVNTRVJUKGlzTnVsbENvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpOworICAgICAg
ICBpZiAobm9uU3BlY3VsYXRpdmVDb21wYXJlTnVsbChub2RlLCBub2RlLT5jaGlsZDEoKSkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb21wYXJlRXE6
Ci0gICAgICAgIGlmIChpc051bGxDb25zdGFudChub2RlLT5jaGlsZDEoKS5ub2RlKCkpKSB7Ci0g
ICAgICAgICAgICBpZiAobm9uU3BlY3VsYXRpdmVDb21wYXJlTnVsbChub2RlLCBub2RlLT5jaGls
ZDIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKGlzTnVsbENvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkp
IHsKLSAgICAgICAgICAgIGlmIChub25TcGVjdWxhdGl2ZUNvbXBhcmVOdWxsKG5vZGUsIG5vZGUt
PmNoaWxkMSgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQogICAgICAgICBpZiAoY29tcGFyZShub2RlLCBKSVRDb21waWxlcjo6RXF1YWws
IEpJVENvbXBpbGVyOjpEb3VibGVFcXVhbCwgb3BlcmF0aW9uQ29tcGFyZUVxKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENvbXBhcmVTdHJpY3RFcUNv
bnN0YW50OgorICAgICAgICBpZiAoY29tcGlsZVN0cmljdEVxRm9yQ29uc3RhbnQobm9kZSwgbm9k
ZS0+Y2hpbGQxKCksIHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQ29tcGFyZVN0
cmljdEVxOgogICAgICAgICBpZiAoY29tcGlsZVN0cmljdEVxKG5vZGUpKQogICAgICAgICAgICAg
cmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE0MjM3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYwLDIzICszNDYw
LDYgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxRm9yQwogCiBib29sIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaWN0RXEoTm9kZSogbm9kZSkKIHsKLSAgICAvLyAxKSBJ
ZiBlaXRoZXIgb3BlcmFuZCBpcyBhIGNvbnN0YW50IGFuZCB0aGF0IGNvbnN0YW50IGlzIG5vdCBh
IGRvdWJsZSwgaW50ZWdlciwKLSAgICAvLyAgICBvciBzdHJpbmcsIHRoZW4gZG8gYSBKU1ZhbHVl
IGNvbXBhcmlzb24uCi0gICAgCi0gICAgaWYgKGlzSlNDb25zdGFudChub2RlLT5jaGlsZDEoKS5u
b2RlKCkpKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2Rl
LT5jaGlsZDEoKS5ub2RlKCkpOwotICAgICAgICBpZiAoIXZhbHVlLmlzTnVtYmVyKCkgJiYgIXZh
bHVlLmlzU3RyaW5nKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGlsZVN0cmljdEVxRm9yQ29u
c3RhbnQobm9kZSwgbm9kZS0+Y2hpbGQyKCksIHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgaWYg
KGlzSlNDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7Ci0gICAgICAgIEpTVmFsdWUg
dmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpOwotICAgICAg
ICBpZiAoIXZhbHVlLmlzTnVtYmVyKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAgICAg
ICByZXR1cm4gY29tcGlsZVN0cmljdEVxRm9yQ29uc3RhbnQobm9kZSwgbm9kZS0+Y2hpbGQxKCks
IHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gMikgSWYgdGhlIG9wZXJhbmRzIGFyZSBwcmVk
aWN0ZWQgaW50ZWdlciwgZG8gYW4gaW50ZWdlciBjb21wYXJpc29uLgotICAgIAogICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVJbnRlZ2VyKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+
Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICB1bnNpZ25lZCBicmFuY2hJbmRleEluQmxvY2sg
PSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOwogICAgICAgICBpZiAoYnJhbmNoSW5kZXhJbkJsb2Nr
ICE9IFVJTlRfTUFYKSB7CkBAIC0zNDkyLDggKzM0NzUsNiBAQCBib29sIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlU3RyaWN0RXEoTm9kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAg
Ci0gICAgLy8gMykgSWYgdGhlIG9wZXJhbmRzIGFyZSBwcmVkaWN0ZWQgZG91YmxlLCBkbyBhIGRv
dWJsZSBjb21wYXJpc29uLgotICAgIAogICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVOdW1i
ZXIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGJyYW5jaEluZGV4SW5CbG9jayA9IGRldGVjdFBlZXBIb2xlQnJhbmNoKCk7
CiAgICAgICAgIGlmIChicmFuY2hJbmRleEluQmxvY2sgIT0gVUlOVF9NQVgpIHsKQEAgLTM1MjYs
OCArMzUwNyw2IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcShOb2QKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICAvLyA1KSBGYWxsIGJhY2sgdG8g
bm9uLXNwZWN1bGF0aXZlIHN0cmljdCBlcXVhbGl0eS4KLSAgICAKICAgICByZXR1cm4gbm9uU3Bl
Y3VsYXRpdmVTdHJpY3RFcShub2RlKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187514</attachid>
            <date>2013-02-10 22:36:47 -0800</date>
            <delta_ts>2013-02-11 09:11:12 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14934</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNDI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDEzLTAyLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIENvbXBhcmVFcShhLCBudWxsKSBhbmQgQ29tcGFyZVN0cmljdEVxKGEsIGNvbnN0KSBhcmUg
dW5zb3VuZCB3aXRoIHJlc3BlY3QgdG8gY29uc3RhbnQgZm9sZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Mzg3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBMb2NrIGluIHRoZSBkZWNp
c2lvbiB0byB1c2UgYSBub24tc3BlY3VsYXRpdmUgY29uc3RhbnQgY29tcGFyaXNvbiBhcyBlYXJs
eSBhcyBwb3NzaWJsZQorICAgICAgICBhbmQgZG9uJ3QgbGV0IHRoZSBDRkEgY2hhbmdlIGl0IGJ5
IGZvbGRpbmcgY29uc3RhbnRzLiBUaGlzIG1pZ2h0IGJlIGEgcGVyZm9ybWFuY2UKKyAgICAgICAg
cGVuYWx0eSBvbiBzb21lIHJlYWxseSB3ZWlyZCBjb2RlIChGV0lXLCBJIGhhdmVuJ3Qgc2VlbiB0
aGlzIG9uIGJlbmNobWFya3MpLCBidXQgb24KKyAgICAgICAgdGhlIG90aGVyIGhhbmQgaXQgY29t
cGxldGVseSBzaWRlLXN0ZXBzIHRoZSB1bnNvdW5kbmVzcyB0aGF0IHRoZSBidWcgc3BlYWtzIG9m
LgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmlzQ29uc3RhbnRG
b3JDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAoQnl0ZUNvZGVQYXJzZXIpOgorICAgICAgICAo
SlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
Q1NFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNT
RSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgIChERkcpOgorICAgICAg
ICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVN0cmljdEVxKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorCiAy
MDEzLTAyLTEwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBGaXggdGhlIEdUSysgZ3lwIGJ1aWxkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDE0MjM3OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc3OCw3ICs3NzgsOCBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQg
aW5kCiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6CiAg
ICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgIGNhc2UgQ29tcGFyZUVxOiB7CisgICAgY2Fz
ZSBDb21wYXJlRXE6CisgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDogewogICAgICAgICBib29s
IGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7CiAKICAgICAgICAgSlNWYWx1ZSBsZWZ0Q29uc3QgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwpAQCAtODA5LDcgKzgxMCw3IEBAIGJvb2wg
QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFjb25zdGFudFdhc1NldCAmJiBub2RlLT5vcCgp
ID09IENvbXBhcmVFcSkgeworICAgICAgICBpZiAoIWNvbnN0YW50V2FzU2V0ICYmIChub2RlLT5v
cCgpID09IENvbXBhcmVFcUNvbnN0YW50IHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxKSkgewog
ICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgbGVmdFR5cGUgPSBmb3JOb2RlKG5vZGUtPmNoaWxk
MSgpKS5tX3R5cGU7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodFR5cGUgPSBmb3JO
b2RlKG5vZGUtPmNoaWxkMigpKS5tX3R5cGU7CiAgICAgICAgICAgICBpZiAoKGlzSW50MzJTcGVj
dWxhdGlvbihsZWZ0VHlwZSkgJiYgaXNPdGhlclNwZWN1bGF0aW9uKHJpZ2h0VHlwZSkpCkBAIC04
MjUsNiArODI2LDEyIEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQK
ICAgICAgICAgCiAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0KFNwZWNCb29sZWFuKTsKICAgICAg
ICAgCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcUNvbnN0YW50KSB7CisgICAg
ICAgICAgICAvLyBXZSBjYW4gZXhpdCBpZiB3ZSBoYXZlbid0IGZpcmVkIHRoZSBNYXNxdWVyYWRl
c0FzVW5kZWZpbmQgd2F0Y2hwb2ludCB5ZXQuCisgICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0
KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBOb2RlKiBsZWZ0ID0gbm9kZS0+
Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdodCA9IG5vZGUtPmNoaWxkMigpLm5v
ZGUoKTsKICAgICAgICAgU3BlY3VsYXRlZFR5cGUgZmlsdGVyOwpAQCAtODM2LDEzICs4NDMsNiBA
QCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAgICAgICBm
aWx0ZXIgPSBTcGVjTnVtYmVyOwogICAgICAgICAgICAgY2hlY2tlciA9IGlzTnVtYmVyU3BlY3Vs
YXRpb247CiAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBDb21wYXJlRXEpIHsKLSAg
ICAgICAgICAgIGlmICgobV9ncmFwaC5pc0NvbnN0YW50KGxlZnQpICYmIG1fZ3JhcGgudmFsdWVP
ZkpTQ29uc3RhbnQobGVmdCkuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgfHwgKG1fZ3JhcGgu
aXNDb25zdGFudChyaWdodCkgJiYgbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChyaWdodCkuaXNO
dWxsKCkpKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgY2FuIGV4aXQgaWYgd2UgaGF2ZW4ndCBm
aXJlZCB0aGUgTWFzcXVlcmFkZXNBc1VuZGVmaW5kIHdhdGNocG9pbnQgeWV0LgotICAgICAgICAg
ICAgICAgIG5vZGUtPnNldENhbkV4aXQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2Rl
LT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+aXNTdGls
bFZhbGlkKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAobGVmdC0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkgfHwg
cmlnaHQtPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKSB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
c2V0Q2FuRXhpdChmYWxzZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC04ODIsNyArODgy
LDggQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgICAgICAgICAKLSAgICBjYXNlIENvbXBhcmVTdHJpY3RFcTogewor
ICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxQ29uc3Rh
bnQ6IHsKICAgICAgICAgTm9kZSogbGVmdE5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7CiAg
ICAgICAgIE5vZGUqIHJpZ2h0Tm9kZSA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKICAgICAgICAg
SlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShsZWZ0Tm9kZSkudmFsdWUoKTsKQEAgLTg5NCwxOSArODk1
LDkgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZm9yTm9kZShub2RlKS5zZXQoU3BlY0Jvb2xl
YW4pOwotICAgICAgICBpZiAobV9ncmFwaC5pc0pTQ29uc3RhbnQobGVmdE5vZGUpKSB7Ci0gICAg
ICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChsZWZ0Tm9k
ZSk7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmlzTnVtYmVyKCkgJiYgIXZhbHVlLmlzU3RyaW5n
KCkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0KGZhbHNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAobV9n
cmFwaC5pc0pTQ29uc3RhbnQocmlnaHROb2RlKSkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQocmlnaHROb2RlKTsKLSAgICAgICAgICAgIGlm
ICghdmFsdWUuaXNOdW1iZXIoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKSkgewotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldENhbkV4aXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQorICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBDb21wYXJlU3RyaWN0RXFDb25z
dGFudCkgeworICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdChmYWxzZSk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50
ZWdlcihsZWZ0Tm9kZSwgcmlnaHROb2RlKSkgewogICAgICAgICAgICAgc3BlY3VsYXRlSW50MzJC
aW5hcnkobm9kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTQyMzc5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4NCw2ICs2
ODQsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG5vZGUtPmlzU3Ryb25nbHlQcm92ZWRD
b25zdGFudEluKGlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAgCisgICAgYm9vbCBpc0Nv
bnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAo
IW5vZGUtPmlzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
SlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpOworICAgICAgICByZXR1cm4g
dmFsdWUuaXNCb29sZWFuKCkgfHwgdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKTsKKyAgICB9Cisg
ICAgCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjcmVhdGUgYSBub2RlIGFuZCBhZGQgaXQgdG8gdGhl
IGdyYXBoLiBJZiBub2RlcyBvZiB0aGlzIHR5cGUgYXJlCiAgICAgLy8gJ211c3RHZW5lcmF0ZScg
dGhlbiB0aGUgbm9kZSAgd2lsbCBpbXBsaWNpdGx5IGJlIHJlZidlZCB0byBlbnN1cmUgZ2VuZXJh
dGlvbi4KICAgICBOb2RlKiBhZGRUb0dyYXBoKE5vZGVUeXBlIG9wLCBOb2RlKiBjaGlsZDEgPSAw
LCBOb2RlKiBjaGlsZDIgPSAwLCBOb2RlKiBjaGlsZDMgPSAwKQpAQCAtMjQxOCw3ICsyNDI2LDcg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogCiAgICAgICAgIGNh
c2Ugb3BfZXFfbnVsbDogewogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaChDb21wYXJlRXEsIHZhbHVlLCBjb25zdGFudE51
bGwoKSkpOworICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IGFkZFRvR3JhcGgoQ29tcGFyZUVxQ29uc3RhbnQsIHZhbHVlLCBjb25zdGFudE51bGwoKSkpOwog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZXFfbnVsbCk7CiAgICAgICAgIH0KIApAQCAtMjQz
NCw3ICsyNDQyLDEyIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQK
ICAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3RyaWN0ZXEpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKENvbXBhcmVTdHJpY3RFcSwgb3AxLCBvcDIpKTsK
KyAgICAgICAgICAgIGlmIChpc0NvbnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKG9wMSkpCisgICAg
ICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3Jh
cGgoQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQsIG9wMiwgb3AxKSk7CisgICAgICAgICAgICBlbHNl
IGlmIChpc0NvbnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKG9wMikpCisgICAgICAgICAgICAgICAg
c2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoQ29tcGFyZVN0
cmljdEVxQ29uc3RhbnQsIG9wMSwgb3AyKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoQ29t
cGFyZVN0cmljdEVxLCBvcDEsIG9wMikpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3Ry
aWN0ZXEpOwogICAgICAgICB9CiAKQEAgLTI0NTYsNyArMjQ2OSw3IEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKIAogICAgICAgICBjYXNlIG9wX25lcV9udWxsOiB7
CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKTsKLSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCBhZGRUb0dyYXBoKExvZ2ljYWxOb3QsIGFkZFRvR3JhcGgoQ29tcGFyZUVxLCB2YWx1ZSwgY29u
c3RhbnROdWxsKCkpKSk7CisgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgYWRkVG9HcmFwaChMb2dpY2FsTm90LCBhZGRUb0dyYXBoKENvbXBhcmVFcUNvbnN0
YW50LCB2YWx1ZSwgY29uc3RhbnROdWxsKCkpKSk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShv
cF9uZXFfbnVsbCk7CiAgICAgICAgIH0KIApAQCAtMjQ3Miw3ICsyNDg1LDE0IEBAIGJvb2wgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICAgICAgTkVY
VF9PUENPREUob3Bfc3RyaWN0ZXEpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dy
YXBoKExvZ2ljYWxOb3QsIGFkZFRvR3JhcGgoQ29tcGFyZVN0cmljdEVxLCBvcDEsIG9wMikpKTsK
KyAgICAgICAgICAgIE5vZGUqIGludmVydGVkUmVzdWx0OworICAgICAgICAgICAgaWYgKGlzQ29u
c3RhbnRGb3JDb21wYXJlU3RyaWN0RXEob3AxKSkKKyAgICAgICAgICAgICAgICBpbnZlcnRlZFJl
c3VsdCA9IGFkZFRvR3JhcGgoQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQsIG9wMiwgb3AxKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKGlzQ29uc3RhbnRGb3JDb21wYXJlU3RyaWN0RXEob3AyKSkKKyAg
ICAgICAgICAgICAgICBpbnZlcnRlZFJlc3VsdCA9IGFkZFRvR3JhcGgoQ29tcGFyZVN0cmljdEVx
Q29uc3RhbnQsIG9wMSwgb3AyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBp
bnZlcnRlZFJlc3VsdCA9IGFkZFRvR3JhcGgoQ29tcGFyZVN0cmljdEVxLCBvcDEsIG9wMik7Cisg
ICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFw
aChMb2dpY2FsTm90LCBpbnZlcnRlZFJlc3VsdCkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUo
b3BfbnN0cmljdGVxKTsKICAgICAgICAgfQogCkBAIC0yNzI2LDcgKzI3NDYsNyBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgIGNhc2Ugb3BfamVxX251
bGw6IHsKICAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgTm9kZSogY29uZGl0aW9u
ID0gYWRkVG9HcmFwaChDb21wYXJlRXEsIHZhbHVlLCBjb25zdGFudE51bGwoKSk7CisgICAgICAg
ICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKENvbXBhcmVFcUNvbnN0YW50LCB2YWx1
ZSwgY29uc3RhbnROdWxsKCkpOwogICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gsIE9wSW5m
byhtX2N1cnJlbnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0KSwgT3BJbmZvKG1fY3VycmVudEluZGV4
ICsgT1BDT0RFX0xFTkdUSChvcF9qZXFfbnVsbCkpLCBjb25kaXRpb24pOwogICAgICAgICAgICAg
TEFTVF9PUENPREUob3BfamVxX251bGwpOwogICAgICAgICB9CkBAIC0yNzM0LDcgKzI3NTQsNyBA
QCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgIGNhc2Ug
b3Bfam5lcV9udWxsOiB7CiAgICAgICAgICAgICB1bnNpZ25lZCByZWxhdGl2ZU9mZnNldCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9
IGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIE5vZGUq
IGNvbmRpdGlvbiA9IGFkZFRvR3JhcGgoQ29tcGFyZUVxLCB2YWx1ZSwgY29uc3RhbnROdWxsKCkp
OworICAgICAgICAgICAgTm9kZSogY29uZGl0aW9uID0gYWRkVG9HcmFwaChDb21wYXJlRXFDb25z
dGFudCwgdmFsdWUsIGNvbnN0YW50TnVsbCgpKTsKICAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJh
bmNoLCBPcEluZm8obV9jdXJyZW50SW5kZXggKyBPUENPREVfTEVOR1RIKG9wX2puZXFfbnVsbCkp
LCBPcEluZm8obV9jdXJyZW50SW5kZXggKyByZWxhdGl2ZU9mZnNldCksIGNvbmRpdGlvbik7CiAg
ICAgICAgICAgICBMQVNUX09QQ09ERShvcF9qbmVxX251bGwpOwogICAgICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAkocmV2aXNpb24gMTQyMzc5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMTEsNiArMTExMSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0U2Nv
cGVSZWdpc3RlcnM6CiAgICAgICAgIGNhc2UgR2V0U2NvcGU6CiAgICAgICAgIGNhc2UgVHlwZU9m
OgorICAgICAgICBjYXNlIENvbXBhcmVFcUNvbnN0YW50OgogICAgICAgICAgICAgc2V0UmVwbGFj
ZW1lbnQocHVyZUNTRShub2RlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTQy
Mzc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xODYsNyArMTg2LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogICAgIG1hY3JvKENvbXBhcmVHcmVhdGVyLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0
R2VuZXJhdGUgfCBOb2RlTWlnaHRDbG9iYmVyKSBcCiAgICAgbWFjcm8oQ29tcGFyZUdyZWF0ZXJF
cSwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU1pZ2h0Q2xvYmJl
cikgXAogICAgIG1hY3JvKENvbXBhcmVFcSwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdl
bmVyYXRlIHwgTm9kZU1pZ2h0Q2xvYmJlcikgXAorICAgIG1hY3JvKENvbXBhcmVFcUNvbnN0YW50
LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDb21w
YXJlU3RyaWN0RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgbWFjcm8oQ29tcGFyZVN0cmlj
dEVxQ29uc3RhbnQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgXAogICAgIC8qIENhbGxzLiAq
L1wKICAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUhhc1ZhckFyZ3MgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDE0MjM3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDgsNyAr
NTA4LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoKICAgICAgICAg
Y2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgICAgICBjYXNlIENvbXBhcmVFcToKKyAgICAgICAg
Y2FzZSBDb21wYXJlRXFDb25zdGFudDoKICAgICAgICAgY2FzZSBDb21wYXJlU3RyaWN0RXE6Cisg
ICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQ6CiAgICAgICAgIGNhc2UgSW5zdGFu
Y2VPZjoKICAgICAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHJldmlzaW9uIDE0MjM3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MTMsMjIgKzI1MTMs
MjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBp
ZiAoY29tcGFyZShub2RlLCBKSVRDb21waWxlcjo6R3JlYXRlclRoYW5PckVxdWFsLCBKSVRDb21w
aWxlcjo6RG91YmxlR3JlYXRlclRoYW5PckVxdWFsLCBvcGVyYXRpb25Db21wYXJlR3JlYXRlckVx
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgIGNh
c2UgQ29tcGFyZUVxQ29uc3RhbnQ6CisgICAgICAgIEFTU0VSVChpc051bGxDb25zdGFudChub2Rl
LT5jaGlsZDIoKS5ub2RlKCkpKTsKKyAgICAgICAgaWYgKG5vblNwZWN1bGF0aXZlQ29tcGFyZU51
bGwobm9kZSwgbm9kZS0+Y2hpbGQxKCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ29tcGFyZUVxOgotICAgICAgICBpZiAoaXNOdWxsQ29uc3RhbnQo
bm9kZS0+Y2hpbGQxKCkubm9kZSgpKSkgewotICAgICAgICAgICAgaWYgKG5vblNwZWN1bGF0aXZl
Q29tcGFyZU51bGwobm9kZSwgbm9kZS0+Y2hpbGQyKCkpKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc051bGxDb25z
dGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7Ci0gICAgICAgICAgICBpZiAobm9uU3BlY3Vs
YXRpdmVDb21wYXJlTnVsbChub2RlLCBub2RlLT5jaGlsZDEoKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICAgICAgaWYgKGNvbXBh
cmUobm9kZSwgSklUQ29tcGlsZXI6OkVxdWFsLCBKSVRDb21waWxlcjo6RG91YmxlRXF1YWwsIG9w
ZXJhdGlvbkNvbXBhcmVFcSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrOwog
CisgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFDb25zdGFudDoKKyAgICAgICAgaWYgKGNvbXBpbGVT
dHJpY3RFcUZvckNvbnN0YW50KG5vZGUsIG5vZGUtPmNoaWxkMSgpLCB2YWx1ZU9mSlNDb25zdGFu
dChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
YnJlYWs7CisKICAgICBjYXNlIENvbXBhcmVTdHJpY3RFcToKICAgICAgICAgaWYgKGNvbXBpbGVT
dHJpY3RFcShub2RlKSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxNDIzNzkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQ2MCwyMyArMzQ2MCw2IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVTdHJpY3RFcUZvckMKIAogYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVx
KE5vZGUqIG5vZGUpCiB7Ci0gICAgLy8gMSkgSWYgZWl0aGVyIG9wZXJhbmQgaXMgYSBjb25zdGFu
dCBhbmQgdGhhdCBjb25zdGFudCBpcyBub3QgYSBkb3VibGUsIGludGVnZXIsCi0gICAgLy8gICAg
b3Igc3RyaW5nLCB0aGVuIGRvIGEgSlNWYWx1ZSBjb21wYXJpc29uLgotICAgIAotICAgIGlmIChp
c0pTQ29uc3RhbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSkgewotICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKLSAgICAgICAg
aWYgKCF2YWx1ZS5pc051bWJlcigpICYmICF2YWx1ZS5pc1N0cmluZygpKQotICAgICAgICAgICAg
cmV0dXJuIGNvbXBpbGVTdHJpY3RFcUZvckNvbnN0YW50KG5vZGUsIG5vZGUtPmNoaWxkMigpLCB2
YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIGlmIChpc0pTQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCku
bm9kZSgpKSkgewotICAgICAgICBKU1ZhbHVlIHZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKTsKLSAgICAgICAgaWYgKCF2YWx1ZS5pc051bWJlcigpICYmICF2
YWx1ZS5pc1N0cmluZygpKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGVTdHJpY3RFcUZvckNv
bnN0YW50KG5vZGUsIG5vZGUtPmNoaWxkMSgpLCB2YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIC8v
IDIpIElmIHRoZSBvcGVyYW5kcyBhcmUgcHJlZGljdGVkIGludGVnZXIsIGRvIGFuIGludGVnZXIg
Y29tcGFyaXNvbi4KLSAgICAKICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlcihu
b2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAg
dW5zaWduZWQgYnJhbmNoSW5kZXhJbkJsb2NrID0gZGV0ZWN0UGVlcEhvbGVCcmFuY2goKTsKICAg
ICAgICAgaWYgKGJyYW5jaEluZGV4SW5CbG9jayAhPSBVSU5UX01BWCkgewpAQCAtMzQ5Miw4ICsz
NDc1LDYgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxKE5vZAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIC8vIDMpIElmIHRoZSBvcGVyYW5kcyBh
cmUgcHJlZGljdGVkIGRvdWJsZSwgZG8gYSBkb3VibGUgY29tcGFyaXNvbi4KLSAgICAKICAgICBp
ZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICB1bnNpZ25lZCBicmFuY2hJbmRleEluQmxv
Y2sgPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOwogICAgICAgICBpZiAoYnJhbmNoSW5kZXhJbkJs
b2NrICE9IFVJTlRfTUFYKSB7CkBAIC0zNTI2LDggKzM1MDcsNiBAQCBib29sIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlU3RyaWN0RXEoTm9kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAg
ICAgCi0gICAgLy8gNSkgRmFsbCBiYWNrIHRvIG5vbi1zcGVjdWxhdGl2ZSBzdHJpY3QgZXF1YWxp
dHkuCi0gICAgCiAgICAgcmV0dXJuIG5vblNwZWN1bGF0aXZlU3RyaWN0RXEobm9kZSk7CiB9CiAK
</data>
<flag name="review"
          id="207348"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>