<?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>160585</bug_id>
          
          <creation_ts>2016-08-04 18:51:40 -0700</creation_ts>
          <short_desc>Some EWS console logs doesn&apos;t go to log file</short_desc>
          <delta_ts>2016-08-22 11:31:34 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</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=159539</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=160698</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1217787</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-04 18:51:40 -0700</bug_when>
    <thetext>After the fix of https://bugs.webkit.org/show_bug.cgi?id=159539, some of the logs started going to log files. However all the console logs doesn&apos;t go to the log file. Only logs from the log statements in webkitpy/tool/commands/queues.py are going to log file. This is because the logger from only that module is configured to log to file. We should ensure that all the console logs go to logfile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217790</commentid>
    <comment_count>1</comment_count>
      <attachid>285393</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-04 19:10:31 -0700</bug_when>
    <thetext>Created attachment 285393
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218111</commentid>
    <comment_count>2</comment_count>
      <attachid>285393</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-05 16:51:50 -0700</bug_when>
    <thetext>Comment on attachment 285393
Proposed patch

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

Please add tests to Tools/Scripts/webkitpy/common/system/filesystem_unittest.py for this change.

&gt; Tools/Scripts/webkitpy/common/system/filesystem.py:238
&gt; +    def open_text_file_for_writing(self, path, mode=&apos;w&apos;):

Expose the mode argument of codes.open() is error prone because it allows a person to violate the purpose of this function - to open a file for writing. For example, suppose a person makes the illogical call open_text_file_for_writing(&quot;a.txt&quot;, &quot;r&quot;) then the file a.txt will be opened in read-only mode. In general when designing an interface we want to make it easy to use correctly and hard to use incorrectly. Clearly, the proposed change makes it easy to use this function incorrectly. I suggest that we add new boolean parameter to this function, called shouldAppend or append, that determines whether we open the specified file in write-only mode or in append-mode. This parameter should default to False - open the file in write-only mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218137</commentid>
    <comment_count>3</comment_count>
      <attachid>285469</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-05 17:32:55 -0700</bug_when>
    <thetext>Created attachment 285469
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218578</commentid>
    <comment_count>4</comment_count>
      <attachid>285469</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-08 13:59:17 -0700</bug_when>
    <thetext>Comment on attachment 285469
Updated patch

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

&gt; Tools/Scripts/webkitpy/tool/commands/queues.py:126
&gt; +        logutils.configure_logger_to_log_to_file(logging.getLogger(&quot;webkitpy&quot;), self.queue_log_path(), self.host.filesystem)

I suggest that we add a comment in this function to explain that we explicitly pass &apos;logging.getLogger(&quot;webkitpy&quot;)&apos; instead of _log because we want to capture all messages logged from webkitpy modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218609</commentid>
    <comment_count>5</comment_count>
      <attachid>285598</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-08 16:07:12 -0700</bug_when>
    <thetext>Created attachment 285598
Added the comment, also moved logging initialization to queueengine.py from queues.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218624</commentid>
    <comment_count>6</comment_count>
      <attachid>285598</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-08 16:46:13 -0700</bug_when>
    <thetext>Comment on attachment 285598
Added the comment, also moved logging initialization to queueengine.py from queues.py

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

&gt; Tools/ChangeLog:11
&gt; +        (FileSystemHandler._open): Ensure that we open logfile in append mode in order to avoid

Nit: logfile =&gt; log file

&gt; Tools/ChangeLog:21
&gt; +        (QueueEngine._begin_logging): Configure the python logger to log to file.

Nit: python =&gt; Python

&gt; Tools/Scripts/webkitpy/common/system/logutils.py:226
&gt;      logger.addHandler(handler)
&gt; +    return handler

Instead of modifying this function so as to make its behavior even more similar to logutils.configure_logging() I suggest we take this opportunity to remove this function entirely and have the caller call logutils.configure_logging() directly.

&gt; Tools/Scripts/webkitpy/common/system/logutils.py:230
&gt; +def remove_handler_from_logger(logger, handler):
&gt; +    logger.removeHandler(handler)

I do not see the need for this convenience function. The caller should just call logger.removeHandler(handler) directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218763</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-09 10:43:24 -0700</bug_when>
    <thetext>This was landed manually in https://trac.webkit.org/changeset/204275. 
Discussed with Dan and split it into two patches. The other portion is in https://bugs.webkit.org/show_bug.cgi?id=160698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221920</commentid>
    <comment_count>8</comment_count>
      <attachid>285598</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-08-22 11:31:34 -0700</bug_when>
    <thetext>Comment on attachment 285598
Added the comment, also moved logging initialization to queueengine.py from queues.py

