<?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>125206</bug_id>
          
          <creation_ts>2013-12-03 18:53:21 -0800</creation_ts>
          <short_desc>[EFL][WK2] Fix build after API::Client changes</short_desc>
          <delta_ts>2013-12-04 02:56:27 -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>WebKit EFL</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>
          <dependson>125182</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nick Diego Yamane (diegoyam)">nick.diego</reporter>
          <assigned_to name="Nick Diego Yamane (diegoyam)">nick.diego</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>956249</commentid>
    <comment_count>0</comment_count>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-12-03 18:53:21 -0800</bug_when>
    <thetext>Bug 125129 changed the way WK2 API::ClientTraits are implemented, to use a template-based approach.
After that EFL WK2 build is broken. To fix that we should make modifications similar to what is being done in bug 125129 and bug 125182.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956264</commentid>
    <comment_count>1</comment_count>
      <attachid>218379</attachid>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-12-03 20:37:34 -0800</bug_when>
    <thetext>Created attachment 218379
Patch

EFL changes including the changes from bug 125182, which this bug depends on. Initially to see the buildbot results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956265</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-03 20:39:50 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956303</commentid>
    <comment_count>3</comment_count>
      <attachid>218379</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-12-04 00:46:00 -0800</bug_when>
    <thetext>Comment on attachment 218379
Patch

