<?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>139096</bug_id>
          
          <creation_ts>2014-11-28 23:36:39 -0800</creation_ts>
          <short_desc>PropertyTable keys should be AtomicStringImpl.</short_desc>
          <delta_ts>2014-11-29 16:06:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1051303</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-28 23:36:39 -0800</bug_when>
    <thetext>Since JSC::PropertyTable keys are always Identifiers, the table should use AtomicStringImpl* rather than StringImpl* for its key type.
Any instance of a non-atomic StringImpl* in a PropertyTable would be a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051304</commentid>
    <comment_count>1</comment_count>
      <attachid>242273</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-28 23:41:06 -0800</bug_when>
    <thetext>Created attachment 242273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051335</commentid>
    <comment_count>2</comment_count>
      <attachid>242273</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-29 16:06:34 -0800</bug_when>
    <thetext>Comment on attachment 242273
Patch

Clearing flags on attachment: 242273

Committed r176583: &lt;http://trac.webkit.org/changeset/176583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051336</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-29 16:06:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242273</attachid>
            <date>2014-11-28 23:41:06 -0800</date>
            <delta_ts>2014-11-29 16:06:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139096.diff</filename>
            <type>text/plain</type>
            <size>28871</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI5NzFiNDIuLmI3ZmNjYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE0LTExLTI4ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wZXJ0eVRhYmxlIGtleXMgc2hvdWxk
