<?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>178282</bug_id>
          
          <creation_ts>2017-10-13 13:30:28 -0700</creation_ts>
          <short_desc>Web Inspector: send a DOM node with each Canvas payload and eliminate Canvas.requestNode</short_desc>
          <delta_ts>2018-09-19 21:13:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=189776</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173807</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>inspector-bugzilla-changes</cc>
    
    <cc>mattbaker</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1360190</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-10-13 13:30:28 -0700</bug_when>
    <thetext>All the UI that relates to Canvas uses the canvas&apos; node.  We currently get the node via a protocol method, but since we always need the node in the UI, we might as well save a trip and just include the nodeId in the Canvas payload.  Doing this will eliminate the need for Canvas.requestNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377991</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-04 16:40:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/35842976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378014</commentid>
    <comment_count>2</comment_count>
      <attachid>328416</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-12-04 17:05:35 -0800</bug_when>
    <thetext>Created attachment 328416
[Patch] WIP

I probably should&apos;ve uploaded this earlier, but I tried doing some of this at the WebKit Contributors Meeting.  I kept running into an issue with how the document is fetched by the frontend, and how in doing so it would clear all the previously retrieved IDs, meaning that any we sent to the frontend for the Canvases would effectively be wiped out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328416</attachid>
            <date>2017-12-04 17:05:35 -0800</date>
            <delta_ts>2017-12-04 17:05:35 -0800</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>178282.diff</filename>
            <type>text/plain</type>
            <size>43392</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZjNkMDhkMDE3Mi4uYmYxOThmNTdmNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxNy0xMC0xMyAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBzZW5kIGEgRE9NIG5vZGUgd2l0aCBlYWNoIENhbnZhcyBwYXls
