<?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>161891</bug_id>
          
          <creation_ts>2016-09-12 20:43:51 -0700</creation_ts>
          <short_desc>Web Inspector: Should be able to pretty print module code (import / export statements)</short_desc>
          <delta_ts>2016-09-29 11:34:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229061</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-12 20:43:51 -0700</bug_when>
    <thetext>Summary:
Should be able to pretty print module code (import / export statements).

In preparation for module tags. The pretty printer should be able to handle import / export statements.

Notes
- Esprima has two different parse modes. &quot;script&quot; or &quot;module&quot; based on the &quot;sourceType&quot; option.
- The Formatting tool should be updated to test this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229062</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-09-12 20:44:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/28272784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229065</commentid>
    <comment_count>2</comment_count>
      <attachid>288666</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-12 20:50:32 -0700</bug_when>
    <thetext>Created attachment 288666
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229073</commentid>
    <comment_count>3</comment_count>
      <attachid>288666</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-12 21:25:30 -0700</bug_when>
    <thetext>Comment on attachment 288666
[PATCH] Proposed Fix

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

Nice! r=me.

&gt; LayoutTests/inspector/formatting/resources/javascript-tests/modules-expected.js:19
&gt; +    y = 1;

We can perform destructuring here :)
`export let { x, y, z } = obj`
`export let [x, y, z ] = array`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229225</commentid>
    <comment_count>4</comment_count>
      <attachid>288706</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-13 11:25:20 -0700</bug_when>
    <thetext>Created attachment 288706
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229232</commentid>
    <comment_count>5</comment_count>
      <attachid>288706</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-13 11:39:18 -0700</bug_when>
    <thetext>Comment on attachment 288706
[PATCH] For Landing

Clearing flags on attachment: 288706

Committed r205866: &lt;http://trac.webkit.org/changeset/205866&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288666</attachid>
            <date>2016-09-12 20:50:32 -0700</date>
            <delta_ts>2016-09-29 11:34:11 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>modules-2.patch</filename>
            <type>text/plain</type>
            <size>25003</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkY2E1ZjEzLi41NGExNzQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTYtMDkt
MTIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG91bGQgYmUgYWJsZSB0byBwcmV0dHkgcHJpbnQgbW9kdWxlIGNvZGUgKGlt
cG9ydCAvIGV4cG9ydCBzdGF0ZW1lbnRzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODI3Mjc4
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVz
dHMvbW9kdWxlcy1leHBlY3RlZC5qczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zvcm1h
dHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvbW9kdWxlcy5qczogQWRkZWQuCisgICAg
ICAgIEluY2x1ZGUgYSBuZXcgdGVzdCBmb3IgbW9kdWxlcy4KKworICAgICAgICAqIGluc3BlY3Rv
ci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sOgorICAgICAgICBBbGwgb2YgdGhlc2Ug
YXJlIG5vbi1tb2R1bGUgc291cmNlIGNvZGUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZm9ybWF0
dGluZy9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzOgorICAgICAgICBEZXRlcm1pbmUgaWYgbW9kdWxl
IG9yIG5vdCBiYXNlZCBvbiB0aGUgdGVzdCBuYW1lLgorCisyMDE2LTA5LTEyICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgSFRNTEJ1dHRvbkVsZW1lbnQu
cHJvdG90eXBlLmNsaWNrIHNob3VsZCBiZSBIVE1MRWxlbWVudC5wcm90b3R5cGUuY2xpY2sKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTg3NAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWph
dmFzY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcv
Zm9ybWF0dGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCA0YjZkNWU3Li4wMTdjYzU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5n
LWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3Jt
YXR0aW5nL2Zvcm1hdHRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTgwLDMgKzgwLDYg
QEAgUEFTUwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVzcHJpbWFGb3JtYXR0ZXIuSmF2YVNjcmlw
dC53aXRoLXN0YXRlbWVudC5qcwogUEFTUwogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRXNwcmlt
YUZvcm1hdHRlci5KYXZhU2NyaXB0Lm1vZHVsZXMuanMKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFzY3JpcHQu
aHRtbAppbmRleCBmMDZmNzVkLi4zM2UxMmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFzY3JpcHQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFzY3JpcHQuaHRtbApAQCAt
MzUsNiArMzUsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgInJlc291cmNlcy9qYXZhc2Ny
aXB0LXRlc3RzL3ZhcmlhYmxlLWRlY2xhcmF0aW9uLmpzIiwKICAgICAgICAgInJlc291cmNlcy9q
YXZhc2NyaXB0LXRlc3RzL3doaWxlLXN0YXRlbWVudC5qcyIsCiAgICAgICAgICJyZXNvdXJjZXMv
amF2YXNjcmlwdC10ZXN0cy93aXRoLXN0YXRlbWVudC5qcyIsCisKKyAgICAgICAgLy8gTW9kdWxl
cworICAgICAgICAicmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvbW9kdWxlcy5qcyIsCiAgICAg
XSk7CiAKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLmh0bWwKaW5kZXgg
ZGVkNWVjMi4uMzc0NWM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1h
dHRpbmcvZm9ybWF0dGluZy1qc29uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zv
cm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLmh0bWwKQEAgLTM0LDcgKzM0LDggQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IkVzcHJpbWFGb3JtYXR0ZXIuSlNPTiIpOwogCi0gICAgbGV0IGluZGVudFN0cmluZyA9ICIgICAg
IjsKKyAgICBjb25zdCBpc01vZHVsZSA9IGZhbHNlOworICAgIGNvbnN0IGluZGVudFN0cmluZyA9
ICIgICAgIjsKICAgICBsZXQgd29ya2VyUHJveHkgPSBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyV29y
a2VyUHJveHkuc2luZ2xldG9uKCk7CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CkBAIC00NCw3
ICs0NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgbGV0IHZhbGlkSlNPTiA9IEpT
T04uc3RyaW5naWZ5KHsiYSI6MTIzLCJiIjpbMSwyLDNdLCJjIjp7ImQiOiJlIn19KTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJKU09OOiAiICsgZG91YmxlUXVvdGVkU3RyaW5nKHZh
bGlkSlNPTikpOwogICAgICAgICAgICAgZW5zdXJlSlNPTih2YWxpZEpTT04sICJ2YWxpZCIpOwot
ICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdCh2YWxpZEpTT04sIGluZGVu
dFN0cmluZywgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4geworICAgICAgICAg
ICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdCh2YWxpZEpTT04sIGlzTW9kdWxlLCBpbmRl
bnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRk9STUFUVEVEOiIpOwogICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKGZvcm1hdHRlZFRleHQpOwogICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKQEAgLTYwLDcgKzYxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiSlNPTjogIiArIGRvdWJsZVF1b3RlZFN0cmluZyhpbnZhbGlkSlNPTikp
OwogICAgICAgICAgICAgZW5zdXJlSlNPTihpbnZhbGlkSlNPTiwgImludmFsaWQiKTsKICAgICAg
ICAgICAgIGVuc3VyZUV2YWwoaW52YWxpZEpTT04sICJvYmplY3QiKTsKLSAgICAgICAgICAgIHdv
cmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQoaW52YWxpZEpTT04sIGluZGVudFN0cmluZywgKHtm
b3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4geworICAgICAgICAgICAgd29ya2VyUHJv
eHkuZm9ybWF0SmF2YVNjcmlwdChpbnZhbGlkSlNPTiwgaXNNb2R1bGUsIGluZGVudFN0cmluZywg
KHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4gewogICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGT1JNQVRURUQ6Iik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coZm9ybWF0dGVkVGV4dCk7CiAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAt
NzYsNyArNzcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJKU09OOiAiICsgZG91YmxlUXVvdGVkU3RyaW5nKGludmFsaWRKU09OKSk7CiAgICAgICAg
ICAgICBlbnN1cmVKU09OKGludmFsaWRKU09OLCAiaW52YWxpZCIpOwogICAgICAgICAgICAgZW5z
dXJlRXZhbChpbnZhbGlkSlNPTiwgIm9iamVjdCIpOwotICAgICAgICAgICAgd29ya2VyUHJveHku
Zm9ybWF0SmF2YVNjcmlwdChpbnZhbGlkSlNPTiwgaW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRlZFRl
eHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRK
YXZhU2NyaXB0KGludmFsaWRKU09OLCBpc01vZHVsZSwgaW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRl
ZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkZPUk1BVFRFRDoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhm
b3JtYXR0ZWRUZXh0KTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC05Miw3ICs5Myw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIklOUFVU
OiAiICsgZG91YmxlUXVvdGVkU3RyaW5nKGludmFsaWQpKTsKICAgICAgICAgICAgIGVuc3VyZUpT
T04oaW52YWxpZCwgImludmFsaWQiKTsKICAgICAgICAgICAgIGVuc3VyZUV2YWwoaW52YWxpZCwg
ImJhZCIpOwotICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdChpbnZhbGlk
LCBpbmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKKyAg
ICAgICAgICAgIHdvcmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQoaW52YWxpZCwgaXNNb2R1bGUs
IGluZGVudFN0cmluZywgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4gewogICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChmb3JtYXR0ZWRUZXh0ID09PSBu
dWxsLCAiUmVzcG9uc2Ugc2hvdWxkIGJlIG51bGwuIik7CiAgICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Zm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9tb2R1bGVzLWV4cGVjdGVkLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQt
dGVzdHMvbW9kdWxlcy1leHBlY3RlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mYmFlNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zv
cm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvbW9kdWxlcy1leHBlY3RlZC5qcwpA
QCAtMCwwICsxLDM4IEBACitpbXBvcnQgIm1vZHVsZSI7CitpbXBvcnQgeCBmcm9tICJtb2R1bGUi
OworaW1wb3J0IHsgeCB9IGZyb20gIm1vZHVsZSI7CitpbXBvcnQgeyBhLCBiLCBjIH0gZnJvbSAi
bW9kdWxlIjsKK2ltcG9ydCB7IGEsIGIsIGMsICB9IGZyb20gIm1vZHVsZSI7CitpbXBvcnQgeyBh
IGFzIEEgfSBmcm9tICJtb2R1bGUiOworaW1wb3J0IHsgYSwgYSBhcyBBLCBhIH0gZnJvbSAibW9k
dWxlIjsKK2ltcG9ydCB7IGEgYXMgQSwgYSBhcyBBIH0gZnJvbSAibW9kdWxlIjsKK2ltcG9ydCBh
LCB7IGEgfSBmcm9tICJtb2R1bGUiOworaW1wb3J0IGEsIHsgYSBhcyBBIH0gZnJvbSAibW9kdWxl
IjsKK2ltcG9ydCB4LCAqIGFzIEEgZnJvbSAibW9kdWxlIjsKK2ltcG9ydCAqIGFzIEEgZnJvbSAi
bW9kdWxlIjsKKworZXhwb3J0IHsgeCB9OworZXhwb3J0IGxldCB4OworZXhwb3J0IHZhciB4Owor
ZXhwb3J0IGNvbnN0IHggPSAxOworZXhwb3J0IGxldCB4ID0gMSwKKyAgICB5ID0gMTsKK2V4cG9y
dCB7IHggYXMgWCB9OworZXhwb3J0IHsgeCBhcyBYLCBhIGFzIEEgfTsKK2V4cG9ydCAqIGZyb20g
Im1vZHVsZSI7CitleHBvcnQgeyB4IH0gZnJvbSAibW9kdWxlIjsKK2V4cG9ydCB7IHgsIHkgfSBm
cm9tICJtb2R1bGUiOworZXhwb3J0IHsgeCBhcyBBIH0gZnJvbSAibW9kdWxlIjsKK2V4cG9ydCB7
IHggYXMgZGVmYXVsdCB9OworZXhwb3J0IGRlZmF1bHQgeDsKK2V4cG9ydCBkZWZhdWx0IDE7Citl
eHBvcnQgZGVmYXVsdCB7fTsKK2V4cG9ydCBkZWZhdWx0ICgxKTsKK2V4cG9ydCBkZWZhdWx0IFsx
XTsKK2V4cG9ydCBkZWZhdWx0IC9yLzsKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge30KK2V4
cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGYoKSB7fQorZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qICgp
IHt9CitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiogZigpIHt9CitleHBvcnQgZGVmYXVsdCBjbGFz
cyB7fQorZXhwb3J0IGRlZmF1bHQgY2xhc3MgWCB7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvbW9kdWxlcy5q
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0
LXRlc3RzL21vZHVsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Rl
NGNkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5n
L3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL21vZHVsZXMuanMKQEAgLTAsMCArMSwzNyBAQAor
aW1wb3J0Im1vZHVsZSI7CitpbXBvcnQgeCBmcm9tIm1vZHVsZSI7CitpbXBvcnR7eH1mcm9tIm1v
ZHVsZSI7CitpbXBvcnR7YSxiLGN9ZnJvbSJtb2R1bGUiOworaW1wb3J0e2EsYixjLH1mcm9tIm1v
ZHVsZSI7CitpbXBvcnR7YSBhcyBBfWZyb20ibW9kdWxlIjsKK2ltcG9ydHthLGEgYXMgQSxhfWZy
b20ibW9kdWxlIjsKK2ltcG9ydHthIGFzIEEsYSBhcyBBfWZyb20ibW9kdWxlIjsKK2ltcG9ydCBh
LHthfWZyb20ibW9kdWxlIjsKK2ltcG9ydCBhLHthIGFzIEF9ZnJvbSJtb2R1bGUiOworaW1wb3J0
IHgsKmFzIEEgZnJvbSJtb2R1bGUiOworaW1wb3J0KmFzIEEgZnJvbSJtb2R1bGUiOworCitleHBv
cnR7eH07CitleHBvcnQgbGV0IHg7CitleHBvcnQgdmFyIHg7CitleHBvcnQgY29uc3QgeD0xOwor
ZXhwb3J0IGxldCB4PTEseT0xOworZXhwb3J0e3ggYXMgWH07CitleHBvcnR7eCBhcyBYLGEgYXMg
QX07CitleHBvcnQqZnJvbSJtb2R1bGUiOworZXhwb3J0e3h9ZnJvbSJtb2R1bGUiOworZXhwb3J0
e3gseX1mcm9tIm1vZHVsZSI7CitleHBvcnR7eCBhcyBBfWZyb20ibW9kdWxlIjsKK2V4cG9ydHt4
IGFzIGRlZmF1bHR9OworZXhwb3J0IGRlZmF1bHQgeDsKK2V4cG9ydCBkZWZhdWx0IDE7CitleHBv
cnQgZGVmYXVsdHt9OworZXhwb3J0IGRlZmF1bHQoMSk7CitleHBvcnQgZGVmYXVsdFsxXTsKK2V4
cG9ydCBkZWZhdWx0L3IvOworZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKXt9CitleHBvcnQgZGVm
YXVsdCBmdW5jdGlvbiBmKCl7fQorZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qKCl7fQorZXhwb3J0
IGRlZmF1bHQgZnVuY3Rpb24qZigpe30KK2V4cG9ydCBkZWZhdWx0IGNsYXNze30KK2V4cG9ydCBk
ZWZhdWx0IGNsYXNzIFh7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1h
dHRpbmcvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3Jt
YXR0aW5nL3Jlc291cmNlcy91dGlsaXRpZXMuanMKaW5kZXggYjk4NzA0Ny4uYjE2NGU5ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL3V0aWxp
dGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMv
dXRpbGl0aWVzLmpzCkBAIC0xNSw3ICsxNSw4IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nID0g
IiAgICAiOwogICAgICAgICAgICAgICAgIGxldCB3b3JrZXJQcm94eSA9IFdlYkluc3BlY3Rvci5G
b3JtYXR0ZXJXb3JrZXJQcm94eS5zaW5nbGV0b24oKTsKLSAgICAgICAgICAgICAgICB3b3JrZXJQ
cm94eS5mb3JtYXRKYXZhU2NyaXB0KHRlc3RUZXh0LCBpbmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVk
VGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgaXNNb2R1bGUg
PSAvXm1vZHVsZS8udGVzdCh0ZXN0TmFtZSk7CisgICAgICAgICAgICAgICAgd29ya2VyUHJveHku
Zm9ybWF0SmF2YVNjcmlwdCh0ZXN0VGV4dCwgaXNNb2R1bGUsIGluZGVudFN0cmluZywgKHtmb3Jt
YXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4gewogICAgICAgICAgICAgICAgICAgICBsZXQg
cGFzcyA9IGZvcm1hdHRlZFRleHQgPT09IGV4cGVjdGVkVGV4dDsKICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2cocGFzcyA/ICJQQVNTIiA6ICJGQUlMIik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCmluZGV4IGY0ODZhMmUuLjI4Njc0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA5LTEyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdWxkIGJlIGFibGUg
dG8gcHJldHR5IHByaW50IG1vZHVsZSBjb2RlIChpbXBvcnQgLyBleHBvcnQgc3RhdGVtZW50cykK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTg5MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgyNzI3ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUb29scy9Gb3JtYXR0aW5nL0VzcHJpbWFGb3Jt
YXR0ZXJEZWJ1Zy5qczoKKyAgICAgICAgKiBUb29scy9Gb3JtYXR0aW5nL2luZGV4Lmh0bWw6Cisg
ICAgICAgIFVwZGF0ZSB0aGUgZm9ybWF0dGluZyB0b29sIHRvIHRvZ2dsZSBiZXR3ZWVuIHNvdXJj
ZSB0eXBlIG1vZGVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm94aWVzL0Zvcm1hdHRl
cldvcmtlclByb3h5LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0
ZXIvRm9ybWF0dGVyV29ya2VyLmpzOgorICAgICAgICAoRm9ybWF0dGVyV29ya2VyLnByb3RvdHlw
ZS5mb3JtYXRKYXZhU2NyaXB0KToKKyAgICAgICAgUHJvdmlkZSBhIGZsYWcgdG8gcGFyc2UgdGhl
IGlucHV0IGFzIGEgbW9kdWxlIGluc3RlYWQgb2YgYSBzY3JpcHQvcHJvZ3JhbS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fc3RhcnRXb3JrZXJQcmV0dHlQcmludCk6CisgICAg
ICAgIFVzaW5nIHRoZSBmb3JtYXR0ZXIgaGVyZSwgd2UgbWF5IGhhdmUgbW9kdWxlIHNjcmlwdHMg
aW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29k
ZVRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0
b3IucHJvdG90eXBlLl9zaG93UG9wb3ZlckZvckZ1bmN0aW9uLmRpZEdldERldGFpbHMpOgorICAg
ICAgICBVc2luZyB0aGUgZm9ybWF0dGVyIGZvciBhIGZ1bmN0aW9uIGlzIG5vdCBtb2R1bGUgc291
cmNlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9FU1RyZWVX
YWxrZXIuanM6CisgICAgICAgIChFU1RyZWVXYWxrZXIucHJvdG90eXBlLl93YWxrQ2hpbGRyZW4p
OgorICAgICAgICBWaXNpdCBjaGlsZHJlbiBvZiBFeHBvcnQvSW1wb3J0IG5vZGVzLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Fc3ByaW1hRm9ybWF0dGVyLmpz
OgorICAgICAgICAoRXNwcmltYUZvcm1hdHRlci5wcm90b3R5cGUuX2hhbmRsZVRva2VuQXROb2Rl
KToKKyAgICAgICAgT3V0cHV0IHRva2VucyB3aXRoIGFwcHJvcHJpYXRlIHdoaXRlc3BhY2UuCisK
IDIwMTYtMDktMTIgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE9iamVjdC5zaGFsbG93RXF1YWwoKSBzaG91bGQgcmV0dXJuIGZhbHNl
IGlmIG9iamVjdCBwcm90b3R5cGUgY2hhaW5zIGRpZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRpbmcvRXNwcmltYUZvcm1hdHRlckRlYnVnLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRpbmcvRXNwcmltYUZvcm1hdHRlckRl
YnVnLmpzCmluZGV4IDkwZTg5YTcuLjZhNjc0MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVG9vbHMvRm9ybWF0dGluZy9Fc3ByaW1hRm9ybWF0dGVyRGVidWcuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRpbmcvRXNwcmltYUZvcm1hdHRlckRl
YnVnLmpzCkBAIC0xLDggKzEsOCBAQAogRXNwcmltYUZvcm1hdHRlckRlYnVnID0gY2xhc3MgRXNw
cmltYUZvcm1hdHRlckRlYnVnCiB7Ci0gICAgY29uc3RydWN0b3Ioc291cmNlVGV4dCkKKyAgICBj
b25zdHJ1Y3Rvcihzb3VyY2VUZXh0LCBzb3VyY2VUeXBlKQogICAgIHsKLSAgICAgICAgbGV0IHRy
ZWUgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZVRleHQsIHthdHRhY2hDb21tZW50OiB0cnVlLCByYW5n
ZTogdHJ1ZSwgdG9rZW5zOiB0cnVlfSk7CisgICAgICAgIGxldCB0cmVlID0gZXNwcmltYS5wYXJz
ZShzb3VyY2VUZXh0LCB7YXR0YWNoQ29tbWVudDogdHJ1ZSwgcmFuZ2U6IHRydWUsIHRva2Vuczog
dHJ1ZSwgc291cmNlVHlwZX0pOwogICAgICAgICBsZXQgd2Fsa2VyID0gbmV3IEVTVHJlZVdhbGtl
cih0aGlzLl9iZWZvcmUuYmluZCh0aGlzKSwgdGhpcy5fYWZ0ZXIuYmluZCh0aGlzKSk7CiAKICAg
ICAgICAgdGhpcy5fc3RhdGlzdGljcyA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Ub29scy9Gb3JtYXR0aW5nL2luZGV4Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VG9vbHMvRm9ybWF0dGluZy9pbmRleC5odG1sCmluZGV4IDM3NjVhZjUuLmY5MzQ2MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9Gb3JtYXR0aW5nL2luZGV4Lmh0bWwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRpbmcvaW5kZXguaHRtbApA
QCAtMjAsNiArMjAsMTAgQEAKICAgICA8IS0tIENvbnRyb2xzIC0tPgogICAgIDxidXR0b24gaWQ9
InBvcHVsYXRlIj5Qb3B1bGF0ZTwvYnV0dG9uPgogICAgIDxzZWxlY3QgaWQ9ImxvYWQtaW5kaXZp
ZHVhbC10ZXN0Ij48b3B0aW9uPi0tIExvYWQgVGVzdCAtLTwvb3B0aW9uPjwvc2VsZWN0PgorICAg
IDxzbWFsbD4KKyAgICAgICAgPGxhYmVsPjxpbnB1dCBpZD0icHJvZ3JhbSIgdHlwZT0icmFkaW8i
IG5hbWU9InByb2dyYW0tb3ItbW9kdWxlIj4gUHJvZ3JhbTwvbGFiZWw+CisgICAgICAgIDxsYWJl
bD48aW5wdXQgaWQ9Im1vZHVsZSIgdHlwZT0icmFkaW8iIG5hbWU9InByb2dyYW0tb3ItbW9kdWxl
IiBjaGVja2VkPiBNb2R1bGU8L2xhYmVsPgorICAgIDwvc21hbGw+CiAgICAgPGJ1dHRvbiBpZD0i
cnVuLXRlc3RzIj5SdW4gQWxsIFRlc3RzPC9idXR0b24+CiAgICAgPGJ1dHRvbiBpZD0iY2xlYXIi
PkNsZWFyPC9idXR0b24+CiAgICAgPGJ1dHRvbiBpZD0ic2VsZWN0LW91dHB1dCI+U2VsZWN0IE91
dHB1dDwvYnV0dG9uPgpAQCAtNjUsNyArNjksNyBAQAogICAgICAgICAic2FtcGxlLXdlYmluc3Bl
Y3Rvci1vYmplY3QuanMiLAogICAgICAgICAic2FtcGxlLW5vcm1hbC11dGlsaXRpZXMuanMiLAog
ICAgICAgICAic2FtcGxlLWpxdWVyeS5qcyIsCi0gICAgICAgIC8vIEZJWE1FOiBBZGQgYSBtb2R1
bGVzIHRlc3Qgd2hlbiB3ZSBzdXBwb3J0IHRlc3RpbmcgbW9kdWxlIHNvdXJjZSBjb2RlLgorICAg
ICAgICAibW9kdWxlcy5qcyIsCiAgICAgXTsKIAogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZyb20g
VVJMLgpAQCAtODMsNiArODcsOCBAQAogICAgIGxldCBjb250ZW50ID0gIihmdW5jdGlvbigpe2xl
dCBhPTE7cmV0dXJuIGErMTt9KSgpOyI7CiAgICAgaWYgKHF1ZXJ5UGFyYW1zLmNvbnRlbnQpCiAg
ICAgICAgIGNvbnRlbnQgPSBxdWVyeVBhcmFtcy5jb250ZW50IHx8ICIiOworICAgIGlmIChxdWVy
eVBhcmFtcy5wcm9ncmFtKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvZ3Jh
bSIpLmNoZWNrZWQgPSB0cnVlOwogCiAgICAgLy8gU2V0dXAgQ29kZU1pcnJvci4KICAgICBsZXQg
Y20gPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29k
ZSIpLCB7bGluZU51bWJlcnM6IHRydWV9KTsKQEAgLTExMCw2ICsxMTYsMTIgQEAKICAgICAgICAg
b3B0aW9uLnZhbHVlID0gdGVzdDsKICAgICB9CiAKKyAgICAvLyBQcm9ncmFtIC8gTW9kdWxlIGNo
ZWNrYm94ZXMuCisgICAgbGV0IHByb2dyYW1DaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwcm9ncmFtIik7CisgICAgbGV0IG1vZHVsZUNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1vZHVsZSIpOworICAgIHByb2dyYW1DaGVja2JveC5hZGRFdmVudExpc3RlbmVy
KCJjaGFuZ2UiLCByZWZyZXNoKTsKKyAgICBtb2R1bGVDaGVja2JveC5hZGRFdmVudExpc3RlbmVy
KCJjaGFuZ2UiLCByZWZyZXNoKTsKKwogICAgIC8vIFJ1biBUZXN0cyBidXR0b24uCiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJ1bi10ZXN0cyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgY20uc2V0VmFsdWUoIi8qIFJ1bm5pbmcgVGVz
dHMuLi4gKi8iKTsKQEAgLTE0MCw3ICsxNTIsMTAgQEAKICAgICAvLyBTYXZlIGFzIFVSTCBidXR0
b24uCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtYXMtdXJsIikuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICBsZXQgY29udGVudCA9
IGNtLmdldFZhbHVlKCk7Ci0gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPSAiP2NvbnRl
bnQ9IiArIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoY29udGVudCk7CisgICAgICAgIGxldCBx
dWVyeVN0cmluZyA9ICI/Y29udGVudD0iICsgd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChjb250
ZW50KTsKKyAgICAgICAgaWYgKHByb2dyYW1DaGVja2JveC5jaGVja2VkKQorICAgICAgICAgICAg
cXVlcnlTdHJpbmcgKz0gIiZwcm9ncmFtIjsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9IHF1ZXJ5U3RyaW5nOwogICAgIH0pOwogCiAgICAgLy8gUmVmcmVzaCBhZnRlciBjaGFuZ2Vz
IGFmdGVyIGEgc2hvcnQgZGVsYXkuCkBAIC0xNjAsMTkgKzE3NSwyOSBAQAogICAgIGxldCBwcmV0
dHlQcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJldHR5Iik7CiAgICAgbGV0IGRlYnVn
UHJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnIik7CiAKKyAgICAvLyBDdXJyZW50
IHZhbHVlIG9mIGNoZWNrYm94ZXMuCisgICAgZnVuY3Rpb24gY3VycmVudFNvdXJjZVR5cGUoKSB7
CisgICAgICAgIGlmIChwcm9ncmFtQ2hlY2tib3guY2hlY2tlZCkKKyAgICAgICAgICAgIHJldHVy
biBFc3ByaW1hRm9ybWF0dGVyLlNvdXJjZVR5cGUuU2NyaXB0OworICAgICAgICBpZiAobW9kdWxl
Q2hlY2tib3guY2hlY2tlZCkKKyAgICAgICAgICAgIHJldHVybiBFc3ByaW1hRm9ybWF0dGVyLlNv
dXJjZVR5cGUuTW9kdWxlOworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlByb2dyYW0g
b3IgTW9kdWxlIHJhZGlvIGJ1dHRvbiBzaG91bGQgYmUgY2hlY2tlZCIpOworICAgICAgICByZXR1
cm4gdW5kZWZpbmVkOworICAgIH0KKwogICAgIGZ1bmN0aW9uIHJlZnJlc2goKSB7CiAgICAgICAg
IGlmICh0aW1lcikKICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAKICAgICAgICAg
Ly8gVGltZSB0aGUgZm9ybWF0dGVyLgogICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3co
KTsKLSAgICAgICAgbGV0IGZvcm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKGNtLmdldFZh
bHVlKCkpOworICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IEVzcHJpbWFGb3JtYXR0ZXIoY20u
Z2V0VmFsdWUoKSwgY3VycmVudFNvdXJjZVR5cGUoKSk7CiAgICAgICAgIGxldCBlbmRUaW1lID0g
RGF0ZS5ub3coKTsKIAogICAgICAgICAvLyBTaG93IGRlYnVnIGluZm8uCiAgICAgICAgIGxldCBk
ZWJ1Z1RleHQ7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQgZGVidWdGb3JtYXR0ZXIg
PSBuZXcgRXNwcmltYUZvcm1hdHRlckRlYnVnKGNtLmdldFZhbHVlKCkpOworICAgICAgICAgICAg
bGV0IGRlYnVnRm9ybWF0dGVyID0gbmV3IEVzcHJpbWFGb3JtYXR0ZXJEZWJ1ZyhjbS5nZXRWYWx1
ZSgpLCBjdXJyZW50U291cmNlVHlwZSgpKTsKICAgICAgICAgICAgIGRlYnVnVGV4dCA9IGRlYnVn
Rm9ybWF0dGVyLmRlYnVnVGV4dDsKICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAg
ICAgIGRlYnVnVGV4dCA9ICJQYXJzZSBlcnJvciI7CkBAIC0xODgsMTIgKzIxMywyMSBAQAogCiAg
ICAgLy8gVGVzdGluZy4KIAorICAgIGZ1bmN0aW9uIGlzTW9kdWxlVGVzdCh0ZXN0KSB7CisgICAg
ICAgIHJldHVybiB0ZXN0ID09PSAibW9kdWxlcy5qcyI7CisgICAgfQorCiAgICAgZnVuY3Rpb24g
bG9hZEluZGl2aWR1YWxUZXN0KHRlc3QpIHsKICAgICAgICAgbGV0IHRlc3RVUkwgPSB0ZXN0VVJM
UHJlZml4ICsgdGVzdDsKICAgICAgICAgbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKICAg
ICAgICAgeGhyLm9wZW4oIkdFVCIsIHRlc3RVUkwsIHRydWUpOwogICAgICAgICB4aHIub25sb2Fk
ID0gKCkgPT4geyBjbS5zZXRWYWx1ZSh4aHIucmVzcG9uc2VUZXh0KTsgc2V0VGltZW91dChyZWZy
ZXNoKTsgfQogICAgICAgICB4aHIuc2VuZCgpOworCisgICAgICAgIGlmIChpc01vZHVsZVRlc3Qo
dGVzdCkpCisgICAgICAgICAgICBtb2R1bGVDaGVja2JveC5jaGVja2VkID0gdHJ1ZTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcHJvZ3JhbUNoZWNrYm94LmNoZWNrZWQgPSB0cnVlOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHJ1bkFsbFRlc3RzKCkgewpAQCAtMjI1LDcgKzI1OSw4IEBACiAg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWREYXRhID0geGhyMi5yZXNwb25zZVRleHQ7CiAKICAgICAg
ICAgICAgIC8vIFJ1biB0aGUgdGVzdC4KLSAgICAgICAgICAgIGxldCBmb3JtYXR0ZXIgPSBuZXcg
RXNwcmltYUZvcm1hdHRlcih0ZXN0RGF0YSk7CisgICAgICAgICAgICBsZXQgc291cmNlVHlwZSA9
IGlzTW9kdWxlVGVzdCh0ZXN0KSA/IEVzcHJpbWFGb3JtYXR0ZXIuU291cmNlVHlwZS5Nb2R1bGUg
OiBFc3ByaW1hRm9ybWF0dGVyLlNvdXJjZVR5cGUuU2NyaXB0OworICAgICAgICAgICAgbGV0IGZv
cm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKHRlc3REYXRhLCBzb3VyY2VUeXBlKTsKIAog
ICAgICAgICAgICAgLy8gQ29tcGFyZSByZXN1bHRzLgogICAgICAgICAgICAgbGV0IHBhc3MgPSBm
b3JtYXR0ZXIuZm9ybWF0dGVkVGV4dCA9PT0gZXhwZWN0ZWREYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9Gb3JtYXR0ZXJXb3JrZXJQ
cm94eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvRm9y
bWF0dGVyV29ya2VyUHJveHkuanMKaW5kZXggOGRlNTFkNS4uOTYxNTlmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9Gb3JtYXR0ZXJXb3Jr
ZXJQcm94eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94
aWVzL0Zvcm1hdHRlcldvcmtlclByb3h5LmpzCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYkluc3BlY3Rv
ci5Gb3JtYXR0ZXJXb3JrZXJQcm94eSA9IGNsYXNzIEZvcm1hdHRlcldvcmtlclByb3h5IGV4dGVu
ZHMgV2ViSW5zcGVjCiAKICAgICAvLyBBY3Rpb25zCiAKLSAgICBmb3JtYXRKYXZhU2NyaXB0KHNv
dXJjZVRleHQsIGluZGVudFN0cmluZywgaW5jbHVkZVNvdXJjZU1hcERhdGEpCisgICAgZm9ybWF0
SmF2YVNjcmlwdChzb3VyY2VUZXh0LCBpc01vZHVsZSwgaW5kZW50U3RyaW5nLCBpbmNsdWRlU291
cmNlTWFwRGF0YSkKICAgICB7CiAgICAgICAgIHRoaXMucGVyZm9ybUFjdGlvbigiZm9ybWF0SmF2
YVNjcmlwdCIsIC4uLmFyZ3VtZW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVk
aXRvci5qcwppbmRleCA2OTllNDQ4Li44NTU3Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4
dEVkaXRvci5qcwpAQCAtMTUyMyw4ICsxNTIzLDkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVU
ZXh0RWRpdG9yID0gY2xhc3MgU291cmNlQ29kZVRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWMK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVt
LzEwNTkzOTQ4PiBQcm92aWRlIGEgd2F5IHRvIGNoYW5nZSB0aGUgdGFiIHdpZHRoIGluIHRoZSBX
ZWIgSW5zcGVjdG9yCisgICAgICAgICAgICBjb25zdCBpc01vZHVsZSA9IGZhbHNlOwogICAgICAg
ICAgICAgbGV0IHdvcmtlclByb3h5ID0gV2ViSW5zcGVjdG9yLkZvcm1hdHRlcldvcmtlclByb3h5
LnNpbmdsZXRvbigpOwotICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdChk
YXRhLmRlc2NyaXB0aW9uLCAiICAgICIsIGZhbHNlLCAoe2Zvcm1hdHRlZFRleHR9KSA9PiB7Cisg
ICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KGRhdGEuZGVzY3JpcHRpb24s
IGlzTW9kdWxlLCAiICAgICIsIGZhbHNlLCAoe2Zvcm1hdHRlZFRleHR9KSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShmb3JtYXR0ZWRUZXh0IHx8IGRhdGEuZGVzY3Jp
cHRpb24pOwogICAgICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4IDQ5YzIwYjQuLmI4
MmE2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVGV4dEVkaXRvci5qcwpAQCAtNzkyLDggKzc5MiwxMSBAQCBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwog
ICAgICAgICBsZXQgc291cmNlVGV4dCA9IHRoaXMuX2NvZGVNaXJyb3IuZ2V0VmFsdWUoKTsKICAg
ICAgICAgbGV0IGluY2x1ZGVTb3VyY2VNYXBEYXRhID0gdHJ1ZTsKIAorICAgICAgICAvLyBGSVhN
RTogUHJvcGVybHkgcGFzcyBpZiB0aGlzIGlzIGEgbW9kdWxlIG9yIHNjcmlwdC4KKyAgICAgICAg
Y29uc3QgaXNNb2R1bGUgPSBmYWxzZTsKKwogICAgICAgICBsZXQgd29ya2VyUHJveHkgPSBXZWJJ
bnNwZWN0b3IuRm9ybWF0dGVyV29ya2VyUHJveHkuc2luZ2xldG9uKCk7Ci0gICAgICAgIHdvcmtl
clByb3h5LmZvcm1hdEphdmFTY3JpcHQoc291cmNlVGV4dCwgaW5kZW50U3RyaW5nLCBpbmNsdWRl
U291cmNlTWFwRGF0YSwgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4geworICAg
ICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KHNvdXJjZVRleHQsIGlzTW9kdWxlLCBp
bmRlbnRTdHJpbmcsIGluY2x1ZGVTb3VyY2VNYXBEYXRhLCAoe2Zvcm1hdHRlZFRleHQsIHNvdXJj
ZU1hcERhdGF9KSA9PiB7CiAgICAgICAgICAgICAvLyBIYW5kbGUgaWYgZm9ybWF0dGluZyBmYWls
ZWQsIHdoaWNoIGlzIHBvc3NpYmxlIGZvciBpbnZhbGlkIHByb2dyYW1zLgogICAgICAgICAgICAg
aWYgKGZvcm1hdHRlZFRleHQgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFjaygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vy
cy9Gb3JtYXR0ZXIvRVNUcmVlV2Fsa2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRVNUcmVlV2Fsa2VyLmpzCmluZGV4IGVjNzAzNzMu
LmJkNWRkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1dvcmtlcnMvRm9ybWF0dGVyL0VTVHJlZVdhbGtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9FU1RyZWVXYWxrZXIuanMKQEAg
LTI0MCw2ICsyNDAsMzYgQEAgRVNUcmVlV2Fsa2VyID0gY2xhc3MgRVNUcmVlV2Fsa2VyCiAgICAg
ICAgICAgICB0aGlzLl93YWxrKG5vZGUuYXJndW1lbnQsIG5vZGUpOwogICAgICAgICAgICAgYnJl
YWs7CiAKKyAgICAgICAgY2FzZSAiRXhwb3J0QWxsRGVjbGFyYXRpb24iOgorICAgICAgICAgICAg
dGhpcy5fd2Fsayhub2RlLnNvdXJjZSwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiI6CisgICAgICAgICAgICB0aGlzLl93YWxr
KG5vZGUuZGVjbGFyYXRpb24sIG5vZGUpOworICAgICAgICAgICAgdGhpcy5fd2Fsa0FycmF5KG5v
ZGUuc3BlY2lmaWVycywgbm9kZSk7CisgICAgICAgICAgICB0aGlzLl93YWxrKG5vZGUuc291cmNl
LCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJFeHBvcnREZWZhdWx0
RGVjbGFyYXRpb24iOgorICAgICAgICAgICAgdGhpcy5fd2Fsayhub2RlLmRlY2xhcmF0aW9uLCBu
b2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJFeHBvcnRTcGVjaWZpZXIi
OgorICAgICAgICAgICAgdGhpcy5fd2Fsayhub2RlLmxvY2FsLCBub2RlKTsKKyAgICAgICAgICAg
IHRoaXMuX3dhbGsobm9kZS5leHBvcnRlZCwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAiSW1wb3J0RGVjbGFyYXRpb24iOgorICAgICAgICAgICAgdGhpcy5fd2Fsa0Fy
cmF5KG5vZGUuc3BlY2lmaWVycywgbm9kZSk7CisgICAgICAgICAgICB0aGlzLl93YWxrKG5vZGUu
c291cmNlLCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJJbXBvcnRE
ZWZhdWx0U3BlY2lmaWVyIjoKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5sb2NhbCwgbm9k
ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiSW1wb3J0TmFtZXNwYWNlU3Bl
Y2lmaWVyIjoKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5sb2NhbCwgbm9kZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiSW1wb3J0U3BlY2lmaWVyIjoKKyAgICAgICAg
ICAgIHRoaXMuX3dhbGsobm9kZS5pbXBvcnRlZCwgbm9kZSk7CisgICAgICAgICAgICB0aGlzLl93
YWxrKG5vZGUubG9jYWwsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgLy8g
U3BlY2lhbCBjYXNlLiBXZSB3YW50IHRvIHdhbGsgaW4gcHJvZ3JhbSBvcmRlciwKICAgICAgICAg
Ly8gc28gd2FsayBxdWFzaSwgZXhwcmVzc2lvbiwgcXVhc2ksIGV4cHJlc3Npb24sIGV0Yy4KICAg
ICAgICAgY2FzZSAiVGVtcGxhdGVMaXRlcmFsIjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0VzcHJpbWFGb3JtYXR0ZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRl
ci9Fc3ByaW1hRm9ybWF0dGVyLmpzCmluZGV4IGQ3YWFkMmIuLjljZGMxNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0Vz
cHJpbWFGb3JtYXR0ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvV29ya2Vycy9Gb3JtYXR0ZXIvRXNwcmltYUZvcm1hdHRlci5qcwpAQCAtMjksMTQgKzI5LDEz
IEBACiAKIEVzcHJpbWFGb3JtYXR0ZXIgPSBjbGFzcyBFc3ByaW1hRm9ybWF0dGVyCiB7Ci0gICAg
Y29uc3RydWN0b3Ioc291cmNlVGV4dCwgaW5kZW50U3RyaW5nID0gIiAgICAiKQorICAgIGNvbnN0
cnVjdG9yKHNvdXJjZVRleHQsIHNvdXJjZVR5cGUsIGluZGVudFN0cmluZyA9ICIgICAgIikKICAg
ICB7CiAgICAgICAgIHRoaXMuX3N1Y2Nlc3MgPSBmYWxzZTsKIAogICAgICAgICBsZXQgdHJlZSA9
IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IFN1cHBvcnQgIm1vZHVsZSIgc291cmNlVHlwZSBhcyB3ZWxsLgotICAgICAgICAgICAgICAg
IHJldHVybiBlc3ByaW1hLnBhcnNlKHNvdXJjZVRleHQsIHthdHRhY2hDb21tZW50OiB0cnVlLCBy
YW5nZTogdHJ1ZSwgdG9rZW5zOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVzcHJp
bWEucGFyc2Uoc291cmNlVGV4dCwge2F0dGFjaENvbW1lbnQ6IHRydWUsIHJhbmdlOiB0cnVlLCB0
b2tlbnM6IHRydWUsIHNvdXJjZVR5cGV9KTsKICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICB9CkBAIC03MzgsNyAr
NzM3LDggQEAgRXNwcmltYUZvcm1hdHRlciA9IGNsYXNzIEVzcHJpbWFGb3JtYXR0ZXIKIAogICAg
ICAgICBpZiAobm9kZVR5cGUgPT09ICJDbGFzc0JvZHkiKSB7CiAgICAgICAgICAgICBpZiAodG9r
ZW5WYWx1ZSA9PT0gInsiKSB7Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTcGFjZSgp
OworICAgICAgICAgICAgICAgIGlmIChub2RlLnBhcmVudC5pZCkKKyAgICAgICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmRTcGFjZSgpOwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
VG9rZW4odG9rZW5WYWx1ZSwgdG9rZW5PZmZzZXQpOwogICAgICAgICAgICAgICAgIGlmIChub2Rl
LmJvZHkubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE5ld2xpbmUo
KTsKQEAgLTc3OCw2ICs3NzgsMzAgQEAgRXNwcmltYUZvcm1hdHRlciA9IGNsYXNzIEVzcHJpbWFG
b3JtYXR0ZXIKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmIChu
b2RlVHlwZSA9PT0gIkltcG9ydERlY2xhcmF0aW9uIiB8fCBub2RlVHlwZSA9PT0gIkV4cG9ydE5h
bWVkRGVjbGFyYXRpb24iKSB7CisgICAgICAgICAgICBpZiAodG9rZW5WYWx1ZSA9PT0gIn0iIHx8
ICh0b2tlblR5cGUgPT09ICJJZGVudGlmaWVyIiAmJiB0b2tlblZhbHVlID09PSAiZnJvbSIpKQor
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kU3BhY2UoKTsKKyAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kVG9rZW4odG9rZW5WYWx1ZSwgdG9rZW5PZmZzZXQpOworICAgICAgICAgICAgaWYg
KHRva2VuVmFsdWUgIT09ICJ9IikKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFNwYWNl
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZVR5
cGUgPT09ICJFeHBvcnRTcGVjaWZpZXIiIHx8IG5vZGVUeXBlID09PSAiSW1wb3J0U3BlY2lmaWVy
IikgeworICAgICAgICAgICAgaWYgKHRva2VuVHlwZSA9PT0gIklkZW50aWZpZXIiICYmIHRva2Vu
VmFsdWUgPT09ICJhcyIpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTcGFjZSgpOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRUb2tlbih0b2tlblZhbHVlLCB0b2tlbk9mZnNldCk7
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFNwYWNlKCk7CisgICAgICAgICAgICByZXR1cm47
ICAgICAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZVR5cGUgPT09ICJFeHBv
cnRBbGxEZWNsYXJhdGlvbiIgfHwgbm9kZVR5cGUgPT09ICJFeHBvcnREZWZhdWx0RGVjbGFyYXRp
b24iIHx8IG5vZGVUeXBlID09PSAiSW1wb3J0RGVmYXVsdFNwZWNpZmllciIgfHwgbm9kZVR5cGUg
PT09ICJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIiKSB7CisgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZFRva2VuKHRva2VuVmFsdWUsIHRva2VuT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmICh0b2tl
blZhbHVlICE9PSAiKCIgJiYgdG9rZW5WYWx1ZSAhPT0gIikiKQorICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kU3BhY2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAg
ICAgICAgIC8vIEluY2x1ZGUgdGhlc2UgaGVyZSBzbyB3ZSBnZXQgb25seSBnZXQgd2FybmluZ3Mg
YWJvdXQgdW5oYW5kbGVkIG5vZGVzLgogICAgICAgICBpZiAobm9kZVR5cGUgPT09ICJFeHByZXNz
aW9uU3RhdGVtZW50IgogICAgICAgICAgICAgfHwgbm9kZVR5cGUgPT09ICJTcHJlYWRFbGVtZW50
IgpAQCAtODc2LDMgKzkwMCw4IEBAIEVzcHJpbWFGb3JtYXR0ZXIgPSBjbGFzcyBFc3ByaW1hRm9y
bWF0dGVyCiAgICAgICAgIH0KICAgICB9CiB9OworCitFc3ByaW1hRm9ybWF0dGVyLlNvdXJjZVR5
cGUgPSB7CisgICAgU2NyaXB0OiAic2NyaXB0IiwKKyAgICBNb2R1bGU6ICJtb2R1bGUiLAorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMv
Rm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qcwppbmRleCA5YmM4
OTJlLi45YzA1NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9ybWF0dGVyV29y
a2VyLmpzCkBAIC00MCwxMCArNDAsMTIgQEAgRm9ybWF0dGVyV29ya2VyID0gY2xhc3MgRm9ybWF0
dGVyV29ya2VyCiAKICAgICAvLyBBY3Rpb25zCiAKLSAgICBmb3JtYXRKYXZhU2NyaXB0KHNvdXJj
ZVRleHQsIGluZGVudFN0cmluZywgaW5jbHVkZVNvdXJjZU1hcERhdGEpCisgICAgZm9ybWF0SmF2
YVNjcmlwdChzb3VyY2VUZXh0LCBpc01vZHVsZSwgaW5kZW50U3RyaW5nLCBpbmNsdWRlU291cmNl
TWFwRGF0YSkKICAgICB7CisgICAgICAgIGxldCBzb3VyY2VUeXBlID0gaXNNb2R1bGUgPyBFc3By
aW1hRm9ybWF0dGVyLlNvdXJjZVR5cGUuTW9kdWxlIDogRXNwcmltYUZvcm1hdHRlci5Tb3VyY2VU
eXBlLlNjcmlwdDsKKwogICAgICAgICAvLyBGb3JtYXQgYSBKYXZhU2NyaXB0IHByb2dyYW0uCi0g
ICAgICAgIGxldCBmb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1hdHRlcihzb3VyY2VUZXh0LCBp
bmRlbnRTdHJpbmcpOworICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IEVzcHJpbWFGb3JtYXR0
ZXIoc291cmNlVGV4dCwgc291cmNlVHlwZSwgaW5kZW50U3RyaW5nKTsKICAgICAgICAgaWYgKGZv
cm1hdHRlci5zdWNjZXNzKSB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge2Zvcm1hdHRlZFRl
eHQ6IGZvcm1hdHRlci5mb3JtYXR0ZWRUZXh0fTsKICAgICAgICAgICAgIGlmIChpbmNsdWRlU291
cmNlTWFwRGF0YSkgewpAQCAtNzQsNyArNzYsNyBAQCBGb3JtYXR0ZXJXb3JrZXIgPSBjbGFzcyBG
b3JtYXR0ZXJXb3JrZXIKICAgICAgICAgLy8gTGlrZXdpc2UsIGFuIHVubmFtZWQgZnVuY3Rpb24n
cyB0b1N0cmluZygpIHByb2R1Y2VzIGEgImZ1bmN0aW9uKCkgeyAuLi4gfSIsIHdoaWNoIGlzIG5v
dAogICAgICAgICAvLyBhIHZhbGlkIHByb2dyYW0gb24gaXRzIG93bi4gV3JhcCBpdCBpbiBwYXJl
bnRoZXNpcyB0byBtYWtlIGl0IGEgZnVuY3Rpb24gZXhwcmVzc2lvbiwKICAgICAgICAgLy8gd2hp
Y2ggaXMgYSB2YWxpZCBwcm9ncmFtLgotICAgICAgICBsZXQgaW52YWxpZEpTT05Gb3JtYXR0ZXIg
PSBuZXcgRXNwcmltYUZvcm1hdHRlcigiKCIgKyBzb3VyY2VUZXh0ICsgIikiLCBpbmRlbnRTdHJp
bmcpOworICAgICAgICBsZXQgaW52YWxpZEpTT05Gb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1h
dHRlcigiKCIgKyBzb3VyY2VUZXh0ICsgIikiLCBzb3VyY2VUeXBlLCBpbmRlbnRTdHJpbmcpOwog
ICAgICAgICBpZiAoaW52YWxpZEpTT05Gb3JtYXR0ZXIuc3VjY2VzcykgewogICAgICAgICAgICAg
bGV0IGZvcm1hdHRlZFRleHRXaXRoUGFyZW5zID0gaW52YWxpZEpTT05Gb3JtYXR0ZXIuZm9ybWF0
dGVkVGV4dDsKICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7Zm9ybWF0dGVkVGV4dDogZm9ybWF0
dGVkVGV4dFdpdGhQYXJlbnMuc3Vic3RyaW5nKDEsIGZvcm1hdHRlZFRleHRXaXRoUGFyZW5zLmxl
bmd0aCAtIDIpfTsgLy8gUmVtb3ZlICIoIiBhbmQgIilcbiIuCg==
</data>
<flag name="review"
          id="311965"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288706</attachid>
            <date>2016-09-13 11:25:20 -0700</date>
            <delta_ts>2016-09-13 11:39:18 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>modules-3.patch</filename>
            <type>text/plain</type>
            <size>25041</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkY2E1ZjEzLi5mNTc3YTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDkt
MTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG91bGQgYmUgYWJsZSB0byBwcmV0dHkgcHJpbnQgbW9kdWxlIGNvZGUgKGlt
cG9ydCAvIGV4cG9ydCBzdGF0ZW1lbnRzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODI3Mjc4
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogaW5z
cGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFzY3JpcHQuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0
cy9tb2R1bGVzLWV4cGVjdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZm9ybWF0
dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9tb2R1bGVzLmpzOiBBZGRlZC4KKyAgICAg
ICAgSW5jbHVkZSBhIG5ldyB0ZXN0IGZvciBtb2R1bGVzLgorCisgICAgICAgICogaW5zcGVjdG9y
L2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLmh0bWw6CisgICAgICAgIEFsbCBvZiB0aGVzZSBh
cmUgbm9uLW1vZHVsZSBzb3VyY2UgY29kZS4KKworICAgICAgICAqIGluc3BlY3Rvci9mb3JtYXR0
aW5nL3Jlc291cmNlcy91dGlsaXRpZXMuanM6CisgICAgICAgIERldGVybWluZSBpZiBtb2R1bGUg
b3Igbm90IGJhc2VkIG9uIHRoZSB0ZXN0IG5hbWUuCisKIDIwMTYtMDktMTIgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MQnV0dG9uRWxlbWVudC5w
cm90b3R5cGUuY2xpY2sgc2hvdWxkIGJlIEhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljawpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZh
c2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zv
cm1hdHRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQKaW5kZXggNGI2ZDVlNy4uMDE3Y2M1NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1q
YXZhc2NyaXB0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0
dGluZy9mb3JtYXR0aW5nLWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0CkBAIC04MCwzICs4MCw2IEBA
IFBBU1MKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBFc3ByaW1hRm9ybWF0dGVyLkphdmFTY3JpcHQu
d2l0aC1zdGF0ZW1lbnQuanMKIFBBU1MKIAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVzcHJpbWFG
b3JtYXR0ZXIuSmF2YVNjcmlwdC5tb2R1bGVzLmpzCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctamF2YXNjcmlwdC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0
bWwKaW5kZXggZjA2Zjc1ZC4uMzNlMTJiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0bWwKQEAgLTM1
LDYgKzM1LDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICJyZXNvdXJjZXMvamF2YXNjcmlw
dC10ZXN0cy92YXJpYWJsZS1kZWNsYXJhdGlvbi5qcyIsCiAgICAgICAgICJyZXNvdXJjZXMvamF2
YXNjcmlwdC10ZXN0cy93aGlsZS1zdGF0ZW1lbnQuanMiLAogICAgICAgICAicmVzb3VyY2VzL2ph
dmFzY3JpcHQtdGVzdHMvd2l0aC1zdGF0ZW1lbnQuanMiLAorCisgICAgICAgIC8vIE1vZHVsZXMK
KyAgICAgICAgInJlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL21vZHVsZXMuanMiLAogICAgIF0p
OwogCiAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24uaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sCmluZGV4IGRl
ZDVlYzIuLjM3NDVjNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0
aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3Jt
YXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sCkBAIC0zNCw3ICszNCw4IEBAIGZ1bmN0aW9uIHRl
c3QoKQogCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJF
c3ByaW1hRm9ybWF0dGVyLkpTT04iKTsKIAotICAgIGxldCBpbmRlbnRTdHJpbmcgPSAiICAgICI7
CisgICAgY29uc3QgaXNNb2R1bGUgPSBmYWxzZTsKKyAgICBjb25zdCBpbmRlbnRTdHJpbmcgPSAi
ICAgICI7CiAgICAgbGV0IHdvcmtlclByb3h5ID0gV2ViSW5zcGVjdG9yLkZvcm1hdHRlcldvcmtl
clByb3h5LnNpbmdsZXRvbigpOwogCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewpAQCAtNDQsNyAr
NDUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGxldCB2YWxpZEpTT04gPSBKU09O
LnN0cmluZ2lmeSh7ImEiOjEyMywiYiI6WzEsMiwzXSwiYyI6eyJkIjoiZSJ9fSk7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSlNPTjogIiArIGRvdWJsZVF1b3RlZFN0cmluZyh2YWxp
ZEpTT04pKTsKICAgICAgICAgICAgIGVuc3VyZUpTT04odmFsaWRKU09OLCAidmFsaWQiKTsKLSAg
ICAgICAgICAgIHdvcmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQodmFsaWRKU09OLCBpbmRlbnRT
dHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKKyAgICAgICAgICAg
IHdvcmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQodmFsaWRKU09OLCBpc01vZHVsZSwgaW5kZW50
U3RyaW5nLCAoe2Zvcm1hdHRlZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZPUk1BVFRFRDoiKTsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhmb3JtYXR0ZWRUZXh0KTsKICAgICAgICAgICAgICAgICByZXNvbHZl
KCk7CkBAIC02MCw3ICs2MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkpTT046ICIgKyBkb3VibGVRdW90ZWRTdHJpbmcoaW52YWxpZEpTT04pKTsK
ICAgICAgICAgICAgIGVuc3VyZUpTT04oaW52YWxpZEpTT04sICJpbnZhbGlkIik7CiAgICAgICAg
ICAgICBlbnN1cmVFdmFsKGludmFsaWRKU09OLCAib2JqZWN0Iik7Ci0gICAgICAgICAgICB3b3Jr
ZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KGludmFsaWRKU09OLCBpbmRlbnRTdHJpbmcsICh7Zm9y
bWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKKyAgICAgICAgICAgIHdvcmtlclByb3h5
LmZvcm1hdEphdmFTY3JpcHQoaW52YWxpZEpTT04sIGlzTW9kdWxlLCBpbmRlbnRTdHJpbmcsICh7
Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRk9STUFUVEVEOiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKGZvcm1hdHRlZFRleHQpOwogICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTc2
LDcgKzc3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiSlNPTjogIiArIGRvdWJsZVF1b3RlZFN0cmluZyhpbnZhbGlkSlNPTikpOwogICAgICAgICAg
ICAgZW5zdXJlSlNPTihpbnZhbGlkSlNPTiwgImludmFsaWQiKTsKICAgICAgICAgICAgIGVuc3Vy
ZUV2YWwoaW52YWxpZEpTT04sICJvYmplY3QiKTsKLSAgICAgICAgICAgIHdvcmtlclByb3h5LmZv
cm1hdEphdmFTY3JpcHQoaW52YWxpZEpTT04sIGluZGVudFN0cmluZywgKHtmb3JtYXR0ZWRUZXh0
LCBzb3VyY2VNYXBEYXRhfSkgPT4geworICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2
YVNjcmlwdChpbnZhbGlkSlNPTiwgaXNNb2R1bGUsIGluZGVudFN0cmluZywgKHtmb3JtYXR0ZWRU
ZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4gewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJGT1JNQVRURUQ6Iik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coZm9y
bWF0dGVkVGV4dCk7CiAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAtOTIsNyArOTMsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJTlBVVDog
IiArIGRvdWJsZVF1b3RlZFN0cmluZyhpbnZhbGlkKSk7CiAgICAgICAgICAgICBlbnN1cmVKU09O
KGludmFsaWQsICJpbnZhbGlkIik7CiAgICAgICAgICAgICBlbnN1cmVFdmFsKGludmFsaWQsICJi
YWQiKTsKLSAgICAgICAgICAgIHdvcmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQoaW52YWxpZCwg
aW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRlZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAg
ICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KGludmFsaWQsIGlzTW9kdWxlLCBp
bmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZm9ybWF0dGVkVGV4dCA9PT0gbnVs
bCwgIlJlc3BvbnNlIHNob3VsZCBiZSBudWxsLiIpOwogICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zv
cm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvbW9kdWxlcy1leHBlY3RlZC5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRl
c3RzL21vZHVsZXMtZXhwZWN0ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODdhMjJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3Jt
YXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL21vZHVsZXMtZXhwZWN0ZWQuanMKQEAg
LTAsMCArMSw0MCBAQAoraW1wb3J0ICJtb2R1bGUiOworaW1wb3J0IHggZnJvbSAibW9kdWxlIjsK
K2ltcG9ydCB7IHggfSBmcm9tICJtb2R1bGUiOworaW1wb3J0IHsgYSwgYiwgYyB9IGZyb20gIm1v
ZHVsZSI7CitpbXBvcnQgeyBhLCBiLCBjLCAgfSBmcm9tICJtb2R1bGUiOworaW1wb3J0IHsgYSBh
cyBBIH0gZnJvbSAibW9kdWxlIjsKK2ltcG9ydCB7IGEsIGEgYXMgQSwgYSB9IGZyb20gIm1vZHVs
ZSI7CitpbXBvcnQgeyBhIGFzIEEsIGEgYXMgQSB9IGZyb20gIm1vZHVsZSI7CitpbXBvcnQgYSwg
eyBhIH0gZnJvbSAibW9kdWxlIjsKK2ltcG9ydCBhLCB7IGEgYXMgQSB9IGZyb20gIm1vZHVsZSI7
CitpbXBvcnQgeCwgKiBhcyBBIGZyb20gIm1vZHVsZSI7CitpbXBvcnQgKiBhcyBBIGZyb20gIm1v
ZHVsZSI7CisKK2V4cG9ydCB7IHggfTsKK2V4cG9ydCBsZXQgeDsKK2V4cG9ydCB2YXIgeDsKK2V4
cG9ydCBjb25zdCB4ID0gMTsKK2V4cG9ydCBsZXQgeCA9IDEsCisgICAgeSA9IDE7CitleHBvcnQg
bGV0IHt4LCB5LCB6fSA9IG87CitleHBvcnQgbGV0IFt4LCB5LCB6XSA9IGE7CitleHBvcnQgeyB4
IGFzIFggfTsKK2V4cG9ydCB7IHggYXMgWCwgYSBhcyBBIH07CitleHBvcnQgKiBmcm9tICJtb2R1
bGUiOworZXhwb3J0IHsgeCB9IGZyb20gIm1vZHVsZSI7CitleHBvcnQgeyB4LCB5IH0gZnJvbSAi
bW9kdWxlIjsKK2V4cG9ydCB7IHggYXMgQSB9IGZyb20gIm1vZHVsZSI7CitleHBvcnQgeyB4IGFz
IGRlZmF1bHQgfTsKK2V4cG9ydCBkZWZhdWx0IHg7CitleHBvcnQgZGVmYXVsdCAxOworZXhwb3J0
IGRlZmF1bHQge307CitleHBvcnQgZGVmYXVsdCAoMSk7CitleHBvcnQgZGVmYXVsdCBbMV07Citl
eHBvcnQgZGVmYXVsdCAvci87CitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHt9CitleHBvcnQg
ZGVmYXVsdCBmdW5jdGlvbiBmKCkge30KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiAoKSB7fQor
ZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qIGYoKSB7fQorZXhwb3J0IGRlZmF1bHQgY2xhc3Mge30K
K2V4cG9ydCBkZWZhdWx0IGNsYXNzIFgge30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL21vZHVsZXMuanMgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0
cy9tb2R1bGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNmUzNTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNv
dXJjZXMvamF2YXNjcmlwdC10ZXN0cy9tb2R1bGVzLmpzCkBAIC0wLDAgKzEsMzkgQEAKK2ltcG9y
dCJtb2R1bGUiOworaW1wb3J0IHggZnJvbSJtb2R1bGUiOworaW1wb3J0e3h9ZnJvbSJtb2R1bGUi
OworaW1wb3J0e2EsYixjfWZyb20ibW9kdWxlIjsKK2ltcG9ydHthLGIsYyx9ZnJvbSJtb2R1bGUi
OworaW1wb3J0e2EgYXMgQX1mcm9tIm1vZHVsZSI7CitpbXBvcnR7YSxhIGFzIEEsYX1mcm9tIm1v
ZHVsZSI7CitpbXBvcnR7YSBhcyBBLGEgYXMgQX1mcm9tIm1vZHVsZSI7CitpbXBvcnQgYSx7YX1m
cm9tIm1vZHVsZSI7CitpbXBvcnQgYSx7YSBhcyBBfWZyb20ibW9kdWxlIjsKK2ltcG9ydCB4LCph
cyBBIGZyb20ibW9kdWxlIjsKK2ltcG9ydCphcyBBIGZyb20ibW9kdWxlIjsKKworZXhwb3J0e3h9
OworZXhwb3J0IGxldCB4OworZXhwb3J0IHZhciB4OworZXhwb3J0IGNvbnN0IHg9MTsKK2V4cG9y
dCBsZXQgeD0xLHk9MTsKK2V4cG9ydCBsZXR7eCx5LHp9PW87CitleHBvcnQgbGV0W3gseSx6XT1h
OworZXhwb3J0e3ggYXMgWH07CitleHBvcnR7eCBhcyBYLGEgYXMgQX07CitleHBvcnQqZnJvbSJt
b2R1bGUiOworZXhwb3J0e3h9ZnJvbSJtb2R1bGUiOworZXhwb3J0e3gseX1mcm9tIm1vZHVsZSI7
CitleHBvcnR7eCBhcyBBfWZyb20ibW9kdWxlIjsKK2V4cG9ydHt4IGFzIGRlZmF1bHR9OworZXhw
b3J0IGRlZmF1bHQgeDsKK2V4cG9ydCBkZWZhdWx0IDE7CitleHBvcnQgZGVmYXVsdHt9OworZXhw
b3J0IGRlZmF1bHQoMSk7CitleHBvcnQgZGVmYXVsdFsxXTsKK2V4cG9ydCBkZWZhdWx0L3IvOwor
ZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKXt9CitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmKCl7
fQorZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qKCl7fQorZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24q
Zigpe30KK2V4cG9ydCBkZWZhdWx0IGNsYXNze30KK2V4cG9ydCBkZWZhdWx0IGNsYXNzIFh7fQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL3V0
aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy91
dGlsaXRpZXMuanMKaW5kZXggYjk4NzA0Ny4uYjE2NGU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL3V0aWxpdGllcy5qcworKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzCkBAIC0x
NSw3ICsxNSw4IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nID0gIiAgICAiOwogICAgICAgICAg
ICAgICAgIGxldCB3b3JrZXJQcm94eSA9IFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXJXb3JrZXJQcm94
eS5zaW5nbGV0b24oKTsKLSAgICAgICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2Ny
aXB0KHRlc3RUZXh0LCBpbmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0
YX0pID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgaXNNb2R1bGUgPSAvXm1vZHVsZS8udGVzdCh0
ZXN0TmFtZSk7CisgICAgICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdCh0
ZXN0VGV4dCwgaXNNb2R1bGUsIGluZGVudFN0cmluZywgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VN
YXBEYXRhfSkgPT4gewogICAgICAgICAgICAgICAgICAgICBsZXQgcGFzcyA9IGZvcm1hdHRlZFRl
eHQgPT09IGV4cGVjdGVkVGV4dDsKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2cocGFzcyA/ICJQQVNTIiA6ICJGQUlMIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4
IGY0ODZhMmUuLjI2ZTJmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE2LTA5LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdWxkIGJlIGFibGUgdG8gcHJldHR5IHByaW50IG1v
ZHVsZSBjb2RlIChpbXBvcnQgLyBleHBvcnQgc3RhdGVtZW50cykKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTg5MQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjgyNzI3ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKwor
ICAgICAgICAqIFRvb2xzL0Zvcm1hdHRpbmcvRXNwcmltYUZvcm1hdHRlckRlYnVnLmpzOgorICAg
ICAgICAqIFRvb2xzL0Zvcm1hdHRpbmcvaW5kZXguaHRtbDoKKyAgICAgICAgVXBkYXRlIHRoZSBm
b3JtYXR0aW5nIHRvb2wgdG8gdG9nZ2xlIGJldHdlZW4gc291cmNlIHR5cGUgbW9kZXMuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3hpZXMvRm9ybWF0dGVyV29ya2VyUHJveHkuanM6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIu
anM6CisgICAgICAgIChGb3JtYXR0ZXJXb3JrZXIucHJvdG90eXBlLmZvcm1hdEphdmFTY3JpcHQp
OgorICAgICAgICBQcm92aWRlIGEgZmxhZyB0byBwYXJzZSB0aGUgaW5wdXQgYXMgYSBtb2R1bGUg
aW5zdGVhZCBvZiBhIHNjcmlwdC9wcm9ncmFtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9UZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJv
dG90eXBlLl9zdGFydFdvcmtlclByZXR0eVByaW50KToKKyAgICAgICAgVXNpbmcgdGhlIGZvcm1h
dHRlciBoZXJlLCB3ZSBtYXkgaGF2ZSBtb2R1bGUgc2NyaXB0cyBpbiB0aGUgZnV0dXJlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX3Nob3dQ
b3BvdmVyRm9yRnVuY3Rpb24uZGlkR2V0RGV0YWlscyk6CisgICAgICAgIFVzaW5nIHRoZSBmb3Jt
YXR0ZXIgZm9yIGEgZnVuY3Rpb24gaXMgbm90IG1vZHVsZSBzb3VyY2UuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0VTVHJlZVdhbGtlci5qczoKKyAgICAgICAg
KEVTVHJlZVdhbGtlci5wcm90b3R5cGUuX3dhbGtDaGlsZHJlbik6CisgICAgICAgIFZpc2l0IGNo
aWxkcmVuIG9mIEV4cG9ydC9JbXBvcnQgbm9kZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1dvcmtlcnMvRm9ybWF0dGVyL0VzcHJpbWFGb3JtYXR0ZXIuanM6CisgICAgICAgIChFc3ByaW1h
Rm9ybWF0dGVyLnByb3RvdHlwZS5faGFuZGxlVG9rZW5BdE5vZGUpOgorICAgICAgICBPdXRwdXQg
dG9rZW5zIHdpdGggYXBwcm9wcmlhdGUgd2hpdGVzcGFjZS4KKwogMjAxNi0wOS0xMiAgTWF0dCBC
YWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT2Jq
ZWN0LnNoYWxsb3dFcXVhbCgpIHNob3VsZCByZXR1cm4gZmFsc2UgaWYgb2JqZWN0IHByb3RvdHlw
ZSBjaGFpbnMgZGlmZmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMv
Rm9ybWF0dGluZy9Fc3ByaW1hRm9ybWF0dGVyRGVidWcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVG9vbHMvRm9ybWF0dGluZy9Fc3ByaW1hRm9ybWF0dGVyRGVidWcuanMKaW5kZXggOTBlODlh
Ny4uNmE2NzQwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9Gb3Jt
YXR0aW5nL0VzcHJpbWFGb3JtYXR0ZXJEZWJ1Zy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVG9vbHMvRm9ybWF0dGluZy9Fc3ByaW1hRm9ybWF0dGVyRGVidWcuanMKQEAgLTEsOCArMSw4
IEBACiBFc3ByaW1hRm9ybWF0dGVyRGVidWcgPSBjbGFzcyBFc3ByaW1hRm9ybWF0dGVyRGVidWcK
IHsKLSAgICBjb25zdHJ1Y3Rvcihzb3VyY2VUZXh0KQorICAgIGNvbnN0cnVjdG9yKHNvdXJjZVRl
eHQsIHNvdXJjZVR5cGUpCiAgICAgewotICAgICAgICBsZXQgdHJlZSA9IGVzcHJpbWEucGFyc2Uo
c291cmNlVGV4dCwge2F0dGFjaENvbW1lbnQ6IHRydWUsIHJhbmdlOiB0cnVlLCB0b2tlbnM6IHRy
dWV9KTsKKyAgICAgICAgbGV0IHRyZWUgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZVRleHQsIHthdHRh
Y2hDb21tZW50OiB0cnVlLCByYW5nZTogdHJ1ZSwgdG9rZW5zOiB0cnVlLCBzb3VyY2VUeXBlfSk7
CiAgICAgICAgIGxldCB3YWxrZXIgPSBuZXcgRVNUcmVlV2Fsa2VyKHRoaXMuX2JlZm9yZS5iaW5k
KHRoaXMpLCB0aGlzLl9hZnRlci5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLl9zdGF0aXN0
aWNzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRp
bmcvaW5kZXguaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9Gb3JtYXR0aW5nL2lu
ZGV4Lmh0bWwKaW5kZXggMzc2NWFmNS4uZjkzNDYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1Rvb2xzL0Zvcm1hdHRpbmcvaW5kZXguaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVG9vbHMvRm9ybWF0dGluZy9pbmRleC5odG1sCkBAIC0yMCw2ICsyMCwxMCBAQAog
ICAgIDwhLS0gQ29udHJvbHMgLS0+CiAgICAgPGJ1dHRvbiBpZD0icG9wdWxhdGUiPlBvcHVsYXRl
PC9idXR0b24+CiAgICAgPHNlbGVjdCBpZD0ibG9hZC1pbmRpdmlkdWFsLXRlc3QiPjxvcHRpb24+
LS0gTG9hZCBUZXN0IC0tPC9vcHRpb24+PC9zZWxlY3Q+CisgICAgPHNtYWxsPgorICAgICAgICA8
bGFiZWw+PGlucHV0IGlkPSJwcm9ncmFtIiB0eXBlPSJyYWRpbyIgbmFtZT0icHJvZ3JhbS1vci1t
b2R1bGUiPiBQcm9ncmFtPC9sYWJlbD4KKyAgICAgICAgPGxhYmVsPjxpbnB1dCBpZD0ibW9kdWxl
IiB0eXBlPSJyYWRpbyIgbmFtZT0icHJvZ3JhbS1vci1tb2R1bGUiIGNoZWNrZWQ+IE1vZHVsZTwv
bGFiZWw+CisgICAgPC9zbWFsbD4KICAgICA8YnV0dG9uIGlkPSJydW4tdGVzdHMiPlJ1biBBbGwg
VGVzdHM8L2J1dHRvbj4KICAgICA8YnV0dG9uIGlkPSJjbGVhciI+Q2xlYXI8L2J1dHRvbj4KICAg
ICA8YnV0dG9uIGlkPSJzZWxlY3Qtb3V0cHV0Ij5TZWxlY3QgT3V0cHV0PC9idXR0b24+CkBAIC02
NSw3ICs2OSw3IEBACiAgICAgICAgICJzYW1wbGUtd2ViaW5zcGVjdG9yLW9iamVjdC5qcyIsCiAg
ICAgICAgICJzYW1wbGUtbm9ybWFsLXV0aWxpdGllcy5qcyIsCiAgICAgICAgICJzYW1wbGUtanF1
ZXJ5LmpzIiwKLSAgICAgICAgLy8gRklYTUU6IEFkZCBhIG1vZHVsZXMgdGVzdCB3aGVuIHdlIHN1
cHBvcnQgdGVzdGluZyBtb2R1bGUgc291cmNlIGNvZGUuCisgICAgICAgICJtb2R1bGVzLmpzIiwK
ICAgICBdOwogCiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZnJvbSBVUkwuCkBAIC04Myw2ICs4Nyw4
IEBACiAgICAgbGV0IGNvbnRlbnQgPSAiKGZ1bmN0aW9uKCl7bGV0IGE9MTtyZXR1cm4gYSsxO30p
KCk7IjsKICAgICBpZiAocXVlcnlQYXJhbXMuY29udGVudCkKICAgICAgICAgY29udGVudCA9IHF1
ZXJ5UGFyYW1zLmNvbnRlbnQgfHwgIiI7CisgICAgaWYgKHF1ZXJ5UGFyYW1zLnByb2dyYW0pCisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9ncmFtIikuY2hlY2tlZCA9IHRydWU7
CiAKICAgICAvLyBTZXR1cCBDb2RlTWlycm9yLgogICAgIGxldCBjbSA9IENvZGVNaXJyb3IuZnJv
bVRleHRBcmVhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2RlIiksIHtsaW5lTnVtYmVyczog
dHJ1ZX0pOwpAQCAtMTEwLDYgKzExNiwxMiBAQAogICAgICAgICBvcHRpb24udmFsdWUgPSB0ZXN0
OwogICAgIH0KIAorICAgIC8vIFByb2dyYW0gLyBNb2R1bGUgY2hlY2tib3hlcy4KKyAgICBsZXQg
cHJvZ3JhbUNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb2dyYW0iKTsKKyAg
ICBsZXQgbW9kdWxlQ2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kdWxlIik7
CisgICAgcHJvZ3JhbUNoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHJlZnJlc2gp
OworICAgIG1vZHVsZUNoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHJlZnJlc2gp
OworCiAgICAgLy8gUnVuIFRlc3RzIGJ1dHRvbi4KICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicnVuLXRlc3RzIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkg
ewogICAgICAgICBjbS5zZXRWYWx1ZSgiLyogUnVubmluZyBUZXN0cy4uLiAqLyIpOwpAQCAtMTQw
LDcgKzE1MiwxMCBAQAogICAgIC8vIFNhdmUgYXMgVVJMIGJ1dHRvbi4KICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2F2ZS1hcy11cmwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGxldCBjb250ZW50ID0gY20uZ2V0VmFsdWUoKTsKLSAg
ICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9ICI/Y29udGVudD0iICsgd2luZG93LmVuY29k
ZVVSSUNvbXBvbmVudChjb250ZW50KTsKKyAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gIj9jb250
ZW50PSIgKyB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRlbnQpOworICAgICAgICBpZiAo
cHJvZ3JhbUNoZWNrYm94LmNoZWNrZWQpCisgICAgICAgICAgICBxdWVyeVN0cmluZyArPSAiJnBy
b2dyYW0iOworICAgICAgICB3aW5kb3cubG9jYXRpb24uc2VhcmNoID0gcXVlcnlTdHJpbmc7CiAg
ICAgfSk7CiAKICAgICAvLyBSZWZyZXNoIGFmdGVyIGNoYW5nZXMgYWZ0ZXIgYSBzaG9ydCBkZWxh
eS4KQEAgLTE2MCwxOSArMTc1LDI5IEBACiAgICAgbGV0IHByZXR0eVByZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwcmV0dHkiKTsKICAgICBsZXQgZGVidWdQcmUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGVidWciKTsKIAorICAgIC8vIEN1cnJlbnQgdmFsdWUgb2YgY2hlY2tib3hl
cy4KKyAgICBmdW5jdGlvbiBjdXJyZW50U291cmNlVHlwZSgpIHsKKyAgICAgICAgaWYgKHByb2dy
YW1DaGVja2JveC5jaGVja2VkKQorICAgICAgICAgICAgcmV0dXJuIEVzcHJpbWFGb3JtYXR0ZXIu
U291cmNlVHlwZS5TY3JpcHQ7CisgICAgICAgIGlmIChtb2R1bGVDaGVja2JveC5jaGVja2VkKQor
ICAgICAgICAgICAgcmV0dXJuIEVzcHJpbWFGb3JtYXR0ZXIuU291cmNlVHlwZS5Nb2R1bGU7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiUHJvZ3JhbSBvciBNb2R1bGUgcmFkaW8gYnV0
dG9uIHNob3VsZCBiZSBjaGVja2VkIik7CisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAg
fQorCiAgICAgZnVuY3Rpb24gcmVmcmVzaCgpIHsKICAgICAgICAgaWYgKHRpbWVyKQogICAgICAg
ICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKIAogICAgICAgICAvLyBUaW1lIHRoZSBmb3JtYXR0
ZXIuCiAgICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpOwotICAgICAgICBsZXQgZm9y
bWF0dGVyID0gbmV3IEVzcHJpbWFGb3JtYXR0ZXIoY20uZ2V0VmFsdWUoKSk7CisgICAgICAgIGxl
dCBmb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1hdHRlcihjbS5nZXRWYWx1ZSgpLCBjdXJyZW50
U291cmNlVHlwZSgpKTsKICAgICAgICAgbGV0IGVuZFRpbWUgPSBEYXRlLm5vdygpOwogCiAgICAg
ICAgIC8vIFNob3cgZGVidWcgaW5mby4KICAgICAgICAgbGV0IGRlYnVnVGV4dDsKICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGxldCBkZWJ1Z0Zvcm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0
dGVyRGVidWcoY20uZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICBsZXQgZGVidWdGb3JtYXR0ZXIg
PSBuZXcgRXNwcmltYUZvcm1hdHRlckRlYnVnKGNtLmdldFZhbHVlKCksIGN1cnJlbnRTb3VyY2VU
eXBlKCkpOwogICAgICAgICAgICAgZGVidWdUZXh0ID0gZGVidWdGb3JtYXR0ZXIuZGVidWdUZXh0
OwogICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgZGVidWdUZXh0ID0gIlBh
cnNlIGVycm9yIjsKQEAgLTE4OCwxMiArMjEzLDIxIEBACiAKICAgICAvLyBUZXN0aW5nLgogCisg
ICAgZnVuY3Rpb24gaXNNb2R1bGVUZXN0KHRlc3QpIHsKKyAgICAgICAgcmV0dXJuIHRlc3QgPT09
ICJtb2R1bGVzLmpzIjsKKyAgICB9CisKICAgICBmdW5jdGlvbiBsb2FkSW5kaXZpZHVhbFRlc3Qo
dGVzdCkgewogICAgICAgICBsZXQgdGVzdFVSTCA9IHRlc3RVUkxQcmVmaXggKyB0ZXN0OwogICAg
ICAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OwogICAgICAgICB4aHIub3BlbigiR0VU
IiwgdGVzdFVSTCwgdHJ1ZSk7CiAgICAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7IGNtLnNldFZh
bHVlKHhoci5yZXNwb25zZVRleHQpOyBzZXRUaW1lb3V0KHJlZnJlc2gpOyB9CiAgICAgICAgIHho
ci5zZW5kKCk7CisKKyAgICAgICAgaWYgKGlzTW9kdWxlVGVzdCh0ZXN0KSkKKyAgICAgICAgICAg
IG1vZHVsZUNoZWNrYm94LmNoZWNrZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBwcm9ncmFtQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7CiAgICAgfQogCiAgICAgZnVuY3Rpb24g
cnVuQWxsVGVzdHMoKSB7CkBAIC0yMjUsNyArMjU5LDggQEAKICAgICAgICAgICAgIGxldCBleHBl
Y3RlZERhdGEgPSB4aHIyLnJlc3BvbnNlVGV4dDsKIAogICAgICAgICAgICAgLy8gUnVuIHRoZSB0
ZXN0LgotICAgICAgICAgICAgbGV0IGZvcm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKHRl
c3REYXRhKTsKKyAgICAgICAgICAgIGxldCBzb3VyY2VUeXBlID0gaXNNb2R1bGVUZXN0KHRlc3Qp
ID8gRXNwcmltYUZvcm1hdHRlci5Tb3VyY2VUeXBlLk1vZHVsZSA6IEVzcHJpbWFGb3JtYXR0ZXIu
U291cmNlVHlwZS5TY3JpcHQ7CisgICAgICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IEVzcHJp
bWFGb3JtYXR0ZXIodGVzdERhdGEsIHNvdXJjZVR5cGUpOwogCiAgICAgICAgICAgICAvLyBDb21w
YXJlIHJlc3VsdHMuCiAgICAgICAgICAgICBsZXQgcGFzcyA9IGZvcm1hdHRlci5mb3JtYXR0ZWRU
ZXh0ID09PSBleHBlY3RlZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm94aWVzL0Zvcm1hdHRlcldvcmtlclByb3h5LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9Gb3JtYXR0ZXJXb3JrZXJQcm94eS5q
cwppbmRleCA4ZGU1MWQ1Li45NjE1OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0Zvcm1hdHRlcldvcmtlclByb3h5LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvRm9ybWF0dGVyV29ya2Vy
UHJveHkuanMKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLkZvcm1hdHRlcldvcmtlclBy
b3h5ID0gY2xhc3MgRm9ybWF0dGVyV29ya2VyUHJveHkgZXh0ZW5kcyBXZWJJbnNwZWMKIAogICAg
IC8vIEFjdGlvbnMKIAotICAgIGZvcm1hdEphdmFTY3JpcHQoc291cmNlVGV4dCwgaW5kZW50U3Ry
aW5nLCBpbmNsdWRlU291cmNlTWFwRGF0YSkKKyAgICBmb3JtYXRKYXZhU2NyaXB0KHNvdXJjZVRl
eHQsIGlzTW9kdWxlLCBpbmRlbnRTdHJpbmcsIGluY2x1ZGVTb3VyY2VNYXBEYXRhKQogICAgIHsK
ICAgICAgICAgdGhpcy5wZXJmb3JtQWN0aW9uKCJmb3JtYXRKYXZhU2NyaXB0IiwgLi4uYXJndW1l
bnRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCmluZGV4IDY5OWU0
NDguLjg1NTcyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCkBAIC0xNTIz
LDggKzE1MjMsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IgPSBjbGFzcyBT
b3VyY2VDb2RlVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTA1OTM5NDg+IFByb3ZpZGUg
YSB3YXkgdG8gY2hhbmdlIHRoZSB0YWIgd2lkdGggaW4gdGhlIFdlYiBJbnNwZWN0b3IKKyAgICAg
ICAgICAgIGNvbnN0IGlzTW9kdWxlID0gZmFsc2U7CiAgICAgICAgICAgICBsZXQgd29ya2VyUHJv
eHkgPSBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyV29ya2VyUHJveHkuc2luZ2xldG9uKCk7Ci0gICAg
ICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KGRhdGEuZGVzY3JpcHRpb24sICIg
ICAgIiwgZmFsc2UsICh7Zm9ybWF0dGVkVGV4dH0pID0+IHsKKyAgICAgICAgICAgIHdvcmtlclBy
b3h5LmZvcm1hdEphdmFTY3JpcHQoZGF0YS5kZXNjcmlwdGlvbiwgaXNNb2R1bGUsICIgICAgIiwg
ZmFsc2UsICh7Zm9ybWF0dGVkVGV4dH0pID0+IHsKICAgICAgICAgICAgICAgICBjb2RlTWlycm9y
LnNldFZhbHVlKGZvcm1hdHRlZFRleHQgfHwgZGF0YS5kZXNjcmlwdGlvbik7CiAgICAgICAgICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RleHRFZGl0b3IuanMKaW5kZXggNDljMjBiNC4uYjgyYTYzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9y
LmpzCkBAIC03OTIsOCArNzkyLDExIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3Mg
VGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIGxldCBzb3VyY2VU
ZXh0ID0gdGhpcy5fY29kZU1pcnJvci5nZXRWYWx1ZSgpOwogICAgICAgICBsZXQgaW5jbHVkZVNv
dXJjZU1hcERhdGEgPSB0cnVlOwogCisgICAgICAgIC8vIEZJWE1FOiBQcm9wZXJseSBwYXNzIGlm
IHRoaXMgaXMgYSBtb2R1bGUgb3Igc2NyaXB0LgorICAgICAgICBjb25zdCBpc01vZHVsZSA9IGZh
bHNlOworCiAgICAgICAgIGxldCB3b3JrZXJQcm94eSA9IFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXJX
b3JrZXJQcm94eS5zaW5nbGV0b24oKTsKLSAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNj
cmlwdChzb3VyY2VUZXh0LCBpbmRlbnRTdHJpbmcsIGluY2x1ZGVTb3VyY2VNYXBEYXRhLCAoe2Zv
cm1hdHRlZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAgICAgIHdvcmtlclByb3h5LmZv
cm1hdEphdmFTY3JpcHQoc291cmNlVGV4dCwgaXNNb2R1bGUsIGluZGVudFN0cmluZywgaW5jbHVk
ZVNvdXJjZU1hcERhdGEsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YX0pID0+IHsKICAg
ICAgICAgICAgIC8vIEhhbmRsZSBpZiBmb3JtYXR0aW5nIGZhaWxlZCwgd2hpY2ggaXMgcG9zc2li
bGUgZm9yIGludmFsaWQgcHJvZ3JhbXMuCiAgICAgICAgICAgICBpZiAoZm9ybWF0dGVkVGV4dCA9
PT0gbnVsbCkgewogICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9FU1RyZWVX
YWxrZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zv
cm1hdHRlci9FU1RyZWVXYWxrZXIuanMKaW5kZXggZWM3MDM3My4uYmQ1ZGQ5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIv
RVNUcmVlV2Fsa2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1dvcmtlcnMvRm9ybWF0dGVyL0VTVHJlZVdhbGtlci5qcwpAQCAtMjQwLDYgKzI0MCwzNiBAQCBF
U1RyZWVXYWxrZXIgPSBjbGFzcyBFU1RyZWVXYWxrZXIKICAgICAgICAgICAgIHRoaXMuX3dhbGso
bm9kZS5hcmd1bWVudCwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNl
ICJFeHBvcnRBbGxEZWNsYXJhdGlvbiI6CisgICAgICAgICAgICB0aGlzLl93YWxrKG5vZGUuc291
cmNlLCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJFeHBvcnROYW1l
ZERlY2xhcmF0aW9uIjoKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5kZWNsYXJhdGlvbiwg
bm9kZSk7CisgICAgICAgICAgICB0aGlzLl93YWxrQXJyYXkobm9kZS5zcGVjaWZpZXJzLCBub2Rl
KTsKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5zb3VyY2UsIG5vZGUpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiI6CisgICAg
ICAgICAgICB0aGlzLl93YWxrKG5vZGUuZGVjbGFyYXRpb24sIG5vZGUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgIkV4cG9ydFNwZWNpZmllciI6CisgICAgICAgICAgICB0aGlz
Ll93YWxrKG5vZGUubG9jYWwsIG5vZGUpOworICAgICAgICAgICAgdGhpcy5fd2Fsayhub2RlLmV4
cG9ydGVkLCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJJbXBvcnRE
ZWNsYXJhdGlvbiI6CisgICAgICAgICAgICB0aGlzLl93YWxrQXJyYXkobm9kZS5zcGVjaWZpZXJz
LCBub2RlKTsKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5zb3VyY2UsIG5vZGUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIkltcG9ydERlZmF1bHRTcGVjaWZpZXIiOgor
ICAgICAgICAgICAgdGhpcy5fd2Fsayhub2RlLmxvY2FsLCBub2RlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlICJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIiOgorICAgICAgICAg
ICAgdGhpcy5fd2Fsayhub2RlLmxvY2FsLCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlICJJbXBvcnRTcGVjaWZpZXIiOgorICAgICAgICAgICAgdGhpcy5fd2Fsayhub2Rl
LmltcG9ydGVkLCBub2RlKTsKKyAgICAgICAgICAgIHRoaXMuX3dhbGsobm9kZS5sb2NhbCwgbm9k
ZSk7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICAvLyBTcGVjaWFsIGNhc2UuIFdlIHdh
bnQgdG8gd2FsayBpbiBwcm9ncmFtIG9yZGVyLAogICAgICAgICAvLyBzbyB3YWxrIHF1YXNpLCBl
eHByZXNzaW9uLCBxdWFzaSwgZXhwcmVzc2lvbiwgZXRjLgogICAgICAgICBjYXNlICJUZW1wbGF0
ZUxpdGVyYWwiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvV29ya2Vycy9Gb3JtYXR0ZXIvRXNwcmltYUZvcm1hdHRlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0VzcHJpbWFGb3JtYXR0ZXIu
anMKaW5kZXggZDdhYWQyYi4uOWNkYzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRXNwcmltYUZvcm1hdHRlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRl
ci9Fc3ByaW1hRm9ybWF0dGVyLmpzCkBAIC0yOSwxNCArMjksMTMgQEAKIAogRXNwcmltYUZvcm1h
dHRlciA9IGNsYXNzIEVzcHJpbWFGb3JtYXR0ZXIKIHsKLSAgICBjb25zdHJ1Y3Rvcihzb3VyY2VU
ZXh0LCBpbmRlbnRTdHJpbmcgPSAiICAgICIpCisgICAgY29uc3RydWN0b3Ioc291cmNlVGV4dCwg
c291cmNlVHlwZSwgaW5kZW50U3RyaW5nID0gIiAgICAiKQogICAgIHsKICAgICAgICAgdGhpcy5f
c3VjY2VzcyA9IGZhbHNlOwogCiAgICAgICAgIGxldCB0cmVlID0gKGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCAibW9kdWxl
IiBzb3VyY2VUeXBlIGFzIHdlbGwuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGVzcHJpbWEucGFy
c2Uoc291cmNlVGV4dCwge2F0dGFjaENvbW1lbnQ6IHRydWUsIHJhbmdlOiB0cnVlLCB0b2tlbnM6
IHRydWV9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXNwcmltYS5wYXJzZShzb3VyY2VUZXh0
LCB7YXR0YWNoQ29tbWVudDogdHJ1ZSwgcmFuZ2U6IHRydWUsIHRva2VuczogdHJ1ZSwgc291cmNl
VHlwZX0pOwogICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKICAgICAgICAgICAgIH0KQEAgLTczOCw3ICs3MzcsOCBAQCBFc3ByaW1hRm9y
bWF0dGVyID0gY2xhc3MgRXNwcmltYUZvcm1hdHRlcgogCiAgICAgICAgIGlmIChub2RlVHlwZSA9
PT0gIkNsYXNzQm9keSIpIHsKICAgICAgICAgICAgIGlmICh0b2tlblZhbHVlID09PSAieyIpIHsK
LSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFNwYWNlKCk7CisgICAgICAgICAgICAgICAg
aWYgKG5vZGUucGFyZW50LmlkKQorICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFNw
YWNlKCk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRUb2tlbih0b2tlblZhbHVlLCB0
b2tlbk9mZnNldCk7CiAgICAgICAgICAgICAgICAgaWYgKG5vZGUuYm9keS5sZW5ndGgpCiAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTmV3bGluZSgpOwpAQCAtNzc4LDYgKzc3OCwz
MCBAQCBFc3ByaW1hRm9ybWF0dGVyID0gY2xhc3MgRXNwcmltYUZvcm1hdHRlcgogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG5vZGVUeXBlID09PSAiSW1wb3J0
RGVjbGFyYXRpb24iIHx8IG5vZGVUeXBlID09PSAiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiIpIHsK
KyAgICAgICAgICAgIGlmICh0b2tlblZhbHVlID09PSAifSIgfHwgKHRva2VuVHlwZSA9PT0gIklk
ZW50aWZpZXIiICYmIHRva2VuVmFsdWUgPT09ICJmcm9tIikpCisgICAgICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmRTcGFjZSgpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRUb2tlbih0b2tl
blZhbHVlLCB0b2tlbk9mZnNldCk7CisgICAgICAgICAgICBpZiAodG9rZW5WYWx1ZSAhPT0gIn0i
KQorICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kU3BhY2UoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChub2RlVHlwZSA9PT0gIkV4cG9ydFNwZWNp
ZmllciIgfHwgbm9kZVR5cGUgPT09ICJJbXBvcnRTcGVjaWZpZXIiKSB7CisgICAgICAgICAgICBp
ZiAodG9rZW5UeXBlID09PSAiSWRlbnRpZmllciIgJiYgdG9rZW5WYWx1ZSA9PT0gImFzIikKKyAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFNwYWNlKCk7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZFRva2VuKHRva2VuVmFsdWUsIHRva2VuT2Zmc2V0KTsKKyAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kU3BhY2UoKTsKKyAgICAgICAgICAgIHJldHVybjsgICAgICAgICAgICAKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChub2RlVHlwZSA9PT0gIkV4cG9ydEFsbERlY2xhcmF0aW9uIiB8
fCBub2RlVHlwZSA9PT0gIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiIgfHwgbm9kZVR5cGUgPT09
ICJJbXBvcnREZWZhdWx0U3BlY2lmaWVyIiB8fCBub2RlVHlwZSA9PT0gIkltcG9ydE5hbWVzcGFj
ZVNwZWNpZmllciIpIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kVG9rZW4odG9rZW5WYWx1
ZSwgdG9rZW5PZmZzZXQpOworICAgICAgICAgICAgaWYgKHRva2VuVmFsdWUgIT09ICIoIiAmJiB0
b2tlblZhbHVlICE9PSAiKSIpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTcGFjZSgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgLy8gSW5jbHVkZSB0
aGVzZSBoZXJlIHNvIHdlIGdldCBvbmx5IGdldCB3YXJuaW5ncyBhYm91dCB1bmhhbmRsZWQgbm9k
ZXMuCiAgICAgICAgIGlmIChub2RlVHlwZSA9PT0gIkV4cHJlc3Npb25TdGF0ZW1lbnQiCiAgICAg
ICAgICAgICB8fCBub2RlVHlwZSA9PT0gIlNwcmVhZEVsZW1lbnQiCkBAIC04NzYsMyArOTAwLDgg
QEAgRXNwcmltYUZvcm1hdHRlciA9IGNsYXNzIEVzcHJpbWFGb3JtYXR0ZXIKICAgICAgICAgfQog
ICAgIH0KIH07CisKK0VzcHJpbWFGb3JtYXR0ZXIuU291cmNlVHlwZSA9IHsKKyAgICBTY3JpcHQ6
ICJzY3JpcHQiLAorICAgIE1vZHVsZTogIm1vZHVsZSIsCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9ybWF0dGVy
V29ya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9G
b3JtYXR0ZXIvRm9ybWF0dGVyV29ya2VyLmpzCmluZGV4IDliYzg5MmUuLjljMDU2ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0
dGVyL0Zvcm1hdHRlcldvcmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIuanMKQEAgLTQwLDEwICs0
MCwxMiBAQCBGb3JtYXR0ZXJXb3JrZXIgPSBjbGFzcyBGb3JtYXR0ZXJXb3JrZXIKIAogICAgIC8v
IEFjdGlvbnMKIAotICAgIGZvcm1hdEphdmFTY3JpcHQoc291cmNlVGV4dCwgaW5kZW50U3RyaW5n
LCBpbmNsdWRlU291cmNlTWFwRGF0YSkKKyAgICBmb3JtYXRKYXZhU2NyaXB0KHNvdXJjZVRleHQs
IGlzTW9kdWxlLCBpbmRlbnRTdHJpbmcsIGluY2x1ZGVTb3VyY2VNYXBEYXRhKQogICAgIHsKKyAg
ICAgICAgbGV0IHNvdXJjZVR5cGUgPSBpc01vZHVsZSA/IEVzcHJpbWFGb3JtYXR0ZXIuU291cmNl
VHlwZS5Nb2R1bGUgOiBFc3ByaW1hRm9ybWF0dGVyLlNvdXJjZVR5cGUuU2NyaXB0OworCiAgICAg
ICAgIC8vIEZvcm1hdCBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KLSAgICAgICAgbGV0IGZvcm1hdHRl
ciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKHNvdXJjZVRleHQsIGluZGVudFN0cmluZyk7CisgICAg
ICAgIGxldCBmb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1hdHRlcihzb3VyY2VUZXh0LCBzb3Vy
Y2VUeXBlLCBpbmRlbnRTdHJpbmcpOwogICAgICAgICBpZiAoZm9ybWF0dGVyLnN1Y2Nlc3MpIHsK
ICAgICAgICAgICAgIGxldCByZXN1bHQgPSB7Zm9ybWF0dGVkVGV4dDogZm9ybWF0dGVyLmZvcm1h
dHRlZFRleHR9OwogICAgICAgICAgICAgaWYgKGluY2x1ZGVTb3VyY2VNYXBEYXRhKSB7CkBAIC03
NCw3ICs3Niw3IEBAIEZvcm1hdHRlcldvcmtlciA9IGNsYXNzIEZvcm1hdHRlcldvcmtlcgogICAg
ICAgICAvLyBMaWtld2lzZSwgYW4gdW5uYW1lZCBmdW5jdGlvbidzIHRvU3RyaW5nKCkgcHJvZHVj
ZXMgYSAiZnVuY3Rpb24oKSB7IC4uLiB9Iiwgd2hpY2ggaXMgbm90CiAgICAgICAgIC8vIGEgdmFs
aWQgcHJvZ3JhbSBvbiBpdHMgb3duLiBXcmFwIGl0IGluIHBhcmVudGhlc2lzIHRvIG1ha2UgaXQg
YSBmdW5jdGlvbiBleHByZXNzaW9uLAogICAgICAgICAvLyB3aGljaCBpcyBhIHZhbGlkIHByb2dy
YW0uCi0gICAgICAgIGxldCBpbnZhbGlkSlNPTkZvcm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0
dGVyKCIoIiArIHNvdXJjZVRleHQgKyAiKSIsIGluZGVudFN0cmluZyk7CisgICAgICAgIGxldCBp
bnZhbGlkSlNPTkZvcm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKCIoIiArIHNvdXJjZVRl
eHQgKyAiKSIsIHNvdXJjZVR5cGUsIGluZGVudFN0cmluZyk7CiAgICAgICAgIGlmIChpbnZhbGlk
SlNPTkZvcm1hdHRlci5zdWNjZXNzKSB7CiAgICAgICAgICAgICBsZXQgZm9ybWF0dGVkVGV4dFdp
dGhQYXJlbnMgPSBpbnZhbGlkSlNPTkZvcm1hdHRlci5mb3JtYXR0ZWRUZXh0OwogICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IHtmb3JtYXR0ZWRUZXh0OiBmb3JtYXR0ZWRUZXh0V2l0aFBhcmVucy5z
dWJzdHJpbmcoMSwgZm9ybWF0dGVkVGV4dFdpdGhQYXJlbnMubGVuZ3RoIC0gMil9OyAvLyBSZW1v
dmUgIigiIGFuZCAiKVxuIi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>