IGJlIEF0b21pY1N0cmluZ0ltcGwuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzkw
OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2lu
Y2UgUHJvcGVydHlUYWJsZSBrZXlzIGFyZSByZWFsbHkgYWx3YXlzIElkZW50aWZpZXJzLCBzd2l0
Y2ggdGhlIGtleQorICAgICAgICB0eXBlIGZyb20gU3RyaW5nSW1wbCogdG8gQXRvbWljU3RyaW5n
SW1wbCouCisKKyAgICAgICAgV2UgaGF2ZSBjb2RlIGluIHRoZSBHZXRCeVZhbCBvcGNvZGUgaW1w
bGVtZW50YXRpb25zIHRoYXQgYXNzdW1lcyB0aGluZ3MKKyAgICAgICAgYWJvdXQgdGhpcywgc28g
dGhpcyBjaGFuZ2UgYWRkcyBjb25maWRlbmNlIHRvIHRob3NlIGFsZ29yaXRobXMuCisKKyAgICAg
ICAgKiBieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tcGxl
eEdldFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgICogYnl0ZWNvZGUvQ29tcGxleEdldFN0
YXR1cy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAo
SlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KToKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oOgor
ICAgICAgICAqIGJ5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpQdXRC
eUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpJ
bmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KToKKyAgICAgICAgKiBkZmcvREZHRGVz
aXJlZElkZW50aWZpZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpEZXNpcmVkSWRlbnRpZmll
cnM6OmFkZExhemlseSk6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZElkZW50aWZpZXJzOjph
dCk6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5oOgorICAgICAgICAoSlND
OjpERkc6OkRlc2lyZWRJZGVudGlmaWVyczo6b3BlcmF0b3JbXSk6CisgICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmlzU3RyaW5n
UHJvdG90eXBlTWV0aG9kU2FuZSk6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6Cisg
ICAgICAgIChKU0M6OklkZW50aWZpZXI6OmltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZW5k
ZWRTdHJ1Y3R1cmVDaGFpbi5jcHA6CisgICAgICAgIChKU0M6OkludGVuZGVkU3RydWN0dXJlQ2hh
aW46Om1heUludGVyY2VwdFN0b3JlVG8pOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZW5kZWRTdHJ1
Y3R1cmVDaGFpbi5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaDoK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVRyYW5zaXRpb25UYWJsZTo6Y29udGFpbnMpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVUcmFu
c2l0aW9uVGFibGU6OmdldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlU
cmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldENvbmN1cnJlbnRseSk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TWFw
RW50cnk6OlByb3BlcnR5TWFwRW50cnkpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldENvbmN1cnJlbnRseSk6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOjpIYXNoOjpoYXNoKToKKwogMjAxNC0xMS0yNyAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVzZSBzdGQ6
OnVuaXF1ZV9wdHIgaW5zdGVhZCBvZiBPd25QdHIgaW4gSlNDIGNsYXNzZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmNwcAppbmRleCA0
NDBmMDhhLi4wNDJkY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29tcGxleEdldFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBDb21wbGV4R2V0U3RhdHVzIENvbXBsZXhHZXRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAg
Q29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmUqIGhlYWRTdHJ1Y3R1cmUsIFN0cnVj
dHVyZUNoYWluKiBjaGFpbiwKLSAgICB1bnNpZ25lZCBjaGFpbkNvdW50LCBTdHJpbmdJbXBsKiB1
aWQpCisgICAgdW5zaWduZWQgY2hhaW5Db3VudCwgQXRvbWljU3RyaW5nSW1wbCogdWlkKQogewog
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgd2UgbmV2ZXIgc2VlIGEgc3RydWN0
dXJlIHRoYXQKICAgICAvLyBoYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QoKSBidXQgZm9yIHdo
aWNoIHdlIGRvbid0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29tcGxleEdldFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvbXBs
ZXhHZXRTdGF0dXMuaAppbmRleCA5MDNjMjUxLi4xMTViZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29tcGxleEdldFN0YXR1cy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db21wbGV4R2V0U3RhdHVzLmgKQEAgLTk4LDcgKzk4LDcg
QEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBDb21wbGV4R2V0U3RhdHVzIGNvbXB1dGVGb3Io
CiAgICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlKiBoZWFkU3RydWN0
dXJlLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4sCi0gICAgICAgIHVuc2lnbmVkIGNoYWluQ291bnQs
IFN0cmluZ0ltcGwqIHVpZCk7CisgICAgICAgIHVuc2lnbmVkIGNoYWluQ291bnQsIEF0b21pY1N0
cmluZ0ltcGwqIHVpZCk7CiAgICAgCiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9r
aW5kOyB9CiAgICAgdW5zaWduZWQgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmli
dXRlczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwCmluZGV4IGU4M2FkODguLmE5YTQ3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgYm9vbCBH
ZXRCeUlkU3RhdHVzOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIENvZGVCbG9jayogcHIKIH0KICNlbmRpZgogCi1HZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4LCBBdG9taWNTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHByb2ZpbGVkQmxvY2spOwogICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsKQEAgLTkx
LDcgKzkxLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50
KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICByZXR1cm4gR2V0QnlJZFN0
YXR1cyhTaW1wbGUsIGZhbHNlLCBHZXRCeUlkVmFyaWFudChTdHJ1Y3R1cmVTZXQoc3RydWN0dXJl
KSwgb2Zmc2V0KSk7CiB9CiAKLUdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtYXAsIHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtYXAs
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEF0b21pY1N0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xvY2spOwogCkBAIC0x
MTgsNyArMTE4LDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KIAogI2lmIEVOQUJMRShKSVQp
CiBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKLSAgICBj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBTdHJpbmdJbXBsKiB1aWQsCisgICAgY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXRvbWljU3RyaW5nSW1wbCogdWlkLAogICAg
IENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0YSkKIHsKICAgICBp
ZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKQEAgLTIyNCw3ICsyMjQsNyBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKIAogR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgIENvZGVCbG9jayogcHJvZmlsZWRC
bG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLAotICAg
IFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgU3RyaW5nSW1wbCog
dWlkKQorICAgIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQXRv
bWljU3RyaW5nSW1wbCogdWlkKQogewogI2lmIEVOQUJMRShERkdfSklUKQogICAgIGlmIChkZmdC
bG9jaykgewpAQCAtMjYyLDcgKzI2Miw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6
Y29tcHV0ZUZvcigKICAgICByZXR1cm4gY29tcHV0ZUZvcihwcm9maWxlZEJsb2NrLCBiYXNlbGlu
ZU1hcCwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCB1aWQpOwogfQogCi1HZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoY29uc3QgU3RydWN0dXJlU2V0JiBzZXQsIFN0cmlu
Z0ltcGwqIHVpZCkKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihjb25z
dCBTdHJ1Y3R1cmVTZXQmIHNldCwgQXRvbWljU3RyaW5nSW1wbCogdWlkKQogewogICAgIC8vIEZv
ciBub3cgd2Ugb25seSBoYW5kbGUgdGhlIHN1cGVyIHNpbXBsZSBzZWxmIGFjY2VzcyBjYXNlLiBX
ZSBjb3VsZCBoYW5kbGUgdGhlCiAgICAgLy8gcHJvdG90eXBlIGNhc2UgaW4gdGhlIGZ1dHVyZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4
IGI3MTZmMDEuLjI3YmZiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRTdGF0dXMuaApAQCAtNjcsMTAgKzY3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV92
YXJpYW50cy5hcHBlbmQodmFyaWFudCk7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBHZXRCeUlk
U3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNv
bXB1dGVGb3IoY29uc3QgU3RydWN0dXJlU2V0JiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICBzdGF0
aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIFN0dWJJbmZvTWFwJiwgdW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgQXRvbWljU3RyaW5nSW1wbCogdWlkKTsKKyAgICBzdGF0aWMg
R2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIEF0b21pY1N0cmlu
Z0ltcGwqIHVpZCk7CiAgICAgCi0gICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihD
b2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFw
JiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1w
bCogdWlkKTsKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayog
YmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5l
TWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luLCBBdG9taWNTdHJpbmdJbXBsKiB1
aWQpOwogICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQog
ICAgIApAQCAtOTcsOSArOTcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShKSVQpCiAgICAgc3Rh
dGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKAogICAgICAgICBjb25zdCBDb25j
dXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosCi0gICAgICAgIFN0cmluZ0ltcGwqIHVpZCwgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRl
RGF0YSk7CisgICAgICAgIEF0b21pY1N0cmluZ0ltcGwqIHVpZCwgQ2FsbExpbmtTdGF0dXM6OkV4
aXRTaXRlRGF0YSk7CiAjZW5kaWYKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRnJv
bUxMSW50KENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVp
ZCk7CisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sq
LCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBBdG9taWNTdHJpbmdJbXBsKiB1aWQpOwogICAgIAog
ICAgIGJvb2wgYXBwZW5kVmFyaWFudChjb25zdCBHZXRCeUlkVmFyaWFudCYpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCmluZGV4
IGYyYWMxOGMuLjRhODJiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9QdXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHV0QnlJZFN0YXR1cy5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBQdXRCeUlkU3RhdHVz
OjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9j
ayogcHIKIH0KICNlbmRpZgogCi1QdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVG
cm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
LCBTdHJpbmdJbXBsKiB1aWQpCitQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVG
cm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
LCBBdG9taWNTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxv
Y2spOwogICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsKQEAgLTEwNSw3ICsxMDUsNyBA
QCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZAogICAgIHJldHVybiBQdXRCeUlkVmFyaWFudDo6dHJh
bnNpdGlvbihzdHJ1Y3R1cmUsIG5ld1N0cnVjdHVyZSwgaW50ZW5kZWRDaGFpbi5nZXQoKSwgb2Zm
c2V0KTsKIH0KIAotUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVC
bG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG1hcCwgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgU3RyaW5nSW1wbCogdWlkKQorUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG1hcCwgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleCwgQXRvbWljU3RyaW5nSW1wbCogdWlkKQogewogICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CiAgICAgCkBAIC0xMzQs
NyArMTM0LDcgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVC
bG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICNpZiBFTkFCTEUoSklUKQogUHV0
QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCiAgICAgY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKLSAgICBTdHJpbmdJbXBsKiB1aWQsIENhbGxMaW5r
U3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0YSkKKyAgICBBdG9taWNTdHJpbmdJ
bXBsKiB1aWQsIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0YSkK
IHsKICAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKICAgICAgICAgcmV0dXJu
IFB1dEJ5SWRTdGF0dXMoKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKIH0KICNlbmRpZgogCi1QdXRCeUlkU3RhdHVz
IFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2Rl
QmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBk
ZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKQorUHV0QnlJZFN0
YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywg
Q29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01h
cCYgZGZnTWFwLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEF0b21pY1N0cmluZ0ltcGwqIHVpZCkK
IHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoZGZnQmxvY2spIHsKQEAgLTMwOCw3ICsz
MDgsNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2Nr
KiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZwogICAgIHJldHVybiBjb21wdXRlRm9yKGJh
c2VsaW5lQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7
CiB9CiAKLVB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJ1Y3R1cmVTZXQmIHNldCwgU3RyaW5nSW1wbCog
dWlkLCBib29sIGlzRGlyZWN0KQorUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cnVjdHVyZVNldCYgc2V0
LCBBdG9taWNTdHJpbmdJbXBsKiB1aWQsIGJvb2wgaXNEaXJlY3QpCiB7CiAgICAgaWYgKHRvVUlu
dDMyRnJvbVN0cmluZ0ltcGwodWlkKSAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCiAgICAg
ICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgKaW5kZXggZmQzNWNhMC4uZjU1MzYy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0
dXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5o
CkBAIC03MCwxMCArNzAsMTAgQEAgcHVibGljOgogICAgICAgICBtX3ZhcmlhbnRzLmFwcGVuZCh2
YXJpYW50KTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZv
cihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmlu
Z0ltcGwqIHVpZCk7Ci0gICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihKU0dsb2Jh
bE9iamVjdCosIGNvbnN0IFN0cnVjdHVyZVNldCYsIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0Rp
cmVjdCk7CisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBT
dHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEF0b21pY1N0cmluZ0ltcGwqIHVp
ZCk7CisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cnVjdHVyZVNldCYsIEF0b21pY1N0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVj
dCk7CiAgICAgCi0gICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sq
IGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGlu
ZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsK
KyAgICBzdGF0aWMgUHV0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVC
bG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHVi
SW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luLCBBdG9taWNTdHJpbmdJbXBsKiB1aWQpOwogICAg
IAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIApAQCAt
OTYsMTAgKzk2LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoSklUKQogICAgIHN0
YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbygKLSAgICAgICAgY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RyaW5n
SW1wbCogdWlkLAorICAgICAgICBjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2Nr
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBdG9taWNTdHJpbmdJbXBsKiB1aWQsCiAgICAgICAgIENh
bGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEpOwogI2VuZGlmCi0gICAgc3RhdGljIFB1dEJ5SWRT
dGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
LCBTdHJpbmdJbXBsKiB1aWQpOworICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9t
TExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQXRvbWljU3RyaW5nSW1w
bCogdWlkKTsKICAgICAKICAgICBib29sIGFwcGVuZFZhcmlhbnQoY29uc3QgUHV0QnlJZFZhcmlh
bnQmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKaW5kZXggZDg2NjhlMC4uMjMyODBkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI4MzQsNyArMjgzNCw3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAg
ICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKSk7CiAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9p
bmxpbmVTdGFja1RvcC0+bV9pZGVudGlmaWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZF07CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0cmluZ0ltcGwqIHVpZCA9IG1f
Z3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXTsKKyAgICAgICAgICAgIEF0b21p
Y1N0cmluZ0ltcGwqIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVy
XTsKICAgICAgICAgICAgIEdldEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1cyA9IEdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3IoCiAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKICAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNr
VG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHViSW5mb3MsCkBAIC0zMjA4LDcgKzMyMDgsNyBAQCBi
b29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAg
ICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBpbnQgc2NvcGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgICAgICAg
ICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRp
ZmllclJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmRdOwotICAgICAgICAgICAg
U3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJd
OworICAgICAgICAgICAgQXRvbWljU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVy
cygpW2lkZW50aWZpZXJOdW1iZXJdOwogICAgICAgICAgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5
cGUgPSBSZXNvbHZlTW9kZUFuZFR5cGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCku
dHlwZSgpOwogCiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IDA7CkBAIC0zMjk3
LDcgKzMyOTcsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxp
bWl0KQogICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3Rh
Y2tUb3AtPm1faWRlbnRpZmllclJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmRd
OwogICAgICAgICAgICAgdW5zaWduZWQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOwogICAgICAgICAgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBSZXNvbHZlTW9k
ZUFuZFR5cGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkudHlwZSgpOwotICAgICAg
ICAgICAgU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJO
dW1iZXJdOworICAgICAgICAgICAgQXRvbWljU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVu
dGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogCiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IDA7CiAgICAgICAgICAgICBWYXJpYWJsZVdhdGNocG9pbnRTZXQqIHdhdGNocG9p
bnRzID0gMDsKQEAgLTM3MDksNyArMzcwOSw3IEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFj
a0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KAogICAgICAgICBtX3N3aXRjaFJlbWFwLnJlc2l6ZShj
b2RlQmxvY2stPm51bWJlck9mU3dpdGNoSnVtcFRhYmxlcygpKTsKIAogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZJZGVudGlmaWVycygpOyArK2kpIHsK
LSAgICAgICAgICAgIFN0cmluZ0ltcGwqIHJlcCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihpKS5p
bXBsKCk7CisgICAgICAgICAgICBBdG9taWNTdHJpbmdJbXBsKiByZXAgPSBjb2RlQmxvY2stPmlk
ZW50aWZpZXIoaSkuaW1wbCgpOwogICAgICAgICAgICAgQm9ycm93ZWRJZGVudGlmaWVyTWFwOjpB
ZGRSZXN1bHQgcmVzdWx0ID0gYnl0ZUNvZGVQYXJzZXItPm1faWRlbnRpZmllck1hcC5hZGQocmVw
LCBieXRlQ29kZVBhcnNlci0+bV9ncmFwaC5pZGVudGlmaWVycygpLm51bWJlck9mSWRlbnRpZmll
cnMoKSk7CiAgICAgICAgICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICAg
ICAgYnl0ZUNvZGVQYXJzZXItPm1fZ3JhcGguaWRlbnRpZmllcnMoKS5hZGRMYXppbHkocmVwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZElkZW50aWZp
ZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZElkZW50aWZpZXJz
LmNwcAppbmRleCBkZmE4ZmFhLi42MGE0OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEZXNpcmVkSWRlbnRpZmllcnMuY3BwCkBAIC01MiwxNCArNTIsMTQgQEAg
dW5zaWduZWQgRGVzaXJlZElkZW50aWZpZXJzOjpudW1iZXJPZklkZW50aWZpZXJzKCkKICAgICBy
ZXR1cm4gbV9jb2RlQmxvY2stPm51bWJlck9mSWRlbnRpZmllcnMoKSArIG1fYWRkZWRJZGVudGlm
aWVycy5zaXplKCk7CiB9CiAKLXZvaWQgRGVzaXJlZElkZW50aWZpZXJzOjphZGRMYXppbHkoU3Ry
aW5nSW1wbCogcmVwKQordm9pZCBEZXNpcmVkSWRlbnRpZmllcnM6OmFkZExhemlseShBdG9taWNT
dHJpbmdJbXBsKiByZXApCiB7CiAgICAgbV9hZGRlZElkZW50aWZpZXJzLmFwcGVuZChyZXApOwog
fQogCi1TdHJpbmdJbXBsKiBEZXNpcmVkSWRlbnRpZmllcnM6OmF0KHVuc2lnbmVkIGluZGV4KSBj
b25zdAorQXRvbWljU3RyaW5nSW1wbCogRGVzaXJlZElkZW50aWZpZXJzOjphdCh1bnNpZ25lZCBp
bmRleCkgY29uc3QKIHsKLSAgICBTdHJpbmdJbXBsKiByZXN1bHQ7CisgICAgQXRvbWljU3RyaW5n
SW1wbCogcmVzdWx0OwogICAgIGlmIChpbmRleCA8IG1fY29kZUJsb2NrLT5udW1iZXJPZklkZW50
aWZpZXJzKCkpCiAgICAgICAgIHJlc3VsdCA9IG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGluZGV4
KS5pbXBsKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RGVzaXJlZElkZW50aWZpZXJzLmgKaW5kZXggMTBjMjE1OS4uZjljZTM4MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkSWRlbnRpZmllcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5oCkBAIC00NSwx
NyArNDUsMTcgQEAgcHVibGljOgogICAgIH5EZXNpcmVkSWRlbnRpZmllcnMoKTsKICAgICAKICAg
ICB1bnNpZ25lZCBudW1iZXJPZklkZW50aWZpZXJzKCk7Ci0gICAgdm9pZCBhZGRMYXppbHkoU3Ry
aW5nSW1wbCopOworICAgIHZvaWQgYWRkTGF6aWx5KEF0b21pY1N0cmluZ0ltcGwqKTsKICAgICAK
LSAgICBTdHJpbmdJbXBsKiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgQXRvbWljU3Ry
aW5nSW1wbCogYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIAotICAgIFN0cmluZ0ltcGwq
IG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGF0KGluZGV4KTsgfQor
ICAgIEF0b21pY1N0cmluZ0ltcGwqIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIGF0KGluZGV4KTsgfQogICAgIAogICAgIHZvaWQgcmVhbGx5QWRkKFZNJiwgQ29tbW9u
RGF0YSopOwogICAgIAogcHJpdmF0ZToKICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwotICAg
IFZlY3RvcjxTdHJpbmdJbXBsKj4gbV9hZGRlZElkZW50aWZpZXJzOworICAgIFZlY3RvcjxBdG9t
aWNTdHJpbmdJbXBsKj4gbV9hZGRlZElkZW50aWZpZXJzOwogfTsKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggZDQwMzlkZC4uYWM0NzYzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCkBAIC0xNDQwLDcgKzE0NDAsNyBAQCBwcml2YXRlOgogICAgIH0KICAg
ICAKICAgICBib29sIGlzU3RyaW5nUHJvdG90eXBlTWV0aG9kU2FuZSgKLSAgICAgICAgSlNPYmpl
Y3QqIHN0cmluZ1Byb3RvdHlwZSwgU3RydWN0dXJlKiBzdHJpbmdQcm90b3R5cGVTdHJ1Y3R1cmUs
IFN0cmluZ0ltcGwqIHVpZCkKKyAgICAgICAgSlNPYmplY3QqIHN0cmluZ1Byb3RvdHlwZSwgU3Ry
dWN0dXJlKiBzdHJpbmdQcm90b3R5cGVTdHJ1Y3R1cmUsIEF0b21pY1N0cmluZ0ltcGwqIHVpZCkK
ICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXNVbnVzZWQ7CiAgICAgICAgIFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmgKaW5kZXggNzFkMDA1My4uMjMxYWIxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgSWRlbnRp
ZmllcihWTSogdm0sIGNvbnN0IFN0cmluZyYgcykgOiBtX3N0cmluZyhhZGQodm0sIHMuaW1wbCgp
KSkgeyBBU1NFUlQobV9zdHJpbmcuaW1wbCgpLT5pc0F0b21pYygpKTsgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZzsgfQotICAgIFN0cmluZ0lt
cGwqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5pbXBsKCk7IH0KKyAgICBBdG9taWNT
dHJpbmdJbXBsKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXRvbWljU3RyaW5n
SW1wbCo+KG1fc3RyaW5nLmltcGwoKSk7IH0KIAogICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX3N0cmluZy5sZW5ndGgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlbmRlZFN0cnVjdHVyZUNoYWluLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwCmluZGV4IDQ5MzNlMjUu
LmMyNDMyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVu
ZGVkU3RydWN0dXJlQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBJbnRl
bmRlZFN0cnVjdHVyZUNoYWluOjptYXRjaGVzKFN0cnVjdHVyZUNoYWluKiBjaGFpbikgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJbnRlbmRlZFN0cnVjdHVyZUNoYWluOjptYXlJ
bnRlcmNlcHRTdG9yZVRvKFN0cmluZ0ltcGwqIHVpZCkKK2Jvb2wgSW50ZW5kZWRTdHJ1Y3R1cmVD
aGFpbjo6bWF5SW50ZXJjZXB0U3RvcmVUbyhBdG9taWNTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAg
IHVuc2lnbmVkIGF0dHJpYnV0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlbmRlZFN0cnVjdHVyZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlbmRlZFN0cnVjdHVyZUNoYWluLmgKaW5kZXggZTc0MmRmOC4uM2MwMTkxNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZW5kZWRTdHJ1Y3R1
cmVDaGFpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVuZGVkU3Ry
dWN0dXJlQ2hhaW4uaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBp
c1N0aWxsVmFsaWQoKSBjb25zdDsKICAgICBib29sIG1hdGNoZXMoU3RydWN0dXJlQ2hhaW4qKSBj
b25zdDsKLSAgICBib29sIG1heUludGVyY2VwdFN0b3JlVG8oU3RyaW5nSW1wbCogdWlkKTsKKyAg
ICBib29sIG1heUludGVyY2VwdFN0b3JlVG8oQXRvbWljU3RyaW5nSW1wbCogdWlkKTsKICAgICBi
b29sIGlzTm9ybWFsaXplZCgpOwogICAgIAogICAgIGJvb2wgdGFrZXNTbG93UGF0aEluREZHRm9y
SW1wdXJlUHJvcGVydHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCmluZGV4IDE5ZmJhNGIuLmNhYmU1NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUu
aApAQCAtMzAsMTMgKzMwLDEzIEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
SW1wbC5oPgogCiAKICNkZWZpbmUgRFVNUF9QUk9QRVJUWU1BUF9TVEFUUyAwCiAjZGVmaW5lIERV
TVBfUFJPUEVSVFlNQVBfQ09MTElTSU9OUyAwCiAKLSNkZWZpbmUgUFJPUEVSVFlfTUFQX0RFTEVU
RURfRU5UUllfS0VZICgoU3RyaW5nSW1wbCopMSkKKyNkZWZpbmUgUFJPUEVSVFlfTUFQX0RFTEVU
RURfRU5UUllfS0VZICgoQXRvbWljU3RyaW5nSW1wbCopMSkKIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENlbGxUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAgdHlwZWRlZiBTdHJpbmdJbXBsKiBL
ZXlUeXBlOworICAgIHR5cGVkZWYgQXRvbWljU3RyaW5nSW1wbCogS2V5VHlwZTsKICAgICB0eXBl
ZGVmIFByb3BlcnR5TWFwRW50cnkgVmFsdWVUeXBlOwogCiAgICAgLy8gVGhlIGluIG9yZGVyIGl0
ZXJhdG9yIHByb3ZpZGVzIG92ZXJsb2FkZWQgKiBhbmQgLT4gdG8gYWNjZXNzIHRoZSBWYWx1ZSBh
dCB0aGUgY3VycmVudCBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCmluZGV4IDdhZGIwMzguLjg2ZDBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIHN0YXRpYyBIYXNoU2V0PFN0cnVjdHVyZSo+JiBsaXZlU3RydWN0dXJlU2V0ID0gKihu
ZXcgSGFzaFNldDxTdHJ1Y3R1cmUqPik7CiAjZW5kaWYKIAotYm9vbCBTdHJ1Y3R1cmVUcmFuc2l0
aW9uVGFibGU6OmNvbnRhaW5zKFN0cmluZ0ltcGwqIHJlcCwgdW5zaWduZWQgYXR0cmlidXRlcykg
Y29uc3QKK2Jvb2wgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOjpjb250YWlucyhBdG9taWNTdHJp
bmdJbXBsKiByZXAsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpIGNvbnN0CiB7CiAgICAgaWYgKGlzVXNp
bmdTaW5nbGVTbG90KCkpIHsKICAgICAgICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gc2luZ2xl
VHJhbnNpdGlvbigpOwpAQCAtNjgsNyArNjgsNyBAQCBib29sIFN0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZTo6Y29udGFpbnMoU3RyaW5nSW1wbCogcmVwLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKSBjbwog
ICAgIHJldHVybiBtYXAoKS0+Z2V0KHN0ZDo6bWFrZV9wYWlyKHJlcCwgYXR0cmlidXRlcykpOwog
fQogCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OmdldChTdHJp
bmdJbXBsKiByZXAsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpIGNvbnN0CitpbmxpbmUgU3RydWN0dXJl
KiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OmdldChBdG9taWNTdHJpbmdJbXBsKiByZXAsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpIGNvbnN0CiB7CiAgICAgaWYgKGlzVXNpbmdTaW5nbGVTbG90KCkp
IHsKICAgICAgICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gc2luZ2xlVHJhbnNpdGlvbigpOwpA
QCAtMzE1LDcgKzMxNSw3IEBAIHZvaWQgU3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3BlcnR5TWFw
KFZNJiB2bSkKICAgICBjaGVja09mZnNldENvbnNpc3RlbmN5KCk7CiB9CiAKLVN0cnVjdHVyZSog
U3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0dXJlSW1wbChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
LCBQcm9wZXJ0eU9mZnNldCYgb2Zmc2V0KQorU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3Bl
cnR5VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVJbXBsKFN0cnVjdHVyZSogc3RydWN0dXJl
LCBBdG9taWNTdHJpbmdJbXBsKiB1aWQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5T2Zm
c2V0JiBvZmZzZXQpCiB7CiAgICAgQVNTRVJUKCFzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpKTsK
ICAgICBBU1NFUlQoc3RydWN0dXJlLT5pc09iamVjdCgpKTsKQEAgLTMzNSw3ICszMzUsNyBAQCBT
dHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVj
dHVyZShTdHJ1Y3R1cmUqIHN0cnVjdAogICAgIHJldHVybiBhZGRQcm9wZXJ0eVRyYW5zaXRpb25U
b0V4aXN0aW5nU3RydWN0dXJlSW1wbChzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZS51aWQoKSwgYXR0
cmlidXRlcywgb2Zmc2V0KTsKIH0KIAotU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5
VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkoU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFN0cmluZ0ltcGwqIHVpZCwgdW5zaWduZWQgYXR0cmlidXRlcywgUHJvcGVydHlPZmZz
ZXQmIG9mZnNldCkKK1N0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb25U
b0V4aXN0aW5nU3RydWN0dXJlQ29uY3VycmVudGx5KFN0cnVjdHVyZSogc3RydWN0dXJlLCBBdG9t
aWNTdHJpbmdJbXBsKiB1aWQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5T2Zmc2V0JiBv
ZmZzZXQpCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3RydWN0dXJlLT5tX2xv
Y2spOwogICAgIHJldHVybiBhZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0dXJl
SW1wbChzdHJ1Y3R1cmUsIHVpZCwgYXR0cmlidXRlcywgb2Zmc2V0KTsKQEAgLTg1MCw3ICs4NTAs
NyBAQCBQcm9wZXJ0eVRhYmxlKiBTdHJ1Y3R1cmU6OmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmlu
ZyhWTSYgdm0pCiAgICAgcmV0dXJuIFByb3BlcnR5VGFibGU6OmNyZWF0ZSh2bSwgbnVtYmVyT2ZT
bG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKIH0KIAotUHJv
cGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlkLCB1
bnNpZ25lZCYgYXR0cmlidXRlcykKK1Byb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0Q29uY3Vy
cmVudGx5KEF0b21pY1N0cmluZ0ltcGwqIHVpZCwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgUHJvcGVydHlPZmZzZXQgcmVzdWx0ID0gaW52YWxpZE9mZnNldDsKICAgICAKQEAgLTg5MCw3
ICs4OTAsNyBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmFkZChWTSYgdm0sIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYgogICAgIGlmIChhdHRyaWJ1dGVzICYg
RG9udEVudW0pCiAgICAgICAgIHNldEhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKHRydWUpOwog
Ci0gICAgU3RyaW5nSW1wbCogcmVwID0gcHJvcGVydHlOYW1lLnVpZCgpOworICAgIEF0b21pY1N0
cmluZ0ltcGwqIHJlcCA9IHByb3BlcnR5TmFtZS51aWQoKTsKIAogICAgIGlmICghcHJvcGVydHlU
YWJsZSgpKQogICAgICAgICBjcmVhdGVQcm9wZXJ0eU1hcChsb2NrZXIsIHZtKTsKQEAgLTkwOSw3
ICs5MDksNyBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OnJlbW92ZShQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogICAgIAogICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIAotICAgIFN0cmlu
Z0ltcGwqIHJlcCA9IHByb3BlcnR5TmFtZS51aWQoKTsKKyAgICBBdG9taWNTdHJpbmdJbXBsKiBy
ZXAgPSBwcm9wZXJ0eU5hbWUudWlkKCk7CiAKICAgICBpZiAoIXByb3BlcnR5VGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCmluZGV4IGY2Yjc4ODcuLjRkN2U1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC00OCw4ICs0OCw3IEBACiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KLQorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTc0LDcgKzczLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxPdXRPZkxpbmVD
YXBhY2l0eSA9IDQ7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgb3V0T2ZMaW5lR3Jvd3RoRmFjdG9y
ID0gMjsKIAogc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewotICAgIFN0cmluZ0ltcGwqIGtleTsK
KyAgICBBdG9taWNTdHJpbmdJbXBsKiBrZXk7CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0Owog
ICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CiAKQEAgLTg1LDcgKzg0LDcgQEAgc3RydWN0IFByb3Bl
cnR5TWFwRW50cnkgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgUHJvcGVydHlNYXBFbnRyeShT
dHJpbmdJbXBsKiBrZXksIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgdW5zaWduZWQgYXR0cmlidXRl
cykKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KEF0b21pY1N0cmluZ0ltcGwqIGtleSwgUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgICAgICA6IGtleShrZXkpCiAg
ICAgICAgICwgb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMp
CkBAIC0xMzMsNyArMTMyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBTdGF0aXN0
aWNzKCk7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RydWN0dXJlKiBhZGRQcm9w
ZXJ0eVRyYW5zaXRpb24oVk0mLCBTdHJ1Y3R1cmUqLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMsIFByb3BlcnR5T2Zmc2V0JiwgUHV0UHJvcGVydHlTbG90OjpDb250ZXh0ID0gUHV0
UHJvcGVydHlTbG90OjpVbmtub3duQ29udGV4dCk7Ci0gICAgc3RhdGljIFN0cnVjdHVyZSogYWRk
UHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUNvbmN1cnJlbnRseShTdHJ1Y3R1
cmUqLCBTdHJpbmdJbXBsKiB1aWQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5T2Zmc2V0
Jik7CisgICAgc3RhdGljIFN0cnVjdHVyZSogYWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGlu
Z1N0cnVjdHVyZUNvbmN1cnJlbnRseShTdHJ1Y3R1cmUqLCBBdG9taWNTdHJpbmdJbXBsKiB1aWQs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5T2Zmc2V0Jik7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFN0cnVjdHVyZSogYWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0
cnVjdHVyZShTdHJ1Y3R1cmUqLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFBy
b3BlcnR5T2Zmc2V0Jik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogcmVtb3ZlUHJvcGVydHlUcmFu
c2l0aW9uKFZNJiwgU3RydWN0dXJlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eU9mZnNldCYpOwog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBTdHJ1Y3R1cmUqIGNoYW5nZVByb3RvdHlwZVRy
YW5zaXRpb24oVk0mLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CkBAIC0yODksOCAr
Mjg4LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CiAgICAgdm9p
ZCBmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoY29uc3QgRnVuY3RvciYpOwogICAgIAotICAg
IFByb3BlcnR5T2Zmc2V0IGdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQpOwotICAgIFBy
b3BlcnR5T2Zmc2V0IGdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQsIHVuc2lnbmVkJiBh
dHRyaWJ1dGVzKTsKKyAgICBQcm9wZXJ0eU9mZnNldCBnZXRDb25jdXJyZW50bHkoQXRvbWljU3Ry
aW5nSW1wbCogdWlkKTsKKyAgICBQcm9wZXJ0eU9mZnNldCBnZXRDb25jdXJyZW50bHkoQXRvbWlj
U3RyaW5nSW1wbCogdWlkLCB1bnNpZ25lZCYgYXR0cmlidXRlcyk7CiAgICAgCiAgICAgVmVjdG9y
PFByb3BlcnR5TWFwRW50cnk+IGdldFByb3BlcnRpZXNDb25jdXJyZW50bHkoKTsKICAgICAKQEAg
LTQ4Niw3ICs0ODUsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
KFZNJiwgU3RydWN0dXJlKik7CiAgICAgCi0gICAgc3RhdGljIFN0cnVjdHVyZSogYWRkUHJvcGVy
dHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUltcGwoU3RydWN0dXJlKiwgU3RyaW5nSW1w
bCogdWlkLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBQcm9wZXJ0eU9mZnNldCYpOworICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGFkZFByb3BlcnR5VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVJbXBs
KFN0cnVjdHVyZSosIEF0b21pY1N0cmluZ0ltcGwqIHVpZCwgdW5zaWduZWQgYXR0cmlidXRlcywg
UHJvcGVydHlPZmZzZXQmKTsKIAogICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIHN0cnVjdHVy
ZSB0aGF0IGhhcyBhIHVzYWJsZSBwcm9wZXJ0eSB0YWJsZSwgdGhhdCBwcm9wZXJ0eSB0YWJsZSwK
ICAgICAvLyBhbmQgdGhlIGxpc3Qgb2Ygc3RydWN0dXJlcyB0aGF0IHdlIHZpc2l0ZWQgYmVmb3Jl
IHdlIGdvdCB0byBpdC4gSWYgaXQgcmV0dXJucyBhCkBAIC01OTQsNyArNTkzLDcgQEAgcHJpdmF0
ZToKIAogICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fcHJldmlvdXNPclJhcmVEYXRhOwogCi0g
ICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbmFtZUluUHJldmlvdXM7CisgICAgUmVmUHRyPEF0b21p
Y1N0cmluZ0ltcGw+IG1fbmFtZUluUHJldmlvdXM7CiAKICAgICBjb25zdCBDbGFzc0luZm8qIG1f
Y2xhc3NJbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmgKaW5kZXggMDY2OGNiNy4uMjY5MjkyYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaApAQCAtMTMzLDcgKzEzMyw3IEBA
IHZvaWQgU3RydWN0dXJlOjpmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoY29uc3QgRnVuY3Rv
ciYgZnVuY3RvcikKICAgICB9CiB9CiAKLWlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6
OmdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQpCitpbmxpbmUgUHJvcGVydHlPZmZzZXQg
U3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkoQXRvbWljU3RyaW5nSW1wbCogdWlkKQogewogICAg
IHVuc2lnbmVkIGF0dHJpYnV0ZXNJZ25vcmVkOwogICAgIHJldHVybiBnZXRDb25jdXJyZW50bHko
dWlkLCBhdHRyaWJ1dGVzSWdub3JlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCmluZGV4IDI3YzBhNzkuLjEz
MGVmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZVRyYW5zaXRpb25UYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV2Vh
a0dDTWFwLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTk0LDEx
ICs5NCwxMSBAQCBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUgewogCiAgICAgCiAgICAg
c3RydWN0IEhhc2ggewotICAgICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxTdHJpbmdJbXBsKiwgdW5z
aWduZWQ+IEtleTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8QXRvbWljU3RyaW5nSW1wbCos
IHVuc2lnbmVkPiBLZXk7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChj
b25zdCBLZXkmIHApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBQdHJIYXNoPFN0cmlu
Z0ltcGwqPjo6aGFzaChwLmZpcnN0KSArIHAuc2Vjb25kOworICAgICAgICAgICAgcmV0dXJuIFB0
ckhhc2g8QXRvbWljU3RyaW5nSW1wbCo+OjpoYXNoKHAuZmlyc3QpICsgcC5zZWNvbmQ7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBLZXkmIGEsIGNvbnN0IEtl
eSYgYikKQEAgLTEzMSw4ICsxMzEsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgaW5saW5lIHZv
aWQgYWRkKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgaW5saW5lIGJvb2wgY29udGFpbnMoU3RyaW5n
SW1wbCogcmVwLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKSBjb25zdDsKLSAgICBpbmxpbmUgU3RydWN0
dXJlKiBnZXQoU3RyaW5nSW1wbCogcmVwLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKSBjb25zdDsKKyAg
ICBpbmxpbmUgYm9vbCBjb250YWlucyhBdG9taWNTdHJpbmdJbXBsKiByZXAsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpIGNvbnN0OworICAgIGlubGluZSBTdHJ1Y3R1cmUqIGdldChBdG9taWNTdHJpbmdJ
bXBsKiByZXAsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGJv
b2wgaXNVc2luZ1NpbmdsZVNsb3QoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>