<?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>209867</bug_id>
          
          <creation_ts>2020-04-01 11:18:30 -0700</creation_ts>
          <short_desc>Web Inspector: Storage: cannot clear out multiple or all local storage entries</short_desc>
          <delta_ts>2020-04-22 14:51:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210876</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636578</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-04-01 11:18:30 -0700</bug_when>
    <thetext>I&apos;d like to be able to delete multiple key/values pairs in local storage in WI.

This breaks down to a few requests:
- Allow selection of multiple rows
- Command-A to select all rows
- A button to clear all local storage
- Right click on &quot;Local Storage&quot; in the left sidebar with option to &quot;Clear All Items&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636580</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-04-01 11:22:54 -0700</bug_when>
    <thetext>Also, if I select a row, and then press delete, it doesn&apos;t by default select the next row. So I can&apos;t mash the delete key to remove a series of key/value pairs, either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636582</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-04-01 11:24:05 -0700</bug_when>
    <thetext>A good place to test this is to load

https://browserbench.org/MotionMark/developer.html

and press &quot;Run benchmark&quot;. That will set entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636617</commentid>
    <comment_count>3</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-01 13:04:31 -0700</bug_when>
    <thetext>(In reply to Jon Lee from comment #0)
&gt; - Allow selection of multiple rows
&gt; - Command-A to select all rows
These both should be solved if we switch from `WI.DataGrid` to `WI.Table`.  We&apos;d need to either add logic to `WI.Table` to support editing by default, or add custom logic to `WI.DOMStorageContentView` for editing.

&gt; - A button to clear all local storage
&gt; - Right click on &quot;Local Storage&quot; in the left sidebar with option to &quot;Clear All Items&quot;
We could do this with a new protocol command (i.e. `DOMStorage.clearDOMStorageItems` like `IndexedDB.clearObjectStore`), but we could also do this by successively calling `DOMStorage.removeDOMStorageItem` with each item.  This would be a lot of protocol traffic, but it would be backwards compatible.

We may want to extend many of these to `IndexedDB` as well :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638014</commentid>
    <comment_count>4</comment_count>
      <attachid>395542</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-05 20:22:36 -0700</bug_when>
    <thetext>Created attachment 395542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638015</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-04-05 20:23:27 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639219</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-08 12:16:39 -0700</bug_when>
    <thetext>Committed r259744: &lt;https://trac.webkit.org/changeset/259744&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395542.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639220</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-08 12:17:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61469103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644507</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-04-22 14:50:02 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #3)
&gt; (In reply to Jon Lee from comment #0)
&gt; &gt; - Allow selection of multiple rows
&gt; &gt; - Command-A to select all rows
&gt; These both should be solved if we switch from `WI.DataGrid` to `WI.Table`. 
&gt; We&apos;d need to either add logic to `WI.Table` to support editing by default,
&gt; or add custom logic to `WI.DOMStorageContentView` for editing.

These still haven&apos;t been addressed. Will split off another bug and relate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395542</attachid>
            <date>2020-04-05 20:22:36 -0700</date>
            <delta_ts>2020-04-08 12:16:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209867-20200405212235.patch</filename>
            <type>text/plain</type>
            <size>36577</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNjNTI5NTBmZGMzM2IyNTIxNWE4NGI0MDA3NTE4
OGVjMDdiY2U4ZTQuLmQxNDI1ZDRhYzAwOTY3NjU4YjhmNzUyM2VlN2NmMDYwODViOTZjZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTA1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
dG9yYWdlOiBjYW5ub3QgY2xlYXIgb3V0IG11bHRpcGxlIG9yIGFsbCBsb2NhbCBzdG9yYWdlIGVu
dHJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aW5zcGVjdG9yL3Byb3RvY29sL0RPTVN0b3JhZ2UuanNvbjoKKyAgICAgICAgQWRkIGEgYGNsZWFy
RE9NU3RvcmFnZUl0ZW1zYCBjb21tYW5kIGluc3RlYWQgb2YgY2FsbGluZyBgcmVtb3ZlRE9NU3Rv
cmFnZUl0ZW1gIGZvciBlYWNoIGtleS4KKwogMjAyMC0wNC0wNCAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgJ1x1JyBzaG91bGQgdGhyb3cgYW4gZWFy
bHkgU3ludGF4RXJyb3IgZXhjZXB0aW9uLCBidXQgaW5zdGVhZCBldmFsdWF0ZXMgdG8gJ3UnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNTg4MjkyYTkyZTgyNWZmNzQwNTIxODMwMzkzODJiMWMzZmQ2ZTkzNS4uNWM3
ZDBjZjIxMWY0NjNkODAxMDhhYzEzYTI3YmQ5MWJmNDg3ZmE3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDIwLTA0LTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdG9yYWdlOiBjYW5ub3QgY2xlYXIgb3V0IG11bHRp
cGxlIG9yIGFsbCBsb2NhbCBzdG9yYWdlIGVudHJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3Ivc3RvcmFnZS9jbGVhckRP
TVN0b3JhZ2VJdGVtcy5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3Ivc3RvcmFnZS9nZXRE
T01TdG9yYWdlSXRlbXMuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL3N0b3JhZ2UvcmVt
b3ZlRE9NU3RvcmFnZUl0ZW0uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL3N0b3JhZ2Uv
c2V0RE9NU3RvcmFnZUl0ZW0uaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmNsZWFyRE9NU3RvcmFnZUl0ZW1zKTogQWRkZWQuCisgICAgICAgIEFkZCBh
IGBjbGVhckRPTVN0b3JhZ2VJdGVtc2AgY29tbWFuZCBpbnN0ZWFkIG9mIGNhbGxpbmcgYHJlbW92
ZURPTVN0b3JhZ2VJdGVtYCBmb3IgZWFjaCBrZXkuCisKIDIwMjAtMDQtMDQgIFJvYiBCdWlzICA8
cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgTG9ja0hpc3RvcnkgcGFyYW1ldGVy
IGZyb20gbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRl
eCAwMDM3YzU3ZGNjMmE1MWRiNTRhYWY0ZDUwYzBmMDg5ODM1YTFhMTA4Li42OTVkYzJhNjM4YjEw
YTE3ODdlMGUyYWJiODc1ZmZjM2EwY2I5MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NCBAQAorMjAyMC0wNC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3RvcmFnZTogY2Fubm90IGNsZWFyIG91dCBt
dWx0aXBsZSBvciBhbGwgbG9jYWwgc3RvcmFnZSBlbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTVN0
b3JhZ2VPYmplY3QuanM6CisgICAgICAgIChXSS5ET01TdG9yYWdlT2JqZWN0LnByb3RvdHlwZS5y
ZW1vdmVJdGVtKToKKyAgICAgICAgKFdJLkRPTVN0b3JhZ2VPYmplY3QucHJvdG90eXBlLnNldEl0
ZW0pOgorICAgICAgICAoV0kuRE9NU3RvcmFnZU9iamVjdC5wcm90b3R5cGUuY2xlYXIpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkRPTVN0b3JhZ2VPYmplY3QucHJvdG90eXBlLml0ZW1zQ2xlYXJlZCk6
CisgICAgICAgIChXSS5ET01TdG9yYWdlT2JqZWN0LnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6Cisg
ICAgICAgIChXSS5ET01TdG9yYWdlT2JqZWN0LnByb3RvdHlwZS5pdGVtQWRkZWQpOgorICAgICAg
ICAoV0kuRE9NU3RvcmFnZU9iamVjdC5wcm90b3R5cGUuaXRlbVVwZGF0ZWQpOgorICAgICAgICBB
ZGQgc29tZSBhc3NlcnRpb25zLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01T
dG9yYWdlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5ET01TdG9yYWdlQ29udGVudFZpZXcp
OgorICAgICAgICAoV0kuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdh
dGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUu
X2hhbmRsZUNsZWFyTmF2aWdhdGlvbkl0ZW1DbGlja2VkKTogQWRkZWQuCisgICAgICAgIEFkZCBh
ICJDbGVhciIgbmF2aWdhdGlvbiBpdGVtIHRoYXQgY2FsbHMgdGhlIG5ldyBgRE9NU3RvcmFnZS5j
bGVhckRPTVN0b3JhZ2VJdGVtc2AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Rh
dGFHcmlkLmpzOgorICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLnJlbW92ZUNoaWxkKToK
KyAgICAgICAgSWYgdGhlIHJlbW92ZWQgaXRlbSB3YXMgc2VsZWN0ZWQsIHNlbGVjdCB0aGUgbmV4
dCAob3IgcHJldmlvdXMgaWYgdGhlcmUgaXMgbm8gbmV4dCkgaXRlbS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvb2tpZVN0b3JhZ2VD
b250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5D
b29raWVTdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGVhck5hdmlnYXRpb25J
dGVtQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogYWxzbyBhZGQgYSAiQ2xlYXIi
IG5hdmlnYXRpb24gaXRlbSB0aGF0IGNhbGxzIGBQYWdlLmRlbGV0ZUNvb2tpZWAgZm9yIGVhY2gg
cm93LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9ET01TdG9yYWdlT2JzZXJ2
ZXIuanM6CisgICAgICAgIChXSS5ET01TdG9yYWdlT2JzZXJ2ZXIucHJvdG90eXBlLmRvbVN0b3Jh
Z2VJdGVtVXBkYXRlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01T
dG9yYWdlTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRPTVN0b3JhZ2VNYW5hZ2VyLnByb3RvdHlw
ZS5pdGVtVXBkYXRlZCk6CisgICAgICAgIERyaXZlLWJ5OiByZW5hbWUgYHZhbHVlYCB0byBgbmV3
VmFsdWVgIHRvIG1hdGNoIHRoZSBwcm90b2NvbC4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKwogMjAyMC0wNC0wMyAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczog
ZGlzY2xvc3VyZSBhcnJvd3Mgc2hvdWxkIGJlIHNob3duIGlmIGEgZm9sZGVyIGlzIGFkZGVkIHRv
IHRoZSBuYXZpZ2F0aW9uIHNpZGViYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NU3RvcmFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET01TdG9yYWdlLmpzb24KaW5kZXggYzQ0MjNiNGU1NTBh
N2Y3YWU2NDI2OTY5ZTc2M2RjMWIyYTRjODY5OS4uYWQwMGRkN2M3MzdlN2QxYjllNDA3MWM1NmJl
MGQ4YmQ2ZDRhNWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9ET01TdG9yYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9ET01TdG9yYWdlLmpzb24KQEAgLTUyLDYgKzUyLDEyIEBACiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9yYWdlSWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiIH0s
CiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXkiLCAidHlwZSI6ICJzdHJpbmciIH0KICAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
Y2xlYXJET01TdG9yYWdlSXRlbXMiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9yYWdlSWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiIH0K
KyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcAppbmRleCA1MTM5YzFiNzg2NGRhNWY3MjllOTM0OGZiZjMwYTJiYzBm
N2U1MmNmLi43N2YwY2NjZDJmMmE1MTdjZTBiN2I3N2ZiMDE1ZTRjNDBhZmU0NmRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuY3BwCkBAIC0xNDUsNiArMTQ1LDE4IEBAIHZvaWQgSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50OjpyZW1vdmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvCiAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0oZnJhbWUsIGtleSk7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckRPTVN0b3JhZ2VJdGVtcyhFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkKQoreworICAg
IEZyYW1lKiBmcmFtZTsKKyAgICBhdXRvIHN0b3JhZ2VBcmVhID0gZmluZFN0b3JhZ2VBcmVhKGVy
cm9yU3RyaW5nLCBzdG9yYWdlSWQsIGZyYW1lKTsKKyAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7Cisg
ICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgc3RvcmFnZSBmb3IgZ2l2ZW4gc3RvcmFnZUlk
Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZUFyZWEtPmNsZWFyKGZy
YW1lKTsKK30KKwogU3RyaW5nIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKFN0
b3JhZ2UmIHN0b3JhZ2UpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RvcmFnZS5mcmFt
ZSgpLT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggYjU3ODY2MGZiYjNjZTE3
NmU0ZTBhZWI1YTIyMDIxZGM4ODBlNDdmMC4uZGRiYjVkNTM0N2YzYmVhYmUzY2ZhYjIwMWQ2ODM4
Yzg5NmQyMWUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCkBAIC02NCw2ICs2NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0cmluZyYsIGNvbnN0IEpTT046
Ok9iamVjdCYgc3RvcmFnZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxKU09OOjpBcnJheU9mPFN0
cmluZz4+PiYgaXRlbXMpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0oRXJy
b3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBr
ZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlRE9NU3Rv
cmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgY29u
c3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJET01TdG9yYWdlSXRlbXMo
RXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCkgb3ZlcnJpZGU7CiAK
ICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZERpc3BhdGNoRE9N
U3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGFlMjNhOWNjN2M0ZGQ1N2Q0MjQxZTJi
MWI5ZTZlNjU4ZjIzMDczOTEuLjIzNzVmMTBjNTY2NjE0ZGI2NmQzODE2M2EwOTY5YjdjOWVmZDcw
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMjY0LDkgKzI2NCwxMiBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJDaGlsZHJlbiJdID0gIkNoaWxkcmVuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNpcGhlciJdID0gIkNpcGhlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGFtcCB0byBz
UkdCIl0gPSAiQ2xhbXAgdG8gc1JHQiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGFzc2VzIl0gPSAi
Q2xhc3NlcyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBDb29raWVzIl0gPSAiQ2xlYXIgQ29v
a2llcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBGaWx0ZXJzIl0gPSAiQ2xlYXIgRmlsdGVy
cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBMb2NhbCBTdG9yYWdlIl0gPSAiQ2xlYXIgTG9j
YWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBMb2ciXSA9ICJDbGVhciBMb2ci
OwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgTmV0d29yayBJdGVtcyAoJXMpIl0gPSAiQ2xlYXIg
TmV0d29yayBJdGVtcyAoJXMpIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNsZWFyIFNlc3Npb24gU3Rv
cmFnZSJdID0gIkNsZWFyIFNlc3Npb24gU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVh
ciBUaW1lbGluZSAoJXMpIl0gPSAiQ2xlYXIgVGltZWxpbmUgKCVzKSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJDbGVhciBmb2N1cyJdID0gIkNsZWFyIGZvY3VzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNs
ZWFyIGxvZyAoJXMgb3IgJXMpIl0gPSAiQ2xlYXIgbG9nICglcyBvciAlcykiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NU3Rv
cmFnZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9ET01TdG9yYWdlTWFuYWdlci5qcwppbmRleCBkYjljMjJhZjFiYzE4YzliYmMzYmEy
MGFjZmIzODZhZTU2YzE4N2ZkLi5lYzU0MjgxOTgwY2JlMjY3MmE1MTdiYTFkMDAwZDhhZjg5Yzgx
NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9ET01TdG9yYWdlTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01TdG9yYWdlTWFuYWdlci5qcwpAQCAtMTMxLDEz
ICsxMzEsMTMgQEAgV0kuRE9NU3RvcmFnZU1hbmFnZXIgPSBjbGFzcyBET01TdG9yYWdlTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgZG9tU3RvcmFnZS5pdGVtQWRkZWQoa2V5
LCB2YWx1ZSk7CiAgICAgfQogCi0gICAgaXRlbVVwZGF0ZWQoc3RvcmFnZUlkLCBrZXksIG9sZFZh
bHVlLCB2YWx1ZSkKKyAgICBpdGVtVXBkYXRlZChzdG9yYWdlSWQsIGtleSwgb2xkVmFsdWUsIG5l
d1ZhbHVlKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZW5hYmxlZCk7CiAK
ICAgICAgICAgbGV0IGRvbVN0b3JhZ2UgPSB0aGlzLl9kb21TdG9yYWdlRm9ySWRlbnRpZmllcihz
dG9yYWdlSWQpOwogICAgICAgICBpZiAoZG9tU3RvcmFnZSkKLSAgICAgICAgICAgIGRvbVN0b3Jh
Z2UuaXRlbVVwZGF0ZWQoa2V5LCBvbGRWYWx1ZSwgdmFsdWUpOworICAgICAgICAgICAgZG9tU3Rv
cmFnZS5pdGVtVXBkYXRlZChrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CiAgICAgfQogCiAgICAg
Ly8gSW5zcGVjdG9yT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9ET01TdG9yYWdlT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTVN0b3JhZ2VPYmplY3QuanMKaW5kZXggOGZk
NGU4NWMwN2RlY2Y1OTVjZmYwZGNiYWMwNjgwMDBmOWYzZTc0NS4uYTNmMjcyMzNhOWIxZDUzMzA2
YjRiYmZjNTBkMDRkZGQ1YTlhMzU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTVN0b3JhZ2VPYmplY3QuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTVN0b3JhZ2VPYmplY3QuanMKQEAg
LTc1LDM4ICs3NSw2NCBAQCBXSS5ET01TdG9yYWdlT2JqZWN0ID0gY2xhc3MgRE9NU3RvcmFnZU9i
amVjdCBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVtb3ZlSXRlbShrZXkpCiAgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9lbnRyaWVzLmhhcyhrZXkpKTsKKwogICAgICAgICBs
ZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7Ci0gICAgICAgIHRhcmdldC5ET01T
dG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSk7CisgICAgICAg
IHJldHVybiB0YXJnZXQuRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMu
X2lkLCBrZXkpOwogICAgIH0KIAogICAgIHNldEl0ZW0oa2V5LCB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKLSAgICAgICAgdGFyZ2V0
LkRPTVN0b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSk7
CisgICAgICAgIHJldHVybiB0YXJnZXQuRE9NU3RvcmFnZUFnZW50LnNldERPTVN0b3JhZ2VJdGVt
KHRoaXMuX2lkLCBrZXksIHZhbHVlKTsKICAgICB9CiAKKyAgICBjbGVhcigpCisgICAgeworICAg
ICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisKKyAgICAgICAgLy8g
Q09NUEFUSUJJTElUWSAoaU9TIDEzLjQpOiBET01TdG9yYWdlLmNsZWFyRE9NU3RvcmFnZUl0ZW1z
IGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAoIXRhcmdldC5oYXNDb21tYW5kKCJET01T
dG9yYWdlLmNsZWFyRE9NU3RvcmFnZUl0ZW1zIikpIHsKKyAgICAgICAgICAgIGxldCBwcm9taXNl
cyA9IFtdOworICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIHRoaXMuX2VudHJpZXMua2V5cygp
KQorICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5yZW1vdmVJdGVtKGtleSkpOwor
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJldHVybiB0YXJnZXQuRE9NU3RvcmFnZUFnZW50LmNsZWFyRE9NU3RvcmFnZUl0ZW1z
KHRoaXMuX2lkKTsKKyAgICB9CisKKyAgICAvLyBET01TdG9yYWdlTWFuYWdlcgorCiAgICAgaXRl
bXNDbGVhcmVkKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2VudHJpZXMuY2xlYXIoKTsKKwogICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5ET01TdG9yYWdlT2JqZWN0LkV2
ZW50Lkl0ZW1zQ2xlYXJlZCk7CiAgICAgfQogCiAgICAgaXRlbVJlbW92ZWQoa2V5KQogICAgIHsK
LSAgICAgICAgdGhpcy5fZW50cmllcy5kZWxldGUoa2V5KTsKKyAgICAgICAgbGV0IHJlbW92ZWQg
PSB0aGlzLl9lbnRyaWVzLmRlbGV0ZShrZXkpOworICAgICAgICBjb25zb2xlLmFzc2VydChyZW1v
dmVkKTsKKwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5ET01TdG9y
YWdlT2JqZWN0LkV2ZW50Lkl0ZW1SZW1vdmVkLCB7a2V5fSk7CiAgICAgfQogCiAgICAgaXRlbUFk
ZGVkKGtleSwgdmFsdWUpCiAgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZW50
cmllcy5oYXMoa2V5KSk7CiAgICAgICAgIHRoaXMuX2VudHJpZXMuc2V0KGtleSwgdmFsdWUpOwor
CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTVN0b3JhZ2VPYmpl
Y3QuRXZlbnQuSXRlbUFkZGVkLCB7a2V5LCB2YWx1ZX0pOwogICAgIH0KIAotICAgIGl0ZW1VcGRh
dGVkKGtleSwgb2xkVmFsdWUsIHZhbHVlKQorICAgIGl0ZW1VcGRhdGVkKGtleSwgb2xkVmFsdWUs
IG5ld1ZhbHVlKQogICAgIHsKLSAgICAgICAgdGhpcy5fZW50cmllcy5zZXQoa2V5LCB2YWx1ZSk7
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTVN0b3JhZ2VPYmpl
Y3QuRXZlbnQuSXRlbVVwZGF0ZWQsIHtrZXksIG9sZFZhbHVlLCB2YWx1ZX0pOworICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl9lbnRyaWVzLmdldChrZXkpID09PSBvbGRWYWx1ZSk7CisgICAg
ICAgIHRoaXMuX2VudHJpZXMuc2V0KGtleSwgbmV3VmFsdWUpOworCisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTVN0b3JhZ2VPYmplY3QuRXZlbnQuSXRlbVVwZGF0
ZWQsIHtrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZX0pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RPTVN0b3JhZ2VP
YnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L0RPTVN0b3JhZ2VPYnNlcnZlci5qcwppbmRleCA3NGRhMjg0NjE2OGMwMzk5ZWI5ZDAxYjBjOGQw
MWFmYTE5NDBkNDExLi45ZjI0ZmFhMjhlYzUxOWJkZjRlZTU2M2E2ZGM0ZTk5ZTViYzZkNGU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9E
T01TdG9yYWdlT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvRE9NU3RvcmFnZU9ic2VydmVyLmpzCkBAIC00Myw4ICs0Myw4IEBAIFdJ
LkRPTVN0b3JhZ2VPYnNlcnZlciA9IGNsYXNzIERPTVN0b3JhZ2VPYnNlcnZlciBleHRlbmRzIElu
c3BlY3RvckJhY2tlbmQuRGlzcGF0CiAgICAgICAgIFdJLmRvbVN0b3JhZ2VNYW5hZ2VyLml0ZW1B
ZGRlZChzdG9yYWdlSWQsIGtleSwgdmFsdWUpOwogICAgIH0KIAotICAgIGRvbVN0b3JhZ2VJdGVt
VXBkYXRlZChzdG9yYWdlSWQsIGtleSwgb2xkVmFsdWUsIHZhbHVlKQorICAgIGRvbVN0b3JhZ2VJ
dGVtVXBkYXRlZChzdG9yYWdlSWQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlKQogICAgIHsKLSAg
ICAgICAgV0kuZG9tU3RvcmFnZU1hbmFnZXIuaXRlbVVwZGF0ZWQoc3RvcmFnZUlkLCBrZXksIG9s
ZFZhbHVlLCB2YWx1ZSk7CisgICAgICAgIFdJLmRvbVN0b3JhZ2VNYW5hZ2VyLml0ZW1VcGRhdGVk
KHN0b3JhZ2VJZCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUpOwogICAgIH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db29raWVTdG9y
YWdlQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKaW5kZXggYzdlYTJhZTZjYzE2ZjE1YzA5
NTQ3NDc5YjQwZjc1ZjFjNTFmOWZhNC4uZjc4NjE4NDRmMjBjNWM4MDY2OTcwNTQ1NDgwODY2YmI4
OWQ0NThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAt
NDIsNiArNDIsMTAgQEAgV0kuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3ID0gY2xhc3MgQ29va2ll
U3RvcmFnZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgICAgICB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0o
ImNvb2tpZS1zdG9yYWdlLXJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2Vz
L1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZl
bnQuQ2xpY2tlZCwgdGhpcy5fcmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAg
IHRoaXMuX2NsZWFyQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0oImNvb2tpZS1zdG9yYWdlLWNsZWFyIiwgV0kuVUlTdHJpbmcoIkNsZWFyIENvb2tpZXMi
KSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbVRyYXNoLnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRo
aXMuX2NsZWFyQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2
aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAgICAgICAgdGhpcy5fY2xlYXJC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUNsZWFyTmF2aWdhdGlvbkl0ZW1DbGlja2Vk
LCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTUyLDYgKzU2LDcgQEAgV0kuQ29v
a2llU3RvcmFnZUNvbnRlbnRWaWV3ID0gY2xhc3MgQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgaWYgKHRoaXMuX3NldENvb2tpZUJ1dHRvbk5hdmln
YXRpb25JdGVtKQogICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fc2V0Q29v
a2llQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICBuYXZpZ2F0aW9uSXRl
bXMucHVzaCh0aGlzLl9jbGVhckJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJu
IG5hdmlnYXRpb25JdGVtczsKICAgICB9CiAKQEAgLTM5Miw2ICszOTcsMTUgQEAgV0kuQ29va2ll
U3RvcmFnZUNvbnRlbnRWaWV3ID0gY2xhc3MgQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFYKICAgICAgICAgdGhpcy5fcmVsb2FkQ29va2llcygpOwogICAgIH0KIAor
ICAgIF9oYW5kbGVDbGVhck5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKyAgICAgICAgZm9yIChs
ZXQgY29va2llIG9mIHRoaXMuX2Nvb2tpZXMuc3BsaWNlKDApKQorICAgICAgICAgICAgdGFyZ2V0
LlBhZ2VBZ2VudC5kZWxldGVDb29raWUoY29va2llLm5hbWUsIGNvb2tpZS51cmwpOworCisgICAg
ICAgIHRoaXMuX3RhYmxlLnJlbG9hZERhdGEoKTsKKyAgICB9CisKICAgICBfcmVsb2FkQ29va2ll
cygpCiAgICAgewogICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01TdG9yYWdlQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9ET01TdG9yYWdlQ29udGVudFZpZXcuanMKaW5kZXggZTBmZDg1ZWI1Mjc4OTc5
MmI4NzYxMGY3MzIwNzdmYmViNmY0ZTE4NC4uNTc1OTlhN2RiNmQyZWRkNWM2MDllNjFkZGY4YmZj
ZGYzYTZjNDFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtNTUs
NiArNTUsMTEgQEAgV0kuRE9NU3RvcmFnZUNvbnRlbnRWaWV3ID0gY2xhc3MgRE9NU3RvcmFnZUNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fZmlsdGVyQmFy
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuRmlsdGVyQmFyTmF2aWdhdGlvbkl0ZW07CiAgICAgICAg
IHRoaXMuX2ZpbHRlckJhck5hdmlnYXRpb25JdGVtLmZpbHRlckJhci5hZGRFdmVudExpc3RlbmVy
KFdJLkZpbHRlckJhci5FdmVudC5GaWx0ZXJEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZUZpbHRlckJh
ckZpbHRlckRpZENoYW5nZSwgdGhpcyk7CiAKKyAgICAgICAgbGV0IGNsZWFyQnV0dG9uTGFiZWwg
PSByZXByZXNlbnRlZE9iamVjdC5pc0xvY2FsU3RvcmFnZSgpID8gV0kuVUlTdHJpbmcoIkNsZWFy
IExvY2FsIFN0b3JhZ2UiKSA6IFdJLlVJU3RyaW5nKCJDbGVhciBTZXNzaW9uIFN0b3JhZ2UiKTsK
KyAgICAgICAgdGhpcy5fY2xlYXJCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbSgiZG9tLXN0b3JhZ2UtY2xlYXIiLCBjbGVhckJ1dHRvbkxhYmVsLCAiSW1h
Z2VzL05hdmlnYXRpb25JdGVtVHJhc2guc3ZnIiwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5fY2xl
YXJCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9u
SXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9jbGVhckJ1dHRvbk5h
dmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZl
bnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlQ2xlYXJOYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMp
OworCiAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7CiAgICAgfQogCkBAIC02Miw3ICs2NywxMSBA
QCBXSS5ET01TdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBET01TdG9yYWdlQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAg
ewotICAgICAgICByZXR1cm4gW3RoaXMuX2ZpbHRlckJhck5hdmlnYXRpb25JdGVtXTsKKyAgICAg
ICAgcmV0dXJuIFsKKyAgICAgICAgICAgIHRoaXMuX2ZpbHRlckJhck5hdmlnYXRpb25JdGVtLAor
ICAgICAgICAgICAgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwKKyAgICAgICAgICAgIHRo
aXMuX2NsZWFyQnV0dG9uTmF2aWdhdGlvbkl0ZW0sCisgICAgICAgIF07CiAgICAgfQogCiAgICAg
c2F2ZVRvQ29va2llKGNvb2tpZSkKQEAgLTI5MCw2ICsyOTksMTEgQEAgV0kuRE9NU3RvcmFnZUNv
bnRlbnRWaWV3ID0gY2xhc3MgRE9NU3RvcmFnZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmZpbHRlclRleHQgPSB0aGlzLl9m
aWx0ZXJCYXJOYXZpZ2F0aW9uSXRlbS5maWx0ZXJCYXIuZmlsdGVycy50ZXh0IHx8ICIiOwogICAg
IH0KKworICAgIF9oYW5kbGVDbGVhck5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7
CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2xlYXIoKTsKKyAgICB9CiB9OwogCiBX
SS5ET01TdG9yYWdlQ29udGVudFZpZXcuRHVwbGljYXRlS2V5U3R5bGVDbGFzc05hbWUgPSAiZHVw
bGljYXRlLWtleSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RhdGFHcmlkLmpzCmluZGV4IDhmNjBlN2U3MDgxYTQxNTY5YmMyY2U0MGRmNzM0
N2U0MTRmY2E2MTQuLmUwZDA1ZGRiNTc3YjYwNTZhZjNlOWY5ZTU1YmU2ZDVlOTM0M2Q2ZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFH
cmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Rh
dGFHcmlkLmpzCkBAIC0xMjMwLDYgKzEyMzAsOCBAQCBXSS5EYXRhR3JpZCA9IGNsYXNzIERhdGFH
cmlkIGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAoY2hpbGQucGFyZW50ICE9PSB0aGlzKQog
ICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGxldCB3YXNTZWxlY3RlZCA9IHRoaXMuc2Vs
ZWN0ZWROb2RlID09PSBjaGlsZCB8fCBjaGlsZC5zZWxlY3RlZDsKKwogICAgICAgICBjaGlsZC5k
ZXNlbGVjdCgpOwogICAgICAgICBjaGlsZC5fZGV0YWNoKCk7CiAKQEAgLTEyNDAsNiArMTI0Miw4
IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAg
IGlmIChjaGlsZC5uZXh0U2libGluZykKICAgICAgICAgICAgIGNoaWxkLm5leHRTaWJsaW5nLnBy
ZXZpb3VzU2libGluZyA9IGNoaWxkLnByZXZpb3VzU2libGluZzsKIAorICAgICAgICBsZXQgbmV4
dENoaWxkVG9TZWxlY3QgPSB3YXNTZWxlY3RlZCA/IChjaGlsZC5uZXh0U2libGluZyB8fCBjaGls
ZC5wcmV2aW91c1NpYmxpbmcpIDogbnVsbDsKKwogICAgICAgICBjaGlsZC5kYXRhR3JpZCA9IG51
bGw7CiAgICAgICAgIGNoaWxkLnBhcmVudCA9IG51bGw7CiAgICAgICAgIGNoaWxkLm5leHRTaWJs
aW5nID0gbnVsbDsKQEAgLTEyNDcsNiArMTI1MSw4IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0
YUdyaWQgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3Ro
IDw9IDApCiAgICAgICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gZmFsc2U7CisgICAgICAgIGVs
c2UgaWYgKG5leHRDaGlsZFRvU2VsZWN0KQorICAgICAgICAgICAgbmV4dENoaWxkVG9TZWxlY3Qu
c2VsZWN0KCk7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoIWNoaWxkLmlzUGxhY2Vob2xkZXJO
b2RlLCAiU2hvdWxkbid0IGRlbGV0ZSB0aGUgcGxhY2Vob2xkZXIgbm9kZS4iKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjAxZjAwYTQ0MTM1NTk3OWZiZjU2OTFmODY4N2I2ZTBiYTc0ODJiYi4uMTIzMjZmMjY2
ZmNlZWUzYWQxNTE1ZWY3Y2ZmZDc5MWQ1NjdiYzI4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisy
MDIwLTA0LTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBTdG9yYWdlOiBjYW5ub3QgY2xlYXIgb3V0IG11bHRpcGxlIG9yIGFsbCBs
b2NhbCBzdG9yYWdlIGVudHJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL3N0b3JhZ2UvY2xlYXJET01TdG9yYWdlSXRlbXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0b3JhZ2UvY2xlYXJET01TdG9yYWdlSXRl
bXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS9kb21T
dG9yYWdlLWV2ZW50cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdG9yYWdlL2RvbVN0b3Jh
Z2UtZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS9nZXRE
T01TdG9yYWdlSXRlbXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0b3JhZ2Uv
Z2V0RE9NU3RvcmFnZUl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3N0b3JhZ2UvcmVtb3ZlRE9NU3RvcmFnZUl0ZW0uaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0b3JhZ2UvcmVtb3ZlRE9NU3RvcmFnZUl0ZW0tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS9zZXRET01TdG9yYWdlSXRlbS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS9zZXRET01TdG9yYWdlSXRlbS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdG9yYWdlL3Jlc291cmNlcy9z
dG9yYWdlLXV0aWxpdGllcy5qczogQWRkZWQuCisgICAgICAgIChjbGVhclN0b3JhZ2VzKToKKyAg
ICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5TdG9yYWdl
LmFzeW5jIGxvZ0VudHJpZXMpOgorCiAyMDIwLTA0LTA0ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSB0ZXN0IGJhc2VsaW5lIGFmdGVyIHIy
NTk0MzggYW5kIGdhcmRlbiBjcmFzaGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3RvcmFnZS9jbGVhckRPTVN0b3JhZ2VJdGVtcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3RvcmFnZS9jbGVhckRPTVN0b3JhZ2VJdGVtcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjVlZTNjY2MwZjM3ZTkwMzM5YTQ0YzFhNmY0Y2NlOGNiMzFlYzU1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL2NsZWFyRE9NU3RvcmFn
ZUl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitUZXN0cyBmb3IgRE9NU3RvcmFn
ZS5jbGVhckRPTVN0b3JhZ2VJdGVtcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERPTVN0
b3JhZ2UuY2xlYXJET01TdG9yYWdlSXRlbXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01TdG9y
YWdlLmNsZWFyRE9NU3RvcmFnZUl0ZW1zLlNlc3Npb24KK1BBU1M6IFNob3VsZCBoYXZlIGEgRE9N
U3RvcmFnZU9iamVjdCBmb3Igc2Vzc2lvblN0b3JhZ2UuCisKK0dldHRpbmcgRE9NIHN0b3JhZ2Ug
ZW50cmllcy4uLgorWworICBbCisgICAgImZvbyIsCisgICAgImJhciIKKyAgXQorXQorCitDbGVh
cmluZyBzdG9yYWdlLi4uCisKK0dldHRpbmcgRE9NIHN0b3JhZ2UgZW50cmllcy4uLgorW10KKwor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NU3RvcmFnZS5jbGVhckRPTVN0b3JhZ2VJdGVtcy5M
b2NhbAorUEFTUzogU2hvdWxkIGhhdmUgYSBET01TdG9yYWdlT2JqZWN0IGZvciBsb2NhbFN0b3Jh
Z2UuCisKK0dldHRpbmcgRE9NIHN0b3JhZ2UgZW50cmllcy4uLgorWworICBbCisgICAgImZvbyIs
CisgICAgImJhciIKKyAgXQorXQorCitDbGVhcmluZyBzdG9yYWdlLi4uCisKK0dldHRpbmcgRE9N
IHN0b3JhZ2UgZW50cmllcy4uLgorW10KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3RvcmFnZS9jbGVhckRPTVN0b3JhZ2VJdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0b3JhZ2UvY2xlYXJET01TdG9yYWdlSXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWQx
MTc2NzE1NzkwZWYwYjEwYjVlZTc4ZGZlMDc2YTAwNGIxODQwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvY2xlYXJET01TdG9yYWdlSXRlbXMuaHRtbApA
QCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RvcmFnZS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRE9NU3RvcmFnZS5jbGVhckRPTVN0
b3JhZ2VJdGVtcyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
RE9NU3RvcmFnZS5jbGVhckRPTVN0b3JhZ2VJdGVtcy5TZXNzaW9uIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJUZXN0IHRoYXQgRE9NU3RvcmFnZS5jbGVhckRPTVN0b3JhZ2VJdGVtcyB3b3JrcyB3
aXRoIFNlc3Npb24gc3RvcmFnZS4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgbGV0IHNlc3Npb25TdG9yYWdlID0gV0kuZG9tU3RvcmFnZU1hbmFnZXIuZG9tU3RvcmFnZU9i
amVjdHMuZmluZCgoeCkgPT4gIXguaXNMb2NhbFN0b3JhZ2UoKSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2Vzc2lvblN0b3JhZ2UsICJTaG91bGQgaGF2ZSBhIERPTVN0
b3JhZ2VPYmplY3QgZm9yIHNlc3Npb25TdG9yYWdlLiIpOworCisgICAgICAgICAgICBhd2FpdCBJ
bnNwZWN0b3JUZXN0LlN0b3JhZ2UubG9nRW50cmllcyhzZXNzaW9uU3RvcmFnZSk7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDbGVhcmluZyBzdG9yYWdlLi4uIik7CisgICAgICAg
ICAgICBhd2FpdCBzZXNzaW9uU3RvcmFnZS5jbGVhcigpOworCisgICAgICAgICAgICBhd2FpdCBJ
bnNwZWN0b3JUZXN0LlN0b3JhZ2UubG9nRW50cmllcyhzZXNzaW9uU3RvcmFnZSk7CisgICAgICAg
IH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJE
T01TdG9yYWdlLmNsZWFyRE9NU3RvcmFnZUl0ZW1zLkxvY2FsIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJUZXN0IHRoYXQgRE9NU3RvcmFnZS5jbGVhckRPTVN0b3JhZ2VJdGVtcyB3b3JrcyB3aXRo
IExvY2FsIHN0b3JhZ2UuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBsb2NhbFN0b3JhZ2UgPSBXSS5kb21TdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlT2JqZWN0cy5m
aW5kKCh4KSA9PiB4LmlzTG9jYWxTdG9yYWdlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGxvY2FsU3RvcmFnZSwgIlNob3VsZCBoYXZlIGEgRE9NU3RvcmFnZU9iamVj
dCBmb3IgbG9jYWxTdG9yYWdlLiIpOworCisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LlN0b3JhZ2UubG9nRW50cmllcyhsb2NhbFN0b3JhZ2UpOworCisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiQ2xlYXJpbmcgc3RvcmFnZS4uLiIpOworICAgICAgICAgICAgYXdhaXQgbG9j
YWxTdG9yYWdlLmNsZWFyKCk7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuU3Rv
cmFnZS5sb2dFbnRyaWVzKGxvY2FsU3RvcmFnZSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjbGVhclN0b3JhZ2VzKCkiLCAoKSA9PiB7
CisgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBmb3Ig
RE9NU3RvcmFnZS5jbGVhckRPTVN0b3JhZ2VJdGVtcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS9kb21TdG9yYWdlLWV2ZW50
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS9kb21TdG9yYWdl
LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYzdjMjFlZjE3OTI1YTAzMTdiMWQ4ZGEwYjNlMDIw
YTExYmFlY2M5YS4uNzU5NDVjODAyNzY5YTBiMmJlZTQyZGM1YmM0YWJjZTRjMGE2NzRkMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvZG9tU3RvcmFnZS1ldmVudHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL2RvbVN0b3Jh
Z2UtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTOiBTaG91bGQgaGF2
ZSB2YWx1ZSAneHZhbHVlJy4KIFBBU1M6IFdJLkRPTVN0b3JhZ2VPYmplY3QuRXZlbnQuSXRlbVVw
ZGF0ZWQKIFBBU1M6IFNob3VsZCB1cGRhdGUga2V5ICd4Jy4KIFBBU1M6IFNob3VsZCBoYXZlIG9s
ZFZhbHVlICd2YWx1ZTEnLgotUEFTUzogU2hvdWxkIGhhdmUgbmV3IHZhbHVlICd2YWx1ZTInLgor
UEFTUzogU2hvdWxkIGhhdmUgbmV3VmFsdWUgJ3ZhbHVlMicuCiBQQVNTOiBXSS5ET01TdG9yYWdl
T2JqZWN0LkV2ZW50Lkl0ZW1SZW1vdmVkCiBQQVNTOiBTaG91bGQgcmVtb3ZlIGtleSAneCcuCiBQ
QVNTOiBXSS5ET01TdG9yYWdlT2JqZWN0LkV2ZW50Lkl0ZW1zQ2xlYXJlZApAQCAtMjksNyArMjks
NyBAQCBQQVNTOiBTaG91bGQgaGF2ZSB2YWx1ZSAneHZhbHVlJy4KIFBBU1M6IFdJLkRPTVN0b3Jh
Z2VPYmplY3QuRXZlbnQuSXRlbVVwZGF0ZWQKIFBBU1M6IFNob3VsZCB1cGRhdGUga2V5ICd4Jy4K
IFBBU1M6IFNob3VsZCBoYXZlIG9sZFZhbHVlICd2YWx1ZTEnLgotUEFTUzogU2hvdWxkIGhhdmUg
bmV3IHZhbHVlICd2YWx1ZTInLgorUEFTUzogU2hvdWxkIGhhdmUgbmV3VmFsdWUgJ3ZhbHVlMicu
CiBQQVNTOiBXSS5ET01TdG9yYWdlT2JqZWN0LkV2ZW50Lkl0ZW1SZW1vdmVkCiBQQVNTOiBTaG91
bGQgcmVtb3ZlIGtleSAneCcuCiBQQVNTOiBXSS5ET01TdG9yYWdlT2JqZWN0LkV2ZW50Lkl0ZW1z
Q2xlYXJlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvZG9tU3Rv
cmFnZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL2RvbVN0b3Jh
Z2UtZXZlbnRzLmh0bWwKaW5kZXggYzg0OTg4M2MwYjBmZWE1NWY2NmNlMTRhMDAxNGQ1YjNmODVm
OTYzOS4uZmZkMmVhZDFhMjBiNDY5ODg1ZDczYThkNWMzMGNiZmJjMzgzYjRhYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvZG9tU3RvcmFnZS1ldmVudHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS9kb21TdG9yYWdlLWV2ZW50cy5odG1s
CkBAIC0yNSwxNSArMjUsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGlmIChj
b3VudCA9PT0gMSkgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiV0kuRE9N
U3RvcmFnZU9iamVjdC5FdmVudC5JdGVtQWRkZWQiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoZXZlbnQuZGF0YS5rZXkgPT09ICJmb28iLCAiU2hvdWxkIGFkZCBr
ZXkgJ2ZvbycuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2
ZW50LmRhdGEudmFsdWUgPT09ICJ2YWx1ZTEiLCAiU2hvdWxkIGhhdmUgdmFsdWUgJ3ZhbHVlMScu
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChldmVudC5kYXRh
LmtleSwgImZvbyIsICJTaG91bGQgYWRkIGtleSAnZm9vJy4iKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGV2ZW50LmRhdGEudmFsdWUsICJ2YWx1ZTEiLCAiU2hv
dWxkIGhhdmUgdmFsdWUgJ3ZhbHVlMScuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoY291bnQgPT09IDIpIHsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIldJLkRPTVN0b3JhZ2VPYmplY3QuRXZlbnQuSXRlbUFk
ZGVkIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50LmRh
dGEua2V5ID09PSAieCIsICJTaG91bGQgYWRkIGtleSAneCcuIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50LmRhdGEudmFsdWUgPT09ICJ4dmFsdWUiLCAi
U2hvdWxkIGhhdmUgdmFsdWUgJ3h2YWx1ZScuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChldmVudC5kYXRhLmtleSwgIngiLCAiU2hvdWxkIGFkZCBrZXkgJ3gn
LiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZXZlbnQuZGF0
YS52YWx1ZSwgInh2YWx1ZSIsICJTaG91bGQgaGF2ZSB2YWx1ZSAneHZhbHVlJy4iKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKQEAgLTQzLDE1ICs0MywxNSBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgc3RvcmFnZU9iamVjdC5hd2FpdEV2ZW50KFdJLkRPTVN0
b3JhZ2VPYmplY3QuRXZlbnQuSXRlbVJlbW92ZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4g
ewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJXSS5ET01TdG9yYWdlT2JqZWN0LkV2
ZW50Lkl0ZW1SZW1vdmVkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZXZlbnQuZGF0YS5rZXkgPT09ICJmb28iLCAiU2hvdWxkIHJlbW92ZSBrZXkgJ3gnLiIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChldmVudC5kYXRhLmtleSwgImZvbyIs
ICJTaG91bGQgcmVtb3ZlIGtleSAneCcuIik7CiAgICAgICAgIH0pOwogCiAgICAgICAgIHN0b3Jh
Z2VPYmplY3QuYXdhaXRFdmVudChXSS5ET01TdG9yYWdlT2JqZWN0LkV2ZW50Lkl0ZW1VcGRhdGVk
KQogICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cGFzcygiV0kuRE9NU3RvcmFnZU9iamVjdC5FdmVudC5JdGVtVXBkYXRlZCIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2ZW50LmRhdGEua2V5ID09PSAiZm9vIiwgIlNo
b3VsZCB1cGRhdGUga2V5ICd4Jy4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChldmVudC5kYXRhLm9sZFZhbHVlID09PSAidmFsdWUxIiwgIlNob3VsZCBoYXZlIG9sZFZh
bHVlICd2YWx1ZTEnLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGV2
ZW50LmRhdGEudmFsdWUgPT09ICJ2YWx1ZTIiLCAiU2hvdWxkIGhhdmUgbmV3IHZhbHVlICd2YWx1
ZTInLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChldmVudC5kYXRh
LmtleSwgImZvbyIsICJTaG91bGQgdXBkYXRlIGtleSAneCcuIik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGV2ZW50LmRhdGEub2xkVmFsdWUsICJ2YWx1ZTEiLCAiU2hv
dWxkIGhhdmUgb2xkVmFsdWUgJ3ZhbHVlMScuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKGV2ZW50LmRhdGEubmV3VmFsdWUsICJ2YWx1ZTIiLCAiU2hvdWxkIGhhdmUg
bmV3VmFsdWUgJ3ZhbHVlMicuIik7CiAgICAgICAgIH0pOwogCiAgICAgICAgIHN0b3JhZ2VPYmpl
Y3QuYXdhaXRFdmVudChXSS5ET01TdG9yYWdlT2JqZWN0LkV2ZW50Lkl0ZW1zQ2xlYXJlZCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL2dldERPTVN0b3JhZ2VJdGVt
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS9nZXRET01TdG9y
YWdlSXRlbXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0ZjI0ZmE0Yzc5NGU3MGRjODEwMTAx
YWQzOTNhMmVjOThkYjdhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3RvcmFnZS9nZXRET01TdG9yYWdlSXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjgg
QEAKK1Rlc3RzIGZvciBET01TdG9yYWdlLmdldERPTVN0b3JhZ2VJdGVtcy4KKworCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IERPTVN0b3JhZ2UuZ2V0RE9NU3RvcmFnZUl0ZW1zCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogRE9NU3RvcmFnZS5nZXRET01TdG9yYWdlSXRlbXMuU2Vzc2lvbgorUEFTUzog
U2hvdWxkIGhhdmUgYSBET01TdG9yYWdlT2JqZWN0IGZvciBzZXNzaW9uU3RvcmFnZS4KKworR2V0
dGluZyBET00gc3RvcmFnZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAgICAiYmFy
IgorICBdCitdCisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTVN0b3JhZ2UuZ2V0RE9NU3Rv
cmFnZUl0ZW1zLkxvY2FsCitQQVNTOiBTaG91bGQgaGF2ZSBhIERPTVN0b3JhZ2VPYmplY3QgZm9y
IGxvY2FsU3RvcmFnZS4KKworR2V0dGluZyBET00gc3RvcmFnZSBlbnRyaWVzLi4uCitbCisgIFsK
KyAgICAiZm9vIiwKKyAgICAiYmFyIgorICBdCitdCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0b3JhZ2UvZ2V0RE9NU3RvcmFnZUl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3RvcmFnZS9nZXRET01TdG9yYWdlSXRlbXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YzBlYzU4ZDE1MmM4YjMzZjFkYzk3N2RkMDI5YzFmZDUzMTg0NzA0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvZ2V0RE9NU3RvcmFnZUl0ZW1zLmh0bWwK
QEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0b3JhZ2UtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRPTVN0b3JhZ2UuZ2V0RE9NU3Rv
cmFnZUl0ZW1zIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJE
T01TdG9yYWdlLmdldERPTVN0b3JhZ2VJdGVtcy5TZXNzaW9uIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJUZXN0IHRoYXQgRE9NU3RvcmFnZS5nZXRET01TdG9yYWdlSXRlbXMgd29ya3Mgd2l0aCBT
ZXNzaW9uIHN0b3JhZ2UuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBzZXNzaW9uU3RvcmFnZSA9IFdJLmRvbVN0b3JhZ2VNYW5hZ2VyLmRvbVN0b3JhZ2VPYmplY3Rz
LmZpbmQoKHgpID0+ICF4LmlzTG9jYWxTdG9yYWdlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHNlc3Npb25TdG9yYWdlLCAiU2hvdWxkIGhhdmUgYSBET01TdG9yYWdl
T2JqZWN0IGZvciBzZXNzaW9uU3RvcmFnZS4iKTsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVj
dG9yVGVzdC5TdG9yYWdlLmxvZ0VudHJpZXMoc2Vzc2lvblN0b3JhZ2UpOworICAgICAgICB9LAor
ICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRE9NU3Rv
cmFnZS5nZXRET01TdG9yYWdlSXRlbXMuTG9jYWwiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRl
c3QgdGhhdCBET01TdG9yYWdlLmdldERPTVN0b3JhZ2VJdGVtcyB3b3JrcyB3aXRoIExvY2FsIHN0
b3JhZ2UuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBsb2NhbFN0
b3JhZ2UgPSBXSS5kb21TdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlT2JqZWN0cy5maW5kKCh4KSA9
PiB4LmlzTG9jYWxTdG9yYWdlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGxvY2FsU3RvcmFnZSwgIlNob3VsZCBoYXZlIGEgRE9NU3RvcmFnZU9iamVjdCBmb3IgbG9j
YWxTdG9yYWdlLiIpOworCisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LlN0b3JhZ2Uu
bG9nRW50cmllcyhsb2NhbFN0b3JhZ2UpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY2xlYXJTdG9yYWdlcygpIiwgKCkgPT4geworICAg
ICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgZm9yIERPTVN0
b3JhZ2UuZ2V0RE9NU3RvcmFnZUl0ZW1zLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3JlbW92ZURPTVN0b3JhZ2VJdGVtLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3JlbW92ZURPTVN0b3Jh
Z2VJdGVtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWQ5NjQ2NmFlODBjNTc4M2ViMTIxZDlj
MDI1YjkyYTY1NzQ5ZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0b3JhZ2UvcmVtb3ZlRE9NU3RvcmFnZUl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzgg
QEAKK1Rlc3RzIGZvciBET01TdG9yYWdlLnJlbW92ZURPTVN0b3JhZ2VJdGVtLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRE9NU3RvcmFnZS5yZW1vdmVET01TdG9yYWdlSXRlbQorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IERPTVN0b3JhZ2UucmVtb3ZlRE9NU3RvcmFnZUl0ZW0uU2Vzc2lvbgor
UEFTUzogU2hvdWxkIGhhdmUgYSBET01TdG9yYWdlT2JqZWN0IGZvciBzZXNzaW9uU3RvcmFnZS4K
KworR2V0dGluZyBET00gc3RvcmFnZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAg
ICAiYmFyIgorICBdCitdCisKK1JlbW92aW5nICdmb28nLi4uCisKK0dldHRpbmcgRE9NIHN0b3Jh
Z2UgZW50cmllcy4uLgorW10KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NU3RvcmFnZS5y
ZW1vdmVET01TdG9yYWdlSXRlbS5Mb2NhbAorUEFTUzogU2hvdWxkIGhhdmUgYSBET01TdG9yYWdl
T2JqZWN0IGZvciBsb2NhbFN0b3JhZ2UuCisKK0dldHRpbmcgRE9NIHN0b3JhZ2UgZW50cmllcy4u
LgorWworICBbCisgICAgImZvbyIsCisgICAgImJhciIKKyAgXQorXQorCitSZW1vdmluZyAnZm9v
Jy4uLgorCitHZXR0aW5nIERPTSBzdG9yYWdlIGVudHJpZXMuLi4KK1tdCisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvcmVtb3ZlRE9NU3RvcmFnZUl0ZW0uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3JlbW92ZURPTVN0b3JhZ2VJdGVtLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGMyYmI1N2ZkYWFkYmUyMWQzOGZlMzYyOWQzMTQ1MTU2MzhmZDExZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3JlbW92ZURP
TVN0b3JhZ2VJdGVtLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3N0b3JhZ2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRP
TVN0b3JhZ2UucmVtb3ZlRE9NU3RvcmFnZUl0ZW0iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkRPTVN0b3JhZ2UucmVtb3ZlRE9NU3RvcmFnZUl0ZW0uU2Vzc2lv
biIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IERPTVN0b3JhZ2UucmVtb3ZlRE9N
U3RvcmFnZUl0ZW0gd29ya3Mgd2l0aCBTZXNzaW9uIHN0b3JhZ2UuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBzZXNzaW9uU3RvcmFnZSA9IFdJLmRvbVN0b3JhZ2VN
YW5hZ2VyLmRvbVN0b3JhZ2VPYmplY3RzLmZpbmQoKHgpID0+ICF4LmlzTG9jYWxTdG9yYWdlKCkp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHNlc3Npb25TdG9yYWdlLCAi
U2hvdWxkIGhhdmUgYSBET01TdG9yYWdlT2JqZWN0IGZvciBzZXNzaW9uU3RvcmFnZS4iKTsKKwor
ICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5TdG9yYWdlLmxvZ0VudHJpZXMoc2Vzc2lv
blN0b3JhZ2UpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3ZpbmcgJ2Zv
bycuLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImZv
byIpOworCisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LlN0b3JhZ2UubG9nRW50cmll
cyhzZXNzaW9uU3RvcmFnZSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJET01TdG9yYWdlLnJlbW92ZURPTVN0b3JhZ2VJdGVt
LkxvY2FsIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgRE9NU3RvcmFnZS5yZW1v
dmVET01TdG9yYWdlSXRlbSB3b3JrcyB3aXRoIExvY2FsIHN0b3JhZ2UuIiwKKyAgICAgICAgYXN5
bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBsb2NhbFN0b3JhZ2UgPSBXSS5kb21TdG9yYWdl
TWFuYWdlci5kb21TdG9yYWdlT2JqZWN0cy5maW5kKCh4KSA9PiB4LmlzTG9jYWxTdG9yYWdlKCkp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGxvY2FsU3RvcmFnZSwgIlNo
b3VsZCBoYXZlIGEgRE9NU3RvcmFnZU9iamVjdCBmb3IgbG9jYWxTdG9yYWdlLiIpOworCisgICAg
ICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LlN0b3JhZ2UubG9nRW50cmllcyhsb2NhbFN0b3Jh
Z2UpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3ZpbmcgJ2ZvbycuLi4i
KTsKKyAgICAgICAgICAgIGF3YWl0IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmb28iKTsKKwor
ICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5TdG9yYWdlLmxvZ0VudHJpZXMobG9jYWxT
dG9yYWdlKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoImNsZWFyU3RvcmFnZXMoKSIsICgpID0+IHsKKyAgICAgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGZvciBET01TdG9yYWdlLnJlbW92ZURPTVN0
b3JhZ2VJdGVtLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLXV0aWxpdGllcy5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLXV0aWxpdGllcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMmU3ZWQ0NzJjNTE0YjAxN2VhYTRiNmIzMjhkYjY1NzY5ZGNkMzlkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UvcmVzb3VyY2VzL3N0
b3JhZ2UtdXRpbGl0aWVzLmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIGNsZWFyU3RvcmFn
ZXMoKSB7CisgICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTsKKyAgICBzZXNzaW9uU3RvcmFnZS5z
ZXRJdGVtKCJmb28iLCAiYmFyIik7CisKKyAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTsKKyAgICBs
b2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9vIiwgImJhciIpOworfQorCitUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBJbnNwZWN0b3JUZXN0LlN0b3JhZ2UgPSB7fTsKKwor
ICAgIEluc3BlY3RvclRlc3QuU3RvcmFnZS5sb2dFbnRyaWVzID0gYXN5bmMgZnVuY3Rpb24oc3Rv
cmFnZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkdldHRpbmcgRE9NIHN0b3JhZ2UgZW50cmllcy4uLiIpOworICAgICAgICBs
ZXQgW2Vycm9yLCBlbnRyaWVzXSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgc3Rv
cmFnZS5nZXRFbnRyaWVzKGNhbGxiYWNrKTsgfSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFlcnJvciwgZXJyb3IpOworICAgICAgICBJbnNwZWN0b3JUZXN0Lmpzb24oZW50cmllcyk7
CisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOworICAgIH07Cit9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3NldERPTVN0b3JhZ2VJdGVtLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlL3NldERPTVN0b3JhZ2VJdGVt
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NWEzZGY4NzJiNmUzOWFlNTk2ZjYxNTVhMmU5YmIx
MDk5ZjE1YjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3Jh
Z2Uvc2V0RE9NU3RvcmFnZUl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTYgQEAKK1Rlc3Rz
IGZvciBET01TdG9yYWdlLnNldERPTVN0b3JhZ2VJdGVtLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogRE9NU3RvcmFnZS5zZXRET01TdG9yYWdlSXRlbQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IERPTVN0b3JhZ2Uuc2V0RE9NU3RvcmFnZUl0ZW0uU2Vzc2lvbgorUEFTUzogU2hvdWxkIGhhdmUg
YSBET01TdG9yYWdlT2JqZWN0IGZvciBzZXNzaW9uU3RvcmFnZS4KKworR2V0dGluZyBET00gc3Rv
cmFnZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAgICAiYmFyIgorICBdCitdCisK
K1NldHRpbmcga2V5ICdhc2QnIHdpdGggdmFsdWUgJ25ldycuLi4KKworR2V0dGluZyBET00gc3Rv
cmFnZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAgICAiYmFyIgorICBdLAorICBb
CisgICAgImFzZCIsCisgICAgIm5ldyIKKyAgXQorXQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBET01TdG9yYWdlLnNldERPTVN0b3JhZ2VJdGVtLkxvY2FsCitQQVNTOiBTaG91bGQgaGF2ZSBh
IERPTVN0b3JhZ2VPYmplY3QgZm9yIGxvY2FsU3RvcmFnZS4KKworR2V0dGluZyBET00gc3RvcmFn
ZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAgICAiYmFyIgorICBdCitdCisKK1Nl
dHRpbmcga2V5ICdhc2QnIHdpdGggdmFsdWUgJ25ldycuLi4KKworR2V0dGluZyBET00gc3RvcmFn
ZSBlbnRyaWVzLi4uCitbCisgIFsKKyAgICAiZm9vIiwKKyAgICAiYmFyIgorICBdLAorICBbCisg
ICAgImFzZCIsCisgICAgIm5ldyIKKyAgXQorXQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdG9yYWdlL3NldERPTVN0b3JhZ2VJdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3RvcmFnZS9zZXRET01TdG9yYWdlSXRlbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYzEw
Nzc0ZjY3ZmM4MzgxMWM2ZGNiNWMzMTMxYTNlYmJjMmFiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS9zZXRET01TdG9yYWdlSXRlbS5odG1sCkBAIC0w
LDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdG9yYWdlLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJET01TdG9yYWdlLnNldERPTVN0b3JhZ2VJ
dGVtIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJET01TdG9y
YWdlLnNldERPTVN0b3JhZ2VJdGVtLlNlc3Npb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRl
c3QgdGhhdCBET01TdG9yYWdlLnNldERPTVN0b3JhZ2VJdGVtIHdvcmtzIHdpdGggU2Vzc2lvbiBz
dG9yYWdlLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgc2Vzc2lv
blN0b3JhZ2UgPSBXSS5kb21TdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlT2JqZWN0cy5maW5kKCh4
KSA9PiAheC5pc0xvY2FsU3RvcmFnZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChzZXNzaW9uU3RvcmFnZSwgIlNob3VsZCBoYXZlIGEgRE9NU3RvcmFnZU9iamVjdCBm
b3Igc2Vzc2lvblN0b3JhZ2UuIik7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3Qu
U3RvcmFnZS5sb2dFbnRyaWVzKHNlc3Npb25TdG9yYWdlKTsKKworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlNldHRpbmcga2V5ICdhc2QnIHdpdGggdmFsdWUgJ25ldycuLi4iKTsKKyAg
ICAgICAgICAgIGF3YWl0IHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImFzZCIsICJuZXciKTsKKwor
ICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5TdG9yYWdlLmxvZ0VudHJpZXMoc2Vzc2lv
blN0b3JhZ2UpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiRE9NU3RvcmFnZS5zZXRET01TdG9yYWdlSXRlbS5Mb2NhbCIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IERPTVN0b3JhZ2Uuc2V0RE9NU3RvcmFnZUl0
ZW0gd29ya3Mgd2l0aCBMb2NhbCBzdG9yYWdlLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBsZXQgbG9jYWxTdG9yYWdlID0gV0kuZG9tU3RvcmFnZU1hbmFnZXIuZG9tU3Rv
cmFnZU9iamVjdHMuZmluZCgoeCkgPT4geC5pc0xvY2FsU3RvcmFnZSgpKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChsb2NhbFN0b3JhZ2UsICJTaG91bGQgaGF2ZSBhIERP
TVN0b3JhZ2VPYmplY3QgZm9yIGxvY2FsU3RvcmFnZS4iKTsKKworICAgICAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5TdG9yYWdlLmxvZ0VudHJpZXMobG9jYWxTdG9yYWdlKTsKKworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNldHRpbmcga2V5ICdhc2QnIHdpdGggdmFsdWUgJ25l
dycuLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJhc2QiLCAi
bmV3Iik7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuU3RvcmFnZS5sb2dFbnRy
aWVzKGxvY2FsU3RvcmFnZSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJjbGVhclN0b3JhZ2VzKCkiLCAoKSA9PiB7CisgICAgICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBmb3IgRE9NU3RvcmFnZS5z
ZXRET01TdG9yYWdlSXRlbS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>