I&apos;m not 100% sure if it is the proper change. But we don&apos;t know anything about
the original change and its author and WK2 owners are unreachable. :((

So r=me to fix the build as soon as possible. We can always revise
the patch later if we get feedback from WK2 owners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956304</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-12-04 00:55:58 -0800</bug_when>
    <thetext>landed in http://trac.webkit.org/changeset/160075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956334</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-04 02:56:27 -0800</bug_when>
    <thetext>*** Bug 125182 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218379</attachid>
            <date>2013-12-03 20:37:34 -0800</date>
            <delta_ts>2013-12-04 00:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125206-20131204004926.patch</filename>
            <type>text/plain</type>
            <size>83446</size>
            <attacher name="Nick Diego Yamane (diegoyam)">nick.diego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGUyMGE5
ZTVhNDQ1OWEwNzIyZjlhMjAwNmIwYmQ5OWFjNzcwMDA0YmQuLjJmZjk2MjY5NGVlNzQ4YzIzMzhi
NWJlNzc5Yzc1YjBmOTk2ZjhkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0xODAsNyArMTgw
LDYgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiAKICAgICBTaGFyZWQvQVBJQXJyYXkuY3BwCi0gICAgU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5jcHAKICAgICBTaGFyZWQvQVBJT2JqZWN0LmNwcAogICAgIFNoYXJlZC9BY3Rp
dml0eUFzc2VydGlvbi5jcHAKICAgICBTaGFyZWQvQ2FjaGVNb2RlbC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IGY0NDVjZWRmMTg1Y2VmNGRhOTRhNjQzN2I0MjlmMTk3NTZj
ODRmYzUuLjM5ODAxYTAwYWY1YWE3ZDQwODVjMDQ1ZmMwN2U4NTk0MTAyZWM2MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzI1LDggKzMyNSw2IEBAIHdlYmtpdDJfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUFycmF5LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSUFycmF5LmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGll
bnQuaCBcCi0JU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAgXAotCVNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL2d0ay9XS0Jhc2VHdGsuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oCmluZGV4IDA3MGMyOGM4NGJlNWVkMTlk
OTQzN2RlYjAzMGQwNjg1ZGE1NDk2YWUuLmI1ZDhmMTNjYmMxNzY2NDRmY2U0ZjQ5NTk4NDQxZjlj
ODI4NzExNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RlY2xh
cmF0aW9uU3BlY2lmaWVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Rl
Y2xhcmF0aW9uU3BlY2lmaWVycy5oCkBAIC00MiwxMCArNDIsMTQgQEAKICNlbGlmIGRlZmluZWQo
X19HTlVDX18pCiAjZGVmaW5lIFdLX0lOTElORSBzdGF0aWMgX19pbmxpbmVfXwogI2Vsc2UKLSNk
ZWZpbmUgV0tfSU5MSU5FIHN0YXRpYyAgICAKKyNkZWZpbmUgV0tfSU5MSU5FIHN0YXRpYwogI2Vu
ZGlmCiAjZW5kaWYgLyogIWRlZmluZWQoV0tfSU5MSU5FKSAqLwogCisjaWZuZGVmIF9faGFzX2V4
dGVuc2lvbgorI2RlZmluZSBfX2hhc19leHRlbnNpb24oeCkgMAorI2VuZGlmCisKICNpZiBkZWZp
bmVkKF9faGFzX2V4dGVuc2lvbikgJiYgX19oYXNfZXh0ZW5zaW9uKGVudW1lcmF0b3JfYXR0cmli
dXRlcykgJiYgX19oYXNfZXh0ZW5zaW9uKGF0dHJpYnV0ZV91bmF2YWlsYWJsZV93aXRoX21lc3Nh
Z2UpCiAjZGVmaW5lIFdLX0RFUFJFQ0FURUQobWVzc2FnZSkgX19hdHRyaWJ1dGVfXygoZGVwcmVj
YXRlZChtZXNzYWdlKSkpCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9Db29yZGluYXRlZEdyYXBoaWNzL1dLVmlldy5jcHAKaW5kZXggNTMw
NDEwODEyOWU0ZTViNzQ5OWJhOGE5YTVkMzc5NDEzODEyZDQwZC4uYTZlZDk2YzMxYzU5MDNiOThj
OThkZjVkZjcyYWY2ZGU5N2U4YWFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XS1ZpZXcuY3BwCkBAIC01
MCw3ICs1MCw3IEBAIHZvaWQgV0tWaWV3U2V0U2l6ZShXS1ZpZXdSZWYgdmlld1JlZiwgV0tTaXpl
IHNpemUpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5zZXRTaXplKHRvSW50U2l6ZShzaXplKSk7CiB9
CiAKLXZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tW
aWV3Q2xpZW50KiBjbGllbnQpCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZp
ZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKIHsKICAgICB0b0ltcGwodmll
d1JlZiktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9Db29yZGluYXRlZEdyYXBoaWNzL1dLVmlldy5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV0tWaWV3LmgK
aW5kZXggMmQzYjMwMWY1OWNhYTU2NjA1YTdkZGY2ZjViMmE3MzI4YmJiZjkyYS4uNjE2YTZlNTg4
OGU4OGFiNjUzODQxZGJhNTg1MjhhNWQ1MTk0MDlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV0tWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV0tWaWV3LmgK
QEAgLTQzLDEwICs0MywxMyBAQCB0eXBlZGVmIHZvaWQgKCpXS1ZpZXdQYWdlRGlkQ2hhbmdlVG9v
bHRpcENhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tTdHJpbmdSZWYgbgogdHlwZWRlZiB2b2lk
ICgqV0tWaWV3RGlkRmluZFpvb21hYmxlQXJlYUNhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tQ
b2ludCBwb2ludCwgV0tSZWN0IGFyZWEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tWaWV3RG9uZVdpdGhUb3VjaEV2ZW50Q2FsbGJhY2spKFdLVmlld1JlZiB2aWV3
LCBXS1RvdWNoRXZlbnRSZWYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogCi1zdHJ1Y3QgV0tWaWV3Q2xpZW50IHsKK3R5cGVkZWYgc3Ry
dWN0IFdLVmlld0NsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRCYXNl
OwogCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50QmFz
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CiAgICAgLy8gVmVyc2lvbiAw
CiAgICAgV0tWaWV3Vmlld05lZWRzRGlzcGxheUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIHZp
ZXdOZWVkc0Rpc3BsYXk7CiAgICAgV0tWaWV3UGFnZURpZENoYW5nZUNvbnRlbnRzU2l6ZUNhbGxi
YWNrICAgICAgICAgIGRpZENoYW5nZUNvbnRlbnRzU2l6ZTsKQEAgLTU5LDEwICs2Miw3IEBAIHN0
cnVjdCBXS1ZpZXdDbGllbnQgewogICAgIFdLVmlld1BhZ2VEaWRDaGFuZ2VUb29sdGlwQ2FsbGJh
Y2sgICAgICAgICAgICAgICBkaWRDaGFuZ2VUb29sdGlwOwogICAgIFdLVmlld0RpZEZpbmRab29t
YWJsZUFyZWFDYWxsYmFjayAgICAgICAgICAgICAgICBkaWRGaW5kWm9vbWFibGVBcmVhOwogICAg
IFdLVmlld0RvbmVXaXRoVG91Y2hFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICBkb25lV2l0
aFRvdWNoRXZlbnQ7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgV0tWaWV3Q2xpZW50IFdLVmlld0NsaWVu
dDsKLQotZW51bSB7IGtXS1ZpZXdDbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsKK30gV0tWaWV3
Q2xpZW50VjA7CiAKIFdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwogCkBAIC03MSw3ICs3MSw3IEBA
IFdLX0VYUE9SVCB2b2lkIFdLVmlld0luaXRpYWxpemUoV0tWaWV3UmVmKTsKIFdLX0VYUE9SVCBX
S1NpemUgV0tWaWV3R2V0U2l6ZShXS1ZpZXdSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0
U2l6ZShXS1ZpZXdSZWYsIFdLU2l6ZSBzaXplKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0
Vmlld0NsaWVudChXS1ZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCopOworV0tfRVhQT1JUIHZv
aWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudEJhc2Uq
KTsKIAogV0tfRVhQT1JUIGJvb2wgV0tWaWV3SXNBY3RpdmUoV0tWaWV3UmVmKTsKIFdLX0VYUE9S
VCB2b2lkIFdLVmlld1NldElzQWN0aXZlKFdLVmlld1JlZiwgYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXggNzkw
NDI4MzhlYmE4ZDkzMGVlOTYwYWE2NTNiNjVjYmNmMzgwY2FiZi4uYTlhY2ZhMGE0Y2VlODc3ZWFh
NWRiNzc2MDUxNTBhMWU3MjY1MmI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCBXS1R5cGVJ
RCBXS0JhdHRlcnlNYW5hZ2VyR2V0VHlwZUlEKCkKICNlbmRpZgogfQogCi12b2lkIFdLQmF0dGVy
eU1hbmFnZXJTZXRQcm92aWRlcihXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2VyLCBj
b25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZXIpCit2b2lkIFdLQmF0dGVyeU1hbmFnZXJT
ZXRQcm92aWRlcihXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2VyLCBjb25zdCBXS0Jh
dHRlcnlQcm92aWRlckJhc2UqIHByb3ZpZGVyKQogewogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRV
UykKICAgICB0b0ltcGwoYmF0dGVyeU1hbmFnZXIpLT5pbml0aWFsaXplUHJvdmlkZXIocHJvdmlk
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVy
eU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5h
Z2VyLmgKaW5kZXggNzEyY2JmYjRjYWExZWIzNTVjYTJkNWZjNGZhYjJlMzkwNWZhNDllNS4uNzVi
M2VhZmVjNmMwYjMyZTc5MmJjOTMyMzI3ZmY1MmUwYWM1OTdjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oCkBAIC0zNiwxOSArMzYs
MjEgQEAgZXh0ZXJuICJDIiB7CiB0eXBlZGVmIHZvaWQgKCpXS0JhdHRlcnlQcm92aWRlclN0YXJ0
VXBkYXRpbmdDYWxsYmFjaykoV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0JhdHRlcnlQcm92aWRlclN0
b3BVcGRhdGluZ0NhbGxiYWNrKShXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2VyLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotc3RydWN0IFdLQmF0dGVyeVByb3ZpZGVyIHsKK3R5
cGVkZWYgc3RydWN0IFdLQmF0dGVyeVByb3ZpZGVyQmFzZSB7CiAgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz
aW9uOwogICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tCYXR0ZXJ5UHJvdmlkZXJCYXNl
OworCit0eXBlZGVmIHN0cnVjdCBXS0JhdHRlcnlQcm92aWRlclYwIHsKKyAgICBXS0JhdHRlcnlQ
cm92aWRlckJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJhc2U7CisKICAgICBXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CiAgICAgV0tCYXR0ZXJ5UHJv
dmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dG9wVXBkYXRpbmc7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgV0tCYXR0ZXJ5UHJvdmlkZXIgV0tCYXR0
ZXJ5UHJvdmlkZXI7Ci0KLWVudW0geyBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9
IDAgfTsKK30gV0tCYXR0ZXJ5UHJvdmlkZXJWMDsKIAogV0tfRVhQT1JUIFdLVHlwZUlEIFdLQmF0
dGVyeU1hbmFnZXJHZXRUeXBlSUQoKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tCYXR0ZXJ5TWFuYWdl
clNldFByb3ZpZGVyKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IFdL
QmF0dGVyeVByb3ZpZGVyKiBwcm92aWRlcik7CitXS19FWFBPUlQgdm9pZCBXS0JhdHRlcnlNYW5h
Z2VyU2V0UHJvdmlkZXIoV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qg
V0tCYXR0ZXJ5UHJvdmlkZXJCYXNlKiBwcm92aWRlcik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQmF0
dGVyeU1hbmFnZXJQcm92aWRlckRpZENoYW5nZUJhdHRlcnlTdGF0dXMoV0tCYXR0ZXJ5TWFuYWdl
clJlZiBiYXR0ZXJ5TWFuYWdlciwgV0tTdHJpbmdSZWYgZXZlbnRUeXBlLCBXS0JhdHRlcnlTdGF0
dXNSZWYgc3RhdHVzKTsKIFdLX0VYUE9SVCB2b2lkIFdLQmF0dGVyeU1hbmFnZXJQcm92aWRlclVw
ZGF0ZUJhdHRlcnlTdGF0dXMoV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgV0tC
YXR0ZXJ5U3RhdHVzUmVmIHN0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm9NYW5hZ2VyLmNwcAppbmRleCAxZDQ2NjhjY2NjZmJk
ODljM2QyNDkyYjgxNzllZmQ0ZWRhOTdjZWYzLi42YzI3OGE4ZDlkZDY3YzgxZjQ1NjJmOTI4MmVj
MjVkMjIzMDZlYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgV0tUeXBlSUQg
V0tOZXR3b3JrSW5mb01hbmFnZXJHZXRUeXBlSUQoKQogI2VuZGlmCiB9CiAKLXZvaWQgV0tOZXR3
b3JrSW5mb01hbmFnZXJTZXRQcm92aWRlcihXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBuZXR3b3Jr
SW5mb01hbmFnZXIsIGNvbnN0IFdLTmV0d29ya0luZm9Qcm92aWRlciogcHJvdmlkZXIpCit2b2lk
IFdLTmV0d29ya0luZm9NYW5hZ2VyU2V0UHJvdmlkZXIoV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYg
bmV0d29ya0luZm9NYW5hZ2VyLCBjb25zdCBXS05ldHdvcmtJbmZvUHJvdmlkZXJCYXNlKiBwcm92
aWRlcikKIHsKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogICAgIHRvSW1wbChuZXR3b3JrSW5m
b01hbmFnZXIpLT5pbml0aWFsaXplUHJvdmlkZXIocHJvdmlkZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm9NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuaAppbmRleCBk
ZDkyZWI4Njg4OGM4ZTkyNTFhNGU1ZmQyMTY5OGI5MDMwYTBlYzBkLi5lM2JkY2E2NzFiOWYxMTc3
MTg0NWYzNjFjZmQ1MDQxZTYwYjE2N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuaApAQCAtMzgsMjEgKzM4LDIzIEBA
IHR5cGVkZWYgdm9pZCAoKldLTmV0d29ya0luZm9Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNr
KShXS05ldHdvcmtJbmZvTWFuYWdlclJlCiB0eXBlZGVmIGRvdWJsZSAoKldLTmV0d29ya0luZm9Q
cm92aWRlckdldEJhbmR3aWR0aENhbGxiYWNrKShXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBuZXR3
b3JrSW5mb01hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgq
V0tOZXR3b3JrSW5mb1Byb3ZpZGVySXNNZXRlcmVkQ2FsbGJhY2spKFdLTmV0d29ya0luZm9NYW5h
Z2VyUmVmIG5ldHdvcmtJbmZvTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLXN0
cnVjdCBXS05ldHdvcmtJbmZvUHJvdmlkZXIgewordHlwZWRlZiBzdHJ1Y3QgV0tOZXR3b3JrSW5m
b1Byb3ZpZGVyQmFzZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50SW5mbzsKK30gV0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZTsKKwordHlwZWRlZiBzdHJ1
Y3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyIHsKKyAgICBXS05ldHdvcmtJbmZvUHJvdmlkZXJCYXNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKICAgICBX
S05ldHdvcmtJbmZvUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CiAgICAgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyU3RvcFVw
ZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7CiAg
ICAgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyR2V0QmFuZHdpZHRoQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYW5kd2lkdGg7CiAgICAgV0tOZXR3b3JrSW5mb1Byb3ZpZGVySXNNZXRl
cmVkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc01ldGVyZWQ7Ci19Owot
dHlwZWRlZiBzdHJ1Y3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyIFdLTmV0d29ya0luZm9Qcm92aWRl
cjsKLQotZW51bSB7IGtXS05ldHdvcmtJbmZvUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsK
K30gV0tOZXR3b3JrSW5mb1Byb3ZpZGVyVjA7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS05ldHdv
cmtJbmZvTWFuYWdlckdldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgdm9pZCBXS05ldHdvcmtJbmZv
TWFuYWdlclNldFByb3ZpZGVyKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIG5ldHdvcmtJbmZvTWFu
YWdlciwgY29uc3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyKiBwcm92aWRlcik7CitXS19FWFBPUlQg
dm9pZCBXS05ldHdvcmtJbmZvTWFuYWdlclNldFByb3ZpZGVyKFdLTmV0d29ya0luZm9NYW5hZ2Vy
UmVmIG5ldHdvcmtJbmZvTWFuYWdlciwgY29uc3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZSog
cHJvdmlkZXIpOwogCiBXS19FWFBPUlQgdm9pZCBXS05ldHdvcmtJbmZvTWFuYWdlclByb3ZpZGVy
RGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIG5ldHdv
cmtJbmZvTWFuYWdlciwgV0tTdHJpbmdSZWYgZXZlbnRUeXBlLCBXS05ldHdvcmtJbmZvUmVmIG5l
dHdvcmtJbmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVGV4dENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4
dENoZWNrZXIuY3BwCmluZGV4IDMzMjlkYTJlNmVhZGViYzk4NzhhM2MxZjYwOTUxZDk5ZDFjNDA1
YjIuLjJkYTk0ZGZjMjAwMzliZjAxODcxM2JhNWFkYWMwNjMzNTdkZDA3ZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotdm9pZCBXS1RleHRDaGVja2Vy
U2V0Q2xpZW50KGNvbnN0IFdLVGV4dENoZWNrZXJDbGllbnQqIHdrQ2xpZW50KQordm9pZCBXS1Rl
eHRDaGVja2VyU2V0Q2xpZW50KGNvbnN0IFdLVGV4dENoZWNrZXJDbGllbnRCYXNlKiB3a0NsaWVu
dCkKIHsKICAgICBpZiAod2tDbGllbnQgJiYgd2tDbGllbnQtPnZlcnNpb24pCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1RleHRD
aGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5o
CmluZGV4IDZhMDVlZDk4YWQwNzNjMDRiZjRlMmJkMzg3N2M4YjM1Zjk2MGY4NjMuLmFmNzJjNzVi
N2RmMzIxYzk0MTkwNTUzMTY0NTBkY2Y0YWIwYjc5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaApAQCAtNTAsOSArNTAsMTQgQEAgdHlwZWRl
ZiBXS0FycmF5UmVmICgqV0tUZXh0Q2hlY2tlckd1ZXNzZXNGb3JXb3JkKSh1aW50NjRfdCB0YWcs
IFdLU3RyaW5nUmVmIHdvcmQKIHR5cGVkZWYgdm9pZCAoKldLVGV4dENoZWNrZXJMZWFybldvcmQp
KHVpbnQ2NF90IHRhZywgV0tTdHJpbmdSZWYgd29yZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1RleHRDaGVja2VySWdub3JlV29yZCkodWludDY0X3QgdGFnLCBX
S1N0cmluZ1JlZiB3b3JkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAotc3RydWN0IFdLVGV4
dENoZWNrZXJDbGllbnQgewordHlwZWRlZiBzdHJ1Y3QgV0tUZXh0Q2hlY2tlckNsaWVudEJhc2Ug
ewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50
SW5mbzsKK30gV0tUZXh0Q2hlY2tlckNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLVGV4
dENoZWNrZXJDbGllbnRWMCB7CisgICAgV0tUZXh0Q2hlY2tlckNsaWVudEJhc2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKwogICAgIFdLVGV4
dENoZWNrZXJDb250aW5vdXNTcGVsbENoZWNraW5nQWxsb3dlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZDsKICAgICBXS1RleHRDaGVj
a2VyQ29udGlub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7CiAgICAgV0tUZXh0Q2hlY2tlclNl
dENvbnRpbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwpAQCAtNjksMTIgKzc0LDkgQEAgc3Ry
dWN0IFdLVGV4dENoZWNrZXJDbGllbnQgewogICAgIFdLVGV4dENoZWNrZXJHdWVzc2VzRm9yV29y
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzZXNGb3JX
b3JkOwogICAgIFdLVGV4dENoZWNrZXJMZWFybldvcmQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxlYXJuV29yZDsKICAgICBXS1RleHRDaGVja2VySWdu
b3JlV29yZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
Z25vcmVXb3JkOwotfTsKLXR5cGVkZWYgc3RydWN0IFdLVGV4dENoZWNrZXJDbGllbnQgV0tUZXh0
Q2hlY2tlckNsaWVudDsKLQotZW51bSB7IGtXS1RleHRDaGVja2VyQ2xpZW50Q3VycmVudFZlcnNp
b24gPSAwIH07Cit9IFdLVGV4dENoZWNrZXJDbGllbnRWMDsKIAotV0tfRVhQT1JUIHZvaWQgV0tU
ZXh0Q2hlY2tlclNldENsaWVudChjb25zdCBXS1RleHRDaGVja2VyQ2xpZW50KiBjbGllbnQpOwor
V0tfRVhQT1JUIHZvaWQgV0tUZXh0Q2hlY2tlclNldENsaWVudChjb25zdCBXS1RleHRDaGVja2Vy
Q2xpZW50QmFzZSogY2xpZW50KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tUZXh0Q2hlY2tlckNvbnRp
bnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKTsKIFdLX0VYUE9SVCB2
b2lkIFdLVGV4dENoZWNrZXJHcmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAKaW5k
ZXggYjA3YjVhZGJkZDQzN2YzMjY1MDhhMWVlZTBjZDY4NzhmMjk3NzE2Yi4uYjBhYWFiNDMwNGZk
MmRlMjRiZDkyOTFjNTBmMmY5MmQxMjkzN2Q2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00Myw3ICs0Myw3IEBAIFdLVHlwZUlEIFdL
VmlicmF0aW9uR2V0VHlwZUlEKCkKICNlbmRpZgogfQogCi12b2lkIFdLVmlicmF0aW9uU2V0UHJv
dmlkZXIoV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCBjb25zdCBXS1ZpYnJhdGlvblByb3Zp
ZGVyKiB3a1Byb3ZpZGVyKQordm9pZCBXS1ZpYnJhdGlvblNldFByb3ZpZGVyKFdLVmlicmF0aW9u
UmVmIHZpYnJhdGlvblJlZiwgY29uc3QgV0tWaWJyYXRpb25Qcm92aWRlckJhc2UqIHdrUHJvdmlk
ZXIpCiB7CiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICAgICB0b0ltcGwodmlicmF0aW9uUmVmKS0+
aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tWaWJyYXRpb24uaAppbmRleCA0ODg0ZWNkODUzMGEyMzc4YTgzNGE2NGE1Zjk3
NDRjNjIxYzQ3YzQzLi5jMTgwMDBiZjE3ZWI5ZTA5ZmY2Yjc0Yzk5N2U0NTk0OTY4N2NmZGJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uaApAQCAtMzYs
MTkgKzM2LDIxIEBAIGV4dGVybiAiQyIgewogdHlwZWRlZiB2b2lkICgqV0tWaWJyYXRpb25Qcm92
aWRlclZpYnJhdGVDYWxsYmFjaykoV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCB1aW50MzJf
dCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLVmlicmF0aW9uUHJvdmlkZXJDYW5jZWxWaWJyYXRpb25DYWxsYmFjaykoV0tWaWJyYXRpb25S
ZWYgdmlicmF0aW9uUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotc3RydWN0IFdLVmli
cmF0aW9uUHJvdmlkZXIgewordHlwZWRlZiBzdHJ1Y3QgV0tWaWJyYXRpb25Qcm92aWRlckJhc2Ug
ewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9
IFdLVmlicmF0aW9uUHJvdmlkZXJCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpYnJhdGlvblBy
b3ZpZGVyVjAgeworICAgIFdLVmlicmF0aW9uUHJvdmlkZXJCYXNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKwogICAgIFdLVmlicmF0aW9uUHJvdmlk
ZXJWaWJyYXRlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlicmF0
ZTsKICAgICBXS1ZpYnJhdGlvblByb3ZpZGVyQ2FuY2VsVmlicmF0aW9uQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNhbmNlbFZpYnJhdGlvbjsKLX07Ci10eXBlZGVmIHN0cnVjdCBX
S1ZpYnJhdGlvblByb3ZpZGVyIFdLVmlicmF0aW9uUHJvdmlkZXI7Ci0KLWVudW0geyBrV0tWaWJy
YXRpb25Qcm92aWRlckN1cnJlbnRWZXJzaW9uID0gMCB9OworfSBXS1ZpYnJhdGlvblByb3ZpZGVy
VjA7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1ZpYnJhdGlvbkdldFR5cGVJRCgpOwogCi1XS19F
WFBPUlQgdm9pZCBXS1ZpYnJhdGlvblNldFByb3ZpZGVyKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlv
blJlZiwgY29uc3QgV0tWaWJyYXRpb25Qcm92aWRlciogcHJvdmlkZXIpOworV0tfRVhQT1JUIHZv
aWQgV0tWaWJyYXRpb25TZXRQcm92aWRlcihXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIGNv
bnN0IFdLVmlicmF0aW9uUHJvdmlkZXJCYXNlKiBwcm92aWRlcik7CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S1BhZ2VFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BhZ2VF
ZmwuY3BwCmluZGV4IDJkNWVjOTFiNTUwMjczNTdkZjIwYzM3NDZlNjRmNTVhZjViNjUxNTEuLjFk
MTA5M2EyMWYxZjg1YThjNDhlYmZhZjFiNTQyMWE5OThhMDE1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQYWdlRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUGFnZUVmbC5jcHAKQEAgLTMxLDcgKzMxLDcg
QEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotdm9pZCBXS1BhZ2VTZXRVSVBvcHVwTWVu
dUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlQb3B1cE1lbnVDbGllbnQq
IHdrQ2xpZW50KQordm9pZCBXS1BhZ2VTZXRVSVBvcHVwTWVudUNsaWVudChXS1BhZ2VSZWYgcGFn
ZVJlZiwgY29uc3QgV0tQYWdlVUlQb3B1cE1lbnVDbGllbnRCYXNlKiB3a0NsaWVudCkKIHsKICAg
ICB0b0ltcGwocGFnZVJlZiktPmluaXRpYWxpemVVSVBvcHVwTWVudUNsaWVudCh3a0NsaWVudCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUGFn
ZUVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BhZ2VFZmwuaApp
bmRleCA3N2I5ZDE0MGI1ZTdiNGM3ODc2NTJhNmZiZDAyMDEyMmEyMjQ3ZmNiLi44YmU3ZjQzNTRl
OGJjMTg1ZmJiZmYwNWNiNTFiMzQxMDVhOGU3MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUGFnZUVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9lZmwvV0tQYWdlRWZsLmgKQEAgLTM3LDE3ICszNywxOSBAQCBleHRlcm4g
IkMiIHsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNob3dQb3B1cE1lbnVDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgbWVudUxpc3RlbmVyUmVmLCBXS1JlY3Qg
cmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdl
U2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VIaWRlUG9wdXBN
ZW51Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAot
c3RydWN0IFdLUGFnZVVJUG9wdXBNZW51Q2xpZW50IHsKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJ
UG9wdXBNZW51Q2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tQYWdlVUlQb3B1cE1lbnVDbGll
bnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSVBvcHVwTWVudUNsaWVudFYwIHsKKyAg
ICBXS1BhZ2VVSVBvcHVwTWVudUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgIGJhc2U7CisK
ICAgICBXS1BhZ2VTaG93UG9wdXBNZW51Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIHNob3dQ
b3B1cE1lbnU7CiAgICAgV0tQYWdlSGlkZVBvcHVwTWVudUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICBoaWRlUG9wdXBNZW51OwotfTsKLXR5cGVkZWYgc3RydWN0IFdLUGFnZVVJUG9wdXBNZW51
Q2xpZW50IFdLUGFnZVVJUG9wdXBNZW51Q2xpZW50OwotCi1lbnVtIHsga1dLUGFnZVVJUG9wdXBN
ZW51Q2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07Cit9IFdLUGFnZVVJUG9wdXBNZW51Q2xpZW50
VjA7CiAKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFVJUG9wdXBNZW51Q2xpZW50KFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCBXS1BhZ2VVSVBvcHVwTWVudUNsaWVudCogY2xpZW50KTsKK1dLX0VYUE9S
VCB2b2lkIFdLUGFnZVNldFVJUG9wdXBNZW51Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBX
S1BhZ2VVSVBvcHVwTWVudUNsaWVudEJhc2UqIGNsaWVudCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1
cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0Z1
bGxTY3JlZW5DbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0
ay9XS0Z1bGxTY3JlZW5DbGllbnRHdGsuY3BwCmluZGV4IDJiMjlhMmI3NmQ5NGRjYWZmMzZmZGZj
ZmQ4ZTk4MGIzNmM2MzM5MzYuLmNmY2E2ODY5NGVlMzUwNjc0NDdkNDhlNmFjMmNiMzBhNjJiODQ0
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tGdWxs
U2NyZWVuQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLRnVsbFNjcmVlbkNsaWVudEd0ay5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIAotdm9pZCBXS1ZpZXdTZXRGdWxsU2NyZWVuQ2xpZW50R3RrKFdL
Vmlld1JlZiB2aWV3UmVmLCBjb25zdCBXS0Z1bGxTY3JlZW5DbGllbnRHdGsqIHdrQ2xpZW50KQor
dm9pZCBXS1ZpZXdTZXRGdWxsU2NyZWVuQ2xpZW50R3RrKFdLVmlld1JlZiB2aWV3UmVmLCBjb25z
dCBXS0Z1bGxTY3JlZW5DbGllbnRHdGtCYXNlKiB3a0NsaWVudCkKIHsKICAgICB3ZWJraXRXZWJW
aWV3QmFzZUluaXRpYWxpemVGdWxsU2NyZWVuQ2xpZW50KHRvSW1wbCh2aWV3UmVmKSwgd2tDbGll
bnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S0Z1bGxTY3JlZW5DbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9n
dGsvV0tGdWxsU2NyZWVuQ2xpZW50R3RrLmgKaW5kZXggYThjOTIxNjZiMThhZTM2ZGYyOTQyYjdi
NmRjNDM4ZTliYzhkYjlhMi4uYTI5MmRkYTExYTZhMmVkOGU0ZDgzZjVhMDI3ZmU1NzdkMGEzNmE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0Z1bGxT
Y3JlZW5DbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLRnVsbFNjcmVlbkNsaWVudEd0ay5oCkBAIC0zNSwxNyArMzUsMTkgQEAgZXh0ZXJuICJDIiB7
CiB0eXBlZGVmIGJvb2wgKCpXS0Z1bGxTY3JlZW5DbGllbnRHdGtXaWxsRW50ZXJGdWxsU2NyZWVu
Q2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tGdWxs
U2NyZWVuQ2xpZW50R3RrV2lsbEV4aXRGdWxsU2NyZWVuQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogCi1zdHJ1Y3QgV0tGdWxsU2NyZWVuQ2xpZW50R3RrIHsKK3R5cGVkZWYgc3Ry
dWN0IFdLRnVsbFNjcmVlbkNsaWVudEd0a0Jhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0Z1bGxT
Y3JlZW5DbGllbnRHdGtCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS0Z1bGxTY3JlZW5DbGllbnRH
dGtWMCB7CisgICAgV0tGdWxsU2NyZWVuQ2xpZW50R3RrQmFzZSAgICAgICAgICAgICAgICAgICAg
ICAgIGJhc2U7CisKICAgICBXS0Z1bGxTY3JlZW5DbGllbnRHdGtXaWxsRW50ZXJGdWxsU2NyZWVu
Q2FsbGJhY2sgd2lsbEVudGVyRnVsbFNjcmVlbjsKICAgICBXS0Z1bGxTY3JlZW5DbGllbnRHdGtX
aWxsRXhpdEZ1bGxTY3JlZW5DYWxsYmFjayAgd2lsbEV4aXRGdWxsU2NyZWVuOwotfTsKLXR5cGVk
ZWYgc3RydWN0IFdLRnVsbFNjcmVlbkNsaWVudEd0ayBXS0Z1bGxTY3JlZW5DbGllbnRHdGs7Ci0K
LWVudW0geyBrV0tGdWxsU2NyZWVuQ2xpZW50R3RrQ3VycmVudFZlcnNpb24gPSAwIH07Cit9IFdL
RnVsbFNjcmVlbkNsaWVudEd0a1YwOwogCi1XS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRGdWxsU2Ny
ZWVuQ2xpZW50R3RrKFdLVmlld1JlZiB2aWV3UmVmLCBjb25zdCBXS0Z1bGxTY3JlZW5DbGllbnRH
dGsqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRGdWxsU2NyZWVuQ2xpZW50R3Rr
KFdLVmlld1JlZiB2aWV3UmVmLCBjb25zdCBXS0Z1bGxTY3JlZW5DbGllbnRHdGtCYXNlKiBjbGll
bnQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXgg
YzlkNzc3YzRkNTY1ZDA1MDc1MDVlMmEwN2E0Zjk2NDBmNmUzY2JlNS4uZDk1MjM5NDA2YjNiODdi
ZTM2YmQ2ZWJlMjAyMmExNWYxMTI0N2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotdm9pZCBXS0luc3BlY3Rv
clNldEluc3BlY3RvckNsaWVudEd0ayhXS0luc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGNvbnN0
IFdLSW5zcGVjdG9yQ2xpZW50R3RrKiB3a0NsaWVudCkKK3ZvaWQgV0tJbnNwZWN0b3JTZXRJbnNw
ZWN0b3JDbGllbnRHdGsoV0tJbnNwZWN0b3JSZWYgaW5zcGVjdG9yUmVmLCBjb25zdCBXS0luc3Bl
Y3RvckNsaWVudEd0a0Jhc2UqIHdrQ2xpZW50KQogewogICAgIHRvSW1wbChpbnNwZWN0b3JSZWYp
LT5pbml0aWFsaXplSW5zcGVjdG9yQ2xpZW50R3RrKHdrQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRH
dGsuaAppbmRleCA4NjVlMTlhZTMzNjJjOTljMmZmNGExMDNhNzg4MzZiMjlmYjkzNzUyLi45Y2Nh
ZWZkYjEwZjIwZDYzMDAyYTYxZmYzZGRlYzcxZGEwMzRlOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5o
CkBAIC0zNyw5ICszNywxNCBAQCB0eXBlZGVmIHZvaWQgKCpXS0luc3BlY3RvckNsaWVudEd0a0lu
c3BlY3RvckRpZENsb3NlQ2FsbGJhY2spKFdLSW5zcGVjdG9yUmVmIGlucwogdHlwZWRlZiB2b2lk
ICgqV0tJbnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0ZWRVUkxDaGFuZ2VkQ2FsbGJhY2spKFdLSW5z
cGVjdG9yUmVmIGluc3BlY3RvciwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNo
ZWRIZWlnaHRDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCB1bnNpZ25lZCBoZWln
aHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi1zdHJ1Y3QgV0tJbnNwZWN0b3JDbGllbnRH
dGsgewordHlwZWRlZiBzdHJ1Y3QgV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlIHsKICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
ICAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50SW5mbzsKK30gV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlOworCit0eXBlZGVmIHN0cnVj
dCBXS0luc3BlY3RvckNsaWVudEd0a1YwIHsKKyAgICBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKwogICAgIFdLSW5zcGVjdG9yQ2xpZW50
R3RrSW5zcGVjdG9yQ2FsbGJhY2sgICAgICAgICAgICAgICBvcGVuV2luZG93OwogICAgIFdLSW5z
cGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yRGlkQ2xvc2VDYWxsYmFjayAgICAgICBkaWRDbG9zZTsK
ICAgICBXS0luc3BlY3RvckNsaWVudEd0a0luc3BlY3RvckNhbGxiYWNrICAgICAgICAgICAgICAg
YnJpbmdUb0Zyb250OwpAQCAtNDcsMTIgKzUyLDkgQEAgc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50
R3RrIHsKICAgICBXS0luc3BlY3RvckNsaWVudEd0a0luc3BlY3RvckNhbGxiYWNrICAgICAgICAg
ICAgICAgYXR0YWNoOwogICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2sg
ICAgICAgICAgICAgICBkZXRhY2g7CiAgICAgV0tJbnNwZWN0b3JDbGllbnRHdGtEaWRDaGFuZ2VB
dHRhY2hlZEhlaWdodENhbGxiYWNrIGRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0OwotfTsKLXR5cGVk
ZWYgc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrIFdLSW5zcGVjdG9yQ2xpZW50R3RrOwotCi1l
bnVtIHsga1dLSW5zcGVjdG9yQ2xpZW50R3RrQ3VycmVudFZlcnNpb24gPSAwIH07Cit9IFdLSW5z
cGVjdG9yQ2xpZW50R3RrVjA7CiAKLVdLX0VYUE9SVCB2b2lkIFdLSW5zcGVjdG9yU2V0SW5zcGVj
dG9yQ2xpZW50R3RrKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgY29uc3QgV0tJbnNwZWN0
b3JDbGllbnRHdGsqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBXS0luc3BlY3RvclNldEluc3Bl
Y3RvckNsaWVudEd0ayhXS0luc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGNvbnN0IFdLSW5zcGVj
dG9yQ2xpZW50R3RrQmFzZSogY2xpZW50KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBS
ZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggMWNiZjc2NTU0OGEwN2Q3YzkwYzkwYTM0N2I1YzJjY2Nl
N2FkMThhZC4uZWNmZjI4Yzg1ZDFlN2E3ZjJkMWI3Mjc3YmVjZDI0ZjRkYmNiMzNkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLU291
cFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBXS1R5cGVJRCBXS1NvdXBSZXF1
ZXN0TWFuYWdlckdldFR5cGVJRCgpCiAgICAgcmV0dXJuIHRvQVBJKFdlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5OjpBUElUeXBlKTsKIH0KIAotdm9pZCBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENs
aWVudChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIGNvbnN0
IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50KiB3a0NsaWVudCkKK3ZvaWQgV0tTb3VwUmVxdWVz
dE1hbmFnZXJTZXRDbGllbnQoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5h
Z2VyUmVmLCBjb25zdCBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudEJhc2UqIHdrQ2xpZW50KQog
ewogICAgIHRvSW1wbChzb3VwUmVxdWVzdE1hbmFnZXJSZWYpLT5pbml0aWFsaXplQ2xpZW50KHdr
Q2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9z
b3VwL1dLU291cFJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5oCmluZGV4IDY4OTJkZTRiZjZhZWI0YzQ5YTU2
ZjRkZWRkZjU0YWM1OWQ2NmI2NzcuLmJlOGMwYjViZTljN2UzNmUwOWY5MGIzOTg2NmQxZmY1OWU2
YjBhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9zb3VwL1dL
U291cFJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuaApAQCAtMzUsMTkgKzM1LDIxIEBAIGV4dGVybiAi
QyIgewogdHlwZWRlZiB2b2lkICgqV0tTb3VwUmVxdWVzdE1hbmFnZXJEaWRSZWNlaXZlVVJJUmVx
dWVzdENhbGxiYWNrKShXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJS
ZWYsIFdLVVJMUmVmIHVybFJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1NvdXBSZXF1ZXN0
TWFuYWdlckRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0Q2FsbGJhY2spKFdLU291cFJlcXVlc3RNYW5h
Z2VyUmVmIHNvdXBSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIAotc3RydWN0IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50IHsK
K3R5cGVkZWYgc3RydWN0IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50QmFzZSB7CiAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247
CiAgICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsaWVudEluZm87Cit9IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMCB7CisgICAgV0tTb3VwUmVxdWVz
dE1hbmFnZXJDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKICAgICBXS1Nv
dXBSZXF1ZXN0TWFuYWdlckRpZFJlY2VpdmVVUklSZXF1ZXN0Q2FsbGJhY2sgICAgZGlkUmVjZWl2
ZVVSSVJlcXVlc3Q7CiAgICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJEaWRGYWlsVG9Mb2FkVVJJUmVx
dWVzdENhbGxiYWNrIGRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0OwotfTsKLXR5cGVkZWYgc3RydWN0
IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50Owot
Ci1lbnVtIHsga1dLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07
Cit9IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjA7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBX
S1NvdXBSZXF1ZXN0TWFuYWdlckdldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgdm9pZCBXS1NvdXBS
ZXF1ZXN0TWFuYWdlclNldENsaWVudChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgY29uc3QgV0tT
b3VwUmVxdWVzdE1hbmFnZXJDbGllbnQqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBXS1NvdXBS
ZXF1ZXN0TWFuYWdlclNldENsaWVudChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgY29uc3QgV0tT
b3VwUmVxdWVzdE1hbmFnZXJDbGllbnRCYXNlKiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tT
b3VwUmVxdWVzdE1hbmFnZXJSZWdpc3RlclVSSVNjaGVtZShXS1NvdXBSZXF1ZXN0TWFuYWdlclJl
ZiwgV0tTdHJpbmdSZWYgc2NoZW1lUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLU291cFJlcXVlc3RN
YW5hZ2VyRGlkSGFuZGxlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgV0tEYXRh
UmVmLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoLCBXS1N0cmluZ1JlZiBtaW1lVHlwZVJlZiwgdWlu
dDY0X3QgcmVxdWVzdElEKTsKIFdLX0VYUE9SVCB2b2lkIFdLU291cFJlcXVlc3RNYW5hZ2VyRGlk
UmVjZWl2ZVVSSVJlcXVlc3REYXRhKFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS0RhdGFSZWYs
IHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGdWxsc2NyZWVuQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZ1bGxzY3JlZW5DbGllbnQuY3BwCmluZGV4IDc1YjUxZTI1
ZDJkZGI5YWRhYTU4YWJiYzkzMWFlMTNkNjA1YjJjMmYuLmUwZGI5OGVmNTA1MGRlYzU1M2VlYjY2
MTczMGJmM2VmY2IxOTY2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZ1bGxzY3JlZW5DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZ1bGxzY3JlZW5DbGllbnQuY3BwCkBAIC0zNywxMiArMzcs
MTQgQEAgc3RhdGljIGJvb2wgd2lsbEV4aXRGdWxsU2NyZWVuKGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiAKIHZvaWQgYXR0YWNoRnVsbFNjcmVlbkNsaWVudFRvVmlldyhXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogewotICAgIFdLRnVsbFNjcmVlbkNsaWVudEd0ayB3a0Z1bGxTY3JlZW5DbGllbnQg
PSB7Ci0gICAgICAgIGtXS0Z1bGxTY3JlZW5DbGllbnRHdGtDdXJyZW50VmVyc2lvbiwKLSAgICAg
ICAgd2ViVmlldywgLy8gY2xpZW50SW5mbworICAgIFdLRnVsbFNjcmVlbkNsaWVudEd0a1YwIHdr
RnVsbFNjcmVlbkNsaWVudCA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgMCwgLy8gdmVyc2lv
bgorICAgICAgICAgICAgd2ViVmlldywgLy8gY2xpZW50SW5mbworICAgICAgICB9LAogICAgICAg
ICB3aWxsRW50ZXJGdWxsU2NyZWVuLAogICAgICAgICB3aWxsRXhpdEZ1bGxTY3JlZW4KICAgICB9
OwotICAgIFdLVmlld1NldEZ1bGxTY3JlZW5DbGllbnRHdGsodG9BUEkoV0VCS0lUX1dFQl9WSUVX
X0JBU0Uod2ViVmlldykpLCAmd2tGdWxsU2NyZWVuQ2xpZW50KTsKKyAgICBXS1ZpZXdTZXRGdWxs
U2NyZWVuQ2xpZW50R3RrKHRvQVBJKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSwgcmVp
bnRlcnByZXRfY2FzdDxXS0Z1bGxTY3JlZW5DbGllbnRHdGtCYXNlKj4oJndrRnVsbFNjcmVlbkNs
aWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKaW5kZXggM2JiMjQzNGNl
OGYyMWUzOTRjM2UyZWVmMGZiODI3NmZhMGE3ZGUzZC4uODFhMDc3NzFiMThkZDUyOGUxMjliNmNj
MjBlNzlhMGM3OTY4Zjc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcApAQCAtNDAs
MTIgKzQwLDE0IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KFdLU291cFJl
cXVlc3RNYW5hZ2VyUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsCiAKIHZvaWQgYXR0YWNoUmVxdWVz
dE1hbmFnZXJDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCkKIHsK
LSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50ID0g
ewotICAgICAgICBrV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAg
ICAgICAgd2ViQ29udGV4dCwgLy8gY2xpZW50SW5mbworICAgIFdLU291cFJlcXVlc3RNYW5hZ2Vy
Q2xpZW50VjAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudCA9IHsKKyAgICAgICAgeworICAgICAgICAg
ICAgMCwgLy8gdmVyc2lvbgorICAgICAgICAgICAgd2ViQ29udGV4dCAvLyBjbGllbnRJbmZvCisg
ICAgICAgIH0sCiAgICAgICAgIGRpZFJlY2VpdmVVUklSZXF1ZXN0LAogICAgICAgICBkaWRGYWls
VG9Mb2FkVVJJUmVxdWVzdAogICAgIH07Ci0gICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGll
bnQodG9BUEkod2Via2l0V2ViQ29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpKSwg
JndrUmVxdWVzdE1hbmFnZXJDbGllbnQpOworICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyU2V0Q2xp
ZW50KHRvQVBJKHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcih3ZWJDb250ZXh0KSks
IHJlaW50ZXJwcmV0X2Nhc3Q8V0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRCYXNlKj4oJndrUmVx
dWVzdE1hbmFnZXJDbGllbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuY3BwCmluZGV4IDg5ZTc0NmQ0N2U1ZmM2
NWUxZTc0ODRjZDBjNmEwNTIyYWMwODQ2NDMuLjI2N2JmZGViNTNiYzM0NmQzNTNmYmY5MmQ0MmRj
MDNmNzM1ZWY4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFRleHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAKQEAgLTg1LDkgKzg1LDExIEBAIFdlYktpdFRleHRD
aGVja2VyOjpXZWJLaXRUZXh0Q2hlY2tlcigpCiAgICAgOiBtX3RleHRDaGVja2VyKFdlYkNvcmU6
OlRleHRDaGVja2VyRW5jaGFudDo6Y3JlYXRlKCkpCiAgICAgLCBtX3NwZWxsQ2hlY2tpbmdFbmFi
bGVkKGZhbHNlKQogewotICAgIFdLVGV4dENoZWNrZXJDbGllbnQgd2tUZXh0Q2hlY2tlckNsaWVu
dCA9IHsKLSAgICAgICAga1dLVGV4dENoZWNrZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAgICAg
ICAgdGhpcywgLy8gY2xpZW50SW5mbworICAgIFdLVGV4dENoZWNrZXJDbGllbnRWMCB3a1RleHRD
aGVja2VyQ2xpZW50ID0geworICAgICAgICB7CisgICAgICAgICAgICAwLCAvLyB2ZXJzaW9uCisg
ICAgICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIH0sCiAgICAgICAgIDAsIC8v
IGNvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZAogICAgICAgICBjb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRDYWxsYmFjaywKICAgICAgICAgc2V0Q29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkQ2FsbGJhY2ssCkBAIC0xMDUsNyArMTA3LDcgQEAgV2ViS2l0VGV4dENoZWNrZXI6
OldlYktpdFRleHRDaGVja2VyKCkKICAgICAgICAgbGVhcm5Xb3JkQ2FsbGJhY2ssCiAgICAgICAg
IGlnbm9yZVdvcmRDYWxsYmFjaywKICAgICB9OwotICAgIFdLVGV4dENoZWNrZXJTZXRDbGllbnQo
JndrVGV4dENoZWNrZXJDbGllbnQpOworICAgIFdLVGV4dENoZWNrZXJTZXRDbGllbnQocmVpbnRl
cnByZXRfY2FzdDxXS1RleHRDaGVja2VyQ2xpZW50QmFzZSo+KCZ3a1RleHRDaGVja2VyQ2xpZW50
KSk7CiB9CiAKIHZvaWQgV2ViS2l0VGV4dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZywgaW50JiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQmIG1pc3Nw
ZWxsaW5nTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKaW5kZXggMzgzOWFkM2UyM2VmZjU0NjU2ZDFkMTky
NzM1ZTJjZWRjZWVkZjA1Yi4uYmJhYmFjYWVlMWQ4OTJiM2VjNmVhZDk0MTE5YmZmZWNmMjM0MDI0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
SW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJJbnNwZWN0b3IuY3BwCkBAIC0zMTYsOSArMzE2LDExIEBAIFdlYktpdFdlYkluc3BlY3Rv
ciogd2Via2l0V2ViSW5zcGVjdG9yQ3JlYXRlKFdlYkluc3BlY3RvclByb3h5KiB3ZWJJbnNwZWN0
b3IpCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BF
Q1RPUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0lOU1BFQ1RPUiwgTlVMTCkpOwogICAg
IGluc3BlY3Rvci0+cHJpdi0+d2ViSW5zcGVjdG9yID0gd2ViSW5zcGVjdG9yOwogCi0gICAgV0tJ
bnNwZWN0b3JDbGllbnRHdGsgd2tJbnNwZWN0b3JDbGllbnRHdGsgPSB7Ci0gICAgICAgIGtXS0lu
c3BlY3RvckNsaWVudEd0a0N1cnJlbnRWZXJzaW9uLAotICAgICAgICBpbnNwZWN0b3IsIC8vIGNs
aWVudEluZm8KKyAgICBXS0luc3BlY3RvckNsaWVudEd0a1YwIHdrSW5zcGVjdG9yQ2xpZW50R3Rr
ID0geworICAgICAgICB7CisgICAgICAgICAgICAwLCAvLyB2ZXJzaW9uCisgICAgICAgICAgICBp
bnNwZWN0b3IsIC8vIGNsaWVudEluZm8KKyAgICAgICAgfSwKICAgICAgICAgb3BlbldpbmRvdywK
ICAgICAgICAgZGlkQ2xvc2UsCiAgICAgICAgIGJyaW5nVG9Gcm9udCwKQEAgLTMyNyw3ICszMjks
NyBAQCBXZWJLaXRXZWJJbnNwZWN0b3IqIHdlYmtpdFdlYkluc3BlY3RvckNyZWF0ZShXZWJJbnNw
ZWN0b3JQcm94eSogd2ViSW5zcGVjdG9yKQogICAgICAgICBkZXRhY2gsCiAgICAgICAgIGRpZENo
YW5nZUF0dGFjaGVkSGVpZ2h0CiAgICAgfTsKLSAgICBXS0luc3BlY3RvclNldEluc3BlY3RvckNs
aWVudEd0ayh0b0FQSSh3ZWJJbnNwZWN0b3IpLCAmd2tJbnNwZWN0b3JDbGllbnRHdGspOworICAg
IFdLSW5zcGVjdG9yU2V0SW5zcGVjdG9yQ2xpZW50R3RrKHRvQVBJKHdlYkluc3BlY3RvciksIHJl
aW50ZXJwcmV0X2Nhc3Q8V0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlKj4oJndrSW5zcGVjdG9yQ2xp
ZW50R3RrKSk7CiAKICAgICByZXR1cm4gaW5zcGVjdG9yOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDM5
NGMwMDVmMTJjOGYxNmQ0M2MyZjdmOTIwMzAwZjBjZDg0NDNlZTAuLjc1ZjU3OTZjMzU4OTgwOTFm
YTA3NzUxNzI2NzMwOWE0ZmY1OTgzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTEwNDUsNyArMTA0NSw3
IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3QmFz
ZSogd2Via2l0V2ViVmlld0Jhc2UpCiAjZW5kaWYKIH0KIAotdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZUluaXRpYWxpemVGdWxsU2NyZWVuQ2xpZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJW
aWV3QmFzZSwgY29uc3QgV0tGdWxsU2NyZWVuQ2xpZW50R3RrKiB3a0NsaWVudCkKK3ZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VJbml0aWFsaXplRnVsbFNjcmVlbkNsaWVudChXZWJLaXRXZWJWaWV3QmFz
ZSogd2Via2l0V2ViVmlld0Jhc2UsIGNvbnN0IFdLRnVsbFNjcmVlbkNsaWVudEd0a0Jhc2UqIHdr
Q2xpZW50KQogewogICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5mdWxsU2NyZWVuQ2xpZW50
LmluaXRpYWxpemUod2tDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCA3ZDEy
YWMwMWNmMTQ4MGZiMzZiNjRmNGQzNzRjYjQ1YjNiNDhhZjdmLi4yOWJiMTQ1YjAxYjc4NGQyNjlh
OWRjMjQ5YzIxY2ViNjBhODU3Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtNDQsNyAr
NDQsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3RhcnREcmFnKFdlYktpdFdlYlZpZXdCYXNl
KiwgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmLCBQYQogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNo
aWxkTW92ZVJlc2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIEd0a1dpZGdldCosIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFbnRlckZ1bGxTY3JlZW4oV2Vi
S2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNjcmVlbihX
ZWJLaXRXZWJWaWV3QmFzZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUluaXRpYWxpemVGdWxs
U2NyZWVuQ2xpZW50KFdlYktpdFdlYlZpZXdCYXNlKiwgY29uc3QgV0tGdWxsU2NyZWVuQ2xpZW50
R3RrKik7Cit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlSW5pdGlhbGl6ZUZ1bGxTY3JlZW5DbGllbnQo
V2ViS2l0V2ViVmlld0Jhc2UqLCBjb25zdCBXS0Z1bGxTY3JlZW5DbGllbnRHdGtCYXNlKik7CiB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld0hlaWdodChXZWJLaXRXZWJWaWV3
QmFzZSosIHVuc2lnbmVkIGhlaWdodCk7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0QWN0aXZl
Q29udGV4dE1lbnVQcm94eShXZWJLaXRXZWJWaWV3QmFzZSosIFdlYktpdDo6V2ViQ29udGV4dE1l
bnVQcm94eUd0ayopOwogV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrKiB3ZWJraXRXZWJW
aWV3QmFzZUdldEFjdGl2ZUNvbnRleHRNZW51UHJveHkoV2ViS2l0V2ViVmlld0Jhc2UqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViVmlldy5jcHAKaW5kZXggZDYxNmRkYzZiZWNlNDc3NDA4NDgxYzA3YzI5MTE1OTEyMDE1MmY5
Zi4uODI2NjRkZTE0MjFmZDMyZWE2YjA4MTVlNDBkOTEzYzVhMzYzYTUyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmll
dy5jcHAKQEAgLTIwNiw3ICsyMDYsNyBAQCBib29sIFdlYlZpZXc6OmV4aXRGdWxsU2NyZWVuKCkK
IH0KICNlbmRpZgogCi12b2lkIFdlYlZpZXc6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3
Q2xpZW50KiBjbGllbnQpCit2b2lkIFdlYlZpZXc6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tW
aWV3Q2xpZW50QmFzZSogY2xpZW50KQogewogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYlZpZXcuaAppbmRleCAyNDU0ZDE5NjBlOWEyYzE1MzNhNGZmZDY5ZjA3M2I0NTEw
NDMyNTczLi45NmUzOTdjNjYwMTU5ZDdmYTcxNzU0MTcxNzk3YmNiYTQ2MjUyYjI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2Vi
Vmlldy5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpbmRab29tYWJsZUFy
ZWFGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKTsKIAogICAgIC8vIFZpZXcgY2xpZW50LgotICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChj
b25zdCBXS1ZpZXdDbGllbnQqKTsKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tW
aWV3Q2xpZW50QmFzZSopOwogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV9w
YWdlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL1dlYlZpZXdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKaW5kZXggZjc1ZGU1MDIz
YTRlODBlMGMyZDZjNDEwZmQ2OTIxOTRiNGQ5ZDQ3NS4uMDMxNmRjMjIxZmYzODdhODk3MDMzMzlh
NWVlN2RlNmE4NWY4ZTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKQEAgLTQ4LDcg
KzQ4LDcgQEAgdm9pZCBXZWJWaWV3Q2xpZW50Ojp2aWV3TmVlZHNEaXNwbGF5KFdlYlZpZXcqIHZp
ZXcsIGNvbnN0IEludFJlY3QmIGFyZWEpCiAgICAgaWYgKCFtX2NsaWVudC52aWV3TmVlZHNEaXNw
bGF5KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC52aWV3TmVlZHNEaXNwbGF5KHRv
QVBJKHZpZXcpLCB0b0FQSShhcmVhKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGll
bnQudmlld05lZWRzRGlzcGxheSh0b0FQSSh2aWV3KSwgdG9BUEkoYXJlYSksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkQ2hhbmdlQ29udGVu
dHNTaXplKFdlYlZpZXcqIHZpZXcsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC01Niw3ICs1Niw3
IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKFdlYlZpZXcqIHZp
ZXcsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VDb250
ZW50c1NpemUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50LmRpZENoYW5nZUNvbnRl
bnRzU2l6ZSh0b0FQSSh2aWV3KSwgdG9BUEkoc2l6ZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwor
ICAgIG1fY2xpZW50LmRpZENoYW5nZUNvbnRlbnRzU2l6ZSh0b0FQSSh2aWV3KSwgdG9BUEkoc2l6
ZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViVmlld0NsaWVudDo6
d2ViUHJvY2Vzc0NyYXNoZWQoV2ViVmlldyogdmlldywgY29uc3QgU3RyaW5nJiB1cmwpCkBAIC02
NCw3ICs2NCw3IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6d2ViUHJvY2Vzc0NyYXNoZWQoV2ViVmll
dyogdmlldywgY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgaWYgKCFtX2NsaWVudC53ZWJQcm9jZXNz
Q3Jhc2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQud2ViUHJvY2Vzc0NyYXNo
ZWQodG9BUEkodmlldyksIGFkb3B0V0sodG9Db3BpZWRVUkxBUEkodXJsKSkuZ2V0KCksIG1fY2xp
ZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LndlYlByb2Nlc3NDcmFzaGVkKHRvQVBJKHZp
ZXcpLCBhZG9wdFdLKHRvQ29waWVkVVJMQVBJKHVybCkpLmdldCgpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOwogfQogCiB2b2lkIFdlYlZpZXdDbGllbnQ6OndlYlByb2Nlc3NEaWRSZWxhdW5j
aChXZWJWaWV3KiB2aWV3KQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFdlYlZpZXdDbGllbnQ6Ondl
YlByb2Nlc3NEaWRSZWxhdW5jaChXZWJWaWV3KiB2aWV3KQogICAgIGlmICghbV9jbGllbnQud2Vi
UHJvY2Vzc0RpZFJlbGF1bmNoKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53ZWJQ
cm9jZXNzRGlkUmVsYXVuY2godG9BUEkodmlldyksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAg
IG1fY2xpZW50LndlYlByb2Nlc3NEaWRSZWxhdW5jaCh0b0FQSSh2aWV3KSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJWaWV3Q2xpZW50OjpkaWRDaGFuZ2VDb250ZW50
c1Bvc2l0aW9uKFdlYlZpZXcqIHZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkK
QEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBXZWJWaWV3Q2xpZW50OjpkaWRDaGFuZ2VDb250ZW50c1Bv
c2l0aW9uKFdlYlZpZXcqIHZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFAKICAgICBpZiAoIW1fY2xp
ZW50LmRpZENoYW5nZUNvbnRlbnRzUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUNvbnRlbnRzUG9zaXRpb24odG9BUEkodmlldyksIHRvQVBJKHBvaW50
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkQ2hhbmdlQ29udGVudHNQ
b3NpdGlvbih0b0FQSSh2aWV3KSwgdG9BUEkocG9pbnQpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCiB2b2lkIFdlYlZpZXdDbGllbnQ6OmRpZFJlbmRlckZyYW1lKFdlYlZpZXcqIHZp
ZXcsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNvdmVyZWRSZWN0KQpAQCAtODgsNyArODgsNyBAQCB2b2lkIFdlYlZpZXdDbGllbnQ6OmRpZFJl
bmRlckZyYW1lKFdlYlZpZXcqIHZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsCiAg
ICAgaWYgKCFtX2NsaWVudC5kaWRSZW5kZXJGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jbGllbnQuZGlkUmVuZGVyRnJhbWUodG9BUEkodmlldyksIHRvQVBJKHNpemUpLCB0b0FQSShj
b3ZlcmVkUmVjdCksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRpZFJlbmRl
ckZyYW1lKHRvQVBJKHZpZXcpLCB0b0FQSShzaXplKSwgdG9BUEkoY292ZXJlZFJlY3QpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIFdlYlZpZXdDbGllbnQ6OmRpZENvbXBs
ZXRlUGFnZVRyYW5zaXRpb24oV2ViVmlldyogdmlldykKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBX
ZWJWaWV3Q2xpZW50OjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKFdlYlZpZXcqIHZpZXcpCiAg
ICAgaWYgKCFtX2NsaWVudC5kaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2NsaWVudC5kaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKHRvQVBJKHZpZXcp
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5kaWRDb21wbGV0ZVBhZ2VUcmFu
c2l0aW9uKHRvQVBJKHZpZXcpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lk
IFdlYlZpZXdDbGllbnQ6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXZWJWaWV3KiB2aWV3
LCBjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCkBAIC0xMDUsNyArMTA1LDcg
QEAgdm9pZCBXZWJWaWV3Q2xpZW50OjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViVmll
dyogdmlldywgY29uc3QgVmlld3BvcnRBdHQKICAgICAgICAgcmV0dXJuOwogCiAgICAgV0tSZXRh
aW5QdHI8V0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY+IHdrQXR0cmlidXRlcyA9IGFkb3B0V0sodG9B
UEkoV2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpjcmVhdGUoYXR0cmlidXRlcykubGVha1JlZigpKSk7
Ci0gICAgbV9jbGllbnQuZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKHRvQVBJKHZpZXcpLCB3
a0F0dHJpYnV0ZXMuZ2V0KCksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRp
ZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyh0b0FQSSh2aWV3KSwgd2tBdHRyaWJ1dGVzLmdldCgp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIFdlYlZpZXdDbGllbnQ6OmRp
ZENoYW5nZVRvb2x0aXAoV2ViVmlldyogdmlldywgY29uc3QgU3RyaW5nJiB0b29sdGlwKQpAQCAt
MTEzLDcgKzExMyw3IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkQ2hhbmdlVG9vbHRpcChXZWJW
aWV3KiB2aWV3LCBjb25zdCBTdHJpbmcmIHRvb2x0aXApCiAgICAgaWYgKCFtX2NsaWVudC5kaWRD
aGFuZ2VUb29sdGlwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5kaWRDaGFuZ2VU
b29sdGlwKHRvQVBJKHZpZXcpLCBhZG9wdFdLKHRvQ29waWVkQVBJKHRvb2x0aXApKS5nZXQoKSwg
bV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkQ2hhbmdlVG9vbHRpcCh0b0FQ
SSh2aWV3KSwgYWRvcHRXSyh0b0NvcGllZEFQSSh0b29sdGlwKSkuZ2V0KCksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkRmluZFpvb21hYmxl
QXJlYShXZWJWaWV3KiB2aWV3LCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0LCBjb25zdCBJbnRSZWN0
JiBhcmVhKQpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkRmluZFpv
b21hYmxlQXJlYShXZWJWaWV3KiB2aWV3LCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0LCBjCiAgICAg
aWYgKCFtX2NsaWVudC5kaWRGaW5kWm9vbWFibGVBcmVhKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2NsaWVudC5kaWRGaW5kWm9vbWFibGVBcmVhKHRvQVBJKHZpZXcpLCB0b0FQSSh0YXJnZXQp
LCB0b0FQSShhcmVhKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkRmlu
ZFpvb21hYmxlQXJlYSh0b0FQSSh2aWV3KSwgdG9BUEkodGFyZ2V0KSwgdG9BUEkoYXJlYSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpA
QCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6ZG9uZVdpdGhUb3VjaEV2ZW50
KFdlYlZpZXcqIHZpZXcsIGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmCiAgICAgaWYgKCFtX2Ns
aWVudC5kb25lV2l0aFRvdWNoRXZlbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50
LmRvbmVXaXRoVG91Y2hFdmVudCh0b0FQSSh2aWV3KSwgdG9BUEkoY29uc3RfY2FzdDxFd2tUb3Vj
aEV2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkpLCB3YXNFdmVudEhhbmRsZWQsIG1fY2xpZW50
LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRvbmVXaXRoVG91Y2hFdmVudCh0b0FQSSh2aWV3
KSwgdG9BUEkoY29uc3RfY2FzdDxFd2tUb3VjaEV2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkp
LCB3YXNFdmVudEhhbmRsZWQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAjZWxzZQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgVU5VU0VEX1BBUkFNKHZpZXcpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmll
d0NsaWVudC5oCmluZGV4IDUxOTc5ZTljN2EwMGY4MjlmZTY3OTE0MjQ0NmYwNDA4NDAyZGQ0NTUu
LmUwMDFhZGFhNmNmMjllMDdhMmZkZGE3NjZhOTliNmVjYTNhZDAzODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXdDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJW
aWV3Q2xpZW50LmgKQEAgLTM5LDYgKzM5LDEyIEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBWaWV3
cG9ydEF0dHJpYnV0ZXM7CiB9CiAKK25hbWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLVmlld0NsaWVudEJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
V0tWaWV3Q2xpZW50VjA+IFZlcnNpb25zOworfTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYlZpZXc7CkBAIC00Nyw3ICs1Myw3IEBAIGNsYXNzIFdlYlZpZXc7CiBjbGFzcyBO
YXRpdmVXZWJUb3VjaEV2ZW50OwogI2VuZGlmCiAKLWNsYXNzIFdlYlZpZXdDbGllbnQ6IHB1Ymxp
YyBBUElDbGllbnQ8V0tWaWV3Q2xpZW50LCBrV0tWaWV3Q2xpZW50Q3VycmVudFZlcnNpb24+IHsK
K2NsYXNzIFdlYlZpZXdDbGllbnQ6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1ZpZXdDbGllbnRCYXNl
PiB7CiBwdWJsaWM6CiAgICAgdm9pZCB2aWV3TmVlZHNEaXNwbGF5KFdlYlZpZXcqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoV2ViVmll
dyosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAppbmRleCBiODEyZTc1YWIyYjk5ZjRi
OWIwYzM5YjBjY2I5NzFjZGNkNzVjMjQzLi5mODI5YWMxYzM2ZmYwNTg4YmQwNDNlOTIxMDQ3YTlm
MmFiMzliYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFdlYkJhdHRlcnlNYW5hZ2VyUHJv
eHk6On5XZWJCYXR0ZXJ5TWFuYWdlclByb3h5KCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqIHBy
b3ZpZGVyKQordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIo
Y29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXJCYXNlKiBwcm92aWRlcikKIHsKICAgICBtX3Byb3ZpZGVy
LmluaXRpYWxpemUocHJvdmlkZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKaW5kZXggZDI1NmU5ZTYzZDEwNDdiMzNmZWJiNjEz
YWMwYjFhYzVlMjkyMDc3NC4uZDZiZDMwZDBjODIwY2YzM2IwZDY0MTBjZGNjMjM4NGQwNGEyNGNi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwogICAgIHZpcnR1YWwg
fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVy
KGNvbnN0IFdLQmF0dGVyeVByb3ZpZGVyKik7CisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIo
Y29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXJCYXNlKik7CiAKICAgICB2b2lkIHByb3ZpZGVyRGlkQ2hh
bmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYsIFdlYkJhdHRlcnlTdGF0
dXMqKTsKICAgICB2b2lkIHByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyhXZWJCYXR0ZXJ5U3Rh
dHVzKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIu
Y3BwCmluZGV4IDgyODQxNjAxZGM0NjZjNDQ1ZmM0NTMwYThhNGUwNjJhM2UzNjUyNmYuLjI4ZWVk
OTdhZTkyN2NjNWU5YjBkYzM2ZmVhMGUzNjQwYjUzNGYwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZv
aWQgV2ViQmF0dGVyeVByb3ZpZGVyOjpzdGFydFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkqIGJhdHRlcnlNYW5hZ2VyKQogICAgIGlmICghbV9jbGllbnQuc3RhcnRVcGRhdGluZykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuc3RhcnRVcGRhdGluZyh0b0FQSShiYXR0ZXJ5
TWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LnN0YXJ0VXBkYXRp
bmcodG9BUEkoYmF0dGVyeU1hbmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQog
CiB2b2lkIFdlYkJhdHRlcnlQcm92aWRlcjo6c3RvcFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkqIGJhdHRlcnlNYW5hZ2VyKQpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFdlYkJhdHRlcnlQ
cm92aWRlcjo6c3RvcFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqIGJhdHRlcnlNYW5h
Z2VyKQogICAgIGlmICghbV9jbGllbnQuc3RvcFVwZGF0aW5nKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEkoYmF0dGVyeU1hbmFnZXIpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEkoYmF0dGVyeU1h
bmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaApp
bmRleCBmNTk5MDY4Yzk0MmU4MGM0YjBhMjk3ZWE0NjIzZGVhNDhhNmM2NGIyLi5hMWRiYTAxNWVl
MzYzZjFhMzgyZGE1ZGY2NDAzYWU1NTliYjY2ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oCkBAIC0zMiwxMSArMzIsMTcgQEAKICNpbmNsdWRl
ICJXS0JhdHRlcnlNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAorbmFtZXNw
YWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tCYXR0ZXJ5UHJvdmlk
ZXJCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQmF0dGVyeVByb3ZpZGVyVjA+IFZl
cnNpb25zOworfTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkJhdHRlcnlN
YW5hZ2VyUHJveHk7CiAKLWNsYXNzIFdlYkJhdHRlcnlQcm92aWRlciA6IHB1YmxpYyBBUElDbGll
bnQ8V0tCYXR0ZXJ5UHJvdmlkZXIsIGtXS0JhdHRlcnlQcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7
CitjbGFzcyBXZWJCYXR0ZXJ5UHJvdmlkZXIgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tCYXR0ZXJ5
UHJvdmlkZXJCYXNlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkJhdHRl
cnlNYW5hZ2VyUHJveHkqKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5o
CmluZGV4IGMzMzY3ODljNWQ2MjY0YjQ4MTU5OGVhYTcwNTg3MDczMjliZjExMmIuLmY1MGNiMmQ5
NmRjMzU3ZGQzNDgwNmUwMGI3MTk3ZmI1MmRlYjdjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgog
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0a1dpZGdldCogaW5zcGVjdG9yVmlldygpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yVmlldzsgfTsKLSAgICB2b2lkIGluaXRpYWxpemVJbnNwZWN0
b3JDbGllbnRHdGsoY29uc3QgV0tJbnNwZWN0b3JDbGllbnRHdGsqKTsKKyAgICB2b2lkIGluaXRp
YWxpemVJbnNwZWN0b3JDbGllbnRHdGsoY29uc3QgV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlKik7
CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd0NvbnNvbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDJi
ODAyZDc2ZjkxNzVjNWM1ZmExYWY4YWQ3NWI5MTZjNzcwMWRjY2EuLjQyMGYzMTc5ZWU3YjYwZThj
MTZhMWVjZTM4YzNjMjJmNTMyNzExMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcApAQCAtNTYsNyArNTYsNyBA
QCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6fldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
KCkKIHsKIH0KIAotdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVBy
b3ZpZGVyKGNvbnN0IFdLTmV0d29ya0luZm9Qcm92aWRlciogcHJvdmlkZXIpCit2b2lkIFdlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOZXR3b3Jr
SW5mb1Byb3ZpZGVyQmFzZSogcHJvdmlkZXIpCiB7CiAgICAgbV9wcm92aWRlci5pbml0aWFsaXpl
KHByb3ZpZGVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggNGViNTNlZjM3MjQ5OWJmOTYxOGJiMzQwODg3
ZWFmODRmNmVkOGNlZi4uMzQ0ZThmNDU1YzY4NDljZTYyYWRiYWMxNzdlNDI4MDVhMWEyNjAzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwogICAg
IHZpcnR1YWwgfldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KCk7CiAKLSAgICB2b2lkIGluaXRp
YWxpemVQcm92aWRlcihjb25zdCBXS05ldHdvcmtJbmZvUHJvdmlkZXIqKTsKKyAgICB2b2lkIGlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS05ldHdvcmtJbmZvUHJvdmlkZXJCYXNlKik7CiAKICAg
ICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0IFdURjo6QXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFdlYk5ldHdvcmtJbmZvKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAppbmRleCA0N2Qw
Y2VlNjI4YjgwNGRlMWIyNWI4MjU3MjNlMmU4NmU5OTc0ZWVmLi5mZmZkZjBkMzVhMDc0MzE1NjU4
ZTc3ZjZjNjk5MjEyNzUwOGRhMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2Vi
TmV0d29ya0luZm9Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eSogbmV0d29ya0luCiAgICAgaWYgKCFtX2NsaWVudC5zdGFydFVwZGF0aW5nKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5zdGFydFVwZGF0aW5nKHRvQVBJKG5ldHdvcmtJbmZv
TWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LnN0YXJ0VXBkYXRp
bmcodG9BUEkobmV0d29ya0luZm9NYW5hZ2VyKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
IH0KIAogdm9pZCBXZWJOZXR3b3JrSW5mb1Byb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkqIG5ldHdvcmtJbmZvTWFuYWdlcikKQEAgLTQ3LDcgKzQ3LDcgQEAg
dm9pZCBXZWJOZXR3b3JrSW5mb1Byb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHkqIG5ldHdvcmtJbmYKICAgICBpZiAoIW1fY2xpZW50LnN0b3BVcGRhdGluZykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKHRvQVBJKG5ldHdv
cmtJbmZvTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LnN0b3BV
cGRhdGluZyh0b0FQSShuZXR3b3JrSW5mb01hbmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCiBkb3VibGUgV2ViTmV0d29ya0luZm9Qcm92aWRlcjo6YmFuZHdpZHRoKFdlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5KiBuZXR3b3JrSW5mb01hbmFnZXIpIGNvbnN0CkBAIC01Niw3
ICs1Niw3IEBAIGRvdWJsZSBXZWJOZXR3b3JrSW5mb1Byb3ZpZGVyOjpiYW5kd2lkdGgoV2ViTmV0
d29ya0luZm9NYW5hZ2VyUHJveHkqIG5ldHdvcmtJbmZvCiAgICAgaWYgKCFtX2NsaWVudC5iYW5k
d2lkdGgpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmlu
aXR5KCk7CiAKLSAgICByZXR1cm4gbV9jbGllbnQuYmFuZHdpZHRoKHRvQVBJKG5ldHdvcmtJbmZv
TWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiBtX2NsaWVudC5iYW5k
d2lkdGgodG9BUEkobmV0d29ya0luZm9NYW5hZ2VyKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKIH0KIAogYm9vbCBXZWJOZXR3b3JrSW5mb1Byb3ZpZGVyOjppc01ldGVyZWQoV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkqIG5ldHdvcmtJbmZvTWFuYWdlcikgY29uc3QKQEAgLTY0LDcgKzY0
LDcgQEAgYm9vbCBXZWJOZXR3b3JrSW5mb1Byb3ZpZGVyOjppc01ldGVyZWQoV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkqIG5ldHdvcmtJbmZvTWEKICAgICBpZiAoIW1fY2xpZW50LmlzTWV0ZXJl
ZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fY2xpZW50LmlzTWV0ZXJl
ZCh0b0FQSShuZXR3b3JrSW5mb01hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQuaXNNZXRlcmVkKHRvQVBJKG5ldHdvcmtJbmZvTWFuYWdlciksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmgKaW5kZXgg
ZjcyMDVkMDViMDg2NmYxNTNiMzNjOTY1Mzg5N2U1ODA3NWJmM2VhOS4uNzg1YWE4MGVhMWVmZDJl
MzA1YjJlMjZlMzk0YjYxYWMyNjI4Y2NmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5oCkBAIC0zMiwxMSArMzIsMTcgQEAKICNpbmNs
dWRlICJXS05ldHdvcmtJbmZvTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
K25hbWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLTmV0d29y
a0luZm9Qcm92aWRlckJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tOZXR3b3JrSW5m
b1Byb3ZpZGVyVjA+IFZlcnNpb25zOworfTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OwogCi1jbGFzcyBXZWJOZXR3b3JrSW5mb1By
b3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS05ldHdvcmtJbmZvUHJvdmlkZXIsIGtXS05ldHdv
cmtJbmZvUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4geworY2xhc3MgV2ViTmV0d29ya0luZm9Qcm92
aWRlciA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS05ldHdvcmtJbmZvUHJvdmlkZXJCYXNlPiB7CiBw
dWJsaWM6CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
Kik7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjMDFmMWM3NDUxMzE5
NmM0MzVjMmM4YWQ3YmY4YWU3MzljMGFkOGE3Li4yYTkwOTQyZDIxZmQ1ZTY5ZTUyYjk0YjhmNmNm
OGFiZWNiNDBmZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zNTcsNyArMzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZVBvbGljeUNsaWVu
dChjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKik7CiAgICAgdm9pZCBpbml0aWFsaXplVUlD
bGllbnQoY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKik7CiAjaWYgUExBVEZPUk0oRUZMKQotICAg
IHZvaWQgaW5pdGlhbGl6ZVVJUG9wdXBNZW51Q2xpZW50KGNvbnN0IFdLUGFnZVVJUG9wdXBNZW51
Q2xpZW50Kik7CisgICAgdm9pZCBpbml0aWFsaXplVUlQb3B1cE1lbnVDbGllbnQoY29uc3QgV0tQ
YWdlVUlQb3B1cE1lbnVDbGllbnRCYXNlKik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6
ZVdlYlBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJUZXh0
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuY3Bw
CmluZGV4IGVmNmEzYzYyMTFkYjBiYmU5OTZjNjNjNjQ5OTYyMGVmYjMxMTM3MTEuLjkzNGM1ODk0
MTU2NjEzMDZhMzJlMWJmY2M0NzRlYzUxMWFhODdkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlRleHRDaGVja2VyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBXZWJUZXh0Q2hlY2tl
cjo6V2ViVGV4dENoZWNrZXIoKQogewogfQogCi12b2lkIFdlYlRleHRDaGVja2VyOjpzZXRDbGll
bnQoY29uc3QgV0tUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50KQordm9pZCBXZWJUZXh0Q2hlY2tl
cjo6c2V0Q2xpZW50KGNvbnN0IFdLVGV4dENoZWNrZXJDbGllbnRCYXNlKiBjbGllbnQpCiB7CiAg
ICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlRleHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVGV4dENoZWNrZXIuaAppbmRleCBlYmY0MTgwNTRiYWQ2NDI4MDgxMDUzNWU1YjZkMDc1
ZWY0ZWQ4OWQxLi41NWE0ODg5N2VmMDdhZGMzNjZjNzZjNzkxZDMzZjgwNGE5ZTRjZmVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuaApAQCAtMzksNyArMzksNyBA
QCBjbGFzcyBXZWJUZXh0Q2hlY2tlciA6IHB1YmxpYyBBUEk6OlR5cGVkT2JqZWN0PEFQSTo6T2Jq
ZWN0OjpUeXBlOjpUZXh0Q2hlY2tlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBXZWJUZXh0Q2hl
Y2tlciogc2hhcmVkKCk7CiAKLSAgICB2b2lkIHNldENsaWVudChjb25zdCBXS1RleHRDaGVja2Vy
Q2xpZW50Kik7CisgICAgdm9pZCBzZXRDbGllbnQoY29uc3QgV0tUZXh0Q2hlY2tlckNsaWVudEJh
c2UqKTsKICAgICBXZWJUZXh0Q2hlY2tlckNsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAogICAgIHZvaWQgY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFu
Z2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlRleHRD
aGVja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tl
ckNsaWVudC5jcHAKaW5kZXggY2RiODgyMDlhYmRjZjVlM2ZmMzljMmQ2NmI2OGIyMTI2NTVmZDBi
OS4uMjU1MzYwYjExY2MwMzBkOTMwMmFiNWUwNTc3ZmE1Y2E1YmUyMTcwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlRleHRDaGVja2VyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXJDbGllbnQuY3BwCkBAIC00MCw3
ICs0MCw3IEBAIGJvb2wgV2ViVGV4dENoZWNrZXJDbGllbnQ6OmNvbnRpbnVvdXNTcGVsbENoZWNr
aW5nQWxsb3dlZCgpCiAgICAgaWYgKCFtX2NsaWVudC5jb250aW51b3VzU3BlbGxDaGVja2luZ0Fs
bG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBtX2NsaWVudC5jb250
aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQobV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0
dXJuIG1fY2xpZW50LmNvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZChtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogfQogCiBib29sIFdlYlRleHRDaGVja2VyQ2xpZW50Ojpjb250aW51b3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKQpAQCAtNDgsNyArNDgsNyBAQCBib29sIFdlYlRleHRDaGVj
a2VyQ2xpZW50Ojpjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQogICAgIGlmICghbV9j
bGllbnQuY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gbV9jbGllbnQuY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiBtX2NsaWVudC5jb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBX
ZWJUZXh0Q2hlY2tlckNsaWVudDo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6
c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBpZiAo
IW1fY2xpZW50LnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9jbGllbnQuc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGVu
YWJsZWQsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LnNldENvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZChlbmFibGVkLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
fQogCiBib29sIFdlYlRleHRDaGVja2VyQ2xpZW50OjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkK
QEAgLTY0LDcgKzY0LDcgQEAgYm9vbCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6Z3JhbW1hckNoZWNr
aW5nRW5hYmxlZCgpCiAgICAgaWYgKCFtX2NsaWVudC5ncmFtbWFyQ2hlY2tpbmdFbmFibGVkKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gbV9jbGllbnQuZ3JhbW1hckNoZWNr
aW5nRW5hYmxlZChtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gbV9jbGllbnQuZ3Jh
bW1hckNoZWNraW5nRW5hYmxlZChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lk
IFdlYlRleHRDaGVja2VyQ2xpZW50OjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6c2V0R3Jh
bW1hckNoZWNraW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgaWYgKCFtX2NsaWVudC5zZXRH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5z
ZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGVuYWJsZWQsIG1fY2xpZW50LmNsaWVudEluZm8pOwor
ICAgIG1fY2xpZW50LnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoZW5hYmxlZCwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdWludDY0X3QgV2ViVGV4dENoZWNrZXJDbGllbnQ6OnVu
aXF1ZVNwZWxsRG9jdW1lbnRUYWcoV2ViUGFnZVByb3h5KiBwYWdlKQpAQCAtODAsNyArODAsNyBA
QCB1aW50NjRfdCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhX
ZWJQYWdlUHJveHkqIHBhZ2UpCiAgICAgaWYgKCFtX2NsaWVudC51bmlxdWVTcGVsbERvY3VtZW50
VGFnKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBtX2NsaWVudC51bmlxdWVTcGVs
bERvY3VtZW50VGFnKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1
cm4gbV9jbGllbnQudW5pcXVlU3BlbGxEb2N1bWVudFRhZyh0b0FQSShwYWdlKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6Y2xvc2VT
cGVsbERvY3VtZW50V2l0aFRhZyh1aW50NjRfdCB0YWcpCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQg
V2ViVGV4dENoZWNrZXJDbGllbnQ6OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcodWludDY0X3Qg
dGFnKQogICAgIGlmICghbV9jbGllbnQuY2xvc2VTcGVsbERvY3VtZW50V2l0aFRhZykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuY2xvc2VTcGVsbERvY3VtZW50V2l0aFRhZyh0YWcs
IG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmNsb3NlU3BlbGxEb2N1bWVudFdp
dGhUYWcodGFnLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIFdlYlRleHRD
aGVja2VyQ2xpZW50OjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcodWludDY0X3QgdGFnLCBjb25zdCBT
dHJpbmcmIHRleHQsIGludDMyX3QmIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3QmIG1pc3Nw
ZWxsaW5nTGVuZ3RoKQpAQCAtOTksNyArOTksNyBAQCB2b2lkIFdlYlRleHRDaGVja2VyQ2xpZW50
OjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcodWludDY0X3QgdGFnLCBjb25zdCBTdHJpbmcmIHRleAog
ICAgIGlmICghbV9jbGllbnQuY2hlY2tTcGVsbGluZ09mU3RyaW5nKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2NsaWVudC5jaGVja1NwZWxsaW5nT2ZTdHJpbmcodGFnLCB0b0FQSSh0ZXh0Lmlt
cGwoKSksICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgsIG1fY2xpZW50
LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmNoZWNrU3BlbGxpbmdPZlN0cmluZyh0YWcsIHRv
QVBJKHRleHQuaW1wbCgpKSwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0
aCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJUZXh0Q2hlY2tlckNs
aWVudDo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcodWludDY0X3QgdGFnLCBjb25zdCBTdHJpbmcmIHRl
eHQsIFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYgZ3JhbW1hckRldGFpbHMsIGludDMy
X3QmIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50MzJfdCYgYmFkR3JhbW1hckxlbmd0aCkKQEAgLTEx
MSw3ICsxMTEsNyBAQCB2b2lkIFdlYlRleHRDaGVja2VyQ2xpZW50OjpjaGVja0dyYW1tYXJPZlN0
cmluZyh1aW50NjRfdCB0YWcsIGNvbnN0IFN0cmluZyYgdGV4dAogICAgICAgICByZXR1cm47CiAK
ICAgICBXS0FycmF5UmVmIHdrR3JhbW1hckRldGFpbHNSZWYgPSAwOwotICAgIG1fY2xpZW50LmNo
ZWNrR3JhbW1hck9mU3RyaW5nKHRhZywgdG9BUEkodGV4dC5pbXBsKCkpLCAmd2tHcmFtbWFyRGV0
YWlsc1JlZiwgJmJhZEdyYW1tYXJMb2NhdGlvbiwgJmJhZEdyYW1tYXJMZW5ndGgsIG1fY2xpZW50
LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmNoZWNrR3JhbW1hck9mU3RyaW5nKHRhZywgdG9B
UEkodGV4dC5pbXBsKCkpLCAmd2tHcmFtbWFyRGV0YWlsc1JlZiwgJmJhZEdyYW1tYXJMb2NhdGlv
biwgJmJhZEdyYW1tYXJMZW5ndGgsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAKICAgICBS
ZWZQdHI8QVBJOjpBcnJheT4gd2tHcmFtbWFyRGV0YWlscyA9IGFkb3B0UmVmKHRvSW1wbCh3a0dy
YW1tYXJEZXRhaWxzUmVmKSk7CiAgICAgc2l6ZV90IG51bUdyYW1tYXJEZXRhaWxzID0gd2tHcmFt
bWFyRGV0YWlscy0+c2l6ZSgpOwpAQCAtMTI0LDcgKzEyNCw3IEBAIGJvb2wgV2ViVGV4dENoZWNr
ZXJDbGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQogICAgIGlmICghbV9jbGllbnQuc3BlbGxp
bmdVSUlzU2hvd2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fY2xp
ZW50LnNwZWxsaW5nVUlJc1Nob3dpbmcobV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0dXJu
IG1fY2xpZW50LnNwZWxsaW5nVUlJc1Nob3dpbmcobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
IH0KIAogdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2lu
ZygpCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6dG9nZ2xl
U3BlbGxpbmdVSUlzU2hvd2luZygpCiAgICAgaWYgKCFtX2NsaWVudC50b2dnbGVTcGVsbGluZ1VJ
SXNTaG93aW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXR1cm4gbV9jbGllbnQudG9nZ2xl
U3BlbGxpbmdVSUlzU2hvd2luZyhtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gbV9j
bGllbnQudG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogfQogCiB2b2lkIFdlYlRleHRDaGVja2VyQ2xpZW50Ojp1cGRhdGVTcGVsbGluZ1VJV2l0aE1p
c3NwZWxsZWRXb3JkKHVpbnQ2NF90IHRhZywgY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkK
QEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIFdlYlRleHRDaGVja2VyQ2xpZW50Ojp1cGRhdGVTcGVs
bGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKHVpbnQ2NF90IHRhZywgY29ucwogICAgIGlmICghbV9j
bGllbnQudXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9jbGllbnQudXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZCh0YWcs
IHRvQVBJKG1pc3NwZWxsZWRXb3JkLmltcGwoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAg
IG1fY2xpZW50LnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQodGFnLCB0b0FQSSht
aXNzcGVsbGVkV29yZC5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2
b2lkIFdlYlRleHRDaGVja2VyQ2xpZW50Ojp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJp
bmcodWludDY0X3QgdGFnLCBjb25zdCBTdHJpbmcmIGJhZEdyYW1tYXJQaHJhc2UsIGNvbnN0IFdl
YkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW1tYXJEZXRhaWwpCkBAIC0xNDgsNyArMTQ4LDcgQEAg
dm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3Ry
aW5nKHVpbnQ2NF90IHRhZywgY29uc3QKICAgICBpZiAoIW1fY2xpZW50LnVwZGF0ZVNwZWxsaW5n
VUlXaXRoR3JhbW1hclN0cmluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQudXBk
YXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKHRhZywgdG9BUEkoYmFkR3JhbW1hclBocmFz
ZS5pbXBsKCkpLCB0b0FQSShncmFtbWFyRGV0YWlsKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cisg
ICAgbV9jbGllbnQudXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKHRhZywgdG9BUEko
YmFkR3JhbW1hclBocmFzZS5pbXBsKCkpLCB0b0FQSShncmFtbWFyRGV0YWlsKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6Z3Vlc3Nl
c0ZvcldvcmQodWludDY0X3QgdGFnLCBjb25zdCBTdHJpbmcmIHdvcmQsIFZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKQpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgV2ViVGV4dENoZWNrZXJDbGllbnQ6
Omd1ZXNzZXNGb3JXb3JkKHVpbnQ2NF90IHRhZywgY29uc3QgU3RyaW5nJiB3b3JkLCBWZWN0CiAg
ICAgaWYgKCFtX2NsaWVudC5ndWVzc2VzRm9yV29yZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UmVmUHRyPEFQSTo6QXJyYXk+IHdrR3Vlc3NlcyA9IGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC5n
dWVzc2VzRm9yV29yZCh0YWcsIHRvQVBJKHdvcmQuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5m
bykpKTsKKyAgICBSZWZQdHI8QVBJOjpBcnJheT4gd2tHdWVzc2VzID0gYWRvcHRSZWYodG9JbXBs
KG1fY2xpZW50Lmd1ZXNzZXNGb3JXb3JkKHRhZywgdG9BUEkod29yZC5pbXBsKCkpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pKSk7CiAgICAgc2l6ZV90IG51bUd1ZXNzZXMgPSB3a0d1ZXNzZXMt
PnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUd1ZXNzZXM7ICsraSkKICAg
ICAgICAgZ3Vlc3Nlcy5hcHBlbmQod2tHdWVzc2VzLT5hdDxXZWJTdHJpbmc+KGkpLT5zdHJpbmco
KSk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6bGVhcm5X
b3JkKHVpbnQ2NF90IHRhZywgY29uc3QgU3RyaW5nJiB3b3JkKQogICAgIGlmICghbV9jbGllbnQu
bGVhcm5Xb3JkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5sZWFybldvcmQodGFn
LCB0b0FQSSh3b3JkLmltcGwoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50
LmxlYXJuV29yZCh0YWcsIHRvQVBJKHdvcmQuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKIH0KIAogdm9pZCBXZWJUZXh0Q2hlY2tlckNsaWVudDo6aWdub3JlV29yZCh1aW50NjRf
dCB0YWcsIGNvbnN0IFN0cmluZyYgd29yZCkKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFdlYlRl
eHRDaGVja2VyQ2xpZW50OjppZ25vcmVXb3JkKHVpbnQ2NF90IHRhZywgY29uc3QgU3RyaW5nJiB3
b3JkKQogICAgIGlmICghbV9jbGllbnQuaWdub3JlV29yZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9jbGllbnQuaWdub3JlV29yZCh0YWcsIHRvQVBJKHdvcmQuaW1wbCgpKSwgbV9jbGllbnQu
Y2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuaWdub3JlV29yZCh0YWcsIHRvQVBJKHdvcmQuaW1w
bCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlckNsaWVudC5o
CmluZGV4IGI2NTAwM2QxMTVlOTY1ZTlkMjY3NmUxOGQ1ZTE3YWYwYjE4YTdiOWUuLjQ5Mjc1ZmZm
Y2U5NzZhMzE1MDM2NjA1MjA3MzYxMDU3NjE5NzAzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0zMiwxMSArMzIsMTcgQEAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNw
YWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tUZXh0Q2hlY2tlckNs
aWVudEJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tUZXh0Q2hlY2tlckNsaWVudFYw
PiBWZXJzaW9uczsKK307Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKLWNsYXNzIFdlYlRleHRDaGVja2VyQ2xpZW50IDogcHVibGljIEFQSUNsaWVudDxX
S1RleHRDaGVja2VyQ2xpZW50LCBrV0tUZXh0Q2hlY2tlckNsaWVudEN1cnJlbnRWZXJzaW9uPiB7
CitjbGFzcyBXZWJUZXh0Q2hlY2tlckNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1RleHRD
aGVja2VyQ2xpZW50QmFzZT4gewogcHVibGljOgogICAgIGJvb2wgY29udGludW91c1NwZWxsQ2hl
Y2tpbmdBbGxvd2VkKCk7CiAgICAgYm9vbCBjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJvdmlkZXIu
Y3BwCmluZGV4IGExMmY1OTczYjBjOGVjOTQ0YjUzOWE2ZTdhYjQ1NDJmYWE2NWZiNDUuLjcyZjMx
YjJiNThlMmI1MmU0ZDY4ZjE4YzdjYjQ3NjFhZWMxNzVkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBA
QCB2b2lkIFdlYlZpYnJhdGlvblByb3ZpZGVyOjp2aWJyYXRlKFdlYlZpYnJhdGlvblByb3h5KiB2
aWJyYXRpb24sIHVpbnQzMl90IHZpYnJhdAogICAgIGlmICghbV9jbGllbnQudmlicmF0ZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQudmlicmF0ZSh0b0FQSSh2aWJyYXRpb24pLCB2
aWJyYXRpb25UaW1lLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC52aWJyYXRl
KHRvQVBJKHZpYnJhdGlvbiksIHZpYnJhdGlvblRpbWUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiB9CiAKIHZvaWQgV2ViVmlicmF0aW9uUHJvdmlkZXI6OmNhbmNlbFZpYnJhdGlvbihXZWJW
aWJyYXRpb25Qcm94eSogdmlicmF0aW9uKQpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFdlYlZpYnJh
dGlvblByb3ZpZGVyOjpjYW5jZWxWaWJyYXRpb24oV2ViVmlicmF0aW9uUHJveHkqIHZpYnJhdGlv
bikKICAgICBpZiAoIW1fY2xpZW50LmNhbmNlbFZpYnJhdGlvbikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9jbGllbnQuY2FuY2VsVmlicmF0aW9uKHRvQVBJKHZpYnJhdGlvbiksIG1fY2xpZW50
LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmNhbmNlbFZpYnJhdGlvbih0b0FQSSh2aWJyYXRp
b24pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3ZpZGVyLmgK
aW5kZXggMzYxNTlkZTgzNDJmNTZjNzllNmFmMzJkNzljNWQ2ZmVmMmYzYmQ0OC4uOTRlYTEzM2Nm
MGI2Mzg0ODBiOGE5Y2Q4OTcxNTM1MWNhN2Q4YmYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3ZpZGVyLmgKQEAgLTMyLDExICszMiwxNyBAQAogI2lu
Y2x1ZGUgIldLVmlicmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAorbmFtZXNw
YWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWJyYXRpb25Qcm92
aWRlckJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tWaWJyYXRpb25Qcm92aWRlclYw
PiBWZXJzaW9uczsKK307Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWJy
YXRpb25Qcm94eTsKIAotY2xhc3MgV2ViVmlicmF0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xp
ZW50PFdLVmlicmF0aW9uUHJvdmlkZXIsIGtXS1ZpYnJhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNp
b24+IHsKK2NsYXNzIFdlYlZpYnJhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSTo6Q2xpZW50PFdL
VmlicmF0aW9uUHJvdmlkZXJCYXNlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCB2aWJyYXRlKFdlYlZp
YnJhdGlvblByb3h5KiwgdWludDMyX3QgdmlicmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxW
aWJyYXRpb24oV2ViVmlicmF0aW9uUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCmluZGV4IGVlMDg0NWVmNGZjZWY3Y2M3OGIyMmZlZjgx
ZjA3MDE5MmNmNTJhMGIuLjljMTRlYTIwMjFkMjJmMGQ4NjUxMzkzNmI5YjNhZTljYjUyMTcyMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcApA
QCAtNTcsNyArNTcsNyBAQCB2b2lkIFdlYlZpYnJhdGlvblByb3h5OjppbnZhbGlkYXRlKCkKICAg
ICBtX3Byb3ZpZGVyLmluaXRpYWxpemUoMCk7CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6
OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1ZpYnJhdGlvblByb3ZpZGVyKiBwcm92aWRlcikK
K3ZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1ZpYnJh
dGlvblByb3ZpZGVyQmFzZSogcHJvdmlkZXIpCiB7CiAgICAgbV9wcm92aWRlci5pbml0aWFsaXpl
KHByb3ZpZGVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJW
aWJyYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblBy
b3h5LmgKaW5kZXggYzM2NGIzMzE5NzJkMTI1NzBjNDhjNGNhNWI4MDBhODEyNDRlODY2MS4uNjhm
NTQ3NDQxZWVkMjllM2JhMmU1NjEwYjQ0ZTgzZTIyYjI5MTdiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVQcm92aWRl
cihjb25zdCBXS1ZpYnJhdGlvblByb3ZpZGVyKik7CisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlk
ZXIoY29uc3QgV0tWaWJyYXRpb25Qcm92aWRlckJhc2UqKTsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXZWJWaWJyYXRpb25Qcm94eShXZWJQYWdlUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAppbmRleCA1MmIxNGViMTJhZDE0
ZjEyNjhmYWE0M2ZhYjQzOWFhNTlkYWEzZWZkLi5jYTZmMTMzZGJkMGQ3NzRjZjc1YTExOTI3OGFl
MzQzMDQ5OWI1ZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Jh
dHRlcnlQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0
ZXJ5UHJvdmlkZXIuY3BwCkBAIC02OSwxNCArNjksMTYgQEAgQmF0dGVyeVByb3ZpZGVyOjpCYXR0
ZXJ5UHJvdmlkZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1fYmF0dGVy
eU1hbmFnZXIpOwogCi0gICAgV0tCYXR0ZXJ5UHJvdmlkZXIgd2tCYXR0ZXJ5UHJvdmlkZXIgPSB7
Ci0gICAgICAgIGtXS0JhdHRlcnlQcm92aWRlckN1cnJlbnRWZXJzaW9uLAotICAgICAgICB0aGlz
LCAvLyBjbGllbnRJbmZvCisgICAgV0tCYXR0ZXJ5UHJvdmlkZXJWMCB3a0JhdHRlcnlQcm92aWRl
ciA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgMCwgLy8gdmVyc2lvbgorICAgICAgICAgICAg
dGhpcywgLy8gY2xpZW50SW5mbworICAgICAgICB9LAogICAgICAgICBzdGFydFVwZGF0aW5nQ2Fs
bGJhY2ssCiAgICAgICAgIHN0b3BVcGRhdGluZ0NhbGxiYWNrCiAgICAgfTsKIAotICAgIFdLQmF0
dGVyeU1hbmFnZXJTZXRQcm92aWRlcihtX2JhdHRlcnlNYW5hZ2VyLmdldCgpLCAmd2tCYXR0ZXJ5
UHJvdmlkZXIpOworICAgIFdLQmF0dGVyeU1hbmFnZXJTZXRQcm92aWRlcihtX2JhdHRlcnlNYW5h
Z2VyLmdldCgpLCByZWludGVycHJldF9jYXN0PFdLQmF0dGVyeVByb3ZpZGVyQmFzZSo+KCZ3a0Jh
dHRlcnlQcm92aWRlcikpOwogfQogCiB2b2lkIEJhdHRlcnlQcm92aWRlcjo6c3RhcnRVcGRhdGlu
ZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZv
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1By
b3ZpZGVyLmNwcAppbmRleCBkZTdmMDVmNTMzYWVhNWFmNWI3MTZiOTkwMDA2MTgyYWQ4YWQxYThi
Li5lZmE3NTE2ZGZmNTFkNTk3ZWE4YWVlM2ZjOGI5MzExYjJhMjNjZWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRlci5jcHAKQEAg
LTcxLDE2ICs3MSwxOCBAQCBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpOZXR3b3JrSW5mb1Byb3ZpZGVy
KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIHdrTmV0
d29ya0luZm9NYW5hZ2VyID0gV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKG1fY29udGV4
dC5nZXQoKSk7CiAgICAgQVNTRVJUKHdrTmV0d29ya0luZm9NYW5hZ2VyKTsKIAotICAgIFdLTmV0
d29ya0luZm9Qcm92aWRlciB3a05ldHdvcmtJbmZvUHJvdmlkZXIgPSB7Ci0gICAgICAgIGtXS05l
dHdvcmtJbmZvUHJvdmlkZXJDdXJyZW50VmVyc2lvbiwKLSAgICAgICAgdGhpcywgLy8gY2xpZW50
SW5mbworICAgIFdLTmV0d29ya0luZm9Qcm92aWRlclYwIHdrTmV0d29ya0luZm9Qcm92aWRlciA9
IHsKKyAgICAgICAgeworICAgICAgICAgICAgMCwgLy8gdmVyc2lvbgorICAgICAgICAgICAgdGhp
cywgLy8gY2xpZW50SW5mbworICAgICAgICB9LAogICAgICAgICBzdGFydFVwZGF0aW5nQ2FsbGJh
Y2ssCiAgICAgICAgIHN0b3BVcGRhdGluZ0NhbGxiYWNrLAogICAgICAgICBnZXRCYW5kd2lkdGhD
YWxsYmFjaywKICAgICAgICAgaXNNZXRlcmVkQ2FsbGJhY2sKICAgICB9OwogCi0gICAgV0tOZXR3
b3JrSW5mb01hbmFnZXJTZXRQcm92aWRlcih3a05ldHdvcmtJbmZvTWFuYWdlciwgJndrTmV0d29y
a0luZm9Qcm92aWRlcik7CisgICAgV0tOZXR3b3JrSW5mb01hbmFnZXJTZXRQcm92aWRlcih3a05l
dHdvcmtJbmZvTWFuYWdlciwgcmVpbnRlcnByZXRfY2FzdDxXS05ldHdvcmtJbmZvUHJvdmlkZXJC
YXNlKj4oJndrTmV0d29ya0luZm9Qcm92aWRlcikpOwogfQogCiBOZXR3b3JrSW5mb1Byb3ZpZGVy
Ojp+TmV0d29ya0luZm9Qcm92aWRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKaW5kZXggNTQ4OGVhMTM2NDQ1YTcwNmE2YjllOWYwZTFj
OGVkZTBjMjQ5NTZmYS4uNjkxZTg1N2E5MTc2YzI0MTUwMWNhOTZjNDhhYTU1ZDdhZGI1YTc4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNw
cApAQCAtODcsMTMgKzg3LDEzIEBAIFBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKEV3
a1ZpZXcqIHZpZXcpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVu
dCk7CiAKICAgICAvLyBQb3B1cCBNZW51IFVJIGNsaWVudC4KLSAgICBXS1BhZ2VVSVBvcHVwTWVu
dUNsaWVudCB1aVBvcHVwTWVudUNsaWVudDsKLSAgICBtZW1zZXQoJnVpUG9wdXBNZW51Q2xpZW50
LCAwLCBzaXplb2YoV0tQYWdlVUlQb3B1cE1lbnVDbGllbnQpKTsKLSAgICB1aVBvcHVwTWVudUNs
aWVudC52ZXJzaW9uID0ga1dLUGFnZVVJUG9wdXBNZW51Q2xpZW50Q3VycmVudFZlcnNpb247Ci0g
ICAgdWlQb3B1cE1lbnVDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgV0tQYWdlVUlQb3B1
cE1lbnVDbGllbnRWMCB1aVBvcHVwTWVudUNsaWVudDsKKyAgICBtZW1zZXQoJnVpUG9wdXBNZW51
Q2xpZW50LCAwLCBzaXplb2YoV0tQYWdlVUlQb3B1cE1lbnVDbGllbnRWMCkpOworICAgIHVpUG9w
dXBNZW51Q2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgdWlQb3B1cE1lbnVDbGllbnQuYmFz
ZS5jbGllbnRJbmZvID0gdGhpczsKICAgICB1aVBvcHVwTWVudUNsaWVudC5zaG93UG9wdXBNZW51
ID0gc2hvd1BvcHVwTWVudTsKICAgICB1aVBvcHVwTWVudUNsaWVudC5oaWRlUG9wdXBNZW51ID0g
aGlkZVBvcHVwTWVudTsKLSAgICBXS1BhZ2VTZXRVSVBvcHVwTWVudUNsaWVudChwYWdlUmVmLCAm
dWlQb3B1cE1lbnVDbGllbnQpOworICAgIFdLUGFnZVNldFVJUG9wdXBNZW51Q2xpZW50KHBhZ2VS
ZWYsIHJlaW50ZXJwcmV0X2Nhc3Q8V0tQYWdlVUlQb3B1cE1lbnVDbGllbnRCYXNlKj4oJnVpUG9w
dXBNZW51Q2xpZW50KSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAppbmRleCBlZmY5MzI4MWQzNDQ0
YmZkOWZlMGY0YTFjM2RmMjg4MzZmNzk1YmM3Li5kZjUxNjMyMjJkZDc3OGVmYTdkNTljNmU1ZTM5
MWUyYjU0OTQ4Yjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcApAQCAtNzAsMTQgKzcwLDE0IEBAIFJlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChXS0NvbnRleHRSZWYg
Y29udGV4dCkKIHsKICAgICBBU1NFUlQobV9zb3VwUmVxdWVzdE1hbmFnZXIpOwogCi0gICAgV0tT
b3VwUmVxdWVzdE1hbmFnZXJDbGllbnQgd2tSZXF1ZXN0TWFuYWdlckNsaWVudDsKLSAgICBtZW1z
ZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQsIDAsIHNpemVvZihXS1NvdXBSZXF1ZXN0TWFuYWdl
ckNsaWVudCkpOworICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tSZXF1ZXN0TWFu
YWdlckNsaWVudDsKKyAgICBtZW1zZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQsIDAsIHNpemVv
ZihXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwKSk7CiAKLSAgICB3a1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50LnZlcnNpb24gPSBrV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRDdXJyZW50VmVyc2lv
bjsKLSAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOworICAgIHdr
UmVxdWVzdE1hbmFnZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7CiAgICAgd2tSZXF1ZXN0TWFuYWdlckNs
aWVudC5kaWRSZWNlaXZlVVJJUmVxdWVzdCA9IGRpZFJlY2VpdmVVUklSZXF1ZXN0OwogCi0gICAg
V0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCks
ICZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50KTsKKyAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENs
aWVudChtX3NvdXBSZXF1ZXN0TWFuYWdlci5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxXS1NvdXBS
ZXF1ZXN0TWFuYWdlckNsaWVudEJhc2UqPigmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCkpOwogfQog
CiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJDbGllbnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckNsaWVudEVm
bC5jcHAKaW5kZXggNTNjMjIwZWM5MzMzYzExMWNjOTRhMGJlN2ZiNGI5YTJkZWM2MjYxNy4uNzIx
NmE2MGY4MmUwNTkyMjcyMjRiZmE4Mzk4ZDdjZGM2MjNlODlmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckNsaWVudEVmbC5jcHAKQEAgLTU1
LDkgKzU1LDExIEBAIFRleHRDaGVja2VyQ2xpZW50RWZsOjpUZXh0Q2hlY2tlckNsaWVudEVmbCgp
CiB7CiAgICAgbWVtc2V0KCZtX2NsaWVudENhbGxiYWNrcywgMCwgc2l6ZW9mKENsaWVudENhbGxi
YWNrcykpOwogCi0gICAgV0tUZXh0Q2hlY2tlckNsaWVudCB3a1RleHRDaGVja2VyQ2xpZW50ID0g
ewotICAgICAgICBrV0tUZXh0Q2hlY2tlckNsaWVudEN1cnJlbnRWZXJzaW9uLAotICAgICAgICB0
aGlzLAorICAgIFdLVGV4dENoZWNrZXJDbGllbnRWMCB3a1RleHRDaGVja2VyQ2xpZW50ID0gewor
ICAgICAgICB7CisgICAgICAgICAgICAwLCAvLyB2ZXJzaW9uCisgICAgICAgICAgICB0aGlzLCAv
LyBjbGllbnRJbmZvCisgICAgICAgIH0sCiAgICAgICAgIDAsIC8vIGNvbnRpbnVvdXNTcGVsbENo
ZWNraW5nQWxsb3dlZAogICAgICAgICBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZENh
bGxiYWNrLAogICAgICAgICBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRDYWxsYmFj
aywKQEAgLTc1LDcgKzc3LDcgQEAgVGV4dENoZWNrZXJDbGllbnRFZmw6OlRleHRDaGVja2VyQ2xp
ZW50RWZsKCkKICAgICAgICAgbGVhcm5Xb3JkQ2FsbGJhY2ssCiAgICAgICAgIGlnbm9yZVdvcmRD
YWxsYmFjawogICAgIH07Ci0gICAgV0tUZXh0Q2hlY2tlclNldENsaWVudCgmd2tUZXh0Q2hlY2tl
ckNsaWVudCk7CisgICAgV0tUZXh0Q2hlY2tlclNldENsaWVudChyZWludGVycHJldF9jYXN0PFdL
VGV4dENoZWNrZXJDbGllbnRCYXNlKj4oJndrVGV4dENoZWNrZXJDbGllbnQpKTsKIH0KIAogVGV4
dENoZWNrZXJDbGllbnRFZmwmIFRleHRDaGVja2VyQ2xpZW50RWZsOjppbnN0YW5jZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpYnJhdGlvbkNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAK
aW5kZXggZDVmZDZiM2YyYjNmNzc0MzY1NDM3Njc5NWQwNmYxZDMwYWQ1NzQyNS4uOTJhOWFkN2Q1
MmJhYzFiNTMzMzQzN2E1YTFhOTU5Y2M2NjllYWY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWJyYXRpb25DbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvVmlicmF0aW9uQ2xpZW50RWZsLmNwcApAQCAtNjEsMTMgKzYxLDE1
IEBAIFZpYnJhdGlvbkNsaWVudEVmbDo6VmlicmF0aW9uQ2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcp
CiAgICAgV0tWaWJyYXRpb25SZWYgd2tWaWJyYXRpb24gPSBXS1BhZ2VHZXRWaWJyYXRpb24ocGFn
ZVJlZik7CiAgICAgQVNTRVJUKHdrVmlicmF0aW9uKTsKIAotICAgIFdLVmlicmF0aW9uUHJvdmlk
ZXIgd2tWaWJyYXRpb25Qcm92aWRlciA9IHsKLSAgICAgICAga1dLVmlicmF0aW9uUHJvdmlkZXJD
dXJyZW50VmVyc2lvbiwKLSAgICAgICAgdGhpcywgLy8gY2xpZW50SW5mbworICAgIFdLVmlicmF0
aW9uUHJvdmlkZXJWMCB3a1ZpYnJhdGlvblByb3ZpZGVyID0geworICAgICAgICB7CisgICAgICAg
ICAgICAwLCAvLyB2ZXJzaW9uCisgICAgICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAg
ICAgIH0sCiAgICAgICAgIHZpYnJhdGVDYWxsYmFjaywKICAgICAgICAgY2FuY2VsVmlicmF0aW9u
Q2FsbGJhY2sKICAgICB9OwotICAgIFdLVmlicmF0aW9uU2V0UHJvdmlkZXIod2tWaWJyYXRpb24s
ICZ3a1ZpYnJhdGlvblByb3ZpZGVyKTsKKyAgICBXS1ZpYnJhdGlvblNldFByb3ZpZGVyKHdrVmli
cmF0aW9uLCByZWludGVycHJldF9jYXN0PFdLVmlicmF0aW9uUHJvdmlkZXJCYXNlKj4oJndrVmli
cmF0aW9uUHJvdmlkZXIpKTsKIH0KIAogVmlicmF0aW9uQ2xpZW50RWZsOjp+VmlicmF0aW9uQ2xp
ZW50RWZsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0Ns
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwu
Y3BwCmluZGV4IDliNGYyZTViZGRiZmViYmVjN2ZmNDUwZWY0ZGYxZDk1MGRiM2Q5NTguLmY0NDJk
NzlmZjNmZWQ2M2IyYTE0ZDQyNDgxMTliNmUwYmU2YjNkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcApAQCAtMTgyLDEwICsxODIsMTAgQEAg
Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogewogICAgIEFTU0VS
VChtX3ZpZXcpOwogCi0gICAgV0tWaWV3Q2xpZW50IHZpZXdDbGllbnQ7Ci0gICAgbWVtc2V0KCZ2
aWV3Q2xpZW50LCAwLCBzaXplb2YoV0tWaWV3Q2xpZW50KSk7Ci0gICAgdmlld0NsaWVudC52ZXJz
aW9uID0ga1dLVmlld0NsaWVudEN1cnJlbnRWZXJzaW9uOwotICAgIHZpZXdDbGllbnQuY2xpZW50
SW5mbyA9IHRoaXM7CisgICAgV0tWaWV3Q2xpZW50VjAgdmlld0NsaWVudDsKKyAgICBtZW1zZXQo
JnZpZXdDbGllbnQsIDAsIHNpemVvZihXS1ZpZXdDbGllbnRWMCkpOworICAgIHZpZXdDbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKKyAgICB2aWV3Q2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7
CiAgICAgdmlld0NsaWVudC5kaWRDaGFuZ2VDb250ZW50c1NpemUgPSBkaWRDaGFuZ2VDb250ZW50
c1NpemU7CiAgICAgdmlld0NsaWVudC5kaWRGaW5kWm9vbWFibGVBcmVhID0gZGlkRmluZFpvb21h
YmxlQXJlYTsKICAgICB2aWV3Q2xpZW50LnZpZXdOZWVkc0Rpc3BsYXkgPSB2aWV3TmVlZHNEaXNw
bGF5OwpAQCAtMjAwLDcgKzIwMCw3IEBAIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwoRXdr
VmlldyogdmlldykKICAgICB2aWV3Q2xpZW50LmRvbmVXaXRoVG91Y2hFdmVudCA9IGRvbmVXaXRo
VG91Y2hFdmVudDsKICNlbmRpZgogCi0gICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXctPndr
VmlldygpLCAmdmlld0NsaWVudCk7CisgICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXctPndr
VmlldygpLCByZWludGVycHJldF9jYXN0PFdLVmlld0NsaWVudEJhc2UqPigmdmlld0NsaWVudCkp
OwogfQogCiBWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggNTIzMGM2OTU4ODZm
MWIwYTAwMTcxNGQ5MGUwODk1MTBjYzY0ZmExMi4uYmQwYmM2MTJiMTc4YmYyODljODAyN2ViZjRm
ZTI5N2ZjMzgxNDY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJQYWdlUHJveHlFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
UGFnZVByb3h5RWZsLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
YW5jZWxDb21wb3NpdGlvbigpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkNhbmNlbENvbXBvc2l0aW9uKCksIG1fcGFnZUlELCAwKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmluaXRpYWxpemVVSVBvcHVwTWVudUNsaWVudChjb25zdCBXS1BhZ2VVSVBvcHVwTWVudUNs
aWVudCogY2xpZW50KQordm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVVSVBvcHVwTWVudUNs
aWVudChjb25zdCBXS1BhZ2VVSVBvcHVwTWVudUNsaWVudEJhc2UqIGNsaWVudCkKIHsKICAgICBt
X3VpUG9wdXBNZW51Q2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXgg
MGZlN2Y3OTQwOWM4OTFjMzM5Y2ZjMWZkMzg3MDNhNjgxODIwMDU4Zi4uNmJlNzU3ZDM0ODZkMGRm
NThlN2Y4YzAxZWM2ZjcwOTA1OGQzNjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKQEAgLTQ4LDExICs0OCwxMSBA
QCB2b2lkIFdlYlVJUG9wdXBNZW51Q2xpZW50OjpzaG93UG9wdXBNZW51KFdlYlBhZ2VQcm94eSog
cGFnZVByb3h5LCBXZWJQb3B1cE1lbnVQcgogICAgIGlmICghd2ViUG9wdXBJdGVtcy5pc0VtcHR5
KCkpCiAgICAgICAgIEl0ZW1zQXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHdl
YlBvcHVwSXRlbXMpKTsKIAotICAgIG1fY2xpZW50LnNob3dQb3B1cE1lbnUodG9BUEkocGFnZVBy
b3h5KSwgdG9BUEkoc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51TGlzdGVuZXJFZmwqPihwb3B1cE1l
bnVQcm94eSkpLCB0b0FQSShyZWN0KSwgdG9BUEkodGV4dERpcmVjdGlvbiksIHBhZ2VTY2FsZUZh
Y3RvciwgdG9BUEkoSXRlbXNBcnJheS5nZXQoKSksIHNlbGVjdGVkSW5kZXgsIG1fY2xpZW50LmNs
aWVudEluZm8pOworICAgIG1fY2xpZW50LnNob3dQb3B1cE1lbnUodG9BUEkocGFnZVByb3h5KSwg
dG9BUEkoc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51TGlzdGVuZXJFZmwqPihwb3B1cE1lbnVQcm94
eSkpLCB0b0FQSShyZWN0KSwgdG9BUEkodGV4dERpcmVjdGlvbiksIHBhZ2VTY2FsZUZhY3Rvciwg
dG9BUEkoSXRlbXNBcnJheS5nZXQoKSksIHNlbGVjdGVkSW5kZXgsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViVUlQb3B1cE1lbnVDbGllbnQ6OmhpZGVQb3B1cE1lbnUo
V2ViUGFnZVByb3h5KiBwYWdlUHJveHkpCiB7CiAgICAgaWYgKG1fY2xpZW50LmhpZGVQb3B1cE1l
bnUpCi0gICAgICAgIG1fY2xpZW50LmhpZGVQb3B1cE1lbnUodG9BUEkocGFnZVByb3h5KSwgbV9j
bGllbnQuY2xpZW50SW5mbyk7CisgICAgICAgIG1fY2xpZW50LmhpZGVQb3B1cE1lbnUodG9BUEko
cGFnZVByb3h5KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuaAppbmRleCAyNTkz
MmU4YmVjNzk5N2ZmYzI5YTFhNzMwOTBiZmNlMDNmMDZmNjMyLi5mOGU0YjNmMDA1NTdlZjI2YTEw
Y2ZjYTYyZWM3ZWQwZjFmODNhNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlVJUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5oCkBAIC0zMywxMiArMzMsMTggQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24u
aD4KIAorbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQ
YWdlVUlQb3B1cE1lbnVDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZVVJUG9wdXBNZW51Q2xpZW50VjA+IFZlcnNpb25zOworfTsKK30KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5OwogCi1j
bGFzcyBXZWJVSVBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tQYWdlVUlQb3B1
cE1lbnVDbGllbnQsIGtXS1BhZ2VVSVBvcHVwTWVudUNsaWVudEN1cnJlbnRWZXJzaW9uPiB7Citj
bGFzcyBXZWJVSVBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1BhZ2VVSVBv
cHVwTWVudUNsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHNob3dQb3B1cE1lbnUoV2Vi
UGFnZVByb3h5KiwgV2ViUG9wdXBNZW51UHJveHkqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVj
dG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZv
aWQgaGlkZVBvcHVwTWVudShXZWJQYWdlUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViRnVsbFNjcmVlbkNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkZ1bGxTY3JlZW5DbGllbnRHdGsuY3BwCmluZGV4IGJhMjI0
ODVlMWQxYTQ4MDdhYTM5M2M1NzczMTUxNzJlYTIzNGRkNDYuLjk4YzVjZGExY2RmYjMzMDk4MzM0
MGVhOTg2ZTlkM2U5NTQzMTllMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvV2ViRnVsbFNjcmVlbkNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJGdWxsU2NyZWVuQ2xpZW50R3RrLmNwcApAQCAtMzYsNyArMzYsNyBAQCBi
b29sIFdlYkZ1bGxTY3JlZW5DbGllbnRHdGs6OndpbGxFbnRlckZ1bGxTY3JlZW4oKQogICAgIGlm
ICghbV9jbGllbnQud2lsbEVudGVyRnVsbFNjcmVlbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICByZXR1cm4gbV9jbGllbnQud2lsbEVudGVyRnVsbFNjcmVlbihtX2NsaWVudC5jbGllbnRJ
bmZvKTsKKyAgICByZXR1cm4gbV9jbGllbnQud2lsbEVudGVyRnVsbFNjcmVlbihtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogfQogCiBib29sIFdlYkZ1bGxTY3JlZW5DbGllbnRHdGs6OndpbGxF
eGl0RnVsbFNjcmVlbigpCkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgV2ViRnVsbFNjcmVlbkNsaWVu
dEd0azo6d2lsbEV4aXRGdWxsU2NyZWVuKCkKICAgICBpZiAoIW1fY2xpZW50LndpbGxFeGl0RnVs
bFNjcmVlbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gbV9jbGllbnQud2ls
bEV4aXRGdWxsU2NyZWVuKG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiBtX2NsaWVu
dC53aWxsRXhpdEZ1bGxTY3JlZW4obV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkZ1bGxTY3JlZW5DbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViRnVsbFNjcmVlbkNsaWVudEd0ay5oCmluZGV4IDg2YjFkYTI4ZDE5MGFiODhiZDE1Njhi
ZGI0N2M4MWZjOTZlOWUzN2UuLjM4ZDEzZWI0YTRlYTA5MTVhMmI0OTcyZDRjYTE2ZmJjODNjODhj
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViRnVsbFNjcmVl
bkNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViRnVsbFNj
cmVlbkNsaWVudEd0ay5oCkBAIC0zMSwxMSArMzEsMTUgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiBj
bGFzcyBPYmplY3Q7CisKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0Z1bGxTY3Jl
ZW5DbGllbnRHdGtCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLRnVsbFNjcmVlbkNs
aWVudEd0a1YwPiBWZXJzaW9uczsKK307CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBXZWJGdWxsU2NyZWVuQ2xpZW50R3RrIDogcHVibGljIEFQSUNsaWVudDxXS0Z1bGxTY3JlZW5D
bGllbnRHdGssIGtXS0Z1bGxTY3JlZW5DbGllbnRHdGtDdXJyZW50VmVyc2lvbj4geworY2xhc3Mg
V2ViRnVsbFNjcmVlbkNsaWVudEd0ayA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0Z1bGxTY3JlZW5D
bGllbnRHdGtCYXNlPiB7CiBwdWJsaWM6CiAgICAgYm9vbCB3aWxsRW50ZXJGdWxsU2NyZWVuKCk7
CiAgICAgYm9vbCB3aWxsRXhpdEZ1bGxTY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCA0NDhmNDIz
NzgzYjI1NTA4YzQ5OTkxOTRjNDQ5MDUxMmNkZWM4ZDY0Li41YWZkZDViMTEyMDZiNzI4MzY4ZjYz
ZmUyYmM2ZTY3Mzc2NGMwZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0zNiw0OSArMzYsNDkgQEAgYm9v
bCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6Om9wZW5XaW5kb3coV2ViSW5zcGVjdG9yUHJveHkqIGlu
c3BlY3RvcikKIHsKICAgICBpZiAoIW1fY2xpZW50Lm9wZW5XaW5kb3cpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gbV9jbGllbnQub3BlbldpbmRvdyh0b0FQSShpbnNwZWN0b3Ip
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4gbV9jbGllbnQub3BlbldpbmRvdyh0
b0FQSShpbnNwZWN0b3IpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIFdl
Ykluc3BlY3RvckNsaWVudEd0azo6ZGlkQ2xvc2UoV2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3Rv
cikKIHsKICAgICBpZiAoIW1fY2xpZW50LmRpZENsb3NlKQogICAgICAgICByZXR1cm47Ci0gICAg
bV9jbGllbnQuZGlkQ2xvc2UodG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7
CisgICAgbV9jbGllbnQuZGlkQ2xvc2UodG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKIH0KIAogYm9vbCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmJyaW5nVG9Gcm9u
dChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yKQogewogICAgIGlmICghbV9jbGllbnQuYnJp
bmdUb0Zyb250KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2xpZW50LmJy
aW5nVG9Gcm9udCh0b0FQSShpbnNwZWN0b3IpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQuYnJpbmdUb0Zyb250KHRvQVBJKGluc3BlY3RvciksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjppbnNwZWN0
ZWRVUkxDaGFuZ2VkKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IsIGNvbnN0IFN0cmluZyYg
dXJsKQogewogICAgIGlmICghbV9jbGllbnQuaW5zcGVjdGVkVVJMQ2hhbmdlZCkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fY2xpZW50Lmluc3BlY3RlZFVSTENoYW5nZWQodG9BUEkoaW5zcGVjdG9y
KSwgdG9BUEkodXJsLmltcGwoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50
Lmluc3BlY3RlZFVSTENoYW5nZWQodG9BUEkoaW5zcGVjdG9yKSwgdG9BUEkodXJsLmltcGwoKSks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIGJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50
R3RrOjphdHRhY2goV2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3RvcikKIHsKICAgICBpZiAoIW1f
Y2xpZW50LmF0dGFjaCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2NsaWVu
dC5hdHRhY2godG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0
dXJuIG1fY2xpZW50LmF0dGFjaCh0b0FQSShpbnNwZWN0b3IpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOwogfQogCiBib29sIFdlYkluc3BlY3RvckNsaWVudEd0azo6ZGV0YWNoKFdlYkluc3Bl
Y3RvclByb3h5KiBpbnNwZWN0b3IpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kZXRhY2gpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9jbGllbnQuZGV0YWNoKHRvQVBJKGluc3Bl
Y3RvciksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiBtX2NsaWVudC5kZXRhY2go
dG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KFdlYkluc3BlY3Rv
clByb3h5KiBpbnNwZWN0b3IsIHVuc2lnbmVkIGhlaWdodCkKIHsKICAgICBpZiAoIW1fY2xpZW50
LmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KQogICAgICAgICByZXR1cm47Ci0gICAgbV9jbGllbnQu
ZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQodG9BUEkoaW5zcGVjdG9yKSwgaGVpZ2h0LCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCh0b0FQ
SShpbnNwZWN0b3IpLCBoZWlnaHQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmgKaW5kZXggZDA2ZWFkNTU0MDUyNGE0YTIwYjNhZTg5
M2E5ZmY5MDBjNmM2ODM2OC4uYjMwYjk0NWNjYWRhMTJkNDM0N2Q5ZDI1MTFlOTczMjkxODZhMTBl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JD
bGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rv
ckNsaWVudEd0ay5oCkBAIC0zMywxMyArMzMsMTcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiBjbGFz
cyBPYmplY3Q7CisKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0luc3BlY3RvckNs
aWVudEd0a0Jhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tJbnNwZWN0b3JDbGllbnRH
dGtWMD4gVmVyc2lvbnM7Cit9OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
SW5zcGVjdG9yUHJveHk7CiAKLWNsYXNzIFdlYkluc3BlY3RvckNsaWVudEd0ayA6IHB1YmxpYyBB
UElDbGllbnQ8V0tJbnNwZWN0b3JDbGllbnRHdGssIGtXS0luc3BlY3RvckNsaWVudEd0a0N1cnJl
bnRWZXJzaW9uPiB7CitjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnRHdGsgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlPiB7CiBwdWJsaWM6CiAgICAgYm9vbCBvcGVu
V2luZG93KFdlYkluc3BlY3RvclByb3h5Kik7CiAgICAgdm9pZCBkaWRDbG9zZShXZWJJbnNwZWN0
b3JQcm94eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJ
bnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvclByb3h5R3RrLmNwcAppbmRleCBlM2QwN2MyNjNkYTM1YWI0MjNhOTIzZjAxYjQ3ZTE0
YmYxODEzMjA2Li45ODdhOTkyYzRkNjdlYmFhMDE2YjBmZjAzNWQ0NDFhYTcyYTUyZmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5
R3RrLmNwcApAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgdm9pZCBpbnNwZWN0b3JWaWV3RGVzdHJv
eWVkKEd0a1dpZGdldCosIGdwb2ludGVyIHVzZXJEYXRhKQogICAgIGluc3BlY3RvclByb3h5LT5j
bG9zZSgpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5Ojppbml0aWFsaXplSW5zcGVjdG9y
Q2xpZW50R3RrKGNvbnN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrKiBpbnNwZWN0b3JDbGllbnQpCit2
b2lkIFdlYkluc3BlY3RvclByb3h5Ojppbml0aWFsaXplSW5zcGVjdG9yQ2xpZW50R3RrKGNvbnN0
IFdLSW5zcGVjdG9yQ2xpZW50R3RrQmFzZSogaW5zcGVjdG9yQ2xpZW50KQogewogICAgIG1fY2xp
ZW50LmluaXRpYWxpemUoaW5zcGVjdG9yQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQu
Y3BwCmluZGV4IGM1ZDdlM2JmNzE3OWQ0NGU0OTU4Y2E0MGVlYzcyMGQ3MmVmNGE0OGQuLjJiYjAz
OTdhOGVhMTQyMjhhNjI2YmZiYTg2ODVhOWY4MDZiOTcwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xp
ZW50LmNwcApAQCAtMjksMTQgKzI5LDE0IEBAIGJvb2wgV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xp
ZW50OjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94CiAgICAg
aWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVVJJUmVxdWVzdCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZVVSSVJlcXVlc3QodG9BUEkoc291cFJlcXVlc3RN
YW5hZ2VyKSwgdG9BUEkodXJsKSwgdG9BUEkoaW5pdGlhaW5nUGFnZSksIHJlcXVlc3RJRCwgbV9j
bGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVVSSVJlcXVlc3QodG9B
UEkoc291cFJlcXVlc3RNYW5hZ2VyKSwgdG9BUEkodXJsKSwgdG9BUEkoaW5pdGlhaW5nUGFnZSks
IHJlcXVlc3RJRCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQ6OmRpZEZhaWxUb0xvYWRVUklS
ZXF1ZXN0KFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KiBzb3VwUmVxdWVzdE1hbmFnZXIsIHVp
bnQ2NF90IHJlcXVlc3RJRCkKIHsKICAgICBpZiAobV9jbGllbnQuZGlkRmFpbFRvTG9hZFVSSVJl
cXVlc3QpCi0gICAgICAgIG1fY2xpZW50LmRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KHRvQVBJKHNv
dXBSZXF1ZXN0TWFuYWdlciksIHJlcXVlc3RJRCwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAg
ICAgIG1fY2xpZW50LmRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0KHRvQVBJKHNvdXBSZXF1ZXN0TWFu
YWdlciksIHJlcXVlc3RJRCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291
cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5oCmluZGV4IDYwYjM0OTM3ZjhlNmJm
NjNiYjNjZTAzN2QzNGY2NTQ1NGEyODcwMjQuLjcxOGRlYmU3NTY2ZDU0MTU4ZjhiNmI4ZGY0ZWU0
YmVlZTkyYzA0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5oCkBAIC0yNCwxMiArMjQsMTggQEAK
ICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS1NvdXBSZXF1ZXN0TWFuYWdlci5o
IgogCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1Nv
dXBSZXF1ZXN0TWFuYWdlckNsaWVudEJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tT
b3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJV
Ukw7CiAKLWNsYXNzIFdlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCA6IHB1YmxpYyBBUElDbGll
bnQ8V0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQsIGtXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVu
dEN1cnJlbnRWZXJzaW9uPiB7CitjbGFzcyBXZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQgOiBw
dWJsaWMgQVBJOjpDbGllbnQ8V0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRCYXNlPiB7CiBwdWJs
aWM6CiAgICAgYm9vbCBkaWRSZWNlaXZlVVJJUmVxdWVzdChXZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eSosIFdlYlVSTCosIFdlYlBhZ2VQcm94eSosIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAgICAg
dm9pZCBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdChXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSos
IHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWVjMzBh
OWJlNDIxMjYzN2ZhNGRkMjM2YTc5MDJiMjYzMjU5NGIxOS4uMGY0NDljYmZmNDAxNDZjYTQ2MWIz
MjAxZmJlYTQ1YTMwNjA5Yjk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDksNyAr
NDksNyBAQCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6fldlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5KCkKIHsKIH0KIAotdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6aW5pdGlh
bGl6ZUNsaWVudChjb25zdCBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCogY2xpZW50KQordm9p
ZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1Nv
dXBSZXF1ZXN0TWFuYWdlckNsaWVudEJhc2UqIGNsaWVudCkKIHsKICAgICBtX2NsaWVudC5pbml0
aWFsaXplKGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBhYzI4NTU1OWJkZTY1
NjhkOTlhMjY0YTc1ZDQxMDhiMjgxN2QzYzkzLi44MGRkNzY0NzMzOWMyYjUxYjFjYmZlNDlhODE4
NDI0MmIzNDFiYjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PiBj
cmVhdGUoV2ViQ29udGV4dCopOwogICAgIHZpcnR1YWwgfldlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5KCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1h
bmFnZXJDbGllbnQqKTsKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVx
dWVzdE1hbmFnZXJDbGllbnRCYXNlKik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lKGNv
bnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICB2b2lkIGRpZEhhbmRsZVVSSVJlcXVlc3QoY29uc3Qg
V2ViRGF0YSosIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvQ29vcmRpbmF0ZWRHcmFwaGljcy9XS1ZpZXdJc0FjdGl2ZVNldElzQWN0aXZl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29yZGluYXRlZEdyYXBo
aWNzL1dLVmlld0lzQWN0aXZlU2V0SXNBY3RpdmUuY3BwCmluZGV4IDlhOWU1ZGQwMjdjNzZmNWFk
NzY3NWU4MThmZGZmZjY3NzMwNWJiYTEuLjgwMzhiYWEzMzFiMTQwZWEyZjY3MTU3YTBhZmE3ZjA4
YjRhZGY2OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9D
b29yZGluYXRlZEdyYXBoaWNzL1dLVmlld0lzQWN0aXZlU2V0SXNBY3RpdmUuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29yZGluYXRlZEdyYXBoaWNzL1dLVmll
d0lzQWN0aXZlU2V0SXNBY3RpdmUuY3BwCkBAIC04NywxMiArODcsMTIgQEAgVEVTVChXZWJLaXQy
LCBXS1ZpZXdJc0FjdGl2ZSkKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIldLVmll
d0lzQWN0aXZlU2V0SXNBY3RpdmVUZXN0IikpOwogICAgIFdLUmV0YWluUHRyPFdLVmlld1JlZj4g
dmlldyA9IGFkb3B0V0soV0tWaWV3Q3JlYXRlKGNvbnRleHQuZ2V0KCksIDApKTsKIAotICAgIFdL
Vmlld0NsaWVudCB2aWV3Q2xpZW50OwotICAgIG1lbXNldCgmdmlld0NsaWVudCwgMCwgc2l6ZW9m
KFdLVmlld0NsaWVudCkpOwotICAgIHZpZXdDbGllbnQudmVyc2lvbiA9IGtXS1ZpZXdDbGllbnRD
dXJyZW50VmVyc2lvbjsKKyAgICBXS1ZpZXdDbGllbnRWMCB2aWV3Q2xpZW50OworICAgIG1lbXNl
dCgmdmlld0NsaWVudCwgMCwgc2l6ZW9mKFdLVmlld0NsaWVudFYwKSk7CisgICAgdmlld0NsaWVu
dC5iYXNlLnZlcnNpb24gPSAwOwogICAgIHZpZXdDbGllbnQud2ViUHJvY2Vzc0NyYXNoZWQgPSB3
ZWJQcm9jZXNzQ3Jhc2hlZDsKICAgICB2aWV3Q2xpZW50LndlYlByb2Nlc3NEaWRSZWxhdW5jaCA9
IHdlYlByb2Nlc3NSZWxhdW5jaGVkOwotICAgIFdLVmlld1NldFZpZXdDbGllbnQodmlldy5nZXQo
KSwgJnZpZXdDbGllbnQpOworICAgIFdLVmlld1NldFZpZXdDbGllbnQodmlldy5nZXQoKSwgcmVp
bnRlcnByZXRfY2FzdDxXS1ZpZXdDbGllbnRCYXNlKj4oJnZpZXdDbGllbnQpKTsKIAogICAgIFdL
Vmlld0luaXRpYWxpemUodmlldy5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9lZmwvV0tWaWV3Q2xpZW50V2ViUHJvY2Vzc0NhbGxiYWNrcy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZWZsL1dLVmlld0NsaWVudFdl
YlByb2Nlc3NDYWxsYmFja3MuY3BwCmluZGV4IDU1MmIzOGM0ZDRiNWRlZDc0OGJiZmJhODZkMmYw
YjZmYjU0YjM2ZWYuLjhkY2E0MTcwMTE3YTQyZDU1MjhmM2FhNDUzZjRmOTgwNzFiN2MzZmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9lZmwvV0tWaWV3Q2xp
ZW50V2ViUHJvY2Vzc0NhbGxiYWNrcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL2VmbC9XS1ZpZXdDbGllbnRXZWJQcm9jZXNzQ2FsbGJhY2tzLmNwcApAQCAtODgs
MTUgKzg4LDE1IEBAIHZvaWQgd2ViUHJvY2Vzc0RpZFJlbGF1bmNoKFdLVmlld1JlZiB2aWV3LCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9pZCBzZXRWaWV3Q2xpZW50KFdLVmll
d1JlZiB2aWV3LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIFdLVmlld0NsaWVudCB2
aWV3Q2xpZW50OwotICAgIG1lbXNldCgmdmlld0NsaWVudCwgMCwgc2l6ZW9mKFdLVmlld0NsaWVu
dCkpOworICAgIFdLVmlld0NsaWVudFYwIHZpZXdDbGllbnQ7CisgICAgbWVtc2V0KCZ2aWV3Q2xp
ZW50LCAwLCBzaXplb2YoV0tWaWV3Q2xpZW50VjApKTsKIAotICAgIHZpZXdDbGllbnQudmVyc2lv
biA9IGtXS1ZpZXdDbGllbnRDdXJyZW50VmVyc2lvbjsKLSAgICB2aWV3Q2xpZW50LmNsaWVudElu
Zm8gPSBjbGllbnRJbmZvOworICAgIHZpZXdDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICB2
aWV3Q2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IGNsaWVudEluZm87CiAgICAgdmlld0NsaWVudC53
ZWJQcm9jZXNzQ3Jhc2hlZCA9IHdlYlByb2Nlc3NDcmFzaGVkOwogICAgIHZpZXdDbGllbnQud2Vi
UHJvY2Vzc0RpZFJlbGF1bmNoID0gd2ViUHJvY2Vzc0RpZFJlbGF1bmNoOwogCi0gICAgV0tWaWV3
U2V0Vmlld0NsaWVudCh2aWV3LCAmdmlld0NsaWVudCk7CisgICAgV0tWaWV3U2V0Vmlld0NsaWVu
dCh2aWV3LCByZWludGVycHJldF9jYXN0PFdLVmlld0NsaWVudEJhc2UqPigmdmlld0NsaWVudCkp
OwogfQogCiBURVNUKFdlYktpdDIsIFdLVmlld0NsaWVudFdlYlByb2Nlc3NDYWxsYmFja3MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>