<?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>21396</bug_id>
          
          <creation_ts>2008-10-05 22:45:30 -0700</creation_ts>
          <short_desc>Remove the OptionalCalleeActivation call frame slot</short_desc>
          <delta_ts>2008-10-06 20:54:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94207</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-05 22:45:30 -0700</bug_when>
    <thetext>After bug 21364 is resolved, we can do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94297</commentid>
    <comment_count>1</comment_count>
      <attachid>24130</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-06 17:06:14 -0700</bug_when>
    <thetext>Created attachment 24130
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94326</commentid>
    <comment_count>2</comment_count>
      <attachid>24137</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-06 20:15:22 -0700</bug_when>
    <thetext>Created attachment 24137
Revised proposed patch

This fixes the crash. It was a problem with the ScopeChain dereffing in unwindCallFrame().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94328</commentid>
    <comment_count>3</comment_count>
      <attachid>24137</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-06 20:42:33 -0700</bug_when>
    <thetext>Comment on attachment 24137
Revised proposed patch

r=me, but i&apos;d like a bug to cover the absence of documentation on op_tear_off_activation and op_enter_with_activation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94330</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-06 20:54:06 -0700</bug_when>
    <thetext>Landed in r37366.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24130</attachid>
            <date>2008-10-06 17:06:14 -0700</date>
            <delta_ts>2008-10-06 20:15:22 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>branch.diff</filename>
            <type>text/plain</type>
            <size>14206</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MzUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMDgtMTAt
MDYgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTM5NjogUmVtb3ZlIHRoZSBP
cHRpb25hbENhbGxlZUFjdGl2YXRpb24gY2FsbCBmcmFtZSBzbG90CisgICAgICAgIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTY+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBPcHRpb25hbENhbGxlZUFjdGl2YXRpb24gY2FsbCBmcmFtZSBzbG90LiBXZSBoYXZlIHRv
IGJlCisgICAgICAgIGNhcmVmdWwgdG8gc3RvcmUgdGhlIGFjdGl2YXRpb24gb2JqZWN0IGluIGEg
cmVnaXN0ZXIsIGJlY2F1c2Ugb2JqZWN0cworICAgICAgICBpbiB0aGUgc2NvcGUgY2hhaW4gZG8g
bm90IGdldCBtYXJrZWQuCisKKyAgICAgICAgVGhpcyBpcyBhIDAuMyUgc3BlZWR1cCBvbiBib3Ro
IFN1blNwaWRlciBhbmQgdGhlIFY4IGJlbmNobWFyay4KKworICAgICAgICAqIFZNL0NUSS5jcHA6
CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgICog
Vk0vQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wKToKKyAgICAg
ICAgKiBWTS9Db2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUdlbmVyYXRvcjo6
Q29kZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkNvZGVHZW5lcmF0b3I6OmVtaXRSZXR1cm4p
OgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBWTS9NYWNoaW5lLmNw
cDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6ZHVtcFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmU6OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OnByaXZh
dGVFeGVjdXRlKToKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6Y3RpX29wX2NhbGxfSlNGdW5jdGlv
bik6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9wdXNoX2FjdGl2YXRpb24pOgorICAg
ICAgICAoSlNDOjpNYWNoaW5lOjpjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbik6CisgICAgICAg
IChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1Y3QpOgorICAgICAgICAq
IFZNL01hY2hpbmUuaDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6aW5pdGlhbGl6ZUNhbGxGcmFt
ZSk6CisgICAgICAgICogVk0vUmVnaXN0ZXJGaWxlLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVy
RmlsZTo6KToKKwogMjAwOC0xMC0wNiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQxNgpJbmRleDogVk0vQ1RJLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9DVEkuY3BwCShyZXZpc2lv
biAzNzM1MikKKysrIFZNL0NUSS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzEsOCArMTE3MSw5
IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYWN0aXZhdGlvbjogeworICAg
ICAgICAgICAgZW1pdEdldFB1dEFyZyhpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCAwLCBY
ODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0Q2FsbChpLCBNYWNoaW5lOjpjdGlfb3BfdGVhcl9v
ZmZfYWN0aXZhdGlvbik7Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9IDI7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJfb2Zm
X2FyZ3VtZW50czogewpAQCAtMTk0MSw4ICsxOTQyLDYgQEAgdm9pZCBDVEk6OnByaXZhdGVDb21w
aWxlTWFpblBhc3MoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9lbnRlcl93aXRoX2FjdGl2YXRpb246IHsKLSAgICAgICAgICAgIGVtaXRDYWxsKGksIE1h
Y2hpbmU6OmN0aV9vcF9wdXNoX2FjdGl2YXRpb24pOwotCiAgICAgICAgICAgICAvLyBFdmVuIHRo
b3VnaCBDVEkgZG9lc24ndCB1c2UgdGhlbSwgd2UgaW5pdGlhbGl6ZSBvdXIgY29uc3RhbnQKICAg
ICAgICAgICAgIC8vIHJlZ2lzdGVycyB0byB6YXAgc3RhbGUgcG9pbnRlcnMsIHRvIGF2b2lkIHVu
bmVjZXNzYXJpbHkgcHJvbG9uZ2luZwogICAgICAgICAgICAgLy8gb2JqZWN0IGxpZmV0aW1lIGFu
ZCBpbmNyZWFzaW5nIEdDIHByZXNzdXJlLgpAQCAtMTk1MCw3ICsxOTQ5LDEwIEBAIHZvaWQgQ1RJ
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgY291bnQ7ICsraikKICAgICAgICAgICAgICAgICBlbWl0SW5pdFJlZ2lzdGVyKGopOwog
Ci0gICAgICAgICAgICBpKz0gMTsKKyAgICAgICAgICAgIGVtaXRDYWxsKGksIE1hY2hpbmU6OmN0
aV9vcF9wdXNoX2FjdGl2YXRpb24pOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsKKworICAgICAgICAgICAgaSs9IDI7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hcmd1bWVudHM6IHsK
SW5kZXg6IFZNL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ29kZUJsb2NrLmNwcAko
cmV2aXNpb24gMzczNTIpCisrKyBWTS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTMsNyArMzUzLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBjbwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbnRlcl93aXRo
X2FjdGl2YXRpb246IHsKLSAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gZW50ZXJfd2l0aF9hY3Rp
dmF0aW9uXG4iLCBsb2NhdGlvbik7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gZW50ZXJfd2l0aF9hY3RpdmF0aW9uICVz
XG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2FyZ3VtZW50czogewpAQCAt
ODE1LDggKzgxNiw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywgY28K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZf
YXJndW1lbnRzOiB7Ci0gICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIHByaW50ZigiWyU0ZF0gdGVhcl9vZmZfYXJndW1lbnRzXHQgJXNcbiIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUocjApLmNfc3RyKCkpOworICAgICAgICAgICAgcHJpbnRmKCJbJTRk
XSB0ZWFyX29mZl9hcmd1bWVudHNcbiIsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmV0OiB7CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzczNTIp
CisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg3LDIxICsyODcs
MjYgQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZAogICAgIGlmICht
X3Nob3VsZEVtaXREZWJ1Z0hvb2tzKQogICAgICAgICBtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2Nv
cGVDaGFpbiA9IHRydWU7CiAKLSAgICBpZiAobV9jb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hh
aW4pCi0gICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXJfd2l0aF9hY3RpdmF0aW9uKTsKLSAgICBl
bHNlCi0gICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXIpOwotCiAgICAgY29kZUJsb2NrLT5nbG9i
YWxEYXRhID0gbV9nbG9iYWxEYXRhOwogCiAgICAgYm9vbCB1c2VzQXJndW1lbnRzID0gZnVuY3Rp
b25Cb2R5LT51c2VzQXJndW1lbnRzKCk7CiAgICAgY29kZUJsb2NrLT51c2VzQXJndW1lbnRzID0g
dXNlc0FyZ3VtZW50czsKICAgICBpZiAodXNlc0FyZ3VtZW50cykgewotICAgICAgICBlbWl0T3Bj
b2RlKG9wX2NyZWF0ZV9hcmd1bWVudHMpOwogICAgICAgICBtX2FyZ3VtZW50c1JlZ2lzdGVyLnNl
dEluZGV4KFJlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBcmd1bWVudHMpOwogICAgICAgICBh
ZGRWYXIocHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cywgZmFsc2UpOwogICAgIH0KIAorICAgIGlm
IChtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbikgeworICAgICAgICArK21fY29kZUJs
b2NrLT5udW1WYXJzOworICAgICAgICBtX2FjdGl2YXRpb25SZWdpc3RlckluZGV4ID0gbmV3UmVn
aXN0ZXIoKS0+aW5kZXgoKTsKKyAgICAgICAgZW1pdE9wY29kZShvcF9lbnRlcl93aXRoX2FjdGl2
YXRpb24pOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQobV9hY3RpdmF0aW9uUmVnaXN0
ZXJJbmRleCk7CisgICAgfSBlbHNlCisgICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXIpOworCisg
ICAgaWYgKHVzZXNBcmd1bWVudHMpCisgICAgICAgIGVtaXRPcGNvZGUob3BfY3JlYXRlX2FyZ3Vt
ZW50cyk7CisKICAgICBjb25zdCBOb2RlOjpGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNrID0g
ZnVuY3Rpb25Cb2R5LT5mdW5jdGlvblN0YWNrKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZ1bmNEZWNsTm9kZSogZnVu
Y0RlY2wgPSBmdW5jdGlvblN0YWNrW2ldLmdldCgpOwpAQCAtMTE2MCw5ICsxMTY1LDEwIEBAIFJl
Z2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY28KIAogUmVnaXN0ZXJJRCogQ29k
ZUdlbmVyYXRvcjo6ZW1pdFJldHVybihSZWdpc3RlcklEKiBzcmMpCiB7Ci0gICAgaWYgKG1fY29k
ZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKQorICAgIGlmIChtX2NvZGVCbG9jay0+bmVlZHNG
dWxsU2NvcGVDaGFpbikgewogICAgICAgICBlbWl0T3Bjb2RlKG9wX3RlYXJfb2ZmX2FjdGl2YXRp
b24pOwotICAgIGVsc2UgaWYgKG1fY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKQorICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQobV9hY3RpdmF0aW9uUmVnaXN0ZXJJbmRleCk7CisgICAgfSBl
bHNlIGlmIChtX2NvZGVCbG9jay0+dXNlc0FyZ3VtZW50cykKICAgICAgICAgZW1pdE9wY29kZShv
cF90ZWFyX29mZl9hcmd1bWVudHMpOwogCiAgICAgcmV0dXJuIGVtaXRVbmFyeU5vRHN0T3Aob3Bf
cmV0LCBzcmMpOwpJbmRleDogVk0vQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0Nv
ZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMzczNTIpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SGFzaFNldDxSZWZQdHI8VVN0cmluZzo6UmVwPiwgSWRlbnRpZmllclJlcEhhc2g+IG1fZnVuY3Rp
b25zOwogICAgICAgICBSZWdpc3RlcklEIG1fdGhpc1JlZ2lzdGVyOwogICAgICAgICBSZWdpc3Rl
cklEIG1fYXJndW1lbnRzUmVnaXN0ZXI7CisgICAgICAgIGludCBtX2FjdGl2YXRpb25SZWdpc3Rl
ckluZGV4OwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgNTEyPiBtX2NhbGxl
ZVJlZ2lzdGVyczsKICAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDUxMj4gbV9w
YXJhbWV0ZXJzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgNTEyPiBtX2ds
b2JhbHM7CkluZGV4OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNw
cAkocmV2aXNpb24gMzczNTIpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzAxLDcgKzcwMSw2IEBAIHZvaWQgTWFjaGluZTo6ZHVtcFJlZ2lzdGVycyhjb25zdCBSZWdpc3QK
ICAgICBwcmludGYoIltSZXR1cm5WYWx1ZVJlZ2lzdGVyXSAgICAgIHwgJTEwcCB8ICUxMHAgXG4i
LCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmludGYoIltBcmd1bWVudENvdW50XSAgICAg
ICAgICAgIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmlu
dGYoIltDYWxsZWVdICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCpp
dCkudigpKTsgKytpdDsKLSAgICBwcmludGYoIltPcHRpb25hbENhbGxlZUFjdGl2YXRpb25dIHwg
JTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmludGYoIltPcHRp
b25hbENhbGxlZUFyZ3VtZW50c10gIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsg
KytpdDsKICAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS1cbiIpOwogCkBAIC03NzUsMjEgKzc3NCwyNyBAQCBORVZFUl9JTkxJTkUg
Ym9vbCBNYWNoaW5lOjp1bndpbmRDYWxsRnJhCiAgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhl
Y3V0ZShleGVjLCBjb2RlQmxvY2stPm93bmVyTm9kZS0+c291cmNlVVJMKCksIGNvZGVCbG9jay0+
b3duZXJOb2RlLT5saW5lTm8oKSk7CiAgICAgfQogCi0gICAgaWYgKG9sZENvZGVCbG9jay0+bmVl
ZHNGdWxsU2NvcGVDaGFpbikKLSAgICAgICAgc2NvcGVDaGFpbi0+ZGVyZWYoKTsKLQogICAgIC8v
IElmIHRoaXMgY2FsbCBmcmFtZSBjcmVhdGVkIGFuIGFjdGl2YXRpb24gb3IgYW4gJ2FyZ3VtZW50
cycgb2JqZWN0LCB0ZWFyIGl0IG9mZi4KLSAgICBpZiAoSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9u
ID0gc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4ocltSZWdpc3RlckZpbGU6Ok9wdGlvbmFsQ2Fs
bGVlQWN0aXZhdGlvbl0uZ2V0SlNWYWx1ZSgpKSkgeworICAgIGlmIChvbGRDb2RlQmxvY2stPmNv
ZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hh
aW4pIHsKKyAgICAgICAgU2NvcGVDaGFpbk5vZGUqIHRtcCA9IHNjb3BlQ2hhaW47CisgICAgICAg
IHdoaWxlICghdG1wLT5vYmplY3QtPmlzT2JqZWN0KCZKU0FjdGl2YXRpb246OmluZm8pKQorICAg
ICAgICAgICAgdG1wID0gdG1wLT5wb3AoKTsKKyAgICAgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0
aW9uID0gc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4odG1wLT5vYmplY3QpOwogICAgICAgICBB
U1NFUlQoYWN0aXZhdGlvbi0+aXNPYmplY3QoJkpTQWN0aXZhdGlvbjo6aW5mbykpOworCiAgICAg
ICAgIEFyZ3VtZW50cyogYXJndW1lbnRzID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4ocltSZWdp
c3RlckZpbGU6Ok9wdGlvbmFsQ2FsbGVlQXJndW1lbnRzXS5nZXRKU1ZhbHVlKCkpOwogICAgICAg
ICBBU1NFUlQoIWFyZ3VtZW50cyB8fCBhcmd1bWVudHMtPmlzT2JqZWN0KCZBcmd1bWVudHM6Omlu
Zm8pKTsKKwogICAgICAgICBhY3RpdmF0aW9uLT5jb3B5UmVnaXN0ZXJzKGFyZ3VtZW50cyk7CiAg
ICAgfSBlbHNlIGlmIChBcmd1bWVudHMqIGFyZ3VtZW50cyA9IHN0YXRpY19jYXN0PEFyZ3VtZW50
cyo+KHJbUmVnaXN0ZXJGaWxlOjpPcHRpb25hbENhbGxlZUFyZ3VtZW50c10uZ2V0SlNWYWx1ZSgp
KSkgewogICAgICAgICBBU1NFUlQoYXJndW1lbnRzLT5pc09iamVjdCgmQXJndW1lbnRzOjppbmZv
KSk7CiAgICAgICAgIGlmICghYXJndW1lbnRzLT5pc1Rvcm5PZmYoKSkKICAgICAgICAgICAgIGFy
Z3VtZW50cy0+Y29weVJlZ2lzdGVycygpOwogICAgIH0KLSAgICAKKworICAgIGlmIChvbGRDb2Rl
QmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4pCisgICAgICAgIHNjb3BlQ2hhaW4tPmRlcmVmKCk7
CisKICAgICB2b2lkKiByZXR1cm5QQyA9IHJbUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQ10udigpOwog
ICAgIHIgPSByW1JlZ2lzdGVyRmlsZTo6Q2FsbGVyUmVnaXN0ZXJzXS5yKCk7CiAgICAgZXhlYyA9
IENhbGxGcmFtZTo6Y3JlYXRlKHIpOwpAQCAtMzM1Niw3ICszMzYxLDggQEAgSlNWYWx1ZSogTWFj
aGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICBnb3RvIHZtX3Rocm93OwogICAg
IH0KICAgICBCRUdJTl9PUENPREUob3BfdGVhcl9vZmZfYWN0aXZhdGlvbikgewotICAgICAgICBK
U0FjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihyW1Jl
Z2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0aW9uXS5nZXRKU1ZhbHVlKCkpOworICAg
ICAgICBpbnQgc3JjID0gKCsrdlBDKS0+dS5vcGVyYW5kOworICAgICAgICBKU0FjdGl2YXRpb24q
IGFjdGl2YXRpb24gPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihyW3NyY10uZ2V0SlNWYWx1
ZSgpKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayhyKS0+bmVlZHNGdWxsU2NvcGVDaGFpbik7
CiAgICAgICAgIEFTU0VSVChhY3RpdmF0aW9uLT5pc09iamVjdCgmSlNBY3RpdmF0aW9uOjppbmZv
KSk7CiAKQEAgLTM0MzIsMTQgKzM0MzgsMTMgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4
ZWN1dGUoRXhlY3V0aQogICAgICAgICBORVhUX09QQ09ERTsKICAgICB9CiAgICAgQkVHSU5fT1BD
T0RFKG9wX2VudGVyX3dpdGhfYWN0aXZhdGlvbikgewotICAgICAgICAvKiBlbnRlcl93aXRoX2Fj
dGl2YXRpb24KKyAgICAgICAgLyogZW50ZXJfd2l0aF9hY3RpdmF0aW9uIGRzdChyKQogCiAgICAg
ICAgICAgIEluaXRpYWxpemVzIGxvY2FsIHZhcmlhYmxlcyB0byB1bmRlZmluZWQsIGZpbGxzIGNv
bnN0YW50CiAgICAgICAgICAgIHJlZ2lzdGVycyB3aXRoIHRoZWlyIHZhbHVlcywgY3JlYXRlcyBh
biBhY3RpdmF0aW9uIG9iamVjdCwKLSAgICAgICAgICAgYW5kIHBsYWNlcyB0aGUgbmV3IGFjdGl2
YXRpb24gYm90aCBpbiB0aGUgYWN0aXZhdGlvbiBzbG90Ci0gICAgICAgICAgIGluIHRoZSBjYWxs
IGZyYW1lIGFuZCBhdCB0aGUgdG9wIG9mIHRoZSBzY29wZSBjaGFpbi4gSWYgdGhlCi0gICAgICAg
ICAgIGNvZGUgYmxvY2sgZG9lcyBub3QgcmVxdWlyZSBhbiBhY3RpdmF0aW9uLCBlbnRlciBzaG91
bGQgYmUKLSAgICAgICAgICAgdXNlZCBpbnN0ZWFkLgorICAgICAgICAgICBhbmQgcGxhY2VzIHRo
ZSBuZXcgYWN0aXZhdGlvbiBib3RoIGluIGRzdCBhbmQgYXQgdGhlIHRvcAorICAgICAgICAgICBv
ZiB0aGUgc2NvcGUgY2hhaW4uIElmIHRoZSBjb2RlIGJsb2NrIGRvZXMgbm90IHJlcXVpcmUgYW4K
KyAgICAgICAgICAgYWN0aXZhdGlvbiwgZW50ZXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KIAog
ICAgICAgICAgICBUaGlzIG9wY29kZSBzaG91bGQgb25seSBiZSB1c2VkIGF0IHRoZSBiZWdpbm5p
bmcgb2YgYSBjb2RlCiAgICAgICAgICAgIGJsb2NrLgpAQCAtMzQ1NCw4ICszNDU5LDkgQEAgSlNW
YWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICBmb3IgKHNpemVf
dCBjb3VudCA9IGNvZGVCbG9jay0+Y29uc3RhbnRSZWdpc3RlcnMuc2l6ZSgpLCBqID0gMDsgaiA8
IGNvdW50OyArK2ksICsraikKICAgICAgICAgICAgIHJbaV0gPSBjb2RlQmxvY2stPmNvbnN0YW50
UmVnaXN0ZXJzW2pdOwogCisgICAgICAgIGludCBkc3QgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoZ2xvYmFsRGF0YSkgSlNBY3Rp
dmF0aW9uKGV4ZWMsIHN0YXRpY19jYXN0PEZ1bmN0aW9uQm9keU5vZGUqPihjb2RlQmxvY2stPm93
bmVyTm9kZSksIHIpOwotICAgICAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3Rp
dmF0aW9uXSA9IGFjdGl2YXRpb247CisgICAgICAgIHJbZHN0XSA9IGFjdGl2YXRpb247CiAgICAg
ICAgIHJbUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluXSA9IHNjb3BlQ2hhaW4ociktPmNvcHkoKS0+
cHVzaChhY3RpdmF0aW9uKTsKIAogICAgICAgICArK3ZQQzsKQEAgLTQ1ODEsNyArNDU4Nyw2IEBA
IHZvaWQqIE1hY2hpbmU6OmN0aV9vcF9jYWxsX0pTRnVuY3Rpb24oQ1QKICAgICAvLyBSZWdpc3Rl
ckZpbGU6OlJldHVyblZhbHVlUmVnaXN0ZXIgaXMgc2V0IGJ5IGNhbGxlcgogICAgIHJbUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50XSA9IEFSR19pbnQzOyAvLyBvcmlnaW5hbCBhcmd1bWVudCBj
b3VudCAoZm9yIHRoZSBzYWtlIG9mIHRoZSAiYXJndW1lbnRzIiBvYmplY3QpCiAgICAgcltSZWdp
c3RlckZpbGU6OkNhbGxlZV0gPSBBUkdfc3JjMTsKLSAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9u
YWxDYWxsZWVBY3RpdmF0aW9uXSA9IG51bGxKU1ZhbHVlOwogICAgIHJbUmVnaXN0ZXJGaWxlOjpP
cHRpb25hbENhbGxlZUFyZ3VtZW50c10gPSBudWxsSlNWYWx1ZTsKIAogICAgIEFSR19zZXRSKHIp
OwpAQCAtNDYwMCw3ICs0NjA1LDcgQEAgdm9pZCogTWFjaGluZTo6Y3RpX3ZtX2NvbXBpbGUoQ1RJ
X0FSR1MpCiAgICAgcmV0dXJuIGNvZGVCbG9jay0+Y3RpQ29kZTsKIH0KIAotdm9pZCBNYWNoaW5l
OjpjdGlfb3BfcHVzaF9hY3RpdmF0aW9uKENUSV9BUkdTKQorSlNWYWx1ZSogTWFjaGluZTo6Y3Rp
X29wX3B1c2hfYWN0aXZhdGlvbihDVElfQVJHUykKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBB
UkdfZXhlYzsKICAgICBSZWdpc3RlciogciA9IEFSR19yOwpAQCAtNDYwOCw4ICs0NjEzLDggQEAg
dm9pZCBNYWNoaW5lOjpjdGlfb3BfcHVzaF9hY3RpdmF0aW9uKENUSQogICAgIFNjb3BlQ2hhaW5O
b2RlKiBzY29wZUNoYWluID0gTWFjaGluZTo6c2NvcGVDaGFpbihyKTsKIAogICAgIEpTQWN0aXZh
dGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoQVJHX2dsb2JhbERhdGEpIEpTQWN0aXZhdGlvbihleGVj
LCBzdGF0aWNfY2FzdDxGdW5jdGlvbkJvZHlOb2RlKj4oY29kZUJsb2NrLT5vd25lck5vZGUpLCBy
KTsKLSAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0aW9uXSA9IGFjdGl2
YXRpb247CiAgICAgcltSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW5dID0gc2NvcGVDaGFpbi0+Y29w
eSgpLT5wdXNoKGFjdGl2YXRpb24pOworICAgIHJldHVybiBhY3RpdmF0aW9uOwogfQogCiBKU1Zh
bHVlKiBNYWNoaW5lOjpjdGlfb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKENUSV9BUkdTKQpAQCAtNDY2
OCw3ICs0NjczLDcgQEAgdm9pZCBNYWNoaW5lOjpjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbgog
ewogICAgIFJlZ2lzdGVyKiByID0gQVJHX3I7CiAKLSAgICBKU0FjdGl2YXRpb24qIGFjdGl2YXRp
b24gPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihyW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxD
YWxsZWVBY3RpdmF0aW9uXS5nZXRKU1ZhbHVlKCkpOworICAgIEpTQWN0aXZhdGlvbiogYWN0aXZh
dGlvbiA9IHN0YXRpY19jYXN0PEpTQWN0aXZhdGlvbio+KEFSR19zcmMxKTsKICAgICBBU1NFUlQo
Y29kZUJsb2NrKHIpLT5uZWVkc0Z1bGxTY29wZUNoYWluKTsKICAgICBBU1NFUlQoYWN0aXZhdGlv
bi0+aXNPYmplY3QoJkpTQWN0aXZhdGlvbjo6aW5mbykpOwogCkBAIC00Nzg1LDcgKzQ3OTAsNiBA
QCB2b2lkKiBNYWNoaW5lOjpjdGlfb3BfY29uc3RydWN0X0pTQ29uc3RyCiAgICAgLy8gUmVnaXN0
ZXJGaWxlOjpSZXR1cm5WYWx1ZVJlZ2lzdGVyIGlzIHNldCBieSBjYWxsZXIKICAgICByW1JlZ2lz
dGVyRmlsZTo6QXJndW1lbnRDb3VudF0gPSBhcmdDb3VudDsgLy8gb3JpZ2luYWwgYXJndW1lbnQg
Y291bnQgKGZvciB0aGUgc2FrZSBvZiB0aGUgImFyZ3VtZW50cyIgb2JqZWN0KQogICAgIHJbUmVn
aXN0ZXJGaWxlOjpDYWxsZWVdID0gY29uc3RydWN0b3I7Ci0gICAgcltSZWdpc3RlckZpbGU6Ok9w
dGlvbmFsQ2FsbGVlQWN0aXZhdGlvbl0gPSBudWxsSlNWYWx1ZTsKICAgICByW1JlZ2lzdGVyRmls
ZTo6T3B0aW9uYWxDYWxsZWVBcmd1bWVudHNdID0gbnVsbEpTVmFsdWU7CiAKICAgICBBUkdfc2V0
UihyKTsKSW5kZXg6IFZNL01hY2hpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmgJKHJl
dmlzaW9uIDM3MzUyKQorKysgVk0vTWFjaGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyAr
MjM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIHZvaWQqIFNGWF9DQUxM
IGN0aV92bV90aHJvdyhDVElfQVJHUyk7CiAgICAgICAgIHN0YXRpYyB2b2lkKiBTRlhfQ0FMTCBj
dGlfdm1fY29tcGlsZShDVElfQVJHUyk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIFNGWF9DQUxMIGN0
aV9vcF9wdXNoX2FjdGl2YXRpb24oQ1RJX0FSR1MpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSog
U0ZYX0NBTEwgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihDVElfQVJHUyk7CiAgICAgICAgIAogI2Vu
ZGlmIC8vIEVOQUJMRShDVEkpCiAKQEAgLTMyNCw3ICszMjQsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgY2FsbEZyYW1lW1JlZ2lzdGVyRmlsZTo6UmV0dXJuVmFsdWVSZWdpc3Rlcl0gPSBy
ZXR1cm5WYWx1ZVJlZ2lzdGVyOwogICAgICAgICBjYWxsRnJhbWVbUmVnaXN0ZXJGaWxlOjpBcmd1
bWVudENvdW50XSA9IGFyZ2M7IC8vIG9yaWdpbmFsIGFyZ3VtZW50IGNvdW50IChmb3IgdGhlIHNh
a2Ugb2YgdGhlICJhcmd1bWVudHMiIG9iamVjdCkKICAgICAgICAgY2FsbEZyYW1lW1JlZ2lzdGVy
RmlsZTo6Q2FsbGVlXSA9IGZ1bmN0aW9uOwotICAgICAgICBjYWxsRnJhbWVbUmVnaXN0ZXJGaWxl
OjpPcHRpb25hbENhbGxlZUFjdGl2YXRpb25dID0gbnVsbEpTVmFsdWU7CiAgICAgICAgIGNhbGxG
cmFtZVtSZWdpc3RlckZpbGU6Ok9wdGlvbmFsQ2FsbGVlQXJndW1lbnRzXSA9IG51bGxKU1ZhbHVl
OwogICAgIH0KIApJbmRleDogVk0vUmVnaXN0ZXJGaWxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vUmVn
aXN0ZXJGaWxlLmgJKHJldmlzaW9uIDM3MzUyKQorKysgVk0vUmVnaXN0ZXJGaWxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTkwLDE2ICs5MCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBS
ZWdpc3RlckZpbGUgOiBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIENh
bGxGcmFtZUhlYWRlckVudHJ5IHsKLSAgICAgICAgICAgIENhbGxGcmFtZUhlYWRlclNpemUgPSA5
LAorICAgICAgICAgICAgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDgsCiAKLSAgICAgICAgICAgIENv
ZGVCbG9jayA9IC05LAotICAgICAgICAgICAgU2NvcGVDaGFpbiA9IC04LAotICAgICAgICAgICAg
Q2FsbGVyUmVnaXN0ZXJzID0gLTcsCi0gICAgICAgICAgICBSZXR1cm5QQyA9IC02LAotICAgICAg
ICAgICAgUmV0dXJuVmFsdWVSZWdpc3RlciA9IC01LAotICAgICAgICAgICAgQXJndW1lbnRDb3Vu
dCA9IC00LAotICAgICAgICAgICAgQ2FsbGVlID0gLTMsCi0gICAgICAgICAgICBPcHRpb25hbENh
bGxlZUFjdGl2YXRpb24gPSAtMiwKKyAgICAgICAgICAgIENvZGVCbG9jayA9IC04LAorICAgICAg
ICAgICAgU2NvcGVDaGFpbiA9IC03LAorICAgICAgICAgICAgQ2FsbGVyUmVnaXN0ZXJzID0gLTYs
CisgICAgICAgICAgICBSZXR1cm5QQyA9IC01LAorICAgICAgICAgICAgUmV0dXJuVmFsdWVSZWdp
c3RlciA9IC00LAorICAgICAgICAgICAgQXJndW1lbnRDb3VudCA9IC0zLAorICAgICAgICAgICAg
Q2FsbGVlID0gLTIsCiAgICAgICAgICAgICBPcHRpb25hbENhbGxlZUFyZ3VtZW50cyA9IC0xLAog
ICAgICAgICB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24137</attachid>
            <date>2008-10-06 20:15:22 -0700</date>
            <delta_ts>2008-10-06 20:42:33 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>branch.diff</filename>
            <type>text/plain</type>
            <size>14191</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MzUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMDgtMTAt
MDYgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTM5NjogUmVtb3ZlIHRoZSBP
cHRpb25hbENhbGxlZUFjdGl2YXRpb24gY2FsbCBmcmFtZSBzbG90CisgICAgICAgIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTY+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBPcHRpb25hbENhbGxlZUFjdGl2YXRpb24gY2FsbCBmcmFtZSBzbG90LiBXZSBoYXZlIHRv
IGJlCisgICAgICAgIGNhcmVmdWwgdG8gc3RvcmUgdGhlIGFjdGl2YXRpb24gb2JqZWN0IGluIGEg
cmVnaXN0ZXIsIGJlY2F1c2Ugb2JqZWN0cworICAgICAgICBpbiB0aGUgc2NvcGUgY2hhaW4gZG8g
bm90IGdldCBtYXJrZWQuCisKKyAgICAgICAgVGhpcyBpcyBhIDAuMyUgc3BlZWR1cCBvbiBib3Ro
IFN1blNwaWRlciBhbmQgdGhlIFY4IGJlbmNobWFyay4KKworICAgICAgICAqIFZNL0NUSS5jcHA6
CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgICog
Vk0vQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wKToKKyAgICAg
ICAgKiBWTS9Db2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUdlbmVyYXRvcjo6
Q29kZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkNvZGVHZW5lcmF0b3I6OmVtaXRSZXR1cm4p
OgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBWTS9NYWNoaW5lLmNw
cDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6ZHVtcFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmU6OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OnByaXZh
dGVFeGVjdXRlKToKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6Y3RpX29wX2NhbGxfSlNGdW5jdGlv
bik6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9wdXNoX2FjdGl2YXRpb24pOgorICAg
ICAgICAoSlNDOjpNYWNoaW5lOjpjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbik6CisgICAgICAg
IChKU0M6Ok1hY2hpbmU6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1Y3QpOgorICAgICAgICAq
IFZNL01hY2hpbmUuaDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6aW5pdGlhbGl6ZUNhbGxGcmFt
ZSk6CisgICAgICAgICogVk0vUmVnaXN0ZXJGaWxlLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVy
RmlsZTo6KToKKwogMjAwOC0xMC0wNiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQxNgpJbmRleDogVk0vQ1RJLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9DVEkuY3BwCShyZXZpc2lv
biAzNzM1MikKKysrIFZNL0NUSS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzEsOCArMTE3MSw5
IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYWN0aXZhdGlvbjogeworICAg
ICAgICAgICAgZW1pdEdldFB1dEFyZyhpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCAwLCBY
ODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0Q2FsbChpLCBNYWNoaW5lOjpjdGlfb3BfdGVhcl9v
ZmZfYWN0aXZhdGlvbik7Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9IDI7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJfb2Zm
X2FyZ3VtZW50czogewpAQCAtMTk0MSw4ICsxOTQyLDYgQEAgdm9pZCBDVEk6OnByaXZhdGVDb21w
aWxlTWFpblBhc3MoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9lbnRlcl93aXRoX2FjdGl2YXRpb246IHsKLSAgICAgICAgICAgIGVtaXRDYWxsKGksIE1h
Y2hpbmU6OmN0aV9vcF9wdXNoX2FjdGl2YXRpb24pOwotCiAgICAgICAgICAgICAvLyBFdmVuIHRo
b3VnaCBDVEkgZG9lc24ndCB1c2UgdGhlbSwgd2UgaW5pdGlhbGl6ZSBvdXIgY29uc3RhbnQKICAg
ICAgICAgICAgIC8vIHJlZ2lzdGVycyB0byB6YXAgc3RhbGUgcG9pbnRlcnMsIHRvIGF2b2lkIHVu
bmVjZXNzYXJpbHkgcHJvbG9uZ2luZwogICAgICAgICAgICAgLy8gb2JqZWN0IGxpZmV0aW1lIGFu
ZCBpbmNyZWFzaW5nIEdDIHByZXNzdXJlLgpAQCAtMTk1MCw3ICsxOTQ5LDEwIEBAIHZvaWQgQ1RJ
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgY291bnQ7ICsraikKICAgICAgICAgICAgICAgICBlbWl0SW5pdFJlZ2lzdGVyKGopOwog
Ci0gICAgICAgICAgICBpKz0gMTsKKyAgICAgICAgICAgIGVtaXRDYWxsKGksIE1hY2hpbmU6OmN0
aV9vcF9wdXNoX2FjdGl2YXRpb24pOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsKKworICAgICAgICAgICAgaSs9IDI7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hcmd1bWVudHM6IHsK
SW5kZXg6IFZNL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ29kZUJsb2NrLmNwcAko
cmV2aXNpb24gMzczNTIpCisrKyBWTS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTMsNyArMzUzLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBjbwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbnRlcl93aXRo
X2FjdGl2YXRpb246IHsKLSAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gZW50ZXJfd2l0aF9hY3Rp
dmF0aW9uXG4iLCBsb2NhdGlvbik7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gZW50ZXJfd2l0aF9hY3RpdmF0aW9uICVz
XG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2FyZ3VtZW50czogewpAQCAt
ODE1LDggKzgxNiw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywgY28K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZf
YXJndW1lbnRzOiB7Ci0gICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIHByaW50ZigiWyU0ZF0gdGVhcl9vZmZfYXJndW1lbnRzXHQgJXNcbiIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUocjApLmNfc3RyKCkpOworICAgICAgICAgICAgcHJpbnRmKCJbJTRk
XSB0ZWFyX29mZl9hcmd1bWVudHNcbiIsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmV0OiB7CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzczNTIp
CisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg3LDIxICsyODcs
MjYgQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZAogICAgIGlmICht
X3Nob3VsZEVtaXREZWJ1Z0hvb2tzKQogICAgICAgICBtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2Nv
cGVDaGFpbiA9IHRydWU7CiAKLSAgICBpZiAobV9jb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hh
aW4pCi0gICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXJfd2l0aF9hY3RpdmF0aW9uKTsKLSAgICBl
bHNlCi0gICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXIpOwotCiAgICAgY29kZUJsb2NrLT5nbG9i
YWxEYXRhID0gbV9nbG9iYWxEYXRhOwogCiAgICAgYm9vbCB1c2VzQXJndW1lbnRzID0gZnVuY3Rp
b25Cb2R5LT51c2VzQXJndW1lbnRzKCk7CiAgICAgY29kZUJsb2NrLT51c2VzQXJndW1lbnRzID0g
dXNlc0FyZ3VtZW50czsKICAgICBpZiAodXNlc0FyZ3VtZW50cykgewotICAgICAgICBlbWl0T3Bj
b2RlKG9wX2NyZWF0ZV9hcmd1bWVudHMpOwogICAgICAgICBtX2FyZ3VtZW50c1JlZ2lzdGVyLnNl
dEluZGV4KFJlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBcmd1bWVudHMpOwogICAgICAgICBh
ZGRWYXIocHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cywgZmFsc2UpOwogICAgIH0KIAorICAgIGlm
IChtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbikgeworICAgICAgICArK21fY29kZUJs
b2NrLT5udW1WYXJzOworICAgICAgICBtX2FjdGl2YXRpb25SZWdpc3RlckluZGV4ID0gbmV3UmVn
aXN0ZXIoKS0+aW5kZXgoKTsKKyAgICAgICAgZW1pdE9wY29kZShvcF9lbnRlcl93aXRoX2FjdGl2
YXRpb24pOworICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQobV9hY3RpdmF0aW9uUmVnaXN0
ZXJJbmRleCk7CisgICAgfSBlbHNlCisgICAgICAgIGVtaXRPcGNvZGUob3BfZW50ZXIpOworCisg
ICAgaWYgKHVzZXNBcmd1bWVudHMpCisgICAgICAgIGVtaXRPcGNvZGUob3BfY3JlYXRlX2FyZ3Vt
ZW50cyk7CisKICAgICBjb25zdCBOb2RlOjpGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNrID0g
ZnVuY3Rpb25Cb2R5LT5mdW5jdGlvblN0YWNrKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZ1bmNEZWNsTm9kZSogZnVu
Y0RlY2wgPSBmdW5jdGlvblN0YWNrW2ldLmdldCgpOwpAQCAtMTE2MCw5ICsxMTY1LDEwIEBAIFJl
Z2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY28KIAogUmVnaXN0ZXJJRCogQ29k
ZUdlbmVyYXRvcjo6ZW1pdFJldHVybihSZWdpc3RlcklEKiBzcmMpCiB7Ci0gICAgaWYgKG1fY29k
ZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKQorICAgIGlmIChtX2NvZGVCbG9jay0+bmVlZHNG
dWxsU2NvcGVDaGFpbikgewogICAgICAgICBlbWl0T3Bjb2RlKG9wX3RlYXJfb2ZmX2FjdGl2YXRp
b24pOwotICAgIGVsc2UgaWYgKG1fY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKQorICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQobV9hY3RpdmF0aW9uUmVnaXN0ZXJJbmRleCk7CisgICAgfSBl
bHNlIGlmIChtX2NvZGVCbG9jay0+dXNlc0FyZ3VtZW50cykKICAgICAgICAgZW1pdE9wY29kZShv
cF90ZWFyX29mZl9hcmd1bWVudHMpOwogCiAgICAgcmV0dXJuIGVtaXRVbmFyeU5vRHN0T3Aob3Bf
cmV0LCBzcmMpOwpJbmRleDogVk0vQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0Nv
ZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMzczNTIpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SGFzaFNldDxSZWZQdHI8VVN0cmluZzo6UmVwPiwgSWRlbnRpZmllclJlcEhhc2g+IG1fZnVuY3Rp
b25zOwogICAgICAgICBSZWdpc3RlcklEIG1fdGhpc1JlZ2lzdGVyOwogICAgICAgICBSZWdpc3Rl
cklEIG1fYXJndW1lbnRzUmVnaXN0ZXI7CisgICAgICAgIGludCBtX2FjdGl2YXRpb25SZWdpc3Rl
ckluZGV4OwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgNTEyPiBtX2NhbGxl
ZVJlZ2lzdGVyczsKICAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDUxMj4gbV9w
YXJhbWV0ZXJzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgNTEyPiBtX2ds
b2JhbHM7CkluZGV4OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNw
cAkocmV2aXNpb24gMzczNTIpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzAxLDcgKzcwMSw2IEBAIHZvaWQgTWFjaGluZTo6ZHVtcFJlZ2lzdGVycyhjb25zdCBSZWdpc3QK
ICAgICBwcmludGYoIltSZXR1cm5WYWx1ZVJlZ2lzdGVyXSAgICAgIHwgJTEwcCB8ICUxMHAgXG4i
LCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmludGYoIltBcmd1bWVudENvdW50XSAgICAg
ICAgICAgIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmlu
dGYoIltDYWxsZWVdICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCpp
dCkudigpKTsgKytpdDsKLSAgICBwcmludGYoIltPcHRpb25hbENhbGxlZUFjdGl2YXRpb25dIHwg
JTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsgKytpdDsKICAgICBwcmludGYoIltPcHRp
b25hbENhbGxlZUFyZ3VtZW50c10gIHwgJTEwcCB8ICUxMHAgXG4iLCBpdCwgKCppdCkudigpKTsg
KytpdDsKICAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS1cbiIpOwogCkBAIC03NzUsMjEgKzc3NCwyNiBAQCBORVZFUl9JTkxJTkUg
Ym9vbCBNYWNoaW5lOjp1bndpbmRDYWxsRnJhCiAgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhl
Y3V0ZShleGVjLCBjb2RlQmxvY2stPm93bmVyTm9kZS0+c291cmNlVVJMKCksIGNvZGVCbG9jay0+
b3duZXJOb2RlLT5saW5lTm8oKSk7CiAgICAgfQogCi0gICAgaWYgKG9sZENvZGVCbG9jay0+bmVl
ZHNGdWxsU2NvcGVDaGFpbikKLSAgICAgICAgc2NvcGVDaGFpbi0+ZGVyZWYoKTsKLQogICAgIC8v
IElmIHRoaXMgY2FsbCBmcmFtZSBjcmVhdGVkIGFuIGFjdGl2YXRpb24gb3IgYW4gJ2FyZ3VtZW50
cycgb2JqZWN0LCB0ZWFyIGl0IG9mZi4KLSAgICBpZiAoSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9u
ID0gc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4ocltSZWdpc3RlckZpbGU6Ok9wdGlvbmFsQ2Fs
bGVlQWN0aXZhdGlvbl0uZ2V0SlNWYWx1ZSgpKSkgeworICAgIGlmIChvbGRDb2RlQmxvY2stPmNv
ZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hh
aW4pIHsKKyAgICAgICAgd2hpbGUgKCFzY29wZUNoYWluLT5vYmplY3QtPmlzT2JqZWN0KCZKU0Fj
dGl2YXRpb246OmluZm8pKQorICAgICAgICAgICAgc2NvcGVDaGFpbiA9IHNjb3BlQ2hhaW4tPnBv
cCgpOworICAgICAgICBKU0FjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBzdGF0aWNfY2FzdDxKU0Fj
dGl2YXRpb24qPihzY29wZUNoYWluLT5vYmplY3QpOwogICAgICAgICBBU1NFUlQoYWN0aXZhdGlv
bi0+aXNPYmplY3QoJkpTQWN0aXZhdGlvbjo6aW5mbykpOworCiAgICAgICAgIEFyZ3VtZW50cyog
YXJndW1lbnRzID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4ocltSZWdpc3RlckZpbGU6Ok9wdGlv
bmFsQ2FsbGVlQXJndW1lbnRzXS5nZXRKU1ZhbHVlKCkpOwogICAgICAgICBBU1NFUlQoIWFyZ3Vt
ZW50cyB8fCBhcmd1bWVudHMtPmlzT2JqZWN0KCZBcmd1bWVudHM6OmluZm8pKTsKKwogICAgICAg
ICBhY3RpdmF0aW9uLT5jb3B5UmVnaXN0ZXJzKGFyZ3VtZW50cyk7CiAgICAgfSBlbHNlIGlmIChB
cmd1bWVudHMqIGFyZ3VtZW50cyA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KHJbUmVnaXN0ZXJG
aWxlOjpPcHRpb25hbENhbGxlZUFyZ3VtZW50c10uZ2V0SlNWYWx1ZSgpKSkgewogICAgICAgICBB
U1NFUlQoYXJndW1lbnRzLT5pc09iamVjdCgmQXJndW1lbnRzOjppbmZvKSk7CiAgICAgICAgIGlm
ICghYXJndW1lbnRzLT5pc1Rvcm5PZmYoKSkKICAgICAgICAgICAgIGFyZ3VtZW50cy0+Y29weVJl
Z2lzdGVycygpOwogICAgIH0KLSAgICAKKworICAgIGlmIChvbGRDb2RlQmxvY2stPm5lZWRzRnVs
bFNjb3BlQ2hhaW4pCisgICAgICAgIHNjb3BlQ2hhaW4tPmRlcmVmKCk7CisKICAgICB2b2lkKiBy
ZXR1cm5QQyA9IHJbUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQ10udigpOwogICAgIHIgPSByW1JlZ2lz
dGVyRmlsZTo6Q2FsbGVyUmVnaXN0ZXJzXS5yKCk7CiAgICAgZXhlYyA9IENhbGxGcmFtZTo6Y3Jl
YXRlKHIpOwpAQCAtMzM1Niw3ICszMzYwLDggQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4
ZWN1dGUoRXhlY3V0aQogICAgICAgICBnb3RvIHZtX3Rocm93OwogICAgIH0KICAgICBCRUdJTl9P
UENPREUob3BfdGVhcl9vZmZfYWN0aXZhdGlvbikgewotICAgICAgICBKU0FjdGl2YXRpb24qIGFj
dGl2YXRpb24gPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihyW1JlZ2lzdGVyRmlsZTo6T3B0
aW9uYWxDYWxsZWVBY3RpdmF0aW9uXS5nZXRKU1ZhbHVlKCkpOworICAgICAgICBpbnQgc3JjID0g
KCsrdlBDKS0+dS5vcGVyYW5kOworICAgICAgICBKU0FjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBz
dGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihyW3NyY10uZ2V0SlNWYWx1ZSgpKTsKICAgICAgICAg
QVNTRVJUKGNvZGVCbG9jayhyKS0+bmVlZHNGdWxsU2NvcGVDaGFpbik7CiAgICAgICAgIEFTU0VS
VChhY3RpdmF0aW9uLT5pc09iamVjdCgmSlNBY3RpdmF0aW9uOjppbmZvKSk7CiAKQEAgLTM0MzIs
MTQgKzM0MzcsMTMgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQog
ICAgICAgICBORVhUX09QQ09ERTsKICAgICB9CiAgICAgQkVHSU5fT1BDT0RFKG9wX2VudGVyX3dp
dGhfYWN0aXZhdGlvbikgewotICAgICAgICAvKiBlbnRlcl93aXRoX2FjdGl2YXRpb24KKyAgICAg
ICAgLyogZW50ZXJfd2l0aF9hY3RpdmF0aW9uIGRzdChyKQogCiAgICAgICAgICAgIEluaXRpYWxp
emVzIGxvY2FsIHZhcmlhYmxlcyB0byB1bmRlZmluZWQsIGZpbGxzIGNvbnN0YW50CiAgICAgICAg
ICAgIHJlZ2lzdGVycyB3aXRoIHRoZWlyIHZhbHVlcywgY3JlYXRlcyBhbiBhY3RpdmF0aW9uIG9i
amVjdCwKLSAgICAgICAgICAgYW5kIHBsYWNlcyB0aGUgbmV3IGFjdGl2YXRpb24gYm90aCBpbiB0
aGUgYWN0aXZhdGlvbiBzbG90Ci0gICAgICAgICAgIGluIHRoZSBjYWxsIGZyYW1lIGFuZCBhdCB0
aGUgdG9wIG9mIHRoZSBzY29wZSBjaGFpbi4gSWYgdGhlCi0gICAgICAgICAgIGNvZGUgYmxvY2sg
ZG9lcyBub3QgcmVxdWlyZSBhbiBhY3RpdmF0aW9uLCBlbnRlciBzaG91bGQgYmUKLSAgICAgICAg
ICAgdXNlZCBpbnN0ZWFkLgorICAgICAgICAgICBhbmQgcGxhY2VzIHRoZSBuZXcgYWN0aXZhdGlv
biBib3RoIGluIGRzdCBhbmQgYXQgdGhlIHRvcAorICAgICAgICAgICBvZiB0aGUgc2NvcGUgY2hh
aW4uIElmIHRoZSBjb2RlIGJsb2NrIGRvZXMgbm90IHJlcXVpcmUgYW4KKyAgICAgICAgICAgYWN0
aXZhdGlvbiwgZW50ZXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KIAogICAgICAgICAgICBUaGlz
IG9wY29kZSBzaG91bGQgb25seSBiZSB1c2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlCiAg
ICAgICAgICAgIGJsb2NrLgpAQCAtMzQ1NCw4ICszNDU4LDkgQEAgSlNWYWx1ZSogTWFjaGluZTo6
cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICBmb3IgKHNpemVfdCBjb3VudCA9IGNvZGVC
bG9jay0+Y29uc3RhbnRSZWdpc3RlcnMuc2l6ZSgpLCBqID0gMDsgaiA8IGNvdW50OyArK2ksICsr
aikKICAgICAgICAgICAgIHJbaV0gPSBjb2RlQmxvY2stPmNvbnN0YW50UmVnaXN0ZXJzW2pdOwog
CisgICAgICAgIGludCBkc3QgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CiAgICAgICAgIEpTQWN0aXZh
dGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoZ2xvYmFsRGF0YSkgSlNBY3RpdmF0aW9uKGV4ZWMsIHN0
YXRpY19jYXN0PEZ1bmN0aW9uQm9keU5vZGUqPihjb2RlQmxvY2stPm93bmVyTm9kZSksIHIpOwot
ICAgICAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0aW9uXSA9IGFjdGl2
YXRpb247CisgICAgICAgIHJbZHN0XSA9IGFjdGl2YXRpb247CiAgICAgICAgIHJbUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluXSA9IHNjb3BlQ2hhaW4ociktPmNvcHkoKS0+cHVzaChhY3RpdmF0aW9u
KTsKIAogICAgICAgICArK3ZQQzsKQEAgLTQ1ODEsNyArNDU4Niw2IEBAIHZvaWQqIE1hY2hpbmU6
OmN0aV9vcF9jYWxsX0pTRnVuY3Rpb24oQ1QKICAgICAvLyBSZWdpc3RlckZpbGU6OlJldHVyblZh
bHVlUmVnaXN0ZXIgaXMgc2V0IGJ5IGNhbGxlcgogICAgIHJbUmVnaXN0ZXJGaWxlOjpBcmd1bWVu
dENvdW50XSA9IEFSR19pbnQzOyAvLyBvcmlnaW5hbCBhcmd1bWVudCBjb3VudCAoZm9yIHRoZSBz
YWtlIG9mIHRoZSAiYXJndW1lbnRzIiBvYmplY3QpCiAgICAgcltSZWdpc3RlckZpbGU6OkNhbGxl
ZV0gPSBBUkdfc3JjMTsKLSAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0
aW9uXSA9IG51bGxKU1ZhbHVlOwogICAgIHJbUmVnaXN0ZXJGaWxlOjpPcHRpb25hbENhbGxlZUFy
Z3VtZW50c10gPSBudWxsSlNWYWx1ZTsKIAogICAgIEFSR19zZXRSKHIpOwpAQCAtNDYwMCw3ICs0
NjA0LDcgQEAgdm9pZCogTWFjaGluZTo6Y3RpX3ZtX2NvbXBpbGUoQ1RJX0FSR1MpCiAgICAgcmV0
dXJuIGNvZGVCbG9jay0+Y3RpQ29kZTsKIH0KIAotdm9pZCBNYWNoaW5lOjpjdGlfb3BfcHVzaF9h
Y3RpdmF0aW9uKENUSV9BUkdTKQorSlNWYWx1ZSogTWFjaGluZTo6Y3RpX29wX3B1c2hfYWN0aXZh
dGlvbihDVElfQVJHUykKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBBUkdfZXhlYzsKICAgICBS
ZWdpc3RlciogciA9IEFSR19yOwpAQCAtNDYwOCw4ICs0NjEyLDggQEAgdm9pZCBNYWNoaW5lOjpj
dGlfb3BfcHVzaF9hY3RpdmF0aW9uKENUSQogICAgIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWlu
ID0gTWFjaGluZTo6c2NvcGVDaGFpbihyKTsKIAogICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlv
biA9IG5ldyAoQVJHX2dsb2JhbERhdGEpIEpTQWN0aXZhdGlvbihleGVjLCBzdGF0aWNfY2FzdDxG
dW5jdGlvbkJvZHlOb2RlKj4oY29kZUJsb2NrLT5vd25lck5vZGUpLCByKTsKLSAgICByW1JlZ2lz
dGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0aW9uXSA9IGFjdGl2YXRpb247CiAgICAgcltS
ZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW5dID0gc2NvcGVDaGFpbi0+Y29weSgpLT5wdXNoKGFjdGl2
YXRpb24pOworICAgIHJldHVybiBhY3RpdmF0aW9uOwogfQogCiBKU1ZhbHVlKiBNYWNoaW5lOjpj
dGlfb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKENUSV9BUkdTKQpAQCAtNDY2OCw3ICs0NjcyLDcgQEAg
dm9pZCBNYWNoaW5lOjpjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbgogewogICAgIFJlZ2lzdGVy
KiByID0gQVJHX3I7CiAKLSAgICBKU0FjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBzdGF0aWNfY2Fz
dDxKU0FjdGl2YXRpb24qPihyW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxsZWVBY3RpdmF0aW9u
XS5nZXRKU1ZhbHVlKCkpOworICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IHN0YXRpY19j
YXN0PEpTQWN0aXZhdGlvbio+KEFSR19zcmMxKTsKICAgICBBU1NFUlQoY29kZUJsb2NrKHIpLT5u
ZWVkc0Z1bGxTY29wZUNoYWluKTsKICAgICBBU1NFUlQoYWN0aXZhdGlvbi0+aXNPYmplY3QoJkpT
QWN0aXZhdGlvbjo6aW5mbykpOwogCkBAIC00Nzg1LDcgKzQ3ODksNiBAQCB2b2lkKiBNYWNoaW5l
OjpjdGlfb3BfY29uc3RydWN0X0pTQ29uc3RyCiAgICAgLy8gUmVnaXN0ZXJGaWxlOjpSZXR1cm5W
YWx1ZVJlZ2lzdGVyIGlzIHNldCBieSBjYWxsZXIKICAgICByW1JlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudF0gPSBhcmdDb3VudDsgLy8gb3JpZ2luYWwgYXJndW1lbnQgY291bnQgKGZvciB0aGUg
c2FrZSBvZiB0aGUgImFyZ3VtZW50cyIgb2JqZWN0KQogICAgIHJbUmVnaXN0ZXJGaWxlOjpDYWxs
ZWVdID0gY29uc3RydWN0b3I7Ci0gICAgcltSZWdpc3RlckZpbGU6Ok9wdGlvbmFsQ2FsbGVlQWN0
aXZhdGlvbl0gPSBudWxsSlNWYWx1ZTsKICAgICByW1JlZ2lzdGVyRmlsZTo6T3B0aW9uYWxDYWxs
ZWVBcmd1bWVudHNdID0gbnVsbEpTVmFsdWU7CiAKICAgICBBUkdfc2V0UihyKTsKSW5kZXg6IFZN
L01hY2hpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmgJKHJldmlzaW9uIDM3MzUyKQor
KysgVk0vTWFjaGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIHZvaWQqIFNGWF9DQUxMIGN0aV92bV90aHJvdyhD
VElfQVJHUyk7CiAgICAgICAgIHN0YXRpYyB2b2lkKiBTRlhfQ0FMTCBjdGlfdm1fY29tcGlsZShD
VElfQVJHUyk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIFNGWF9DQUxMIGN0aV9vcF9wdXNoX2FjdGl2
YXRpb24oQ1RJX0FSR1MpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSogU0ZYX0NBTEwgY3RpX29w
X3B1c2hfYWN0aXZhdGlvbihDVElfQVJHUyk7CiAgICAgICAgIAogI2VuZGlmIC8vIEVOQUJMRShD
VEkpCiAKQEAgLTMyNCw3ICszMjQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY2FsbEZy
YW1lW1JlZ2lzdGVyRmlsZTo6UmV0dXJuVmFsdWVSZWdpc3Rlcl0gPSByZXR1cm5WYWx1ZVJlZ2lz
dGVyOwogICAgICAgICBjYWxsRnJhbWVbUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50XSA9IGFy
Z2M7IC8vIG9yaWdpbmFsIGFyZ3VtZW50IGNvdW50IChmb3IgdGhlIHNha2Ugb2YgdGhlICJhcmd1
bWVudHMiIG9iamVjdCkKICAgICAgICAgY2FsbEZyYW1lW1JlZ2lzdGVyRmlsZTo6Q2FsbGVlXSA9
IGZ1bmN0aW9uOwotICAgICAgICBjYWxsRnJhbWVbUmVnaXN0ZXJGaWxlOjpPcHRpb25hbENhbGxl
ZUFjdGl2YXRpb25dID0gbnVsbEpTVmFsdWU7CiAgICAgICAgIGNhbGxGcmFtZVtSZWdpc3RlckZp
bGU6Ok9wdGlvbmFsQ2FsbGVlQXJndW1lbnRzXSA9IG51bGxKU1ZhbHVlOwogICAgIH0KIApJbmRl
eDogVk0vUmVnaXN0ZXJGaWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vUmVnaXN0ZXJGaWxlLmgJKHJl
dmlzaW9uIDM3MzUyKQorKysgVk0vUmVnaXN0ZXJGaWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDE2ICs5MCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBSZWdpc3RlckZpbGUgOiBO
b25jb3B5YWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIENhbGxGcmFtZUhlYWRlckVu
dHJ5IHsKLSAgICAgICAgICAgIENhbGxGcmFtZUhlYWRlclNpemUgPSA5LAorICAgICAgICAgICAg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDgsCiAKLSAgICAgICAgICAgIENvZGVCbG9jayA9IC05LAot
ICAgICAgICAgICAgU2NvcGVDaGFpbiA9IC04LAotICAgICAgICAgICAgQ2FsbGVyUmVnaXN0ZXJz
ID0gLTcsCi0gICAgICAgICAgICBSZXR1cm5QQyA9IC02LAotICAgICAgICAgICAgUmV0dXJuVmFs
dWVSZWdpc3RlciA9IC01LAotICAgICAgICAgICAgQXJndW1lbnRDb3VudCA9IC00LAotICAgICAg
ICAgICAgQ2FsbGVlID0gLTMsCi0gICAgICAgICAgICBPcHRpb25hbENhbGxlZUFjdGl2YXRpb24g
PSAtMiwKKyAgICAgICAgICAgIENvZGVCbG9jayA9IC04LAorICAgICAgICAgICAgU2NvcGVDaGFp
biA9IC03LAorICAgICAgICAgICAgQ2FsbGVyUmVnaXN0ZXJzID0gLTYsCisgICAgICAgICAgICBS
ZXR1cm5QQyA9IC01LAorICAgICAgICAgICAgUmV0dXJuVmFsdWVSZWdpc3RlciA9IC00LAorICAg
ICAgICAgICAgQXJndW1lbnRDb3VudCA9IC0zLAorICAgICAgICAgICAgQ2FsbGVlID0gLTIsCiAg
ICAgICAgICAgICBPcHRpb25hbENhbGxlZUFyZ3VtZW50cyA9IC0xLAogICAgICAgICB9OwogCg==
</data>
<flag name="review"
          id="10957"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>