Clearing flags since this patch has been landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285393</attachid>
            <date>2016-08-04 19:10:31 -0700</date>
            <delta_ts>2016-08-05 17:32:55 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ews-log-improved-v2</filename>
            <type>text/plain</type>
            <size>4103</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNDE1NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDE2LTA4LTA0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBTb21lIEVXUyBjb25zb2xlIGxvZ3MgZG9lc24ndCBnbyB0byBsb2cgZmls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNTg1
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI0NDY0NTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vbG9ndXRpbHMucHk6CisgICAgICAgIChGaWxlU3lzdGVtSGFuZGxlci5fb3Blbik6IEVuc3Vy
ZSB0aGF0IHdlIG9wZW4gbG9nZmlsZSBpbiBhcHBlbmQgbW9kZSBpbiBvcmRlciB0byBhdm9pZAor
ICAgICAgICBhbnkgcG9zc2libGUgb3ZlcndyaXRpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHk6CisgICAgICAgIChGaWxlU3lzdGVtLm9w
ZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKTogUGFzcyB0aGUgbW9kZSB0byBvcGVuIHRoZSBmaWxl
IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9maWxlc3lzdGVtX21vY2sucHk6CisgICAgICAgIChNb2NrRmlsZVN5c3RlbS5vcGVuX3RleHRf
ZmlsZV9mb3Jfd3JpdGluZyk6IFNhbWUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWUuYmVnaW5fd29ya19x
dWV1ZSk6IENvbmZpZ3VyZSB0aGUgbG9nZ2VyIGZvciBvdmVyYWxsIHdlYmtpdHB5IHRvIGxvZyB0
byBmaWxlLgorICAgICAgICBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWxsIHRoZSBzdWItbW9kdWxl
cyBpbnNpZGUgd2Via2l0cHkgd2lsbCBsb2cgdG8gZmlsZS4KKwogMjAxNi0wOC0wNCAgRGVhbiBK
b2huc29uICA8ZGVhbl9qb2huc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVSSBpbXByb3ZlbWVu
dHMgdG8gRmxha2luZXNzIERhc2hib2FyZC4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9maWxlc3lzdGVtLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtLnB5CShyZXZpc2lvbiAyMDQxNTYpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQkod29y
a2luZyBjb3B5KQpAQCAtMjM1LDggKzIzNSw4IEBAIGNsYXNzIEZpbGVTeXN0ZW0ob2JqZWN0KToK
ICAgICAgICAgIyBub3QgYmVpbmcgc2Vla2FibGUuIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5j
b20vcXVlc3Rpb25zLzE1MTAxODgvY2FuLXNlZWstYW5kLXRlbGwtd29yay13aXRoLXV0Zi04LWVu
Y29kZWQtZG9jdW1lbnRzLWluLXB5dGhvbiAuCiAgICAgICAgIHJldHVybiBjb2RlY3Mub3Blbihw
YXRoLCAncicsICd1dGY4JywgZXJyb3JzKQogCi0gICAgZGVmIG9wZW5fdGV4dF9maWxlX2Zvcl93
cml0aW5nKHNlbGYsIHBhdGgpOgotICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4ocGF0aCwgJ3cn
LCAndXRmOCcpCisgICAgZGVmIG9wZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKHNlbGYsIHBhdGgs
IG1vZGU9J3cnKToKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5vcGVuKHBhdGgsIG1vZGUsICd1dGY4
JykKIAogICAgIGRlZiBvcGVuX3N0ZGluKHNlbGYpOgogICAgICAgICByZXR1cm4gY29kZWNzLlN0
cmVhbVJlYWRlcldyaXRlcihzeXMuc3RkaW4sCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkJKHJldmlzaW9u
IDIwNDE1NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lz
dGVtX21vY2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTMzNyw3ICszMzcsNyBAQCBjbGFzcyBNb2Nr
RmlsZVN5c3RlbShvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcmFpc2Vfbm90X2ZvdW5kKHBh
dGgpCiAgICAgICAgIHJldHVybiBSZWFkYWJsZVRleHRGaWxlT2JqZWN0KHNlbGYsIHBhdGgsIHNl
bGYuZmlsZXNbcGF0aF0pCiAKLSAgICBkZWYgb3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcoc2Vs
ZiwgcGF0aCk6CisgICAgZGVmIG9wZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKHNlbGYsIHBhdGgs
IG1vZGU9J3cnKToKICAgICAgICAgcmV0dXJuIFdyaXRhYmxlVGV4dEZpbGVPYmplY3Qoc2VsZiwg
cGF0aCkKIAogICAgIGRlZiByZWFkX3RleHRfZmlsZShzZWxmLCBwYXRoKToKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlscy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkJKHJldmlz
aW9uIDIwNDE1NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1
dGlscy5weQkod29ya2luZyBjb3B5KQpAQCAtMjMyLDQgKzIzMiw0IEBAIGNsYXNzIEZpbGVTeXN0
ZW1IYW5kbGVyKEZpbGVIYW5kbGVyKToKICAgICAgICAgRmlsZUhhbmRsZXIuX19pbml0X18oc2Vs
ZiwgZmlsZW5hbWUpCiAKICAgICBkZWYgX29wZW4oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
LmZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcoc2VsZi5maWxlbmFtZSkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuZmlsZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyhz
ZWxmLmZpbGVuYW1lLCAnYScpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVldWVzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWV1ZXMucHkJKHJldmlzaW9uIDIwNDE1NikKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw3
ICsxMjMsNyBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50
IgogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6Ci0gICAgICAgIGxvZ3V0aWxzLmNv
bmZpZ3VyZV9sb2dnZXJfdG9fbG9nX3RvX2ZpbGUoX2xvZywgc2VsZi5xdWV1ZV9sb2dfcGF0aCgp
LCBzZWxmLmhvc3QuZmlsZXN5c3RlbSkKKyAgICAgICAgbG9ndXRpbHMuY29uZmlndXJlX2xvZ2dl
cl90b19sb2dfdG9fZmlsZShsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkiKSwgc2VsZi5xdWV1
ZV9sb2dfcGF0aCgpLCBzZWxmLmhvc3QuZmlsZXN5c3RlbSkKICAgICAgICAgX2xvZy5pbmZvKCJD
QVVUSU9OOiAlcyB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wiIiAlIChz
ZWxmLm5hbWUsIHNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkpCiAgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMuY29uZmlybToKICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5fdG9vbC51
c2VyLnByb21wdCgiQXJlIHlvdSBzdXJlPyAgVHlwZSBcInllc1wiIHRvIGNvbnRpbnVlOiAiKQo=
</data>
<flag name="review"
          id="309008"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="309009"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285469</attachid>
            <date>2016-08-05 17:32:55 -0700</date>
            <delta_ts>2016-08-08 16:07:12 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-log-improved-v3</filename>
            <type>text/plain</type>
            <size>6206</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNDIwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDE2LTA4LTA1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBTb21lIEVXUyBjb25zb2xlIGxvZ3MgZG9lc24ndCBnbyB0byBsb2cgZmls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNTg1
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI0NDY0NTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vbG9ndXRpbHMucHk6CisgICAgICAgIChGaWxlU3lzdGVtSGFuZGxlci5fb3Blbik6IEVuc3Vy
ZSB0aGF0IHdlIG9wZW4gbG9nZmlsZSBpbiBhcHBlbmQgbW9kZSBpbiBvcmRlciB0byBhdm9pZAor
ICAgICAgICBhbnkgcG9zc2libGUgb3ZlcndyaXRpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHk6CisgICAgICAgIChGaWxlU3lzdGVtLm9w
ZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKTogQWRkIHNob3VsZF9hcHBlbmQgcGFyYW1ldGVyIHRv
IGFwcGVuZCB0byBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9maWxlc3lzdGVtX21vY2sucHk6CisgICAgICAgIChNb2NrRmlsZVN5c3RlbS5vcGVuX3RleHRf
ZmlsZV9mb3Jfd3JpdGluZyk6IFNhbWUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgIChSZWFsRmlsZVN5c3Rl
bVRlc3QudGVzdF9yZWFkX2FuZF93cml0ZV90ZXh0X2ZpbGUpOiBSZW1vdmVkIHVudXNlZCB2YXJp
YWJsZSAnaGV4X2VxdWl2YWxlbnQnLgorICAgICAgICAoUmVhbEZpbGVTeXN0ZW1UZXN0LnRlc3Rf
YXBwZW5kX3RvX3RleHRfZmlsZSk6IEFkZGVkIG5ldyB1bml0IHRlc3QgZm9yIHRlc3RpbmcgYXBw
ZW5kIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXVlcy5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWUuYmVnaW5fd29ya19xdWV1ZSk6
IENvbmZpZ3VyZSB0aGUgbG9nZ2VyIGZvciBvdmVyYWxsIHdlYmtpdHB5IHRvIGxvZyB0byBmaWxl
LgorICAgICAgICBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWxsIHRoZSBzdWItbW9kdWxlcyBpbnNp
ZGUgd2Via2l0cHkgd2lsbCBsb2cgdG8gZmlsZS4KKwogMjAxNi0wOC0wNSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBydW4tYXBpLXRlc3RzIHNob3Vs
ZCB1c2UgYSBoZWFkZWQgc2ltdWxhdG9yCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQkocmV2aXNpb24gMjA0MjA0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHkJKHdvcmtp
bmcgY29weSkKQEAgLTIzNSw3ICsyMzUsOSBAQCBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6CiAg
ICAgICAgICMgbm90IGJlaW5nIHNlZWthYmxlLiBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29t
L3F1ZXN0aW9ucy8xNTEwMTg4L2Nhbi1zZWVrLWFuZC10ZWxsLXdvcmstd2l0aC11dGYtOC1lbmNv
ZGVkLWRvY3VtZW50cy1pbi1weXRob24gLgogICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4ocGF0
aCwgJ3InLCAndXRmOCcsIGVycm9ycykKIAotICAgIGRlZiBvcGVuX3RleHRfZmlsZV9mb3Jfd3Jp
dGluZyhzZWxmLCBwYXRoKToKKyAgICBkZWYgb3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcoc2Vs
ZiwgcGF0aCwgc2hvdWxkX2FwcGVuZD1GYWxzZSk6CisgICAgICAgIGlmIHNob3VsZF9hcHBlbmQ6
CisgICAgICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4ocGF0aCwgJ2EnLCAndXRmOCcpCiAgICAg
ICAgIHJldHVybiBjb2RlY3Mub3BlbihwYXRoLCAndycsICd1dGY4JykKIAogICAgIGRlZiBvcGVu
X3N0ZGluKHNlbGYpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L2ZpbGVzeXN0ZW1fbW9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CShyZXZpc2lvbiAyMDQyMDQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0zMzcsNyArMzM3LDcgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2Jq
ZWN0KToKICAgICAgICAgICAgIHNlbGYuX3JhaXNlX25vdF9mb3VuZChwYXRoKQogICAgICAgICBy
ZXR1cm4gUmVhZGFibGVUZXh0RmlsZU9iamVjdChzZWxmLCBwYXRoLCBzZWxmLmZpbGVzW3BhdGhd
KQogCi0gICAgZGVmIG9wZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKHNlbGYsIHBhdGgpOgorICAg
IGRlZiBvcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyhzZWxmLCBwYXRoLCBzaG91bGRfYXBwZW5k
PUZhbHNlKToKICAgICAgICAgcmV0dXJuIFdyaXRhYmxlVGV4dEZpbGVPYmplY3Qoc2VsZiwgcGF0
aCkKIAogICAgIGRlZiByZWFkX3RleHRfZmlsZShzZWxmLCBwYXRoKToKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVt
X3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMDQyMDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAt
MTg3LDcgKzE4Nyw2IEBAIGNsYXNzIFJlYWxGaWxlU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2EK
ICAgICAgICAgdGV4dF9wYXRoID0gTm9uZQogCiAgICAgICAgIHVuaWNvZGVfdGV4dF9zdHJpbmcg
PSB1J1x1MDE2QW5cdTAxMkRjXHUwMTREZGVcdTAzM0QnCi0gICAgICAgIGhleF9lcXVpdmFsZW50
ID0gJ1x4QzVceEFBXHg2RVx4QzRceEFEXHg2M1x4QzVceDhEXHg2NFx4NjVceENDXHhCRCcKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgdGV4dF9wYXRoID0gdGVtcGZpbGUubWt0ZW1wKHByZWZp
eD0ndHJlZV91bml0dGVzdF8nKQogICAgICAgICAgICAgZmlsZSA9IGZzLm9wZW5fdGV4dF9maWxl
X2Zvcl93cml0aW5nKHRleHRfcGF0aCkKQEAgLTIwMyw2ICsyMDIsMzEgQEAgY2xhc3MgUmVhbEZp
bGVTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYQogICAgICAgICAgICAgaWYgdGV4dF9wYXRoIGFu
ZCBmcy5pc2ZpbGUodGV4dF9wYXRoKToKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUodGV4dF9w
YXRoKQogCisgICAgZGVmIHRlc3RfYXBwZW5kX3RvX3RleHRfZmlsZShzZWxmKToKKyAgICAgICAg
ZnMgPSBGaWxlU3lzdGVtKCkKKyAgICAgICAgdGV4dF9wYXRoID0gTm9uZQorCisgICAgICAgIHVu
aWNvZGVfdGV4dF9zdHJpbmcxID0gdSdcdTAxNkFuXHUwMTJEY1x1MDE0RGRlXHUwMzNEJworICAg
ICAgICB1bmljb2RlX3RleHRfc3RyaW5nMiA9ICdIZWxsbycKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgdGV4dF9wYXRoID0gdGVtcGZpbGUubWt0ZW1wKHByZWZpeD0ndHJlZV91bml0dGVzdF8n
KQorICAgICAgICAgICAgZmlsZSA9IGZzLm9wZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKHRleHRf
cGF0aCkKKyAgICAgICAgICAgIGZpbGUud3JpdGUodW5pY29kZV90ZXh0X3N0cmluZzEpCisgICAg
ICAgICAgICBmaWxlLmNsb3NlKCkKKworICAgICAgICAgICAgZmlsZSA9IGZzLm9wZW5fdGV4dF9m
aWxlX2Zvcl93cml0aW5nKHRleHRfcGF0aCwgc2hvdWxkX2FwcGVuZD1UcnVlKQorICAgICAgICAg
ICAgZmlsZS53cml0ZSh1bmljb2RlX3RleHRfc3RyaW5nMikKKyAgICAgICAgICAgIGZpbGUuY2xv
c2UoKQorCisgICAgICAgICAgICBmaWxlID0gZnMub3Blbl90ZXh0X2ZpbGVfZm9yX3JlYWRpbmco
dGV4dF9wYXRoKQorICAgICAgICAgICAgcmVhZF90ZXh0ID0gZmlsZS5yZWFkKCkKKyAgICAgICAg
ICAgIGZpbGUuY2xvc2UoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlYWRfdGV4
dCwgdW5pY29kZV90ZXh0X3N0cmluZzEgKyB1bmljb2RlX3RleHRfc3RyaW5nMikKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIGlmIHRleHRfcGF0aCBhbmQgZnMuaXNmaWxlKHRleHRfcGF0
aCk6CisgICAgICAgICAgICAgICAgb3MucmVtb3ZlKHRleHRfcGF0aCkKKwogICAgIGRlZiB0ZXN0
X3JlYWRfYW5kX3dyaXRlX2ZpbGUoc2VsZik6CiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAg
ICAgICAgIHRleHRfcGF0aCA9IE5vbmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9sb2d1dGlscy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkJKHJldmlzaW9uIDIwNDIwNCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlscy5weQkod29ya2luZyBjb3B5
KQpAQCAtMjMyLDQgKzIzMiw0IEBAIGNsYXNzIEZpbGVTeXN0ZW1IYW5kbGVyKEZpbGVIYW5kbGVy
KToKICAgICAgICAgRmlsZUhhbmRsZXIuX19pbml0X18oc2VsZiwgZmlsZW5hbWUpCiAKICAgICBk
ZWYgX29wZW4oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZpbGVzeXN0ZW0ub3Blbl90ZXh0
X2ZpbGVfZm9yX3dyaXRpbmcoc2VsZi5maWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIHNlbGYuZmls
ZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyhzZWxmLmZpbGVuYW1lLCBzaG91bGRf
YXBwZW5kPVRydWUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWV1ZXMucHkJKHJldmlzaW9uIDIwNDIwNCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw3ICsxMjMs
NyBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCiAg
ICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6Ci0gICAgICAgIGxvZ3V0aWxzLmNvbmZpZ3Vy
ZV9sb2dnZXJfdG9fbG9nX3RvX2ZpbGUoX2xvZywgc2VsZi5xdWV1ZV9sb2dfcGF0aCgpLCBzZWxm
Lmhvc3QuZmlsZXN5c3RlbSkKKyAgICAgICAgbG9ndXRpbHMuY29uZmlndXJlX2xvZ2dlcl90b19s
b2dfdG9fZmlsZShsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkiKSwgc2VsZi5xdWV1ZV9sb2df
cGF0aCgpLCBzZWxmLmhvc3QuZmlsZXN5c3RlbSkKICAgICAgICAgX2xvZy5pbmZvKCJDQVVUSU9O
OiAlcyB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wiIiAlIChzZWxmLm5h
bWUsIHNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkpCiAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuY29uZmlybToKICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5fdG9vbC51c2VyLnBy
b21wdCgiQXJlIHlvdSBzdXJlPyAgVHlwZSBcInllc1wiIHRvIGNvbnRpbnVlOiAiKQo=
</data>
<flag name="review"
          id="309098"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="309099"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285598</attachid>
            <date>2016-08-08 16:07:12 -0700</date>
            <delta_ts>2016-08-22 11:31:34 -0700</delta_ts>
            <desc>Added the comment, also moved logging initialization to queueengine.py from queues.py</desc>
            <filename>ews-log-improved-v4</filename>
            <type>text/plain</type>
            <size>20778</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNDI2NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUxIEBACisyMDE2LTA4LTA4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBTb21lIEVXUyBjb25zb2xlIGxvZ3MgZG9lc24ndCBnbyB0byBsb2cgZmls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNTg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHk6CisgICAgICAgIChjb25maWd1
