<?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>34321</bug_id>
          
          <creation_ts>2010-01-29 02:45:24 -0800</creation_ts>
          <short_desc>JSC is failing to propagate anonymous slot count on some transitions</short_desc>
          <delta_ts>2010-06-28 10:34:38 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>lantzwr</cc>
    
    <cc>vdanen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185788</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-29 02:45:24 -0800</bug_when>
    <thetext>JSC is failing to propagate anonymous slot count on some transitions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185791</commentid>
    <comment_count>1</comment_count>
      <attachid>47694</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-29 02:56:30 -0800</bug_when>
    <thetext>Created attachment 47694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185888</commentid>
    <comment_count>2</comment_count>
      <attachid>47694</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-29 09:24:45 -0800</bug_when>
    <thetext>Comment on attachment 47694
Patch

&gt; +    push(@implContent, &quot;    ASSERT((int)(this-&gt;structure()-&gt;anonymousSlotCount()) &gt;= (int)AnonymousSlotCount);\n&quot;);

Why are these casts needed? If they are needed, why use C-style casts instead of C++-style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185920</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-29 11:47:08 -0800</bug_when>
    <thetext>Committed r54073: &lt;http://trac.webkit.org/changeset/54073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186075</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-29 21:31:09 -0800</bug_when>
    <thetext>I rolled this out in r54100 as it introduced many thousands of leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186321</commentid>
    <comment_count>5</comment_count>
      <attachid>47817</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-01 00:13:59 -0800</bug_when>
    <thetext>Created attachment 47817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186325</commentid>
    <comment_count>6</comment_count>
      <attachid>47817</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-02-01 00:35:46 -0800</bug_when>
    <thetext>Comment on attachment 47817
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186333</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-01 01:42:06 -0800</bug_when>
    <thetext>*** Bug 34403 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186334</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-01 01:43:15 -0800</bug_when>
    <thetext>Committed r54129</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243761</commentid>
    <comment_count>9</comment_count>
    <who name="Vincent Danen">vdanen</who>
    <bug_when>2010-06-28 10:34:38 -0700</bug_when>
    <thetext>This has been given the name CVE-2010-1387</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47694</attachid>
            <date>2010-01-29 02:56:30 -0800</date>
            <delta_ts>2010-02-01 00:13:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34321-20100129025628.patch</filename>
            <type>text/plain</type>
            <size>12336</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBmNDI3ZGYwLi45OGY5ZTlhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMDEtMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgaXMgZmFpbGluZyB0
byBwcm9wYWdhdGUgYW5vbnltb3VzIHNsb3QgY291bnQgb24gc29tZSB0cmFuc2l0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMjEKKworICAg
ICAgICBSZW1vdmUgdGhlIHVuc2FmZSB0d28gYXJndW1lbnQgU3RydWN0dXJlOjpjcmVhdGUgbWV0
aG9kLCBhbmQgY29ycmVjdAorICAgICAgICB0aGUgdXNlcyBvZiBpdCB0byBwcm9wYWdhdGUgdGhl
IGFub255bW91cyBzbG90IGNvdW50LgorCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6c2V0U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFu
c2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmFuc2l0
aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRp
b24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24pOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnRvRGljdGlvbmFyeVRyYW5zaXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisKIDIwMTAtMDEtMjkgIFNpbW9uIEhhdXNtYW5uICA8
c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IE1h
Y2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDJiMzFhNjUu
LjY1MmViNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTMxNSw2ICszMTUsNyBA
QCBpbmxpbmUgdm9pZCBKU09iamVjdDo6c2V0UHJvdG90eXBlKEpTVmFsdWUgcHJvdG90eXBlKQog
CiBpbmxpbmUgdm9pZCBKU09iamVjdDo6c2V0U3RydWN0dXJlKE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlKQogeworICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Ns
b3RDb3VudCgpID09IG1fc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAgICAgbV9z
dHJ1Y3R1cmUtPmRlcmVmKCk7CiAgICAgbV9zdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUucmVsZWFzZVJl
ZigpOyAvLyB+SlNPYmplY3QgYmFsYW5jZXMgdGhpcyByZWYoKQogfQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDc3MzMwYWEuLmVlZWExNzIgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTM2Niw3ICszNjYsNyBAQCBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbgogICAgICAgICByZXR1cm4gdHJhbnNpdGlvbi5yZWxlYXNlKCk7CiAgICAgfQogCi0gICAg
UmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShzdHJ1Y3R1cmUtPm1fcHJvdG90
eXBlLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5z
aXRpb24gPSBjcmVhdGUoc3RydWN0dXJlLT5tX3Byb3RvdHlwZSwgc3RydWN0dXJlLT50eXBlSW5m
bygpLCBzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKIAogICAgIHRyYW5zaXRpb24t
Pm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4gPSBzdHJ1Y3R1cmUtPm1fY2FjaGVkUHJvdG90eXBlQ2hh
aW47CiAgICAgdHJhbnNpdGlvbi0+bV9wcmV2aW91cyA9IHN0cnVjdHVyZTsKQEAgLTQxNSw3ICs0
MTUsNyBAQCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gU3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRy
YW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAKIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBT
dHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24g
PSBjcmVhdGUocHJvdG90eXBlLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOworICAgIFJlZlB0cjxT
dHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUocHJvdG90eXBlLCBzdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCksIHN0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwogCiAgICAgdHJhbnNpdGlv
bi0+bV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eTsKICAgICB0cmFuc2l0aW9uLT5tX2hhc0dldHRlclNldHRlclByb3BlcnRpZXMg
PSBzdHJ1Y3R1cmUtPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllczsKQEAgLTQzNCw3ICs0MzQs
NyBAQCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gU3RydWN0dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmFu
c2l0aW9uKFN0cnVjdHVyZSogc3RydWN0dXJlLAogUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IFN0cnVj
dHVyZTo6ZGVzcGVjaWZ5RnVuY3Rpb25UcmFuc2l0aW9uKFN0cnVjdHVyZSogc3RydWN0dXJlLCBj
b25zdCBJZGVudGlmaWVyJiByZXBsYWNlRnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKHN0cnVjdHVy
ZS0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQgPCBtYXhTcGVjaWZpY0Z1bmN0aW9uVGhy
YXNoQ291bnQpOwotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3Ry
dWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSwgc3RydWN0dXJlLT50eXBlSW5mbygpKTsKKyAgICBS
ZWZQdHI8U3RydWN0dXJlPiB0cmFuc2l0aW9uID0gY3JlYXRlKHN0cnVjdHVyZS0+c3RvcmVkUHJv
dG90eXBlKCksIHN0cnVjdHVyZS0+dHlwZUluZm8oKSwgc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90
Q291bnQoKSk7CiAKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ID0g
c3RydWN0dXJlLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5OwogICAgIHRyYW5zaXRpb24tPm1f
aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyA9IHN0cnVjdHVyZS0+bV9oYXNHZXR0ZXJTZXR0ZXJQ
cm9wZXJ0aWVzOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1
Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbihTdHJ1Y3R1cmUqIHN0cnVjdHVyCiAK
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24o
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlv
biA9IGNyZWF0ZShzdHJ1Y3R1cmUtPnN0b3JlZFByb3RvdHlwZSgpLCBzdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCkpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3RydWN0
dXJlLT5zdG9yZWRQcm90b3R5cGUoKSwgc3RydWN0dXJlLT50eXBlSW5mbygpLCBzdHJ1Y3R1cmUt
PmFub255bW91c1Nsb3RDb3VudCgpKTsKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5ID0gc3RydWN0dXJlLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5OwogICAgIHRy
YW5zaXRpb24tPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyA9IHRyYW5zaXRpb24tPm1faGFz
R2V0dGVyU2V0dGVyUHJvcGVydGllczsKICAgICB0cmFuc2l0aW9uLT5tX2hhc05vbkVudW1lcmFi
bGVQcm9wZXJ0aWVzID0gc3RydWN0dXJlLT5tX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzOwpA
QCAtNDc4LDcgKzQ3OCw3IEBAIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1Y3R1cmU6OnRvRGlj
dGlvbmFyeVRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERpCiB7CiAgICAgQVNTRVJU
KCFzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkpOwogICAgIAotICAgIFJlZlB0
cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3RydWN0dXJlLT5tX3Byb3RvdHlwZSwg
c3RydWN0dXJlLT50eXBlSW5mbygpKTsKKyAgICBSZWZQdHI8U3RydWN0dXJlPiB0cmFuc2l0aW9u
ID0gY3JlYXRlKHN0cnVjdHVyZS0+bV9wcm90b3R5cGUsIHN0cnVjdHVyZS0+dHlwZUluZm8oKSwg
c3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAgICAgdHJhbnNpdGlvbi0+bV9kaWN0
aW9uYXJ5S2luZCA9IGtpbmQ7CiAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eTsKICAgICB0cmFuc2l0
aW9uLT5tX2hhc0dldHRlclNldHRlclByb3BlcnRpZXMgPSBzdHJ1Y3R1cmUtPm1faGFzR2V0dGVy
U2V0dGVyUHJvcGVydGllczsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGY3M2Y5
YjguLmQ5ZjE0MTEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMTQ3LDExICsx
NDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKFBy
b3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUpOwogICAgICAgICAKICAgICBw
cml2YXRlOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU1Zh
bHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZv
KSk7Ci0gICAgICAgIH0KLQogICAgICAgICBTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IFR5cGVJbmZvJik7CiAgICAgICAgIAogICAgICAgICB0eXBlZGVmIGVudW0geyAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA0ZjEwMjY2Li4yMDVhMjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEtMjkgIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgaXMgZmFpbGluZyB0byBwcm9wYWdhdGUgYW5vbnlt
b3VzIHNsb3QgY291bnQgb24gc29tZSB0cmFuc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMjEKKworICAgICAgICBBZGQgYSB0ZXN0IGZv
ciBtb2RpZmljYXRpb24gb2YgYSB0eXBlIHdpdGggYW5vbnltb3VzIHNsb3RzLgorCisgICAgICAg
ICogZmFzdC9kb20vV2luZG93L2Fub255bW91cy1zbG90LXdpdGgtY2hhbmdlcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbm9ueW1vdXMtc2xvdC13aXRo
LWNoYW5nZXMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMjggIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbm9ueW1vdXMtc2xvdC13aXRo
LWNoYW5nZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fub255
bW91cy1zbG90LXdpdGgtY2hhbmdlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYmMwNGExZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9hbm9ueW1vdXMtc2xvdC13aXRoLWNoYW5nZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzCitQ
QVNTOiBldmVudERhdGEgaXMgbnVsbCBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlz
IHVuZGVmaW5lZCBvZiB0eXBlIHVuZGVmaW5lZAorUEFTUzogZXZlbnREYXRhIGlzIDEgb2YgdHlw
ZSBudW1iZXIKK1BBU1M6IGV2ZW50RGF0YSBpcyB0cnVlIG9mIHR5cGUgYm9vbGVhbgorUEFTUzog
ZXZlbnREYXRhIGlzIDEgb2YgdHlwZSBzdHJpbmcKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0
IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVj
dF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBvZiB0eXBlIG9iamVjdAorUEFT
UzogZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMg
LCwxIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgbnVsbCBvZiB0eXBlIG9iamVj
dAorUEFTUzogZXZlbnREYXRhIGlzIDIwMDktMDItMTNUMjM6MzE6MzAuMDAwWiBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fub255bW91cy1zbG90LXdpdGgtY2hhbmdl
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fub255bW91cy1zbG90LXdpdGgt
Y2hhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4M2QyNTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYW5vbnltb3Vz
LXNsb3Qtd2l0aC1jaGFuZ2VzLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzxodG1sPgorPGhlYWQ+
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0Ij48L2lucHV0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIik7CisKK3ZhciBtZXNzYWdlcyA9IFtdOworCitmdW5jdGlvbiBlcXVhbChh
Y3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmICh0eXBlb2YgYWN0dWFsICE9PSB0eXBlb2YgZXhw
ZWN0ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYWN0dWFsID09PSBleHBlY3Rl
ZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRl
KSB8fCAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSkgeworICAgICAgICBpZiAoKGFjdHVhbCBp
bnN0YW5jZW9mIERhdGUpICYmIChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKQorICAgICAgICAg
ICAgcmV0dXJuIChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpICYmIGFjdHVhbC5nZXRUaW1lKCkg
PT0gZXhwZWN0ZWQuZ2V0VGltZSgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgQXJyYXkuaXNBcnJheShleHBlY3RlZCkpIHsK
KyAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgIUFycmF5LmlzQXJyYXkoZXhw
ZWN0ZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoYWN0dWFsLmxl
bmd0aCAhPSBleHBlY3RlZC5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0dWFsLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICBpZiAoKGkgaW4gYWN0dWFsKSBeIChpIGluIGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWVxdWFsKGFjdHVhbFtpXSwgZXhwZWN0ZWRb
aV0pKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGFjdHVhbC5jb25zdHJ1Y3RvciAhPT0gZXhwZWN0
ZWQuY29uc3RydWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2YXIga2V5cyA9IE9i
amVjdC5rZXlzKGFjdHVhbCk7CisgICAgaWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBl
Y3RlZCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBr
ZXlzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBl
eHBlY3RlZFtrZXlzW2ldXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBzYWZlVG9TdHJpbmcobykgeworICAgIGlmIChv
IGluc3RhbmNlb2YgRGF0ZSkKKyAgICAgICAgcmV0dXJuIG8udG9JU09TdHJpbmcoKTsKKyAgICBp
ZiAodHlwZW9mIG8gIT09ICJvYmplY3QiIHx8ICFvKQorICAgICAgICByZXR1cm4gbzsKKyAgICB0
cnkgeworICAgICAgICByZXR1cm4gby50b1N0cmluZygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSArICIoZGVmYXVs
dCB0b1N0cmluZyB0aHJldyAiK2UrIikiOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7
CisgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKKyAgICBpZiAoZXF1YWwo
YWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpKQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCAr
PSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgIiArIHNhZmVUb1N0cmluZyhleHBlY3RlZFZhbHVl
KSArICIgb2YgdHlwZSAiICsgdHlwZW9mIGFjdHVhbFZhbHVlICsgIjxicj4iOworICAgIGVsc2UK
KyAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzICIg
KyBhY3R1YWxWYWx1ZSArICIgc2hvdWxkIGJlICIgKyBleHBlY3RlZFZhbHVlICsgIiBvZiB0eXBl
ICIgKyB0eXBlb2YgZXhwZWN0ZWRWYWx1ZSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gb25tZXNz
YWdlKGV2dCkgeworICAgIGV2dC5mb28gPSAiYmFyIjsgLy8gYWRkIGEgcHJvcGVydHkuCisgICAg
ZXZlbnREYXRhID0gZXZ0LmRhdGE7CisgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1lc3NhZ2Vz
LnNoaWZ0KCkpOworCisgICAgaWYgKHNhZmVUb1N0cmluZyhldnQuZGF0YSkgPT0gJ2RvbmUnICYm
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IG9ubWVzc2FnZSwgZmFsc2UpOworCitmdW5jdGlvbiB0cnlQb3N0TWVzc2FnZShtZXNzYWdlLCBz
aG91bGRUaHJvdywgZXhwZWN0ZWQpIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgdmFsdWUgPSBl
dmFsKG1lc3NhZ2UpOworICAgICAgICBwb3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsKKyAgICAgICAg
aWYgKHNob3VsZFRocm93KQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6
ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0PGJyPiI7
CisgICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVzc2FnZSk7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgICAgIGNvbnNvbGUuaW5u
ZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSAr
ICI8YnI+IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCBub3QgdGhyb3cgYnV0IHRo
cmV3ICIgKyBlICsgIjxicj4iOworICAgIH0KK30KKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhp
ZXJhcmNoaWVzIjsKKwordHJ5UG9zdE1lc3NhZ2UoJ251bGwnKTsKK3RyeVBvc3RNZXNzYWdlKCd1
bmRlZmluZWQnKTsKK3RyeVBvc3RNZXNzYWdlKCcxJyk7Cit0cnlQb3N0TWVzc2FnZSgndHJ1ZScp
OwordHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwordHJ5UG9zdE1lc3NhZ2UoJyh7fSknKTsKK3RyeVBv
c3RNZXNzYWdlKCcoe2E6MX0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnW10nKTsKK3RyeVBvc3RNZXNz
YWdlKCdbMSwyLDNdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsKK3RyeVBvc3RNZXNzYWdl
KCcoZnVuY3Rpb24oKXt9KScsIGZhbHNlLCAnbnVsbCcpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBE
YXRlKDEyMzQ1Njc4OTAwMDApJyk7Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUiJyk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNGFkMzM1NC4uMzY1NjRlMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
MC0wMS0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTQyBpcyBmYWlsaW5nIHRvIHByb3Bh
Z2F0ZSBhbm9ueW1vdXMgc2xvdCBjb3VudCBvbiBzb21lIHRyYW5zaXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMyMQorCisgICAgICAgIE1h
a2UgY29kZSBnZW5lcmF0b3IgYWRkIGFzc2VydGlvbnMgZm9yIGFub255bW91cyBzbG90IGNvdW50
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL1dpbmRvdy9hbm9ueW1vdXMtc2xvdC13aXRoLWNo
YW5nZXMuaHRtbAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisKIDIwMTAtMDEtMjkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdhNTVhM2QuLjE4M2JiMzIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTE4NSw2ICsxMTg1
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0KICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFT
U0VSVCgoaW50KSh0aGlzLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xvdENvdW50KCkpID49IChp
bnQpQW5vbnltb3VzU2xvdENvdW50KTtcbiIpOwogICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRl
cyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgZm9yICh1bnNpZ25lZCBp
ID0gQmFzZTo6QW5vbnltb3VzU2xvdENvdW50OyBpIDwgQW5vbnltb3VzU2xvdENvdW50OyBpKysp
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dEFub255bW91c1Zh
bHVlKGksIEpTVmFsdWUoKSk7XG4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47817</attachid>
            <date>2010-02-01 00:13:59 -0800</date>
            <delta_ts>2010-02-01 00:35:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34321-20100201001358.patch</filename>
            <type>text/plain</type>
            <size>19592</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4NzExZDgyLi42YjBhMWUxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTAtMDEtMzEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgaXMgZmFpbGluZyB0
byBwcm9wYWdhdGUgYW5vbnltb3VzIHNsb3QgY291bnQgb24gc29tZSB0cmFuc2l0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMjEKKworICAg
ICAgICBSZW1vdmUgc2Vjb25kYXJ5IFN0cnVjdHVyZSBjb25zdHJ1Y3RvciwgYW5kIG1ha2UgU3Ry
dWN0dXJlIHN0b3JlIGEgY29weQorICAgICAgICBvZiB0aGUgbnVtYmVyIG9mIGFub255bW91cyBz
bG90cyBkaXJlY3RseSBzbyBzYXZpbmcgYW4gaW1tZWRpYXRlIGFsbG9jYXRpb24KKyAgICAgICAg
b2YgYSBwcm9wZXJ0eSBtYXAgZm9yIGFsbCBzdHJ1Y3R1cmVzIHdpdGggYW5vbnltb3VzIHN0b3Jh
Z2UsIHdoaWNoIGFsc28KKyAgICAgICAgYXZvaWRzIHRoZSBsZWFrZWQgcHJvcGVydHkgbWFwIG9u
IG5ldyBwcm9wZXJ0eSB0cmFuc2l0aW9uIGluIHRoZSBvcmlnaW5hbAorICAgICAgICB2ZXJzaW9u
IG9mIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uKToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OnRvRGljdGlvbmFyeVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojpjb3B5UHJvcGVydHlUYWJsZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHV0KToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
Omluc2VydEludG9Qcm9wZXJ0eU1hcEhhc2hUYWJsZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlUHJvcGVydHlNYXBIYXNoVGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlOjpoYXNBbm9ueW1vdXNTbG90cyk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
YW5vbnltb3VzU2xvdENvdW50KToKKwogMjAxMC0wMS0yOSAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFNvcnQgWGNvZGUgcHJvamVjdHMuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAKaW5kZXggMzgyMTk5Mi4uM2I0NDVhMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cApAQCAtMjkyLDcgKzI5Miw3IEBAIF9fWk4zSlNDOVN0cnVjdHVyZTI3ZGVzcGVjaWZ5RnVu
Y3Rpb25UcmFuc2l0aW9uRVBTMF9SS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOVN0cnVjdHVy
ZTI4YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbkVSS05TXzEwSWRlbnRpZmllckVqUE5TXzZK
U0NlbGxFCiBfX1pOM0pTQzlTdHJ1Y3R1cmUzZ2V0RVBLTlNfMTFVU3RyaW5nSW1wbEVSalJQTlNf
NkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlz
dGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCi1fX1pO
M0pTQzlTdHJ1Y3R1cmVDMUVOU183SlNWYWx1ZUVSS05TXzhUeXBlSW5mb0UKK19fWk4zSlNDOVN0
cnVjdHVyZUMxRU5TXzdKU1ZhbHVlRVJLTlNfOFR5cGVJbmZvRWoKIF9fWk4zSlNDOVN0cnVjdHVy
ZUQxRXYKIF9fWk4zSlNDOWNvbnN0cnVjdEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVOU18x
M0NvbnN0cnVjdFR5cGVFUktOU18xM0NvbnN0cnVjdERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4z
SlNDZXFFUktOU183VVN0cmluZ0VQS2MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApp
bmRleCA3NzMzMGFhLi44NmVhZWJkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXBTdGF0aXN0aWNzKCkKICNl
bmRpZgogfQogCi1TdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3Qg
VHlwZUluZm8mIHR5cGVJbmZvKQorU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50
KQogICAgIDogbV90eXBlSW5mbyh0eXBlSW5mbykKICAgICAsIG1fcHJvdG90eXBlKHByb3RvdHlw
ZSkKICAgICAsIG1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMoMCkKQEAgLTEzNSw2ICsxMzUsNyBA
QCBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8m
IHR5cGVJbmZvKQogICAgICwgbV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKGZhbHNlKQogICAg
ICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygwKQogICAgICwgbV9zcGVjaWZpY0Z1bmN0aW9uVGhy
YXNoQ291bnQoMCkKKyAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50KGFub255bW91c1Nsb3RDb3Vu
dCkKIHsKICAgICBBU1NFUlQobV9wcm90b3R5cGUpOwogICAgIEFTU0VSVChtX3Byb3RvdHlwZS5p
c09iamVjdCgpIHx8IG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKQEAgLTI3MSw3ICsyNzIsOCBAQCB2
b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCgpCiAgICAgICAgIGlmIChzaXpl
Rm9yS2V5Q291bnQobV9vZmZzZXQgKyAxKSA+IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSkKICAgICAg
ICAgICAgIHJlaGFzaFByb3BlcnR5TWFwSGFzaFRhYmxlKHNpemVGb3JLZXlDb3VudChtX29mZnNl
dCArIDEpKTsgLy8gVGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUgZWZmaWNpZW50IGJ5IGNvbWJpbmlu
ZyB3aXRoIHRoZSBjb3B5IGFib3ZlLiAKICAgICB9Ci0KKyAgICAKKyAgICBtX3Byb3BlcnR5VGFi
bGUtPmFub255bW91c1Nsb3RDb3VudCA9IG1fYW5vbnltb3VzU2xvdENvdW50OwogICAgIGZvciAo
cHRyZGlmZl90IGkgPSBzdHJ1Y3R1cmVzLnNpemUoKSAtIDI7IGkgPj0gMDsgLS1pKSB7CiAgICAg
ICAgIHN0cnVjdHVyZSA9IHN0cnVjdHVyZXNbaV07CiAgICAgICAgIHN0cnVjdHVyZS0+bV9uYW1l
SW5QcmV2aW91cy0+cmVmKCk7CkBAIC0zNjYsNyArMzY4LDcgQEAgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb24KICAgICAgICAgcmV0dXJuIHRyYW5zaXRpb24ucmVsZWFzZSgpOwogICAgIH0KIAotICAg
IFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3RydWN0dXJlLT5tX3Byb3Rv
dHlwZSwgc3RydWN0dXJlLT50eXBlSW5mbygpKTsKKyAgICBSZWZQdHI8U3RydWN0dXJlPiB0cmFu
c2l0aW9uID0gY3JlYXRlKHN0cnVjdHVyZS0+bV9wcm90b3R5cGUsIHN0cnVjdHVyZS0+dHlwZUlu
Zm8oKSwgc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAKICAgICB0cmFuc2l0aW9u
LT5tX2NhY2hlZFByb3RvdHlwZUNoYWluID0gc3RydWN0dXJlLT5tX2NhY2hlZFByb3RvdHlwZUNo
YWluOwogICAgIHRyYW5zaXRpb24tPm1fcHJldmlvdXMgPSBzdHJ1Y3R1cmU7CkBAIC0zNzksNiAr
MzgxLDcgQEAgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFu
c2l0aW9uKFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb24KICAgICB0cmFuc2l0aW9uLT5tX3NwZWNp
ZmljRnVuY3Rpb25UaHJhc2hDb3VudCA9IHN0cnVjdHVyZS0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhy
YXNoQ291bnQ7CiAKICAgICBpZiAoc3RydWN0dXJlLT5tX3Byb3BlcnR5VGFibGUpIHsKKyAgICAg
ICAgQVNTRVJUKHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNTbG90Q291bnQg
PT0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIGlmIChzdHJ1Y3R1
cmUtPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlKQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+bV9w
cm9wZXJ0eVRhYmxlID0gc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJsZSgpOwogICAgICAgICBl
bHNlIHsKQEAgLTM5Nyw3ICs0MDAsNyBAQCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gU3RydWN0dXJl
OjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbgogICAgICAg
ICB0cmFuc2l0aW9uLT5ncm93UHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKTsKIAogICAgIHRyYW5z
aXRpb24tPm1fb2Zmc2V0ID0gb2Zmc2V0OwotCisgICAgQVNTRVJUKHN0cnVjdHVyZS0+YW5vbnlt
b3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkpOwogICAg
IHN0cnVjdHVyZS0+dGFibGUuYWRkKG1ha2VfcGFpcihwcm9wZXJ0eU5hbWUudXN0cmluZygpLnJl
cCgpLCBhdHRyaWJ1dGVzKSwgdHJhbnNpdGlvbi5nZXQoKSwgc3BlY2lmaWNWYWx1ZSk7CiAgICAg
cmV0dXJuIHRyYW5zaXRpb24ucmVsZWFzZSgpOwogfQpAQCAtNDE1LDcgKzQxOCw3IEBAIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBTdHJ1Y3R1cmU6OnJlbW92ZVByb3BlcnR5VHJhbnNpdGlvbihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwKIAogUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IFN0cnVjdHVyZTo6Y2hh
bmdlUHJvdG90eXBlVHJhbnNpdGlvbihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBwcm90
b3R5cGUpCiB7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShwcm90
b3R5cGUsIHN0cnVjdHVyZS0+dHlwZUluZm8oKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJh
bnNpdGlvbiA9IGNyZWF0ZShwcm90b3R5cGUsIHN0cnVjdHVyZS0+dHlwZUluZm8oKSwgc3RydWN0
dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5
U3RvcmFnZUNhcGFjaXR5ID0gc3RydWN0dXJlLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5Owog
ICAgIHRyYW5zaXRpb24tPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyA9IHN0cnVjdHVyZS0+
bV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzOwpAQCAtNDI3LDE0ICs0MzAsMTUgQEAgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IFN0cnVjdHVyZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwKICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJ
Zk5lY2Vzc2FyeSgpOwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVy
ZS0+Y29weVByb3BlcnR5VGFibGUoKTsKICAgICB0cmFuc2l0aW9uLT5tX2lzUGlubmVkUHJvcGVy
dHlUYWJsZSA9IHRydWU7Ci0KKyAgICAKKyAgICBBU1NFUlQoc3RydWN0dXJlLT5hbm9ueW1vdXNT
bG90Q291bnQoKSA9PSB0cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAgICAgcmV0
dXJuIHRyYW5zaXRpb24ucmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gU3Ry
dWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IElkZW50aWZpZXImIHJlcGxhY2VGdW5jdGlvbikKIHsKICAgICBBU1NFUlQoc3RydWN0
dXJlLT5tX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCA8IG1heFNwZWNpZmljRnVuY3Rpb25U
aHJhc2hDb3VudCk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShz
dHJ1Y3R1cmUtPnN0b3JlZFByb3RvdHlwZSgpLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOworICAg
IFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3RydWN0dXJlLT5zdG9yZWRQ
cm90b3R5cGUoKSwgc3RydWN0dXJlLT50eXBlSW5mbygpLCBzdHJ1Y3R1cmUtPmFub255bW91c1Ns
b3RDb3VudCgpKTsKIAogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkg
PSBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHk7CiAgICAgdHJhbnNpdGlvbi0+
bV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzID0gc3RydWN0dXJlLT5tX2hhc0dldHRlclNldHRl
clByb3BlcnRpZXM7CkBAIC00NTMsMTMgKzQ1NywxNCBAQCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
U3RydWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1
cgogICAgICAgICBib29sIHJlbW92ZWQgPSB0cmFuc2l0aW9uLT5kZXNwZWNpZnlGdW5jdGlvbihy
ZXBsYWNlRnVuY3Rpb24pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQp
OwogICAgIH0KLQorICAgIAorICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3Vu
dCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKICAgICByZXR1cm4gdHJh
bnNpdGlvbi5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1Y3R1cmU6
OmdldHRlclNldHRlclRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7Ci0gICAgUmVm
UHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShzdHJ1Y3R1cmUtPnN0b3JlZFByb3Rv
dHlwZSgpLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRy
YW5zaXRpb24gPSBjcmVhdGUoc3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSwgc3RydWN0dXJl
LT50eXBlSW5mbygpLCBzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKICAgICB0cmFu
c2l0aW9uLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ID0gc3RydWN0dXJlLT5tX3Byb3BlcnR5
U3RvcmFnZUNhcGFjaXR5OwogICAgIHRyYW5zaXRpb24tPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVy
dGllcyA9IHRyYW5zaXRpb24tPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllczsKICAgICB0cmFu
c2l0aW9uLT5tX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzID0gc3RydWN0dXJlLT5tX2hhc05v
bkVudW1lcmFibGVQcm9wZXJ0aWVzOwpAQCAtNDcwLDcgKzQ3NSw4IEBAIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgc3RydWN0dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnko
KTsKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9w
ZXJ0eVRhYmxlKCk7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0
cnVlOwotCisgICAgCisgICAgQVNTRVJUKHN0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkg
PT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkpOwogICAgIHJldHVybiB0cmFuc2l0
aW9uLnJlbGVhc2UoKTsKIH0KIApAQCAtNDc4LDcgKzQ4NCw3IEBAIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBTdHJ1Y3R1cmU6OnRvRGljdGlvbmFyeVRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIERpCiB7CiAgICAgQVNTRVJUKCFzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5
KCkpOwogICAgIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3Ry
dWN0dXJlLT5tX3Byb3RvdHlwZSwgc3RydWN0dXJlLT50eXBlSW5mbygpKTsKKyAgICBSZWZQdHI8
U3RydWN0dXJlPiB0cmFuc2l0aW9uID0gY3JlYXRlKHN0cnVjdHVyZS0+bV9wcm90b3R5cGUsIHN0
cnVjdHVyZS0+dHlwZUluZm8oKSwgc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CiAg
ICAgdHJhbnNpdGlvbi0+bV9kaWN0aW9uYXJ5S2luZCA9IGtpbmQ7CiAgICAgdHJhbnNpdGlvbi0+
bV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eTsKICAgICB0cmFuc2l0aW9uLT5tX2hhc0dldHRlclNldHRlclByb3BlcnRpZXMgPSBz
dHJ1Y3R1cmUtPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllczsKQEAgLTQ4OSw2ICs0OTUsNyBA
QCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gU3RydWN0dXJlOjp0b0RpY3Rpb25hcnlUcmFuc2l0aW9u
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBEaQogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJs
ZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoKTsKICAgICB0cmFuc2l0aW9uLT5tX2lz
UGlubmVkUHJvcGVydHlUYWJsZSA9IHRydWU7CiAgICAgCisgICAgQVNTRVJUKHN0cnVjdHVyZS0+
YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkp
OwogICAgIHJldHVybiB0cmFuc2l0aW9uLnJlbGVhc2UoKTsKIH0KIApAQCAtNTIyLDYgKzUyOSw3
IEBAIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3Ry
dWN0dXJlKEpTT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIC8vIGluIHRoZSBvcmRlciB0aGF0IHRo
ZXkgYXJlIGV4cGVjdGVkIHRvIGJlIGluLCBidXQgd2UgbmVlZCB0bwogICAgICAgICAvLyByZW9y
ZGVyIHRoZSBzdG9yYWdlLCBzbyB3ZSBoYXZlIHRvIGNvcHkgdGhlIGN1cnJlbnQgdmFsdWVzIG91
dAogICAgICAgICBWZWN0b3I8SlNWYWx1ZT4gdmFsdWVzKHByb3BlcnR5Q291bnQpOworICAgICAg
ICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNTbG90Q291bnQgPT0gbV9hbm9ueW1v
dXNTbG90Q291bnQpOwogICAgICAgICB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQgPSBtX3By
b3BlcnR5VGFibGUtPmFub255bW91c1Nsb3RDb3VudDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7IGkrKykgewogICAgICAgICAgICAgUHJvcGVydHlNYXBF
bnRyeSogZW50cnkgPSBzb3J0ZWRQcm9wZXJ0eUVudHJpZXNbaV07CkBAIC02MTIsNyArNjIwLDgg
QEAgUHJvcGVydHlNYXBIYXNoVGFibGUqIFN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGFibGUoKQog
ewogICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQogICAgICAgICByZXR1cm4gMDsKLQorICAgIAor
ICAgIEFTU0VSVChtX3Byb3BlcnR5VGFibGUtPmFub255bW91c1Nsb3RDb3VudCA9PSBtX2Fub255
bW91c1Nsb3RDb3VudCk7CiAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9IFByb3BlcnR5TWFwSGFzaFRh
YmxlOjphbGxvY2F0aW9uU2l6ZShtX3Byb3BlcnR5VGFibGUtPnNpemUpOwogICAgIFByb3BlcnR5
TWFwSGFzaFRhYmxlKiBuZXdUYWJsZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5TWFwSGFzaFRhYmxl
Kj4oZmFzdE1hbGxvYyh0YWJsZVNpemUpKTsKICAgICBtZW1jcHkobmV3VGFibGUsIG1fcHJvcGVy
dHlUYWJsZSwgdGFibGVTaXplKTsKQEAgLTc1NCw2ICs3NjMsNyBAQCBzaXplX3QgU3RydWN0dXJl
OjpwdXQoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
LCBKU0NlbAogCiAgICAgaWYgKCFtX3Byb3BlcnR5VGFibGUpCiAgICAgICAgIGNyZWF0ZVByb3Bl
cnR5TWFwSGFzaFRhYmxlKCk7CisgICAgQVNTRVJUKG1fcHJvcGVydHlUYWJsZS0+YW5vbnltb3Vz
U2xvdENvdW50ID09IG1fYW5vbnltb3VzU2xvdENvdW50KTsKIAogICAgIC8vIEZJWE1FOiBDb25z
aWRlciBhIGZhc3QgY2FzZSBmb3IgdGFibGVzIHdpdGggbm8gZGVsZXRlZCBzZW50aW5lbHMuCiAK
QEAgLTg0OCw3ICs4NTgsOCBAQCBzaXplX3QgU3RydWN0dXJlOjpyZW1vdmUoY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQogCiAgICAgaWYgKCFtX3Byb3BlcnR5VGFibGUpCiAgICAgICAg
IHJldHVybiBub3RGb3VuZDsKLQorICAgIAorICAgIEFTU0VSVChtX3Byb3BlcnR5VGFibGUtPmFu
b255bW91c1Nsb3RDb3VudCA9PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAjaWYgRFVNUF9QUk9Q
RVJUWU1BUF9TVEFUUwogICAgICsrbnVtUHJvYmVzOwogICAgICsrbnVtUmVtb3ZlczsKQEAgLTkx
Miw3ICs5MjMsOCBAQCBzaXplX3QgU3RydWN0dXJlOjpyZW1vdmUoY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQogdm9pZCBTdHJ1Y3R1cmU6Omluc2VydEludG9Qcm9wZXJ0eU1hcEhhc2hU
YWJsZShjb25zdCBQcm9wZXJ0eU1hcEVudHJ5JiBlbnRyeSkKIHsKICAgICBBU1NFUlQobV9wcm9w
ZXJ0eVRhYmxlKTsKLQorICAgIAorICAgIEFTU0VSVChtX3Byb3BlcnR5VGFibGUtPmFub255bW91
c1Nsb3RDb3VudCA9PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgdW5zaWduZWQgaSA9IGVu
dHJ5LmtleS0+ZXhpc3RpbmdIYXNoKCk7CiAgICAgdW5zaWduZWQgayA9IDA7CiAKQEAgLTk2Miw2
ICs5NzQsNyBAQCB2b2lkIFN0cnVjdHVyZTo6Y3JlYXRlUHJvcGVydHlNYXBIYXNoVGFibGUodW5z
aWduZWQgbmV3VGFibGVTaXplKQogICAgIG1fcHJvcGVydHlUYWJsZSA9IHN0YXRpY19jYXN0PFBy
b3BlcnR5TWFwSGFzaFRhYmxlKj4oZmFzdFplcm9lZE1hbGxvYyhQcm9wZXJ0eU1hcEhhc2hUYWJs
ZTo6YWxsb2NhdGlvblNpemUobmV3VGFibGVTaXplKSkpOwogICAgIG1fcHJvcGVydHlUYWJsZS0+
c2l6ZSA9IG5ld1RhYmxlU2l6ZTsKICAgICBtX3Byb3BlcnR5VGFibGUtPnNpemVNYXNrID0gbmV3
VGFibGVTaXplIC0gMTsKKyAgICBtX3Byb3BlcnR5VGFibGUtPmFub255bW91c1Nsb3RDb3VudCA9
IG1fYW5vbnltb3VzU2xvdENvdW50OwogCiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogfQpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggZjczZjliOC4uZmMyNzY5YSAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC02MiwxNSArNjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgZnJpZW5kIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTsKICAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGUoSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50KQogICAg
ICAgICB7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IChuZXcgU3RydWN0dXJl
KHByb3RvdHlwZSwgdHlwZUluZm8pKTsKLSAgICAgICAgICAgIGlmIChhbm9ueW1vdXNTbG90Q291
bnQpIHsKLSAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXAo
KTsKLSAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS0+YW5vbnlt
b3VzU2xvdENvdW50ID0gYW5vbnltb3VzU2xvdENvdW50OwotICAgICAgICAgICAgICAgIC8vIEN1
cnJlbnRseSB3ZSBkb24ndCBhbGxvdyBtb3JlIGFub255bW91cyBzbG90cyB0aGFuIGZpdCBpbiB0
aGUgaW5saW5lIGNhcGFjaXR5Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+cHJv
cGVydHlTdG9yYWdlU2l6ZSgpIDw9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHko
KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoc3RydWN0dXJl
KTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RydWN0dXJlKHByb3RvdHlwZSwg
dHlwZUluZm8sIGFub255bW91c1Nsb3RDb3VudCkpOwogICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIHZvaWQgc3RhcnRJZ25vcmluZ0xlYWtzKCk7CkBAIC0xMzQsOCArMTI2LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgYm9vbCBoYXNOb25FbnVtZXJhYmxlUHJvcGVydGllcygpIGNv
bnN0IHsgcmV0dXJuIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXM7IH0KIAotICAgICAgICBi
b29sIGhhc0Fub255bW91c1Nsb3RzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRhYmxlICYm
IG1fcHJvcGVydHlUYWJsZS0+YW5vbnltb3VzU2xvdENvdW50OyB9Ci0gICAgICAgIHVuc2lnbmVk
IGFub255bW91c1Nsb3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlUYWJsZSA/IG1f
cHJvcGVydHlUYWJsZS0+YW5vbnltb3VzU2xvdENvdW50IDogMDsgfQorICAgICAgICBib29sIGhh
c0Fub255bW91c1Nsb3RzKCkgY29uc3QgeyByZXR1cm4gISFtX2Fub255bW91c1Nsb3RDb3VudDsg
fQorICAgICAgICB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQoKSBjb25zdCB7IHJldHVybiBt
X2Fub255bW91c1Nsb3RDb3VudDsgfQogICAgICAgICAKICAgICAgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRhYmxlID8gIW1fcHJvcGVydHlUYWJsZS0+a2V5Q291
bnQgOiBtX29mZnNldCA9PSBub09mZnNldDsgfQogCkBAIC0xNDcsMTIgKzEzOSw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGdldFByb3BlcnR5TmFtZXMoUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSk7CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlKEpTVmFsdWUgcHJvdG90eXBl
LCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU3RydWN0dXJlKHByb3RvdHlwZSwgdHlwZUluZm8pKTsKLSAgICAgICAg
fQogCi0gICAgICAgIFN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8m
KTsKKyAgICAgICAgU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYs
IHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIAogICAgICAgICB0eXBlZGVm
IGVudW0geyAKICAgICAgICAgICAgIE5vbmVEaWN0aW9uYXJ5S2luZCA9IDAsCkBAIC0yMzEsNyAr
MjE5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHVuc2lnbmVkIG1fYXR0cmlidXRlc0lu
UHJldmlvdXMgOiA3OwogI2VuZGlmCiAgICAgICAgIHVuc2lnbmVkIG1fc3BlY2lmaWNGdW5jdGlv
blRocmFzaENvdW50IDogMjsKLSAgICAgICAgLy8gMTAgZnJlZSBiaXRzCisgICAgICAgIHVuc2ln
bmVkIG1fYW5vbnltb3VzU2xvdENvdW50IDogNTsKKyAgICAgICAgLy8gNSBmcmVlIGJpdHMKICAg
ICB9OwogCiAgICAgaW5saW5lIHNpemVfdCBTdHJ1Y3R1cmU6OmdldChjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTllZTJjMS4uZWY2ZWYyNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTAyLTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSlNDIGlzIGZhaWxp
bmcgdG8gcHJvcGFnYXRlIGFub255bW91cyBzbG90IGNvdW50IG9uIHNvbWUgdHJhbnNpdGlvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzIxCisK
KyAgICAgICAgQWRkIHRlc3QgY2FzZSBmb3IgbW9kaWZ5aW5nIERPTSBvYmplY3RzIHdpdGggYW5v
bnltb3VzIHN0b3JhZ2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvYW5vbnltb3VzLXNs
b3Qtd2l0aC1jaGFuZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L2Fub255bW91cy1zbG90LXdpdGgtY2hhbmdlcy5odG1sOiBBZGRlZC4KKwogMjAxMC0w
MS0yOCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L2Fub255bW91cy1zbG90LXdpdGgtY2hhbmdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYW5vbnltb3VzLXNsb3Qtd2l0aC1jaGFuZ2VzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzA0YTFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fub255bW91cy1zbG90LXdpdGgtY2hh
bmdlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCB3ZSBjbG9uZSBv
YmplY3QgaGllcmFyY2hpZXMKK1BBU1M6IGV2ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0
CitQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9mIHR5cGUgdW5kZWZpbmVkCitQQVNTOiBl
dmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgorUEFTUzogZXZlbnREYXRhIGlzIHRydWUgb2Yg
dHlwZSBib29sZWFuCitQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIHN0cmluZworUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnRE
YXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlz
IG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QK
K1BBU1M6IGV2ZW50RGF0YSBpcyAsLDEgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBp
cyBudWxsIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzoz
MTozMC4wMDBaIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBl
IHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYW5vbnlt
b3VzLXNsb3Qtd2l0aC1jaGFuZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
YW5vbnltb3VzLXNsb3Qtd2l0aC1jaGFuZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTgzZDI1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9hbm9ueW1vdXMtc2xvdC13aXRoLWNoYW5nZXMuaHRtbApAQCAtMCwwICsxLDEx
OCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IHR5cGU9ImZpbGUiIGlk
PSJmaWxlSW5wdXQiPjwvaW5wdXQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb25zb2xlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKwordmFyIG1lc3NhZ2VzID0gW107
CisKK2Z1bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKHR5cGVvZiBh
Y3R1YWwgIT09IHR5cGVvZiBleHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChhY3R1YWwgPT09IGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoKGFj
dHVhbCBpbnN0YW5jZW9mIERhdGUpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKSB7Cisg
ICAgICAgIGlmICgoYWN0dWFsIGluc3RhbmNlb2YgRGF0ZSkgJiYgKGV4cGVjdGVkIGluc3RhbmNl
b2YgRGF0ZSkpCisgICAgICAgICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkg
JiYgYWN0dWFsLmdldFRpbWUoKSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5p
c0FycmF5KGV4cGVjdGVkKSkgeworICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8
fCAhQXJyYXkuaXNBcnJheShleHBlY3RlZCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmIChhY3R1YWwubGVuZ3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgIGlmICgoaSBpbiBhY3R1YWwpIF4gKGkgaW4gZXhwZWN0ZWQp
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghZXF1YWwo
YWN0dWFsW2ldLCBleHBlY3RlZFtpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoYWN0dWFsLmNv
bnN0cnVjdG9yICE9PSBleHBlY3RlZC5jb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0dWFsKTsKKyAgICBpZiAoIWVxdWFsKGtl
eXMsIE9iamVjdC5rZXlzKGV4cGVjdGVkKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKCFlcXVh
bChhY3R1YWxba2V5c1tpXV0sIGV4cGVjdGVkW2tleXNbaV1dKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHNhZmVUb1N0
cmluZyhvKSB7CisgICAgaWYgKG8gaW5zdGFuY2VvZiBEYXRlKQorICAgICAgICByZXR1cm4gby50
b0lTT1N0cmluZygpOworICAgIGlmICh0eXBlb2YgbyAhPT0gIm9iamVjdCIgfHwgIW8pCisgICAg
ICAgIHJldHVybiBvOworICAgIHRyeSB7CisgICAgICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKG8pICsgIihkZWZhdWx0IHRvU3RyaW5nIHRocmV3ICIrZSsiKSI7CisgICAgfQorfQor
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIHZhciBhY3R1YWxW
YWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV2YWwoZXhwZWN0
ZWQpOworICAgIGlmIChlcXVhbChhY3R1YWxWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSkpCisgICAgICAg
IGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0dWFsICsgIiBpcyAiICsgc2FmZVRv
U3RyaW5nKGV4cGVjdGVkVmFsdWUpICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgYWN0dWFsVmFsdWUg
KyAiPGJyPiI7CisgICAgZWxzZQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
IiArIGFjdHVhbCArICIgaXMgIiArIGFjdHVhbFZhbHVlICsgIiBzaG91bGQgYmUgIiArIGV4cGVj
dGVkVmFsdWUgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBleHBlY3RlZFZhbHVlICsgIjxicj4iOwor
fQorCitmdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7CisgICAgZXZ0LmZvbyA9ICJiYXIiOyAvLyBh
ZGQgYSBwcm9wZXJ0eS4KKyAgICBldmVudERhdGEgPSBldnQuZGF0YTsKKyAgICBzaG91bGRCZSgi
ZXZlbnREYXRhIiwgbWVzc2FnZXMuc2hpZnQoKSk7CisKKyAgICBpZiAoc2FmZVRvU3RyaW5nKGV2
dC5kYXRhKSA9PSAnZG9uZScgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7CisKK2Z1bmN0aW9uIHRyeVBv
c3RNZXNzYWdlKG1lc3NhZ2UsIHNob3VsZFRocm93LCBleHBlY3RlZCkgeworICAgIHRyeSB7Cisg
ICAgICAgIHZhciB2YWx1ZSA9IGV2YWwobWVzc2FnZSk7CisgICAgICAgIHBvc3RNZXNzYWdlKHZh
bHVlLCAiKiIpOworICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCisgICAgICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIHRo
cm93IGJ1dCBkaWRuJ3Q8YnI+IjsKKyAgICAgICAgbWVzc2FnZXMucHVzaChleHBlY3RlZCB8fCBt
ZXNzYWdlKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgaWYgKHNob3VsZFRocm93KQorICAg
ICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6ICdwb3N0TWVzc2FnZSgiK21lc3Nh
Z2UrIiknIHRocmV3ICIgKyBlICsgIjxicj4iOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hv
dWxkIG5vdCB0aHJvdyBidXQgdGhyZXcgIiArIGUgKyAiPGJyPiI7CisgICAgfQorfQorCitkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAiVGVzdHMgdGhh
dCB3ZSBjbG9uZSBvYmplY3QgaGllcmFyY2hpZXMiOworCit0cnlQb3N0TWVzc2FnZSgnbnVsbCcp
OwordHJ5UG9zdE1lc3NhZ2UoJ3VuZGVmaW5lZCcpOwordHJ5UG9zdE1lc3NhZ2UoJzEnKTsKK3Ry
eVBvc3RNZXNzYWdlKCd0cnVlJyk7Cit0cnlQb3N0TWVzc2FnZSgnIjEiJyk7Cit0cnlQb3N0TWVz
c2FnZSgnKHt9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToxfSknKTsKK3RyeVBvc3RNZXNzYWdl
KCdbXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1sxLDIsM10nKTsKK3RyeVBvc3RNZXNzYWdlKCdbLCwx
XScpOwordHJ5UG9zdE1lc3NhZ2UoJyhmdW5jdGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Cit0
cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsKK3RyeVBvc3RNZXNzYWdl
KCciZG9uZSInKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="30358"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>