<?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>59966</bug_id>
          
          <creation_ts>2011-05-02 15:16:27 -0700</creation_ts>
          <short_desc>Update ID hash on the containing TreeScope rather than the Document</short_desc>
          <delta_ts>2011-05-03 10:17:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>59832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Roland Steiner">rolandsteiner</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>396709</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-05-02 15:16:27 -0700</bug_when>
    <thetext>Part of the work outlined in 59832 to reduce patch size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396731</commentid>
    <comment_count>1</comment_count>
      <attachid>91994</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-05-02 15:41:04 -0700</bug_when>
    <thetext>Created attachment 91994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396757</commentid>
    <comment_count>2</comment_count>
      <attachid>91994</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-02 16:08:44 -0700</bug_when>
    <thetext>Comment on attachment 91994
Patch

This looks great! I am assuming you ran all tests on this? Can you run and watch, rather than cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396759</commentid>
    <comment_count>3</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-05-02 16:12:16 -0700</bug_when>
    <thetext>Sure thing! I did run all the tests, but to be on the safe side let&apos;s wait for the EWS bots to finish as well. Will land tomorrow then, if all is peachy green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397155</commentid>
    <comment_count>4</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-05-03 10:17:53 -0700</bug_when>
    <thetext>Committed r85617: &lt;http://trac.webkit.org/changeset/85617&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91994</attachid>
            <date>2011-05-02 15:41:04 -0700</date>
            <delta_ts>2011-05-02 16:08:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59966-20110502154102.patch</filename>
            <type>text/plain</type>
            <size>29186</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YTk3NWMwZTU5YzFhNWMw
