<?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>69431</bug_id>
          
          <creation_ts>2011-10-05 08:42:46 -0700</creation_ts>
          <short_desc>Web Inspector: move elements panel update semantics from ElementsPanel to ElementsTreeOutline.</short_desc>
          <delta_ts>2011-10-05 09:13:45 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>478391</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 08:42:46 -0700</bug_when>
    <thetext>ElementsTreeOutline should be self-sufficient. Today&apos;s control flow goes back and forth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478395</commentid>
    <comment_count>1</comment_count>
      <attachid>109804</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 08:47:28 -0700</bug_when>
    <thetext>Created attachment 109804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478403</commentid>
    <comment_count>2</comment_count>
      <attachid>109804</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-05 09:02:08 -0700</bug_when>
    <thetext>Comment on attachment 109804
Patch

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

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:-609
&gt; -                panel.selectDOMNode(crumb.representedObject, true);

This line should remain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478414</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 09:13:45 -0700</bug_when>
    <thetext>Committed r96711: &lt;http://trac.webkit.org/changeset/96711&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109804</attachid>
            <date>2011-10-05 08:47:28 -0700</date>
            <delta_ts>2011-10-05 09:02:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69431-20111005194726.patch</filename>
            <type>text/plain</type>
            <size>36149</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY3MDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NzQyNTI2MTM3MmM5ZDAyMjAyNWU3
