<?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>110204</bug_id>
          
          <creation_ts>2013-02-19 03:45:51 -0800</creation_ts>
          <short_desc>Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.</short_desc>
          <delta_ts>2013-02-19 07:01:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836200</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-19 03:45:51 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836205</commentid>
    <comment_count>1</comment_count>
      <attachid>189046</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-19 03:58:04 -0800</bug_when>
    <thetext>Created attachment 189046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836352</commentid>
    <comment_count>2</comment_count>
      <attachid>189046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 07:01:21 -0800</bug_when>
    <thetext>Comment on attachment 189046
Patch

Clearing flags on attachment: 189046

Committed r143327: &lt;http://trac.webkit.org/changeset/143327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836353</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 07:01:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189046</attachid>
            <date>2013-02-19 03:58:04 -0800</date>
            <delta_ts>2013-02-19 07:01:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110204-20130219155425.patch</filename>
            <type>text/plain</type>
            <size>29207</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFkMjBjNzg0YjM2MjQw
ZTgwNDNmMTIwYjQ2NDc3NmEwOGMxMDE4NC4uMTc0OTdiODZmMjhhM2YzNWM5ODRmOTEyNzVkM2Rl
Mjk3Nzc4YTNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IERlY291cGxlIHZhcmlvdXMgZmlsZSBzeXN0ZW0gcHJvamVjdCBpbXBsZW1lbnRhdGlvbiBw
YXJ0cyBmb3IgYmV0dGVyIHRlc3RhYmlsaXR5IGFuZCBjb3ZlciB3aXRoIHRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjA0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0cmFjdGVkIEZpbGVT
eXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciBmcm9tIElzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgdG8g
dGFrZSBjYXJlIG9mIG1hbmFnaW5nIHdvcmtzcGFjZSBwcm9qZWN0cyBhbmQgcHJvamVjdERlbGVn
YXRlcy4KKyAgICAgICAgUmVwbGFjZWQgRmlsZU1hcHBpbmcudXJsRm9yVVJJIHdpdGggdXJsRm9y
UGF0aCBtZXRob2QgdGhhdCBkb2VzIG5vdCBuZWVkIGFueSBpbmZvcm1hdGlvbiBhYm91dCB3b3Jr
c3BhY2Ugc3RydWN0dXJlIGFueW1vcmUuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2ZpbGUt
c3lzdGVtLXByb2plY3QuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxl
TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUu
dXJsRm9yUGF0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtUHJv
amVjdERlbGVnYXRlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0
RGVsZWdhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdh
dGUucHJvdG90eXBlLnBvcHVsYXRlLmZpbGVzTG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtUHJvamVjdERlbGVnYXRlLnByb3RvdHlwZS5wb3B1bGF0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlLl9maWxlU3lz
dGVtQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92
aWRlci5wcm90b3R5cGUuX2ZpbGVTeXN0ZW1SZW1vdmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
c29sYXRlZEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5
c3RlbS5wcm90b3R5cGUubmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxl
U3lzdGVtLnByb3RvdHlwZS5yb290VVJMKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNv
bGF0ZWRGaWxlU3lzdGVtTWFuYWdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNvbGF0ZWRG
aWxlU3lzdGVtTWFuYWdlci5wcm90b3R5cGUuX2lubmVyQWRkRmlsZVN5c3RlbSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5wcm90b3R5cGUuX2ZpbGVT
eXN0ZW1SZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1N
YW5hZ2VyLnByb3RvdHlwZS5faXNvbGF0ZWRGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLnByb3RvdHlwZS5yZXF1ZXN0RE9NRmlsZVN5
c3RlbSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisKIDIw
MTMtMDItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2xlYW4gdXAgdGhlIGJvb2xlYW4gYXJndW1lbnQgdG8gdmlzaWJsZUNvbnRlbnRSZWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5n
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlTWFwcGluZy5qcwpp
bmRleCAwZWQyNDliZDE1MjJmMzQ2NzgxN2Q5N2FhNTExOGY3ZTJlYmE4MmZlLi5lNGYxNzI3YjBh
NzI1Y2QxZTQyZDkxNWY0Yjg0NDU4NzU5Y2I1MjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hcHBpbmcuanMKQEAgLTk1LDE2ICs5NSwxNSBAQCBX
ZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0sCiAgICAgCiAgICAg
LyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBw
YXRoCiAgICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwotICAgIHVybEZvclVSSTogZnVu
Y3Rpb24odXJpKQorICAgIHVybEZvclBhdGg6IGZ1bmN0aW9uKHBhdGgpCiAgICAgewogICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2VudHJpZXMubGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX2VudHJpZXNbaV07Ci0gICAgICAgICAgICB2YXIgdXJp
UHJlZml4ID0gdGhpcy5fZW50cnlVUklQcmVmaXgoZW50cnkpOwotICAgICAgICAgICAgaWYgKHVy
aVByZWZpeCAmJiB1cmkuc3RhcnRzV2l0aCh1cmlQcmVmaXgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBlbnRyeS51cmxQcmVmaXggKyB1cmkuc3Vic3RyaW5nKHVyaVByZWZpeC5sZW5ndGgpOwor
ICAgICAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aChlbnRyeS5wYXRoUHJlZml4KSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZW50cnkudXJsUHJlZml4ICsgcGF0aC5zdWJzdHJpbmcoZW50cnku
cGF0aFByZWZpeC5sZW5ndGgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lz
dGVtUHJvamVjdERlbGVnYXRlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9GaWxlU3lzdGVtUHJvamVjdERlbGVnYXRlLmpzCmluZGV4IDgzOGYyNzBkODg3YmU5ZjE0NGMy
MmFlNTllZGUwMzE5MGJjOTcyY2YuLmI3MDczNjBkZWIxYTFiYjVlMDA3NTY3ZDYzZDJlYjk0YTdh
YzJiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmls
ZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUuanMKQEAgLTMzLDExICszMywxMiBA
QAogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Qcm9qZWN0RGVsZWdhdGV9CiAgKiBAZXh0
ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLklzb2xh
dGVkRmlsZVN5c3RlbX0gaXNvbGF0ZWRGaWxlU3lzdGVtCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5GaWxlTWFwcGluZ30gZmlsZU1hcHBpbmcKICAqLwotV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Q
cm9qZWN0RGVsZWdhdGUgPSBmdW5jdGlvbihpc29sYXRlZEZpbGVTeXN0ZW0pCitXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZSA9IGZ1bmN0aW9uKGlzb2xhdGVkRmlsZVN5c3Rl
bSwgZmlsZU1hcHBpbmcpCiB7CiAgICAgdGhpcy5fZmlsZVN5c3RlbSA9IGlzb2xhdGVkRmlsZVN5
c3RlbTsKLSAgICB0aGlzLl9wb3B1bGF0ZSgpOworICAgIHRoaXMuX2ZpbGVNYXBwaW5nID0gZmls
ZU1hcHBpbmc7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUHJvamVjdERlbGVnYXRlLl9z
Y3JpcHRFeHRlbnNpb25zID0gWyJqcyIsICJqYXZhIiwgImNjIiwgImNwcCIsICJoIiwgImNzIiwg
InB5IiwgInBocCJdLmtleVNldCgpOwpAQCAtMTUzLDE5ICsxNTQsMTggQEAgV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuT3RoZXI7CiAgICAgfSwKIAotICAgIF9wb3B1bGF0
ZTogZnVuY3Rpb24oKQorICAgIHBvcHVsYXRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl9maWxlU3lzdGVtLnJlcXVlc3RGaWxlc1JlY3Vyc2l2ZSgiIiwgZmlsZXNMb2FkZWQuYmlu
ZCh0aGlzKSk7CiAKICAgICAgICAgZnVuY3Rpb24gZmlsZXNMb2FkZWQoZmlsZXMpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IGZpbGVzW2ldLnN1YnN0cigxKTsKLSAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogRmlsZVN5c3RlbVByb2plY3QgZGVsZWdhdGUgc2hvdWxkIGtub3cg
bm90aGluZyBhYm91dCBVSVNvdXJjZUNvZGUuCi0gICAgICAgICAgICAgICAgdmFyIHVyaSA9IFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUudXJpKHRoaXMuaWQoKSwgcGF0aCk7Ci0gICAgICAgICAg
ICAgICAgdmFyIGNvbnRlbnRUeXBlID0gdGhpcy5fY29udGVudFR5cGVGb3JQYXRoKGZpbGVzW2ld
KTsKLSAgICAgICAgICAgICAgICB2YXIgdXJsID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVy
bEZvclVSSSh1cmkpOwotICAgICAgICAgICAgICAgIHZhciBmaWxlRGVzY3JpcHRvciA9IG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0b3IocGF0aCwgImZpbGU6Ly8iICsgdGhpcy5fZmlsZVN5
c3RlbS5wYXRoKCkgKyBmaWxlc1tpXSwgdXJsLCBjb250ZW50VHlwZSwgdHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdmFyIGZ1bGxQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5wYXRoKCkgKyBmaWxlc1tp
XTsKKyAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IGZpbGVzW2ldLnN1YnN0cigxKTsgCisgICAg
ICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuX2ZpbGVNYXBwaW5nLnVybEZvclBhdGgoZnVsbFBh
dGgpOworICAgICAgICAgICAgICAgIHZhciBjb250ZW50VHlwZSA9IHRoaXMuX2NvbnRlbnRUeXBl
Rm9yUGF0aChwYXRoKTsKKyAgICAgICAgICAgICAgICB2YXIgZmlsZURlc2NyaXB0b3IgPSBuZXcg
V2ViSW5zcGVjdG9yLkZpbGVEZXNjcmlwdG9yKHBhdGgsICJmaWxlOi8vIiArIGZ1bGxQYXRoLCB1
cmwsIGNvbnRlbnRUeXBlLCB0cnVlKTsKICAgICAgICAgICAgICAgICB0aGlzLl9hZGRGaWxlKGZp
bGVEZXNjcmlwdG9yKTsKICAgICAgICAgICAgIH0gCiAgICAgICAgIH0KQEAgLTE5OSwzICsxOTks
NDggQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUucHJvdG90eXBlID0g
ewogICogQHR5cGUgez9XZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZX0KICAq
LwogV2ViSW5zcGVjdG9yLmZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUgPSBudWxsOworCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Qcm9qZWN0RGVs
ZWdhdGV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2Vy
fSBpc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jr
c3BhY2V9IHdvcmtzcGFjZQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmd9IGZp
bGVNYXBwaW5nCisgKi8KK1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIg
PSBmdW5jdGlvbihpc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLCB3b3Jrc3BhY2UsIGZpbGVNYXBw
aW5nKQoreworICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgPSBpc29sYXRlZEZp
bGVTeXN0ZW1NYW5hZ2VyOworICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKKyAgICB0
aGlzLl9maWxlTWFwcGluZyA9IGZpbGVNYXBwaW5nOworICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5
c3RlbU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lz
dGVtTWFuYWdlci5FdmVudHMuRmlsZVN5c3RlbUFkZGVkLCB0aGlzLl9maWxlU3lzdGVtQWRkZWQs
IHRoaXMpOworICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVudHMuRmlsZVN5
c3RlbVJlbW92ZWQsIHRoaXMuX2ZpbGVTeXN0ZW1SZW1vdmVkLCB0aGlzKTsKK30KKworV2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoq
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuZXZlbnR9IGV2ZW50CisgICAgICovCisgICAg
X2ZpbGVTeXN0ZW1BZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgZmls
ZVN5c3RlbSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbX0gKi8g
KGV2ZW50LmRhdGEpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fd29ya3NwYWNlLnBy
b2plY3QoZmlsZVN5c3RlbS5pZCgpKSk7CisgICAgICAgIHZhciBwcm9qZWN0RGVsZWdhdGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUoZmlsZVN5c3RlbSwgdGhp
cy5fZmlsZU1hcHBpbmcpCisgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRQcm9qZWN0KHByb2pl
Y3REZWxlZ2F0ZSk7CisgICAgICAgIHByb2plY3REZWxlZ2F0ZS5wb3B1bGF0ZSgpOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5ldmVudH0gZXZlbnQKKyAg
ICAgKi8KKyAgICBfZmlsZVN5c3RlbVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdmFyIGZpbGVTeXN0ZW0gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5Jc29sYXRlZEZp
bGVTeXN0ZW19ICovIChldmVudC5kYXRhKTsKKyAgICAgICAgaWYgKGZpbGVTeXN0ZW0uaWQoKSkK
KyAgICAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5yZW1vdmVQcm9qZWN0KGZpbGVTeXN0ZW0uaWQo
KSk7CisgICAgfQorfQorCisvKioKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1X
b3Jrc3BhY2VQcm92aWRlcn0KKyAqLworV2ViSW5zcGVjdG9yLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQ
cm92aWRlciA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSXNvbGF0ZWRGaWxlU3lzdGVtLmpzCmluZGV4IDM3NGMyYTJmMzI5YjY3NTZjNWNl
ZTk3YjhiMzBhZmE2MGNmMWFkYTUuLjMzZDQyN2NjNWZlN2VmODc3ZDU1YThkY2ZiNGZiN2QwZWFh
OTAzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNv
bGF0ZWRGaWxlU3lzdGVtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSXNvbGF0ZWRGaWxlU3lzdGVtLmpzCkBAIC0zNCwxMSArMzQsMTMgQEAKICAqIEBwYXJhbSB7
c3RyaW5nfSBpZAogICogQHBhcmFtIHtzdHJpbmd9IHBhdGgKICAqLwotV2ViSW5zcGVjdG9yLklz
b2xhdGVkRmlsZVN5c3RlbSA9IGZ1bmN0aW9uKG1hbmFnZXIsIGlkLCBwYXRoKQorV2ViSW5zcGVj
dG9yLklzb2xhdGVkRmlsZVN5c3RlbSA9IGZ1bmN0aW9uKG1hbmFnZXIsIGlkLCBwYXRoLCBuYW1l
LCByb290VVJMKQogewogICAgIHRoaXMuX21hbmFnZXIgPSBtYW5hZ2VyOwogICAgIHRoaXMuX2lk
ID0gaWQ7CiAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CisgICAgdGhpcy5fbmFtZSA9IG5hbWU7Cisg
ICAgdGhpcy5fcm9vdFVSTCA9IHJvb3RVUkw7CiB9CiAKIFdlYkluc3BlY3Rvci5Jc29sYXRlZEZp
bGVTeXN0ZW0uZXJyb3JNZXNzYWdlID0gZnVuY3Rpb24oZXJyb3IpCkBAIC04Niw2ICs4OCwyMiBA
QCBXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIG5hbWU6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9uYW1lOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgcm9vdFVSTDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RVUkw7CisgICAgfSwKKwor
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oRE9NRmlsZVN5c3RlbSl9IGNhbGxiYWNr
CiAgICAgICovCiAgICAgX3JlcXVlc3RGaWxlU3lzdGVtOiBmdW5jdGlvbihjYWxsYmFjaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNvbGF0ZWRGaWxl
U3lzdGVtTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNv
bGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5qcwppbmRleCBhN2Y0NGRmYjMxOTdhNzNlZmQ2YWYwYjAx
MDMxMTkzYTZhZTdjYzRkLi5hM2RhODljN2E5NjQ2OTA5ZmQ2NDQ4N2E2ZGMzNWYwMjEyZWZhZTA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVk
RmlsZVN5c3RlbU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLmpzCkBAIC0zMCwxMSArMzAsMTAgQEAKIAog
LyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0g
d29ya3NwYWNlCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwotV2ViSW5z
cGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCitX
ZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsKLSAg
ICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiAgICAgLyoqIEB0eXBlIHshT2JqZWN0Ljxz
dHJpbmcsIFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLkZpbGVTeXN0ZW0+
fSAqLwogICAgIHRoaXMuX2ZpbGVTeXN0ZW1zID0ge307CiAgICAgLyoqIEB0eXBlIHtPYmplY3Qu
PHN0cmluZywgQXJyYXkuPGZ1bmN0aW9uKERPTUZpbGVTeXN0ZW0pPj59ICovCkBAIC00OCw2ICs0
NywxMSBAQCBXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlciA9IGZ1bmN0aW9u
KHdvcmtzcGFjZSkKIC8qKiBAdHlwZWRlZiB7e2ZpbGVTeXN0ZW1OYW1lOiBzdHJpbmcsIHJvb3RV
Ukw6IHN0cmluZywgZmlsZVN5c3RlbVBhdGg6IHN0cmluZ319ICovCiBXZWJJbnNwZWN0b3IuSXNv
bGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5GaWxlU3lzdGVtOwogCitXZWJJbnNwZWN0b3IuSXNvbGF0
ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVudHMgPSB7CisgICAgRmlsZVN5c3RlbUFkZGVkOiAiRmls
ZVN5c3RlbUFkZGVkIiwKKyAgICBGaWxlU3lzdGVtUmVtb3ZlZDogIkZpbGVTeXN0ZW1SZW1vdmVk
IgorfQorCiBXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5wcm90b3R5cGUg
PSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBw
aW5nfQpAQCAtMTA2LDExICsxMTAsMTAgQEAgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3Rl
bU1hbmFnZXIucHJvdG90eXBlID0gewogICAgIF9pbm5lckFkZEZpbGVTeXN0ZW06IGZ1bmN0aW9u
KGZpbGVTeXN0ZW0pCiAgICAgewogICAgICAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSBmaWxlU3lz
dGVtLmZpbGVTeXN0ZW1QYXRoOwotICAgICAgICB0aGlzLl9maWxlU3lzdGVtc1tmaWxlU3lzdGVt
UGF0aF0gPSBmaWxlU3lzdGVtOwogICAgICAgICB2YXIgZmlsZVN5c3RlbUlkID0gdGhpcy5fZmls
ZVN5c3RlbU1hcHBpbmcuYWRkRmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbVBhdGgpOwotICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fd29ya3NwYWNlLnByb2plY3QoZmlsZVN5c3RlbUlk
KSk7Ci0gICAgICAgIHZhciBpc29sYXRlZEZpbGVTeXN0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLklz
b2xhdGVkRmlsZVN5c3RlbSh0aGlzLCBmaWxlU3lzdGVtSWQsIGZpbGVTeXN0ZW1QYXRoKTsKLSAg
ICAgICAgdGhpcy5fd29ya3NwYWNlLmFkZFByb2plY3QobmV3IFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtUHJvamVjdERlbGVnYXRlKGlzb2xhdGVkRmlsZVN5c3RlbSkpOworICAgICAgICB2YXIgaXNv
bGF0ZWRGaWxlU3lzdGVtID0gbmV3IFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW0odGhp
cywgZmlsZVN5c3RlbUlkLCBmaWxlU3lzdGVtUGF0aCwgZmlsZVN5c3RlbS5maWxlU3lzdGVtTmFt
ZSwgZmlsZVN5c3RlbS5yb290VVJMKTsKKyAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNbZmlsZVN5
c3RlbVBhdGhdID0gaXNvbGF0ZWRGaWxlU3lzdGVtOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVu
dHMuRmlsZVN5c3RlbUFkZGVkLCBpc29sYXRlZEZpbGVTeXN0ZW0pOwogICAgIH0sCiAKICAgICAv
KioKQEAgLTE1NywxNCArMTYwLDE0IEBAIFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1N
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICBfZmlsZVN5c3RlbVJlbW92ZWQ6IGZ1bmN0aW9uKGZp
bGVTeXN0ZW1QYXRoKQogICAgIHsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1JZCA9IHRoaXMuX2Zp
bGVTeXN0ZW1NYXBwaW5nLmZpbGVTeXN0ZW1JZChmaWxlU3lzdGVtUGF0aCk7Ci0gICAgICAgIGlm
IChmaWxlU3lzdGVtSWQpCi0gICAgICAgICAgICB0aGlzLl93b3Jrc3BhY2UucmVtb3ZlUHJvamVj
dChmaWxlU3lzdGVtSWQpOwogICAgICAgICB0aGlzLl9maWxlU3lzdGVtTWFwcGluZy5yZW1vdmVG
aWxlU3lzdGVtTWFwcGluZyhmaWxlU3lzdGVtUGF0aCk7CisgICAgICAgIHZhciBpc29sYXRlZEZp
bGVTeXN0ZW0gPSB0aGlzLl9maWxlU3lzdGVtc1tmaWxlU3lzdGVtUGF0aF07CiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9maWxlU3lzdGVtc1tmaWxlU3lzdGVtUGF0aF07CiAgICAgICAgIGlmICh0aGlz
Ll9yZW1vdmVGaWxlU3lzdGVtQ2FsbGJhY2spIHsKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUZp
bGVTeXN0ZW1DYWxsYmFjayhmaWxlU3lzdGVtUGF0aCk7CiAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fcmVtb3ZlRmlsZVN5c3RlbUNhbGxiYWNrOwogICAgICAgICB9CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1NYW5h
Z2VyLkV2ZW50cy5GaWxlU3lzdGVtUmVtb3ZlZCwgaXNvbGF0ZWRGaWxlU3lzdGVtKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC0xNzgsNyArMTgxLDcgQEAgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmls
ZVN5c3RlbU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAg
ICAgICAgIGlmICghSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmlzb2xhdGVkRmlsZVN5c3RlbSkKICAg
ICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICByZXR1cm4gSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Lmlzb2xhdGVkRmlsZVN5c3RlbShmaWxlU3lzdGVtLmZpbGVTeXN0ZW1OYW1lLCBmaWxlU3lz
dGVtLnJvb3RVUkwpOworICAgICAgICByZXR1cm4gSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmlzb2xh
dGVkRmlsZVN5c3RlbShmaWxlU3lzdGVtLm5hbWUoKSwgZmlsZVN5c3RlbS5yb290VVJMKCkpOwog
ICAgIH0sCiAKICAgICAvKioKQEAgLTE5NCw3ICsxOTcsOSBAQCBXZWJJbnNwZWN0b3IuSXNvbGF0
ZWRGaWxlU3lzdGVtTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgY2FsbGJhY2sodGhpcy5faXNvbGF0ZWRGaWxlU3lzdGVtKGZpbGVT
eXN0ZW1QYXRoKSk7Ci0gICAgfQorICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5PYmplY3QucHJvdG90eXBlCiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAyZTcyYmNmNGY2MWMzZDIzNWU1NjQ3ODAz
Y2RhODA0NjUyN2JlNzZmLi43NDllYWQ2NDY2Nzk0MTA3NmEyYzNkZDVmZTA2YTM2NWZkNTMyNmU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwpAQCAtNDM4LDkgKzQzOCwxMCBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBh
YmlsaXRpZXMgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLndvcmtzcGFjZUNvbnRyb2xsZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIodGhpcy53b3Jrc3BhY2UpOwogCi0g
ICAgdGhpcy5pc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5Jc29s
YXRlZEZpbGVTeXN0ZW1NYW5hZ2VyKHRoaXMud29ya3NwYWNlKTsKKyAgICB0aGlzLmlzb2xhdGVk
RmlsZVN5c3RlbU1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1h
bmFnZXIoKTsKICAgICB0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbURpc3BhdGNoZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbURpc3BhdGNoZXIodGhpcy5pc29sYXRlZEZpbGVT
eXN0ZW1NYW5hZ2VyKTsKICAgICB0aGlzLmZpbGVNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5G
aWxlTWFwcGluZyh0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIubWFwcGluZygpKTsKKyAg
ICB0aGlzLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRmls
ZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyKHRoaXMuaXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlciwg
dGhpcy53b3Jrc3BhY2UsIHRoaXMuZmlsZU1hcHBpbmcpOwogCiAgICAgdGhpcy5uZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVy
KHRoaXMud29ya3NwYWNlLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwogICAg
IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKHRoaXMubmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZjk4YWE2MmRiYjNjYjQ4Y2ZkOTA2MTYwMDFj
YmRhZWM0MzFhNjg5Li5mMWY0M2MyOTViMTM0YjBmYWFjMDI1YzcyOGViNjdiYmM0MjZlZTllIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDItMTkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZp
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVjb3VwbGUgdmFyaW91
cyBmaWxlIHN5c3RlbSBwcm9qZWN0IGltcGxlbWVudGF0aW9uIHBhcnRzIGZvciBiZXR0ZXIgdGVz
dGFiaWxpdHkgYW5kIGNvdmVyIHdpdGggdGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0KToKKyAgICAgICAgKGlu
aXRpYWxpemVfSW5zcGVjdG9yVGVzdC4pOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3dvcmtzcGFjZS10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9Xb3Jrc3BhY2VUZXN0LnVp
U291cmNlQ29kZUFkZGVkKToKKyAgICAgICAgKGluaXRpYWxpemVfV29ya3NwYWNlVGVzdC5JbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KToKKyAgICAg
ICAgKGluaXRpYWxpemVfV29ya3NwYWNlVGVzdC5JbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3Vy
Y2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLW1h
cHBpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci92ZXJzaW9uLWNvbnRyb2xsZXIuaHRtbDoKKwogMjAx
My0wMi0xOCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF1bV2ViR0xdIEVuYWJsZSB0ZXN0IHdlYmdsL2NvbmZvcm1hbmNlL2Nh
bnZhcy90ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0bWwuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCmluZGV4
IDM5ZjUxM2M1ZmExNGFmZTUxYjY2OWQ0YjRlODc2N2MxOTMwMzM1NzUuLmJiNzM1OTg1ZTFiODhk
MDA3YjJkMjExMGQ3Njg3NmRhOTlmZGQyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCkBAIC00MDAsNiArNDAwLDIxIEBAIElu
c3BlY3RvclRlc3QuU3RyaW5nT3V0cHV0U3RyZWFtLnByb3RvdHlwZSA9IHsKICAgICB9CiB9Owog
CitJbnNwZWN0b3JUZXN0Lk1vY2tTZXR0aW5nID0gZnVuY3Rpb24odmFsdWUpCit7CisgICAgdGhp
cy5fdmFsdWUgPSB2YWx1ZTsKK307CisKK0luc3BlY3RvclRlc3QuTW9ja1NldHRpbmcucHJvdG90
eXBlID0geworICAgIGdldDogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1
ZTsKKyAgICB9LAorCisgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICB0aGlzLl92
YWx1ZSA9IHZhbHVlOworICAgIH0KK307CisKIH07CiAKIHZhciBpbml0aWFsaXplQ2FsbElkID0g
MDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRl
c3QuanMKaW5kZXggY2FiZDJmYjViZGM4NGI4Y2Y2NWQ1YWQwZTIxNjA5ZjM4MDk0M2NhMC4uYTUz
ODU0ZDRkMjhjZDIwNmIyNmVjMDA5MTNhMWIzMDE2OTkxYzg4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKQEAgLTksMTUgKzks
MTggQEAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UgPSBmdW5jdGlvbigpCiAgICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBJbnNwZWN0b3JU
ZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwogfQogCi1JbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50ID0gZnVuY3Rp
b24oY2FsbGJhY2spCitJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVB
ZGRlZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2ssIGNvdW50KQogeworICAgIEluc3BlY3RvclRl
c3QudWlTb3VyY2VDb2RlQWRkZWRFdmVudHNMZWZ0ID0gY291bnQgfHwgMTsKICAgICBJbnNwZWN0
b3JUZXN0LnRlc3RXb3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0
Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwogICAgIEluc3BlY3Rv
clRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVk
KTsKIAogICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlT
b3VyY2VDb2RlQWRkZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJ
U291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlk
ZXJFdmVudEhhbmRsZXIpOworICAgICAgICBpZiAoISgtLUluc3BlY3RvclRlc3QudWlTb3VyY2VD
b2RlQWRkZWRFdmVudHNMZWZ0KSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlQWRkZWQpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5z
cGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKKyAg
ICAgICAgfQogICAgICAgICBjYWxsYmFjayhldmVudC5kYXRhKTsKICAgICB9CiB9CkBAIC0zMSw3
ICszNCw4IEBAIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlID0g
ZnVuY3Rpb24odXJsLCB0eXBlLCBjb250ZW50KQogCiBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlT
b3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkKIHsKLSAgICB0
aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgVUlTb3VyY2VDb2RlUHJvdmlkZXIgZXZlbnQ6ICIg
KyBldmVudC50eXBlICsgIi4iKTsKKyAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgVUlTb3VyY2VDb2RlUHJvdmlkZXIgZXZl
bnQ6ICIgKyBldmVudC50eXBlICsgIjogIiArIHVpU291cmNlQ29kZS51cmkoKSArICIuIik7CiB9
CiAKIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSwgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBw
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhw
ZWN0ZWQudHh0CmluZGV4IDdkM2Q2YWZmMTZmMGIxYmY1YTVkNTgzMzM0OTkwMTUwMTMzYzZmYTgu
LjA1MDVkZWU3YjFiMTZjODIyOGIzMTk5YmNlZDU3MDU0MWJiNjRiNDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw1
IEBAIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20KIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vCiBodHRw
Oi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKIGh0dHA6Ly9sb2NhbGhvc3QvZm9vL2luZGV4Lmh0bWwK
LQotCiBBbGwgbWFwcGluZ3Mgd2VyZSBjb3JyZWN0LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmls
ZS1tYXBwaW5nLmh0bWwKaW5kZXggMmRiMTRkZWViZmFhZDI2YjUyOGNhZDFiYzlmZTI3MGU0M2M5
Yzk2YS4uZThlOTZkYjM4ZmZmNjdkNDc3ODk2ZDIwZjVjYzNjNWEzZDE5NTk3YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbApAQCAtMzcsMTIgKzM3LDEwIEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZv
clVSTCgiaHR0cHM6Ly9sb2NhbGhvc3QiKSk7CiAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
ZmlsZU1hcHBpbmcudXJpRm9yVVJMKCJodHRwOi8vZXhhbXBsZS5jb20iKSk7CiAKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxGb3JVUkkoInVyaTovaG9tZS9leGFt
cGxlLmNvbSIpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxG
b3JVUkkoInVyaTovaG9tZS9leGFtcGxlLmNvbS8iKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoZmlsZU1hcHBpbmcudXJsRm9yVVJJKCJ1cmk6L3Zhci93d3cvaW5kZXguaHRtbCIpKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxGb3JVUkkoInVyaTov
dmFyL3d3dy9mb28vaW5kZXguaHRtbCIpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChm
aWxlTWFwcGluZy51cmxGb3JVUkkoImh0dHBzOi8vbG9jYWxob3N0IikpOwotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVybEZvclVSSSgiaHR0cDovL2V4YW1wbGUuY29t
IikpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVybEZvclBhdGgo
Ii9ob21lL2V4YW1wbGUuY29tIikpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVN
YXBwaW5nLnVybEZvclBhdGgoIi9ob21lL2V4YW1wbGUuY29tLyIpKTsKKyAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxGb3JQYXRoKCIvdmFyL3d3dy9pbmRleC5odG1s
IikpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVybEZvclBhdGgo
Ii92YXIvd3d3L2Zvby9pbmRleC5odG1sIikpOwogCiAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFsbCBtYXBwaW5ncyB3ZXJlIGNvcnJlY3QuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3Rl
bS1wcm9qZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3Rl
bS1wcm9qZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzhiOTE0MTI0MmI4ZDE4NzFiOThm
OWVlY2E0NzA5Y2ViOTBmODc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2ZpbGUtc3lzdGVtLXByb2plY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1Rl
c3RzIGZpbGUgc3lzdGVtIHByb2plY3QuCisKKworUnVubmluZzogdGVzdEZpbGVTeXN0ZW1zCitB
ZGRpbmcgZmlyc3QgZmlsZSBzeXN0ZW0uCitBZGRpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLgorCitV
SVNvdXJjZUNvZGU6IGZpbGU6Ly8vdmFyL3d3dy9sb2NhbGhvc3QvZm9vLmpzCitVSVNvdXJjZUNv
ZGUgaXMgZWRpdGFibGU6IHRydWUKK1VJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFs
c2UKK01pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CitVSVNvdXJjZUNvZGUgY29udGVudDogPGZv
byBjb250ZW50PgorCitVSVNvdXJjZUNvZGU6IGZpbGU6Ly8vdmFyL3d3dy9iYXIuanMKK1VJU291
cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0
OiBmYWxzZQorTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKK1VJU291cmNlQ29kZSBjb250ZW50
OiA8YmFyIGNvbnRlbnQ+CisKK1VJU291cmNlQ29kZTogZmlsZTovLy9mb28vYmFyL2Jhei5qcwor
VUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNvdXJjZUNvZGUgaXMgY29udGVudCBz
Y3JpcHQ6IGZhbHNlCitNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAorVUlTb3VyY2VDb2RlIGNv
bnRlbnQ6IDxiYXogY29udGVudD4KKworVUlTb3VyY2VDb2RlIHVyaSB0byB1cmwgbWFwcGluZ3M6
CisgICAgMEB3d3cvbG9jYWxob3N0L2Zvby5qcyAtPiBodHRwOi8vbG9jYWxob3N0L2Zvby5qcwor
ICAgIDFAYmFyL2Jhei5qcyAtPiBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Jhei5qcworVUlTb3Vy
Y2VDb2RlIHVybCB0byB1cmkgbWFwcGluZ3M6CisgICAgaHR0cDovL2xvY2FsaG9zdC9mb28uanMg
LT4gMEB3d3cvbG9jYWxob3N0L2Zvby5qcworICAgIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYmF6
LmpzIC0+IDFAYmFyL2Jhei5qcworUmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLgorICAgIG51
bWJlciBvZiB1aVNvdXJjZUNvZGVzIGluIHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBzZWNvbmQg
ZmlsZSBzeXN0ZW06IDEKK1JlbW92aW5nIGZpcnN0IGZpbGUgc3lzdGVtLgorICAgIG51bWJlciBv
ZiB1aVNvdXJjZUNvZGVzIGluIHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBmaXJzdCBmaWxlIHN5
c3RlbTogMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0t
cHJvamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXByb2plY3Qu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YjJjZGVlY2RkOGMxNzA1MDdhNDJlMGMwYjM4NjljM2VmZGViOTU2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXBy
b2plY3QuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBN
b2NrSXNvbGF0ZWRGaWxlU3lzdGVtID0gZnVuY3Rpb24oaWQsIHBhdGgsIGZpbGVzKQorICAgIHsK
KyAgICAgICAgdGhpcy5faWQgPSBpZDsKKyAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CisgICAg
ICAgIHRoaXMuX2ZpbGVzID0gZmlsZXM7CisgICAgfTsKKyAgICBNb2NrSXNvbGF0ZWRGaWxlU3lz
dGVtLnByb3RvdHlwZSA9IHsKKyAgICAgICAgaWQ6IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2lkOworICAgICAgICB9LAorCisgICAgICAgIHBhdGg6IGZ1
bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7CisgICAg
ICAgIH0sCisKKyAgICAgICAgcmVxdWVzdEZpbGVDb250ZW50OiBmdW5jdGlvbihwYXRoLCBjYWxs
YmFjaykKKyAgICAgICAgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fZmlsZXNbcGF0aF0p
OworICAgICAgICB9LAorCisgICAgICAgIHNldEZpbGVDb250ZW50OiBmdW5jdGlvbihwYXRoLCBu
ZXdDb250ZW50LCBjYWxsYmFjaykKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5fZmlsZXNb
cGF0aF0gPSBuZXdDb250ZW50OworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSwK
KworICAgICAgICByZXF1ZXN0RmlsZXNSZWN1cnNpdmU6IGZ1bmN0aW9uKHBhdGgsIGNhbGxiYWNr
KQorICAgICAgICB7CisgICAgICAgICAgICBjYWxsYmFjayhPYmplY3Qua2V5cyh0aGlzLl9maWxl
cykpOworICAgICAgICB9LAorICAgIH0KKworICAgIHZhciBNb2NrSXNvbGF0ZWRGaWxlU3lzdGVt
TWFuYWdlciA9IGZ1bmN0aW9uKCkge307CisgICAgTW9ja0lzb2xhdGVkRmlsZVN5c3RlbU1hbmFn
ZXIucHJvdG90eXBlID0geworICAgICAgICBhZGRNb2NrRmlsZVN5c3RlbTogZnVuY3Rpb24ocGF0
aCwgZmlsZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBpZCA9IHRoaXMuZmlsZVN5c3Rl
bU1hcHBpbmcuYWRkRmlsZVN5c3RlbU1hcHBpbmcocGF0aCk7CisgICAgICAgICAgICB2YXIgZmls
ZVN5c3RlbSA9IG5ldyBNb2NrSXNvbGF0ZWRGaWxlU3lzdGVtKGlkLCBwYXRoLCBmaWxlcyk7Cisg
ICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtcyA9IHRoaXMuX2ZpbGVTeXN0ZW1zIHx8IHt9Owor
ICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNbcGF0aF0gPSBmaWxlU3lzdGVtOworICAgICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLklzb2xhdGVk
RmlsZVN5c3RlbU1hbmFnZXIuRXZlbnRzLkZpbGVTeXN0ZW1BZGRlZCwgZmlsZVN5c3RlbSk7Cisg
ICAgICAgIH0sCisKKyAgICAgICAgcmVtb3ZlTW9ja0ZpbGVTeXN0ZW06IGZ1bmN0aW9uKHBhdGgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtID0gdGhpcy5fZmlsZVN5c3Rl
bXNbcGF0aF07CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fZmlsZVN5c3RlbXNbcGF0aF07Cisg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSXNv
bGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVudHMuRmlsZVN5c3RlbVJlbW92ZWQsIGZpbGVTeXN0
ZW0pOworICAgICAgICB9LAorCisgICAgICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGUKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjcmVhdGVJc29sYXRlZEZpbGVTeXN0
ZW1NYW5hZ2VyKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNl
KCk7CisgICAgICAgIHZhciBtYW5hZ2VyID0gbmV3IE1vY2tJc29sYXRlZEZpbGVTeXN0ZW1NYW5h
Z2VyKCk7CisgICAgICAgIG1hbmFnZXIuZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbCgpOworICAgICAgICBtYW5hZ2VyLmZpbGVTeXN0ZW1N
YXBwaW5nLl9maWxlU3lzdGVtTWFwcGluZ1NldHRpbmcgPSBuZXcgSW5zcGVjdG9yVGVzdC5Nb2Nr
U2V0dGluZyh7fSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuTW9ja1NldHRpbmcKKyAgICAgICAg
bWFuYWdlci5maWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcobWFuYWdl
ci5maWxlU3lzdGVtTWFwcGluZyk7CisgICAgICAgIG1hbmFnZXIuZmlsZVN5c3RlbVdvcmtzcGFj
ZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIo
bWFuYWdlciwgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBtYW5hZ2VyLmZpbGVNYXBwaW5n
KTsKKyAgICAgICAgcmV0dXJuIG1hbmFnZXI7CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVtcFVJ
U291cmNlQ29kZXModWlTb3VyY2VDb2RlcywgbmV4dCkKKyAgICB7CisgICAgICAgIGlubmVyRHVt
cFVJU291cmNlQ29kZXModWlTb3VyY2VDb2RlcywgMCwgbmV4dCk7CisKKyAgICAgICAgZnVuY3Rp
b24gaW5uZXJEdW1wVUlTb3VyY2VDb2Rlcyh1aVNvdXJjZUNvZGVzLCBzdGFydEluZGV4LCBuZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Cisg
ICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gdWlTb3VyY2VDb2Rlcy5sZW5ndGgpIHsKKyAg
ICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZXNbc3RhcnRJbmRleF0sIGlubmVyRHVtcFVJU291cmNlQ29kZXMuYmluZCh0aGlzLCB1aVNv
dXJjZUNvZGVzLCBzdGFydEluZGV4ICsgMSwgbmV4dCkpOworICAgICAgICB9CisgICAgfQorCisg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0Rmls
ZVN5c3RlbXMobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZXMg
PSBbXTsKKyAgICAgICAgICAgIHZhciBtYW5hZ2VyID0gY3JlYXRlSXNvbGF0ZWRGaWxlU3lzdGVt
TWFuYWdlcigpOworICAgICAgICAgICAgdmFyIGVudHJ5MSA9IG5ldyBXZWJJbnNwZWN0b3IuRmls
ZU1hcHBpbmcuRW50cnkoImh0dHA6Ly9sb2NhbGhvc3QvIiwgIi92YXIvd3d3L2xvY2FsaG9zdC8i
KTsKKyAgICAgICAgICAgIHZhciBlbnRyeTIgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LkVudHJ5KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsICIvZm9vL2Jhci8iKTsKKyAgICAgICAg
ICAgIG1hbmFnZXIuZmlsZU1hcHBpbmcuc2V0TWFwcGluZ0VudHJpZXMoW2VudHJ5MSwgZW50cnky
XSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNv
ZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkLCAzKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3QgZmlsZSBzeXN0ZW0uIik7CisgICAgICAgICAg
ICBtYW5hZ2VyLmFkZE1vY2tGaWxlU3lzdGVtKCIvdmFyL3d3dyIsIHsiL2xvY2FsaG9zdC9mb28u
anMiOiAiPGZvbyBjb250ZW50PiIsICIvYmFyLmpzIjogIjxiYXIgY29udGVudD4ifSk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNlY29uZCBmaWxlIHN5c3Rl
bS4iKTsKKyAgICAgICAgICAgIG1hbmFnZXIuYWRkTW9ja0ZpbGVTeXN0ZW0oIi9mb28vYmFyIiwg
eyIvYmF6LmpzIjogIjxiYXogY29udGVudD4ifSk7CisKKyAgICAgICAgICAgIGR1bXBVSVNvdXJj
ZUNvZGVzKHVpU291cmNlQ29kZXMsIHVpU291cmNlQ29kZXNEdW1wZWQpOworCisgICAgICAgICAg
ICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29kZSkKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rlc0R1bXBlZCgpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJ
U291cmNlQ29kZSB1cmkgdG8gdXJsIG1hcHBpbmdzOiIpOworICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICB2YXIgdXJsID0gdWlTb3VyY2VDb2Rlc1tpXS51cmw7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHVpU291cmNlQ29k
ZXNbaV0udXJpKCkgKyAiIC0+ICIgKyB1aVNvdXJjZUNvZGVzW2ldLnVybCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJj
ZUNvZGUgdXJsIHRvIHVyaSBtYXBwaW5nczoiKTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHVybCA9IHVpU291cmNlQ29kZXNbaV0udXJsOworICAgICAgICAgICAgICAgICAgICBp
ZiAoIXVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgICAgICB2YXIgdXJpID0gbWFuYWdlci5maWxlTWFwcGluZy51cmlGb3JVUkwodXJsKTsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgdXJsICsg
IiAtPiAiICsgdXJpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIHVp
U291cmNlQ29kZXNDb3VudCA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNv
ZGVzKCkubGVuZ3RoOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJS
ZW1vdmluZyBzZWNvbmQgZmlsZSBzeXN0ZW0uIik7CisgICAgICAgICAgICAgICAgbWFuYWdlci5y
ZW1vdmVNb2NrRmlsZVN5c3RlbSgiL3Zhci93d3ciKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgIG51bWJlciBvZiB1aVNvdXJjZUNvZGVzIGluIHdvcmtzcGFj
ZSBhZnRlciByZW1vdmluZyBzZWNvbmQgZmlsZSBzeXN0ZW06ICIgKyBJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbW92aW5nIGZpcnN0IGZpbGUgc3lzdGVtLiIpOworICAg
ICAgICAgICAgICAgIG1hbmFnZXIucmVtb3ZlTW9ja0ZpbGVTeXN0ZW0oIi9mb28vYmFyIik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBudW1iZXIgb2YgdWlT
b3VyY2VDb2RlcyBpbiB3b3Jrc3BhY2UgYWZ0ZXIgcmVtb3ZpbmcgZmlyc3QgZmlsZSBzeXN0ZW06
ICIgKyBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCk7
CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
IF0pOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdHMgZmlsZSBzeXN0ZW0gcHJvamVjdC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLmh0bWwKaW5kZXggMDQxOTE5
NzRlZGExOWU3ODFhNzE1ZDExMTljYmFjNzYxZGY0Y2QxMy4uNzI4OWYxZjFlNjExZDkwNTk4NDQy
NGI2NzVjM2NmMzIwOGZkZjFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Zl
cnNpb24tY29udHJvbGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92ZXJzaW9u
LWNvbnRyb2xsZXIuaHRtbApAQCAtNCwyMSArNCw2IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVz
dCgpCiB7Ci0gICAgdmFyIE1vY2tTZXR0aW5nID0gZnVuY3Rpb24odmFsdWUpCi0gICAgewotICAg
ICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgIH07Ci0gICAgdmFyIHZhbHVlOwotICAgIE1v
Y2tTZXR0aW5nLnByb3RvdHlwZSA9IHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTsKLSAgICAgICAgfSwKLQotICAgICAgICBzZXQ6IGZ1
bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgICAg
ICB9Ci0gICAgfQotCiAgICAgZnVuY3Rpb24gY3JlYXRlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVJ
ZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHsgc291cmNlRmlsZUlkOiB1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcjogbGluZU51bWJlciwg
Y29uZGl0aW9uOiBjb25kaXRpb24sIGVuYWJsZWQ6IGVuYWJsZWQgfTsKQEAgLTU3LDcgKzQyLDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgdmFyIHNlcmlhbGl6ZWRCcmVha3Bv
aW50cyA9IFtdOwogICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2lu
dHNDb3VudDsgKytpKQogICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludHMu
cHVzaChjcmVhdGVCcmVha3BvaW50KCJmaWxlIiArIGkgKyAiLmpzIiwgaSAlIDEwLCAiIiwgdHJ1
ZSkpOwotICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50c1NldHRpbmcgPSBuZXcgTW9ja1Nl
dHRpbmcoc2VyaWFsaXplZEJyZWFrcG9pbnRzKTsKKyAgICAgICAgICAgICAgICB2YXIgYnJlYWtw
b2ludHNTZXR0aW5nID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1NldHRpbmcoc2VyaWFsaXplZEJy
ZWFrcG9pbnRzKTsKICAgICAgICAgICAgICAgICB2ZXJzaW9uQ29udHJvbGxlci5fY2xlYXJCcmVh
a3BvaW50c1doZW5Ub29NYW55KGJyZWFrcG9pbnRzU2V0dGluZywgbWF4QnJlYWtwb2ludHNDb3Vu
dCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk51bWJlciBvZiBi
cmVha3BvaW50cyBsZWZ0IGluIHRoZSBzZXR0aW5nIGFmdGVyIHRoZSB0ZXN0OiAiICsgYnJlYWtw
b2ludHNTZXR0aW5nLmdldCgpLmxlbmd0aCArICIuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>