<?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>151453</bug_id>
          
          <creation_ts>2015-11-19 11:54:36 -0800</creation_ts>
          <short_desc>Caching of properties on objects that have named property getters is sometimes incorrect</short_desc>
          <delta_ts>2016-01-28 10:30:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=153599</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143364</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-19 11:54:36 -0800</bug_when>
    <thetext>Caching of properties on objects that have named property getters is sometimes incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143365</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-19 11:54:54 -0800</bug_when>
    <thetext>rdar://problem/23049343</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143366</commentid>
    <comment_count>2</comment_count>
      <attachid>265878</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-19 11:56:11 -0800</bug_when>
    <thetext>Created attachment 265878
WIP (Not working yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143369</commentid>
    <comment_count>3</comment_count>
      <attachid>265879</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-19 11:58:14 -0800</bug_when>
    <thetext>Created attachment 265879
WIP (Not working yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143427</commentid>
    <comment_count>4</comment_count>
      <attachid>265898</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-19 13:57:20 -0800</bug_when>
    <thetext>Created attachment 265898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143696</commentid>
    <comment_count>5</comment_count>
      <attachid>265898</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2015-11-20 10:41:33 -0800</bug_when>
    <thetext>Comment on attachment 265898
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=265898&amp;action=review

&gt; Source/JavaScriptCore/runtime/JSTypeInfo.h:53
&gt; +static const unsigned GetOwnPropertySlotIsImpureForPropertyAbsence = 1 &lt;&lt; 13;

One suggestion:

GetOwnPropertySlotIsImpure implies GetOwnPropertySlotIsImpureForPropertyAbsence, but does not cause it to be set. A programmer could in error check GetOwnPropertySlotIsImpureForPropertyAbsence and think this would tell them whether property access is impure for absence – but this is not sufficient (they also need to check GetOwnPropertySlotIsImpure).

As such a better approach might be to have discrete flags – where one is not a subset of another – GetOwnPropertySlotIsImpureForPropertyAbsence and GetOwnPropertySlotIsImpureForPropertyPresence. You could define GetOwnPropertySlotIsImpure to set both (GetOwnPropertySlotIsImpureForPropertyAbsence | GetOwnPropertySlotIsImpureForPropertyPresence).

Classes wanting to adopt both behaviors could still use the GetOwnPropertySlotIsImpure name, but code wanting to check could safely either check …ForPropertyAbsence or …ForPropertyPresence.

&gt; LayoutTests/fast/dom/NamedNodeMap-named-getter-caching.html:16
&gt; +        lastIterationHasRightValue = true;

This loop now only detects a bad value on the last iteration, no longer checks values on the first 999 interactions are as expected too. Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143724</commentid>
    <comment_count>6</comment_count>
      <attachid>265977</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-11-20 11:59:04 -0800</bug_when>
    <thetext>Created attachment 265977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143753</commentid>
    <comment_count>7</comment_count>
      <attachid>265977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 12:45:18 -0800</bug_when>
    <thetext>Comment on attachment 265977
Patch

Clearing flags on attachment: 265977

Committed r192693: &lt;http://trac.webkit.org/changeset/192693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143754</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 12:45:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265878</attachid>
            <date>2015-11-19 11:56:11 -0800</date>
            <delta_ts>2015-11-19 11:58:14 -0800</delta_ts>
            <desc>WIP (Not working yet)</desc>
            <filename>151453_wip.patch</filename>
            <type>text/plain</type>
            <size>10095</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3Rh
dHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVz
LmNwcAppbmRleCBkNGVhM2JhLi4zMzY2M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29tcGxleEdldFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwCkBAIC0zNCw3ICszNCw3IEBAIENv
bXBsZXhHZXRTdGF0dXMgQ29tcGxleEdldFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICBTdHJ1Y3R1
cmUqIGhlYWRTdHJ1Y3R1cmUsIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiBjb25k
aXRpb25TZXQsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhhdCB3ZSBuZXZlciBzZWUgYSBzdHJ1Y3R1cmUgdGhhdAotICAgIC8vIGhh
c0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpIGJ1dCBmb3Igd2hpY2ggd2UgZG9uJ3QKKyAgICAv
LyBnZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpIGJ1dCBmb3Igd2hpY2ggd2UgZG9uJ3QKICAg
ICAvLyBuZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKS4gV2UncmUgbm90IGF0IGEg
cG9pbnQgd2hlcmUgd2UgY2FuIGRvCiAgICAgLy8gdGhhdCwgeWV0LgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE4MTAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCmluZGV4IDhhYWI0
ZWEuLmYzMGNiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
cm9wZXJ0eUNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1Byb3BlcnR5Q29uZGl0aW9uLmNwcApAQCAtMjEzLDEwICsyMTMsMTMgQEAgYm9vbCBQcm9wZXJ0
eUNvbmRpdGlvbjo6aXNTdGlsbFZhbGlkKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCog
YmFzZSkgY29uc3QKICAgICAvLyAic2hhZG93IiBhbiBleGlzdGluZyBKUyBwcm9wZXJ0eSBvbiB0
aGUgc2FtZSBvYmplY3QuIEhlbmNlIGl0IGFmZmVjdHMgYm90aCBwcmVzZW5jZSBhbmQKICAgICAv
LyBhYnNlbmNlLiBJdCBkb2Vzbid0IGFmZmVjdCBBYnNlbmNlT2ZTZXR0ZXIgYmVjYXVzZSBpbXB1
cmUgcHJvcGVydGllcyBhcmVuJ3QgZXZlciBzZXR0ZXJzLgogICAgIHN3aXRjaCAobV9raW5kKSB7
Ci0gICAgY2FzZSBQcmVzZW5jZToKICAgICBjYXNlIEFic2VuY2U6CisgICAgICAgIGlmIChzdHJ1
Y3R1cmUtPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSB8fCBzdHJ1Y3R1
cmUtPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQcmVzZW5jZToKICAgICBjYXNlIEVxdWl2YWxlbmNlOgotICAgICAgICBpZiAoc3RydWN0dXJl
LT50eXBlSW5mbygpLmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpKQorICAgICAgICBpZiAo
c3RydWN0dXJlLT50eXBlSW5mbygpLmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IDI1Y2E4YTEuLjJlOTE0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CkBAIC0yNjcsNyArMjY3LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogICAgIHR5
cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNJbXB1cmVHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdDsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUlu
Zm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAppbmRleCAy
Nzg2M2FiLi5jYTExMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
SW5mby5oCkBAIC00Nyw5ICs0NywxMCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
SXNJbW1vcnRhbCA9IDEgPDwgNzsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXMgPSAxIDw8IDg7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgUHJvaGliaXRz
UHJvcGVydHlDYWNoaW5nID0gMSA8PCA5Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc0ltcHVy
ZUdldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMTA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgR2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgPSAxIDw8IDEwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVk
IE5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cyA9IDEgPDwgMTE7CiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgSXNFbnZpcm9ubWVudFJlY29yZCA9IDEgPDwgMTI7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgPSAx
IDw8IDEzOwogCiBjbGFzcyBUeXBlSW5mbyB7CiBwdWJsaWM6CkBAIC05MSw3ICs5Miw4IEBAIHB1
YmxpYzoKICAgICBib29sIHN0cnVjdHVyZUlzSW1tb3J0YWwoKSBjb25zdCB7IHJldHVybiBpc1Nl
dE9uRmxhZ3MxKFN0cnVjdHVyZUlzSW1tb3J0YWwpOyB9CiAgICAgYm9vbCBvdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzKTsgfQogICAgIGJvb2wgcHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkgY29u
c3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcpOyB9Ci0g
ICAgYm9vbCBoYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBpc1Nl
dE9uRmxhZ3MyKEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCk7IH0KKyAgICBib29sIGdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSk7IH0KKyAgICBib29sIGdldE93blByb3BlcnR5U2xvdElz
SW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihH
ZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSk7IH0KICAgICBib29s
IG5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpIGNvbnN0IHsgcmV0dXJuIGlzU2V0
T25GbGFnczIoTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzKTsgfQogICAgIGJvb2wg
aXNFbnZpcm9ubWVudFJlY29yZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoSXNFbnZp
cm9ubWVudFJlY29yZCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuaAppbmRleCBkNjAyOWUwLi4yMTgxY2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaApAQCAtMjA0LDEzICsyMDQsMTMgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIGRpY3Rpb25hcnlLaW5kKCkgIT0gVW5jYWNoZWREaWN0aW9uYXJ5S2luZAog
ICAgICAgICAgICAgJiYgIXR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkKLSAg
ICAgICAgICAgICYmICEodHlwZUluZm8oKS5oYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSAm
JiAhdHlwZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSk7CisgICAg
ICAgICAgICAmJiAhKHR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSAmJiAh
dHlwZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSk7CiAgICAgfQog
ICAgIAogICAgIGJvb2wgbmVlZEltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpCiAgICAgewogICAg
ICAgICByZXR1cm4gcHJvcGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpCi0gICAgICAgICAgICAm
JiB0eXBlSW5mbygpLmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpCisgICAgICAgICAgICAm
JiB0eXBlSW5mbygpLmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKCkKICAgICAgICAgICAgICYm
IHR5cGVJbmZvKCkubmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzKCk7CiAgICAgfQog
CkBAIC0yMTgsNyArMjE4LDcgQEAgcHVibGljOgogICAgIC8vIERGRyBmcm9tIGlubGluaW5nIHBy
b3BlcnR5IGFjY2Vzc2VzIHNpbmNlIHN0cnVjdHVyZXMgZG9uJ3QgdHJhbnNpdGlvbiB3aGVuIGEg
bmV3IGltcHVyZSBwcm9wZXJ0eSBhcHBlYXJzLgogICAgIGJvb2wgdGFrZXNTbG93UGF0aEluREZH
Rm9ySW1wdXJlUHJvcGVydHkoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHR5cGVJbmZvKCkuaGFz
SW1wdXJlR2V0T3duUHJvcGVydHlTbG90KCk7CisgICAgICAgIHJldHVybiB0eXBlSW5mbygpLmdl
dE93blByb3BlcnR5U2xvdElzSW1wdXJlKCk7CiAgICAgfQogICAgIAogICAgIC8vIFR5cGUgYWNj
ZXNzb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCBiNmU4YjJmLi40NzNlNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTgyLDIwICs5ODIs
MjMgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb24gPSBH
ZXROYW1lZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZhY2UpOwogICAgIG15ICRpbmRleGVkR2V0dGVy
RnVuY3Rpb24gPSBHZXRJbmRleGVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CiAKLSAgICBt
eSAkaGFzSW1wdXJlTmFtZWRHZXR0ZXIgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiT3ZlcnJpZGVCdWlsdGlucyJ9Ci0gICAgICAgICYmICgkbmFtZWRHZXR0ZXJGdW5jdGlvbiB8
fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSk7
CisgICAgbXkgJGhhc05hbWVkR2V0dGVyID0gJG5hbWVkR2V0dGVyRnVuY3Rpb24KKyAgICAgICAg
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn07
CiAKICAgICBteSAkaGFzQ29tcGxleEdldHRlciA9CiAgICAgICAgICRpbmRleGVkR2V0dGVyRnVu
Y3Rpb24KICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3Vz
dG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciJ9CiAgICAgICAgIHx8ICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifQotICAg
ICAgICB8fCAkbmFtZWRHZXR0ZXJGdW5jdGlvbgotICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifTsKKyAgICAgICAgfHwgJGhhc05h
bWVkR2V0dGVyOwogICAgIAogICAgIG15ICRoYXNHZXR0ZXIgPSBJbnN0YW5jZU92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCgkaW50ZXJmYWNlKTsKIAotICAgIGlmICgkaGFzSW1wdXJlTmFtZWRH
ZXR0ZXIpIHsKLSAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Okhhc0ltcHVyZUdldE93blBy
b3BlcnR5U2xvdCJ9ID0gMTsKKyAgICBpZiAoJGhhc05hbWVkR2V0dGVyKSB7CisgICAgICAgIGlm
ICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3ZlcnJpZGVCdWlsdGlucyJ9KSB7
CisgICAgICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJ
bXB1cmUifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkc3RydWN0dXJlRmxh
Z3N7IkpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UifSA9
IDE7CisgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMifSkgewogICAgICAgICAk
c3RydWN0dXJlRmxhZ3N7IkpTQzo6TmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzIn0g
PSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCA5MGZhYmVjLi4yNGU2
YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtNTMsNyArNTMsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJv
cGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RDdXN0
b21OYW1lZEdldHRlcj4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggYWQxNGMyMy4u
MmQ4MWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlNDOjpTbG90VmlzaXRv
ciYpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3Ro
SXNOb3RaZXJvIHwgSlNDOjpNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpT
dHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFdmVudFRhcmdldChKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RFdmVudFRhcmdldD4mJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCmluZGV4IGY3ZmMzZGQuLmZkNjI1MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1v
ZGUgPSBKU0M6OkVudW1lcmF0aW9uTW9kZSgpKTsKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpIYXNJbXB1cmVH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMoSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0T3ZlcnJpZGVCdWlsdGlucz4m
Jik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265879</attachid>
            <date>2015-11-19 11:58:14 -0800</date>
            <delta_ts>2015-11-19 13:57:18 -0800</delta_ts>
            <desc>WIP (Not working yet)</desc>
            <filename>151453_wip.patch</filename>
            <type>text/plain</type>
            <size>11621</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0
ZXItY2FjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9OYW1lZE5vZGVN
YXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmMyNzk3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9OYW1lZE5vZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3RzIGNhY2hpbmcgb2YgcmVzdWx0IG9mIE5hbWVkTm9kZU1hcCBu
YW1lZCBwcm9wZXJ0eSBnZXR0ZXIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgYm9keUF0dHJpYnV0ZXMuY2xhc3MgaXMgdW5kZWZpbmVkCitQQVNTIGxhc3RJdGVyYXRpb25I
YXNSaWdodFZhbHVlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9OYW1lZE5v
ZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05h
bWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM4ZmQ2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9OYW1lZE5vZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmcuaHRtbApAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgY2FjaGluZyBvZiByZXN1bHQgb2YgTmFtZWROb2RlTWFwIG5hbWVkIHByb3Bl
cnR5IGdldHRlciIpOworCit2YXIgYm9keUF0dHJpYnV0ZXMgPSBkb2N1bWVudC5ib2R5LmF0dHJp
YnV0ZXM7CitzaG91bGRCZSgiYm9keUF0dHJpYnV0ZXMuY2xhc3MiLCAidW5kZWZpbmVkIik7CisK
K3ZhciBsYXN0SXRlcmF0aW9uSGFzUmlnaHRWYWx1ZSA9IGZhbHNlOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwOyBpKyspIHsKKyAgICBpZiAoaSA9PSA5OTkpCisgICAgICAgIGRvY3VtZW50LmJv
ZHkuc2V0QXR0cmlidXRlKCdjbGFzcycsICd0ZXN0Jyk7CisgICAgaWYgKGJvZHlBdHRyaWJ1dGVz
LmNsYXNzICE9IHVuZGVmaW5lZCAmJiBpID09IDk5OSkKKyAgICAgICAgbGFzdEl0ZXJhdGlvbkhh
c1JpZ2h0VmFsdWUgPSB0cnVlOworfQorCitzaG91bGRCZVRydWUoImxhc3RJdGVyYXRpb25IYXNS
aWdodFZhbHVlIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwCmluZGV4IGQ0
ZWEzYmEuLjMzNjYzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db21wbGV4R2V0U3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29tcGxleEdldFN0YXR1cy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgQ29tcGxleEdldFN0YXR1
cyBDb21wbGV4R2V0U3RhdHVzOjpjb21wdXRlRm9yKAogICAgIFN0cnVjdHVyZSogaGVhZFN0cnVj
dHVyZSwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNldCwgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFzc2VydCB0
aGF0IHdlIG5ldmVyIHNlZSBhIHN0cnVjdHVyZSB0aGF0Ci0gICAgLy8gaGFzSW1wdXJlR2V0T3du
UHJvcGVydHlTbG90KCkgYnV0IGZvciB3aGljaCB3ZSBkb24ndAorICAgIC8vIGdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlKCkgYnV0IGZvciB3aGljaCB3ZSBkb24ndAogICAgIC8vIG5ld0ltcHVy
ZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpLiBXZSdyZSBub3QgYXQgYSBwb2ludCB3aGVyZSB3
ZSBjYW4gZG8KICAgICAvLyB0aGF0LCB5ZXQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTgxMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAKaW5kZXggOGFhYjRlYS4uZjMwY2JmOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25k
aXRpb24uY3BwCkBAIC0yMTMsMTAgKzIxMywxMyBAQCBib29sIFByb3BlcnR5Q29uZGl0aW9uOjpp
c1N0aWxsVmFsaWQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBiYXNlKSBjb25zdAog
ICAgIC8vICJzaGFkb3ciIGFuIGV4aXN0aW5nIEpTIHByb3BlcnR5IG9uIHRoZSBzYW1lIG9iamVj
dC4gSGVuY2UgaXQgYWZmZWN0cyBib3RoIHByZXNlbmNlIGFuZAogICAgIC8vIGFic2VuY2UuIEl0
IGRvZXNuJ3QgYWZmZWN0IEFic2VuY2VPZlNldHRlciBiZWNhdXNlIGltcHVyZSBwcm9wZXJ0aWVz
IGFyZW4ndCBldmVyIHNldHRlcnMuCiAgICAgc3dpdGNoIChtX2tpbmQpIHsKLSAgICBjYXNlIFBy
ZXNlbmNlOgogICAgIGNhc2UgQWJzZW5jZToKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUlu
Zm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpIHx8IHN0cnVjdHVyZS0+dHlwZUluZm8o
KS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFByZXNlbmNlOgog
ICAgIGNhc2UgRXF1aXZhbGVuY2U6Ci0gICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCku
aGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90KCkpCisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5
cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
aW5kZXggMjVjYThhMS4uMmU5MTRhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI2Nyw3ICsy
NjcsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBKU05vbkZp
bmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc0ltcHVyZUdldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
OwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCmluZGV4IDI3ODYzYWIuLmNhMTEy
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTQ3
LDkgKzQ3LDEwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0g
MSA8PCA3OwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyA9IDEgPDwgODsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hp
bmcgPSAxIDw8IDk7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgSGFzSW1wdXJlR2V0T3duUHJvcGVy
dHlTbG90ID0gMSA8PCAxMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZSA9IDEgPDwgMTA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgTmV3SW1wdXJlUHJv
cGVydHlGaXJlc1dhdGNocG9pbnRzID0gMSA8PCAxMTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJ
c0Vudmlyb25tZW50UmVjb3JkID0gMSA8PCAxMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSA9IDEgPDwgMTM7CiAKIGNs
YXNzIFR5cGVJbmZvIHsKIHB1YmxpYzoKQEAgLTkxLDcgKzkyLDggQEAgcHVibGljOgogICAgIGJv
b2wgc3RydWN0dXJlSXNJbW1vcnRhbCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczEoU3Ry
dWN0dXJlSXNJbW1vcnRhbCk7IH0KICAgICBib29sIG92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMo
KSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMp
OyB9CiAgICAgYm9vbCBwcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSBjb25zdCB7IHJldHVybiBp
c1NldE9uRmxhZ3MyKFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyk7IH0KLSAgICBib29sIGhhc0lt
cHVyZUdldE93blByb3BlcnR5U2xvdCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoSGFz
SW1wdXJlR2V0T3duUHJvcGVydHlTbG90KTsgfQorICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmUoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKEdldE93blByb3BlcnR5U2xv
dElzSW1wdXJlKTsgfQorICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKEdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlKTsgfQogICAgIGJvb2wgbmV3SW1wdXJlUHJv
cGVydHlGaXJlc1dhdGNocG9pbnRzKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihOZXdJ
bXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMpOyB9CiAgICAgYm9vbCBpc0Vudmlyb25tZW50
UmVjb3JkKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihJc0Vudmlyb25tZW50UmVjb3Jk
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGQ2
MDI5ZTAuLjIxODFjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5oCkBAIC0yMDQsMTMgKzIwNCwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
ZGljdGlvbmFyeUtpbmQoKSAhPSBVbmNhY2hlZERpY3Rpb25hcnlLaW5kCiAgICAgICAgICAgICAm
JiAhdHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKQotICAgICAgICAgICAgJiYg
ISh0eXBlSW5mbygpLmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpICYmICF0eXBlSW5mbygp
Lm5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpKTsKKyAgICAgICAgICAgICYmICEo
dHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpICYmICF0eXBlSW5mbygpLm5l
d0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpKTsKICAgICB9CiAgICAgCiAgICAgYm9v
bCBuZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50KCkKICAgICB7CiAgICAgICAgIHJldHVybiBw
cm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkKLSAgICAgICAgICAgICYmIHR5cGVJbmZvKCku
aGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90KCkKKyAgICAgICAgICAgICYmIHR5cGVJbmZvKCku
Z2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKQogICAgICAgICAgICAgJiYgdHlwZUluZm8oKS5u
ZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKTsKICAgICB9CiAKQEAgLTIxOCw3ICsy
MTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gREZHIGZyb20gaW5saW5pbmcgcHJvcGVydHkgYWNjZXNz
ZXMgc2luY2Ugc3RydWN0dXJlcyBkb24ndCB0cmFuc2l0aW9uIHdoZW4gYSBuZXcgaW1wdXJlIHBy
b3BlcnR5IGFwcGVhcnMuCiAgICAgYm9vbCB0YWtlc1Nsb3dQYXRoSW5ERkdGb3JJbXB1cmVQcm9w
ZXJ0eSgpCiAgICAgewotICAgICAgICByZXR1cm4gdHlwZUluZm8oKS5oYXNJbXB1cmVHZXRPd25Q
cm9wZXJ0eVNsb3QoKTsKKyAgICAgICAgcmV0dXJuIHR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlT
bG90SXNJbXB1cmUoKTsKICAgICB9CiAgICAgCiAgICAgLy8gVHlwZSBhY2Nlc3NvcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IGI2ZThiMmYuLjQ3M2U1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC05ODIsMjAgKzk4MiwyMyBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbiA9IEdldE5hbWVkR2V0dGVy
RnVuY3Rpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbiA9IEdl
dEluZGV4ZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKIAotICAgIG15ICRoYXNJbXB1cmVO
YW1lZEdldHRlciA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPdmVycmlkZUJ1
aWx0aW5zIn0KLSAgICAgICAgJiYgKCRuYW1lZEdldHRlckZ1bmN0aW9uIHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9KTsKKyAgICBteSAkaGFz
TmFtZWRHZXR0ZXIgPSAkbmFtZWRHZXR0ZXJGdW5jdGlvbgorICAgICAgICB8fCAkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifTsKIAogICAgIG15ICRo
YXNDb21wbGV4R2V0dGVyID0KICAgICAgICAgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbgogICAgICAg
ICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3RBbmREZXNjcmlwdG9yIn0KICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9Ci0gICAgICAgIHx8ICRuYW1l
ZEdldHRlckZ1bmN0aW9uCi0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21OYW1lZEdldHRlciJ9OworICAgICAgICB8fCAkaGFzTmFtZWRHZXR0ZXI7CiAg
ICAgCiAgICAgbXkgJGhhc0dldHRlciA9IEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90KCRpbnRlcmZhY2UpOwogCi0gICAgaWYgKCRoYXNJbXB1cmVOYW1lZEdldHRlcikgewotICAg
ICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90In0g
PSAxOworICAgIGlmICgkaGFzTmFtZWRHZXR0ZXIpIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPdmVycmlkZUJ1aWx0aW5zIn0pIHsKKyAgICAgICAgICAg
ICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSJ9ID0gMTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSJ9ID0gMTsKKyAgICAgICAg
fQogICAgIH0KICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5ld0lt
cHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cyJ9KSB7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFn
c3siSlNDOjpOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMifSA9IDE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCmluZGV4IDkwZmFiZWMuLjI0ZTZjNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVy
PiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAppbmRleCBhZDE0YzIzLi4yZDgxZjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVy
Y2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBK
U0M6Ok1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6
Ok1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdz
OwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmgKaW5kZXggZjdmYzNkZC4uZmQ2MjUzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcnJpZGVCdWlsdGlucy5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSA9IEpTQzo6RW51
bWVyYXRpb25Nb2RlKCkpOwogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3Io
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Okhhc0ltcHVyZUdldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxl
bmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBw
cm90ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyhKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVycmlkZUJ1aWx0aW5zPiYmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265898</attachid>
            <date>2015-11-19 13:57:20 -0800</date>
            <delta_ts>2015-11-20 11:59:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151453-20151119135709.patch</filename>
            <type>text/plain</type>
            <size>18550</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGIzZGUyNmFlYzQ4YTNhMDgxNWRhNjE5ZWRhNzkxYWQzMDRkN2JkLi41ZjNjNmUxNTEyOGNhNWJm
MTA3YzFjYWYzY2VkZTRiYmQ4MjE5NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIENhY2hpbmcgb2YgcHJvcGVydGllcyBvbiBvYmplY3RzIHRoYXQgaGF2ZSBuYW1l
ZCBwcm9wZXJ0eSBnZXR0ZXJzIGlzIHNvbWV0aW1lcyBpbmNvcnJlY3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQ1MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjMwNDkzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG5ldyBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5
QWJzZW5jZSBUeXBlSW5mbyBmbGFnIHRvIGJlCisgICAgICAgIHVzZWQgYnkgb2JqZWN0cyB0aGF0
IGhhdmUgYSBub24tJ092ZXJyaWRlQnVpbHRpbnMnIG5hbWVkIHByb3BlcnR5IGdldHRlci4KKyAg
ICAgICAgVGhpcyBmbGFnIHByZXZlbnRzIGNhY2hpbmcgb2YgcHJvcGVydGllcyB0aGF0IGFyZSBt
aXNzaW5nIGFzIGEgbmFtZWQKKyAgICAgICAgcHJvcGVydHkgd2l0aCB0aGlzIG5hbWUgbWF5IGxh
dGVyIGJlY29tZSBhdmFpbGFibGUuCisKKyAgICAgICAgT2JqZWN0cyB3aXRoIGFuICdPdmVycmlk
ZUJ1aWx0aW5zJyBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIgd2lsbCBrZWVwIHVzaW5nCisgICAgICAg
IHRoZSBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSBUeXBlSW5mbyBmbGFnLCB3aGljaCBwcmV2
ZW50cyBhbGwgcHJvcGVydHkKKyAgICAgICAgY2FjaGluZyBzaW5jZSBuYW1lZCBwcm9wZXJ0aWVz
IGNhbiBvdmVycmlkZSBvd24gcHJvcGVydGllcyBvciBwcm9wZXJ0aWVzCisgICAgICAgIG9uIHRo
ZSBwcm90b3R5cGUuCisKKyAgICAgICAgKiBieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q29tcGxleEdldFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgICog
Ynl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eUNv
bmRpdGlvbjo6aXNTdGlsbFZhbGlkKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAg
ICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeVJlcGF0Y2hJbik6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8uaDoKKyAg
ICAgICAgKEpTQzo6VHlwZUluZm86OmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKToKKyAgICAg
ICAgKEpTQzo6VHlwZUluZm86OmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlB
YnNlbmNlKToKKyAgICAgICAgKEpTQzo6VHlwZUluZm86OnByb2hpYml0c1Byb3BlcnR5Q2FjaGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKwogMjAxNS0xMS0x
OSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgQ0xPT1AgYnVpbGRmaXggYWZ0ZXIgcjE5MjYyNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNTJiYWYz
NTBjOTAzNjliNTE1ZDVkOTRiZDRkNjNiNTM0MjY3NjQ1Li43MWQ2NzI1MDhjN2RlYmM3YjdlMjMx
ZDU1ZWFiNzZmZGJhNmM0ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTUtMTEt
MTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoaW5nIG9m
IHByb3BlcnRpZXMgb24gb2JqZWN0cyB0aGF0IGhhdmUgbmFtZWQgcHJvcGVydHkgZ2V0dGVycyBp
cyBzb21ldGltZXMgaW5jb3JyZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTE0NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMDQ5MzQzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIxODg1
OTAsIHdlIGRyb3BwZWQgdGhlIEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgVHlwZUlu
Zm8gZmxhZyBmb3IKKyAgICAgICAgaW50ZXJmYWNlcyB0aGF0IGhhdmUgYSBub24tJ092ZXJyaWRl
QnVpbHRpbnMnIG5hbWVkIHByb3BlcnR5IGdldHRlciBpbiBvcmRlcgorICAgICAgICB0byBhbGxv
dyBjYWNoaW5nIG9mIHByb3BlcnRpZXMgcmV0dXJucyBieSBHZXRPd25Qcm9wZXJ0eVNsb3QoKS4g
V2UgYXNzdW1lZAorICAgICAgICB0aGlzIHdhcyBzYWZlIGFzIGl0IHdhcyBubyBsb25nZXIgcG9z
c2libGUgZm9yIG5hbWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUKKyAgICAgICAgb3duIHByb3Bl
cnRpZXMgKG9yIHByb3BlcnRpZXMgb24gdGhlIHByb3RvdHlwZSkuCisKKyAgICAgICAgSG93ZXZl
ciwgdGhlcmUgaXMgYW4gaXNzdWUgd2hlbiB3ZSBjYWNoZSB0aGUgbm9uLWV4aXN0ZW5jZSBvZiBh
IHByb3BlcnR5LgorICAgICAgICBFdmVuIHRob3VnaCBhdCBvbmUgcG9pbnQgdGhlIHByb3BlcnR5
IGRpZCBub3QgZXhpc3QsIGEgbmFtZWQgcHJvcGVydHkgd2l0aAorICAgICAgICB0aGlzIG5hbWUg
bWF5IGxhdGVyIGJlY29tZSBhdmFpbGFibGUuIEluIHN1Y2ggY2FzZSwgY2FjaGluZyB3b3VsZCBj
YXVzZSB1cworICAgICAgICB0byB3cm9uZ2x5IHJlcG9ydCBhIHByb3BlcnR5IGFzIG1pc3Npbmcu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgcHJvYmxlbSwgdGhpcyBwYXRjaCBpbnRyb2R1Y2Vz
IGEgbmV3CisgICAgICAgIEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNl
bmNlIFR5cGVJbmZvIGZsYWcgYW5kIHVzZXMgaXQgZm9yCisgICAgICAgIGludGVyZmFjZXMgdGhh
dCBoYXZlIGEgbm9uLSdPdmVycmlkZUJ1aWx0aW5zJyBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIuIFRo
aXMKKyAgICAgICAgd2lsbCBjYXVzZSB1cyB0byBub3QgY2FjaGUgdGhlIGZhY3QgdGhhdCBhIHBy
b3BlcnR5IGlzIG1pc3Npbmcgb24gc3VjaAorICAgICAgICBvYmplY3RzLCB3aGlsZSBtYWludGFp
bmluZyB0aGUgcGVyZm9ybWFuY2Ugd2luIGZyb20gcjE4ODU5MCBpbiB0aGUgY29tbW9uCisgICAg
ICAgIGNhc2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vTmFtZWROb2RlTWFwLW5hbWVkLWdl
dHRlci1jYWNoaW5nLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmg6CisKIDIwMTUt
MTEtMTkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
RUZMXSBGaXggLVdpbmNvbnNpc3RlbnQtbWlzc2luZy1vdmVycmlkZSBjbGFuZyB3YXJuaW5ncwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0
dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMu
Y3BwCmluZGV4IGQ0ZWEzYmFhOGM5YjQ5ZjJlNGM2ZTAwZjdkZGY1NDA0OWNiNTM5YzAuLjMzNjYz
ZDA1N2RiN2YzMmIzYTdiOGU0NDc4MjMyYmJkMWNlNGI3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29tcGxleEdldFN0YXR1cy5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAgQ29tcGxleEdldFN0YXR1cyBDb21wbGV4R2V0U3RhdHVzOjpjb21wdXRlRm9yKAogICAg
IFN0cnVjdHVyZSogaGVhZFN0cnVjdHVyZSwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQmIGNvbmRpdGlvblNldCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFzc2VydCB0aGF0IHdlIG5ldmVyIHNlZSBhIHN0cnVjdHVyZSB0aGF0Ci0g
ICAgLy8gaGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90KCkgYnV0IGZvciB3aGljaCB3ZSBkb24n
dAorICAgIC8vIGdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKCkgYnV0IGZvciB3aGljaCB3ZSBk
b24ndAogICAgIC8vIG5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpLiBXZSdyZSBu
b3QgYXQgYSBwb2ludCB3aGVyZSB3ZSBjYW4gZG8KICAgICAvLyB0aGF0LCB5ZXQuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTgxMApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAKaW5k
ZXggOGFhYjRlYWVjNWM1NmRjODJhM2UxNjVmMzkyMTk3NThmNDY0MjExMC4uZjMwY2JmOTIyYWZh
MmVkYTNhZWQ5YTEyYTZhYWRkODE5ZDYxNGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCkBAIC0yMTMsMTAgKzIxMywx
MyBAQCBib29sIFByb3BlcnR5Q29uZGl0aW9uOjppc1N0aWxsVmFsaWQoU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTT2JqZWN0KiBiYXNlKSBjb25zdAogICAgIC8vICJzaGFkb3ciIGFuIGV4aXN0aW5n
IEpTIHByb3BlcnR5IG9uIHRoZSBzYW1lIG9iamVjdC4gSGVuY2UgaXQgYWZmZWN0cyBib3RoIHBy
ZXNlbmNlIGFuZAogICAgIC8vIGFic2VuY2UuIEl0IGRvZXNuJ3QgYWZmZWN0IEFic2VuY2VPZlNl
dHRlciBiZWNhdXNlIGltcHVyZSBwcm9wZXJ0aWVzIGFyZW4ndCBldmVyIHNldHRlcnMuCiAgICAg
c3dpdGNoIChtX2tpbmQpIHsKLSAgICBjYXNlIFByZXNlbmNlOgogICAgIGNhc2UgQWJzZW5jZToK
KyAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0lt
cHVyZSgpIHx8IHN0cnVjdHVyZS0+dHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFByZXNlbmNlOgogICAgIGNhc2UgRXF1aXZhbGVuY2U6Ci0gICAg
ICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuaGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90
KCkpCisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IDIzY2E2
ODBjOTgwZmVhZGE3NzU1ZmVkNTY5NjM3M2QwODZkNjUwZGEuLmMxMWNhYzM5MTkwYzIwZjExN2Fh
MTliYTA3Nzc3ZGRhNGNkZWEzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNw
cApAQCAtMjgzLDYgKzI4Myw5IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdl
dEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAgICAgICAg
ICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIHx8
IHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVV
cE9uQ2FjaGU7CiAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzbG90LmlzVW5zZXQoKSAm
JiBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKKwog
ICAgICAgICAgICAgaWYgKHNsb3QuaXNVbnNldCgpKSB7CiAgICAgICAgICAgICAgICAgY29uZGl0
aW9uU2V0ID0gZ2VuZXJhdGVDb25kaXRpb25zRm9yUHJvcGVydHlNaXNzKAogICAgICAgICAgICAg
ICAgICAgICB2bSwgY29kZUJsb2NrLCBleGVjLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZS5pbXBs
KCkpOwpAQCAtNDg1LDcgKzQ4OCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlSZXBh
dGNoSW4oCiAgICAgaWYgKGZvcmNlSUNGYWlsdXJlKGV4ZWMpKQogICAgICAgICByZXR1cm4gR2l2
ZVVwT25DYWNoZTsKICAgICAKLSAgICBpZiAoIWJhc2UtPnN0cnVjdHVyZSgpLT5wcm9wZXJ0eUFj
Y2Vzc2VzQXJlQ2FjaGVhYmxlKCkpCisgICAgaWYgKCFiYXNlLT5zdHJ1Y3R1cmUoKS0+cHJvcGVy
dHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpIHx8ICghd2FzRm91bmQgJiYgIWJhc2UtPnN0cnVjdHVy
ZSgpLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlRm9yQWJzZW5jZSgpKSkKICAgICAgICAg
cmV0dXJuIEdpdmVVcE9uQ2FjaGU7CiAgICAgCiAgICAgaWYgKHdhc0ZvdW5kKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCmluZGV4IDI1Y2E4YTExY2YwODliM2FkYTU3YTc0YzIxZjNjMTgxYWI4OTFkM2Mu
LjJlOTE0YWI3NDRmZWM2YzFlOGQ0YzkzMzI5ZTk5MGQxZTk2M2QwNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCkBAIC0yNjcsNyArMjY3LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwog
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNJbXB1
cmVHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsK
KyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6Ok92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdDsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZUluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaApp
bmRleCAyNzg2M2FiZjJlOThmODI1MjAzOWM1NjY5NzQ2MzkwNGU0YzRiNmJjLi5jYTExMjBjYmU1
Y2Y0NWRhZjg1MTA5ZmUzMDEzYWI5MzU1ZWRjM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlSW5mby5oCkBAIC00Nyw5ICs0NywxMCBAQCBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlSXNJbW1vcnRhbCA9IDEgPDwgNzsKIAogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgPSAxIDw8IDg7CiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nID0gMSA8PCA5Owotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMTA7CitzdGF0aWMgY29u
c3QgdW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgPSAxIDw8IDEwOwogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIE5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cyA9IDEgPDwg
MTE7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSXNFbnZpcm9ubWVudFJlY29yZCA9IDEgPDwgMTI7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UgPSAxIDw8IDEzOwogCiBjbGFzcyBUeXBlSW5mbyB7CiBwdWJsaWM6CkBAIC05
MSw3ICs5Miw4IEBAIHB1YmxpYzoKICAgICBib29sIHN0cnVjdHVyZUlzSW1tb3J0YWwoKSBjb25z
dCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKFN0cnVjdHVyZUlzSW1tb3J0YWwpOyB9CiAgICAgYm9v
bCBvdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdz
MihPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKTsgfQogICAgIGJvb2wgcHJvaGliaXRzUHJvcGVy
dHlDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihQcm9oaWJpdHNQcm9wZXJ0
eUNhY2hpbmcpOyB9Ci0gICAgYm9vbCBoYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25z
dCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCk7IH0K
KyAgICBib29sIGdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKCkgY29uc3QgeyByZXR1cm4gaXNT
ZXRPbkZsYWdzMihHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSk7IH0KKyAgICBib29sIGdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlKCkgY29uc3QgeyByZXR1cm4g
aXNTZXRPbkZsYWdzMihHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSk7IH0KICAgICBib29sIG5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpIGNvbnN0
IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRz
KTsgfQogICAgIGJvb2wgaXNFbnZpcm9ubWVudFJlY29yZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0
T25GbGFnczIoSXNFbnZpcm9ubWVudFJlY29yZCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCBkNjAyOWUwMTgxNDQwYTBmODBkYWNiNjcxZGI0NGEz
M2NlYWVkOWQyLi40ZGZhMTg1NTU4NGRmOTI1YzU5ZDU5OTlhNjY0M2E3ODk4NzE5NTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMjA0LDEzICsyMDQs
MTggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnlLaW5kKCkgIT0g
VW5jYWNoZWREaWN0aW9uYXJ5S2luZAogICAgICAgICAgICAgJiYgIXR5cGVJbmZvKCkucHJvaGli
aXRzUHJvcGVydHlDYWNoaW5nKCkKLSAgICAgICAgICAgICYmICEodHlwZUluZm8oKS5oYXNJbXB1
cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSAmJiAhdHlwZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZp
cmVzV2F0Y2hwb2ludHMoKSk7CisgICAgICAgICAgICAmJiAhKHR5cGVJbmZvKCkuZ2V0T3duUHJv
cGVydHlTbG90SXNJbXB1cmUoKSAmJiAhdHlwZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVz
V2F0Y2hwb2ludHMoKSk7CisgICAgfQorCisgICAgYm9vbCBwcm9wZXJ0eUFjY2Vzc2VzQXJlQ2Fj
aGVhYmxlRm9yQWJzZW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gIXR5cGVJbmZvKCkuZ2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UoKTsKICAgICB9CiAgICAg
CiAgICAgYm9vbCBuZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50KCkKICAgICB7CiAgICAgICAg
IHJldHVybiBwcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkKLSAgICAgICAgICAgICYmIHR5
cGVJbmZvKCkuaGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90KCkKKyAgICAgICAgICAgICYmIHR5
cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKQogICAgICAgICAgICAgJiYgdHlw
ZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKTsKICAgICB9CiAKQEAg
LTIxOCw3ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gREZHIGZyb20gaW5saW5pbmcgcHJvcGVy
dHkgYWNjZXNzZXMgc2luY2Ugc3RydWN0dXJlcyBkb24ndCB0cmFuc2l0aW9uIHdoZW4gYSBuZXcg
aW1wdXJlIHByb3BlcnR5IGFwcGVhcnMuCiAgICAgYm9vbCB0YWtlc1Nsb3dQYXRoSW5ERkdGb3JJ
bXB1cmVQcm9wZXJ0eSgpCiAgICAgewotICAgICAgICByZXR1cm4gdHlwZUluZm8oKS5oYXNJbXB1
cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKTsKKyAgICAgICAgcmV0dXJuIHR5cGVJbmZvKCkuZ2V0T3du
UHJvcGVydHlTbG90SXNJbXB1cmUoKTsKICAgICB9CiAgICAgCiAgICAgLy8gVHlwZSBhY2Nlc3Nv
cnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IGI2ZThiMmZlNjc1MmU2NjAyNzBkNDYzYzJlMzlkMmRmMmRjNzk2MTAuLjQ3
M2U1ZWE2NDc4ZDJiZGVkMDM0NmY2NGYwOTI2YTM0ZWI3YmY3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC05ODIsMjAg
Kzk4MiwyMyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlv
biA9IEdldE5hbWVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRH
ZXR0ZXJGdW5jdGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKIAot
ICAgIG15ICRoYXNJbXB1cmVOYW1lZEdldHRlciA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJPdmVycmlkZUJ1aWx0aW5zIn0KLSAgICAgICAgJiYgKCRuYW1lZEdldHRlckZ1bmN0
aW9uIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRl
ciJ9KTsKKyAgICBteSAkaGFzTmFtZWRHZXR0ZXIgPSAkbmFtZWRHZXR0ZXJGdW5jdGlvbgorICAg
ICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0
ZXIifTsKIAogICAgIG15ICRoYXNDb21wbGV4R2V0dGVyID0KICAgICAgICAgJGluZGV4ZWRHZXR0
ZXJGdW5jdGlvbgogICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yIn0KICAgICAgICAgfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9
Ci0gICAgICAgIHx8ICRuYW1lZEdldHRlckZ1bmN0aW9uCi0gICAgICAgIHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9OworICAgICAgICB8fCAk
aGFzTmFtZWRHZXR0ZXI7CiAgICAgCiAgICAgbXkgJGhhc0dldHRlciA9IEluc3RhbmNlT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90KCRpbnRlcmZhY2UpOwogCi0gICAgaWYgKCRoYXNJbXB1cmVO
YW1lZEdldHRlcikgewotICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SGFzSW1wdXJlR2V0
T3duUHJvcGVydHlTbG90In0gPSAxOworICAgIGlmICgkaGFzTmFtZWRHZXR0ZXIpIHsKKyAgICAg
ICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPdmVycmlkZUJ1aWx0aW5z
In0pIHsKKyAgICAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZSJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzdHJ1Y3R1
cmVGbGFnc3siSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSJ9ID0gMTsKKyAgICAgICAgfQogICAgIH0KICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cyJ9KSB7CiAgICAg
ICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2lu
dHMifSA9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCmluZGV4IDkwZmFiZWM4
NTZmMjgyMTEyZDQyYTNlOGZkOGMzOTNkM2Y5ZGQ1NjUuLjI0ZTZjNTNkNGFmZDUyN2UxZDAxZDU4
MDZkOTYxYTgzNGEyN2MwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgogICAgIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3Qm
LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaApp
bmRleCBhZDE0YzIzODBmNWYwMjU5M2FmMmJlZjFkYjZlODRjYTU1MzJiMzAyLi4yZDgxZjBkZWQ1
OWJlNGEwZGU1MWQ0Mzc4YmFjYjA5NTA4ZGNlNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgogICAgIEpT
VGVzdEV2ZW50VGFyZ2V0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8
VGVzdEV2ZW50VGFyZ2V0PiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgKaW5k
ZXggZjdmYzNkZGUxMjMyY2FlMWU0MWE1ZGZmY2ZlMmIzZDViYmUwOGY1Zi4uZmQ2MjUzMGI2NmE1
MmQzN2RmZWMzZDM3NDU0NGRmYWZjYmJiNjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWls
dGlucy5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSA9IEpTQzo6RW51bWVyYXRpb25Nb2Rl
KCkpOwogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6Okhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8
IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CiAg
ICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyhKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgUmVmPFRlc3RPdmVycmlkZUJ1aWx0aW5zPiYmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUzNDBmYmZhODE2
NzZiN2Y2OGNlYjRkYjQ2NGU1YTc4MjJmYTQyNDMuLmIwOTg3YmRhZmJmNzMwM2YxZGI3OGE1Yjgy
MTRhODY5YWIzZTdhZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0xMS0xOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIENhY2hpbmcgb2YgcHJvcGVydGll
cyBvbiBvYmplY3RzIHRoYXQgaGF2ZSBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXJzIGlzIHNvbWV0aW1l
cyBpbmNvcnJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTQ1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMwNDkzNDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IHRv
IG1ha2Ugc3VyZSBjYWNoaW5nIGRvZXMgbm90IGNhdXNlIE5hbWVkTm9kZU1hcCdzCisgICAgICAg
IG5hbWVkIHByb3BlcnR5IGdldHRlciB0byBzb21ldGltZXMgd3JvbmdseSByZXBvcnQgYSBwcm9w
ZXJ0eSBhcworICAgICAgICBtaXNzaW5nLgorCisgICAgICAgICogZmFzdC9kb20vTmFtZWROb2Rl
TWFwLW5hbWVkLWdldHRlci1jYWNoaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTmFtZWROb2RlTWFwLW5hbWVkLWdldHRlci1jYWNoaW5nLmh0bWw6IEFkZGVkLgor
CiAyMDE1LTExLTE5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2tpcCBtb3JlIG1lZGlhc3RyZWFtIHRlc3RzIHRoYXQgY3Jhc2ggd2hlbiBwYWludGluZyBh
IG1vY2sgdmlkZW8gc291cmNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTmFt
ZWROb2RlTWFwLW5hbWVkLWdldHRlci1jYWNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzI3OTcwMjY5NmRiYTI3ZGI1ODY4YTdiYmY1OTQ1M2JmOGI1ZWRlMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1n
ZXR0ZXItY2FjaGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2FjaGlu
ZyBvZiByZXN1bHQgb2YgTmFtZWROb2RlTWFwIG5hbWVkIHByb3BlcnR5IGdldHRlcgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBib2R5QXR0cmlidXRlcy5jbGFzcyBpcyB1
bmRlZmluZWQKK1BBU1MgbGFzdEl0ZXJhdGlvbkhhc1JpZ2h0VmFsdWUgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTmFtZWROb2RlTWFwLW5hbWVkLWdldHRlci1jYWNo
aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhmZDZjODhlNjdiZmMxNjA5M2IwODNmOTQwNjIwZjlhYzBj
MGVlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1h
cC1uYW1lZC1nZXR0ZXItY2FjaGluZy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBjYWNoaW5n
IG9mIHJlc3VsdCBvZiBOYW1lZE5vZGVNYXAgbmFtZWQgcHJvcGVydHkgZ2V0dGVyIik7CisKK3Zh
ciBib2R5QXR0cmlidXRlcyA9IGRvY3VtZW50LmJvZHkuYXR0cmlidXRlczsKK3Nob3VsZEJlKCJi
b2R5QXR0cmlidXRlcy5jbGFzcyIsICJ1bmRlZmluZWQiKTsKKwordmFyIGxhc3RJdGVyYXRpb25I
YXNSaWdodFZhbHVlID0gZmFsc2U7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykgewor
ICAgIGlmIChpID09IDk5OSkKKyAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2Ns
YXNzJywgJ3Rlc3QnKTsKKyAgICBpZiAoYm9keUF0dHJpYnV0ZXMuY2xhc3MgIT0gdW5kZWZpbmVk
ICYmIGkgPT0gOTk5KQorICAgICAgICBsYXN0SXRlcmF0aW9uSGFzUmlnaHRWYWx1ZSA9IHRydWU7
Cit9CisKK3Nob3VsZEJlVHJ1ZSgibGFzdEl0ZXJhdGlvbkhhc1JpZ2h0VmFsdWUiKTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265977</attachid>
            <date>2015-11-20 11:59:04 -0800</date>
            <delta_ts>2015-11-20 12:45:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151453-20151120115852.patch</filename>
            <type>text/plain</type>
            <size>18715</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDhjNjBhNTMzYjYzNDM5MjVmM2U2NzVkZWNlNTZiNDk3Y2Q3MWVjLi45MmFkMDAwZDM2YjY4OTU2
NGMxMDliZTMzOTUxOGY5NGRiNzQ1NTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIENhY2hpbmcgb2YgcHJvcGVydGllcyBvbiBvYmplY3RzIHRoYXQgaGF2ZSBuYW1l
ZCBwcm9wZXJ0eSBnZXR0ZXJzIGlzIHNvbWV0aW1lcyBpbmNvcnJlY3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQ1MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjMwNDkzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91
Z2guCisKKyAgICAgICAgQWRkIG5ldyBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3Bl
cnR5QWJzZW5jZSBUeXBlSW5mbyBmbGFnIHRvIGJlCisgICAgICAgIHVzZWQgYnkgb2JqZWN0cyB0
aGF0IGhhdmUgYSBub24tJ092ZXJyaWRlQnVpbHRpbnMnIG5hbWVkIHByb3BlcnR5IGdldHRlci4K
KyAgICAgICAgVGhpcyBmbGFnIHByZXZlbnRzIGNhY2hpbmcgb2YgcHJvcGVydGllcyB0aGF0IGFy
ZSBtaXNzaW5nIGFzIGEgbmFtZWQKKyAgICAgICAgcHJvcGVydHkgd2l0aCB0aGlzIG5hbWUgbWF5
IGxhdGVyIGJlY29tZSBhdmFpbGFibGUuCisKKyAgICAgICAgT2JqZWN0cyB3aXRoIGFuICdPdmVy
cmlkZUJ1aWx0aW5zJyBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIgd2lsbCBrZWVwIHVzaW5nCisgICAg
ICAgIHRoZSBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSBUeXBlSW5mbyBmbGFnLCB3aGljaCBw
cmV2ZW50cyBhbGwgcHJvcGVydHkKKyAgICAgICAgY2FjaGluZyBzaW5jZSBuYW1lZCBwcm9wZXJ0
aWVzIGNhbiBvdmVycmlkZSBvd24gcHJvcGVydGllcyBvciBwcm9wZXJ0aWVzCisgICAgICAgIG9u
IHRoZSBwcm90b3R5cGUuCisKKyAgICAgICAgKiBieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNw
cDoKKyAgICAgICAgKEpTQzo6Q29tcGxleEdldFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAg
ICogYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eUNvbmRpdGlvbjo6aXNTdGlsbFZhbGlkKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6Cisg
ICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeVJlcGF0Y2hJ
bik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8uaDoK
KyAgICAgICAgKEpTQzo6VHlwZUluZm86OmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKToKKyAg
ICAgICAgKEpTQzo6VHlwZUluZm86OmdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlKToKKyAgICAgICAgKEpTQzo6VHlwZUluZm86OnByb2hpYml0c1Byb3BlcnR5Q2Fj
aGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKwogMjAxNS0x
MS0xOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjE4OTQzMykgV2ViIEluc3BlY3RvcjogSlNDb250ZXh0IGluc3BlY3Rpb24gZXhj
ZXB0aW9ucyBzaG91bGQgaW5jbHVkZSBuYXRpdmUgY2FsbCBmcmFtZXMgYnkgZGVmYXVsdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZkMTk2MTM4ODY2NWRhNjc0Zjg0MGViM2MzNGNhNDBmOGVlOTY3MDcuLjZkMzQ5
MTFjMWQ5ZmNkYWVhMTk5OTkxOGY5N2IwMDMzYWMxMTYwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAxNS0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIENhY2hpbmcgb2YgcHJvcGVydGllcyBvbiBvYmplY3RzIHRoYXQgaGF2ZSBuYW1lZCBw
cm9wZXJ0eSBnZXR0ZXJzIGlzIHNvbWV0aW1lcyBpbmNvcnJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQ1MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjMwNDkzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2gu
CisKKyAgICAgICAgSW4gcjE4ODU5MCwgd2UgZHJvcHBlZCB0aGUgSlNDOjpHZXRPd25Qcm9wZXJ0
eVNsb3RJc0ltcHVyZSBUeXBlSW5mbyBmbGFnIGZvcgorICAgICAgICBpbnRlcmZhY2VzIHRoYXQg
aGF2ZSBhIG5vbi0nT3ZlcnJpZGVCdWlsdGlucycgbmFtZWQgcHJvcGVydHkgZ2V0dGVyIGluIG9y
ZGVyCisgICAgICAgIHRvIGFsbG93IGNhY2hpbmcgb2YgcHJvcGVydGllcyByZXR1cm5zIGJ5IEdl
dE93blByb3BlcnR5U2xvdCgpLiBXZSBhc3N1bWVkCisgICAgICAgIHRoaXMgd2FzIHNhZmUgYXMg
aXQgd2FzIG5vIGxvbmdlciBwb3NzaWJsZSBmb3IgbmFtZWQgcHJvcGVydGllcyB0byBvdmVycmlk
ZQorICAgICAgICBvd24gcHJvcGVydGllcyAob3IgcHJvcGVydGllcyBvbiB0aGUgcHJvdG90eXBl
KS4KKworICAgICAgICBIb3dldmVyLCB0aGVyZSBpcyBhbiBpc3N1ZSB3aGVuIHdlIGNhY2hlIHRo
ZSBub24tZXhpc3RlbmNlIG9mIGEgcHJvcGVydHkuCisgICAgICAgIEV2ZW4gdGhvdWdoIGF0IG9u
ZSBwb2ludCB0aGUgcHJvcGVydHkgZGlkIG5vdCBleGlzdCwgYSBuYW1lZCBwcm9wZXJ0eSB3aXRo
CisgICAgICAgIHRoaXMgbmFtZSBtYXkgbGF0ZXIgYmVjb21lIGF2YWlsYWJsZS4gSW4gc3VjaCBj
YXNlLCBjYWNoaW5nIHdvdWxkIGNhdXNlIHVzCisgICAgICAgIHRvIHdyb25nbHkgcmVwb3J0IGEg
cHJvcGVydHkgYXMgbWlzc2luZy4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBwcm9ibGVtLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcKKyAgICAgICAgR2V0T3duUHJvcGVydHlTbG90SXNJ
bXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgVHlwZUluZm8gZmxhZyBhbmQgdXNlcyBpdCBmb3IKKyAg
ICAgICAgaW50ZXJmYWNlcyB0aGF0IGhhdmUgYSBub24tJ092ZXJyaWRlQnVpbHRpbnMnIG5hbWVk
IHByb3BlcnR5IGdldHRlci4gVGhpcworICAgICAgICB3aWxsIGNhdXNlIHVzIHRvIG5vdCBjYWNo
ZSB0aGUgZmFjdCB0aGF0IGEgcHJvcGVydHkgaXMgbWlzc2luZyBvbiBzdWNoCisgICAgICAgIG9i
amVjdHMsIHdoaWxlIG1haW50YWluaW5nIHRoZSBwZXJmb3JtYW5jZSB3aW4gZnJvbSByMTg4NTkw
IGluIHRoZSBjb21tb24KKyAgICAgICAgY2FzZS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9O
YW1lZE5vZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmcuaHRtbAorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRl
QnVpbHRpbnMuaDoKKwogMjAxNS0xMS0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTW9kZXJuIElEQjogSURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIHN1
cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29tcGxl
eEdldFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29tcGxleEdl
dFN0YXR1cy5jcHAKaW5kZXggZDRlYTNiYWE4YzliNDlmMmU0YzZlMDBmN2RkZjU0MDQ5Y2I1Mzlj
MC4uMzM2NjNkMDU3ZGI3ZjMyYjNhN2I4ZTQ0NzgyMzJiYmQxY2U0YjcxOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBDb21wbGV4R2V0U3RhdHVzIENvbXBsZXhHZXRTdGF0dXM6OmNvbXB1dGVG
b3IoCiAgICAgU3RydWN0dXJlKiBoZWFkU3RydWN0dXJlLCBjb25zdCBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogewogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgd2UgbmV2ZXIgc2VlIGEgc3RydWN0dXJl
IHRoYXQKLSAgICAvLyBoYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSBidXQgZm9yIHdoaWNo
IHdlIGRvbid0CisgICAgLy8gZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSBidXQgZm9yIHdo
aWNoIHdlIGRvbid0CiAgICAgLy8gbmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzKCku
IFdlJ3JlIG5vdCBhdCBhIHBvaW50IHdoZXJlIHdlIGNhbiBkbwogICAgIC8vIHRoYXQsIHlldC4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxODEwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9u
LmNwcAppbmRleCA4YWFiNGVhZWM1YzU2ZGM4MmEzZTE2NWYzOTIxOTc1OGY0NjQyMTEwLi5mMzBj
YmY5MjJhZmEyZWRhM2FlZDlhMTJhNmFhZGQ4MTlkNjE0ZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAKQEAgLTIxMywx
MCArMjEzLDEzIEBAIGJvb2wgUHJvcGVydHlDb25kaXRpb246OmlzU3RpbGxWYWxpZChTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIGJhc2UpIGNvbnN0CiAgICAgLy8gInNoYWRvdyIgYW4g
ZXhpc3RpbmcgSlMgcHJvcGVydHkgb24gdGhlIHNhbWUgb2JqZWN0LiBIZW5jZSBpdCBhZmZlY3Rz
IGJvdGggcHJlc2VuY2UgYW5kCiAgICAgLy8gYWJzZW5jZS4gSXQgZG9lc24ndCBhZmZlY3QgQWJz
ZW5jZU9mU2V0dGVyIGJlY2F1c2UgaW1wdXJlIHByb3BlcnRpZXMgYXJlbid0IGV2ZXIgc2V0dGVy
cy4KICAgICBzd2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUHJlc2VuY2U6CiAgICAgY2FzZSBB
YnNlbmNlOgorICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLmdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlKCkgfHwgc3RydWN0dXJlLT50eXBlSW5mbygpLmdldE93blByb3BlcnR5U2xv
dElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJlc2VuY2U6CiAgICAgY2FzZSBFcXVpdmFsZW5j
ZToKLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5oYXNJbXB1cmVHZXRPd25Qcm9w
ZXJ0eVNsb3QoKSkKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5nZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBi
cmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5k
ZXggMjNjYTY4MGM5ODBmZWFkYTc3NTVmZWQ1Njk2MzczZDA4NmQ2NTBkYS4uYzExY2FjMzkxOTBj
MjBmMTE3YWExOWJhMDc3NzdkZGE0Y2RlYTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guY3BwCkBAIC0yODMsNiArMjgzLDkgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRy
eUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAg
ICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNo
aW5nKCkgfHwgc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gR2l2ZVVwT25DYWNoZTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNsb3QuaXNV
bnNldCgpICYmIHN0cnVjdHVyZS0+dHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNh
Y2hlOworCiAgICAgICAgICAgICBpZiAoc2xvdC5pc1Vuc2V0KCkpIHsKICAgICAgICAgICAgICAg
ICBjb25kaXRpb25TZXQgPSBnZW5lcmF0ZUNvbmRpdGlvbnNGb3JQcm9wZXJ0eU1pc3MoCiAgICAg
ICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIGV4ZWMsIHN0cnVjdHVyZSwgcHJvcGVydHlO
YW1lLmltcGwoKSk7CkBAIC00ODUsNyArNDg4LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9u
IHRyeVJlcGF0Y2hJbigKICAgICBpZiAoZm9yY2VJQ0ZhaWx1cmUoZXhlYykpCiAgICAgICAgIHJl
dHVybiBHaXZlVXBPbkNhY2hlOwogICAgIAotICAgIGlmICghYmFzZS0+c3RydWN0dXJlKCktPnBy
b3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSkKKyAgICBpZiAoIWJhc2UtPnN0cnVjdHVyZSgp
LT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkgfHwgKCF3YXNGb3VuZCAmJiAhYmFzZS0+
c3RydWN0dXJlKCktPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGVGb3JBYnNlbmNlKCkpKQog
ICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKICAgICAKICAgICBpZiAod2FzRm91bmQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMjVjYThhMTFjZjA4OWIzYWRhNTdhNzRjMjFmM2MxODFh
Yjg5MWQzYy4uMmU5MTRhYjc0NGZlYzZjMWU4ZDRjOTMzMjllOTkwZDFlOTYzZDA3MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKQEAgLTI2Nyw3ICsyNjcsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJF
X0lORk87CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
Okhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
SW5mby5oCmluZGV4IDI3ODYzYWJmMmU5OGY4MjUyMDM5YzU2Njk3NDYzOTA0ZTRjNGI2YmMuLmNh
MTEyMGNiZTVjZjQ1ZGFmODUxMDlmZTMwMTNhYjkzNTVlZGMzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTQ3LDkgKzQ3LDEwIEBAIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0gMSA8PCA3OwogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyA9IDEgPDwgODsKIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcgPSAxIDw8IDk7Ci1zdGF0aWMg
Y29uc3QgdW5zaWduZWQgSGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90ID0gMSA8PCAxMDsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSA9IDEgPDwgMTA7
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRz
ID0gMSA8PCAxMTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJc0Vudmlyb25tZW50UmVjb3JkID0g
MSA8PCAxMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSA9IDEgPDwgMTM7CiAKIGNsYXNzIFR5cGVJbmZvIHsKIHB1Ymxp
YzoKQEAgLTkxLDcgKzkyLDggQEAgcHVibGljOgogICAgIGJvb2wgc3RydWN0dXJlSXNJbW1vcnRh
bCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczEoU3RydWN0dXJlSXNJbW1vcnRhbCk7IH0K
ICAgICBib29sIG92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJldHVybiBpc1Nl
dE9uRmxhZ3MyKE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpOyB9CiAgICAgYm9vbCBwcm9oaWJp
dHNQcm9wZXJ0eUNhY2hpbmcoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKFByb2hpYml0
c1Byb3BlcnR5Q2FjaGluZyk7IH0KLSAgICBib29sIGhhc0ltcHVyZUdldE93blByb3BlcnR5U2xv
dCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoSGFzSW1wdXJlR2V0T3duUHJvcGVydHlT
bG90KTsgfQorICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSBjb25zdCB7IHJl
dHVybiBpc1NldE9uRmxhZ3MyKEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKTsgfQorICAgIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UoKSBjb25zdCB7
IHJldHVybiBpc1NldE9uRmxhZ3MyKEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlKTsgfQogICAgIGJvb2wgbmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRz
KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0
Y2hwb2ludHMpOyB9CiAgICAgYm9vbCBpc0Vudmlyb25tZW50UmVjb3JkKCkgY29uc3QgeyByZXR1
cm4gaXNTZXRPbkZsYWdzMihJc0Vudmlyb25tZW50UmVjb3JkKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGQ2MDI5ZTAxODE0NDBhMGY4MGRhY2I2
NzFkYjQ0YTMzY2VhZWQ5ZDIuLjRkZmExODU1NTg0ZGY5MjVjNTlkNTk5OWE2NjQzYTc4OTg3MTk1
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0yMDQs
MTMgKzIwNCwxOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gZGljdGlvbmFyeUtp
bmQoKSAhPSBVbmNhY2hlZERpY3Rpb25hcnlLaW5kCiAgICAgICAgICAgICAmJiAhdHlwZUluZm8o
KS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKQotICAgICAgICAgICAgJiYgISh0eXBlSW5mbygp
Lmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpICYmICF0eXBlSW5mbygpLm5ld0ltcHVyZVBy
b3BlcnR5RmlyZXNXYXRjaHBvaW50cygpKTsKKyAgICAgICAgICAgICYmICEodHlwZUluZm8oKS5n
ZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpICYmICF0eXBlSW5mbygpLm5ld0ltcHVyZVByb3Bl
cnR5RmlyZXNXYXRjaHBvaW50cygpKTsKKyAgICB9CisKKyAgICBib29sIHByb3BlcnR5QWNjZXNz
ZXNBcmVDYWNoZWFibGVGb3JBYnNlbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAhdHlwZUlu
Zm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSgpOwogICAg
IH0KICAgICAKICAgICBib29sIG5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKQotICAgICAgICAg
ICAgJiYgdHlwZUluZm8oKS5oYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKQorICAgICAgICAg
ICAgJiYgdHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpCiAgICAgICAgICAg
ICAmJiB0eXBlSW5mbygpLm5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpOwogICAg
IH0KIApAQCAtMjE4LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBERkcgZnJvbSBpbmxpbmlu
ZyBwcm9wZXJ0eSBhY2Nlc3NlcyBzaW5jZSBzdHJ1Y3R1cmVzIGRvbid0IHRyYW5zaXRpb24gd2hl
biBhIG5ldyBpbXB1cmUgcHJvcGVydHkgYXBwZWFycy4KICAgICBib29sIHRha2VzU2xvd1BhdGhJ
bkRGR0ZvckltcHVyZVByb3BlcnR5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0eXBlSW5mbygp
Lmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpOworICAgICAgICByZXR1cm4gdHlwZUluZm8o
KS5nZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpOwogICAgIH0KICAgICAKICAgICAvLyBUeXBl
IGFjY2Vzc29ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggYjZlOGIyZmU2NzUyZTY2MDI3MGQ0NjNjMmUzOWQyZGYyZGM3
OTYxMC4uNDczZTVlYTY0NzhkMmJkZWQwMzQ2ZjY0ZjA5MjZhMzRlYjdiZjc0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTk4MiwyMCArOTgyLDIzIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRuYW1lZEdldHRl
ckZ1bmN0aW9uID0gR2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKICAgICBteSAk
aW5kZXhlZEdldHRlckZ1bmN0aW9uID0gR2V0SW5kZXhlZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZh
Y2UpOwogCi0gICAgbXkgJGhhc0ltcHVyZU5hbWVkR2V0dGVyID0gJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik92ZXJyaWRlQnVpbHRpbnMifQotICAgICAgICAmJiAoJG5hbWVkR2V0
dGVyRnVuY3Rpb24gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5h
bWVkR2V0dGVyIn0pOworICAgIG15ICRoYXNOYW1lZEdldHRlciA9ICRuYW1lZEdldHRlckZ1bmN0
aW9uCisgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21O
YW1lZEdldHRlciJ9OwogCiAgICAgbXkgJGhhc0NvbXBsZXhHZXR0ZXIgPQogICAgICAgICAkaW5k
ZXhlZEdldHRlckZ1bmN0aW9uCiAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifQogICAgICAg
ICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90In0KLSAgICAgICAgfHwgJG5hbWVkR2V0dGVyRnVuY3Rpb24KLSAgICAgICAgfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn07CisgICAg
ICAgIHx8ICRoYXNOYW1lZEdldHRlcjsKICAgICAKICAgICBteSAkaGFzR2V0dGVyID0gSW5zdGFu
Y2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGludGVyZmFjZSk7CiAKLSAgICBpZiAoJGhh
c0ltcHVyZU5hbWVkR2V0dGVyKSB7Ci0gICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpIYXNJ
bXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CisgICAgaWYgKCRoYXNOYW1lZEdldHRlcikg
eworICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik92ZXJyaWRl
QnVpbHRpbnMifSkgeworICAgICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlIn0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
JHN0cnVjdHVyZUZsYWdzeyJKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlIn0gPSAxOworICAgICAgICB9CiAgICAgfQogICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzIn0p
IHsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok5ld0ltcHVyZVByb3BlcnR5RmlyZXNX
YXRjaHBvaW50cyJ9ID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXgg
OTBmYWJlYzg1NmYyODIxMTJkNDJhM2U4ZmQ4YzM5M2QzZjlkZDU2NS4uMjRlNmM1M2Q0YWZkNTI3
ZTFkMDFkNTgwNmQ5NjFhODM0YTI3YzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6
CiAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5oCmluZGV4IGFkMTRjMjM4MGY1ZjAyNTkzYWYyYmVmMWRiNmU4NGNhNTUzMmIzMDIuLjJk
ODFmMGRlZDU5YmU0YTBkZTUxZDQzNzhiYWNiMDk1MDhkY2U2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB2aXNpdENo
aWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKIAogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6TWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6
CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0RXZlbnRUYXJnZXQ+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuaAppbmRleCBmN2ZjM2RkZTEyMzJjYWUxZTQxYTVkZmZjZmUyYjNkNWJiZTA4ZjVmLi5mZDYy
NTMwYjY2YTUyZDM3ZGZlYzNkMzc0NTQ0ZGZhZmNiYmI2MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlID0gSlNDOjpFbnVtZXJh
dGlvbk1vZGUoKSk7CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3Ro
SXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElz
SW1wdXJlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3Rl
Y3RlZDoKICAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QmLCBSZWY8VGVzdE92ZXJyaWRlQnVpbHRpbnM+JiYpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWY4
MWExN2EwNWFjMGJjNTI0MjliMWE0NDI0ZWQ0Njc3NTYzYzgzMS4uMGJjNmU0NWY3ZjFlZjAzMmYz
NDU2YjlhMjNlMTllZTBhZDU5M2Q4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTExLTIw
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGluZyBvZiBw
cm9wZXJ0aWVzIG9uIG9iamVjdHMgdGhhdCBoYXZlIG5hbWVkIHByb3BlcnR5IGdldHRlcnMgaXMg
c29tZXRpbWVzIGluY29ycmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxNDUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA0OTM0Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KKworICAgICAgICBBZGQgbGF5
b3V0IHRlc3QgdG8gbWFrZSBzdXJlIGNhY2hpbmcgZG9lcyBub3QgY2F1c2UgTmFtZWROb2RlTWFw
J3MKKyAgICAgICAgbmFtZWQgcHJvcGVydHkgZ2V0dGVyIHRvIHNvbWV0aW1lcyB3cm9uZ2x5IHJl
cG9ydCBhIHByb3BlcnR5IGFzCisgICAgICAgIG1pc3NpbmcuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9OYW1lZE5vZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9OYW1lZE5vZGVNYXAtbmFtZWQtZ2V0dGVyLWNhY2hpbmcuaHRt
bDogQWRkZWQuCisKIDIwMTUtMTEtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vZGVybiBJREI6IElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSBzdXBw
b3J0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTmFtZWROb2RlTWFwLW5hbWVk
LWdldHRlci1jYWNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVk
Tm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI3
OTcwMjY5NmRiYTI3ZGI1ODY4YTdiYmY1OTQ1M2JmOGI1ZWRlMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2FjaGluZyBvZiByZXN1bHQgb2Yg
TmFtZWROb2RlTWFwIG5hbWVkIHByb3BlcnR5IGdldHRlcgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBib2R5QXR0cmlidXRlcy5jbGFzcyBpcyB1bmRlZmluZWQKK1BBU1Mg
bGFzdEl0ZXJhdGlvbkhhc1JpZ2h0VmFsdWUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXItY2FjaGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vTmFtZWROb2RlTWFwLW5hbWVkLWdldHRlci1jYWNoaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTk5NTIwNzc1Yjg1MWM5YjA2YjIwM2QzYjZkZjJhNDhjY2I2MzE5NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05hbWVkTm9kZU1hcC1uYW1lZC1nZXR0ZXIt
Y2FjaGluZy5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBjYWNoaW5nIG9mIHJlc3VsdCBvZiBO
YW1lZE5vZGVNYXAgbmFtZWQgcHJvcGVydHkgZ2V0dGVyIik7CisKK3ZhciBib2R5QXR0cmlidXRl
cyA9IGRvY3VtZW50LmJvZHkuYXR0cmlidXRlczsKK3Nob3VsZEJlKCJib2R5QXR0cmlidXRlcy5j
bGFzcyIsICJ1bmRlZmluZWQiKTsKKwordmFyIGxhc3RJdGVyYXRpb25IYXNSaWdodFZhbHVlID0g
ZmFsc2U7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGlmIChpID09IDk5
OSkKKyAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3Rlc3QnKTsK
KyAgICBpZiAoYm9keUF0dHJpYnV0ZXMuY2xhc3MgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlm
IChpID09IDk5OSkKKyAgICAgICAgICAgIGxhc3RJdGVyYXRpb25IYXNSaWdodFZhbHVlID0gdHJ1
ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIGJvZHkgZWxlbWVu
dCBzaG91bGQgTk9UIGhhdmUgYSAnY2xhc3MnIGF0dHJpYnV0ZSBzZXQiKTsKKyAgICB9Cit9CisK
K3Nob3VsZEJlVHJ1ZSgibGFzdEl0ZXJhdGlvbkhhc1JpZ2h0VmFsdWUiKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>