<?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>110650</bug_id>
          
          <creation_ts>2013-02-22 15:18:53 -0800</creation_ts>
          <short_desc>DFG FixupPhase should have one common hook for knowing if a node is ever being speculated a certain way</short_desc>
          <delta_ts>2013-02-22 17:05:24 -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>
          
          <blocked>110433</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mario</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>840049</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-22 15:18:53 -0800</bug_when>
    <thetext>Will be useful for more rigorously choosing which locals to hoist checks over and unbox (https://bugs.webkit.org/show_bug.cgi?id=110433).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840051</commentid>
    <comment_count>1</comment_count>
      <attachid>189845</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-22 15:20:27 -0800</bug_when>
    <thetext>Created attachment 189845
WRONG PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840052</commentid>
    <comment_count>2</comment_count>
      <attachid>189846</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-22 15:21:18 -0800</bug_when>
    <thetext>Created attachment 189846
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840066</commentid>
    <comment_count>3</comment_count>
      <attachid>189846</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-22 15:32:59 -0800</bug_when>
    <thetext>Comment on attachment 189846
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840143</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-22 17:05:24 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/143817</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189845</attachid>
            <date>2013-02-22 15:20:27 -0800</date>
            <delta_ts>2013-02-22 15:21:18 -0800</delta_ts>
            <desc>WRONG PATCH</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9396</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDEzLTAyLTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpTcGVjdWxhdGl2ZUpJVDo6aXNLbm93blhZWiBtZXRob2RzIHNob3VsZCB1c2UgQ0ZBIHJh
dGhlciB0aGFuIG90aGVyIHRoaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEwMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIAorICAgICAgICBUaGVzZSBtZXRob2RzIHdlcmUgcHJldmlvdXNseSB1c2lu
ZyBHZW5lcmF0aW9uSW5mbyBhbmQgb3RoZXIgdGhpbmdzIHRvIHRyeSB0bworICAgICAgICBnYWlu
IGluZm9ybWF0aW9uIHRoYXQgdGhlIENGQSBjb3VsZCBnaXZlIGF3YXkgZm9yIGZyZWUsIGlmIHlv
dSBhc2tlZCBraW5kbHkKKyAgICAgICAgZW5vdWdoLgorICAgICAgICAKKyAgICAgICAgQWxzbyBm
aXhlZCBDYWxsTGlua1N0YXR1cydzIGR1bXAoKSBtZXRob2Qgc2luY2UgaXQgd2FzIG1ha2luZyBh
biBpbnZhbGlkCisgICAgICAgIGFzc2VydGlvbjogd2UgbW9zdCBjZXJ0YWlubHkgY2FuIGhhdmUg
YSBzdGF0dXMgd2hlcmUgdGhlIHN0cnVjdHVyZSBpcyBub24tbnVsbAorICAgICAgICBhbmQgdGhl
IGV4ZWN1dGFibGUgaXMgbnVsbCwgbGlrZSBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYW4gSW50ZXJu
YWxGdW5jdGlvbi4KKyAgICAgICAgCisgICAgICAgIEFsc28gcmVtb3ZlZCBjYWxscyB0byBpc0tu
b3duTm90WFlaIGZyb20gZmlsbFNwZWN1bGF0ZUFCQyBtZXRob2RzIGluIDMyXzY0LiBJCisgICAg
ICAgIGRvbid0IGtub3cgd2h5IHRoYXQgd2FzIHRoZXJlLiBCdXQgaXQgd2FzIGNhdXNpbmcgYXNz
ZXJ0cyBpZiB0aGUgdmFsdWUgd2FzCisgICAgICAgIGVtcHR5IC0gaS5lLiB3ZSBoYWQgYWxyZWFk
eSBleGl0ZWQgdW5jb25kaXRpb25hbGx5IGJ1dCB3ZSBkaWRuJ3Qga25vdyBpdC4gSQorICAgICAg
ICBjb3VsZCBoYXZlIGZpeGVkIHRoaXMgYnkgaW50cm9kdWNpbmcgYW5vdGhlciBmb3JtIG9mIGlz
S25vd25Ob3RYWVogd2hpY2ggd2FzCisgICAgICAgIHRvbGVyYW50IG9mIGVtcHR5IHZhbHVlcywg
YnV0IEkgZGlkbid0IGZlZWwgbGlrZSBmaXhpbmcgY29kZSB0aGF0IEkga25ldyB0byBiZQorICAg
ICAgICB1bm5lY2Vzc2FyeS4gKE1vcmUgZGVlcGx5LCBpc0tub3duTm90Q2VsbCwgZm9yIGV4YW1w
bGUsIHJlYWxseSBhc2tzOiAiZG8geW91CisgICAgICAgIGtub3cgdGhhdCB0aGlzIHZhbHVlIGNh
biBuZXZlciBiZSBhIGNlbGw/IiB3aGlsZSBzb21lIG9mIHRoZSBwcmV2aW91cyB1c2VzCisgICAg
ICAgIHdhbnRlZCB0byBhc2s6ICJkbyB5b3Uga25vdyB0aGF0IHRoaXMgaXMgYSB2YWx1ZSB0aGF0
IGlzIG5vdCBhIGNlbGw/Ii4gVGhlCisgICAgICAgIGZvcm1lciBpcyAidHJ1ZSIgaWYgdGhlIHZh
bHVlIGlzIGEgY29udHJhZGljdGlvbiBbaS5lLiBCT1RUT01dLCB3aGlsZSB0aGUKKyAgICAgICAg
bGF0dGVyIGlzICJmYWxzZSIgZm9yIGNvbnRyYWRpY3Rpb25zLCBzaW5jZSBjb250cmFkaWN0aW9u
cyBhcmUgbm90IHZhbHVlcy4pCisKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5j
cHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjpkdW1wKToKKyAgICAgICAgKiBieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Q2Fs
bExpbmtTdGF0dXMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChERkcpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjppc0tub3duSW50ZWdlcik6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmlzS25vd25DZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6aXNLbm93bk5vdEludGVnZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjppc0tub3duTm90TnVtYmVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6aXNLbm93bk5vdENlbGwpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNw
ZWN1bGF0ZUludEludGVybmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
ZmlsbFNwZWN1bGF0ZURvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmZpbGxTcGVjdWxhdGVDZWxsKToKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQWJzdHJhY3RW
YWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmR1bXAp
OgorCiAyMDEzLTAyLTE4ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIHNwZWN1bGF0aXZlIGJ1aWxkIGZpeCBmb3IgQXBwbGUgV2lu
IGJvdHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0
dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE0MzE3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw5ICsx
NDEsMTEgQEAgdm9pZCBDYWxsTGlua1N0YXR1czo6ZHVtcChQcmludFN0cmVhbSYgbwogICAgIGlm
IChtX2NhbGxUYXJnZXQpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgIktub3duIHRhcmdldDog
IiwgbV9jYWxsVGFyZ2V0KTsKICAgICAKLSAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGUgPT0gISFt
X3N0cnVjdHVyZSk7CiAgICAgaWYgKG1fZXhlY3V0YWJsZSkKLSAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiRXhlY3V0YWJsZS9DYWxsSGFzaC9TdHJ1Y3R1cmU6ICIsIFJhd1BvaW50ZXIobV9leGVj
dXRhYmxlKSwgIi8iLCBtX2V4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNhbGwpLCAiLyIsIFJh
d1BvaW50ZXIobV9zdHJ1Y3R1cmUpKTsKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiRXhlY3V0
YWJsZS9DYWxsSGFzaDogIiwgUmF3UG9pbnRlcihtX2V4ZWN1dGFibGUpLCAiLyIsIG1fZXhlY3V0
YWJsZS0+aGFzaEZvcihDb2RlRm9yQ2FsbCkpOworICAgIAorICAgIGlmIChtX3N0cnVjdHVyZSkK
KyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiU3RydWN0dXJlOiAiLCBSYXdQb2ludGVyKG1fc3Ry
dWN0dXJlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJldmlzaW9uIDE0MzE3NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2NvdWxkVGFr
ZVNsb3dQYXRoKGZhbHNlKQogICAgICAgICAsIG1faXNQcm92ZWQoZmFsc2UpCiAgICAgeworICAg
ICAgICBBU1NFUlQoISFleGVjdXRhYmxlID09ICEhc3RydWN0dXJlKTsKICAgICB9CiAgICAgCiAg
ICAgQ2FsbExpbmtTdGF0dXMmIHNldElzUHJvdmVkKGJvb2wgaXNQcm92ZWQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAJKHJldmlzaW9uIDE0MzE3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTYsMTIgKzEwMTYsNiBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnRJCiAjaWYgREZHX0VOQUJM
RShERUJVR19WRVJCT1NFKQogICAgIGRhdGFMb2dGKCJTcGVjSW50QCVkICAgIiwgbm9kZS0+aW5k
ZXgoKSk7CiAjZW5kaWYKLSAgICBpZiAoaXNLbm93bk5vdEludGVnZXIobm9kZSkpIHsKLSAgICAg
ICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdz
KCksIDAsIGRpcmVjdGlvbik7Ci0gICAgICAgIHJldHVybkZvcm1hdCA9IERhdGFGb3JtYXRJbnRl
Z2VyOwotICAgICAgICByZXR1cm4gYWxsb2NhdGUoKTsKLSAgICB9Ci0KICAgICBTcGVjdWxhdGVk
VHlwZSB0eXBlID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUpLm1fdHlwZTsKICAgICBWaXJ0dWFsUmVn
aXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7CiAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1YWxSZWdpc3Rlcl07CkBA
IC0xMTEzLDExICsxMTA3LDYgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRl
RG91YgogI2lmIERGR19FTkFCTEUoREVCVUdfVkVSQk9TRSkKICAgICBkYXRhTG9nRigiU3BlY0Rv
dWJsZUAlZCAgICIsIG5vZGUtPmluZGV4KCkpOwogI2VuZGlmCi0gICAgaWYgKGlzS25vd25Ob3RO
dW1iZXIobm9kZSkpIHsKLSAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5j
b3VudGFibGUsIEpTVmFsdWVSZWdzKCksIDAsIGRpcmVjdGlvbik7Ci0gICAgICAgIHJldHVybiBm
cHJBbGxvY2F0ZSgpOwotICAgIH0KLQogICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBtX3N0YXRl
LmZvck5vZGUobm9kZSkubV90eXBlOwogICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0
ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9
IG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXTsKQEAgLTEyNDcsMTEgKzEyMzYsNiBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsCiAjaWYgREZHX0VOQUJM
RShERUJVR19WRVJCT1NFKQogICAgIGRhdGFMb2dGKCJTcGVjQ2VsbEAlZCAgICIsIG5vZGUtPmlu
ZGV4KCkpOwogI2VuZGlmCi0gICAgaWYgKGlzS25vd25Ob3RDZWxsKG5vZGUpKSB7Ci0gICAgICAg
IHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygp
LCAwLCBkaXJlY3Rpb24pOwotICAgICAgICByZXR1cm4gYWxsb2NhdGUoKTsKLSAgICB9Ci0KICAg
ICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUpLm1fdHlwZTsKICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVy
KCk7CiAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1YWxS
ZWdpc3Rlcl07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTQzMTc1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzMSw1MSArOTMx
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6dXNlQ2hpbGRyZW4oTm9kZSogbgogICAgIH0KIH0K
IAotYm9vbCBTcGVjdWxhdGl2ZUpJVDo6aXNLbm93bkludGVnZXIoTm9kZSogbm9kZSkKLXsKLSAg
ICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IGlmIChub2RlLT5oYXNJbnQzMlJlc3VsdCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAK
LSAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IG1fZ2VuZXJhdGlvbkluZm9bbm9kZS0+dmlydHVh
bFJlZ2lzdGVyKCldOwotCi0gICAgcmV0dXJuIGluZm8uaXNKU0ludGVnZXIoKTsKLX0KLQotYm9v
bCBTcGVjdWxhdGl2ZUpJVDo6aXNLbm93bkNlbGwoTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4g
bV9nZW5lcmF0aW9uSW5mb1tub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKV0uaXNKU0NlbGwoKTsKLX0K
LQotYm9vbCBTcGVjdWxhdGl2ZUpJVDo6aXNLbm93bk5vdENlbGwoTm9kZSogbm9kZSkKLXsKLSAg
ICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVy
KCk7Ci0gICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1YWxS
ZWdpc3Rlcl07Ci0gICAgaWYgKG5vZGUtPmhhc0NvbnN0YW50KCkgJiYgIXZhbHVlT2ZKU0NvbnN0
YW50KG5vZGUpLmlzQ2VsbCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gIShp
bmZvLmlzSlNDZWxsKCkgfHwgaW5mby5pc1Vua25vd25KUygpKTsKLX0KLQotYm9vbCBTcGVjdWxh
dGl2ZUpJVDo6aXNLbm93bk5vdEludGVnZXIoTm9kZSogbm9kZSkKLXsKLSAgICBWaXJ0dWFsUmVn
aXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Ci0gICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1YWxSZWdpc3Rlcl07Ci0g
ICAgCi0gICAgcmV0dXJuIGluZm8uaXNKU0RvdWJsZSgpIHx8IGluZm8uaXNKU0NlbGwoKSB8fCBp
bmZvLmlzSlNCb29sZWFuKCkKLSAgICAgICAgfHwgKG5vZGUtPmhhc0NvbnN0YW50KCkgJiYgIXZh
bHVlT2ZKU0NvbnN0YW50KG5vZGUpLmlzSW50MzIoKSk7Ci19Ci0KLWJvb2wgU3BlY3VsYXRpdmVK
SVQ6OmlzS25vd25Ob3ROdW1iZXIoTm9kZSogbm9kZSkKLXsKLSAgICBWaXJ0dWFsUmVnaXN0ZXIg
dmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Ci0gICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1YWxSZWdpc3Rlcl07Ci0gICAgCi0g
ICAgcmV0dXJuICghaW5mby5pc0pTRG91YmxlKCkgJiYgIWluZm8uaXNKU0ludGVnZXIoKSAmJiAh
aW5mby5pc1Vua25vd25KUygpKQotICAgICAgICB8fCAobm9kZS0+aGFzQ29uc3RhbnQoKSAmJiAh
aXNOdW1iZXJDb25zdGFudChub2RlKSk7Ci19Ci0KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OndyaXRl
QmFycmllcihNYWNyb0Fzc2VtYmxlciYgaml0LCBHUFJSZWcgb3duZXIsIEdQUlJlZyBzY3JhdGNo
MSwgR1BSUmVnIHNjcmF0Y2gyLCBXcml0ZUJhcnJpZXJVc2VLaW5kIHVzZUtpbmQpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGppdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxNDMxNzUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTUyNCwxMyAr
NTI0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBib29sIGlzS25v
d25JbnRlZ2VyKE5vZGUqKTsKLSAgICBib29sIGlzS25vd25DZWxsKE5vZGUqKTsKKyAgICBib29s
IGlzS25vd25JbnRlZ2VyKE5vZGUqIG5vZGUpIHsgcmV0dXJuICEobV9zdGF0ZS5mb3JOb2RlKG5v
ZGUpLm1fdHlwZSAmIH5TcGVjSW50MzIpOyB9CisgICAgYm9vbCBpc0tub3duQ2VsbChOb2RlKiBu
b2RlKSB7IHJldHVybiAhKG1fc3RhdGUuZm9yTm9kZShub2RlKS5tX3R5cGUgJiB+U3BlY0NlbGwp
OyB9CiAgICAgCi0gICAgYm9vbCBpc0tub3duTm90SW50ZWdlcihOb2RlKik7Ci0gICAgYm9vbCBp
c0tub3duTm90TnVtYmVyKE5vZGUqKTsKLQotICAgIGJvb2wgaXNLbm93bk5vdENlbGwoTm9kZSop
OworICAgIGJvb2wgaXNLbm93bk5vdEludGVnZXIoTm9kZSogbm9kZSkgeyByZXR1cm4gIShtX3N0
YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgU3BlY0ludDMyKTsgfQorICAgIGJvb2wgaXNLbm93
bk5vdE51bWJlcihOb2RlKiBub2RlKSB7IHJldHVybiAhKG1fc3RhdGUuZm9yTm9kZShub2RlKS5t
X3R5cGUgJiBTcGVjTnVtYmVyKTsgfQorICAgIGJvb2wgaXNLbm93bk5vdENlbGwoTm9kZSogbm9k
ZSkgeyByZXR1cm4gIShtX3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgU3BlY0NlbGwpOyB9
CiAgICAgCiAgICAgLy8gQ2hlY2tzL2FjY2Vzc29ycyBmb3IgY29uc3RhbnQgdmFsdWVzLgogICAg
IGJvb2wgaXNDb25zdGFudChOb2RlKiBub2RlKSB7IHJldHVybiBtX2ppdC5ncmFwaCgpLmlzQ29u
c3RhbnQobm9kZSk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0
dXJlQWJzdHJhY3RWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oCShyZXZpc2lvbiAxNDMxNzUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzA3LDcgKzMwNyw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIG91
dC5wcmludCgiWyIpOwogICAgICAgICBpZiAobV9zdHJ1Y3R1cmUpCi0gICAgICAgICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihtX3N0cnVjdHVyZSkpOworICAgICAgICAgICAgb3V0LnByaW50KFJh
d1BvaW50ZXIobV9zdHJ1Y3R1cmUpLCAiKCIsIG1fc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+Y2xh
c3NOYW1lLCAiKSIpOwogICAgICAgICBvdXQucHJpbnQoIl0iKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189846</attachid>
            <date>2013-02-22 15:21:18 -0800</date>
            <delta_ts>2013-02-22 15:32:59 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>27407</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzODA2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEzLTAyLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIEZpeHVwUGhhc2Ugc2hvdWxkIGhhdmUgb25lIGNvbW1vbiBob29rIGZvciBrbm93aW5nIGlm
IGEgbm9kZSBpcyBldmVyIGJlaW5nIHNwZWN1bGF0ZWQgYSBjZXJ0YWluIHdheQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNjUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIGFs
bW9zdCBhbGwgY2FsbHMgdG8gZWRnZS5zZXRVc2VLaW5kKGtpbmQpIHRvIGJlCisgICAgICAgIHNl
dFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxraW5kPihlZGdlKS4gVGhpcyB3aWxsIGFsbG93
IHVzIHRvIHVzZSB0aGUgbGF0dGVyCisgICAgICAgIGFzIGEgaG9vayBmb3IgZGVjaWRpbmcgd2hp
Y2ggbG9jYWxzIHRvIHVuYm94ICh3ZWJraXQub3JnL2IvMTEwNDMzKS4KKworICAgICAgICAqIGRm
Zy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cE5vZGUpOgorICAgICAgICAoRml4dXBQaGFzZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQ
aGFzZTo6c2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlKToKKyAgICAgICAgKEpTQzo6REZH
OjpGaXh1cFBoYXNlOjpmaXhJbnRFZGdlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNl
OjpmaXhEb3VibGVFZGdlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0
VG9NYWtlSW50ZWdlckFkZCk6CisKIDIwMTMtMDItMjIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNDM2NTQpOiBzb21lIGZhc3QvanMgdGVz
dCBjcmFzaGVzIG9uIDMyIGJpdCBidWlsZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxNDM4MDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NywxNyAr
ODcsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgaWYgKHZhcmlhYmxlLT5zaG91bGRVc2VEb3VibGVGb3JtYXQoKSkgewotICAg
ICAgICAgICAgICAgIGZpeERvdWJsZUVkZ2Uobm9kZS0+Y2hpbGQxKCksIE51bWJlclVzZSwgRm9y
d2FyZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlPE51bWJlclVz
ZT4obm9kZS0+Y2hpbGQxKCksIEZvcndhcmRTcGVjdWxhdGlvbik7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3RlZFR5cGUgPSB2YXJpYWJsZS0+YXJndW1lbnRBd2FyZVByZWRpY3Rpb24o
KTsKICAgICAgICAgICAgIGlmIChpc0ludDMyU3BlY3VsYXRpb24ocHJlZGljdGVkVHlwZSkpCi0g
ICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChJbnQzMlVzZSk7CisgICAg
ICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChpc0NlbGxTcGVjdWxhdGlvbihwcmVk
aWN0ZWRUeXBlKSkKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKENl
bGxVc2UpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxD
ZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW5T
cGVjdWxhdGlvbihwcmVkaWN0ZWRUeXBlKSkKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEo
KS5zZXRVc2VLaW5kKEJvb2xlYW5Vc2UpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRV
bmJveElmUHJvZml0YWJsZTxCb29sZWFuVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgVUludDMyVG9OdW1i
ZXI6IHsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoS25vd25JbnQzMlVz
ZSk7CisgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8S25vd25JbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgICAgIApAQCAtMTI0LDIxICsxMjQsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIFZhbHVlVG9JbnQzMjogewogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MSgpLT5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5k
QW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKSkgewotICAgICAgICAg
ICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoTnVtYmVyVXNlKTsKKyAgICAgICAgICAg
ICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8TnVtYmVyVXNlPihub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQm9vbGVh
bigpKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChCb29sZWFu
VXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8Qm9v
bGVhblVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VL
aW5kKE5vdENlbGxVc2UpOworICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRh
YmxlPE5vdENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgICAgICAKQEAgLTE1MSw4ICsxNTEsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKGF0dGVtcHRUb01ha2VJbnRlZ2VyQWRkKG5vZGUpKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZU51bWJlckV4cGVj
dGluZ0RlZmluZWQobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkp
KSB7Ci0gICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAg
ICAgZml4RG91YmxlRWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
ICAgICBmaXhEb3VibGVFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNjIs
MjggKzE2MiwyOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoU3ViOiB7CiAgICAgICAg
ICAgICBpZiAoYXR0ZW1wdFRvTWFrZUludGVnZXJBZGQobm9kZSkpCiAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIGZpeERvdWJsZUVkZ2Uobm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgZml4RG91
YmxlRWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeERvdWJs
ZUVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6IHsKICAgICAg
ICAgICAgIGlmIChtX2dyYXBoLm5lZ2F0ZVNob3VsZFNwZWN1bGF0ZUludGVnZXIobm9kZSkpIHsK
LSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKKyAg
ICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGZpeERvdWJsZUVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4
RG91YmxlRWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcml0aE11bDogewogICAg
ICAgICAgICAgaWYgKG1fZ3JhcGgubXVsU2hvdWxkU3BlY3VsYXRlSW50ZWdlcihub2RlKSkgewot
ICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOwotICAg
ICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAg
ICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJs
ZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgICAgICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGZp
eERvdWJsZUVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhE
b3VibGVFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIApAQCAtMTkxLDggKzE5MSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBp
ZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlckZvckFyaXRobWV0aWMobm9kZS0+Y2hpbGQx
KCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpCiAgICAgICAgICAgICAgICAgJiYgbm9k
ZS0+Y2FuU3BlY3VsYXRlSW50ZWdlcigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzWDg2KCkg
fHwgaXNBUk12N3MoKSkgewotICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRV
c2VLaW5kKEludDMyVXNlKTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCkuc2V0
VXNlS2luZChJbnQzMlVzZSk7CisgICAgICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJv
eElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAg
ICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGluamVjdEludDMyVG9Eb3VibGVOb2RlKG5vZGUtPmNoaWxkMSgpKTsKQEAg
LTIwNyw4ICsyMDcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LmluaXRpYWxpemUoRWRnZShuZXdEaXZpc2lvbiwgS25vd25OdW1iZXJVc2UpLCBFZGdlKCksIEVk
Z2UoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGZpeERvdWJsZUVk
Z2Uobm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgZml4RG91YmxlRWRnZTxOdW1iZXJVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeERvdWJsZUVkZ2U8TnVtYmVyVXNlPihu
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAg
ICAgCkBAIC0yMTcsNDcgKzIxNyw0NyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoTW9k
OiB7CiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlckZvckFyaXRo
bWV0aWMobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpCiAgICAg
ICAgICAgICAgICAgJiYgbm9kZS0+Y2FuU3BlY3VsYXRlSW50ZWdlcigpKSB7Ci0gICAgICAgICAg
ICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChJbnQzMlVzZSk7Ci0gICAgICAgICAgICAg
ICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChJbnQzMlVzZSk7CisgICAgICAgICAgICAgICAg
c2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7
CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNl
Pihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAg
IGZpeERvdWJsZUVkZ2Uobm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgZml4RG91YmxlRWRn
ZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeERvdWJsZUVkZ2U8
TnVtYmVyVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJpdGhBYnM6IHsKICAgICAgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSW50ZWdlckZvckFyaXRobWV0aWMoKQog
ICAgICAgICAgICAgICAgICYmIG5vZGUtPmNhblNwZWN1bGF0ZUludGVnZXIoKSkgewotICAgICAg
ICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAgICAg
ICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhEb3VibGVF
ZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFyaXRoU3FydDogewotICAgICAgICAg
ICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhEb3VibGVF
ZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIExvZ2ljYWxOb3Q6IHsKICAgICAgICAg
ICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQm9vbGVhbigpKQotICAgICAg
ICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoQm9vbGVhblVzZSk7CisgICAgICAg
ICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEJvb2xlYW5Vc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRT
cGVjdWxhdGVPYmplY3RPck90aGVyKCkpCi0gICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCku
c2V0VXNlS2luZChPYmplY3RPck90aGVyVXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5k
QW5kVW5ib3hJZlByb2ZpdGFibGU8T2JqZWN0T3JPdGhlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludGVn
ZXIoKSkKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNl
KTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJV
c2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgp
LT5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdl
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlPE51bWJlclVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIFR5cGVPZjogewogICAgICAgICAgICAgaWYgKG5vZGUtPmNo
aWxkMSgpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKLSAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZDEoKS5zZXRVc2VLaW5kKFN0cmluZ1VzZSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2lu
ZEFuZFVuYm94SWZQcm9maXRhYmxlPFN0cmluZ1VzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUNlbGwoKSkKLSAg
ICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKENlbGxVc2UpOworICAgICAg
ICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxDZWxsVXNlPihub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBA
IC0yNzAsMTMgKzI3MCwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gQ29tcGFyZUVxQ29uc3RhbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlcihub2RlLT5jaGlsZDEoKS5ub2RlKCks
IG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEo
KS5zZXRVc2VLaW5kKEludDMyVXNlKTsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS5z
ZXRVc2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJ
ZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBz
ZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVOdW1iZXIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5j
aGlsZDIoKS5ub2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDIoKSk7
CisgICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKG5vZGUtPm9wKCkgIT0gQ29tcGFyZUVxKQpAQCAtMjg0LDE4ICsyODQsMTggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5n
KCkgJiYgbm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVj
dWxhdGVPYmplY3QoKSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkp
IHsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKE9iamVjdFVzZSk7
Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChPYmplY3RVc2UpOwor
ICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxPYmplY3RVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlBy
b2ZpdGFibGU8T2JqZWN0VXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZU9iamVjdCgpICYmIG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVPYmpl
Y3RPck90aGVyKCkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5k
KE9iamVjdFVzZSk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChP
YmplY3RPck90aGVyVXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlBy
b2ZpdGFibGU8T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgc2V0
VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPE9iamVjdE9yT3RoZXJVc2U+KG5vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0T3JPdGhlcigpICYmIG5v
ZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVPYmplY3QoKSkgewotICAgICAgICAgICAgICAg
IG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoT2JqZWN0T3JPdGhlclVzZSk7Ci0gICAgICAgICAg
ICAgICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChPYmplY3RVc2UpOworICAgICAgICAgICAg
ICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxPYmplY3RPck90aGVyVXNlPihub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRh
YmxlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDYsMjAgKzMwNiwyMCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ29tcGFyZVN0cmljdEVxQ29u
c3RhbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hv
dWxkU3BlY3VsYXRlSW50ZWdlcihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKElu
dDMyVXNlKTsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS5zZXRVc2VLaW5kKEludDMy
VXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50
MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5i
b3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVj
dWxhdGVOdW1iZXIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkp
KSB7Ci0gICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICAgICAgZml4RG91YmxlRWRnZShub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAg
ICAgZml4RG91YmxlRWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
ICAgICBmaXhEb3VibGVFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MSgpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3Bl
Y3VsYXRlU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpICYmIG5vZGUtPmNoaWxkMigp
LT5zaG91bGRTcGVjdWxhdGVPYmplY3QoKSkgewotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxk
MSgpLnNldFVzZUtpbmQoT2JqZWN0VXNlKTsKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIo
KS5zZXRVc2VLaW5kKE9iamVjdFVzZSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVu
Ym94SWZQcm9maXRhYmxlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
ICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxPYmplY3RVc2U+KG5vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMzMwLDggKzMzMCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBDdXJy
ZW50bHkgd2UgaGF2ZSBubyBnb29kIHdheSBvZiByZWZpbmluZyB0aGVzZS4KICAgICAgICAgICAg
IEFTU0VSVChub2RlLT5hcnJheU1vZGUoKSA9PSBBcnJheU1vZGUoQXJyYXk6OlN0cmluZykpOwog
ICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hp
bGQyKCksIG5vZGUtPmNoaWxkMygpKTsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVz
ZUtpbmQoS25vd25DZWxsVXNlKTsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLnNldFVzZUtp
bmQoSW50MzJVc2UpOworICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxl
PEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgc2V0VXNlS2luZEFu
ZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCkBAIC0zNjEsMTQgKzM2MSwxNCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzoKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVz
ZUtpbmQoQ2VsbFVzZSk7IC8vIFNwZWN1bGF0aW5nIGNlbGwgZHVlIHRvIHJlZ2lzdGVyIHByZXNz
dXJlIG9uIDMyLWJpdC4KKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2Zp
dGFibGU8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOyAvLyBTcGVjdWxhdGluZyBjZWxsIGR1ZSB0
byByZWdpc3RlciBwcmVzc3VyZSBvbiAzMi1iaXQuCiAjZW5kaWYKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGQxKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2UpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNo
aWxkMigpLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRB
bmRVbmJveElmUHJvZml0YWJsZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIApAQCAtNDAxLDE4ICs0MDEsMTggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAv
LyBEdWUgdG8gcmVnaXN0ZXIgcHJlc3N1cmUgb24gMzItYml0LCB3ZSBzcGVjdWxhdGUgY2VsbCBh
bmQKICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgdGhlIGJhc2UtaXMtbm90LWNlbGwgY2FzZSBl
bnRpcmVseSBieSBsZXR0aW5nIHRoZQogICAgICAgICAgICAgICAgIC8vIGJhc2VsaW5lIEpJVCBo
YW5kbGUgaXQuCi0gICAgICAgICAgICAgICAgY2hpbGQxLnNldFVzZUtpbmQoQ2VsbFVzZSk7Cisg
ICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPENlbGxVc2U+KGNo
aWxkMSk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QXJyYXk6OkludDMyOgotICAgICAgICAgICAgICAgIGNoaWxkMS5zZXRVc2VLaW5kKEtub3duQ2Vs
bFVzZSk7Ci0gICAgICAgICAgICAgICAgY2hpbGQyLnNldFVzZUtpbmQoSW50MzJVc2UpOwotICAg
ICAgICAgICAgICAgIGNoaWxkMy5zZXRVc2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgICAg
ICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8S25vd25DZWxsVXNlPihjaGlsZDEpOwor
ICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4o
Y2hpbGQyKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8
SW50MzJVc2U+KGNoaWxkMyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEFycmF5OjpEb3VibGU6Ci0gICAgICAgICAgICAgICAgY2hpbGQxLnNldFVzZUtpbmQoS25v
d25DZWxsVXNlKTsKLSAgICAgICAgICAgICAgICBjaGlsZDIuc2V0VXNlS2luZChJbnQzMlVzZSk7
Ci0gICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZShjaGlsZDMsIFJlYWxOdW1iZXJVc2UpOwor
ICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxLbm93bkNlbGxV
c2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRh
YmxlPEludDMyVXNlPihjaGlsZDIpOworICAgICAgICAgICAgICAgIGZpeERvdWJsZUVkZ2U8UmVh
bE51bWJlclVzZT4oY2hpbGQzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgQXJyYXk6OkludDhBcnJheToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkludDE2QXJy
YXk6CkBAIC00MjEsMjIgKzQyMSwyMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2FzZSBBcnJh
eTo6VWludDhDbGFtcGVkQXJyYXk6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJh
eToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5OgotICAgICAgICAgICAgICAg
IGNoaWxkMS5zZXRVc2VLaW5kKEtub3duQ2VsbFVzZSk7Ci0gICAgICAgICAgICAgICAgY2hpbGQy
LnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJv
eElmUHJvZml0YWJsZTxLbm93bkNlbGxVc2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgc2V0
VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihjaGlsZDIpOwogICAgICAgICAg
ICAgICAgIGlmIChjaGlsZDMtPnNob3VsZFNwZWN1bGF0ZUludGVnZXIoKSkKLSAgICAgICAgICAg
ICAgICAgICAgY2hpbGQzLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAgICAgICAgICAgICAg
ICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KGNoaWxkMyk7CiAgICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlKGNoaWxk
Myk7CisgICAgICAgICAgICAgICAgICAgIGZpeERvdWJsZUVkZ2U8TnVtYmVyVXNlPihjaGlsZDMp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQz
MkFycmF5OgogICAgICAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OgotICAgICAgICAg
ICAgICAgIGNoaWxkMS5zZXRVc2VLaW5kKEtub3duQ2VsbFVzZSk7Ci0gICAgICAgICAgICAgICAg
Y2hpbGQyLnNldFVzZUtpbmQoSW50MzJVc2UpOwotICAgICAgICAgICAgICAgIGZpeERvdWJsZUVk
Z2UoY2hpbGQzKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFi
bGU8S25vd25DZWxsVXNlPihjaGlsZDEpOworICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRV
bmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4oY2hpbGQyKTsKKyAgICAgICAgICAgICAgICBmaXhE
b3VibGVFZGdlPE51bWJlclVzZT4oY2hpbGQzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgY2hpbGQxLnNldFVzZUtpbmQoS25v
d25DZWxsVXNlKTsKLSAgICAgICAgICAgICAgICBjaGlsZDIuc2V0VXNlS2luZChJbnQzMlVzZSk7
CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEtub3duQ2Vs
bFVzZT4oY2hpbGQxKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2Zp
dGFibGU8SW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ1OCwxNCArNDU4LDE0IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIFNwZWNJbnQzMiwKICAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKSkpOwogICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJh
dGlvbihub2RlLT5jaGlsZDEoKSwgRWRnZSgpLCBub2RlLT5jaGlsZDMoKSk7Ci0gICAgICAgICAg
ICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEtub3duQ2VsbFVzZSk7CisgICAgICAgICAgICBz
ZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCku
dHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgICAgICAg
ICBub2RlLT5jaGlsZDIoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBz
ZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToK
LSAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
ICAgICAgICBmaXhEb3VibGVFZGdlPFJlYWxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CkBAIC00NzUsMjYgKzQ3NSwyNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAg
ICAgICAgIGNhc2UgQXJyYXlQb3A6IHsKICAgICAgICAgICAgIGJsZXNzQXJyYXlPcGVyYXRpb24o
bm9kZS0+Y2hpbGQxKCksIEVkZ2UoKSwgbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgbm9k
ZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2UpOworICAgICAgICAgICAgc2V0VXNl
S2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNl
IFJlZ0V4cEV4ZWM6CiAgICAgICAgIGNhc2UgUmVnRXhwVGVzdDogewotICAgICAgICAgICAgbm9k
ZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxk
MigpLnNldFVzZUtpbmQoQ2VsbFVzZSk7CisgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJ
ZlByb2ZpdGFibGU8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgc2V0VXNl
S2luZEFuZFVuYm94SWZQcm9maXRhYmxlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBCcmFu
Y2g6IHsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQm9v
bGVhbigpKQotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoQm9vbGVh
blVzZSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEJv
b2xlYW5Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmNo
aWxkMSgpLT5zaG91bGRTcGVjdWxhdGVPYmplY3RPck90aGVyKCkpCi0gICAgICAgICAgICAgICAg
bm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChPYmplY3RPck90aGVyVXNlKTsKKyAgICAgICAgICAg
ICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8T2JqZWN0T3JPdGhlclVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZUludGVnZXIoKSkKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRV
c2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlBy
b2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKSkKLSAgICAgICAgICAgICAg
ICBmaXhEb3VibGVFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBmaXhEb3Vi
bGVFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogCiAgICAgICAgICAgICBOb2RlKiBs
b2dpY2FsTm90ID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICAgICAgaWYgKGxvZ2lj
YWxOb3QtPm9wKCkgPT0gTG9naWNhbE5vdApAQCAtNTM5LDcgKzUzOSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBUb1ByaW1pdGl2ZTogewogICAgICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChJbnQzMlVzZSk7CisgICAgICAgICAgICAgICAg
c2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN0cmluZyBzcGVjdWxhdGlvbiBoZXJlLgogICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE3
NQogICAgICAgICAgICAgYnJlYWs7CkBAIC01NjcsMTEgKzU2NywxMSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBTExfSU5UMzJfSU5ERVhJTkdf
VFlQRVM6CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvcGVyYW5kSW5kZXggPSAwOyBv
cGVyYW5kSW5kZXggPCBub2RlLT5udW1DaGlsZHJlbigpOyArK29wZXJhbmRJbmRleCkKLSAgICAg
ICAgICAgICAgICAgICAgbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW25vZGUtPmZpcnN0Q2hpbGQo
KSArIG9wZXJhbmRJbmRleF0uc2V0VXNlS2luZChJbnQzMlVzZSk7CisgICAgICAgICAgICAgICAg
ICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obV9ncmFwaC5tX3Zh
ckFyZ0NoaWxkcmVuW25vZGUtPmZpcnN0Q2hpbGQoKSArIG9wZXJhbmRJbmRleF0pOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBTExfRE9VQkxFX0lOREVYSU5HX1RZ
UEVTOgogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb3BlcmFuZEluZGV4ID0gMDsgb3Bl
cmFuZEluZGV4IDwgbm9kZS0+bnVtQ2hpbGRyZW4oKTsgKytvcGVyYW5kSW5kZXgpCi0gICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGgubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkg
KyBvcGVyYW5kSW5kZXhdLnNldFVzZUtpbmQoUmVhbE51bWJlclVzZSk7CisgICAgICAgICAgICAg
ICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxSZWFsTnVtYmVyVXNlPihtX2dy
YXBoLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgb3BlcmFuZEluZGV4XSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFMTF9DT05USUdVT1VT
X0lOREVYSU5HX1RZUEVTOgogICAgICAgICAgICAgY2FzZSBBTExfQVJSQVlfU1RPUkFHRV9JTkRF
WElOR19UWVBFUzoKQEAgLTU4NCw3ICs1ODQsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOiB7Ci0gICAgICAgICAgICBu
b2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKKyAgICAgICAgICAgIHNldFVzZUtp
bmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtNTkyLDIwICs1OTIsMjAg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgUGhhbnRvbSh0eXBlIGNoZWNr
KSBhbmQgSWRlbnRpdHkgaW5zdGVhZC4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzOTUKICAgICAgICAgICAgIGlmIChpc090aGVyU3Bl
Y3VsYXRpb24obm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSkpCi0gICAgICAgICAgICAgICAg
bm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChPdGhlclVzZSk7CisgICAgICAgICAgICAgICAgc2V0
VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPE90aGVyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBlbHNlIGlmIChpc09iamVjdFNwZWN1bGF0aW9uKG5vZGUtPmNoaWxkMSgpLT5w
cmVkaWN0aW9uKCkpKQotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQo
T2JqZWN0VXNlKTsKKyAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFi
bGU8T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQ3JlYXRlVGhpczogewotICAgICAgICAg
ICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKKyAgICAgICAgICAgIHNldFVz
ZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgR2V0
TXlBcmd1bWVudEJ5VmFsOgogICAgICAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6IHsK
LSAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAgICAg
ICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC02
MjAsMTQgKzYyMCwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0
eVN0b3JhZ2U6CiAgICAgICAgIGNhc2UgR2V0U2NvcGU6CiAgICAgICAgIGNhc2UgR2V0QnV0dGVy
Zmx5OiB7Ci0gICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEtub3duQ2VsbFVz
ZSk7CisgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8S25vd25DZWxs
VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICAgICAgCiAgICAgICAgIGNhc2UgR2V0QnlJZDogewogICAgICAgICAgICAgaWYgKCFub2Rl
LT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQ2VsbCgpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKKyAgICAg
ICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxDZWxsVXNlPihub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBpZiAoIWlzSW50MzJTcGVjdWxhdGlvbihub2RlLT5wcmVkaWN0
aW9uKCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKGNvZGVCbG9j
aygpLT5pZGVudGlmaWVyKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSkgIT0gZ2xvYmFsRGF0YSgp
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCkKQEAgLTY1NCw3ICs2NTQsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgbm9kZS0+c2V0T3AoR2V0QXJyYXlMZW5ndGgpOwogICAgICAgICAgICAgQVNTRVJU
KG5vZGUtPmZsYWdzKCkgJiBOb2RlTXVzdEdlbmVyYXRlKTsKICAgICAgICAgICAgIG5vZGUtPmNs
ZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKLSAgICAgICAg
ICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoS25vd25DZWxsVXNlKTsKKyAgICAgICAgICAg
IHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIG1fZ3JhcGguZGVyZWYobm9kZSk7CiAgICAgICAgICAgICBub2Rl
LT5zZXRBcnJheU1vZGUoYXJyYXlNb2RlKTsKICAgICAgICAgICAgIApAQCAtNjY4LDcgKzY2OCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6IHsK
ICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQ2VsbCgpKQot
ICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoQ2VsbFVzZSk7CisgICAg
ICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPENlbGxVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAK
QEAgLTY4MSwxNyArNjgxLDE3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAg
ICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6
IHsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoQ2VsbFVzZSk7CisgICAg
ICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8Q2VsbFVzZT4obm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIENoZWNrQXJyYXk6IHsKICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+YXJyYXlN
b2RlKCkudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpTdHJpbmc6Ci0gICAgICAg
ICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChTdHJpbmdVc2UpOworICAgICAgICAg
ICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxTdHJpbmdVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKKyAgICAg
ICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8Q2VsbFVzZT4obm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7CkBAIC02OTksMjIgKzY5OSwyMiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
CiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZTogewotICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKKyAg
ICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxDZWxsVXNlPihub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChJbnQzMlVzZSk7CisgICAgICAgICAgICAgICAg
c2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgR2V0QnlPZmZzZXQ6IHsKICAgICAgICAgICAgIGlmICghbm9kZS0+Y2hpbGQxKCktPmhhc1N0
b3JhZ2VSZXN1bHQoKSkKLSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5k
KEtub3duQ2VsbFVzZSk7CisgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9m
aXRhYmxlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0OiB7CiAg
ICAgICAgICAgICBpZiAoIW5vZGUtPmNoaWxkMSgpLT5oYXNTdG9yYWdlUmVzdWx0KCkpCi0gICAg
ICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2UpOwotICAg
ICAgICAgICAgbm9kZS0+Y2hpbGQyKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2UpOworICAgICAg
ICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxLbm93bkNlbGxVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJs
ZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgICAgICAKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgYXBwZWFycyBicm9rZW46IENoZWNrSGFzSW5zdGFuY2UgYWxy
ZWFkeSBkb2VzIGFuIHVuY29uZGl0aW9uYWwgY2VsbAogICAgICAgICAgICAgLy8gY2hlY2suIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0NzkKICAgICAgICAgICAg
IGlmICghKG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiB+U3BlY0NlbGwpKQotICAgICAg
ICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoQ2VsbFVzZSk7Ci0gICAgICAgICAg
ICBub2RlLT5jaGlsZDIoKS5zZXRVc2VLaW5kKENlbGxVc2UpOworICAgICAgICAgICAgICAgIHNl
dFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8Q2VsbFVzZT4obm9kZS0+
Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApA
QCAtODk2LDExICs4OTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgfSB9CiAgICAgfQogICAgIAor
ICAgIC8vIFNldCB0aGUgdXNlIGtpbmQgb2YgdGhlIGVkZ2UuIEluIHRoZSBmdXR1cmUgKGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA0MzMpLAorICAgIC8vIHRoaXMg
Y2FuIGJlIHVzZWQgdG8gbm90aWZ5IHRoZSBHZXRMb2NhbCB0aGF0IHRoZSB2YXJpYWJsZSBpcyBw
cm9maXRhYmxlIHRvIHVuYm94LgorICAgIHRlbXBsYXRlPFVzZUtpbmQgdXNlS2luZD4KKyAgICB2
b2lkIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZShFZGdlJiBlZGdlKQorICAgIHsKKyAg
ICAgICAgZWRnZS5zZXRVc2VLaW5kKHVzZUtpbmQpOworICAgIH0KKyAgICAKICAgICB2b2lkIGZp
eEludEVkZ2UoRWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBlZGdlLm5v
ZGUoKTsKICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gVmFsdWVUb0ludDMyKSB7Ci0gICAgICAg
ICAgICBlZGdlLnNldFVzZUtpbmQoS25vd25JbnQzMlVzZSk7CisgICAgICAgICAgICBzZXRVc2VL
aW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8S25vd25JbnQzMlVzZT4oZWRnZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCkBAIC05MjAsMTAgKzkyOCwxMyBAQCBwcml2
YXRlOgogICAgICAgICBlZGdlID0gbmV3RWRnZTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBmaXhE
b3VibGVFZGdlKEVkZ2UmIGVkZ2UsIFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSwgU3BlY3Vs
YXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQmFja3dhcmRTcGVjdWxhdGlvbikKKyAgICB0ZW1w
bGF0ZTxVc2VLaW5kIHVzZUtpbmQ+CisgICAgdm9pZCBmaXhEb3VibGVFZGdlKEVkZ2UmIGVkZ2Us
IFNwZWN1bGF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEJhY2t3YXJkU3BlY3VsYXRpb24pCiAg
ICAgeworICAgICAgICBBU1NFUlQodXNlS2luZCA9PSBOdW1iZXJVc2UgfHwgdXNlS2luZCA9PSBL
bm93bk51bWJlclVzZSB8fCB1c2VLaW5kID09IFJlYWxOdW1iZXJVc2UpOworICAgICAgICAKICAg
ICAgICAgaWYgKGVkZ2UtPnByZWRpY3Rpb24oKSAmIFNwZWNEb3VibGUpIHsKLSAgICAgICAgICAg
IGVkZ2Uuc2V0VXNlS2luZCh1c2VLaW5kKTsKKyAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJv
eElmUHJvZml0YWJsZTx1c2VLaW5kPihlZGdlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICAKQEAgLTk4Miw4ICs5OTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAKICAgICAgICAgdHJ1bmNhdGVDb25zdGFudHNJZk5lY2Vz
c2FyeShub2RlLCBtb2RlKTsKLSAgICAgICAgbm9kZS0+Y2hpbGQxKCkuc2V0VXNlS2luZChJbnQz
MlVzZSk7Ci0gICAgICAgIG5vZGUtPmNoaWxkMigpLnNldFVzZUtpbmQoSW50MzJVc2UpOworICAg
ICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihu
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="210397"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>