cmVfbG9nZ2VyX3RvX2xvZ190b19maWxlKTogUmV0dXJuIHRoZSBoYW5kbGVyIHNvIGFzIHRvIGVu
YWJsZSBjYWxsZXIgdG8gcmVtb3ZlIGl0IGxhdGVyLgorICAgICAgICAocmVtb3ZlX2hhbmRsZXJf
ZnJvbV9sb2dnZXIpOiBSZW1vdmVzIHRoZSBoYW5kbGVyIGZyb20gdGhlIGxvZ2dlci4KKyAgICAg
ICAgKEZpbGVTeXN0ZW1IYW5kbGVyLl9vcGVuKTogRW5zdXJlIHRoYXQgd2Ugb3BlbiBsb2dmaWxl
IGluIGFwcGVuZCBtb2RlIGluIG9yZGVyIHRvIGF2b2lkCisgICAgICAgIGFueSBwb3NzaWJsZSBv
dmVyd3JpdGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmls
ZXN5c3RlbS5weToKKyAgICAgICAgKEZpbGVTeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRp
bmcpOiBBZGQgc2hvdWxkX2FwcGVuZCBwYXJhbWV0ZXIgdG8gYXBwZW5kIHRvIGZpbGUuIAorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHk6
CisgICAgICAgIChNb2NrRmlsZVN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyk6IFNh
bWUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1f
dW5pdHRlc3QucHk6CisgICAgICAgIChSZWFsRmlsZVN5c3RlbVRlc3QudGVzdF9yZWFkX2FuZF93
cml0ZV90ZXh0X2ZpbGUpOiBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZSAnaGV4X2VxdWl2YWxlbnQn
LgorICAgICAgICAoUmVhbEZpbGVTeXN0ZW1UZXN0LnRlc3RfYXBwZW5kX3RvX3RleHRfZmlsZSk6
IEFkZGVkIG5ldyB1bml0IHRlc3QgZm9yIHRlc3RpbmcgYXBwZW5kIGZ1bmN0aW9uYWxpdHkuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZS5weToKKyAgICAg
ICAgKFF1ZXVlRW5naW5lLl9iZWdpbl9sb2dnaW5nKTogQ29uZmlndXJlIHRoZSBweXRob24gbG9n
Z2VyIHRvIGxvZyB0byBmaWxlLgorICAgICAgICAoUXVldWVFbmdpbmUuX3N0b3BwaW5nKTogU3Rv
cCBsb2dnaW5nIHRvIGZpbGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXVlcy5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWUuX2xvZ19kaXJlY3RvcnkpOiBS
ZXZlcnRpbmcgdG8gb3MucGF0aC5qb2luIGFzIHdlIGRvbid0IGhhdmUgaG9zdCBvYmplY3QuCisg
ICAgICAgIChBYnN0cmFjdFF1ZXVlLnF1ZXVlX2xvZ19wYXRoKTogU2FtZS4KKyAgICAgICAgKEFi
c3RyYWN0UXVldWUuYmVnaW5fd29ya19xdWV1ZSk6IFJlbW92ZWQgbG9nZ2luZyBpbml0aWFsaXph
dGlvbiwgaXQgaXMgbm93IGJlaW5nIGRvbmUgaW4gUXVldWVFbmdpbmUuCisgICAgICAgIChBYnN0
cmFjdFF1ZXVlLl9faW5pdF9fKTogUmVtb3ZlZCBob3N0IHBhcmFtZXRlciwgbm90IHJlcXVpcmVk
IGFueW1vcmUsIGl0IHdhcyByZXF1aXJlZCBieSBsb2dnaW5nIGluaXRpYWxpemF0aW9uCisgICAg
ICAgIHdoaWNoIG1vdmVkIHRvIFF1ZXVlRW5naW5lIG5vdy4KKyAgICAgICAgKFBhdGNoUHJvY2Vz
c2luZ1F1ZXVlLl9faW5pdF9fKTogU2FtZS4KKyAgICAgICAgKENvbW1pdFF1ZXVlLl9faW5pdF9f
KTogU2FtZS4KKyAgICAgICAgKEFic3RyYWN0UmV2aWV3UXVldWUuX19pbml0X18pOiBTYW1lLgor
ICAgICAgICAoU3R5bGVRdWV1ZS5fX2luaXRfXyk6IFNhbWUuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RD
b21taXRRdWV1ZSk6IFJlbW92ZWQgaG9zdCBwYXJhbWV0ZXIuCisgICAgICAgIChUZXN0Q29tbWl0
UXVldWUuX19pbml0X18pOiBTYW1lLgorICAgICAgICAoQWJzdHJhY3RQYXRjaFF1ZXVlVGVzdC50
ZXN0X25leHRfcGF0Y2gpOiBTYW1lLgorICAgICAgICAoUGF0Y2hQcm9jZXNzaW5nUXVldWVUZXN0
LnRlc3RfdXBsb2FkX3Jlc3VsdHNfYXJjaGl2ZV9mb3JfcGF0Y2gpOiBTYW1lLgorICAgICAgICAo
dGVzdF9jb21taXRfcXVldWVfZmFpbHVyZSk6IFNhbWUuCisgICAgICAgIChtb2NrX3J1bl93ZWJr
aXRfcGF0Y2gpOgorICAgICAgICAoTW9ja0NvbW1pdFF1ZXVlVGFzay5yZXN1bHRzX2Zyb21fcGF0
Y2hfdGVzdF9ydW4pOiBTYW1lLgorICAgICAgICAodGVzdF9yb2xsb3V0X2xhbmRzKTogU2FtZS4K
KyAgICAgICAgKHRlc3Rfbm9uX3ZhbGlkX3BhdGNoKTogU2FtZS4KKyAgICAgICAgKHRlc3RfYXV0
b19yZXRyeSk6IFNhbWUuCisgICAgICAgICh0ZXN0X3N0eWxlX3F1ZXVlX3dpdGhfd2F0Y2hfbGlz
dF9leGNlcHRpb24pOiBTYW1lLgorICAgICAgICAoVGVzdFF1ZXVlLl9faW5pdF9fKTogRGVsZXRl
ZC4KKyAgICAgICAgKFRlc3RSZXZpZXdRdWV1ZS5fX2luaXRfXyk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0RmVlZGVyUXVldWUuX19pbml0X18pOiBEZWxldGVkLgorCiAyMDE2LTA4LTA4ICBNYXR0
IEJha2VyICA8bWF0dGJha2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkOiBtb3Zl
ZCBteXNlbGYgdG8gdGhlIHJldmlld2VycyBsaXN0LgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHkJKHJldmlzaW9uIDIwNDI2
NykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDkgQEAgY2xhc3MgRmlsZVN5c3RlbShvYmpl
Y3QpOgogICAgICAgICAjIG5vdCBiZWluZyBzZWVrYWJsZS4gU2VlIGh0dHA6Ly9zdGFja292ZXJm
bG93LmNvbS9xdWVzdGlvbnMvMTUxMDE4OC9jYW4tc2Vlay1hbmQtdGVsbC13b3JrLXdpdGgtdXRm
LTgtZW5jb2RlZC1kb2N1bWVudHMtaW4tcHl0aG9uIC4KICAgICAgICAgcmV0dXJuIGNvZGVjcy5v
cGVuKHBhdGgsICdyJywgJ3V0ZjgnLCBlcnJvcnMpCiAKLSAgICBkZWYgb3Blbl90ZXh0X2ZpbGVf
Zm9yX3dyaXRpbmcoc2VsZiwgcGF0aCk6CisgICAgZGVmIG9wZW5fdGV4dF9maWxlX2Zvcl93cml0
aW5nKHNlbGYsIHBhdGgsIHNob3VsZF9hcHBlbmQ9RmFsc2UpOgorICAgICAgICBpZiBzaG91bGRf
YXBwZW5kOgorICAgICAgICAgICAgcmV0dXJuIGNvZGVjcy5vcGVuKHBhdGgsICdhJywgJ3V0Zjgn
KQogICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4ocGF0aCwgJ3cnLCAndXRmOCcpCiAKICAgICBk
ZWYgb3Blbl9zdGRpbihzZWxmKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQkocmV2aXNpb24gMjA0MjY3
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9j
ay5weQkod29ya2luZyBjb3B5KQpAQCAtMzM3LDcgKzMzNyw3IEBAIGNsYXNzIE1vY2tGaWxlU3lz
dGVtKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9yYWlzZV9ub3RfZm91bmQocGF0aCkKICAg
ICAgICAgcmV0dXJuIFJlYWRhYmxlVGV4dEZpbGVPYmplY3Qoc2VsZiwgcGF0aCwgc2VsZi5maWxl
c1twYXRoXSkKIAotICAgIGRlZiBvcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyhzZWxmLCBwYXRo
KToKKyAgICBkZWYgb3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcoc2VsZiwgcGF0aCwgc2hvdWxk
X2FwcGVuZD1GYWxzZSk6CiAgICAgICAgIHJldHVybiBXcml0YWJsZVRleHRGaWxlT2JqZWN0KHNl
bGYsIHBhdGgpCiAKICAgICBkZWYgcmVhZF90ZXh0X2ZpbGUoc2VsZiwgcGF0aCk6CkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmls
ZXN5c3RlbV91bml0dGVzdC5weQkocmV2aXNpb24gMjA0MjY3KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Nyw3ICsxODcsNiBAQCBjbGFzcyBSZWFsRmlsZVN5c3RlbVRlc3QodW5pdHRlc3Qu
VGVzdENhCiAgICAgICAgIHRleHRfcGF0aCA9IE5vbmUKIAogICAgICAgICB1bmljb2RlX3RleHRf
c3RyaW5nID0gdSdcdTAxNkFuXHUwMTJEY1x1MDE0RGRlXHUwMzNEJwotICAgICAgICBoZXhfZXF1
aXZhbGVudCA9ICdceEM1XHhBQVx4NkVceEM0XHhBRFx4NjNceEM1XHg4RFx4NjRceDY1XHhDQ1x4
QkQnCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHRleHRfcGF0aCA9IHRlbXBmaWxlLm1rdGVt
cChwcmVmaXg9J3RyZWVfdW5pdHRlc3RfJykKICAgICAgICAgICAgIGZpbGUgPSBmcy5vcGVuX3Rl
eHRfZmlsZV9mb3Jfd3JpdGluZyh0ZXh0X3BhdGgpCkBAIC0yMDMsNiArMjAyLDMxIEBAIGNsYXNz
IFJlYWxGaWxlU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAgICAgIGlmIHRleHRf
cGF0aCBhbmQgZnMuaXNmaWxlKHRleHRfcGF0aCk6CiAgICAgICAgICAgICAgICAgb3MucmVtb3Zl
KHRleHRfcGF0aCkKIAorICAgIGRlZiB0ZXN0X2FwcGVuZF90b190ZXh0X2ZpbGUoc2VsZik6Cisg
ICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCisgICAgICAgIHRleHRfcGF0aCA9IE5vbmUKKworICAg
ICAgICB1bmljb2RlX3RleHRfc3RyaW5nMSA9IHUnXHUwMTZBblx1MDEyRGNcdTAxNERkZVx1MDMz
RCcKKyAgICAgICAgdW5pY29kZV90ZXh0X3N0cmluZzIgPSAnSGVsbG8nCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHRleHRfcGF0aCA9IHRlbXBmaWxlLm1rdGVtcChwcmVmaXg9J3RyZWVfdW5p
dHRlc3RfJykKKyAgICAgICAgICAgIGZpbGUgPSBmcy5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGlu
Zyh0ZXh0X3BhdGgpCisgICAgICAgICAgICBmaWxlLndyaXRlKHVuaWNvZGVfdGV4dF9zdHJpbmcx
KQorICAgICAgICAgICAgZmlsZS5jbG9zZSgpCisKKyAgICAgICAgICAgIGZpbGUgPSBmcy5vcGVu
X3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0ZXh0X3BhdGgsIHNob3VsZF9hcHBlbmQ9VHJ1ZSkKKyAg
ICAgICAgICAgIGZpbGUud3JpdGUodW5pY29kZV90ZXh0X3N0cmluZzIpCisgICAgICAgICAgICBm
aWxlLmNsb3NlKCkKKworICAgICAgICAgICAgZmlsZSA9IGZzLm9wZW5fdGV4dF9maWxlX2Zvcl9y
ZWFkaW5nKHRleHRfcGF0aCkKKyAgICAgICAgICAgIHJlYWRfdGV4dCA9IGZpbGUucmVhZCgpCisg
ICAgICAgICAgICBmaWxlLmNsb3NlKCkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy
ZWFkX3RleHQsIHVuaWNvZGVfdGV4dF9zdHJpbmcxICsgdW5pY29kZV90ZXh0X3N0cmluZzIpCisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBpZiB0ZXh0X3BhdGggYW5kIGZzLmlzZmlsZSh0
ZXh0X3BhdGgpOgorICAgICAgICAgICAgICAgIG9zLnJlbW92ZSh0ZXh0X3BhdGgpCisKICAgICBk
ZWYgdGVzdF9yZWFkX2FuZF93cml0ZV9maWxlKHNlbGYpOgogICAgICAgICBmcyA9IEZpbGVTeXN0
ZW0oKQogICAgICAgICB0ZXh0X3BhdGggPSBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzLnB5CShyZXZpc2lvbiAyMDQyNjcpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkJKHdvcmtp
bmcgY29weSkKQEAgLTIyMyw2ICsyMjMsMTEgQEAgZGVmIGNvbmZpZ3VyZV9sb2dnZXJfdG9fbG9n
X3RvX2ZpbGUobG9nZwogICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKIAogICAg
IGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisgICAgcmV0dXJuIGhhbmRsZXIKKworCitkZWYg
cmVtb3ZlX2hhbmRsZXJfZnJvbV9sb2dnZXIobG9nZ2VyLCBoYW5kbGVyKToKKyAgICBsb2dnZXIu
cmVtb3ZlSGFuZGxlcihoYW5kbGVyKQogCiAKIGNsYXNzIEZpbGVTeXN0ZW1IYW5kbGVyKEZpbGVI
YW5kbGVyKToKQEAgLTIzMiw0ICsyMzcsNCBAQCBjbGFzcyBGaWxlU3lzdGVtSGFuZGxlcihGaWxl
SGFuZGxlcik6CiAgICAgICAgIEZpbGVIYW5kbGVyLl9faW5pdF9fKHNlbGYsIGZpbGVuYW1lKQog
CiAgICAgZGVmIF9vcGVuKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5maWxlc3lzdGVtLm9w
ZW5fdGV4dF9maWxlX2Zvcl93cml0aW5nKHNlbGYuZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBz
ZWxmLmZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcoc2VsZi5maWxlbmFtZSwg
c2hvdWxkX2FwcGVuZD1UcnVlKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9xdWV1ZWVuZ2luZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3F1ZXVlZW5naW5lLnB5CShyZXZpc2lvbiAyMDQyNjcpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw4IEBAIGltcG9ydCB0cmFjZWJhY2sKIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUsIHRpbWVkZWx0YQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0Citm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGxvZ3V0aWxzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dHRlZSBpbXBvcnQgT3V0cHV0VGVlCiAKQEAgLTEyNiwxMiAr
MTI4LDE2IEBAIGNsYXNzIFF1ZXVlRW5naW5lOgogICAgIGRlZiBfc3RvcHBpbmcoc2VsZiwgbWVz
c2FnZSk6CiAgICAgICAgIF9sb2cuaW5mbygiXG4lcyIgJSBtZXNzYWdlKQogICAgICAgICBzZWxm
Ll9kZWxlZ2F0ZS5zdG9wX3dvcmtfcXVldWUobWVzc2FnZSkKKyAgICAgICAgbG9ndXRpbHMucmVt
b3ZlX2hhbmRsZXJfZnJvbV9sb2dnZXIobG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5IiksIHNl
bGYuX2xvZ19oYW5kbGVyKQogICAgICAgICAjIEJlIGNhcmVmdWwgdG8gc2h1dCBkb3duIG91ciBP
dXRwdXRUZWUgb3IgdGhlIHVuaXQgdGVzdHMgd2lsbCBiZSB1bmhhcHB5LgogICAgICAgICBzZWxm
Ll9lbnN1cmVfd29ya19sb2dfY2xvc2VkKCkKICAgICAgICAgc2VsZi5fb3V0cHV0X3RlZS5yZW1v
dmVfbG9nKHNlbGYuX3F1ZXVlX2xvZykKIAogICAgIGRlZiBfYmVnaW5fbG9nZ2luZyhzZWxmKToK
LSAgICAgICAgc2VsZi5fcXVldWVfbG9nID0gc2VsZi5fb3V0cHV0X3RlZS5hZGRfbG9nKHNlbGYu
X2RlbGVnYXRlLnF1ZXVlX2xvZ19wYXRoKCkpCisgICAgICAgIF9xdWV1ZV9sb2dfcGF0aCA9IHNl
bGYuX2RlbGVnYXRlLnF1ZXVlX2xvZ19wYXRoKCkKKyAgICAgICAgIyBXZSBhcmUgdXNpbmcgbG9n
Z2luZy5nZXRMb2dnZXIoIndlYmtpdHB5IikgaW5zdGVhZCBvZiBfbG9nIHNpbmNlIHdlIHdhbnQg
dG8gY2FwdHVyZSBhbGwgbWVzc2FnZXMgbG9nZ2VkIGZyb20gd2Via2l0cHkgbW9kdWxlcy4KKyAg
ICAgICAgc2VsZi5fbG9nX2hhbmRsZXIgPSBsb2d1dGlscy5jb25maWd1cmVfbG9nZ2VyX3RvX2xv
Z190b19maWxlKGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweSIpLCBfcXVldWVfbG9nX3BhdGgs
IEhvc3QoKS5maWxlc3lzdGVtKQorICAgICAgICBzZWxmLl9xdWV1ZV9sb2cgPSBzZWxmLl9vdXRw
dXRfdGVlLmFkZF9sb2coX3F1ZXVlX2xvZ19wYXRoKQogICAgICAgICBzZWxmLl93b3JrX2xvZyA9
IE5vbmUKIAogICAgIGRlZiBfb3Blbl93b3JrX2xvZyhzZWxmLCB3b3JrX2l0ZW0pOgpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CShyZXZp
c2lvbiAyMDQyNjcpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsOCBAQCBmcm9tIFN0cmluZ0lPIGlt
cG9ydCBTdHJpbmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVydmFs
aWRhdG9yIGltcG9ydCBDb21taXR0ZXJWYWxpZGF0b3IKIGZyb20gd2Via2l0cHkuY29tbW9uLmNv
bmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKLWZyb20gd2Via2l0cHkuY29tbW9uLmhv
c3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQg
QXR0YWNobWVudAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQg
U3RhdHVzU2VydmVyCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGxvZ3V0aWxz
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJbmZvCiBmcm9tIHdl
YmtpdHB5LnRvb2wuYm90LmNvbW1pdHF1ZXVldGFzayBpbXBvcnQgQ29tbWl0UXVldWVUYXNrLCBD
b21taXRRdWV1ZVRhc2tEZWxlZ2F0ZQpAQCAtNjgsNyArNjYsNyBAQCBjbGFzcyBBYnN0cmFjdFF1
ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgX2ZhaWxfc3RhdHVzID0gIkZhaWwiCiAgICAg
X2Vycm9yX3N0YXR1cyA9ICJFcnJvciIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25z
PU5vbmUsIGhvc3Q9SG9zdCgpKTogICMgRGVmYXVsdCB2YWx1ZXMgc2hvdWxkIG5ldmVyIGJlIGNv
bGxlY3Rpb25zIChsaWtlIFtdKSBhcyBkZWZhdWx0IHZhbHVlcyBhcmUgc2hhcmVkIGJldHdlZW4g
aW52b2NhdGlvbnMKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucz1Ob25lKTogICMgRGVm
YXVsdCB2YWx1ZXMgc2hvdWxkIG5ldmVyIGJlIGNvbGxlY3Rpb25zIChsaWtlIFtdKSBhcyBkZWZh
dWx0IHZhbHVlcyBhcmUgc2hhcmVkIGJldHdlZW4gaW52b2NhdGlvbnMKICAgICAgICAgb3B0aW9u
c19saXN0ID0gKG9wdGlvbnMgb3IgW10pICsgWwogICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0t
bm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVmYXVs
dD1UcnVlLCBoZWxwPSJEbyBub3QgYXNrIHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24gYmVmb3Jl
IHJ1bm5pbmcgdGhlIHF1ZXVlLiAgRGFuZ2Vyb3VzISIpLAogICAgICAgICAgICAgbWFrZV9vcHRp
b24oIi0tZXhpdC1hZnRlci1pdGVyYXRpb24iLCBhY3Rpb249InN0b3JlIiwgdHlwZT0iaW50Iiwg
ZGVzdD0iaXRlcmF0aW9ucyIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iU3RvcCBydW5uaW5nIHRoZSBx
dWV1ZSBhZnRlciBpdGVyYXRpbmcgdGhpcyBudW1iZXIgb2YgdGltZXMuIiksCkBAIC03OCw3ICs3
Niw2IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmUKICAgICAgICAg
c2VsZi5faXRlcmF0aW9uX2NvdW50ID0gMAogICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAn
YXJjaGl0ZWN0dXJlJyk6CiAgICAgICAgICAgICBzZWxmLmFyY2hpdGVjdHVyZSA9IE5vbmUKLSAg
ICAgICAgc2VsZi5ob3N0ID0gaG9zdAogCiAgICAgZGVmIF9jY193YXRjaGVycyhzZWxmLCBidWdf
aWQpOgogICAgICAgICB0cnk6CkBAIC0xMTIsMTggKzEwOSwxNyBAQCBjbGFzcyBBYnN0cmFjdFF1
ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgICAgIHJldHVybiBjb21tYW5kX291dHB1dAog
CiAgICAgZGVmIF9sb2dfZGlyZWN0b3J5KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5ob3N0
LmZpbGVzeXN0ZW0uam9pbigiLi4iLCAiJXMtbG9ncyIgJSBzZWxmLm5hbWUpCisgICAgICAgIHJl
dHVybiBvcy5wYXRoLmpvaW4oIi4uIiwgIiVzLWxvZ3MiICUgc2VsZi5uYW1lKQogCiAgICAgIyBR
dWV1ZUVuZ2luZURlbGVnYXRlIG1ldGhvZHMKIAogICAgIGRlZiBxdWV1ZV9sb2dfcGF0aChzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuaG9zdC5maWxlc3lzdGVtLmpvaW4oc2VsZi5fbG9nX2Rp
cmVjdG9yeSgpLCAiJXMubG9nIiAlIHNlbGYubmFtZSkKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgu
am9pbihzZWxmLl9sb2dfZGlyZWN0b3J5KCksICIlcy5sb2ciICUgc2VsZi5uYW1lKQogCiAgICAg
ZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCB3b3JrX2l0ZW0pOgogICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAogICAgIGRl
ZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgotICAgICAgICBsb2d1dGlscy5jb25maWd1cmVfbG9n
Z2VyX3RvX2xvZ190b19maWxlKF9sb2csIHNlbGYucXVldWVfbG9nX3BhdGgoKSwgc2VsZi5ob3N0
LmZpbGVzeXN0ZW0pCiAgICAgICAgIF9sb2cuaW5mbygiQ0FVVElPTjogJXMgd2lsbCBkaXNjYXJk
IGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwiJXNcIiIgJSAoc2VsZi5uYW1lLCBzZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QpKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmNvbmZpcm06CiAg
ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuX3Rvb2wudXNlci5wcm9tcHQoIkFyZSB5b3Ugc3Vy
ZT8gIFR5cGUgXCJ5ZXNcIiB0byBjb250aW51ZTogIikKQEAgLTI2MywxMCArMjU5LDkgQEAgY2xh
c3MgUGF0Y2hQcm9jZXNzaW5nUXVldWUoQWJzdHJhY3RQYXRjaAogICAgICMgU3ViY2xhc3NlcyBt
dXN0IG92ZXJyaWRlLgogICAgIHBvcnRfbmFtZSA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcHRpb25zPU5vbmUsIGhvc3Q9SG9zdCgpKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
b3B0aW9ucz1Ob25lKToKICAgICAgICAgc2VsZi5fcG9ydCA9IE5vbmUgICMgV2UgY2FuJ3QgaW5z
dGFudGlhdGUgcG9ydCBoZXJlIGJlY2F1c2UgdG9vbCBpc24ndCBhdmFpYWxibGUuCi0gICAgICAg
IHNlbGYuaG9zdCA9IGhvc3QKLSAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNl
bGYsIG9wdGlvbnMsIGhvc3Q9aG9zdCkKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5p
dF9fKHNlbGYsIG9wdGlvbnMpCiAKICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byBtYXAg
YmV0d2VlbiB0aGUgb2xkIHBvcnQgbmFtZXMgYW5kIHRoZSBuZXcgcG9ydCBuYW1lcy4KICAgICBk
ZWYgX25ld19wb3J0X25hbWVfZnJvbV9vbGQoc2VsZiwgcG9ydF9uYW1lLCBwbGF0Zm9ybSk6CkBA
IC0zMTgsMTAgKzMxMyw5IEBAIGNsYXNzIFBhdGNoUHJvY2Vzc2luZ1F1ZXVlKEFic3RyYWN0UGF0
Y2gKIAogCiBjbGFzcyBDb21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVl
bmNlRXJyb3JIYW5kbGVyLCBDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZSk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGNvbW1pdF9xdWV1ZV90YXNrX2NsYXNzPUNvbW1pdFF1ZXVlVGFzaywgaG9zdD1I
b3N0KCkpOgotICAgICAgICBzZWxmLmhvc3QgPSBob3N0CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNvbW1pdF9xdWV1ZV90YXNrX2NsYXNzPUNvbW1pdFF1ZXVlVGFzayk6CiAgICAgICAgIHNlbGYu
X2NvbW1pdF9xdWV1ZV90YXNrX2NsYXNzID0gY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3MKLSAgICAg
ICAgUGF0Y2hQcm9jZXNzaW5nUXVldWUuX19pbml0X18oc2VsZiwgaG9zdD1ob3N0KQorICAgICAg
ICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5fX2luaXRfXyhzZWxmKQogCiAgICAgbmFtZSA9ICJjb21t
aXQtcXVldWUiCiAgICAgcG9ydF9uYW1lID0gIm1hYyIKQEAgLTQzNiw5ICs0MzAsOCBAQCBjbGFz
cyBDb21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgCiAKIGNsYXNzIEFic3RyYWN0UmV2
aWV3UXVldWUoUGF0Y2hQcm9jZXNzaW5nUXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6
CiAgICAgIiIiVGhpcyBpcyB0aGUgYmFzZS1jbGFzcyBmb3IgdGhlIEVXUyBxdWV1ZXMgYW5kIHRo
ZSBzdHlsZS1xdWV1ZS4iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucz1Ob25lLCBo
b3N0PUhvc3QoKSk6Ci0gICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKLSAgICAgICAgUGF0Y2hQcm9j
ZXNzaW5nUXVldWUuX19pbml0X18oc2VsZiwgb3B0aW9ucywgaG9zdD1ob3N0KQorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUpOgorICAgICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1
ZS5fX2luaXRfXyhzZWxmLCBvcHRpb25zKQogCiAgICAgZGVmIHJldmlld19wYXRjaChzZWxmLCBw
YXRjaCk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVz
dCBpbXBsZW1lbnQiKQpAQCAtNDcwLDkgKzQ2Myw4IEBAIGNsYXNzIEFic3RyYWN0UmV2aWV3UXVl
dWUoUGF0Y2hQcm9jZXNzaW4KIGNsYXNzIFN0eWxlUXVldWUoQWJzdHJhY3RSZXZpZXdRdWV1ZSwg
U3R5bGVRdWV1ZVRhc2tEZWxlZ2F0ZSk6CiAgICAgbmFtZSA9ICJzdHlsZS1xdWV1ZSIKIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PUhvc3QoKSk6Ci0gICAgICAgIHNlbGYuaG9zdCA9IGhv
c3QKLSAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PWhvc3Qp
CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLl9f
aW5pdF9fKHNlbGYpCiAKICAgICBkZWYgcmV2aWV3X3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAg
ICAgdGFzayA9IFN0eWxlUXVldWVUYXNrKHNlbGYsIHBhdGNoKQpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5
CShyZXZpc2lvbiAyMDQyNjcpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvcXVldWVzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBAIGlt
cG9ydCBTdHJpbmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0
IENoZWNrb3V0TmVlZHNVcGRhdGUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5z
Y21fbW9jayBpbXBvcnQgTW9ja1NDTQotZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGlt
cG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRz
IGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3pp
bGxhIGltcG9ydCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0
Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtNDgsNyArNDcsNyBAQCBmcm9tIHdlYmtp
dHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUCiAKIGNsYXNzIFRlc3RDb21taXRRdWV1ZShD
b21taXRRdWV1ZSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2w9Tm9uZSk6Ci0gICAgICAg
IENvbW1pdFF1ZXVlLl9faW5pdF9fKHNlbGYsIGhvc3Q9TW9ja0hvc3QoKSkKKyAgICAgICAgQ29t
bWl0UXVldWUuX19pbml0X18oc2VsZikKICAgICAgICAgaWYgdG9vbDoKICAgICAgICAgICAgIHNl
bGYuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBNb2NrT3B0aW9u
cyhjb25maXJtPUZhbHNlLCBwYXJlbnRfY29tbWFuZD0iY29tbWl0LXF1ZXVlIiwgcG9ydD1Ob25l
KQpAQCAtNjMsMjMgKzYyLDE0IEBAIGNsYXNzIFRlc3RDb21taXRRdWV1ZShDb21taXRRdWV1ZSk6
CiBjbGFzcyBUZXN0UXVldWUoQWJzdHJhY3RQYXRjaFF1ZXVlKToKICAgICBuYW1lID0gInRlc3Qt
cXVldWUiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIEFic3RyYWN0UGF0Y2hR
dWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PU1vY2tIb3N0KCkpCi0KIAogY2xhc3MgVGVzdFJldmll
d1F1ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUpOgogICAgIG5hbWUgPSAidGVzdC1yZXZpZXctcXVl
dWUiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIEFic3RyYWN0UmV2aWV3UXVl
dWUuX19pbml0X18oc2VsZiwgaG9zdD1Nb2NrSG9zdCgpKQotCiAKIGNsYXNzIFRlc3RGZWVkZXJR
dWV1ZShGZWVkZXJRdWV1ZSk6CiAgICAgX3NsZWVwX2R1cmF0aW9uID0gMAogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgotICAgICAgICBGZWVkZXJRdWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PU1v
Y2tIb3N0KCkpCi0KIAogY2xhc3MgQWJzdHJhY3RRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKICAg
ICBkZWYgdGVzdF9sb2dfZGlyZWN0b3J5KHNlbGYpOgpAQCAtMTYzLDcgKzE1Myw3IEBAIE1PQ0s6
IHN1Ym1pdF90b19ld3M6IDEwMDAyCiAKIGNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZVRlc3QoQ29t
bWFuZHNUZXN0KToKICAgICBkZWYgdGVzdF9uZXh0X3BhdGNoKHNlbGYpOgotICAgICAgICBxdWV1
ZSA9IEFic3RyYWN0UGF0Y2hRdWV1ZShob3N0PU1vY2tIb3N0KCkpCisgICAgICAgIHF1ZXVlID0g
QWJzdHJhY3RQYXRjaFF1ZXVlKCkKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKICAgICAgICAg
cXVldWUuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgIHF1ZXVlLl9vcHRpb25zID0gTW9jaygp
CkBAIC0xODEsNyArMTcxLDcgQEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVlVGVzdChDb21tYW5k
c1RlcwogCiBjbGFzcyBQYXRjaFByb2Nlc3NpbmdRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKICAg
ICBkZWYgdGVzdF91cGxvYWRfcmVzdWx0c19hcmNoaXZlX2Zvcl9wYXRjaChzZWxmKToKLSAgICAg
ICAgcXVldWUgPSBQYXRjaFByb2Nlc3NpbmdRdWV1ZShob3N0PU1vY2tIb3N0KCkpCisgICAgICAg
IHF1ZXVlID0gUGF0Y2hQcm9jZXNzaW5nUXVldWUoKQogICAgICAgICBxdWV1ZS5uYW1lID0gIm1v
Y2stcXVldWUiCiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCiAgICAgICAgIHF1ZXVlLmJpbmRf
dG9fdG9vbCh0b29sKQpAQCAtMjcwLDcgKzI2MCw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVt
OiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNj
cmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgICAgICAi
aGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1pdC1xdWV1
ZScgdG8gJy0nIG9uIGF0dGFjaG1lbnQgJzEwMDAwJyB3aXRoIGNvbW1lbnQgJ1JlamVjdGluZyBh
dHRhY2htZW50IDEwMDAwIGZyb20gY29tbWl0LXF1ZXVlLlxuXG5Nb2NrIGVycm9yIG1lc3NhZ2Un
XG4iLAogICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0
UXVldWUoaG9zdD1Nb2NrSG9zdCgpKSwgdG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwg
dG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9j
b21taXRfcXVldWVfZmFpbHVyZShzZWxmKToKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9IHsKQEAg
LTI4Niw3ICsyNzYsNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1ZXVlIDEw
CiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJTY3JpcHRFcnJvciBlcnJvciBt
ZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVjdGVk
X2Vycm9yIjogIk1PQ0sgc2V0dGluZyBmbGFnICdjb21taXQtcXVldWUnIHRvICctJyBvbiBhdHRh
Y2htZW50ICcxMDAwMCcgd2l0aCBjb21tZW50ICdSZWplY3RpbmcgYXR0YWNobWVudCAxMDAwMCBm
cm9tIGNvbW1pdC1xdWV1ZS5cblxuTW9jayBlcnJvciBtZXNzYWdlJ1xuIiwKICAgICAgICAgfQot
ICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSkKKyAgICAgICAgcXVl
dWUgPSBDb21taXRRdWV1ZSgpCiAKICAgICAgICAgZGVmIG1vY2tfcnVuX3dlYmtpdF9wYXRjaChj
b21tYW5kKToKICAgICAgICAgICAgIGlmIGNvbW1hbmRbMF0gPT0gJ2NsZWFuJyBvciBjb21tYW5k
WzBdID09ICd1cGRhdGUnOgpAQCAtMzE4LDcgKzMwOCw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19p
dGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgIGRlZiByZXN1bHRzX2Zyb21fcGF0Y2hf
dGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICAgICAgICAgIHJldHVybiBMYXlvdXRUZXN0
UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoIm1vY2tfdGVzdF9uYW1lLmh0bWwiLCBm
YWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCldKV0sIGRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQogCi0gICAgICAgIHF1ZXVlID0gQ29tbWl0UXVl
dWUoTW9ja0NvbW1pdFF1ZXVlVGFzaywgaG9zdD1Nb2NrSG9zdCgpKQorICAgICAgICBxdWV1ZSA9
IENvbW1pdFF1ZXVlKE1vY2tDb21taXRRdWV1ZVRhc2spCiAKICAgICAgICAgZGVmIG1vY2tfcnVu
X3dlYmtpdF9wYXRjaChjb21tYW5kKToKICAgICAgICAgICAgIGlmIGNvbW1hbmRbMF0gPT0gJ2Ns
ZWFuJyBvciBjb21tYW5kWzBdID09ICd1cGRhdGUnOgpAQCAtMzU3LDcgKzM0Nyw3IEBAIE1PQ0s6
IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgICJoYW5kbGVf
c2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRc
biIsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5n
IGZsYWcgJ2NvbW1pdC1xdWV1ZScgdG8gJy0nIG9uIGF0dGFjaG1lbnQgJzEwMDAwJyB3aXRoIGNv
bW1lbnQgJ1JlamVjdGluZyBhdHRhY2htZW50IDEwMDAwIGZyb20gY29tbWl0LXF1ZXVlLlxuXG5N
b2NrIGVycm9yIG1lc3NhZ2UnXG4iLAogICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1
ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoaG9zdD1Nb2NrSG9zdCgpKSwgdG9vbD10b29sLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1
dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3Mp
CiAKICAgICBkZWYgdGVzdF9yb2xsb3V0X2xhbmRzKHNlbGYpOgogICAgICAgICB0b29sID0gTW9j
a1Rvb2woKQpAQCAtMzgyLDcgKzM3Miw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21t
aXQtcXVldWUgMTAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNjcmlwdEVy
cm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgICAgICAiaGFuZGxl
X3VuZXhwZWN0ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1pdC1xdWV1ZScgdG8g
Jy0nIG9uIGF0dGFjaG1lbnQgJzEwMDA1JyB3aXRoIGNvbW1lbnQgJ1JlamVjdGluZyBhdHRhY2ht
ZW50IDEwMDA1IGZyb20gY29tbWl0LXF1ZXVlLlxuXG5Nb2NrIGVycm9yIG1lc3NhZ2UnXG4iLAog
ICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUo
aG9zdD1Nb2NrSG9zdCgpKSwgdG9vbD10b29sLCB3b3JrX2l0ZW09cm9sbG91dF9wYXRjaCwgZXhw
ZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRw
dXRzKENvbW1pdFF1ZXVlKCksIHRvb2w9dG9vbCwgd29ya19pdGVtPXJvbGxvdXRfcGF0Y2gsIGV4
cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X25vbl92YWxpZF9wYXRj
aChzZWxmKToKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKQEAgLTM5MywxMCArMzgzLDEwIEBA
IE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKIE1PQ0s6IHJlbGVhc2Vf
d29ya19pdGVtOiBjb21taXQtcXVldWUgMTAwMDcKICIiIiwKICAgICAgICAgfQotICAgICAgICBz
ZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKENvbW1pdFF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSksIHRv
b2w9dG9vbCwgd29ya19pdGVtPXBhdGNoLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29s
LCB3b3JrX2l0ZW09cGF0Y2gsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRl
ZiB0ZXN0X2F1dG9fcmV0cnkoc2VsZik6Ci0gICAgICAgIHF1ZXVlID0gQ29tbWl0UXVldWUoaG9z
dD1Nb2NrSG9zdCgpKQorICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKICAgICAgICAgb3B0
aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRpb25zLnBhcmVudF9jb21tYW5kID0gImNvbW1pdC1x
dWV1ZSIKICAgICAgICAgdG9vbCA9IEFsd2F5c0NvbW1pdFF1ZXVlVG9vbCgpCkBAIC01MDgsNyAr
NDk4LDcgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IHN0eWxlLXF1ZXVlIDEwMAogICAgICAg
ICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgIH0K
ICAgICAgICAgdG9vbCA9IE1vY2tUb29sKGV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW49c2V0KFsn
Y2hlY2stc3R5bGUnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoU3R5bGVR
dWV1ZShob3N0PU1vY2tIb3N0KCkpLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MsIHRvb2w9
dG9vbCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKCksIGV4
cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgdG9vbD10b29sKQogCiAgICAgZGVmIHRlc3Rfc3R5
bGVfcXVldWVfd2l0aF93YXRjaF9saXN0X2V4Y2VwdGlvbihzZWxmKToKICAgICAgICAgZXhwZWN0
ZWRfbG9ncyA9IHsKQEAgLTUzMyw3ICs1MjMsNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTog
c3R5bGUtcXVldWUgMTAwCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJNT0NL
IG91dHB1dFxuIiwKICAgICAgICAgfQogICAgICAgICB0b29sID0gTW9ja1Rvb2woZXhlY3V0aXZl
X3Rocm93c193aGVuX3J1bj1zZXQoWydhcHBseS13YXRjaGxpc3QtbG9jYWwnXSkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoU3R5bGVRdWV1ZShob3N0PU1vY2tIb3N0KCkpLCBl
eHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MsIHRvb2w9dG9vbCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRfcXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKCksIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cywgdG9vbD10b29sKQogCiAgICAgZGVmIHRlc3Rfbm9uX3ZhbGlkX3BhdGNoKHNlbGYpOgogICAg
ICAgICB0b29sID0gTW9ja1Rvb2woKQpAQCAtNTQ0LDQgKzUzNCw0IEBAIE1PQ0s6IHJlbGVhc2Vf
d29ya19pdGVtOiBzdHlsZS1xdWV1ZSAxMDAKIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBzdHls
ZS1xdWV1ZSAxMDAwNwogIiIiLAogICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVl
X291dHB1dHMoU3R5bGVRdWV1ZShob3N0PU1vY2tIb3N0KCkpLCB0b29sPXRvb2wsIHdvcmtfaXRl
bT1wYXRjaCwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorICAgICAgICBzZWxmLmFzc2Vy
dF9xdWV1ZV9vdXRwdXRzKFN0eWxlUXVldWUoKSwgdG9vbD10b29sLCB3b3JrX2l0ZW09cGF0Y2gs
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
</data>

          </attachment>
      

    </bug>

</bugzilla>