NDQ1YzRhNWRjODFhYzIxOWY3Li5mYTdhNTNmODgxMGIzMDU4NWRhOGQ0YmI2NTJmMmIxZDQ3ODli
OWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMDUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgZWxlbWVu
dHMgcGFuZWwgdXBkYXRlIHNlbWFudGljcyBmcm9tIEVsZW1lbnRzUGFuZWwgdG8gRWxlbWVudHNU
cmVlT3V0bGluZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY5NDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzOgorICAgICAgICAoaW5p
dGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUpOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRz
VHJlZS5vbkFsbE5vZGVzQXZhaWxhYmxlKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRl
c3QuSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbDoKKwogMjAxMS0xMC0wNSAgQmFsYXpzIEtl
bGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIEZpcnN0IHRl
c3QgYWx3YXlzIGZhaWxzIGJlY2F1c2Ugb2YgdXNlbGVzcyB4Y2IgZHVtcApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggOGEzMTll
MjM5M2RkZDA2Y2YzODViYzhkMWMwYWRiNTg3ODMxZjViMC4uYmQxOTNmM2Q5NGFmYTBhYzI3OGUz
NTM2NGQyNTcwZWI5MTIwYzZjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCkBAIC0zMjAsNyArMzIwLDcgQEAgSW5zcGVjdG9yVGVz
dC5kdW1wRWxlbWVudHNUcmVlID0gZnVuY3Rpb24ocm9vdE5vZGUpCiAgICAgICAgICAgICBwcmlu
dChjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXSwgcHJlZml4KTsKICAgICB9CiAKLSAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5v
ZGVzKCk7CiAgICAgdmFyIHRyZWVPdXRsaW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy50cmVlT3V0bGluZTsKICAgICBwcmludChyb290Tm9kZSA/IHRyZWVPdXRsaW5lLmZpbmRUcmVl
RWxlbWVudChyb290Tm9kZSkgOiB0cmVlT3V0bGluZSwgIiIpOwogfTsKQEAgLTM0MCw3ICszNDAs
NyBAQCBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZSA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQogCiAgICAgZnVuY3Rpb24gb25BbGxOb2Rlc0F2YWlsYWJsZSgpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5fdXBkYXRlTW9kaWZp
ZWROb2RlcygpOwogICAgICAgICBleHBhbmQoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50
cmVlT3V0bGluZSk7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWwKaW5kZXggNGI2
YzVmYzk1MDg3YWU5OWVlNmMwZWYyYTY3ZWYxYTU0ODJjMzkxYi4uNzkyNTA0ZGZlZjZiMzYxOGI1
YzIyNmU3NzdjOGJiOGNmMTEyMWIwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sCkBAIC05NCw3ICs5NCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgICAgICB2YXIgZWRpdG9yRWxlbWVudCA9IHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlLnBhcmVudEVsZW1lbnQ7CiAgICAgICAgICAgICAg
ICAgICAgIGVkaXRvckVsZW1lbnQudGV4dENvbnRlbnQgPSAibmV3YXR0cj1cIm5ldy12YWx1ZVwi
IjsKICAgICAgICAgICAgICAgICAgICAgZWRpdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3Bl
Y3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90
eXBlLCAidXBkYXRlTW9kaWZpZWROb2RlcyIsIGRvbmUpOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZVVwZGF0ZXIu
cHJvdG90eXBlLCAiX3VwZGF0ZU1vZGlmaWVkTm9kZXMiLCBkb25lKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0xNjIsNyArMTYyLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIGVkaXRvckVsZW1lbnQudGV4dENvbnRlbnQgPSBuZXdWYWx1ZTsK
ICAgICAgICAgZWRpdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRl
S2V5RXZlbnQoIkVudGVyIikpOwogICAgICAgICBpZiAodXNlU25pZmZlcikKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUsICJ1cGRhdGVNb2RpZmllZE5vZGVzIiwgc3RlcDIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVVcGRhdGVyLnByb3Rv
dHlwZSwgIl91cGRhdGVNb2RpZmllZE5vZGVzIiwgc3RlcDIpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVw
ZGF0ZS1mcm9tLWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11
cGRhdGUtZnJvbS1qcy5odG1sCmluZGV4IDYxMjZmOTI0YzgxODUwZTQ2NzA1MDE3ZGFjMTQ1NmNj
MTI5ZTYyZDcuLjYzNjNkZmY3NzM3NDRiYjU2NjFjNjljZDM1NWRmMTBiNzk0YTAyN2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZy
b20tanMuaHRtbApAQCAtNzAsNyArNzAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0
aW9uIGZpbmROb2RlVHJlZUVsZW1lbnQoKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5lbGVtZW50cy51cGRhdGVNb2RpZmllZE5vZGVzKCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKICAg
ICAgICAgdmFyIGV4cGFuZGVkTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElk
KCJjb250YWluZXIiKTsKICAgICAgICAgaWYgKCFleHBhbmRlZE5vZGUpIHsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCInY29udGFpbmVyJyBub2RlIG5vdCBmb3VuZCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDAwNTg3NzA1NTJiNjAxMGYxNTU3ZmQwODg3NGM3N2VkNWI0NmY1NTkuLjI3
MDM2YzE0ZDVlZmUzMmJkYzY5MGQzODkwNjFmMDIzNTUyNGEzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NSBAQAogMjAxMS0xMC0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5j
b20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBlbGVtZW50cyBwYW5lbCB1cGRhdGUg
c2VtYW50aWNzIGZyb20gRWxlbWVudHNQYW5lbCB0byBFbGVtZW50c1RyZWVPdXRsaW5lLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0MzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0UGFyYW1ldGVyQXNOb2RlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5nZXQgdGhpcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5
cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
aGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX3Nl
bGVjdGVkTm9kZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwu
cHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5w
cm90b3R5cGUuX25vZGVSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZS51cGRhdGVCcmVhZGNydW1iLnNlbGVjdENydW1iRnVuY3Rpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZUJyZWFkY3J1
bWIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS53aXJlVG9Eb21BZ2Vu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUu
c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5w
cm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlT3V0bGluZS5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuc2VsZWN0RE9NTm9kZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUudXBk
YXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlw
ZS5fc2VsZWN0ZWROb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlT3V0bGluZS5wcm90b3R5cGUuZmluZFRyZWVFbGVtZW50LnBhcmVudE5vZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLmZpbmRUcmVlRWxl
bWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5
cGUuY3JlYXRlVHJlZUVsZW1lbnRGb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRyb3AuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRyb3ApOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLmFkanVzdENvbGxhcHNl
ZFJhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3Rv
dHlwZS5fdXBkYXRlTW9kaWZpZWROb2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0Q2hpbGRFbGVtZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5zZWxlY3RPbk1vdXNlRG93
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
X3N0YXJ0RWRpdGluZ0FzSFRNTC5kaXNwb3NlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nQXNIVE1MKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fYXR0cmlidXRlRWRp
dGluZ0NvbW1pdHRlZC5tb3ZlVG9OZXh0QXR0cmlidXRlSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9hdHRyaWJ1dGVFZGl0aW5n
Q29tbWl0dGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnBy
b3RvdHlwZS5fdGFnTmFtZUVkaXRpbmdDb21taXR0ZWQuY2hhbmdlVGFnTmFtZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFn
TmFtZUVkaXRpbmdDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlLl90ZXh0Tm9kZUVkaXRpbmdDb21taXR0ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9lZGl0aW5nQ2FuY2Vs
bGVkKToKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5z
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorCisyMDExLTEwLTA1ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBOb3QgcmV2aWV3ZWQ6
IHJlc3RvcmluZyA6IHNob3J0Y3V0IGluIGluc3BlY3Rvci4KIAogICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggZDdhNDBjMGQ3MjViZDQ1
MTAwZjEzZjY1MjdmMDY3Mjg0NDc0MDVlYi4uYzY0MmY3NzI1ZWUzNDExNzg4ZjYxZjA5MGMwNWVm
MWFhYTNjMmZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC0yODgsOCArMjg4LDcgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fZm9y
bWF0UGFyYW1ldGVyQXNPYmplY3Qob2JqZWN0LCBlbGVtKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdHJlZU91dGxpbmUgPSBuZXcgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUoKTsKLSAgICAgICAgICAgIHRyZWVPdXRsaW5l
LnNob3dJbkVsZW1lbnRzUGFuZWxFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhciB0cmVl
T3V0bGluZSA9IG5ldyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZShmYWxzZSwgZmFs
c2UsIHRydWUpOwogICAgICAgICAgICAgdHJlZU91dGxpbmUucm9vdERPTU5vZGUgPSBXZWJJbnNw
ZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICB0cmVlT3V0bGlu
ZS5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoIm91dGxpbmUtZGlzY2xvc3VyZSIpOwogICAgICAgICAg
ICAgaWYgKCF0cmVlT3V0bGluZS5jaGlsZHJlblswXS5oYXNDaGlsZHJlbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCA3
NDhkZWM0MjY0OGJmMGFiZGJkNjIzZDIyNjFmNWY4YmEyMjVmNzUxLi45MDkyYTQxZWVlNzVhZmQ4
NTU0ZGZjNWY4OTg5MzBlYWQ2ODY2MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC00MSwyOCArNDEsMTAgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLmNvbnRlbnRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnVF
dmVudEZpcmVkLmJpbmQodGhpcyksIHRydWUpOwogCi0gICAgdGhpcy50cmVlT3V0bGluZSA9IG5l
dyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSgpOwotICAgIHRoaXMudHJlZU91dGxp
bmUucGFuZWwgPSB0aGlzOwotICAgIHRoaXMudHJlZU91dGxpbmUuaW5jbHVkZVJvb3RET01Ob2Rl
ID0gZmFsc2U7Ci0gICAgdGhpcy50cmVlT3V0bGluZS5zZWxlY3RFbmFibGVkID0gdHJ1ZTsKKyAg
ICB0aGlzLnRyZWVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5l
KHRydWUsIHRydWUpOworICAgIHRoaXMudHJlZU91dGxpbmUud2lyZVRvRG9tQWdlbnQoKTsKIAot
ICAgIHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWROb2RlQ2hhbmdlZCA9IGZ1bmN0aW9uKGZvcmNl
VXBkYXRlKQotICAgIHsKLSAgICAgICAgdGhpcy5wYW5lbC51cGRhdGVCcmVhZGNydW1iKGZvcmNl
VXBkYXRlKTsKLQotICAgICAgICBmb3IgKHZhciBwYW5lIGluIHRoaXMucGFuZWwuc2lkZWJhclBh
bmVzKQotICAgICAgICAgICB0aGlzLnBhbmVsLnNpZGViYXJQYW5lc1twYW5lXS5uZWVkc1VwZGF0
ZSA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5wYW5lbC51cGRhdGVTdHlsZXModHJ1ZSk7Ci0gICAg
ICAgIHRoaXMucGFuZWwudXBkYXRlTWV0cmljcygpOwotICAgICAgICB0aGlzLnBhbmVsLnVwZGF0
ZVByb3BlcnRpZXMoKTsKLSAgICAgICAgdGhpcy5wYW5lbC51cGRhdGVFdmVudExpc3RlbmVycygp
OwotCi0gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZERPTU5vZGUpIHsKLSAgICAgICAgICAgIENv
bnNvbGVBZ2VudC5hZGRJbnNwZWN0ZWROb2RlKHRoaXMuX3NlbGVjdGVkRE9NTm9kZS5pZCk7Ci0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeU9iamVjdFNlbGVj
dGVkKHRoaXMucGFuZWwubmFtZSk7Ci0gICAgICAgIH0KLSAgICB9OworICAgIHRoaXMudHJlZU91
dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5F
dmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhp
cyk7CiAKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudHJlZU91dGxp
bmUuZWxlbWVudCk7CiAKQEAgLTExMywxNSArOTUsOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3JlZ2lzdGVyU2hvcnRjdXRzKCk7CiAKLSAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLk5vZGVJbnNlcnRlZCwgdGhpcy5fbm9kZUluc2VydGVkLCB0aGlzKTsKICAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCB0aGlzLl9ub2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHRoaXMuX2F0dHJpYnV0ZXNVcGRhdGVkLCB0aGlzKTsK
LSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RE9NQWdlbnQuRXZlbnRzLkF0dHJSZW1vdmVkLCB0aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZCwgdGhp
cyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRPTUFnZW50LkV2ZW50cy5DaGFyYWN0ZXJEYXRhTW9kaWZpZWQsIHRoaXMuX2NoYXJhY3Rl
ckRhdGFNb2RpZmllZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5Eb2N1bWVudFVwZGF0ZWQsIHRo
aXMuX2RvY3VtZW50VXBkYXRlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5DaGlsZE5vZGVDb3Vu
dFVwZGF0ZWQsIHRoaXMuX2NoaWxkTm9kZUNvdW50VXBkYXRlZCwgdGhpcyk7Ci0gICAgV2ViSW5z
cGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2
ZW50cy5JbnNwZWN0RWxlbWVudFJlcXVlc3RlZCwgdGhpcy5faW5zcGVjdEVsZW1lbnRSZXF1ZXN0
ZWQsIHRoaXMpOwotICAgIHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzID0gW107CiB9CiAKIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTE1MSwxNCArMTI2LDEw
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5zaWRlYmFyUmVzaXplRWxlbWVudC5zdHlsZS5yaWdodCA9ICh0aGlzLnNpZGViYXJFbGVtZW50
Lm9mZnNldFdpZHRoIC0gMykgKyAicHgiOwogICAgICAgICB0aGlzLnVwZGF0ZUJyZWFkY3J1bWIo
KTsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS51cGRhdGVTZWxlY3Rpb24oKTsKLSAgICAgICAg
aWYgKHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzLmxlbmd0aCkKLSAgICAgICAgICAgIHRoaXMu
dXBkYXRlTW9kaWZpZWROb2RlcygpOworICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNldFZpc2li
bGUodHJ1ZSk7CiAKICAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUluc3RydW1lbnRhdGlv
bkVuYWJsZWQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50Lmluc2VydEJlZm9yZSh0
aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5lbGVtZW50LCB0aGlzLnNpZGViYXJQYW5l
cy5ldmVudExpc3RlbmVycy5lbGVtZW50KTsKLQotICAgICAgICBpZiAoIXRoaXMucm9vdERPTU5v
ZGUpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVxdWVzdERvY3VtZW50KCk7
CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKQEAgLTE2Nyw2ICsxMzgsNyBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgV2ViSW5zcGVj
dG9yLmhpZ2hsaWdodERPTU5vZGUoMCk7CiAgICAgICAgIHRoaXMuc2V0U2VhcmNoaW5nRm9yTm9k
ZShmYWxzZSk7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc2V0VmlzaWJsZShmYWxzZSk7CiAg
ICAgfSwKIAogICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCkBAIC0xNzUsMjggKzE0NywzOCBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudXBk
YXRlQnJlYWRjcnVtYlNpemVzKCk7CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQor
ICAgIF9zZWxlY3RlZE5vZGVDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAo
dGhpcy5zZWxlY3RlZERPTU5vZGUoKSkKLSAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkUGF0aE9u
UmVzZXQgPSB0aGlzLnNlbGVjdGVkRE9NTm9kZSgpLnBhdGgoKTsKKyAgICAgICAgdmFyIHNlbGVj
dGVkTm9kZSA9IHRoaXMuc2VsZWN0ZWRET01Ob2RlKCk7CisgICAgICAgIGlmICghc2VsZWN0ZWRO
b2RlICYmIHRoaXMuX2xhc3RWYWxpZFNlbGVjdGVkTm9kZSkKKyAgICAgICAgICAgIHRoaXMuX3Nl
bGVjdGVkUGF0aE9uUmVzZXQgPSB0aGlzLl9sYXN0VmFsaWRTZWxlY3RlZE5vZGUucGF0aCgpOwog
Ci0gICAgICAgIHRoaXMucm9vdERPTU5vZGUgPSBudWxsOwotICAgICAgICB0aGlzLnNlbGVjdERP
TU5vZGUobnVsbCk7CisgICAgICAgIHRoaXMudXBkYXRlQnJlYWRjcnVtYihmYWxzZSk7CiAKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodERPTU5vZGUoMCk7CisgICAgICAgIGZvciAodmFy
IHBhbmUgaW4gdGhpcy5zaWRlYmFyUGFuZXMpCisgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVz
W3BhbmVdLm5lZWRzVXBkYXRlID0gdHJ1ZTsKIAotICAgICAgICB0aGlzLnJlY2VudGx5TW9kaWZp
ZWROb2RlcyA9IFtdOworICAgICAgICB0aGlzLnVwZGF0ZVN0eWxlcyh0cnVlKTsKKyAgICAgICAg
dGhpcy51cGRhdGVNZXRyaWNzKCk7CisgICAgICAgIHRoaXMudXBkYXRlUHJvcGVydGllcygpOwor
ICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50TGlzdGVuZXJzKCk7CiAKLSAgICAgICAgZGVsZXRlIHRo
aXMuY3VycmVudFF1ZXJ5OworICAgICAgICBpZiAoc2VsZWN0ZWROb2RlKSB7CisgICAgICAgICAg
ICBDb25zb2xlQWdlbnQuYWRkSW5zcGVjdGVkTm9kZShzZWxlY3RlZE5vZGUuaWQpOworICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlPYmplY3RTZWxlY3RlZCh0
aGlzLm5hbWUpOworICAgICAgICAgICAgdGhpcy5fbGFzdFZhbGlkU2VsZWN0ZWROb2RlID0gc2Vs
ZWN0ZWROb2RlOworICAgICAgICB9CiAgICAgfSwKIAotICAgIF9kb2N1bWVudFVwZGF0ZWQ6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhp
cy5fc2V0RG9jdW1lbnQoZXZlbnQuZGF0YSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRR
dWVyeTsKICAgICB9LAogCi0gICAgX3NldERvY3VtZW50OiBmdW5jdGlvbihpbnNwZWN0ZWRSb290
RG9jdW1lbnQpCisgICAgX2RvY3VtZW50VXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewor
ICAgICAgICB2YXIgaW5zcGVjdGVkUm9vdERvY3VtZW50ID0gZXZlbnQuZGF0YTsKKwogICAgICAg
ICB0aGlzLl9yZXNldCgpOwogICAgICAgICB0aGlzLnNlYXJjaENhbmNlbGVkKCk7CiAKQEAgLTIw
Niw4ICsxODgsNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGlmIChQcmVmZXJlbmNlcy5uYXRpdmVJbnN0cnVtZW50YXRpb25FbmFibGVkKQogICAg
ICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHMucmVzdG9yZUJyZWFrcG9p
bnRzKCk7CiAKLSAgICAgICAgdGhpcy5yb290RE9NTm9kZSA9IGluc3BlY3RlZFJvb3REb2N1bWVu
dDsKLQogICAgICAgICBmdW5jdGlvbiBzZWxlY3ROb2RlKGNhbmRpZGF0ZUZvY3VzTm9kZSkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVGb2N1c05vZGUpCkBAIC0zOTEsMTYg
KzM3MSw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgLy8gVE9ETzogSW1wbGVtZW50IFNoaWZ0aW5nIHRoZSBvbGRTZWxlY3RvciwgYW5kIGl0cyBj
b250ZW50cyB0byBhIG5ld1NlbGVjdG9yCiAgICAgfSwKIAotICAgIGdldCByb290RE9NTm9kZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50cmVlT3V0bGluZS5yb290RE9NTm9kZTsKLSAg
ICB9LAotCi0gICAgc2V0IHJvb3RET01Ob2RlKHgpCi0gICAgewotICAgICAgICB0aGlzLnRyZWVP
dXRsaW5lLnJvb3RET01Ob2RlID0geDsKLSAgICB9LAotCiAgICAgc2VsZWN0ZWRET01Ob2RlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy50cmVlT3V0bGluZS5zZWxlY3Rl
ZERPTU5vZGUoKTsKQEAgLTQxMSw5NiArMzgxLDE4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zZWxlY3RET01Ob2Rl
KG5vZGUsIGZvY3VzKTsKICAgICB9LAogCi0gICAgX2F0dHJpYnV0ZXNVcGRhdGVkOiBmdW5jdGlv
bihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzLnB1c2go
e25vZGU6IGV2ZW50LmRhdGEubm9kZSwgdXBkYXRlZDogdHJ1ZX0pOwotICAgICAgICBpZiAodGhp
cy52aXNpYmxlKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsK
LSAgICB9LAotCi0gICAgX2NoYXJhY3RlckRhdGFNb2RpZmllZDogZnVuY3Rpb24oZXZlbnQpCi0g
ICAgewotICAgICAgICB0aGlzLnJlY2VudGx5TW9kaWZpZWROb2Rlcy5wdXNoKHtub2RlOiBldmVu
dC5kYXRhLCB1cGRhdGVkOiB0cnVlfSk7Ci0gICAgICAgIGlmICh0aGlzLnZpc2libGUpCi0gICAg
ICAgICAgICB0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzU29vbigpOwotICAgIH0sCi0KLSAgICBf
bm9kZUluc2VydGVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMucmVjZW50
bHlNb2RpZmllZE5vZGVzLnB1c2goe25vZGU6IGV2ZW50LmRhdGEsIHBhcmVudDogZXZlbnQuZGF0
YS5wYXJlbnROb2RlLCBpbnNlcnRlZDogdHJ1ZX0pOwotICAgICAgICBpZiAodGhpcy52aXNpYmxl
KQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKLSAgICB9LAot
CiAgICAgX25vZGVSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMu
cmVjZW50bHlNb2RpZmllZE5vZGVzLnB1c2goe25vZGU6IGV2ZW50LmRhdGEubm9kZSwgcGFyZW50
OiBldmVudC5kYXRhLnBhcmVudCwgcmVtb3ZlZDogdHJ1ZX0pOwotICAgICAgICBpZiAodGhpcy52
aXNpYmxlKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKLSAg
ICB9LAotCi0gICAgX2NoaWxkTm9kZUNvdW50VXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAg
ewotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxl
bWVudChldmVudC5kYXRhKTsKLSAgICAgICAgaWYgKHRyZWVFbGVtZW50KQotICAgICAgICAgICAg
dHJlZUVsZW1lbnQuaGFzQ2hpbGRyZW4gPSBldmVudC5kYXRhLmhhc0NoaWxkTm9kZXMoKTsKLSAg
ICB9LAotCi0gICAgX2luc3BlY3RFbGVtZW50UmVxdWVzdGVkOiBmdW5jdGlvbihldmVudCkKLSAg
ICB7Ci0gICAgICAgIHZhciBub2RlID0gZXZlbnQuZGF0YTsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LnVwZGF0ZUZvY3VzZWROb2RlKG5vZGUuaWQpOwotICAgIH0sCi0KLSAgICBfdXBkYXRlTW9kaWZp
ZWROb2Rlc1Nvb246IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICgiX3VwZGF0ZU1vZGlm
aWVkTm9kZXNUaW1lb3V0IiBpbiB0aGlzKQorICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVv
dXQgPSBzZXRUaW1lb3V0KHRoaXMudXBkYXRlTW9kaWZpZWROb2Rlcy5iaW5kKHRoaXMpLCAwKTsK
LSAgICB9LAogCi0gICAgdXBkYXRlTW9kaWZpZWROb2RlczogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgaWYgKCJfdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQiIGluIHRoaXMpIHsKLSAgICAg
ICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzVGltZW91dCk7Ci0g
ICAgICAgICAgICBkZWxldGUgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQ7Ci0gICAg
ICAgIH0KLQotICAgICAgICB2YXIgdXBkYXRlZFBhcmVudFRyZWVFbGVtZW50cyA9IFtdOwotICAg
ICAgICB2YXIgdXBkYXRlQnJlYWRjcnVtYnMgPSBmYWxzZTsKLQotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5yZWNlbnRseU1vZGlmaWVkTm9kZXNbaV0ucGFyZW50
OwotICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5u
b2RlOwotCi0gICAgICAgICAgICBpZiAodGhpcy5yZWNlbnRseU1vZGlmaWVkTm9kZXNbaV0udXBk
YXRlZCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlSXRlbSA9IHRoaXMudHJlZU91dGxpbmUu
ZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAgICAgICAgICAgIGlmIChub2RlSXRlbSkKLSAg
ICAgICAgICAgICAgICAgICAgbm9kZUl0ZW0udXBkYXRlVGl0bGUoKTsKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFwYXJlbnQpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHZhciBwYXJlbnROb2RlSXRl
bSA9IHRoaXMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHBhcmVudCk7Ci0gICAgICAgICAg
ICBpZiAocGFyZW50Tm9kZUl0ZW0gJiYgIXBhcmVudE5vZGVJdGVtLmFscmVhZHlVcGRhdGVkQ2hp
bGRyZW4pIHsKLSAgICAgICAgICAgICAgICBwYXJlbnROb2RlSXRlbS51cGRhdGVDaGlsZHJlbigp
OwotICAgICAgICAgICAgICAgIHBhcmVudE5vZGVJdGVtLmFscmVhZHlVcGRhdGVkQ2hpbGRyZW4g
PSB0cnVlOwotICAgICAgICAgICAgICAgIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMucHVzaChw
YXJlbnROb2RlSXRlbSk7CisgICAgICAgIHZhciBjcnVtYnMgPSB0aGlzLmNydW1ic0VsZW1lbnQ7
CisgICAgICAgIGZvciAodmFyIGNydW1iID0gY3J1bWJzLmZpcnN0Q2hpbGQ7IGNydW1iOyBjcnVt
YiA9IGNydW1iLm5leHRTaWJsaW5nKSB7CisgICAgICAgICAgICBpZiAoY3J1bWIucmVwcmVzZW50
ZWRPYmplY3QgPT09IGV2ZW50LmRhdGEubm9kZSkgeworICAgICAgICAgICAgICAgIHRoaXMudXBk
YXRlQnJlYWRjcnVtYih0cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGlmICghdXBkYXRlQnJlYWRjcnVtYnMgJiYgKHRoaXMuc2VsZWN0
ZWRET01Ob2RlKCkgPT09IHBhcmVudCB8fCAodGhpcy5zZWxlY3RlZERPTU5vZGUoKSAmJiB0aGlz
LnNlbGVjdGVkRE9NTm9kZSgpLmlzQW5jZXN0b3IocGFyZW50KSkpKQotICAgICAgICAgICAgICAg
IHVwZGF0ZUJyZWFkY3J1bWJzID0gdHJ1ZTsKICAgICAgICAgfQotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdXBkYXRlZFBhcmVudFRyZWVFbGVtZW50cy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIGRlbGV0ZSB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzW2ldLmFscmVhZHlVcGRhdGVk
Q2hpbGRyZW47Ci0KLSAgICAgICAgdGhpcy5yZWNlbnRseU1vZGlmaWVkTm9kZXMgPSBbXTsKLQot
ICAgICAgICBpZiAodXBkYXRlQnJlYWRjcnVtYnMpCi0gICAgICAgICAgICB0aGlzLnVwZGF0ZUJy
ZWFkY3J1bWIodHJ1ZSk7CiAgICAgfSwKIAogICAgIF9zdHlsZXNQYW5lRWRpdGVkOiBmdW5jdGlv
bigpCkBAIC01NTIsNyArNDQ0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgZm91bmRSb290ID0gZmFsc2U7CiAgICAgICAgIHZhciBjcnVt
YiA9IGNydW1icy5maXJzdENoaWxkOwogICAgICAgICB3aGlsZSAoY3J1bWIpIHsKLSAgICAgICAg
ICAgIGlmIChjcnVtYi5yZXByZXNlbnRlZE9iamVjdCA9PT0gdGhpcy5yb290RE9NTm9kZSkKKyAg
ICAgICAgICAgIGlmIChjcnVtYi5yZXByZXNlbnRlZE9iamVjdCA9PT0gdGhpcy50cmVlT3V0bGlu
ZS5yb290RE9NTm9kZSkKICAgICAgICAgICAgICAgICBmb3VuZFJvb3QgPSB0cnVlOwogCiAgICAg
ICAgICAgICBpZiAoZm91bmRSb290KQpAQCAtNjAxLDEyICs0OTMsNiBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAgICAgcGFuZWwudXBkYXRlQnJlYWRjcnVtYlNpemVzKGNydW1iKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gQ2xpY2tpbmcgYSBkaW1tZWQgY3J1bWIgb3Ig
ZG91YmxlIGNsaWNraW5nIChldmVudC5kZXRhaWwgPj0gMikKLSAgICAgICAgICAgICAgICAvLyB3
aWxsIGNoYW5nZSB0aGUgcm9vdCBub2RlIGluIGFkZGl0aW9uIHRvIHRoZSBmb2N1c2VkIG5vZGUu
Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbCA+PSAyIHx8IGNydW1iLmhhc1N0eWxl
Q2xhc3MoImRpbW1lZCIpKQotICAgICAgICAgICAgICAgICAgICBwYW5lbC5yb290RE9NTm9kZSA9
IGNydW1iLnJlcHJlc2VudGVkT2JqZWN0LnBhcmVudE5vZGU7Ci0gICAgICAgICAgICAgICAgcGFu
ZWwuc2VsZWN0RE9NTm9kZShjcnVtYi5yZXByZXNlbnRlZE9iamVjdCwgdHJ1ZSk7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CkBAIC02MTcsNyAr
NTAzLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgaWYgKGN1cnJlbnQubm9kZVR5cGUoKSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gdGhp
cy5yb290RE9NTm9kZSkKKyAgICAgICAgICAgIGlmIChjdXJyZW50ID09PSB0aGlzLnRyZWVPdXRs
aW5lLnJvb3RET01Ob2RlKQogICAgICAgICAgICAgICAgIGZvdW5kUm9vdCA9IHRydWU7CiAKICAg
ICAgICAgICAgIHZhciBjcnVtYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVl
T3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qcwppbmRleCA0M2I4ZWI5M2ZlNDBiYzU3YTAyZmU0ZWIwMGEzZWFiZjg0YWRk
MTgxLi45YmMzZmQ1YWJkNmExODVjNGNhMTk0YWRmODI2MjExMjBlYzhlNjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCkBAIC0yOCw3ICsyOCwxNSBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSA9IGZ1bmN0aW9uKCkgeworLyoqCisgKiBAY29uc3Ry
dWN0b3IKKyAqIEBleHRlbmRzIHtUcmVlT3V0bGluZX0KKyAqIEBwYXJhbSB7Ym9vbGVhbj19IG9t
aXRSb290RE9NTm9kZQorICogQHBhcmFtIHtib29sZWFuPX0gc2VsZWN0RW5hYmxlZAorICogQHBh
cmFtIHtib29sZWFuPX0gc2hvd0luRWxlbWVudHNQYW5lbEVuYWJsZWQKKyAqLworV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZU91dGxpbmUgPSBmdW5jdGlvbihvbWl0Um9vdERPTU5vZGUsIHNlbGVj
dEVuYWJsZWQsIHNob3dJbkVsZW1lbnRzUGFuZWxFbmFibGVkKQorewogICAgIHRoaXMuZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CiAgICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX29ubW91c2Vkb3duLmJpbmQodGhpcyksIGZh
bHNlKTsKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhp
cy5fb25tb3VzZW1vdmUuYmluZCh0aGlzKSwgZmFsc2UpOwpAQCAtNDEsMTUgKzQ5LDUzIEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lID0gZnVuY3Rpb24oKSB7CiAKICAgICBUcmVl
T3V0bGluZS5jYWxsKHRoaXMsIHRoaXMuZWxlbWVudCk7CiAKLSAgICB0aGlzLmluY2x1ZGVSb290
RE9NTm9kZSA9IHRydWU7Ci0gICAgdGhpcy5zZWxlY3RFbmFibGVkID0gZmFsc2U7Ci0gICAgdGhp
cy5zaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCA9IGZhbHNlOwotICAgIHRoaXMucm9vdERPTU5v
ZGUgPSBudWxsOworICAgIHRoaXMuX2luY2x1ZGVSb290RE9NTm9kZSA9ICFvbWl0Um9vdERPTU5v
ZGU7CisgICAgdGhpcy5fc2VsZWN0RW5hYmxlZCA9IHNlbGVjdEVuYWJsZWQ7CisgICAgdGhpcy5f
c2hvd0luRWxlbWVudHNQYW5lbEVuYWJsZWQgPSBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZDsK
KyAgICB0aGlzLl9yb290RE9NTm9kZSA9IG51bGw7CiAgICAgdGhpcy5fc2VsZWN0RE9NTm9kZSA9
IG51bGw7CisgICAgdGhpcy5fZXZlbnRTdXBwb3J0ID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3Qo
KTsKKyAgICB0aGlzLl9lZGl0aW5nID0gZmFsc2U7CisKKyAgICB0aGlzLl92aXNpYmxlID0gZmFs
c2U7CisKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0
aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiB9CiAKK1dlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLkV2ZW50cyA9IHsKKyAgICBTZWxlY3RlZE5vZGVD
aGFuZ2VkOiAiU2VsZWN0ZWROb2RlQ2hhbmdlZCIKK30KKwogV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlID0geworICAgIHdpcmVUb0RvbUFnZW50OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICB0aGlzLl9lbGVtZW50c1RyZWVVcGRhdGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVVcGRhdGVyKHRoaXMpOworICAgIH0sCisKKyAgICBzZXRWaXNpYmxl
OiBmdW5jdGlvbih2aXNpYmxlKQorICAgIHsKKyAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2li
bGU7CisgICAgICAgIGlmICghdGhpcy5fdmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoIXRoaXMucm9vdERPTU5vZGUpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICB9LAorCisg
ICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlLCBsaXN0ZW5lciwgdGhpc09i
amVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2V2ZW50U3VwcG9ydC5hZGRFdmVudExpc3RlbmVy
KGV2ZW50VHlwZSwgbGlzdGVuZXIsIHRoaXNPYmplY3QpOworICAgIH0sCisKKyAgICByZW1vdmVF
dmVudExpc3RlbmVyOiBmdW5jdGlvbihldmVudFR5cGUsIGxpc3RlbmVyLCB0aGlzT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgdGhpcy5fZXZlbnRTdXBwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnRUeXBlLCBsaXN0ZW5lciwgdGhpc09iamVjdCk7CisgICAgfSwKKwogICAgIGdldCByb290RE9N
Tm9kZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fcm9vdERPTU5vZGU7CkBAIC05NCwx
MCArMTQwLDEwIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICAvLyBUaGUgX3JldmVhbEFuZFNlbGVjdE5vZGUoKSBtZXRob2QgbWlnaHQg
ZmluZCBhIGRpZmZlcmVudCBlbGVtZW50IGlmIHRoZXJlIGlzIGlubGluZWQgdGV4dCwKICAgICAg
ICAgLy8gYW5kIHRoZSBzZWxlY3QoKSBjYWxsIHdvdWxkIGNoYW5nZSB0aGUgc2VsZWN0ZWRET01O
b2RlIGFuZCByZWVudGVyIHRoaXMgc2V0dGVyLiBTbyB0bwotICAgICAgICAvLyBhdm9pZCBjYWxs
aW5nIHNlbGVjdGVkTm9kZUNoYW5nZWQoKSB0d2ljZSwgZmlyc3QgY2hlY2sgaWYgX3NlbGVjdGVk
RE9NTm9kZSBpcyB0aGUgc2FtZQorICAgICAgICAvLyBhdm9pZCBjYWxsaW5nIF9zZWxlY3RlZE5v
ZGVDaGFuZ2VkKCkgdHdpY2UsIGZpcnN0IGNoZWNrIGlmIF9zZWxlY3RlZERPTU5vZGUgaXMgdGhl
IHNhbWUKICAgICAgICAgLy8gbm9kZSBhcyB0aGUgb25lIHBhc3NlZCBpbi4KICAgICAgICAgaWYg
KHRoaXMuX3NlbGVjdGVkRE9NTm9kZSA9PT0gbm9kZSkKLSAgICAgICAgICAgIHRoaXMuc2VsZWN0
ZWROb2RlQ2hhbmdlZCgpOworICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCgp
OwogICAgIH0sCiAKICAgICBnZXQgZWRpdGluZygpCkBAIC0xMTUsMTYgKzE2MSwxNiBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgdmFyIHRyZWVFbGVtZW50OwotICAgICAgICBpZiAodGhpcy5pbmNs
dWRlUm9vdERPTU5vZGUpIHsKKyAgICAgICAgaWYgKHRoaXMuX2luY2x1ZGVSb290RE9NTm9kZSkg
ewogICAgICAgICAgICAgdHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQodGhpcy5yb290RE9NTm9kZSk7Ci0gICAgICAgICAgICB0cmVlRWxlbWVudC5zZWxl
Y3RhYmxlID0gdGhpcy5zZWxlY3RFbmFibGVkOworICAgICAgICAgICAgdHJlZUVsZW1lbnQuc2Vs
ZWN0YWJsZSA9IHRoaXMuX3NlbGVjdEVuYWJsZWQ7CiAgICAgICAgICAgICB0aGlzLmFwcGVuZENo
aWxkKHRyZWVFbGVtZW50KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiB0aGlzIGNvdWxkIHVzZSBmaW5kVHJlZUVsZW1lbnQgdG8gcmV1c2UgYSB0cmVlIGVsZW1lbnQg
aWYgaXQgYWxyZWFkeSBleGlzdHMKICAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5yb290RE9N
Tm9kZS5maXJzdENoaWxkOwogICAgICAgICAgICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICAgICAg
ICAgICB0cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudChu
b2RlKTsKLSAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5zZWxlY3RhYmxlID0gdGhpcy5zZWxl
Y3RFbmFibGVkOworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LnNlbGVjdGFibGUgPSB0aGlz
Ll9zZWxlY3RFbmFibGVkOwogICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJlZUVs
ZW1lbnQpOwogICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICAg
ICAgICAgfQpAQCAtMTQyLDcgKzE4OCwxMCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0
bGluZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGVsZW1lbnQudXBkYXRlU2VsZWN0aW9uKCk7CiAg
ICAgfSwKIAotICAgIHNlbGVjdGVkTm9kZUNoYW5nZWQ6IGZ1bmN0aW9uKGZvcmNlVXBkYXRlKSB7
fSwKKyAgICBfc2VsZWN0ZWROb2RlQ2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dGhpcy5fZXZlbnRTdXBwb3J0LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlT3V0bGluZS5FdmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCk7CisgICAgfSwK
IAogICAgIGZpbmRUcmVlRWxlbWVudDogZnVuY3Rpb24obm9kZSkKICAgICB7CkBAIC0xNTAsNiAr
MTk5LDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFuY2VzdG9yLmlzQW5jZXN0b3Iobm9kZSk7
CiAgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwYXJlbnROb2RlKG5vZGUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7CisgICAgICAgIH0KKwogICAg
ICAgICB2YXIgdHJlZUVsZW1lbnQgPSBUcmVlT3V0bGluZS5wcm90b3R5cGUuZmluZFRyZWVFbGVt
ZW50LmNhbGwodGhpcywgbm9kZSwgaXNBbmNlc3Rvck5vZGUsIHBhcmVudE5vZGUpOwogICAgICAg
ICBpZiAoIXRyZWVFbGVtZW50ICYmIG5vZGUubm9kZVR5cGUoKSA9PT0gTm9kZS5URVhUX05PREUp
IHsKICAgICAgICAgICAgIC8vIFRoZSB0ZXh0IG5vZGUgbWlnaHQgaGF2ZSBiZWVuIGlubGluZWQg
aWYgaXQgd2FzIHNob3J0LCBzbyB0cnkgdG8gZmluZCB0aGUgcGFyZW50IGVsZW1lbnQuCkBAIC0x
NjcsNyArMjIyLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBl
ID0gewogICAgICAgICBpZiAoIW5vZGUucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxsOwogCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuY3JlYXRlVHJlZUVsZW1lbnRG
b3Iobm9kZS5wYXJlbnROb2RlKTsKKyAgICAgICAgdHJlZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVRy
ZWVFbGVtZW50Rm9yKG5vZGUucGFyZW50Tm9kZSk7CiAgICAgICAgIGlmICh0cmVlRWxlbWVudCAm
JiB0cmVlRWxlbWVudC5zaG93Q2hpbGQobm9kZS5pbmRleCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJlZUVsZW1lbnQuY2hpbGRyZW5bbm9kZS5pbmRleF07CiAKQEAgLTM1NSw3ICs0MTAsNyBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMo
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzKCk7CiAgICAgICAg
ICAgICAgICAgdmFyIG5ld05vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5l
d05vZGVJZCk7CiAgICAgICAgICAgICAgICAgaWYgKG5ld05vZGUpCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuc2VsZWN0RE9NTm9kZShuZXdOb2RlLCB0cnVlKTsKQEAgLTM4NCw3ICs0MzksNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAKICAgICBf
Y29udGV4dE1lbnVFdmVudEZpcmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy5zaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCkKKyAgICAgICAgaWYgKCF0aGlzLl9z
aG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudEZyb21FdmVudChldmVudCk7CkBA
IC00MjYsMTEgKzQ4MSwyMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90
b3R5cGUgPSB7CiAKICAgICBhZGp1c3RDb2xsYXBzZWRSYW5nZTogZnVuY3Rpb24oKQogICAgIHsK
KyAgICB9LAorCisgICAgX3VwZGF0ZU1vZGlmaWVkTm9kZXM6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9lbGVtZW50c1RyZWVVcGRhdGVyKQorICAgICAgICAgICAgdGhpcy5f
ZWxlbWVudHNUcmVlVXBkYXRlci5fdXBkYXRlTW9kaWZpZWROb2RlcygpOwogICAgIH0KIH0KIAog
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFRy
ZWVPdXRsaW5lLnByb3RvdHlwZTsKIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRz
IHtUcmVlRWxlbWVudH0KKyAqIEBwYXJhbSB7Ym9vbGVhbj19IGVsZW1lbnRDbG9zZVRhZworICov
CiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUsIGVsZW1l
bnRDbG9zZVRhZykKIHsKICAgICB0aGlzLl9lbGVtZW50Q2xvc2VUYWcgPSBlbGVtZW50Q2xvc2VU
YWc7CkBAIC02NzksNyArNzQ1LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQu
cHJvdG90eXBlID0gewogICAgIGluc2VydENoaWxkRWxlbWVudDogZnVuY3Rpb24oY2hpbGQsIGlu
ZGV4LCBjbG9zaW5nVGFnKQogICAgIHsKICAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSBuZXcgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQoY2hpbGQsIGNsb3NpbmdUYWcpOwotICAgICAg
ICBuZXdFbGVtZW50LnNlbGVjdGFibGUgPSB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdEVuYWJsZWQ7
CisgICAgICAgIG5ld0VsZW1lbnQuc2VsZWN0YWJsZSA9IHRoaXMudHJlZU91dGxpbmUuX3NlbGVj
dEVuYWJsZWQ7CiAgICAgICAgIHRoaXMuaW5zZXJ0Q2hpbGQobmV3RWxlbWVudCwgaW5kZXgpOwog
ICAgICAgICByZXR1cm4gbmV3RWxlbWVudDsKICAgICB9LApAQCAtODg5LDkgKzk1NSw5IEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KHRoaXMuX2VkaXRpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMu
dHJlZU91dGxpbmUuc2hvd0luRWxlbWVudHNQYW5lbEVuYWJsZWQpIHsKKyAgICAgICAgaWYgKHRo
aXMudHJlZU91dGxpbmUuX3Nob3dJbkVsZW1lbnRzUGFuZWxFbmFibGVkKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5zZWxlY3RET01Ob2RlKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QsIHRydWUpOworICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKHRo
aXMucmVwcmVzZW50ZWRPYmplY3QsIHRydWUpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gUHJl
dmVudCBzZWxlY3RpbmcgdGhlIG5lYXJlc3Qgd29yZCBvbiBkb3VibGUgY2xpY2suCkBAIC0xMTY4
LDcgKzEyMzQsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgZnVuY3Rpb24gZGlzcG9zZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGRlbGV0ZSB0aGlzLl9lZGl0aW5nOworICAgICAgICAgICAgdGhpcy5fZWRpdGluZyA9IGZhbHNl
OwogCiAgICAgICAgICAgICAvLyBSZW1vdmUgZWRpdG9yLgogICAgICAgICAgICAgdGhpcy5saXN0
SXRlbUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5faHRtbEVkaXRFbGVtZW50KTsKQEAgLTExOTYs
OCArMTI2Miw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKIAogICAgIF9hdHRyaWJ1dGVFZGl0aW5nQ29tbWl0dGVkOiBmdW5jdGlvbihlbGVtZW50LCBu
ZXdUZXh0LCBvbGRUZXh0LCBhdHRyaWJ1dGVOYW1lLCBtb3ZlRGlyZWN0aW9uKQogICAgIHsKLSAg
ICAgICAgZGVsZXRlIHRoaXMuX2VkaXRpbmc7CisgICAgICAgIHRoaXMuX2VkaXRpbmcgPSBmYWxz
ZTsKIAorICAgICAgICB2YXIgdHJlZU91dGxpbmUgPSB0aGlzLnRyZWVPdXRsaW5lOwogICAgICAg
ICBmdW5jdGlvbiBtb3ZlVG9OZXh0QXR0cmlidXRlSWZOZWVkZWQoZXJyb3IpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmIChlcnJvcikKQEAgLTEyMDYsNyArMTI3Myw3IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghbW92
ZURpcmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudXBkYXRlTW9kaWZpZWROb2RlcygpOworICAgICAgICAg
ICAgdHJlZU91dGxpbmUuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKIAogICAgICAgICAgICAgLy8g
U2VhcmNoIGZvciB0aGUgYXR0cmlidXRlJ3MgcG9zaXRpb24sIGFuZCB0aGVuIGRlY2lkZSB3aGVy
ZSB0byBtb3ZlIHRvLgogICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LmF0dHJpYnV0ZXMoKTsKQEAgLTEyNTIsNyArMTMxOSw3IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIF90YWdOYW1lRWRpdGlu
Z0NvbW1pdHRlZDogZnVuY3Rpb24oZWxlbWVudCwgbmV3VGV4dCwgb2xkVGV4dCwgdGFnTmFtZSwg
bW92ZURpcmVjdGlvbikKICAgICB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0aW5nOworICAg
ICAgICB0aGlzLl9lZGl0aW5nID0gZmFsc2U7CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKIAog
ICAgICAgICBmdW5jdGlvbiBjYW5jZWwoKQpAQCAtMTI5Niw3ICsxMzYzLDcgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAvLyBTZWxlY3QgaXQgYW5kIGV4cGFuZCBpZiBuZWNlc3NhcnkuIFdlIGZvcmNl
IHRyZWUgdXBkYXRlIHNvIHRoYXQgaXQgcHJvY2Vzc2VzIGRvbSBldmVudHMgYW5kIGlzIHVwIHRv
IGRhdGUuCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1v
ZGlmaWVkTm9kZXMoKTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5v
ZGVzKCk7CiAKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2Rl
SWQpOwogICAgICAgICAgICAgdmFyIG5ld1RyZWVJdGVtID0gdHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobm9kZUlkKSk7CkBAIC0xMzEx
LDcgKzEzNzgsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAKICAgICBfdGV4dE5vZGVFZGl0aW5nQ29tbWl0dGVkOiBmdW5jdGlvbihlbGVtZW50LCBu
ZXdUZXh0KQogICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2VkaXRpbmc7CisgICAgICAgIHRo
aXMuX2VkaXRpbmcgPSBmYWxzZTsKIAogICAgICAgICB2YXIgdGV4dE5vZGU7CiAgICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT09IE5vZGUuRUxFTUVOVF9OT0RF
KSB7CkBAIC0xMzI2LDcgKzEzOTMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAKICAgICBfZWRpdGluZ0NhbmNlbGxlZDogZnVuY3Rpb24oZWxlbWVu
dCwgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0aW5nOworICAgICAg
ICB0aGlzLl9lZGl0aW5nID0gZmFsc2U7CiAKICAgICAgICAgLy8gTmVlZCB0byByZXN0b3JlIGF0
dHJpYnV0ZXMgc3RydWN0dXJlLgogICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7CkBAIC0xNTgw
LDcgKzE2NDcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAvLyBTZWxlY3QgaXQg
YW5kIGV4cGFuZCBpZiBuZWNlc3NhcnkuIFdlIGZvcmNlIHRyZWUgdXBkYXRlIHNvIHRoYXQgaXQg
cHJvY2Vzc2VzIGRvbSBldmVudHMgYW5kIGlzIHVwIHRvIGRhdGUuCi0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICAgICAg
ICAgIHRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5vZGVzKCk7CiAKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2RlSWQpOwogICAgICAgICAgICAgaWYgKHdh
c0V4cGFuZGVkKSB7CkBAIC0xNjMzLDMgKzE3MDAsMTI4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFRyZWVFbGVtZW50LnByb3RvdHlwZTsKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZVVwZGF0
ZXIgPSBmdW5jdGlvbih0cmVlT3V0bGluZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVJbnNlcnRl
ZCwgdGhpcy5fbm9kZUluc2VydGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVk
LCB0aGlzLl9ub2RlUmVtb3ZlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQs
IHRoaXMuX2F0dHJpYnV0ZXNVcGRhdGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZG9tQWdl
bnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJSZW1v
dmVkLCB0aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRv
bUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5DaGFy
YWN0ZXJEYXRhTW9kaWZpZWQsIHRoaXMuX2NoYXJhY3RlckRhdGFNb2RpZmllZCwgdGhpcyk7Cisg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRP
TUFnZW50LkV2ZW50cy5Eb2N1bWVudFVwZGF0ZWQsIHRoaXMuX2RvY3VtZW50VXBkYXRlZCwgdGhp
cyk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRPTUFnZW50LkV2ZW50cy5DaGlsZE5vZGVDb3VudFVwZGF0ZWQsIHRoaXMuX2NoaWxkTm9k
ZUNvdW50VXBkYXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5JbnNwZWN0RWxlbWVudFJlcXVl
c3RlZCwgdGhpcy5faW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQsIHRoaXMpOworCisgICAgdGhpcy5f
dHJlZU91dGxpbmUgPSB0cmVlT3V0bGluZTsKKyAgICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9k
ZXMgPSBbXTsKK30KKworV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZVVwZGF0ZXIucHJvdG90eXBl
ID0geworICAgIF9kb2N1bWVudFVwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdmFyIGluc3BlY3RlZFJvb3REb2N1bWVudCA9IGV2ZW50LmRhdGE7CisKKyAgICAgICAgdGhp
cy5fcmVzZXQoKTsKKworICAgICAgICBpZiAoIWluc3BlY3RlZFJvb3REb2N1bWVudCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5yb290RE9NTm9kZSA9
IGluc3BlY3RlZFJvb3REb2N1bWVudDsKKyAgICB9LAorCisgICAgX2F0dHJpYnV0ZXNVcGRhdGVk
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWRO
b2Rlcy5wdXNoKHtub2RlOiBldmVudC5kYXRhLm5vZGUsIHVwZGF0ZWQ6IHRydWV9KTsKKyAgICAg
ICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lLl92aXNpYmxlKQorICAgICAgICAgICAgdGhpcy5fdXBk
YXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKKyAgICB9LAorCisgICAgX2NoYXJhY3RlckRhdGFNb2Rp
ZmllZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWNlbnRseU1vZGlm
aWVkTm9kZXMucHVzaCh7bm9kZTogZXZlbnQuZGF0YSwgdXBkYXRlZDogdHJ1ZX0pOworICAgICAg
ICBpZiAodGhpcy5fdHJlZU91dGxpbmUuX3Zpc2libGUpCisgICAgICAgICAgICB0aGlzLl91cGRh
dGVNb2RpZmllZE5vZGVzU29vbigpOworICAgIH0sCisKKyAgICBfbm9kZUluc2VydGVkOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5w
dXNoKHtub2RlOiBldmVudC5kYXRhLCBwYXJlbnQ6IGV2ZW50LmRhdGEucGFyZW50Tm9kZSwgaW5z
ZXJ0ZWQ6IHRydWV9KTsKKyAgICAgICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lLl92aXNpYmxlKQor
ICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKKyAgICB9LAorCisg
ICAgX25vZGVSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jl
Y2VudGx5TW9kaWZpZWROb2Rlcy5wdXNoKHtub2RlOiBldmVudC5kYXRhLm5vZGUsIHBhcmVudDog
ZXZlbnQuZGF0YS5wYXJlbnQsIHJlbW92ZWQ6IHRydWV9KTsKKyAgICAgICAgaWYgKHRoaXMuX3Ry
ZWVPdXRsaW5lLl92aXNpYmxlKQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rl
c1Nvb24oKTsKKyAgICB9LAorCisgICAgX2NoaWxkTm9kZUNvdW50VXBkYXRlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQoZXZlbnQuZGF0YSk7CisgICAgICAgIGlmICh0cmVlRWxlbWVudCkK
KyAgICAgICAgICAgIHRyZWVFbGVtZW50Lmhhc0NoaWxkcmVuID0gZXZlbnQuZGF0YS5oYXNDaGls
ZE5vZGVzKCk7CisgICAgfSwKKworICAgIF9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZDogZnVuY3Rp
b24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGE7CisgICAgICAg
IFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2RlLmlkKTsKKyAgICB9LAorCisgICAg
X3VwZGF0ZU1vZGlmaWVkTm9kZXNTb29uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlz
Ll91cGRhdGVNb2RpZmllZE5vZGVzLmJpbmQodGhpcyksIDApOworICAgIH0sCisKKyAgICBfdXBk
YXRlTW9kaWZpZWROb2RlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3Vw
ZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0KSB7CisgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhp
cy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQpOworICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHVw
ZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMgPSBbXTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgdmFyIHBhcmVudCA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5wYXJlbnQ7Cisg
ICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5ub2Rl
OworCisgICAgICAgICAgICBpZiAodGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVzW2ldLnVwZGF0
ZWQpIHsKKyAgICAgICAgICAgICAgICB2YXIgbm9kZUl0ZW0gPSB0aGlzLl90cmVlT3V0bGluZS5m
aW5kVHJlZUVsZW1lbnQobm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKG5vZGVJdGVtKQorICAg
ICAgICAgICAgICAgICAgICBub2RlSXRlbS51cGRhdGVUaXRsZSgpOworICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXBhcmVudCkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgdmFyIHBhcmVudE5vZGVJdGVt
ID0gdGhpcy5fdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHBhcmVudCk7CisgICAgICAgICAg
ICBpZiAocGFyZW50Tm9kZUl0ZW0gJiYgIXBhcmVudE5vZGVJdGVtLmFscmVhZHlVcGRhdGVkQ2hp
bGRyZW4pIHsKKyAgICAgICAgICAgICAgICBwYXJlbnROb2RlSXRlbS51cGRhdGVDaGlsZHJlbigp
OworICAgICAgICAgICAgICAgIHBhcmVudE5vZGVJdGVtLmFscmVhZHlVcGRhdGVkQ2hpbGRyZW4g
PSB0cnVlOworICAgICAgICAgICAgICAgIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMucHVzaChw
YXJlbnROb2RlSXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBkZWxldGUgdXBkYXRlZFBhcmVudFRyZWVFbGVtZW50c1tpXS5hbHJlYWR5VXBk
YXRlZENoaWxkcmVuOworCisgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2RlcyA9IFtd
OworICAgIH0sCisKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3RyZWVPdXRsaW5lLnJvb3RET01Ob2RlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fdHJlZU91dGxp
bmUuc2VsZWN0RE9NTm9kZShudWxsLCBmYWxzZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5oaWdo
bGlnaHRET01Ob2RlKDApOworICAgICAgICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXMgPSBb
XTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2V4dGVybnMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVy
bnMuanMKaW5kZXggNGUyYjg3MDI5YWJiOWI2NGY0YjYyNjg5MjczOTE2YTAzYzRkYjMxZi4uYjUy
MjJkMTc4MDBlOGIyYjQyNzUxMTMxYjBiN2Q1Y2RkNmY3ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwpAQCAtMTA4LDEwICsxMDgsMTIgQEAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSB7CiAvKioKICAqIEBjb25z
dHJ1Y3RvcgogICogQGV4dGVuZHMge1RyZWVPdXRsaW5lfQorICogQHBhcmFtIHtib29sZWFuPX0g
b21pdFJvb3RET01Ob2RlCisgKiBAcGFyYW0ge2Jvb2xlYW49fSBzZWxlY3RFbmFibGVkCisgKiBA
cGFyYW0ge2Jvb2xlYW49fSBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZAogICovCi1XZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVPdXRsaW5lID0gZnVuY3Rpb24ob21pdFJvb3RET01Ob2RlLCBzZWxlY3RFbmFibGVk
LCBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCkKIHsKLSAgICB0aGlzLmVsZW1lbnQgPSBudWxs
OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGls
aXRpZXMuanMKaW5kZXggZmVhNTBlMDZkZTYwM2UxOGMzNzlkOTc3MGZhZTE3ZTRlZmZkZDQwMC4u
MDAzZjE3YjNhMGIxYTZlMGQ5MTUyMDIzMDIzMTYxM2U0NTNjNzI3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTUyNCwxMSArNTI0
LDYgQEAgTm9kZS5wcm90b3R5cGUudHJhdmVyc2VQcmV2aW91c05vZGUgPSBmdW5jdGlvbihzdGF5
V2l0aGluKQogICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7CiB9CiAKLXdpbmRvdy5wYXJlbnRO
b2RlID0gZnVuY3Rpb24obm9kZSkKLXsKLSAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlOwotfQot
CiBOdW1iZXIuY29uc3RyYWluID0gZnVuY3Rpb24obnVtLCBtaW4sIG1heCkKIHsKICAgICBpZiAo
bnVtIDwgbWluKQo=
</data>
<flag name="review"
          id="107119"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>