b2FkIGFuZCBlbGltaW5hdGUgQ2FudmFzLnJlcXVlc3ROb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNv
bnRleHQtMmQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY3JlYXRl
LWNvbnRleHQtd2ViZ2wtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
Y3JlYXRlLWNvbnRleHQtd2ViZ2wyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qczoK
KyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LmFkZFNpbXBsZVRl
c3RDYXNlKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LmFk
ZENTU0NhbnZhc1Rlc3RDYXNlKToKKwogMjAxNy0xMC0xMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gSW1wbGVtZW50IFBheW1lbnRS
ZXF1ZXN0LmNhbk1ha2VQYXltZW50KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvY3JlYXRlLWNvbnRleHQtMmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC0yZC1leHBlY3RlZC50eHQKaW5kZXggMzY4Y2Iz
OTc4YTkuLjA0ZWEyMGRmZGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL2NyZWF0ZS1jb250ZXh0LTJkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LTJkLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywx
MiBAQCBQQVNTOiBDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5vIGNhbnZhc2VzLgogCiAtLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLkNyZWF0ZUNvbnRleHQyRC5BdHRhY2hlZAogUEFTUzog
Q2FudmFzIGNvbnRleHQgc2hvdWxkIGJlIDJELgorUEFTUzogQ2FudmFzIHNob3VsZCBoYXZlIGEg
dmFsaWQgRE9NIG5vZGUuCiBQQVNTOiBSZW1vdmVkIGNhbnZhcyBoYXMgZXhwZWN0ZWQgSUQuCiAK
IC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuQ3JlYXRlQ29udGV4dDJELkRldGFjaGVkCiBQ
QVNTOiBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgMkQuCitQQVNTOiBDYW52YXMgc2hvdWxkIGhh
dmUgYSB2YWxpZCBET00gbm9kZS4KIFBBU1M6IFJlbW92ZWQgY2FudmFzIGhhcyBleHBlY3RlZCBJ
RC4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5DcmVhdGVDb250ZXh0MkQuQ1NTQ2Fu
dmFzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3Jl
YXRlLWNvbnRleHQtd2ViZ2wtZXhwZWN0ZWQudHh0CmluZGV4IGIzMzU2MTc0NzEyLi40NzQxOGNk
ZGQ0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29u
dGV4dC13ZWJnbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jcmVhdGUtY29udGV4dC13ZWJnbC1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTIgQEAgUEFT
UzogQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4KIAogLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENhbnZhcy5DcmVhdGVDb250ZXh0V2ViR0wuQXR0YWNoZWQKIFBBU1M6IENhbnZh
cyBjb250ZXh0IHNob3VsZCBiZSBXZWJHTC4KK1BBU1M6IENhbnZhcyBzaG91bGQgaGF2ZSBhIHZh
bGlkIERPTSBub2RlLgogUEFTUzogUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELgogCiAt
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLkNyZWF0ZUNvbnRleHRXZWJHTC5EZXRhY2hlZAog
UEFTUzogQ2FudmFzIGNvbnRleHQgc2hvdWxkIGJlIFdlYkdMLgorUEFTUzogQ2FudmFzIHNob3Vs
ZCBoYXZlIGEgdmFsaWQgRE9NIG5vZGUuCiBQQVNTOiBSZW1vdmVkIGNhbnZhcyBoYXMgZXhwZWN0
ZWQgSUQuCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuQ3JlYXRlQ29udGV4dFdlYkdM
LkNTU0NhbnZhcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVh
dGUtY29udGV4dC13ZWJnbDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9jcmVhdGUtY29udGV4dC13ZWJnbDItZXhwZWN0ZWQudHh0CmluZGV4IDU2MTI1NWYwZTNl
Li40ZGRmMWVjYmRiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9j
cmVhdGUtY29udGV4dC13ZWJnbDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ2wyLWV4cGVjdGVkLnR4dApAQCAtNywxMCAr
NywxMiBAQCBQQVNTOiBDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5vIGNhbnZhc2VzLgogCiAt
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLkNyZWF0ZUNvbnRleHRXZWJHTDIuQXR0YWNoZWQK
IFBBU1M6IENhbnZhcyBjb250ZXh0IHNob3VsZCBiZSBXZWJHTDIuCitQQVNTOiBDYW52YXMgc2hv
dWxkIGhhdmUgYSB2YWxpZCBET00gbm9kZS4KIFBBU1M6IFJlbW92ZWQgY2FudmFzIGhhcyBleHBl
Y3RlZCBJRC4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5DcmVhdGVDb250ZXh0V2Vi
R0wyLkRldGFjaGVkCiBQQVNTOiBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgV2ViR0wyLgorUEFT
UzogQ2FudmFzIHNob3VsZCBoYXZlIGEgdmFsaWQgRE9NIG5vZGUuCiBQQVNTOiBSZW1vdmVkIGNh
bnZhcyBoYXMgZXhwZWN0ZWQgSUQuCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuQ3Jl
YXRlQ29udGV4dFdlYkdMMi5DU1NDYW52YXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1LWV4cGVjdGVkLnR4dApp
bmRleCA5MjRiZTM4NjIxMi4uODYxMmY3NTFkYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS1leHBlY3Rl
ZC50eHQKQEAgLTcsMTAgKzcsMTIgQEAgUEFTUzogQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBu
byBjYW52YXNlcy4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5DcmVhdGVDb250ZXh0
V2ViR1BVLkF0dGFjaGVkCiBQQVNTOiBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgV2ViR1BVLgor
UEFTUzogQ2FudmFzIHNob3VsZCBoYXZlIGEgdmFsaWQgRE9NIG5vZGUuCiBQQVNTOiBSZW1vdmVk
IGNhbnZhcyBoYXMgZXhwZWN0ZWQgSUQuCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMu
Q3JlYXRlQ29udGV4dFdlYkdQVS5EZXRhY2hlZAogUEFTUzogQ2FudmFzIGNvbnRleHQgc2hvdWxk
IGJlIFdlYkdQVS4KK1BBU1M6IENhbnZhcyBzaG91bGQgaGF2ZSBhIHZhbGlkIERPTSBub2RlLgog
UEFTUzogUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELgogCiAtLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2FudmFzLkNyZWF0ZUNvbnRleHRXZWJHUFUuQ1NTQ2FudmFzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTVjNDMxYjBlOS4uMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UZXN0IHRoYXQgQ2FudmFzQWdlbnQucmVxdWVz
dE5vZGUgY2FuIHByb3Blcmx5IHJlc29sdmUgdGhlIG93bmVyIGNhbnZhcyBub2RlLgotCi0KLT09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnJlcXVlc3ROb2RlCi0tLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2FudmFzLnJlcXVlc3ROb2RlLm1pc3NpbmdEb2N1bWVudAotUEFTUzogVGhlIHBhZ2Ug
c2hvdWxkIGhhdmUgdGhyZWUgY2FudmFzZXMuCi1QQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJv
ci4KLUVycm9yOiBEb2N1bWVudCBoYXMgbm90IGJlZW4gcmVxdWVzdGVkCi0KLS0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdE5vZGUudmFsaWRDYW52YXNJZAotUEFTUzogQ2FudmFz
ICJDU1MgY2FudmFzIOKAnGNzc+KAnSIgaGFzIG5vZGUgd2l0aCB2YWxpZCBpZC4KLVBBU1M6IENh
bnZhcyAiQ1NTIGNhbnZhcyDigJxjc3PigJ0iIGhhcyBub2RlIHdpdGggdHlwZSAiQ0FOVkFTIi4K
LVBBU1M6IENhbnZhcyAiQ2FudmFzIDEiIGhhcyBub2RlIHdpdGggdmFsaWQgaWQuCi1QQVNTOiBD
YW52YXMgIkNhbnZhcyAxIiBoYXMgbm9kZSB3aXRoIHR5cGUgIkNBTlZBUyIuCi1QQVNTOiBDYW52
YXMgIkNhbnZhcyAyIiBoYXMgbm9kZSB3aXRoIHZhbGlkIGlkLgotUEFTUzogQ2FudmFzICJDYW52
YXMgMiIgaGFzIG5vZGUgd2l0aCB0eXBlICJDQU5WQVMiLgotCi0tLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ2FudmFzLnJlcXVlc3ROb2RlLmludmFsaWRDYW52YXNJZAotUEFTUzogU2hvdWxkIHByb2R1
Y2UgYW4gZXJyb3IuCi1FcnJvcjogTm8gY2FudmFzIGZvciBnaXZlbiBpZGVudGlmaWVyLgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkY2M4ZGNkZjUzLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICB3aW5kb3cu
b25zY3JlZW5DYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25zY3JlZW4iKS5nZXRD
b250ZXh0KCIyZCIpOwotICAgIHdpbmRvdy5vZmZzY3JlZW5DYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOwotICAgIHdpbmRvdy5jc3NDYW52
YXMgPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJjc3MiLCAxMCwgMTApOwot
Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLnJlcXVlc3ROb2RlIik7Ci0K
LSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdE5v
ZGUubWlzc2luZ0RvY3VtZW50IiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJHZXR0aW5nIHRoZSBj
YW52YXMgbm9kZSByZXF1aXJlcyB0aGF0IFdlYkluc3BlY3RvciBrbm93cyBhYm91dCB0aGUgZG9j
dW1lbnQuIiwKLSAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxl
dCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhc2VzLmxlbmd0aCwgMywgIlRoZSBwYWdlIHNob3Vs
ZCBoYXZlIHRocmVlIGNhbnZhc2VzLiIpOwotICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgY2FudmFzLiIpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQ2FudmFzQWdl
bnQucmVxdWVzdE5vZGUoY2FudmFzZXNbMF0uaWRlbnRpZmllciwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1
Y2UgYW4gZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9y
OiAiICsgZXJyb3IpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdE5vZGUudmFsaWRDYW52YXNJZCIsCi0gICAgICAgIGRlc2Ny
aXB0aW9uOiAiR2V0IHRoZSBub2RlIGlkIGZvciBlYWNoIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAot
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKLSAgICAgICAgICAgIGxldCBleHBlY3RlZExl
bmd0aCA9IGNhbnZhc2VzLmxlbmd0aDsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGV4cGVjdGVkTGVuZ3RoID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFzZXMuIik7Ci0KLSAg
ICAgICAgICAgIGxldCBub2Rlc01hcCA9IG5ldyBNYXA7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IGZpbmlzaCgpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IHt9OwotICAgICAgICAg
ICAgICAgIGZvciAobGV0IFtjYW52YXMsIG5vZGVdIG9mIG5vZGVzTWFwKQotICAgICAgICAgICAg
ICAgICAgICByZXN1bHRzW2NhbnZhcy5kaXNwbGF5TmFtZV0gPSBub2RlOwotCi0gICAgICAgICAg
ICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhyZXN1bHRzKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChrZXlzLmxlbmd0aCA9PT0gbm9kZXNNYXAuc2l6ZSwgIk5vIGRp
c3BsYXkgbmFtZSBjb2xsaXNpb25zIik7Ci0KLSAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhh
dCB0aGUgdGVzdCBydW5zIHByb3Blcmx5IGV2ZW4gaWYgdGhlIGNhbnZhcwotICAgICAgICAgICAg
ICAgIC8vIGV2ZW50cyBhcmUgc2VudCBpbiBhIGRpZmZlcmVudCBvcmRlciB0aGFuIHRoZSBhYm92
ZS4KLSAgICAgICAgICAgICAgICBrZXlzLnNvcnQoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxl
dCBkaXNwbGF5TmFtZSBvZiBrZXlzKSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChyZXN1bHRzW2Rpc3BsYXlOYW1lXSwgYENhbnZhcyAiJHtkaXNwbGF5TmFt
ZX0iIGhhcyBub2RlIHdpdGggdmFsaWQgaWQuYCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwocmVzdWx0c1tkaXNwbGF5TmFtZV0ubm9kZU5hbWUoKSwgIkNB
TlZBUyIsIGBDYW52YXMgIiR7ZGlzcGxheU5hbWV9IiBoYXMgbm9kZSB3aXRoIHR5cGUgIkNBTlZB
UyIuYCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjYW52YXNlcy5mb3JFYWNoKChjYW52YXMpID0+
IHsKLSAgICAgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRv
Y3VtZW50Tm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0
Tm9kZShjYW52YXMuaWRlbnRpZmllciwgKGVycm9yLCBub2RlSWQpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
amVjdChlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBub2Rlc01hcC5z
ZXQoY2FudmFzLCBXSS5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobm9kZXNNYXAuc2l6ZSA9PT0gZXhwZWN0ZWRMZW5ndGgpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAg
ICB9KTsKLQotICAgIC8vIC0tLS0tLQotCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAg
ICBuYW1lOiAiQ2FudmFzLnJlcXVlc3ROb2RlLmludmFsaWRDYW52YXNJZCIsCi0gICAgICAgIGRl
c2NyaXB0aW9uOiAiSW52YWxpZCBjYW52YXMgaWRlbnRpZmllcnMgc2hvdWxkIGNhdXNlIGFuIGVy
cm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBjb25z
dCBjYW52YXNJZCA9ICJET0VTX05PVF9FWElTVCI7Ci0gICAgICAgICAgICBDYW52YXNBZ2VudC5y
ZXF1ZXN0Tm9kZShjYW52YXNJZCwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuIik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9yOiAiICsgZXJyb3IpOwotICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAg
fSk7Ci0KLSAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKLX0KLTwvc2NyaXB0Pgot
PHN0eWxlPgotICAgIC5jc3MgeyBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhjc3Mp
OyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPHA+VGVzdCB0
aGF0IENhbnZhc0FnZW50LnJlcXVlc3ROb2RlIGNhbiBwcm9wZXJseSByZXNvbHZlIHRoZSBvd25l
ciBjYW52YXMgbm9kZS48L3A+Ci08Y2FudmFzIGlkPSJvbnNjcmVlbiI+PC9jYW52YXM+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKaW5kZXggMjE2
ODQ4M2Q0ZGMuLmNkODVmNWNiODA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVz
LmpzCkBAIC03MSw2ICs3MSw4IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4g
ewogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICBh
d2FpdENhbnZhc0FkZGVkKGNvbnRleHRUeXBlKQogICAgICAgICAgICAgICAgIC50aGVuKChjYW52
YXMpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNh
bnZhcy5kb21Ob2RlIGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgYENhbnZhcyBzaG91bGQgaGF2ZSBh
IHZhbGlkIERPTSBub2RlLmApOworCiAgICAgICAgICAgICAgICAgICAgIGlmIChjYW52YXMuY3Nz
Q2FudmFzTmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkNTUyBjYW52YXMgd2lsbCBub3QgYmUgZGVzdHJveWVkIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CkBAIC0xMDAsNiArMTAyLDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0
aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAg
ICAgICAgICAgICAgIGF3YWl0Q2FudmFzQWRkZWQoY29udGV4dFR5cGUpCiAgICAgICAgICAgICAg
ICAgLnRoZW4oKGNhbnZhcykgPT4geworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChjYW52YXMuZG9tTm9kZSBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsIGBDYW52YXMgc2hv
dWxkIGhhdmUgYSB2YWxpZCBET00gbm9kZS5gKTsKICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChjYW52YXMuY3NzQ2FudmFzTmFtZSwgImNzcy1jYW52YXMiLCAi
Q2FudmFzIG5hbWUgc2hvdWxkIGVxdWFsIHRoZSBpZGVudGlmaWVyIHBhc3NlZCB0byAtd2Via2l0
LWNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgIC50aGVuKHJl
c29sdmUsIHJlamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3NjU3MGUyOWQ2MS4u
MzE2NmQ5ZmJjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE3LTEwLTEzICBEZXZpbiBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHNlbmQgYSBET00gbm9kZSB3aXRoIGVhY2ggQ2FudmFzIHBheWxv
YWQgYW5kIGVsaW1pbmF0ZSBDYW52YXMucmVxdWVzdE5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5q
c29uOgorICAgICAgICBSZW1vdmUgYHJlcXVlc3ROb2RlYCBjb21tYW5kLCBhcyB0aGUgbm9kZSBp
cyBub3cgc2VudCBpbiB0aGUgQ2FudmFzIG9iamVjdCBwYXlsb2FkLgorCisgICAgICAgICogaW5z
cGVjdG9yL3Byb3RvY29sL0RPTS5qc29uOgorICAgICAgICBBZGQgYHNlbmREb2N1bWVudGAgZXZl
bnQgdG8gZm9yY2UgdGhlIGZyb250ZW5kIHRvIHVwZGF0ZSBpdCdzIHRyYWNrZWQgZG9jdW1lbnQu
CisKIDIwMTctMTAtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUHJvdG90eXBlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHNob3VsZCBiZSBhIGRlZmVycmVkIHRy
YW5zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvQ2FudmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0NhbnZhcy5qc29uCmluZGV4IGMxYmYwOGJlNThmLi45YTg5YzUwOTk5NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29u
CkBAIC02NCwxNiArNjQsNiBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVz
IENhbnZhcyBkb21haW4gZXZlbnRzLiIKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAg
ICAgIm5hbWUiOiAicmVxdWVzdE5vZGUiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkdl
dHMgdGhlIE5vZGVJZCBmb3IgdGhlIGNhbnZhcyBub2RlIHdpdGggdGhlIGdpdmVuIENhbnZhc0lk
LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQiLCAiZGVzY3JpcHRpb24iOiAiQ2FudmFz
IGlkZW50aWZpZXIuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInJldHVybnMiOiBb
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIk5vZGUgaWRlbnRpZmllciBmb3IgZ2l2ZW4gY2FudmFzLiIgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6
ICJyZXF1ZXN0Q29udGVudCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUg
ZGF0YSBmb3IgdGhlIGNhbnZhcyBub2RlIHdpdGggdGhlIGdpdmVuIENhbnZhc0lkLiIsCiAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCmluZGV4IGY5ZGY2NmQzMTYzLi43Y2ViZTRlNzhiZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00u
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5q
c29uCkBAIC00OTAsNiArNDkwLDEzIEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmly
ZWQgd2hlbiA8Y29kZT5Eb2N1bWVudDwvY29kZT4gaGFzIGJlZW4gdG90YWxseSB1cGRhdGVkLiBO
b2RlIGlkcyBhcmUgbm8gbG9uZ2VyIHZhbGlkLiIKICAgICAgICAgfSwKICAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAic2VuZERvY3VtZW50IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJGaXJlZCB3aGVuIHRoZSBiYWNrZW5kIHdhbnRzIHRvIHNlbmQgdGhlIDxjb2RlPkRvY3Vt
ZW50PC9jb2RlPiB0byB0aGUgZnJvbnRlbmQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9jdW1lbnROb2RlIiwgIiRyZWYiOiAiTm9k
ZSIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgICAi
bmFtZSI6ICJpbnNwZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJbnNwZWN0IGEg
cGFydGljdWxhciBub2RlLiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3OWFmZmU1ZTg3NS4uNTA5Y2I1MDRlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBA
QAorMjAxNy0xMC0xMyAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBzZW5kIGEgRE9NIG5vZGUgd2l0aCBlYWNoIENhbnZhcyBw
YXlsb2FkIGFuZCBlbGltaW5hdGUgQ2FudmFzLnJlcXVlc3ROb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyODIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4g
dXBkYXRlZCB0byBhZGQgbW9yZSBjb3ZlcmFnZS4KKyAgICAgICAgIC0gaW5zcGVjdG9yL2NhbnZh
cy9jcmVhdGUtY29udGV4dC0yZC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIGluc3BlY3Rvci9j
YW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ2wtZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSBpbnNw
ZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdsMi1leHBlY3RlZC50eHQ6CisgICAgICAg
ICAtIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1LWV4cGVjdGVkLnR4dDoK
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZE9iamVjdEZvckNhbnZhcyk6CisgICAgICAgIEFs
c28gaW5jbHVkZSBhIERPTSBub2RlIGZvciBDU1MgY2FudmFzZXMsIGFzIGl0IGlzIHN0aWxsIHVz
ZWQgaW4gdGhhdCBjYXNlIHRvIGNhbGN1bGF0ZSBzaXplCisgICAgICAgIGFuZCBtZW1vcnkgdXNh
Z2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3ROb2RlKTogRGVsZXRlZC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpzZW5kRG9jdW1lbnQpOgorICAgICAgICBDdXJyZW50bHksIHRoZSBmcm9udGVuZCBtdXN0
IGNhbGwgYERPTS5nZXREb2N1bWVudGAgYmVmb3JlIHRoZSBiYWNrZW5kIGlzIGFibGUgdG8gc2Vu
ZCBhbnkKKyAgICAgICAgbm9kZXMgdG8gdGhlIGZyb250ZW5kLiBgc2VuZERvY3VtZW50YCBpcyBh
IG1pcnJvciBvZiBgRE9NLmdldERvY3VtZW50YCwgZXhjZXB0IHRoYXQgaXQgaXMKKyAgICAgICAg
aW5pdGlhdGVkIGJ5IHRoZSBiYWNrZW5kLiBUaGlzIGlzIG5lZWRlZCBzaW5jZSBlYWNoIENhbnZh
cycgbm9kZUlkIGlzIG9ubHkgYWJsZSB0byBiZQorICAgICAgICByZXNvbHZlZCBvbmNlIHRoZSBk
b2N1bWVudCBoYXMgYmVlbiBzZW50IHRvIHRoZSBmcm9udGVuZC4KKwogMjAxNy0xMC0xMCAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0g
SW1wbGVtZW50IFBheW1lbnRSZXF1ZXN0LmNhbk1ha2VQYXltZW50KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKaW5kZXggMTUwYzliYWVhYzUuLjZkM2Fh
NTAyNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNw
cApAQCAtMjIzLDIxICsyMjMsMjIgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6
Q2FudmFzPiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkT2JqZWN0Rm9yQ2FudmFzKEkKICAgICAgICAg
LnNldENvbnRleHRUeXBlKGNvbnRleHRUeXBlKQogICAgICAgICAucmVsZWFzZSgpOwogCisgICAg
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JET01BZ2VudCgpOworICAgIGRvbUFnZW50LT5zZW5kRG9jdW1lbnQoKTsKKworICAgIGludCBu
b2RlSWQgPSBkb21BZ2VudC0+Ym91bmROb2RlSWQoJm1fY2FudmFzKTsKKyAgICBpZiAoIW5vZGVJ
ZCkgeworICAgICAgICBpZiAoaW50IGRvY3VtZW50Tm9kZUlkID0gZG9tQWdlbnQtPmJvdW5kTm9k
ZUlkKCZtX2NhbnZhcy5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAgRXJyb3JTdHJpbmcgaWdu
b3JlZDsKKyAgICAgICAgICAgIG5vZGVJZCA9IGRvbUFnZW50LT5wdXNoTm9kZVRvRnJvbnRlbmQo
aWdub3JlZCwgZG9jdW1lbnROb2RlSWQsICZtX2NhbnZhcyk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAobm9kZUlkKQorICAgICAgICBjYW52YXMtPnNldE5vZGVJZChub2RlSWQpOworCiAg
ICAgaWYgKCFtX2Nzc0NhbnZhc05hbWUuaXNFbXB0eSgpKQogICAgICAgICBjYW52YXMtPnNldENz
c0NhbnZhc05hbWUobV9jc3NDYW52YXNOYW1lKTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5zcGVj
dG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01B
Z2VudCgpOwotICAgICAgICBpbnQgbm9kZUlkID0gZG9tQWdlbnQtPmJvdW5kTm9kZUlkKCZtX2Nh
bnZhcyk7Ci0gICAgICAgIGlmICghbm9kZUlkKSB7Ci0gICAgICAgICAgICBpZiAoaW50IGRvY3Vt
ZW50Tm9kZUlkID0gZG9tQWdlbnQtPmJvdW5kTm9kZUlkKCZtX2NhbnZhcy5kb2N1bWVudCgpKSkg
ewotICAgICAgICAgICAgICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7Ci0gICAgICAgICAgICAgICAg
bm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZChpZ25vcmVkLCBkb2N1bWVudE5v
ZGVJZCwgJm1fY2FudmFzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChub2RlSWQpCi0gICAgICAgICAgICBjYW52YXMtPnNldE5vZGVJZChub2RlSWQpOwotICAgIH0K
IAogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4oY29udGV4dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuY3BwCmluZGV4IGFmYTcxZmZjNTgzLi44OTExNWY1NTA5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC0x
MjQsMjEgKzEyNCw2IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUoRXJyb3JT
dHJpbmcmKQogICAgIG1fZW5hYmxlZCA9IGZhbHNlOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQsIGludCogbm9kZUlkKQotewotICAgIGF1dG8qIGluc3BlY3RvckNhbnZhcyA9
IGFzc2VydEluc3BlY3RvckNhbnZhcyhlcnJvclN0cmluZywgY2FudmFzSWQpOwotICAgIGlmICgh
aW5zcGVjdG9yQ2FudmFzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgZG9jdW1lbnROb2Rl
SWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKS0+Ym91bmROb2Rl
SWQoJmluc3BlY3RvckNhbnZhcy0+Y2FudmFzKCkuZG9jdW1lbnQoKSk7Ci0gICAgaWYgKCFkb2N1
bWVudE5vZGVJZCkgewotICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiRG9jdW1l
bnQgaGFzIG5vdCBiZWVuIHJlcXVlc3RlZCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgKm5vZGVJZCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpLT5w
dXNoTm9kZVRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkLCAmaW5zcGVjdG9y
Q2FudmFzLT5jYW52YXMoKSk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVl
c3RDb250ZW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBjYW52YXNJ
ZCwgU3RyaW5nKiBjb250ZW50KQogewogICAgIGF1dG8qIGluc3BlY3RvckNhbnZhcyA9IGFzc2Vy
dEluc3BlY3RvckNhbnZhcyhlcnJvclN0cmluZywgY2FudmFzSWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA0Zjc5ZGE3ZWNlNi4u
NDBlYjM1NzUyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
YW52YXNBZ2VudC5oCkBAIC02OSw3ICs2OSw2IEBAIHB1YmxpYzoKICAgICAvLyBDYW52YXNCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5v
ZGVJZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgY2FudmFzSWQsIFN0cmluZyogY29udGVudCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZXF1ZXN0Q1NTQ2FudmFzQ2xpZW50Tm9kZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGNhbnZhc0lkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8aW50Pj4mKSBvdmVy
cmlkZTsKICAgICB2b2lkIHJlc29sdmVDYW52YXNDb250ZXh0KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBjYW52YXNJZCwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IDY2YjQ3NTBiY2ZhLi5iMzA2NWM4NmRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC00NDAsNiArNDQwLDcgQEAgRWxlbWVudCogSW5z
cGVjdG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGludAogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXREb2N1bWVudChFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+
JiByb290KQogeworICAgIGJvb2wgYWxyZWFkeVJlcXVlc3RlZCA9IG1fZG9jdW1lbnRSZXF1ZXN0
ZWQ7CiAgICAgbV9kb2N1bWVudFJlcXVlc3RlZCA9IHRydWU7CiAKICAgICBpZiAoIW1fZG9jdW1l
bnQpIHsKQEAgLTQ0NywxMCArNDQ4LDEyIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldERv
Y3VtZW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rvcjo6CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBSZXNldCBiYWNrZW5kIHN0YXRlLgotICAgIFJl
ZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSBtX2RvY3VtZW50OwotICAgIHJlc2V0KCk7Ci0gICAg
bV9kb2N1bWVudCA9IGRvY3VtZW50OworICAgIGlmICghYWxyZWFkeVJlcXVlc3RlZCkgeworICAg
ICAgICAvLyBSZXNldCBiYWNrZW5kIHN0YXRlLgorICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRv
Y3VtZW50ID0gbV9kb2N1bWVudDsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgbV9kb2N1bWVu
dCA9IGRvY3VtZW50OworICAgIH0KIAogICAgIHJvb3QgPSBidWlsZE9iamVjdEZvck5vZGUobV9k
b2N1bWVudC5nZXQoKSwgMiwgJm1fZG9jdW1lbnROb2RlVG9JZE1hcCk7CiB9CkBAIC00OTIsNiAr
NDk1LDIzIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAg
bV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5jbGVhcigpOwogfQogCit2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpzZW5kRG9jdW1lbnQoKQoreworICAgIGlmICghbV9kb2N1bWVudCB8fCBtX2RvY3Vt
ZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudC5nZXQoKSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghbV9kb2N1bWVudFJlcXVlc3RlZCkgeworICAgICAgICAvLyBSZXNldCBi
YWNrZW5kIHN0YXRlLgorICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3RlZERvY3VtZW50
ID0gbV9kb2N1bWVudDsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgbV9kb2N1bWVudCA9IHBy
b3RlY3RlZERvY3VtZW50OworICAgIH0KKworICAgIG1fZG9jdW1lbnRSZXF1ZXN0ZWQgPSB0cnVl
OworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnNlbmREb2N1bWVudChidWlsZE9iamVjdEZv
ck5vZGUobV9kb2N1bWVudC5nZXQoKSwgMCwgJm1fZG9jdW1lbnROb2RlVG9JZE1hcCkpOworfQor
CiBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSogbm9kZVRvUHVzaCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBhc3NlcnREb2N1bWVudChlcnJvclN0cmluZywgZG9jdW1l
bnROb2RlSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aAppbmRleCA2ZTVhMzQzMzhhNC4uNzdiZWY3NDc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xNzcsNiArMTc3LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzdHlsZUF0dHJpYnV0ZUludmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxFbGVtZW50
Kj4mIGVsZW1lbnRzKTsKIAorICAgIHZvaWQgc2VuZERvY3VtZW50KCk7CiAgICAgaW50IHB1c2hO
b2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOwog
ICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQgYm91bmROb2RlSWQoY29u
c3QgTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZDY2ZTk0YjY2Y2QuLjEzMmQ0
MmQ3YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxNy0x
MC0xMyAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBzZW5kIGEgRE9NIG5vZGUgd2l0aCBlYWNoIENhbnZhcyBwYXlsb2FkIGFu
ZCBlbGltaW5hdGUgQ2FudmFzLnJlcXVlc3ROb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2
ZXIuanM6CisgICAgICAgIChXSS5ET01PYnNlcnZlci5wcm90b3R5cGUuc2VuZERvY3VtZW50KToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzOgor
ICAgICAgICAoV0kuRE9NVHJlZU1hbmFnZXIucHJvdG90eXBlLnNlbmREb2N1bWVudCk6CisgICAg
ICAgIFVwZGF0ZSB0aGUgYF9kb2N1bWVudGAgd2hlbmV2ZXIgdGhpcyBldmVudCBpcyByZWNpZXZl
ZCB0byB0aGUgcHJvdmlkZWQgcGF5bG9hZCB2YWx1ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NhbnZhcy5qczoKKyAgICAgICAgKFdJLkNhbnZhcy5wcm90b3R5cGUuZ2V0IGRv
bU5vZGUpOgorICAgICAgICAoV0kuQ2FudmFzLnByb3RvdHlwZS5yZXF1ZXN0U2l6ZSk6CisgICAg
ICAgIChXSS5DYW52YXMucmVxdWVzdE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFz
LnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6IERlbGV0ZWQuCisgICAgICAgIFJlcGxhY2UgYHJl
cXVlc3ROb2RlYCB3aXRoIGEgc2ltcGxlIGdldHRlciBmb3IgYF9kb21Ob2RlYCBzaW5jZSBpdCBp
cyBub3cgYWx3YXlzIHByb3ZpZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3KToKKyAg
ICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAg
IChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0ku
Q2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0bWVudSk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdJLkNhbnZh
c0RldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBjYW52YXMpOgorICAgICAgICAoV0ku
Q2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hTb3VyY2VTZWN0aW9u
KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9jb250ZW50Vmlld01vdXNlRW50ZXIpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1RyZWVFbGVtZW50LnBy
b3RvdHlwZS5faGFuZGxlTW91c2VPdmVyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkVsZW1lbnRzVGFiQ29u
dGVudFZpZXcpOgorICAgICAgICAoV0kuRWxlbWVudHNUYWJDb250ZW50Vmlldy5wcm90b3R5cGUu
aW5pdGlhbExheW91dCk6CisKIDIwMTctMTAtMTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIFRhYiAtIFNldCBj
b2x1bW4gaW5pdGlhbCB3aWR0aHMgdG8gdHJ5IGFsbG93IHdhdGVyZmFsbCBjb2x1bW4gdG8gZXhw
YW5kIG1vcmUgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qcwppbmRl
eCA4Mjc4MmZlNzhhZC4uY2UwOGYzOTA5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5h
Z2VyLmpzCkBAIC05MSw2ICs5MSwxMyBAQCBXSS5ET01UcmVlTWFuYWdlciA9IGNsYXNzIERPTVRy
ZWVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2Rpc3BhdGNoV2hlbkRv
Y3VtZW50QXZhaWxhYmxlKERPTUFnZW50LnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZC5iaW5kKERP
TUFnZW50LCBwYXRoKSwgY2FsbGJhY2spOwogICAgIH0KIAorICAgIHNlbmREb2N1bWVudChkb2N1
bWVudE5vZGUpCisgICAgeworICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5ET01PYnNlcnZlci4K
KworICAgICAgICB0aGlzLl9zZXREb2N1bWVudChkb2N1bWVudE5vZGUpOworICAgIH0KKwogICAg
IGRpZEFkZEV2ZW50TGlzdGVuZXIobm9kZUlkKQogICAgIHsKICAgICAgICAgLy8gQ2FsbGVkIGZy
b20gV0kuRE9NT2JzZXJ2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwppbmRleCBkOThmZjQ3ZTMyYS4uZWE1NGIxOGI2NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
YW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NhbnZhcy5qcwpAQCAtNDUsOCArNDUsNiBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24gPSBu
ZXcgV0kuQ29sbGVjdGlvbihXSS5Db2xsZWN0aW9uLlR5cGVWZXJpZmllci5TaGFkZXJQcm9ncmFt
KTsKIAogICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSAxOwot
Ci0gICAgICAgIHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG51bGw7CiAgICAgfQogCiAgICAg
Ly8gU3RhdGljCkBAIC0xMDYsNiArMTA0LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgZ2V0IGlkZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9pZGVu
dGlmaWVyOyB9CiAgICAgZ2V0IGNvbnRleHRUeXBlKCkgeyByZXR1cm4gdGhpcy5fY29udGV4dFR5
cGU7IH0KICAgICBnZXQgZnJhbWUoKSB7IHJldHVybiB0aGlzLl9mcmFtZTsgfQorICAgIGdldCBk
b21Ob2RlKCkgeyByZXR1cm4gdGhpcy5fZG9tTm9kZTsgfQogICAgIGdldCBjc3NDYW52YXNOYW1l
KCkgeyByZXR1cm4gdGhpcy5fY3NzQ2FudmFzTmFtZTsgfQogICAgIGdldCBjb250ZXh0QXR0cmli
dXRlcygpIHsgcmV0dXJuIHRoaXMuX2NvbnRleHRBdHRyaWJ1dGVzOyB9CiAgICAgZ2V0IHNoYWRl
clByb2dyYW1Db2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fc2hhZGVyUHJvZ3JhbUNvbGxlY3Rp
b247IH0KQEAgLTE0NiwyNiArMTQ1LDYgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQ2FudmFzICVkIikuZm9y
bWF0KHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKTsKICAgICB9CiAKLSAgICByZXF1ZXN0
Tm9kZSgpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSkgewot
ICAgICAgICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4gewotICAgICAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmVuc3Vy
ZURvY3VtZW50KCk7Ci0KLSAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0Tm9kZSh0
aGlzLl9pZGVudGlmaWVyKS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAg
dGhpcy5fZG9tTm9kZSA9IFdJLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChyZXN1bHQubm9kZUlk
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9kb21Ob2RlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZWplY3QoYE5vIERPTSBub2RlIGZvciBpZGVudGlmaWVyOiAke3Jlc3Vs
dC5ub2RlSWR9LmApOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5fZG9tTm9kZSk7
Ci0gICAgICAgICAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZTsKLSAgICB9
Ci0KICAgICByZXF1ZXN0Q29udGVudCgpCiAgICAgewogICAgICAgICByZXR1cm4gQ2FudmFzQWdl
bnQucmVxdWVzdENvbnRlbnQodGhpcy5faWRlbnRpZmllcikudGhlbigocmVzdWx0KSA9PiByZXN1
bHQuY29udGVudCkuY2F0Y2goKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSk7CkBAIC0y
MTMsNiArMTkyLDEwIEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICAgICAgfTsKICAgICAgICAgfQogCisgICAgICAgIGxldCBzaXplID0gY2FsY3Vs
YXRlU2l6ZSh0aGlzLl9kb21Ob2RlKTsKKyAgICAgICAgaWYgKCFpc05hTihzaXplLndpZHRoKSAm
JiAhaXNOYU4oc2l6ZS5oZWlnaHQpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZShzaXplKTsKKwogICAgICAgICBmdW5jdGlvbiBnZXRQcm9wZXJ0eVZhbHVlKHJlbW90ZU9iamVj
dCwgbmFtZSkgewogICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKICAgICAgICAgICAgICAgICByZW1vdGVPYmplY3QuZ2V0UHJvcGVydHkobmFtZSwg
KGVycm9yLCByZXN1bHQpID0+IHsKQEAgLTIyNSwyMCArMjA4LDEyIEBAIFdJLkNhbnZhcyA9IGNs
YXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0K
IAotICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0Tm9kZSgpLnRoZW4oKGRvbU5vZGUpID0+IHsK
LSAgICAgICAgICAgIGxldCBzaXplID0gY2FsY3VsYXRlU2l6ZShkb21Ob2RlKTsKLSAgICAgICAg
ICAgIGlmICghaXNOYU4oc2l6ZS53aWR0aCkgJiYgIWlzTmFOKHNpemUuaGVpZ2h0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc2l6ZTsKLQotICAgICAgICAgICAgLy8gU2luY2UgdGhlICJ3aWR0
aCIgYW5kICJoZWlnaHQiIHByb3BlcnRpZXMgb2YgY2FudmFzIGVsZW1lbnRzIGFyZSBtb3JlIHRo
YW4ganVzdAotICAgICAgICAgICAgLy8gYXR0cmlidXRlcywgd2UgbmVlZCB0byBpbnZva2UgdGhl
IGdldHRlciBmb3IgZWFjaCB0byBnZXQgdGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgICAgICAgIC8v
ICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2F0
dHItY2FudmFzLXdpZHRoCi0gICAgICAgICAgICAvLyAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNhdHRyLWNhbnZhcy1oZWlnaHQKLSAgICAgICAg
ICAgIGxldCByZW1vdGVPYmplY3QgPSBudWxsOwotICAgICAgICAgICAgcmV0dXJuIFdJLlJlbW90
ZU9iamVjdC5yZXNvbHZlTm9kZShkb21Ob2RlKS50aGVuKChvYmplY3QpID0+IHsKLSAgICAgICAg
ICAgICAgICByZW1vdGVPYmplY3QgPSBvYmplY3Q7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFtnZXRQcm9wZXJ0eVZhbHVlKG9iamVjdCwgIndpZHRoIiksIGdldFByb3BlcnR5
VmFsdWUob2JqZWN0LCAiaGVpZ2h0IildKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKHZhbHVlcykg
PT4geworICAgICAgICAvLyBTaW5jZSB0aGUgIndpZHRoIiBhbmQgImhlaWdodCIgcHJvcGVydGll
cyBvZiBjYW52YXMgZWxlbWVudHMgYXJlIG1vcmUgdGhhbiBqdXN0CisgICAgICAgIC8vIGF0dHJp
YnV0ZXMsIHdlIG5lZWQgdG8gaW52b2tlIHRoZSBnZXR0ZXIgZm9yIGVhY2ggdG8gZ2V0IHRoZSBh
Y3R1YWwgdmFsdWUuCisgICAgICAgIC8vICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL2NhbnZhcy5odG1sI2F0dHItY2FudmFzLXdpZHRoCisgICAgICAgIC8vICAtIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2F0dHItY2Fu
dmFzLWhlaWdodAorICAgICAgICByZXR1cm4gV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlKHRo
aXMuX2RvbU5vZGUpLnRoZW4oKHJlbW90ZU9iamVjdCkgPT4geworICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKFtnZXRQcm9wZXJ0eVZhbHVlKHJlbW90ZU9iamVjdCwgIndpZHRoIiksIGdl
dFByb3BlcnR5VmFsdWUocmVtb3RlT2JqZWN0LCAiaGVpZ2h0IildKS50aGVuKCh2YWx1ZXMpID0+
IHsKICAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSB2YWx1ZXNbMF0udmFsdWU7CiAgICAgICAg
ICAgICAgICAgbGV0IGhlaWdodCA9IHZhbHVlc1sxXS52YWx1ZTsKICAgICAgICAgICAgICAgICB2
YWx1ZXNbMF0ucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qcwppbmRleCAwNmM3ODZkNWRl
Yi4uMDNkZDBkMWJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpzCkBAIC0zMiw2ICszMiwxMSBA
QCBXSS5ET01PYnNlcnZlciA9IGNsYXNzIERPTU9ic2VydmVyCiAgICAgICAgIFdJLmRvbVRyZWVN
YW5hZ2VyLl9kb2N1bWVudFVwZGF0ZWQoKTsKICAgICB9CiAKKyAgICBzZW5kRG9jdW1lbnQoZG9j
dW1lbnROb2RlKQorICAgIHsKKyAgICAgICAgV0kuZG9tVHJlZU1hbmFnZXIuc2VuZERvY3VtZW50
KGRvY3VtZW50Tm9kZSk7CisgICAgfQorCiAgICAgaW5zcGVjdChub2RlSWQpCiAgICAgewogICAg
ICAgICBXSS5kb21UcmVlTWFuYWdlci5pbnNwZWN0RWxlbWVudChub2RlSWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNDb250ZW50Vmlldy5qcwppbmRleCBmOTIyMmFkM2E3My4uYjU1MjNjMzQ2MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc0NvbnRlbnRWaWV3LmpzCkBAIC00MCw3ICs0MCw2IEBAIFdJLkNhbnZhc0NvbnRlbnRW
aWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAg
ICAgICB0aGlzLl9wZW5kaW5nQ29udGVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX3BpeGVsU2l6
ZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX3BpeGVsU2l6ZUVsZW1lbnQgPSBudWxsOwotICAgICAg
ICB0aGlzLl9jYW52YXNOb2RlID0gbnVsbDsKIAogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEIHx8
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTCkgewogICAgICAgICAgICAgY29uc3QgdG9vbFRpcCA9IFdJLlVJU3RyaW5nKCJT
dGFydCByZWNvcmRpbmcgY2FudmFzIGFjdGlvbnMuIFNoaWZ0LWNsaWNrIHRvIHJlY29yZCBhIHNp
bmdsZSBmcmFtZS4iKTsKQEAgLTU4LDYgKzU3LDggQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRo
aXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNr
ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZp
c2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5M
b3c7CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVk
ID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworCisgICAgICAgIHRoaXMuZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRt
ZW51LmJpbmQodGhpcykpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMTY1LDE1ICsxNjYs
MTAgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRF
dmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5NZW1vcnlDaGFuZ2VkLCB0aGlzLl91cGRhdGVN
ZW1vcnlDb3N0LCB0aGlzKTsKIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVl
c3ROb2RlKCkudGhlbigobm9kZSkgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRo
aXMuX2NhbnZhc05vZGUgfHwgdGhpcy5fY2FudmFzTm9kZSA9PT0gbm9kZSk7Ci0gICAgICAgICAg
ICBpZiAodGhpcy5fY2FudmFzTm9kZSA9PT0gbm9kZSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgICAgIHRoaXMuX2NhbnZhc05vZGUgPSBub2RlOwotICAgICAgICAgICAgdGhp
cy5fY2FudmFzTm9kZS5hZGRFdmVudExpc3RlbmVyKFdJLkRPTU5vZGUuRXZlbnQuQXR0cmlidXRl
TW9kaWZpZWQsIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUsIHRoaXMpOwotICAgICAgICAgICAgdGhp
cy5fY2FudmFzTm9kZS5hZGRFdmVudExpc3RlbmVyKFdJLkRPTU5vZGUuRXZlbnQuQXR0cmlidXRl
UmVtb3ZlZCwgdGhpcy5fcmVmcmVzaFBpeGVsU2l6ZSwgdGhpcyk7Ci0gICAgICAgIH0pOworICAg
ICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5kb21Ob2RlKSB7CisgICAgICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5ET01Ob2Rl
LkV2ZW50LkF0dHJpYnV0ZU1vZGlmaWVkLCB0aGlzLl9yZWZyZXNoUGl4ZWxTaXplLCB0aGlzKTsK
KyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZG9tTm9kZS5hZGRFdmVudExpc3Rl
bmVyKFdJLkRPTU5vZGUuRXZlbnQuQXR0cmlidXRlUmVtb3ZlZCwgdGhpcy5fcmVmcmVzaFBpeGVs
U2l6ZSwgdGhpcyk7CisgICAgICAgIH0KIAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCB0aGlz
Ll9yZWNvcmRpbmdTdGFydGVkLCB0aGlzKTsKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhp
cy5fcmVjb3JkaW5nU3RvcHBlZCwgdGhpcyk7CkBAIC0xODUsMTAgKzE4MSw4IEBAIFdJLkNhbnZh
c0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VmlldwogICAgIHsKICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExp
c3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2Rl
KSB7Ci0gICAgICAgICAgICB0aGlzLl9jYW52YXNOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVs
bCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9jYW52YXNOb2RlID0gbnVsbDsKLSAg
ICAgICAgfQorICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5kb21Ob2RlKQorICAg
ICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVu
ZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5zaG93
SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CkBAIC0zMDMs
NCArMjk3LDIyIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xp
c3QudG9nZ2xlKCJpcy1yZWNvcmRpbmciLCBpc1JlY29yZGluZyk7CiAgICAgfQorCisgICAgX2hh
bmRsZUNvbnRleHRtZW51KGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvbnRleHRNZW51ID0g
V0kuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsKKworICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQ2FudmFzIENvbnRleHQiKSwgKCkgPT4g
eworICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVDYW52YXNDb250ZXh0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwg
KHJlbW90ZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXh0
ID0gV0kuVUlTdHJpbmcoIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0Iik7CisgICAgICAgICAgICAg
ICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9IHRydWU7CisgICAgICAgICAgICAgICAg
V0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhS
ZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBh
cmF0b3IoKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFu
ZWwuanMKaW5kZXggM2YxMjg3ZWFkZDMuLjFlY2MwMzcwMmExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNEZXRhaWxzU2lkZWJhclBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTMyLDcgKzMyLDYgQEAgV0kuQ2FudmFzRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5k
cyBXSS5EZXRhaWwKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImNhbnZhcyIp
OwogCiAgICAgICAgIHRoaXMuX2NhbnZhcyA9IG51bGw7Ci0gICAgICAgIHRoaXMuX25vZGUgPSBu
dWxsOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtNTksMTYgKzU4LDEyIEBAIFdJLkNhbnZh
c0RldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsIGV4
dGVuZHMgV0kuRGV0YWlsCiAgICAgICAgIGlmIChjYW52YXMgPT09IHRoaXMuX2NhbnZhcykKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5fbm9kZSkgewotICAgICAgICAg
ICAgdGhpcy5fbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRPTU5vZGUuRXZlbnQuQXR0cmli
dXRlTW9kaWZpZWQsIHRoaXMuX3JlZnJlc2hTb3VyY2VTZWN0aW9uLCB0aGlzKTsKLSAgICAgICAg
ICAgIHRoaXMuX25vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5ET01Ob2RlLkV2ZW50LkF0dHJp
YnV0ZVJlbW92ZWQsIHRoaXMuX3JlZnJlc2hTb3VyY2VTZWN0aW9uLCB0aGlzKTsKLQotICAgICAg
ICAgICAgdGhpcy5fbm9kZSA9IG51bGw7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAodGhpcy5f
Y2FudmFzKSB7CiAgICAgICAgICAgICB0aGlzLl9jYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXMuRXZlbnQuTWVtb3J5Q2hhbmdlZCwgdGhpcy5fY2FudmFzTWVtb3J5Q2hhbmdlZCwg
dGhpcyk7CiAgICAgICAgICAgICB0aGlzLl9jYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXMuRXZlbnQuQ1NTQ2FudmFzQ2xpZW50Tm9kZXNDaGFuZ2VkLCB0aGlzLl9yZWZyZXNoQ1NT
Q2FudmFzU2VjdGlvbiwgdGhpcyk7CisKKyAgICAgICAgICAgIGlmICh0aGlzLl9jYW52YXMuZG9t
Tm9kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9jYW52YXMuZG9tTm9kZS5yZW1vdmVFdmVudExp
c3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY2Fu
dmFzID0gY2FudmFzIHx8IG51bGw7CkBAIC03Niw2ICs3MSwxMSBAQCBXSS5DYW52YXNEZXRhaWxz
U2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJ
LkRldGFpbAogICAgICAgICBpZiAodGhpcy5fY2FudmFzKSB7CiAgICAgICAgICAgICB0aGlzLl9j
YW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuTWVtb3J5Q2hhbmdlZCwgdGhp
cy5fY2FudmFzTWVtb3J5Q2hhbmdlZCwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLl9jYW52YXMu
YWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuQ1NTQ2FudmFzQ2xpZW50Tm9kZXNDaGFu
Z2VkLCB0aGlzLl9yZWZyZXNoQ1NTQ2FudmFzU2VjdGlvbiwgdGhpcyk7CisKKyAgICAgICAgICAg
IGlmICh0aGlzLl9jYW52YXMuZG9tTm9kZSkgeworICAgICAgICAgICAgICAgIHRoaXMuX2NhbnZh
cy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoV0kuRE9NTm9kZS5FdmVudC5BdHRyaWJ1dGVNb2Rp
ZmllZCwgdGhpcy5fcmVmcmVzaFNvdXJjZVNlY3Rpb24sIHRoaXMpOworICAgICAgICAgICAgICAg
IHRoaXMuX2NhbnZhcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoV0kuRE9NTm9kZS5FdmVudC5B
dHRyaWJ1dGVSZW1vdmVkLCB0aGlzLl9yZWZyZXNoU291cmNlU2VjdGlvbiwgdGhpcyk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CkBAIC0x
NjEsNTggKzE2MSw0NCBAQCBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2Fu
dmFzRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbAogICAgICAgICB0aGlzLl9o
ZWlnaHRSb3cudmFsdWUgPSBlbURhc2g7CiAgICAgICAgIHRoaXMuX2RhdGFjaGVkUm93LnZhbHVl
ID0gbnVsbDsKIAotICAgICAgICB0aGlzLl9jYW52YXMucmVxdWVzdE5vZGUoKS50aGVuKChub2Rl
KSA9PiB7Ci0gICAgICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5fbm9kZSkgewotICAgICAgICAg
ICAgICAgIGlmICh0aGlzLl9ub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vZGUu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5ET01Ob2RlLkV2ZW50LkF0dHJpYnV0ZU1vZGlmaWVkLCB0
aGlzLl9yZWZyZXNoU291cmNlU2VjdGlvbiwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX25vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5ET01Ob2RlLkV2ZW50LkF0dHJpYnV0ZVJl
bW92ZWQsIHRoaXMuX3JlZnJlc2hTb3VyY2VTZWN0aW9uLCB0aGlzKTsKKyAgICAgICAgaWYgKCF0
aGlzLl9jYW52YXMuY3NzQ2FudmFzTmFtZSkKKyAgICAgICAgICAgIHRoaXMuX25vZGVSb3cudmFs
dWUgPSBXSS5saW5raWZ5Tm9kZVJlZmVyZW5jZSh0aGlzLl9jYW52YXMuZG9tTm9kZSk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fbm9kZSA9IG51bGw7CisgICAgICAgIGxldCBzZXRSb3dW
YWx1ZUlmVmFsaWRBdHRyaWJ1dGVWYWx1ZSA9IChyb3csIGF0dHJpYnV0ZSkgPT4geworICAgICAg
ICAgICAgbGV0IHZhbHVlID0gTnVtYmVyKHRoaXMuX2NhbnZhcy5kb21Ob2RlLmdldEF0dHJpYnV0
ZShhdHRyaWJ1dGUpKTsKKyAgICAgICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkg
fHwgdmFsdWUgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAg
ICAgcm93LnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fTsKKworICAgICAgICBsZXQgdmFsaWRXaWR0aCA9IHNldFJvd1ZhbHVlSWZWYWxpZEF0dHJpYnV0
ZVZhbHVlKHRoaXMuX3dpZHRoUm93LCAid2lkdGgiKTsKKyAgICAgICAgbGV0IHZhbGlkSGVpZ2h0
ID0gc2V0Um93VmFsdWVJZlZhbGlkQXR0cmlidXRlVmFsdWUodGhpcy5faGVpZ2h0Um93LCAiaGVp
Z2h0Iik7CisgICAgICAgIGlmICghdmFsaWRXaWR0aCB8fCAhdmFsaWRIZWlnaHQpIHsKKyAgICAg
ICAgICAgIC8vIFNpbmNlIHRoZSAid2lkdGgiIGFuZCAiaGVpZ2h0IiBwcm9wZXJ0aWVzIG9mIGNh
bnZhcyBlbGVtZW50cyBhcmUgbW9yZSB0aGFuIGp1c3QKKyAgICAgICAgICAgIC8vIGF0dHJpYnV0
ZXMsIHdlIG5lZWQgdG8gaW52b2tlIHRoZSBnZXR0ZXIgZm9yIGVhY2ggdG8gZ2V0IHRoZSBhY3R1
YWwgdmFsdWUuCisgICAgICAgICAgICAvLyAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9jYW52YXMuaHRtbCNhdHRyLWNhbnZhcy13aWR0aAorICAgICAgICAgICAgLy8g
IC0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjYXR0
ci1jYW52YXMtaGVpZ2h0CisgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUo
dGhpcy5fY2FudmFzLmRvbU5vZGUpLnRoZW4oKHJlbW90ZU9iamVjdCkgPT4geworICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIHNldFJvd1ZhbHVlVG9Qcm9wZXJ0eVZhbHVlKHJvdywgcHJvcGVydHkp
IHsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3RlT2JqZWN0LmdldFByb3BlcnR5KHByb3BlcnR5
LCAoZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIWVycm9yICYmIHJlc3VsdC50eXBlID09PSAibnVtYmVyIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByb3cudmFsdWUgPSBgJHtyZXN1bHQudmFsdWV9cHhgOworCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5yZWxlYXNlKCk7CisgICAgICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHRoaXMuX25vZGUgPSBu
b2RlOworICAgICAgICAgICAgICAgIHNldFJvd1ZhbHVlVG9Qcm9wZXJ0eVZhbHVlKHRoaXMuX3dp
ZHRoUm93LCAid2lkdGgiKTsKKyAgICAgICAgICAgICAgICBzZXRSb3dWYWx1ZVRvUHJvcGVydHlW
YWx1ZSh0aGlzLl9oZWlnaHRSb3csICJoZWlnaHQiKTsKIAotICAgICAgICAgICAgICAgIHRoaXMu
X25vZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5ET01Ob2RlLkV2ZW50LkF0dHJpYnV0ZU1vZGlmaWVk
LCB0aGlzLl9yZWZyZXNoU291cmNlU2VjdGlvbiwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fbm9kZS5hZGRFdmVudExpc3RlbmVyKFdJLkRPTU5vZGUuRXZlbnQuQXR0cmlidXRlUmVtb3Zl
ZCwgdGhpcy5fcmVmcmVzaFNvdXJjZVNlY3Rpb24sIHRoaXMpOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHJlbW90ZU9iamVjdC5yZWxlYXNlKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQogCi0gICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhcy5jc3NDYW52YXNOYW1lKQot
ICAgICAgICAgICAgICAgIHRoaXMuX25vZGVSb3cudmFsdWUgPSBXSS5saW5raWZ5Tm9kZVJlZmVy
ZW5jZSh0aGlzLl9ub2RlKTsKLQotICAgICAgICAgICAgbGV0IHNldFJvd1ZhbHVlSWZWYWxpZEF0
dHJpYnV0ZVZhbHVlID0gKHJvdywgYXR0cmlidXRlKSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0
IHZhbHVlID0gTnVtYmVyKHRoaXMuX25vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSkpOwotICAg
ICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgfHwgdmFsdWUgPCAwKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICByb3cu
dmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg
IH07Ci0KLSAgICAgICAgICAgIGxldCB2YWxpZFdpZHRoID0gc2V0Um93VmFsdWVJZlZhbGlkQXR0
cmlidXRlVmFsdWUodGhpcy5fd2lkdGhSb3csICJ3aWR0aCIpOwotICAgICAgICAgICAgbGV0IHZh
bGlkSGVpZ2h0ID0gc2V0Um93VmFsdWVJZlZhbGlkQXR0cmlidXRlVmFsdWUodGhpcy5faGVpZ2h0
Um93LCAiaGVpZ2h0Iik7Ci0gICAgICAgICAgICBpZiAoIXZhbGlkV2lkdGggfHwgIXZhbGlkSGVp
Z2h0KSB7Ci0gICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlICJ3aWR0aCIgYW5kICJoZWlnaHQi
IHByb3BlcnRpZXMgb2YgY2FudmFzIGVsZW1lbnRzIGFyZSBtb3JlIHRoYW4ganVzdAotICAgICAg
ICAgICAgICAgIC8vIGF0dHJpYnV0ZXMsIHdlIG5lZWQgdG8gaW52b2tlIHRoZSBnZXR0ZXIgZm9y
IGVhY2ggdG8gZ2V0IHRoZSBhY3R1YWwgdmFsdWUuCi0gICAgICAgICAgICAgICAgLy8gIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjYXR0ci1jYW52
YXMtd2lkdGgKLSAgICAgICAgICAgICAgICAvLyAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNhdHRyLWNhbnZhcy1oZWlnaHQKLSAgICAgICAgICAg
ICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUobm9kZSkudGhlbigocmVtb3RlT2JqZWN0
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldFJvd1ZhbHVlVG9Qcm9wZXJ0
eVZhbHVlKHJvdywgcHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZU9i
amVjdC5nZXRQcm9wZXJ0eShwcm9wZXJ0eSwgKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikgPT4g
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgcmVzdWx0LnR5cGUg
PT09ICJudW1iZXIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cudmFsdWUg
PSBgJHtyZXN1bHQudmFsdWV9cHhgOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBzZXRSb3dWYWx1ZVRvUHJv
cGVydHlWYWx1ZSh0aGlzLl93aWR0aFJvdywgIndpZHRoIik7Ci0gICAgICAgICAgICAgICAgICAg
IHNldFJvd1ZhbHVlVG9Qcm9wZXJ0eVZhbHVlKHRoaXMuX2hlaWdodFJvdywgImhlaWdodCIpOwot
Ci0gICAgICAgICAgICAgICAgICAgIHJlbW90ZU9iamVjdC5yZWxlYXNlKCk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFz
LmNzc0NhbnZhc05hbWUgJiYgIXRoaXMuX25vZGUucGFyZW50Tm9kZSkKLSAgICAgICAgICAgICAg
ICB0aGlzLl9kYXRhY2hlZFJvdy52YWx1ZSA9IFdJLlVJU3RyaW5nKCJZZXMiKTsKLSAgICAgICAg
fSk7CisgICAgICAgIGlmICghdGhpcy5fY2FudmFzLmNzc0NhbnZhc05hbWUgJiYgIXRoaXMuX2Nh
bnZhcy5kb21Ob2RlLnBhcmVudE5vZGUpCisgICAgICAgICAgICB0aGlzLl9kYXRhY2hlZFJvdy52
YWx1ZSA9IFdJLlVJU3RyaW5nKCJZZXMiKTsKICAgICB9CiAKICAgICBfcmVmcmVzaEF0dHJpYnV0
ZXNTZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmlu
ZGV4IDcyOGM0MDlmYWM4Li44MDAxOTExOTFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3LmpzCkBAIC0xOTAsMTEgKzE5MCw5IEBAIFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29sbGVjCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjYW52YXMu
cmVxdWVzdE5vZGUoKS50aGVuKChub2RlKSA9PiB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUgfHwg
IW5vZGUub3duZXJEb2N1bWVudCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKG5vZGUuaWQpOwotICAgICAgICB9
KTsKKyAgICAgICAgbGV0IGNhbnZhc05vZGUgPSBjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVj
dC5kb21Ob2RlOworICAgICAgICBpZiAoY2FudmFzTm9kZSAmJiBjYW52YXNOb2RlLm93bmVyRG9j
dW1lbnQpCisgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKGNh
bnZhc05vZGUuaWQpOwogICAgIH0KIAogICAgIF9jb250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCmluZGV4IGQ4MTQxNGUxMjY5Li5iZDBiMTdjZTMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzVHJlZUVsZW1lbnQuanMKQEAgLTEwOSwxNCArMTA5LDggQEAgV0ku
Q2FudmFzVHJlZUVsZW1lbnQgPSBjbGFzcyBDYW52YXNUcmVlRWxlbWVudCBleHRlbmRzIFdJLkZv
bGRlcml6ZWRUcmVlRWxlbWVudAogICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5y
ZXF1ZXN0Q1NTQ2FudmFzQ2xpZW50Tm9kZXMoKGNzc0NhbnZhc0NsaWVudE5vZGVzKSA9PiB7CiAg
ICAgICAgICAgICAgICAgV0kuZG9tVHJlZU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZUxpc3QoY3Nz
Q2FudmFzQ2xpZW50Tm9kZXMubWFwKChub2RlKSA9PiBub2RlLmlkKSwgImFsbCIpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlcXVlc3ROb2RlKChub2RlKSA9PiB7Ci0gICAgICAgICAgICAgICAgaWYgKCFub2Rl
IHx8ICFub2RlLm93bmVyRG9jdW1lbnQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUobm9kZS5p
ZCwgImFsbCIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRvbU5vZGUgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5kb21Ob2RlLm93bmVyRG9jdW1lbnQpCisgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5o
aWdobGlnaHRET01Ob2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZG9tTm9kZS5pZCwgImFsbCIp
OwogICAgIH0KIAogICAgIF9oYW5kbGVNb3VzZU91dChldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0VsZW1lbnRzVGFiQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9FbGVtZW50
c1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDkxZWZjNzdmNGUyLi5jYmI5OTFjNWZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRWxlbWVudHNU
YWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0zNSw5ICszNSw2IEBAIFdJLkVs
ZW1lbnRzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBFbGVtZW50c1RhYkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudEJyb3dzCiAgICAgICAgICAgICBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3JzLnB1c2goV0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCk7CiAKICAgICAgICAg
c3VwZXIoaWRlbnRpZmllciB8fCAiZWxlbWVudHMiLCAiZWxlbWVudHMiLCB0YWJCYXJJdGVtLCBu
dWxsLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCB0cnVlKTsKLQotICAgICAgICBX
SS5mcmFtZVJlc291cmNlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lUmVzb3VyY2VN
YW5hZ2VyLkV2ZW50Lk1haW5GcmFtZURpZENoYW5nZSwgdGhpcy5fbWFpbkZyYW1lRGlkQ2hhbmdl
LCB0aGlzKTsKLSAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVu
dC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENoYW5nZSwgdGhp
cyk7CiAgICAgfQogCiAgICAgc3RhdGljIHRhYkluZm8oKQpAQCAtMTA0LDYgKzEwMSwxNiBAQCBX
SS5FbGVtZW50c1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgRWxlbWVudHNUYWJDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRCcm93cwogICAgICAgICBXSS5GcmFtZS5yZW1vdmVFdmVudExpc3Rl
bmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgIH0KIAorICAgIC8vIFByb3RlY3RlZAorCisgICAg
aW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisK
KyAgICAgICAgV0kuZnJhbWVSZXNvdXJjZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFt
ZVJlc291cmNlTWFuYWdlci5FdmVudC5NYWluRnJhbWVEaWRDaGFuZ2UsIHRoaXMuX21haW5GcmFt
ZURpZENoYW5nZSwgdGhpcyk7CisgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0ku
RnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9tYWluUmVzb3VyY2VEaWRD
aGFuZ2UsIHRoaXMpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9zaG93RE9NVHJl
ZUNvbnRlbnRWaWV3KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>