OThlYmRkMzQ5M2JlNzQ5NmRjMDA5NzBiLi42ZWRhYjNjMjlmNzI5MTQxYjA5ZjNjNWIyMGVkZjNm
NDg2MjI4MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTEtMDUtMDIgIFJvbGFu
ZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDU5OTY2IC0gVXBkYXRlIElEIGhh
c2ggb24gdGhlIGNvbnRhaW5pbmcgVHJlZVNjb3BlIHJhdGhlciB0aGFuIHRoZSBEb2N1bWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk5NjYKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChyZWZhY3RvcmluZykKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjplbGVtZW50c0Zyb21BdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWN0aXZlRGVzY2VuZGFudCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlc291cmNlUmVmZXJlbmNlZEJ5Q3Vyc29yRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjp+Q1NTQ3Vyc29ySW1hZ2VWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVJZlNWR0N1
cnNvcklzVXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpjYWNo
ZWRJbWFnZSk6CisgICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6Oml0ZW1XaXRoTmFtZSk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUlkKToKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpxdWVyeVNlbGVjdG9yKToK
KyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpyZXNldEZvcm1Pd25lcik6CisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmRhdGFMaXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdUZXh0UGF0aDo6bGF5b3V0UGF0aCk6CisgICAgICAgICogc3ZnL1NWR0FFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FsdEdseXBoRWxlbWVudDo6Z2x5cGhFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1l
bnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VF
bGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNvbGxlY3RH
cmFkaWVudEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTVBhdGhFbGVtZW50OjpwYXRoRWxlbWVudCk6CisgICAgICAg
ICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRl
cm5FbGVtZW50Ojpjb2xsZWN0UGF0dGVybkF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50Ojpjb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBzdmcv
U1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpnZXRF
bGVtZW50QnlJZCk6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCk6CisgICAgICAg
ICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
UGF0aEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVXNl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZFBlbmRp
bmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpoYXNDeWNsZVVz
ZVJlZmVyZW5jaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVz
ZUVsZW1lbnRzSW5TaGFkb3dUcmVlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnZpZXdUYXJnZXQpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01J
TEVsZW1lbnQ6OmV2ZW50QmFzZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVu
dDo6Y29ubmVjdENvbmRpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OnRhcmdldEVsZW1lbnQpOgorICAgICAgICAqIHhtbC9YUGF0aEZ1bmN0aW9ucy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuSWQ6OmV2YWx1YXRlKToKKwogMjAxMS0wNS0wMiAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMjhiZWJlNzNiOGEy
MzEzYzQyNTU1ZTc0MmYzMmQ1NDg0N2YzMmM0OS4uNjk3ZTA4ZmZkZWU4Y2UzMzUzMmI0YjE0N2U4
YzQ2OWJhMTY3ZjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMjEzLDggKzEyMTMsOCBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmVsZW1lbnRzRnJvbUF0dHJpYnV0ZShW
ZWN0b3I8RWxlbWVudCo+JiBlbGVtZW50cwogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X3JlbmRlcmVyLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCisgICAgVHJlZVNjb3Bl
KiBzY29wZSA9IG5vZGUtPnRyZWVTY29wZSgpOworICAgIGlmICghc2NvcGUpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBTdHJpbmcgaWRMaXN0ID0gZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSku
c3RyaW5nKCk7CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmVsZW1lbnRzRnJvbUF0dHJpYnV0ZShWZWN0b3I8RWxlbWVudCo+JiBlbGVtZW50cwog
ICAgIHVuc2lnbmVkIHNpemUgPSBpZFZlY3Rvci5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBTdHJpbmcgaWROYW1lID0gaWRWZWN0b3Jb
aV07Ci0gICAgICAgIEVsZW1lbnQqIGlkRWxlbWVudCA9IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJ
ZChpZE5hbWUpOworICAgICAgICBFbGVtZW50KiBpZEVsZW1lbnQgPSBzY29wZS0+Z2V0RWxlbWVu
dEJ5SWQoaWROYW1lKTsKICAgICAgICAgaWYgKGlkRWxlbWVudCkKICAgICAgICAgICAgIGVsZW1l
bnRzLmFwcGVuZChpZEVsZW1lbnQpOwogICAgIH0KQEAgLTI4MzcsNyArMjgzNyw3IEBAIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjdGl2ZURlc2NlbmRh
bnQoKSBjb25zdAogICAgIGlmIChhY3RpdmVEZXNjZW5kYW50QXR0clN0ci5pc051bGwoKSB8fCBh
Y3RpdmVEZXNjZW5kYW50QXR0clN0ci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IAotICAgIEVsZW1lbnQqIHRhcmdldCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGFjdGl2
ZURlc2NlbmRhbnRBdHRyU3RyKTsKKyAgICBFbGVtZW50KiB0YXJnZXQgPSBlbGVtZW50LT50cmVl
U2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoYWN0aXZlRGVzY2VuZGFudEF0dHJTdHIpOwogICAgIGlm
ICghdGFyZ2V0KQogICAgICAgICByZXR1cm4gMDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXgg
NDNhNmI4NzcxNjRhMjI1M2RjYmYwYjgxODcxODI4ZWM1MjVkN2Q0Ny4uNGFhOTNjMGFlZmYwYmJm
ZjA2Mzk1NGNjZWFjNDE0YzkwYjFlMmVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTYyLDcgKzYy
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KCk7CiAgICAgCi0gICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBbmNob3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRhY2htZW50
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5k
ZXggYWI4M2JiNzFiYTNkYWJmZDFmMDc1MWY5NTVmNDI5NWYzZTVjZGI5ZC4uM2YyMzE2ZDZkNGNl
YzI1M2EyM2Q4OTNhMDE0OGY0MzY0OWNhMDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgIkNTU0N1cnNv
ckltYWdlVmFsdWUuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L1VudXNlZFBhcmFtLmg+CkBAIC00Myw5ICs0Myw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NW
R0N1cnNvcklkZW50aWZpZXIoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgcmV0dXJuIGt1cmwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVu
dCogcmVzb3VyY2VSZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KGNvbnN0IFN0cmluZyYgZnJhZ21l
bnRJZCwgRG9jdW1lbnQqIGRvY3VtZW50KQorc3RhdGljIGlubGluZSBTVkdDdXJzb3JFbGVtZW50
KiByZXNvdXJjZVJlZmVyZW5jZWRCeUN1cnNvckVsZW1lbnQoY29uc3QgU3RyaW5nJiBmcmFnbWVu
dElkLCBUcmVlU2NvcGUqIHNjb3BlKQogewotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVu
dC0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoZnJhZ21lbnRJZCkp
OworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY29wZS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVm
ZXJlbmNlOjpnZXRUYXJnZXQoZnJhZ21lbnRJZCkpOwogICAgIGlmIChlbGVtZW50ICYmIGVsZW1l
bnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmN1cnNvclRhZykpCiAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdDdXJzb3JFbGVtZW50Kj4oZWxlbWVudCk7CiAKQEAgLTcyLDcgKzcyLDcgQEAg
Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6fkNTU0N1cnNvckltYWdlVmFsdWUoKQogICAgIGZvciAoOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgU1ZHRWxlbWVudCogcmVmZXJlbmNlZEVsZW1lbnQg
PSAqaXQ7CiAgICAgICAgIHJlZmVyZW5jZWRFbGVtZW50LT5jdXJzb3JJbWFnZVZhbHVlUmVtb3Zl
ZCgpOwotICAgICAgICBpZiAoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCA9IHJlc291
cmNlUmVmZXJlbmNlZEJ5Q3Vyc29yRWxlbWVudCh1cmwsIHJlZmVyZW5jZWRFbGVtZW50LT5kb2N1
bWVudCgpKSkKKyAgICAgICAgaWYgKFNWR0N1cnNvckVsZW1lbnQqIGN1cnNvckVsZW1lbnQgPSBy
ZXNvdXJjZVJlZmVyZW5jZWRCeUN1cnNvckVsZW1lbnQodXJsLCByZWZlcmVuY2VkRWxlbWVudC0+
dHJlZVNjb3BlKCkpKQogICAgICAgICAgICAgY3Vyc29yRWxlbWVudC0+cmVtb3ZlQ2xpZW50KHJl
ZmVyZW5jZWRFbGVtZW50KTsKICAgICB9CiAjZW5kaWYKQEAgLTkwLDcgKzkwLDcgQEAgYm9vbCBD
U1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVJZlNWR0N1cnNvcklzVXNlZChFbGVtZW50KiBlbGVt
ZW50KQogICAgIGlmICghaXNTVkdDdXJzb3JJZGVudGlmaWVyKHVybCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGlmIChTVkdDdXJzb3JFbGVtZW50KiBjdXJzb3JFbGVtZW50ID0gcmVz
b3VyY2VSZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KHVybCwgZWxlbWVudC0+ZG9jdW1lbnQoKSkp
IHsKKyAgICBpZiAoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCA9IHJlc291cmNlUmVm
ZXJlbmNlZEJ5Q3Vyc29yRWxlbWVudCh1cmwsIGVsZW1lbnQtPnRyZWVTY29wZSgpKSkgewogICAg
ICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIG92ZXJyaWRlIGhvdCBzcG90IHNwZWNpZmllZCBpbiBD
U1MsIHdoaWNoIGlzIHByb2JhYmx5IGluY29ycmVjdC4KICAgICAgICAgZmxvYXQgeCA9IHJvdW5k
ZihjdXJzb3JFbGVtZW50LT54KCkudmFsdWUoMCkpOwogICAgICAgICBtX2hvdFNwb3Quc2V0WChz
dGF0aWNfY2FzdDxpbnQ+KHgpKTsKQEAgLTExOCw2ICsxMTgsNyBAQCBTdHlsZUNhY2hlZEltYWdl
KiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciog
bG9hZGVyKQogCiAjaWYgRU5BQkxFKFNWRykgCiAgICAgaWYgKGlzU1ZHQ3Vyc29ySWRlbnRpZmll
cih1cmwpICYmIGxvYWRlciAmJiBsb2FkZXItPmRvY3VtZW50KCkpIHsKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgd2lsbCBmYWlsIGlmIHRoZSA8Y3Vyc29yPiBlbGVtZW50IGlzIGluIGEgc2hhZG93
IERPTSAoYnVnIDU5ODI3KQogICAgICAgICBpZiAoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxl
bWVudCA9IHJlc291cmNlUmVmZXJlbmNlZEJ5Q3Vyc29yRWxlbWVudCh1cmwsIGxvYWRlci0+ZG9j
dW1lbnQoKSkpCiAgICAgICAgICAgICB1cmwgPSBjdXJzb3JFbGVtZW50LT5ocmVmKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAppbmRleCAyMzY2NGU4OTJhMDMx
OWMyNDU0N2RjOWU2ZWM2MGNlY2Q3N2IzZWRmLi5iYWNkNjk0YWI2YzI1ZDg0NDk2NWU4ZWZjNDUx
NjExM2FhZDdhNmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcApAQCAt
MTIyLDcgKzEyMiw3IEBAIE5vZGUqIER5bmFtaWNOb2RlTGlzdDo6aXRlbSh1bnNpZ25lZCBvZmZz
ZXQpIGNvbnN0CiBOb2RlKiBEeW5hbWljTm9kZUxpc3Q6Oml0ZW1XaXRoTmFtZShjb25zdCBBdG9t
aWNTdHJpbmcmIGVsZW1lbnRJZCkgY29uc3QKIHsKICAgICBpZiAobV9yb290Tm9kZS0+aXNEb2N1
bWVudE5vZGUoKSB8fCBtX3Jvb3ROb2RlLT5pbkRvY3VtZW50KCkpIHsKLSAgICAgICAgRWxlbWVu
dCogbm9kZSA9IG1fcm9vdE5vZGUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgIEVsZW1lbnQqIG5vZGUgPSBtX3Jvb3ROb2RlLT50cmVlU2NvcGUoKS0+Z2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKICAgICAgICAgaWYgKG5vZGUgJiYgbm9kZU1hdGNoZXMo
bm9kZSkpIHsKICAgICAgICAgICAgIGZvciAoQ29udGFpbmVyTm9kZSogcCA9IG5vZGUtPnBhcmVu
dE5vZGUoKTsgcDsgcCA9IHAtPnBhcmVudE5vZGUoKSkgewogICAgICAgICAgICAgICAgIGlmIChw
ID09IG1fcm9vdE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBhODcxODljYjAyZDc4YzI5ZTA5
NGI3YzI5MTA4ZmYxYTU0ZDA1NmI3Li5jZWJmNzFmZjQ5YmU3YjUwMWU1YjMyZGZlNmZkZTZiZjVk
NDhlM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ4NCwxMSArNDg0LDExIEBAIGlubGluZSB2
b2lkIEVsZW1lbnQ6OnVwZGF0ZUlkKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0IEF0
b21pY1N0cmluZyYgbmV3CiAgICAgaWYgKG9sZElkID09IG5ld0lkKQogICAgICAgICByZXR1cm47
CiAKLSAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKTsKKyAgICBUcmVlU2NvcGUqIHNjb3Bl
ID0gdHJlZVNjb3BlKCk7CiAgICAgaWYgKCFvbGRJZC5pc0VtcHR5KCkpCi0gICAgICAgIGRvYy0+
cmVtb3ZlRWxlbWVudEJ5SWQob2xkSWQsIHRoaXMpOworICAgICAgICBzY29wZS0+cmVtb3ZlRWxl
bWVudEJ5SWQob2xkSWQsIHRoaXMpOwogICAgIGlmICghbmV3SWQuaXNFbXB0eSgpKQotICAgICAg
ICBkb2MtPmFkZEVsZW1lbnRCeUlkKG5ld0lkLCB0aGlzKTsKKyAgICAgICAgc2NvcGUtPmFkZEVs
ZW1lbnRCeUlkKG5ld0lkLCB0aGlzKTsKIH0KIAogaW5saW5lIGJvb2wgRWxlbWVudDo6ZmFzdEhh
c0F0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CmluZGV4IDE0MDdkN2VlNmVkODhhMTIzMTM2Zjk5NTBlYmZmYWUxYWFiMGI2ZjUuLmExMzM3OWFh
MmU4NjBmZTI5MzY0MjkxNTFmZTMyMmY2YWY3YTRiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE4
NzksNyArMTg3OSw3IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gTm9kZTo6cXVlcnlTZWxlY3Rvcihj
b25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYKIAogICAgIC8vIEZJWE1FOiB3
ZSBjb3VsZCBhbHNvIG9wdGltaXplIGZvciB0aGUgdGhlIFtpZD0iZm9vIl0gY2FzZQogICAgIGlm
IChzdHJpY3RQYXJzaW5nICYmIGluRG9jdW1lbnQoKSAmJiBxdWVyeVNlbGVjdG9yTGlzdC5oYXNP
bmVTZWxlY3RvcigpICYmIHF1ZXJ5U2VsZWN0b3JMaXN0LmZpcnN0KCktPm1fbWF0Y2ggPT0gQ1NT
U2VsZWN0b3I6OklkKSB7Ci0gICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudCgpLT5n
ZXRFbGVtZW50QnlJZChxdWVyeVNlbGVjdG9yTGlzdC5maXJzdCgpLT52YWx1ZSgpKTsKKyAgICAg
ICAgRWxlbWVudCogZWxlbWVudCA9IHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChxdWVyeVNl
bGVjdG9yTGlzdC5maXJzdCgpLT52YWx1ZSgpKTsKICAgICAgICAgaWYgKGVsZW1lbnQgJiYgKGlz
RG9jdW1lbnROb2RlKCkgfHwgZWxlbWVudC0+aXNEZXNjZW5kYW50T2YodGhpcykpICYmIHNlbGVj
dG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKHF1ZXJ5U2VsZWN0b3JMaXN0LmZpcnN0KCksIGVsZW1l
bnQpKQogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGVhMzZi
MmEyMjc3MDlmMTNiNWI5M2VjMjljMmUyZGNiOTc3ZGFkODIuLjZiNTg4YjQ4Yjk5NzRkZjFmNDY5
NWFkMDgzYzhlZDAyNWNjMmUyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9y
bUFzc29jaWF0ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoKQogewogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
dG9IVE1MRWxlbWVudCh0aGlzKTsKICAgICBpZiAoZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShm
b3JtQXR0cikpIHsKLSAgICAgICAgRWxlbWVudCogZm9ybUVsZW1lbnQgPSBlbGVtZW50LT5kb2N1
bWVudCgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGZvcm1BdHRy
KSk7CisgICAgICAgIEVsZW1lbnQqIGZvcm1FbGVtZW50ID0gZWxlbWVudC0+dHJlZVNjb3BlKCkt
PmdldEVsZW1lbnRCeUlkKGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoZm9ybUF0dHIpKTsKICAg
ICAgICAgaWYgKGZvcm1FbGVtZW50ICYmIGZvcm1FbGVtZW50LT5oYXNUYWdOYW1lKGZvcm1UYWcp
KSB7CiAgICAgICAgICAgICBpZiAobV9mb3JtKQogICAgICAgICAgICAgICAgIG1fZm9ybS0+cmVt
b3ZlRm9ybUVsZW1lbnQodGhpcyk7CkBAIC0xMzYsOCArMTM2LDggQEAgdm9pZCBGb3JtQXNzb2Np
YXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICAg
ICAgLy8gVGhlIEhUTUw1IHNwZWMgc2F5cyB0aGF0IHRoZSBlbGVtZW50IHNob3VsZCBiZSBhc3Nv
Y2lhdGVkIHdpdGgKICAgICAgICAgLy8gdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50
IHRvIGhhdmUgYW4gSUQgdGhhdCBlcXVhbCB0bwogICAgICAgICAvLyB0aGUgdmFsdWUgb2YgZm9y
bSBhdHRyaWJ1dGUsIHNvIHdlIHB1dCB0aGUgcmVzdWx0IG9mCi0gICAgICAgIC8vIGRvY3VtZW50
KCktPmdldEVsZW1lbnRCeUlkKCkgb3ZlciB0aGUgZ2l2ZW4gZWxlbWVudC4KLSAgICAgICAgRWxl
bWVudCogZmlyc3RFbGVtZW50ID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQo
Zm9ybUlkKTsKKyAgICAgICAgLy8gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKCkgb3ZlciB0
aGUgZ2l2ZW4gZWxlbWVudC4KKyAgICAgICAgRWxlbWVudCogZmlyc3RFbGVtZW50ID0gZWxlbWVu
dC0+dHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKGZvcm1JZCk7CiAgICAgICAgIGlmIChmaXJz
dEVsZW1lbnQgJiYgZmlyc3RFbGVtZW50LT5oYXNUYWdOYW1lKGZvcm1UYWcpKQogICAgICAgICAg
ICAgbV9mb3JtID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZmlyc3RFbGVtZW50KTsK
ICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggYmUzZThlNzk4N2MxOGI2NmUzMGE4YzQzZTk3MGRlMzljNDQ0ZjhjOC4uZjljY2FmOTA0Yzc3
MzBjNzllODk2YTc5YzU5YmU2NDMyMjQwN2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0xMjkxLDcgKzEyOTEsNyBAQCBIVE1MRGF0YUxpc3RFbGVtZW50
KiBIVE1MSW5wdXRFbGVtZW50OjpkYXRhTGlzdCgpIGNvbnN0CiAgICAgaWYgKCFtX2lucHV0VHlw
ZS0+c2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZmFzdEdldEF0
dHJpYnV0ZShsaXN0QXR0cikpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0cmVlU2NvcGUoKS0+
Z2V0RWxlbWVudEJ5SWQoZmFzdEdldEF0dHJpYnV0ZShsaXN0QXR0cikpOwogICAgIGlmICghZWxl
bWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKGRh
dGFsaXN0VGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4
IDk3YTBjNjU5OGE1NDVjZGVkYTljYTFhMGJlY2Y1NDRkOTYwMjFhMTQuLmYyMzYxZjAzYWE4ODFk
NmZhMTUzZTkyNjI5OWRkNTc5ZjVjMTVlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFi
ZWxFbGVtZW50LmNwcApAQCAtODEsNyArODEsNyBAQCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBI
VE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKICAgICAKICAgICAvLyBGaW5kIHRoZSBmaXJzdCBl
bGVtZW50IHdob3NlIGlkIGlzIGNvbnRyb2xJZC4gSWYgaXQgaXMgZm91bmQgYW5kIGl0IGlzIGEg
bGFiZWxhYmxlIGZvcm0gY29udHJvbCwKICAgICAvLyByZXR1cm4gaXQsIG90aGVyd2lzZSByZXR1
cm4gMC4KLSAgICByZXR1cm4gbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2woZG9jdW1lbnQoKS0+
Z2V0RWxlbWVudEJ5SWQoY29udHJvbElkKSk7CisgICAgcmV0dXJuIG5vZGVBc0xhYmVsYWJsZUZv
cm1Db250cm9sKHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb250cm9sSWQpKTsKIH0KIAog
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0
aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNw
cAppbmRleCA0NzEyZGRjOWRiM2I2M2MxMWI0NTMzNDU2Y2QyOWJiZTgxYWFhNjYwLi44ODNmODEw
YjRmZGQ2MTBhMTc0M2U0NmExMjBmZDcyZDU0NzJmM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBQYXRoIFJlbmRlclNWR1RleHRQYXRoOjpsYXlvdXRQYXRoKCkgY29uc3QKIHsKICAgICBTVkdU
ZXh0UGF0aEVsZW1lbnQqIHRleHRQYXRoRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR1RleHRQYXRo
RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgICAgIFN0cmluZyBwYXRoSWQgPSBTVkdVUklSZWZlcmVu
Y2U6OmdldFRhcmdldCh0ZXh0UGF0aEVsZW1lbnQtPmhyZWYoKSk7Ci0gICAgRWxlbWVudCogdGFy
Z2V0RWxlbWVudCA9IHRleHRQYXRoRWxlbWVudC0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQo
cGF0aElkKTsgICAgCisgICAgRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRleHRQYXRoRWxlbWVu
dC0+dHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKHBhdGhJZCk7ICAgIAogICAgIGlmICghdGFy
Z2V0RWxlbWVudCB8fCAhdGFyZ2V0RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6cGF0aFRh
ZykpCiAgICAgICAgIHJldHVybiBQYXRoKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmNwcAppbmRleCA0ZDAyYzY5ZmM5MTUwZGU2MjgzZWEzMDg4YjZjOTcxNGM1MGQxOTkxLi41OWM4
OThjMWFhNjZiNmQ4Yzg2MzY5NDIyM2JjNzRjNzYxNjhjMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
RWxlbWVudC5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFNWR0FFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQog
ICAgICAgICAgICAgaWYgKHVybFswXSA9PSAnIycpIHsKLSAgICAgICAgICAgICAgICBFbGVtZW50
KiB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQodXJsLnN1YnN0cmlu
ZygxKSk7CisgICAgICAgICAgICAgICAgRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRyZWVTY29w
ZSgpLT5nZXRFbGVtZW50QnlJZCh1cmwuc3Vic3RyaW5nKDEpKTsKICAgICAgICAgICAgICAgICBp
ZiAoU1ZHU01JTEVsZW1lbnQ6OmlzU01JTEVsZW1lbnQodGFyZ2V0RWxlbWVudCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU01JTEVsZW1lbnQqPih0YXJnZXRFbGVtZW50
KS0+YmVnaW5CeUxpbmtBY3RpdmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcAppbmRleCA5NmZiYWM2MjNmZGY0NzllNmIwMDRiNmE2NGJhMDAxYTQ5YjQ1ZGI2Li44OTA0
ZGM3MmQ5MWM3M2QyYTYwYzFhZDBlYmZmNTA5Mjc3NWZmZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIFJlbmRlck9iamVj
dCogU1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEs
IFJlbmRlclN0eWxlCiAKIFNWR0dseXBoRWxlbWVudCogU1ZHQWx0R2x5cGhFbGVtZW50OjpnbHlw
aEVsZW1lbnQoKSBjb25zdAogewotICAgIEVsZW1lbnQqIGVsdCA9IGRvY3VtZW50KCktPmdldEVs
ZW1lbnRCeUlkKGdldFRhcmdldChnZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpKSk7
CisgICAgRWxlbWVudCogZWx0ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKGdldFRhcmdl
dChnZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpKSk7CiAgICAgaWYgKCFlbHQgfHwg
IWVsdC0+aGFzVGFnTmFtZShTVkdOYW1lczo6Z2x5cGhUYWcpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHR2x5cGhFbGVtZW50Kj4oZWx0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGYzM2NkMzY1NWQ5M2Y1YjYzYTg3
YTNjNjhlNDZiODU1NTZkYTI5ZWMuLmFhNWY1ZWRmMjM2ZmE2MGIzMDUwYWYxYmE3OWI0MDAwMGYy
ODNkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtNjYs
NyArNjYsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgp
CiAgICAgICAgIG1fY2FjaGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIEVsZW1lbnQqIGhyZWZF
bGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRU
YXJnZXQoaHJlZigpKSk7CisgICAgRWxlbWVudCogaHJlZkVsZW1lbnQgPSB0cmVlU2NvcGUoKS0+
Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoaHJlZigpKSk7CiAgICAg
aWYgKGhyZWZFbGVtZW50ICYmIGhyZWZFbGVtZW50LT5pc1NWR0VsZW1lbnQoKSAmJiBocmVmRWxl
bWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNTQsNyArMTU0LDcgQEAg
dm9pZCBTVkdGRUltYWdlRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQog
UGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiwgRmlsdGVyKiBmaWx0ZXIpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEltYWdlICYm
ICFtX3RhcmdldEltYWdlKSB7Ci0gICAgICAgIEVsZW1lbnQqIGhyZWZFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoaHJlZigpKSk7
CisgICAgICAgIEVsZW1lbnQqIGhyZWZFbGVtZW50ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRC
eUlkKFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KGhyZWYoKSkpOwogICAgICAgICBpZiAoIWhy
ZWZFbGVtZW50IHx8ICFocmVmRWxlbWVudC0+aXNTVkdFbGVtZW50KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcAppbmRleCBjMTA5YjRmYWJlNGI5ZTIwNmRlOGUzNDAwZTYwNTFlZDIxNDQ1NDA5Li4w
MTliOWVhMDQxYmRiNjBmNmZjZDM1YTY4NGIzMjcyNmZiYTM2OTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApAQCAtMTgxLDcgKzE4MSw3
IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojpjb2xsZWN0R3JhZGllbnRBdHRyaWJ1
dGVzKExpbmVhckdyYWRpZW50QXR0cmlidXRlCiAgICAgICAgIHByb2Nlc3NlZEdyYWRpZW50cy5h
ZGQoY3VycmVudCk7CiAKICAgICAgICAgLy8gUmVzcGVjdCB4bGluazpocmVmLCB0YWtlIGF0dHJp
YnV0ZXMgZnJvbSByZWZlcmVuY2VkIGVsZW1lbnQKLSAgICAgICAgTm9kZSogcmVmTm9kZSA9IG93
bmVyRG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQo
Y3VycmVudC0+aHJlZigpKSk7CisgICAgICAgIE5vZGUqIHJlZk5vZGUgPSB0cmVlU2NvcGUoKS0+
Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoY3VycmVudC0+aHJlZigp
KSk7CiAgICAgICAgIGlmIChyZWZOb2RlICYmIChyZWZOb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVz
OjpsaW5lYXJHcmFkaWVudFRhZykgfHwgcmVmTm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6cmFk
aWFsR3JhZGllbnRUYWcpKSkgewogICAgICAgICAgICAgY3VycmVudCA9IHN0YXRpY19jYXN0PFNW
R0dyYWRpZW50RWxlbWVudCo+KHJlZk5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuY3BwCmluZGV4IDljYzNjNTZkODFlY2IyNTFkNzQ0MDMyOGRhYzViYWFjODk5ZmRiNjcu
LjE0N2EyZWE2ZjQ1OTcxZWRkNjFhMjcxOGZlNTQ2OTEzMjJhMWE2NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgU1ZHTVBhdGhF
bGVtZW50OjpmaWxsQXR0cmlidXRlVG9Qcm9wZXJ0eVR5cGVNYXAoKQogCiBTVkdQYXRoRWxlbWVu
dCogU1ZHTVBhdGhFbGVtZW50OjpwYXRoRWxlbWVudCgpCiB7Ci0gICAgRWxlbWVudCogdGFyZ2V0
ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZ2V0VGFyZ2V0KGhyZWYoKSkpOworICAgIEVs
ZW1lbnQqIHRhcmdldCA9IHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChnZXRUYXJnZXQoaHJl
ZigpKSk7CiAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBh
dGhUYWcpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHUGF0aEVsZW1lbnQqPih0YXJn
ZXQpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5j
cHAKaW5kZXggOTdlNTA1ZTgzMGUzYTI5N2I1ZDU5MjhiNzg4ZTcyNzI2YjRiMGQyNy4uNWVlNzRk
ODcwM2IzMzlkNmNmYzkzNmQ0NDZkMWRmNGI1ZGI5Yzc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBTVkdQYXR0ZXJu
RWxlbWVudDo6Y29sbGVjdFBhdHRlcm5BdHRyaWJ1dGVzKFBhdHRlcm5BdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzKQogICAgICAgICBwcm9jZXNzZWRQYXR0ZXJucy5hZGQoY3VycmVudCk7CiAKICAgICAg
ICAgLy8gUmVzcGVjdCB4bGluazpocmVmLCB0YWtlIGF0dHJpYnV0ZXMgZnJvbSByZWZlcmVuY2Vk
IGVsZW1lbnQKLSAgICAgICAgTm9kZSogcmVmTm9kZSA9IG93bmVyRG9jdW1lbnQoKS0+Z2V0RWxl
bWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoY3VycmVudC0+aHJlZigpKSk7Cisg
ICAgICAgIE5vZGUqIHJlZk5vZGUgPSB0cmVlU2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJ
UmVmZXJlbmNlOjpnZXRUYXJnZXQoY3VycmVudC0+aHJlZigpKSk7CiAgICAgICAgIGlmIChyZWZO
b2RlICYmIHJlZk5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdHRlcm5UYWcpKSB7CiAgICAg
ICAgICAgICBjdXJyZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHUGF0dGVybkVsZW1lbnQqPihj
b25zdF9jYXN0PGNvbnN0IE5vZGUqPihyZWZOb2RlKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggNGYwZjIwMzE3NTIyMjRkZmQ2
MTYzYmQ3ODA5NjQzYjQxYjAxNTYwMS4uNDc5OTVlZmYxNmE1YTI3MGRkMzlmODY2OWYyNjY5NjM0
NjM1ZTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6Y29sbGVjdEdyYWRpZW50QXR0cmlidXRlcyhSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZQogICAg
ICAgICBwcm9jZXNzZWRHcmFkaWVudHMuYWRkKGN1cnJlbnQpOwogCiAgICAgICAgIC8vIFJlc3Bl
Y3QgeGxpbms6aHJlZiwgdGFrZSBhdHRyaWJ1dGVzIGZyb20gcmVmZXJlbmNlZCBlbGVtZW50Ci0g
ICAgICAgIE5vZGUqIHJlZk5vZGUgPSBvd25lckRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKFNW
R1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KGN1cnJlbnQtPmhyZWYoKSkpOworICAgICAgICBOb2Rl
KiByZWZOb2RlID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKFNWR1VSSVJlZmVyZW5jZTo6
Z2V0VGFyZ2V0KGN1cnJlbnQtPmhyZWYoKSkpOwogICAgICAgICBpZiAocmVmTm9kZSAmJiAocmVm
Tm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6cmFkaWFsR3JhZGllbnRUYWcpIHx8IHJlZk5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRpZW50VGFnKSkpIHsKICAgICAgICAgICAg
IGN1cnJlbnQgPSBzdGF0aWNfY2FzdDxTVkdHcmFkaWVudEVsZW1lbnQqPihyZWZOb2RlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDhmODZjZGU4YTk4MDFlMzBhZTc4
YzI3YWU5NTI4ZWVjNGU0OWNkNWMuLmQ0NDlhZjIyYjkwYThmYjg3ZWM0NzRmNjBhMjcwZTVhNjE1
ODg5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTY0MSw3ICs2NDEs
NyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OmRvY3VtZW50RGlkQmVjb21lQWN0aXZlKCkKIC8vIFNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9zdHJ1Y3QuaHRtbCNJbnRlcmZhY2VTVkdTVkdF
bGVtZW50CiBFbGVtZW50KiBTVkdTVkdFbGVtZW50OjpnZXRFbGVtZW50QnlJZChjb25zdCBBdG9t
aWNTdHJpbmcmIGlkKSBjb25zdAogewotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudCgp
LT5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHRyZWVTY29wZSgp
LT5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNEZXNj
ZW5kYW50T2YodGhpcykpCiAgICAgICAgIHJldHVybiBlbGVtZW50OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCAxMTYxZmZlODBhYjEyZjNiZTA4Y2NkYTM0MDExZDg2
M2I4YmM2YjhlLi4wMjRhYjQwNDNiOGJjYzI0OTAyMmQ1NGJjM2Y2MGE5M2I2NTE1NWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgUGFzc1Jl
ZlB0cjxTVkdUUmVmRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLAogCiB2b2lkIFNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2Vk
VGV4dCgpCiB7Ci0gICAgRWxlbWVudCogdGFyZ2V0ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5
SWQoU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQoaHJlZigpKSk7CisgICAgRWxlbWVudCogdGFy
Z2V0ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFy
Z2V0KGhyZWYoKSkpOwogICAgIFN0cmluZyB0ZXh0Q29udGVudDsKICAgICBpZiAodGFyZ2V0ICYm
IHRhcmdldC0+aXNTVkdFbGVtZW50KCkpCiAgICAgICAgIHRleHRDb250ZW50ID0gc3RhdGljX2Nh
c3Q8U1ZHRWxlbWVudCo+KHRhcmdldCktPnRleHRDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDNmMjMyZTUwYTE1ZTM1NWVhZWRhZTdmM2Q1
Njk4MTNjYTdkMzJjYmEuLmY0ZGU3NTI5ZDFlYTMyYTkzNDg5ZTczNWQ1NjNmODRkNjY4NjcwOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC0xNTcsNyAr
MTU3LDcgQEAgdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkK
ICAgICBTVkdUZXh0Q29udGVudEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAg
ICBTdHJpbmcgaWQgPSBTVkdVUklSZWZlcmVuY2U6OmdldFRhcmdldChocmVmKCkpOwotICAgIEVs
ZW1lbnQqIHRhcmdldEVsZW1lbnQgPSBvd25lckRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgICBFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRC
eUlkKGlkKTsKICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5hZGRQZW5kaW5nUmVzb3VyY2UoaWQsIHRoaXMpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZTIzZmE2
MjJjZjM1NWI0MGYxYmIwZTUwYjI3N2Y0MWUzMjNjNjViZi4uNTllZGM0OTY3MTA1OWUzNjViYWEw
NDJhYjdhOGEwMmM0Y2U5OGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApA
QCAtNDczLDcgKzQ3Myw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3Vy
Y2UoKQogICAgIC8vIHdlIGVpdGhlciBkZXRlcm1pbmUgdGhhdCBvdXIgdGFyZ2V0IGlzIGF2YWls
YWJsZSBvciBub3QgLSB0aGVuIHdlIGFkZCBvdXJzZWx2ZXMgdG8gdGhlIHBlbmRpbmcgcmVzb3Vy
Y2UgbGlzdAogICAgIC8vIE9uY2UgdGhlIHBlbmRpbmcgcmVzb3VyY2UgYXBwZWFycywgaXQgd2ls
bCBjYWxsIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCksIHNvIHdlJ3JlIGNhbGxlZCBhIHNlY29uZCB0
aW1lLgogICAgIFN0cmluZyBpZCA9IFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KGhyZWYoKSk7
Ci0gICAgRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlk
KGlkKTsKKyAgICBFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdHJlZVNjb3BlKCktPmdldEVsZW1l
bnRCeUlkKGlkKTsKICAgICBBU1NFUlQoIW1fdGFyZ2V0RWxlbWVudEluc3RhbmNlKTsKIAogICAg
IGlmICghdGFyZ2V0RWxlbWVudCkgewpAQCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgU1ZHVXNlRWxl
bWVudDo6YnVpbGRTaGFkb3dBbmRJbnN0YW5jZVRyZWUoU1ZHU2hhZG93VHJlZVJvb3RFbGVtZW50
KiBzaGFkb3dSCiAgICAgU2hhZG93VHJlZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcih0aGlzKTsKIAog
ICAgIFN0cmluZyBpZCA9IFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KGhyZWYoKSk7Ci0gICAg
RWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGlkKTsK
KyAgICBFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlk
KGlkKTsKICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHsKICAgICAgICAgLy8gVGhlIG9ubHkgdGlt
ZSB3ZSBzaG91bGQgZ2V0IGhlcmUgaXMgd2hlbiB0aGUgdXNlIGVsZW1lbnQgaGFzIG5vdCBiZWVu
CiAgICAgICAgIC8vIGdpdmVuIGEgcmVzb3VyY2UgdG8gdGFyZ2V0LgpAQCAtNzY5LDcgKzc2OSw3
IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVudCogdGFy
Z2V0LCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhCiBib29sIFNWR1VzZUVsZW1lbnQ6Omhhc0N5Y2xl
VXNlUmVmZXJlbmNpbmcoU1ZHVXNlRWxlbWVudCogdXNlLCBTVkdFbGVtZW50SW5zdGFuY2UqIHRh
cmdldEluc3RhbmNlLCBTVkdFbGVtZW50KiYgbmV3VGFyZ2V0KQogewogICAgIFN0cmluZyBpZCA9
IFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KHVzZS0+aHJlZigpKTsKLSAgICBFbGVtZW50KiB0
YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoaWQpOyAKKyAgICBFbGVt
ZW50KiB0YXJnZXRFbGVtZW50ID0gdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKGlkKTsgCiAg
ICAgbmV3VGFyZ2V0ID0gMDsKICAgICBpZiAodGFyZ2V0RWxlbWVudCAmJiB0YXJnZXRFbGVtZW50
LT5pc1NWR0VsZW1lbnQoKSkKICAgICAgICAgbmV3VGFyZ2V0ID0gc3RhdGljX2Nhc3Q8U1ZHRWxl
bWVudCo+KHRhcmdldEVsZW1lbnQpOwpAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgU1ZHVXNlRWxl
bWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoTm9kZSogZWxlbWVudCkKICAgICAg
ICAgU1ZHVXNlRWxlbWVudCogdXNlID0gc3RhdGljX2Nhc3Q8U1ZHVXNlRWxlbWVudCo+KGVsZW1l
bnQpOwogCiAgICAgICAgIFN0cmluZyBpZCA9IFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KHVz
ZS0+aHJlZigpKTsKLSAgICAgICAgRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50KCkt
PmdldEVsZW1lbnRCeUlkKGlkKTsgCisgICAgICAgIEVsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0
cmVlU2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoaWQpOyAKICAgICAgICAgU1ZHRWxlbWVudCogdGFy
Z2V0ID0gMDsKICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQgJiYgdGFyZ2V0RWxlbWVudC0+aXNT
VkdFbGVtZW50KCkpCiAgICAgICAgICAgICB0YXJnZXQgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50
Kj4odGFyZ2V0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d1NwZWMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA3YTBj
MmE5Mjc5YThmNTg3NGIyYTViZTUwM2U0YzIzZjk0MGE1MjlmLi5kNGExYmVmOWNkYTUwMzA3YTk3
NWIyZDY2YmNiMTBkOTRjM2JjNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAg
LTY2LDcgKzY2LDcgQEAgdm9pZCBTVkdWaWV3U3BlYzo6c2V0Vmlld1RhcmdldFN0cmluZyhjb25z
dCBTdHJpbmcmIHZpZXdUYXJnZXRTdHJpbmcpCiAKIFNWR0VsZW1lbnQqIFNWR1ZpZXdTcGVjOjp2
aWV3VGFyZ2V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+
KG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKG1fdmlld1Rhcmdl
dFN0cmluZykpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obV9jb250ZXh0
RWxlbWVudC0+dHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKG1fdmlld1RhcmdldFN0cmluZykp
OwogfQogCiBzdGF0aWMgY29uc3QgVUNoYXIgc3ZnVmlld1NwZWNbXSA9IHsncycsICd2JywgJ2cn
LCAnVicsICdpJywgJ2UnLCAndyd9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2Fu
aW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9u
L1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCBjYWRmODM1ZTRlOGM0MGUzMDllZjdjY2I0YmY3Yzg2
N2YxNGUxMjEwLi43ZWFmMmZiMTExNjkxOGYzZjI5NWVlZGNjODdiYjI3YjA4ODRiNTQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAt
NDI1LDcgKzQyNSw3IEBAIHZvaWQgU1ZHU01JTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoQXR0
cmlidXRlKiBhdHRyLCBib29sIHByZXNlcnZlRGVjbHMpCiAKIGlubGluZSBFbGVtZW50KiBTVkdT
TUlMRWxlbWVudDo6ZXZlbnRCYXNlRm9yKGNvbnN0IENvbmRpdGlvbiYgY29uZGl0aW9uKSBjb25z
dAogewotICAgIHJldHVybiBjb25kaXRpb24ubV9iYXNlSUQuaXNFbXB0eSgpID8gdGFyZ2V0RWxl
bWVudCgpIDogZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29uZGl0aW9uLm1fYmFzZUlEKTsK
KyAgICByZXR1cm4gY29uZGl0aW9uLm1fYmFzZUlELmlzRW1wdHkoKSA/IHRhcmdldEVsZW1lbnQo
KSA6IHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb25kaXRpb24ubV9iYXNlSUQpOwogfQog
CiB2b2lkIFNWR1NNSUxFbGVtZW50Ojpjb25uZWN0Q29uZGl0aW9ucygpCkBAIC00NDUsNyArNDQ1
LDcgQEAgdm9pZCBTVkdTTUlMRWxlbWVudDo6Y29ubmVjdENvbmRpdGlvbnMoKQogICAgICAgICAg
ICAgZXZlbnRCYXNlLT5hZGRFdmVudExpc3RlbmVyKGNvbmRpdGlvbi5tX25hbWUsIGNvbmRpdGlv
bi5tX2V2ZW50TGlzdGVuZXIsIGZhbHNlKTsKICAgICAgICAgfSBlbHNlIGlmIChjb25kaXRpb24u
bV90eXBlID09IENvbmRpdGlvbjo6U3luY2Jhc2UpIHsKICAgICAgICAgICAgIEFTU0VSVCghY29u
ZGl0aW9uLm1fYmFzZUlELmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBjb25kaXRpb24ubV9zeW5j
YmFzZSA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGNvbmRpdGlvbi5tX2Jhc2VJRCk7Cisg
ICAgICAgICAgICBjb25kaXRpb24ubV9zeW5jYmFzZSA9IHRyZWVTY29wZSgpLT5nZXRFbGVtZW50
QnlJZChjb25kaXRpb24ubV9iYXNlSUQpOwogICAgICAgICAgICAgaWYgKCFpc1NNSUxFbGVtZW50
KGNvbmRpdGlvbi5tX3N5bmNiYXNlLmdldCgpKSkgewogICAgICAgICAgICAgICAgIGNvbmRpdGlv
bi5tX3N5bmNiYXNlID0gMDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ5OSw3ICs0
OTksNyBAQCBTVkdFbGVtZW50KiBTVkdTTUlMRWxlbWVudDo6dGFyZ2V0RWxlbWVudCgpIGNvbnN0
CiAgICAgICAgIHJldHVybiBtX3RhcmdldEVsZW1lbnQ7CiAKICAgICBTdHJpbmcgaHJlZiA9IHhs
aW5rSHJlZigpOwotICAgIENvbnRhaW5lck5vZGUqIHRhcmdldCA9IGhyZWYuaXNFbXB0eSgpID8g
cGFyZW50Tm9kZSgpIDogZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoU1ZHVVJJUmVmZXJlbmNl
OjpnZXRUYXJnZXQoaHJlZikpOworICAgIENvbnRhaW5lck5vZGUqIHRhcmdldCA9IGhyZWYuaXNF
bXB0eSgpID8gcGFyZW50Tm9kZSgpIDogdHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKFNWR1VS
SVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KGhyZWYpKTsKICAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0
LT5pc1NWR0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRnVuY3Rpb25zLmNwcAppbmRleCAyMDkxYWNhNmFmNzA3Nzk1NDY3Yzg3YThmOGI2MWFj
ZWExNjFmNjk2Li5kMzQzYTU5Y2QwMzdmOWE4ZDY3YWIwNmFhNzQwMWIyMmRiNmY5ODhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTMwLDEwICszMCwxMCBAQAogCiAj
aWYgRU5BQkxFKFhQQVRIKQogCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmgiCisjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJYUGF0aFV0aWwuaCIKICNpbmNsdWRlICJYUGF0aFZhbHVlLmgiCkBAIC0z
MzIsNyArMzMyLDcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICAgICAgaWRM
aXN0LmFwcGVuZChzdHIuY2hhcmFjdGVycygpLCBzdHIubGVuZ3RoKCkpOwogICAgIH0KICAgICAK
LSAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50ID0gZXZhbHVhdGlvbkNvbnRleHQoKS5ub2Rl
LT5kb2N1bWVudCgpOworICAgIFRyZWVTY29wZSogY29udGV4dFNjb3BlID0gZXZhbHVhdGlvbkNv
bnRleHQoKS5ub2RlLT50cmVlU2NvcGUoKTsKICAgICBOb2RlU2V0IHJlc3VsdDsKICAgICBIYXNo
U2V0PE5vZGUqPiByZXN1bHRTZXQ7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCBWYWx1ZSBGdW5JZDo6
ZXZhbHVhdGUoKSBjb25zdAogCiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzZXZlcmFsIG5vZGVz
IHdpdGggdGhlIHNhbWUgaWQsIGlkKCkgc2hvdWxkIHJldHVybiB0aGUgZmlyc3Qgb25lLgogICAg
ICAgICAvLyBJbiBXZWJLaXQsIGdldEVsZW1lbnRCeUlkIGJlaGF2ZXMgc28sIHRvbywgYWx0aG91
Z2ggaXRzIGJlaGF2aW9yIGluIHRoaXMgY2FzZSBpcyBmb3JtYWxseSB1bmRlZmluZWQuCi0gICAg
ICAgIE5vZGUqIG5vZGUgPSBjb250ZXh0RG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKFN0cmluZygm
aWRMaXN0W3N0YXJ0UG9zXSwgZW5kUG9zIC0gc3RhcnRQb3MpKTsKKyAgICAgICAgTm9kZSogbm9k
ZSA9IGNvbnRleHRTY29wZS0+Z2V0RWxlbWVudEJ5SWQoU3RyaW5nKCZpZExpc3Rbc3RhcnRQb3Nd
LCBlbmRQb3MgLSBzdGFydFBvcykpOwogICAgICAgICBpZiAobm9kZSAmJiByZXN1bHRTZXQuYWRk
KG5vZGUpLnNlY29uZCkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobm9kZSk7CiAgICAgICAg
IAo=
</data>
<flag name="review"
          id="84913"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="84914"
          type_id="3"
          status="-"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>