<?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>185484</bug_id>
          
          <creation_ts>2018-05-09 12:46:55 -0700</creation_ts>
          <short_desc>Add Buildbot configuration for Opensource EWS</short_desc>
          <delta_ts>2018-05-24 09:29:53 -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>Other</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=179506</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=185950</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>dean_johnson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1422417</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-09 12:46:55 -0700</bug_when>
    <thetext>We are planning to use Buildbot for OpenSource EWS (See https://bugs.webkit.org/show_bug.cgi?id=179506). We need to write corresponding Buildbot configuration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422424</commentid>
    <comment_count>1</comment_count>
      <attachid>340011</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-09 12:58:37 -0700</bug_when>
    <thetext>Created attachment 340011
Proposed patch

Patch for basic buildbot configuration. Doesn&apos;t have factories, steps etc yet. Tested locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422431</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-09 13:01:11 -0700</bug_when>
    <thetext>Attachment 340011 did not pass style-queue:


ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:5:  No name &apos;worker&apos; in module &apos;buildbot&apos;  [pylint/E0611] [5]
ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:6:  No name &apos;identifiers&apos; in module &apos;buildbot.util&apos;  [pylint/E0611] [5]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423931</commentid>
    <comment_count>3</comment_count>
      <attachid>340011</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2018-05-14 21:22:47 -0700</bug_when>
    <thetext>Comment on attachment 340011
Proposed patch

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

Looks mostly good; can you add tests for the loadSafariConfig functions? At least for: getValidTags, getTagsForBuilder, checkValidWorker, checkValidBuilder? IMO we don&apos;t need to check each message that&apos;s used, just make sure each potential issue in config.json is adequately caught.

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:32
&gt; +        kls = globals()[scheduler.pop(&apos;type&apos;)]

kls? Maybe we should name this `factoryName`?

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:33
&gt; +        scheduler = dict(map(lambda key_value_pair: (str(key_value_pair[0]), key_value_pair[1]), scheduler.items()))

This is a bit dense, but still readable. When can key_value_pair[0] ever be a non-string type?

It also may read better as follows:
scheduler = {str(k): v for k, v in scheduler.items()}  # Python &gt;= 2.7 iirc.

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:79
&gt; +            if not worker:

Nit: I&apos;d recommend writing this like follows, since you&apos;re really checking if the value is None as opposed to if it&apos;s Truth-y/False-y.

`if worker is None`

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:82
&gt; +            if worker[&apos;platform&apos;] != builder[&apos;platform&apos;]:

Do we need to define worker[&apos;platform&apos;]? Can&apos;t it be inferred from builder[&apos;platform&apos;] instead? It would simplify the config greatly.

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:103
&gt; +    keywords = filter(None, re.split(&quot;[, \-_:()]+&quot;, str(builder[&apos;name&apos;])))

Is the `str` cast necessary here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426262</commentid>
    <comment_count>4</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-22 13:22:00 -0700</bug_when>
    <thetext>(In reply to Dean Johnson from comment #3)
&gt; Looks mostly good; can you add tests for the loadSafariConfig functions? At
&gt; least for: getValidTags, getTagsForBuilder, checkValidWorker,
&gt; checkValidBuilder? IMO we don&apos;t need to check each message that&apos;s used, just
&gt; make sure each potential issue in config.json is adequately caught.
Added unit-tests.
 
&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:32
&gt; &gt; +        kls = globals()[scheduler.pop(&apos;type&apos;)]
&gt; 
&gt; kls? Maybe we should name this `factoryName`?
Renamed to schedulerType.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:79
&gt; &gt; +            if not worker:
&gt; 
&gt; Nit: I&apos;d recommend writing this like follows, since you&apos;re really checking
&gt; if the value is None as opposed to if it&apos;s Truth-y/False-y.
&gt; 
&gt; `if worker is None`
Done
 
&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:82
&gt; &gt; +            if worker[&apos;platform&apos;] != builder[&apos;platform&apos;]:
&gt; 
&gt; Do we need to define worker[&apos;platform&apos;]? Can&apos;t it be inferred from
&gt; builder[&apos;platform&apos;] instead? It would simplify the config greatly.
This is for verification and preventing manual mistakes like accidentally connecting worker to wrong builder. This is similar to all other buildbot configurations we have currently.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:103
&gt; &gt; +    keywords = filter(None, re.split(&quot;[, \-_:()]+&quot;, str(builder[&apos;name&apos;])))
&gt; 
&gt; Is the `str` cast necessary here?
Yeah, this is in order to convert from unicode to str. Otherwise tags are returned as Unicode and buildbot gives an error:
builder &apos;iOS-11-EWS&apos;: tags list contains something that is not a string
Also added unit-test for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426264</commentid>
    <comment_count>5</comment_count>
      <attachid>341011</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-22 13:23:10 -0700</bug_when>
    <thetext>Created attachment 341011
Updated patch

Updated patch with unit-tests and review comments incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426265</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-22 13:25:25 -0700</bug_when>
    <thetext>Attachment 341011 did not pass style-queue:


ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:28:  No name &apos;worker&apos; in module &apos;buildbot&apos;  [pylint/E0611] [5]
ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:29:  No name &apos;identifiers&apos; in module &apos;buildbot.util&apos;  [pylint/E0611] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426611</commentid>
    <comment_count>7</comment_count>
      <attachid>341011</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-23 09:37:21 -0700</bug_when>
    <thetext>Comment on attachment 341011
Updated patch

rs=me. Does the unit test get run on build.webkit.org bots?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426619</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-23 10:07:12 -0700</bug_when>
    <thetext>&gt; rs=me.
Thanks. 
&gt; Does the unit test get run on build.webkit.org bots?
Not yet. Will add it later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426620</commentid>
    <comment_count>9</comment_count>
      <attachid>341100</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-23 10:07:20 -0700</bug_when>
    <thetext>Created attachment 341100
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426744</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-23 15:03:39 -0700</bug_when>
    <thetext>Attachment 341100 did not pass style-queue:


ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:28:  No name &apos;worker&apos; in module &apos;buildbot&apos;  [pylint/E0611] [5]
ERROR: Tools/BuildSlaveSupport/ews-build/loadConfig.py:29:  No name &apos;identifiers&apos; in module &apos;buildbot.util&apos;  [pylint/E0611] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426745</commentid>
    <comment_count>11</comment_count>
      <attachid>341100</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-23 15:05:16 -0700</bug_when>
    <thetext>Comment on attachment 341100
Patch for landing

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

I did not check the correctness of this patch. I noticed some very minor cosmetic issues. This patch alternates between using single and double quoted string literal. We should pick one style and stick with it. I believe for webkitpy we prefer single quoted literal as in new code. Having said that I believe Buildbot code and the Buildbot project prefer double quoted literals.

&gt; Tools/BuildSlaveSupport/ews-build/master.cfg:17
&gt; +c[&apos;projectName&apos;] = &apos;Webkit EWS&apos;

Webkit  =&gt; WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426749</commentid>
    <comment_count>12</comment_count>
      <attachid>341100</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-23 15:17:01 -0700</bug_when>
    <thetext>Comment on attachment 341100
Patch for landing

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

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:48
&gt; +        builder.pop(&apos;platform&apos;)

We are underutilizing pop(), which returns the “popped” value. I suggest we use del builder[...].

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:49
&gt; +        if builder.get(&apos;configuration&apos;):

We should use “in” to test for existence instead of get().

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:50
&gt; +            builder.pop(&apos;configuration&apos;)

We are underutilizing pop(), which returns the “popped” value. I suggest we use del builder[...].

&gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:125
&gt; +    tags_blacklist = [str(i) for i in range(0, 20)]

This is OK as-is, but is suboptimal because we alloc for range(). We should should xrange().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426764</commentid>
    <comment_count>13</comment_count>
      <attachid>341141</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-23 16:00:57 -0700</bug_when>
    <thetext>Created attachment 341141
Patch for landing

&gt; We should pick one style and stick with it. I believe for webkitpy we prefer single quoted literal as in new code. 
Fixed, I have tried to use single quotes as much as possible in updated patch.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:48
&gt; &gt; +        builder.pop(&apos;platform&apos;)
&gt; 
&gt; We are underutilizing pop(), which returns the “popped” value. I suggest we
&gt; use del builder[...].
The plan was to use this popped value in subsequent patches. For now, I have changed it to del builder[...] as you suggested.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:49
&gt; &gt; +        if builder.get(&apos;configuration&apos;):
&gt; 
&gt; We should use “in” to test for existence instead of get().
Done.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:50
&gt; &gt; +            builder.pop(&apos;configuration&apos;)
&gt; 
&gt; We are underutilizing pop(), which returns the “popped” value. I suggest we
&gt; use del builder[...].
Ditto. Changed to del.

&gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:125
&gt; &gt; +    tags_blacklist = [str(i) for i in range(0, 20)]
&gt; 
&gt; This is OK as-is, but is suboptimal because we alloc for range(). We should
&gt; should xrange().
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426768</commentid>
    <comment_count>14</comment_count>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2018-05-23 16:05:28 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #4)
&gt; (In reply to Dean Johnson from comment #3)
&gt; &gt; Looks mostly good; can you add tests for the loadSafariConfig functions? At
&gt; &gt; least for: getValidTags, getTagsForBuilder, checkValidWorker,
&gt; &gt; checkValidBuilder? IMO we don&apos;t need to check each message that&apos;s used, just
&gt; &gt; make sure each potential issue in config.json is adequately caught.
&gt; Added unit-tests.
&gt;  
&gt; &gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:32
&gt; &gt; &gt; +        kls = globals()[scheduler.pop(&apos;type&apos;)]
&gt; &gt; 
&gt; &gt; kls? Maybe we should name this `factoryName`?
&gt; Renamed to schedulerType.
Sounds good.
&gt; 
&gt; &gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:79
&gt; &gt; &gt; +            if not worker:
&gt; &gt; 
&gt; &gt; Nit: I&apos;d recommend writing this like follows, since you&apos;re really checking
&gt; &gt; if the value is None as opposed to if it&apos;s Truth-y/False-y.
&gt; &gt; 
&gt; &gt; `if worker is None`
&gt; Done
&gt;  
&gt; &gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:82
&gt; &gt; &gt; +            if worker[&apos;platform&apos;] != builder[&apos;platform&apos;]:
&gt; &gt; 
&gt; &gt; Do we need to define worker[&apos;platform&apos;]? Can&apos;t it be inferred from
&gt; &gt; builder[&apos;platform&apos;] instead? It would simplify the config greatly.
&gt; This is for verification and preventing manual mistakes like accidentally
&gt; connecting worker to wrong builder. This is similar to all other buildbot
&gt; configurations we have currently.
IMO &quot;we already do this&quot; is not a valid reason to start doing it here. I can&apos;t think of a single bug this check ever prevents, that wouldn&apos;t be caught by checking &quot;do all workers on a builder queue have the same inferred platform as all other builders they may be associated with?&quot; This would simplify the &apos;worker&apos; entries greatly by allowing them to be organized in a list instead of multiple key-value pairs.

I have an implementation of this in-action if you want me to send you the code.
&gt; 
&gt; &gt; &gt; Tools/BuildSlaveSupport/ews-build/loadConfig.py:103
&gt; &gt; &gt; +    keywords = filter(None, re.split(&quot;[, \-_:()]+&quot;, str(builder[&apos;name&apos;])))
&gt; &gt; 
&gt; &gt; Is the `str` cast necessary here?
&gt; Yeah, this is in order to convert from unicode to str. Otherwise tags are
&gt; returned as Unicode and buildbot gives an error:
&gt; builder &apos;iOS-11-EWS&apos;: tags list contains something that is not a string
Gotcha, thanks for explaining.
&gt; Also added unit-test for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426778</commentid>
    <comment_count>15</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-05-23 16:40:28 -0700</bug_when>
    <thetext>&gt; IMO &quot;we already do this&quot; is not a valid reason to start doing it here. I
&gt; can&apos;t think of a single bug this check ever prevents, that wouldn&apos;t be
&gt; caught by checking &quot;do all workers on a builder queue have the same inferred
&gt; platform as all other builders they may be associated with?&quot; This would
&gt; simplify the &apos;worker&apos; entries greatly by allowing them to be organized in a
&gt; list instead of multiple key-value pairs.
We will have to infer the platform in some other manner then. I think the approach you are suggesting would prevent from connecting one worker to multiple builders with different platform.

This check prevents the case when the bot-xyz connects to a single builder, and someone re-configures bot-xyz from &quot;mac-sierra&quot; to &quot;mac-high-sierra&quot;, but forgets to update the corresponding builder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426779</commentid>
    <comment_count>16</comment_count>
      <attachid>341141</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-23 16:41:49 -0700</bug_when>
    <thetext>Comment on attachment 341141
Patch for landing

Clearing flags on attachment: 341141

Committed r232135: &lt;https://trac.webkit.org/changeset/232135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426780</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-23 16:41:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426781</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-23 16:42:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/40503755&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340011</attachid>
            <date>2018-05-09 12:58:37 -0700</date>
            <delta_ts>2018-05-22 13:23:10 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ews-buildbot-config.patch</filename>
            <type>text/plain</type>
            <size>14284</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTU4NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE4LTA1LTA5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQnVpbGRib3QgY29uZmlndXJhdGlvbiBmb3IgT3BlbnNvdXJjZSBF
V1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uOiBBZGRlZCwgY29uZmlnIGZpbGUu
CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weTogQWRk
ZWQsIGJhc2ljIHRlbXBsYXRlIGZvciBmYWN0b3JpZXMuCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWcucHk6IEFkZGVkLgorICAgICAgICAobG9hZEJ1aWxk
ZXJDb25maWcpOiBMb2FkcyB0aGUgY29uZmlndXJhdGlvbi4KKyAgICAgICAgKGNoZWNrVmFsaWRX
b3JrZXIpOiBDaGVja3MgaWYgdGhlIHdvcmtlciBpcyB2YWxpZC4KKyAgICAgICAgKGNoZWNrVmFs
aWRCdWlsZGVyKTogQ2hlY2tzIGlmIHRoZSBidWlsZGVyIGlzIHZhbGlkLgorICAgICAgICAoY2hl
Y2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeSk6IENoZWNrIGlmIHdvcmtlcnMgYW5k
IGJ1aWxkZXJzIGFyZSBjb25zaXN0ZW50LgorICAgICAgICAoY2hlY2tXb3JrZXJzQW5kQnVpbGRl
cnNGb3JDb25zaXN0ZW5jeS5fZmluZF93b3JrZXJfd2l0aF9uYW1lKToKKyAgICAgICAgKGdldEJs
YWNrTGlzdGVkVGFncyk6IFJldHVybnMgYSBsaXN0IG9mIGtleXdvcmRzIHdoaWNoIHNob3VsZCBu
b3QgYmUgbGlzdGVkIGFzIHRhZ3MuCisgICAgICAgIChnZXRWYWxpZFRhZ3MpOiBSZXR1cm5zIGEg
bGlzdCBvZiB2YWxpZCB0YWdzLgorICAgICAgICAoZ2V0VGFnc0ZvckJ1aWxkZXIpOiBSZXR1cm4g
YSBsaXN0IG9mIHRhZ3MgZm9yIGdpdmVuIGJ1aWxkZXIuCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWJ1aWxkL21hc3Rlci5jZmc6IENvbmZpZ3VyYXRpb24gZm9yIGJ1aWxkYm90Lgor
CiAyMDE4LTA1LTA5ICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbdGVzdHNdW0dTdHJlYW1lcl06IFBhc3MgVVNFX1BMQVlCSU4zIHRvIHRoZSB0ZXN0
cyBzdWJwcm9jZXNzCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvY29u
ZmlnLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxk
L2NvbmZpZy5qc29uCShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3
cy1idWlsZC9jb25maWcuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3NiBAQAorewor
ICAid29ya2VycyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJ3ZWJraXQtbWlzYyIsCisgICAg
ICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogInRhbnR5LWd0
ay13azItZXdzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJndGsiCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJsdGlsdmUtZ3RrLXdrMi1ld3MiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImlnYWxpYS13cGUtZXdzIiwKKyAgICAgICJw
bGF0Zm9ybSI6ICJ3cGUiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJhcGVyZXotd3Bl
LWdjYzUtZXdzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3cGUiCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJ3aW5jYWlyby1ld3MtMDAxIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW5jYWly
byIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIndpbmNhaXJvLWV3cy0wMDIiLAorICAg
ICAgInBsYXRmb3JtIjogIndpbmNhaXJvIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
d2luY2Fpcm8tZXdzLTAwMyIsCisgICAgICAicGxhdGZvcm0iOiAid2luY2Fpcm8iCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJ3aW5jYWlyby1ld3MtMDA0IiwKKyAgICAgICJwbGF0Zm9y
bSI6ICJ3aW5jYWlybyIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwMCIsCisg
ICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
IjogImV3czEwMSIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAg
IHsKKyAgICAgICJuYW1lIjogImV3czEwMiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJy
YSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwMyIsCisgICAgICAicGxhdGZv
cm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwNCIs
CisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lIjogImV3czEwNSIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwNiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNp
ZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwNyIsCisgICAgICAicGxh
dGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEw
OCIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExIgorICAgIH0sCisgICAgeworICAgICAgIm5h
bWUiOiAiZXdzMTA5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJpb3MtMTEiCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJld3MxMTIiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEi
CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTMiLAorICAgICAgInBsYXRmb3Jt
IjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTQiLAor
ICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFt
ZSI6ICJld3MxMTUiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJld3MxMTYiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVy
cmEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTciLAorICAgICAgInBsYXRm
b3JtIjogInRiZCIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExOCIsCisgICAg
ICAicGxhdGZvcm0iOiAibWFjLWhpZ2gtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5h
bWUiOiAiZXdzMTE5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtaGlnaC1zaWVycmEiCisgICAg
fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMjAiLAorICAgICAgInBsYXRmb3JtIjogIm1h
Yy1oaWdoLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyMyIsCisg
ICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAg
ICJuYW1lIjogImV3czEyNCIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyNSIsCisgICAgICAicGxhdGZvcm0i
OiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEy
NiIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogImV3czEyNyIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyOCIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAg
ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czIwMCIsCisgICAgICAicGxhdGZvcm0iOiAi
d2luIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMjAxIiwKKyAgICAgICJwbGF0
Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MyMDIiLAorICAg
ICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czIw
MyIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiZXdzMjA0IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJld3MyMDUiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAorICAg
IHsKKyAgICAgICJuYW1lIjogImV3czIwNiIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMjA3IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3
aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MyMDgiLAorICAgICAgInBsYXRm
b3JtIjogIndpbiIKKyAgICB9CisgIF0sCisgICJidWlsZGVycyI6IFsKKyAgICB7CisgICAgICAi
bmFtZSI6ICJTdHlsZS1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiU3R5bGVGYWN0b3J5IiwKKyAg
ICAgICJwbGF0Zm9ybSI6ICIqIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsid2Via2l0LW1pc2Mi
XQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR1RLLVdlYmtpdDItRVdTIiwKKyAgICAg
ICJmYWN0b3J5IjogIkdUS0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIsCisgICAg
ICAid29ya2VybmFtZXMiOiBbInRhbnR5LWd0ay13azItZXdzIiwgImx0aWx2ZS1ndGstd2syLWV3
cyJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJpT1MtMTEtRVdTIiwKKyAgICAgICJm
YWN0b3J5IjogImlPU0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMSIsCisgICAg
ICAid29ya2VybmFtZXMiOiBbImV3czEwOCIsICJld3MxMDkiXQorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiaU9TLTExLVNpbXVsYXRvci1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiaU9T
U2ltdWxhdG9yRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIs
CisgICAgICAid29ya2VybmFtZXMiOiBbImV3czEyMyIsICJld3MxMjQiLCAiZXdzMTI1IiwgImV3
czEyNiJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFz
ZS1XSzEtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIk1hY1dLMUZhY3RvcnkiLAorICAgICAgInBs
YXRmb3JtIjogIm1hYy1zaWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIs
CisgICAgICAid29ya2VybmFtZXMiOiBbImV3czEwMCIsICJld3MxMDEiLCAiZXdzMTAyIiwgImV3
czEwMyJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFz
ZS1XSzItRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIk1hY1dLMkZhY3RvcnkiLAorICAgICAgInBs
YXRmb3JtIjogIm1hYy1zaWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIs
CisgICAgICAid29ya2VybmFtZXMiOiBbImV3czEwNCIsICJld3MxMDUiLCAiZXdzMTA2IiwgImV3
czEwNyJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtRGVidWct
V0sxLUVXUyIsCisgICAgICAiZmFjdG9yeSI6ICJNYWNXSzFGYWN0b3J5IiwKKyAgICAgICJwbGF0
Zm9ybSI6ICJtYWMtc2llcnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIkRlYnVnIiwKKyAg
ICAgICJ3b3JrZXJuYW1lcyI6IFsiZXdzMTEyIiwgImV3czExMyIsICJld3MxMTQiLCAiZXdzMTE1
IiwgImV3czExNiJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1IaWdoLVNp
ZXJyYS1SZWxlYXNlLTMyYml0LVdLMi1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiTWFjV0syRmFj
dG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLWhpZ2gtc2llcnJhIiwKKyAgICAgICJjb25m
aWd1cmF0aW9uIjogIlJlbGVhc2UiLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJld3MxMTgiLCAi
ZXdzMTE5IiwgImV3czEyMCJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJXaW5kb3dz
LUVXUyIsCisgICAgICAiZmFjdG9yeSI6ICJXaW5kb3dzRmFjdG9yeSIsCisgICAgICAicGxhdGZv
cm0iOiAid2luIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsiZXdzMjAwIiwgImV3czIwMSIsICJl
d3MyMDIiLCAiZXdzMjAzIiwgImV3czIwNCIsICJld3MyMDUiLCAiZXdzMjA2IiwgImV3czIwNyIs
ICJld3MyMDgiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2luQ2Fpcm8tRVdTIiwK
KyAgICAgICJmYWN0b3J5IjogIldpbkNhaXJvRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAi
d2luY2Fpcm8iLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJ3aW5jYWlyby1ld3MtMDAxIiwgIndp
bmNhaXJvLWV3cy0wMDIiLCAid2luY2Fpcm8tZXdzLTAwMyIsICJ3aW5jYWlyby1ld3MtMDA0Il0K
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIldQRS1FV1MiLAorICAgICAgImZhY3Rvcnki
OiAiV1BFRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAid3BlIiwKKyAgICAgICJ3b3JrZXJu
YW1lcyI6IFsiaWdhbGlhLXdwZS1ld3MiLCAiYXBlcmV6LXdwZS1nY2M1LWV3cyJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJKU0MtdGVzdHMtRVdTIiwKKyAgICAgICJmYWN0b3J5Ijog
IkpTQ1Rlc3RzRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAiKiIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEyNyIsICJld3MxMjgiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiQmluZGluZ3MtdGVzdHMtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIkJpbmRpbmdzRmFjdG9y
eSIsCisgICAgICAicGxhdGZvcm0iOiAiKiIsCisgICAgICAid29ya2VybmFtZXMiOiBbIndlYmtp
dC1taXNjIl0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIldlYmtpdHB5LXRlc3RzLUVX
UyIsCisgICAgICAiZmFjdG9yeSI6ICJXZWJraXRweUZhY3RvcnkiLAorICAgICAgInBsYXRmb3Jt
IjogIioiLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJ3ZWJraXQtbWlzYyJdCisgICAgfQorICBd
LAorICAic2NoZWR1bGVycyI6IFsKKyAgICB7CisgICAgICAidHlwZSI6ICJBbnlCcmFuY2hTY2hl
ZHVsZXIiLAorICAgICAgIm5hbWUiOiAibWlzYy10cmlnZ2VyIiwKKyAgICAgICJ0cmVlU3RhYmxl
VGltZXIiOiAwLAorICAgICAgImJ1aWxkZXJOYW1lcyI6IFsiU3R5bGUtRVdTIiwgIkpTQy10ZXN0
cy1FV1MiLCAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0sxLUVXUyIsICJHVEstV2Via2l0Mi1FV1Mi
LCAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0syLUVXUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICJtYWNPUy1IaWdoLVNpZXJyYS1SZWxlYXNlLTMyYml0LVdLMi1FV1MiLCAiV1BFLUVXUyIsICJX
aW5kb3dzLUVXUyIsICJpT1MtMTEtRVdTIiwgIldpbkNhaXJvLUVXUyIsICJpT1MtMTEtU2ltdWxh
dG9yLUVXUyIsCisgICAgICAgICAgICAgICAgICAgICAgICJXZWJraXRweS10ZXN0cy1FV1MiLCAi
bWFjT1MtU2llcnJhLURlYnVnLVdLMS1FV1MiLCAiQmluZGluZ3MtdGVzdHMtRVdTIl0KKyAgICB9
CisgIF0KK30KSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3Jp
ZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2Zh
Y3Rvcmllcy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YnVpbGQvZmFjdG9yaWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKK2Zyb20g
YnVpbGRib3QucHJvY2VzcyBpbXBvcnQgZmFjdG9yeQorCisKK2NsYXNzIFN0eWxlRmFjdG9yeShm
YWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIEdUS0ZhY3RvcnkoZmFj
dG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBpT1NGYWN0b3J5KGZhY3Rv
cnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgaU9TU2ltdWxhdG9yRmFjdG9y
eShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIE1hY1dLMUZhY3Rv
cnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBNYWNXSzJGYWN0
b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2luZG93c0Zh
Y3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXaW5DYWly
b0ZhY3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXUEVG
YWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgSlNDVGVz
dHNGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgQmlu
ZGluZ3NGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3Mg
V2Via2l0cHlGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCkluZGV4OiBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZp
Zy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBAQAoraW1wb3J0IGpzb24KK2ltcG9y
dCByZQorCitmcm9tIGJ1aWxkYm90LnNjaGVkdWxlciBpbXBvcnQgQW55QnJhbmNoU2NoZWR1bGVy
LCBQZXJpb2RpYywgRGVwZW5kZW50LCBUcmlnZ2VyYWJsZSwgTmlnaHRseQorZnJvbSBidWlsZGJv
dC53b3JrZXIgaW1wb3J0IFdvcmtlcgorZnJvbSBidWlsZGJvdC51dGlsIGltcG9ydCBpZGVudGlm
aWVycyBhcyBidWlsZGJvdF9pZGVudGlmaWVycworCitmcm9tIGZhY3RvcmllcyBpbXBvcnQgKgor
CitCVUlMREVSX05BTUVfTEVOR1RIX0xJTUlUID0gNzAKK1NURVBfTkFNRV9MRU5HVEhfTElNSVQg
PSA1MAorCisKK2RlZiBsb2FkQnVpbGRlckNvbmZpZyhjKToKKyAgICBjb25maWcgPSBqc29uLmxv
YWQob3BlbignY29uZmlnLmpzb24nKSkKKyAgICBwYXNzd29yZHMgPSBqc29uLmxvYWQob3Blbign
cGFzc3dvcmRzLmpzb24nKSkKKyAgICBjaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3Rl
bmN5KGNvbmZpZ1snd29ya2VycyddLCBjb25maWdbJ2J1aWxkZXJzJ10pCisKKyAgICBjWyd3b3Jr
ZXJzJ10gPSBbV29ya2VyKHdvcmtlclsnbmFtZSddLCBwYXNzd29yZHMuZ2V0KHdvcmtlclsnbmFt
ZSddLCAidGJkIikpIGZvciB3b3JrZXIgaW4gY29uZmlnWyd3b3JrZXJzJ11dCisgICAgY1snYnVp
bGRlcnMnXSA9IFtdCisgICAgZm9yIGJ1aWxkZXIgaW4gY29uZmlnWydidWlsZGVycyddOgorICAg
ICAgICBmYWN0b3J5ID0gZ2xvYmFscygpW2J1aWxkZXJbImZhY3RvcnkiXV0KKyAgICAgICAgYnVp
bGRlclsiZmFjdG9yeSJdID0gZmFjdG9yeSgpCisgICAgICAgIGJ1aWxkZXIucG9wKCdwbGF0Zm9y
bScpCisgICAgICAgIGlmIGJ1aWxkZXIuZ2V0KCdjb25maWd1cmF0aW9uJyk6CisgICAgICAgICAg
ICBidWlsZGVyLnBvcCgnY29uZmlndXJhdGlvbicpCisgICAgICAgIGJ1aWxkZXJbJ3RhZ3MnXSA9
IGdldFRhZ3NGb3JCdWlsZGVyKGJ1aWxkZXIpCisgICAgICAgIGNbJ2J1aWxkZXJzJ10uYXBwZW5k
KGJ1aWxkZXIpCisKKyAgICBjWydzY2hlZHVsZXJzJ10gPSBbXQorICAgIGZvciBzY2hlZHVsZXIg
aW4gY29uZmlnWydzY2hlZHVsZXJzJ106CisgICAgICAgIGtscyA9IGdsb2JhbHMoKVtzY2hlZHVs
ZXIucG9wKCd0eXBlJyldCisgICAgICAgIHNjaGVkdWxlciA9IGRpY3QobWFwKGxhbWJkYSBrZXlf
dmFsdWVfcGFpcjogKHN0cihrZXlfdmFsdWVfcGFpclswXSksIGtleV92YWx1ZV9wYWlyWzFdKSwg
c2NoZWR1bGVyLml0ZW1zKCkpKQorICAgICAgICBjWydzY2hlZHVsZXJzJ10uYXBwZW5kKGtscygq
KnNjaGVkdWxlcikpCisKKworZGVmIGNoZWNrVmFsaWRXb3JrZXIod29ya2VyKToKKyAgICBpZiBu
b3Qgd29ya2VyLmdldCgnbmFtZScpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dvcmtlciAi
e30iIGRvZXMgbm90IGhhdmUgbmFtZSBkZWZpbmVkLicuZm9ybWF0KHdvcmtlcikpCisKKyAgICBp
ZiBub3Qgd29ya2VyLmdldCgncGxhdGZvcm0nKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdX
b3JrZXIgInt9IiBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRlZmluZWQuJy5mb3JtYXQod29ya2Vy
WyduYW1lJ10pKQorCisKK2RlZiBjaGVja1ZhbGlkQnVpbGRlcihidWlsZGVyKToKKyAgICBpZiBu
b3QgYnVpbGRlci5nZXQoJ25hbWUnKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVy
ICJ7fSIgZG9lcyBub3QgaGF2ZSBuYW1lIGRlZmluZWQuJy5mb3JtYXQoYnVpbGRlcikpCisKKyAg
ICBpZiBub3QgYnVpbGRib3RfaWRlbnRpZmllcnMuaWRlbnRfcmUubWF0Y2goYnVpbGRlclsnbmFt
ZSddKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVyIG5hbWUgInt9IiBpcyBub3Qg
YSB2YWxpZCBidWlsZGJvdCBpZGVudGlmaWVyLicuZm9ybWF0KGJ1aWxkZXJbJ25hbWUnXSkpCisK
KyAgICBpZiBsZW4oYnVpbGRlclsnbmFtZSddKSA+IEJVSUxERVJfTkFNRV9MRU5HVEhfTElNSVQ6
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciBuYW1lICJ7fSIgaXMgbG9uZ2VyIHRo
YW4gbWF4aW11bSBhbGxvd2VkIGJ5IEJ1aWxkYm90ICh7fSBjaGFyYWN0ZXJzKS4nLmZvcm1hdChi
dWlsZGVyWyduYW1lJ10sIEJVSUxERVJfTkFNRV9MRU5HVEhfTElNSVQpKQorCisgICAgaWYgJ2Nv
bmZpZ3VyYXRpb24nIGluIGJ1aWxkZXIgYW5kIGJ1aWxkZXJbJ2NvbmZpZ3VyYXRpb24nXSBub3Qg
aW4gWydEZWJ1ZycsICdQcm9kdWN0aW9uJywgJ1JlbGVhc2UnXToKKyAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCJJbnZhbGlkIGNvbmZpZ3VyYXRpb246IHt9IGZvciBidWlsZGVyOiB7fSIuZm9ybWF0
KGJ1aWxkZXIuZ2V0KCdjb25maWd1cmF0aW9uJyksIGJ1aWxkZXIuZ2V0KCduYW1lJykpKQorCisg
ICAgaWYgbm90IGJ1aWxkZXIuZ2V0KCdmYWN0b3J5Jyk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignQnVpbGRlciAie30iIGRvZXMgbm90IGhhdmUgZmFjdG9yeSBkZWZpbmVkLicuZm9ybWF0KGJ1
aWxkZXJbJ25hbWUnXSkpCisKKyAgICBpZiBub3QgYnVpbGRlci5nZXQoJ3BsYXRmb3JtJyk6Cisg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciAie30iIGRvZXMgbm90IGhhdmUgcGxhdGZv
cm0gZGVmaW5lZC4nLmZvcm1hdChidWlsZGVyWyduYW1lJ10pKQorCisKK2RlZiBjaGVja1dvcmtl
cnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5KHdvcmtlcnMsIGJ1aWxkZXJzKToKKyAgICBkZWYg
X2ZpbmRfd29ya2VyX3dpdGhfbmFtZSh3b3JrZXJzLCB3b3JrZXJfbmFtZSk6CisgICAgICAgIGZv
ciB3b3JrZXIgaW4gd29ya2VyczoKKyAgICAgICAgICAgIGlmIHdvcmtlclsnbmFtZSddID09IHdv
cmtlcl9uYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiB3b3JrZXIKKyAgICAgICAgcmV0dXJu
IE5vbmUKKworICAgIGZvciB3b3JrZXIgaW4gd29ya2VyczoKKyAgICAgICAgY2hlY2tWYWxpZFdv
cmtlcih3b3JrZXIpCisKKyAgICBmb3IgYnVpbGRlciBpbiBidWlsZGVyczoKKyAgICAgICAgY2hl
Y2tWYWxpZEJ1aWxkZXIoYnVpbGRlcikKKyAgICAgICAgZm9yIHdvcmtlcl9uYW1lIGluIGJ1aWxk
ZXJbJ3dvcmtlcm5hbWVzJ106CisgICAgICAgICAgICB3b3JrZXIgPSBfZmluZF93b3JrZXJfd2l0
aF9uYW1lKHdvcmtlcnMsIHdvcmtlcl9uYW1lKQorICAgICAgICAgICAgaWYgbm90IHdvcmtlcjoK
KyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgInt9IiBoYXMgd29ya2Vy
ICJ7fSIsIHdoaWNoIGlzIG5vdCBkZWZpbmVkIGluIHdvcmtlcnMgbGlzdCEnLmZvcm1hdChidWls
ZGVyWyduYW1lJ10sIHdvcmtlcl9uYW1lKSkKKworICAgICAgICAgICAgaWYgd29ya2VyWydwbGF0
Zm9ybSddICE9IGJ1aWxkZXJbJ3BsYXRmb3JtJ106CisgICAgICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdCdWlsZGVyICJ7MH0iIGlzIGZvciBwbGF0Zm9ybSAiezF9IiwgYnV0IGhhcyB3b3Jr
ZXIgInsyfSIgZm9yIHBsYXRmb3JtICJ7M30iIScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAg
ICBidWlsZGVyWyduYW1lJ10sIGJ1aWxkZXJbJ3BsYXRmb3JtJ10sIHdvcmtlclsnbmFtZSddLCB3
b3JrZXJbJ3BsYXRmb3JtJ10pKQorCisKK2RlZiBnZXRCbGFja0xpc3RlZFRhZ3MoKToKKyAgICAi
IiIKKyAgICBXZSBtYWludGFpbiBhIGJsYWNrbGlzdCBvZiB3b3JkcyB3aGljaCB3ZSBkbyBub3Qg
d2FudCB0byBkaXNwbGF5IGFzIHRhZyBpbiBidWlsZGJvdC4KKyAgICBXZSBnZW5lcmF0ZSBhIGxp
c3Qgb2YgdGFncyBieSBzcGxpdHRpbmcgdGhlIGJ1aWxkZXIgbmFtZS4gV2UgZG8gbm90IHdhbnQg
Y2VydGFpbiB3b3JkcyBhcyB0YWcuCisgICAgRm9yIGUuZy4gd2UgZG9uJ3Qgd2FudCAnMTEnYXMg
dGFnIGZvciBidWlsZGVyIGlPUy0xMS1TaW11bGF0b3ItRVdTCisgICAgIiIiCisgICAgdGFnc19i
bGFja2xpc3QgPSBbc3RyKGkpIGZvciBpIGluIHJhbmdlKDAsIDIwKV0KKyAgICB0YWdzX2JsYWNr
bGlzdC5leHRlbmQoWydFV1MnLCAnVHJ5Qm90J10pCisgICAgcmV0dXJuIHRhZ3NfYmxhY2tsaXN0
CisKKworZGVmIGdldFZhbGlkVGFncyh0YWdzKToKKyAgICByZXR1cm4gbGlzdChzZXQodGFncykg
LSBzZXQoZ2V0QmxhY2tMaXN0ZWRUYWdzKCkpKQorCisKK2RlZiBnZXRUYWdzRm9yQnVpbGRlcihi
dWlsZGVyKToKKyAgICBrZXl3b3JkcyA9IGZpbHRlcihOb25lLCByZS5zcGxpdCgiWywgXC1fOigp
XSsiLCBzdHIoYnVpbGRlclsnbmFtZSddKSkpCisgICAgcmV0dXJuIGdldFZhbGlkVGFncyhrZXl3
b3JkcykKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9tYXN0ZXIuY2Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9tYXN0ZXIu
Y2ZnCShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9t
YXN0ZXIuY2ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2ltcG9ydCBsb2FkQ29u
ZmlnCisKKworYyA9IEJ1aWxkbWFzdGVyQ29uZmlnID0ge30KKworY1snd3d3J10gPSBkaWN0KHBv
cnQ9ODAxMCwKKyAgICAgICAgICAgICAgICBwbHVnaW5zPWRpY3Qod2F0ZXJmYWxsX3ZpZXc9e30s
IGNvbnNvbGVfdmlldz17fSkpCisKK2NbJ3d3dyddWyd1aV9kZWZhdWx0X2NvbmZpZyddID0geyAK
KyAgICAnQnVpbGRlcnMuc2hvd193b3JrZXJzX25hbWUnOiBUcnVlLAorICAgICdCdWlsZGVycy5i
dWlsZEZldGNoTGltaXQnOiAxMDAwLAorICAgICdXb3JrZXJzLnNob3dXb3JrZXJCdWlsZGVycyc6
IFRydWUsCit9CisKK2NbJ3Byb3RvY29scyddID0geydwYic6IHsncG9ydCc6IDk5ODl9fQorCitj
Wydwcm9qZWN0TmFtZSddID0gJ1dlYmtpdCBFV1MnCitjWydwcm9qZWN0VVJMJ10gPSAnaHR0cHM6
Ly9ld3MtYnVpbGQud2Via2l0Lm9yZy8nCitjWydidWlsZGJvdFVSTCddID0gJ2h0dHBzOi8vZXdz
LWJ1aWxkLndlYmtpdC5vcmcvJworCitjWydidWlsZGJvdE5ldFVzYWdlRGF0YSddID0gTm9uZQor
Citsb2FkQ29uZmlnLmxvYWRCdWlsZGVyQ29uZmlnKGMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341011</attachid>
            <date>2018-05-22 13:23:10 -0700</date>
            <delta_ts>2018-05-23 10:07:20 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-buildbot-config-v2.patch</filename>
            <type>text/plain</type>
            <size>25590</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMjA3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA1LTIyICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQnVpbGRib3QgY29uZmlndXJhdGlvbiBmb3IgT3BlbnNvdXJjZSBF
V1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uOiBBZGRlZCwgY29uZmlnIGZpbGUu
CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weTogQWRk
ZWQsIGJhc2ljIHRlbXBsYXRlIGZvciBmYWN0b3JpZXMuCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWcucHk6IEFkZGVkLgorICAgICAgICAobG9hZEJ1aWxk
ZXJDb25maWcpOiBMb2FkcyB0aGUgY29uZmlndXJhdGlvbi4KKyAgICAgICAgKGNoZWNrVmFsaWRX
b3JrZXIpOiBDaGVja3MgaWYgdGhlIHdvcmtlciBpcyB2YWxpZC4KKyAgICAgICAgKGNoZWNrVmFs
aWRCdWlsZGVyKTogQ2hlY2tzIGlmIHRoZSBidWlsZGVyIGlzIHZhbGlkLgorICAgICAgICAoY2hl
Y2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeSk6IENoZWNrIGlmIHdvcmtlcnMgYW5k
IGJ1aWxkZXJzIGFyZSBjb25zaXN0ZW50LgorICAgICAgICAoY2hlY2tXb3JrZXJzQW5kQnVpbGRl
cnNGb3JDb25zaXN0ZW5jeS5fZmluZF93b3JrZXJfd2l0aF9uYW1lKToKKyAgICAgICAgKGdldEJs
YWNrTGlzdGVkVGFncyk6IFJldHVybnMgYSBsaXN0IG9mIGtleXdvcmRzIHdoaWNoIHNob3VsZCBu
b3QgYmUgbGlzdGVkIGFzIHRhZ3MuCisgICAgICAgIChnZXRWYWxpZFRhZ3MpOiBSZXR1cm5zIGEg
bGlzdCBvZiB2YWxpZCB0YWdzLgorICAgICAgICAoZ2V0VGFnc0ZvckJ1aWxkZXIpOiBSZXR1cm4g
YSBsaXN0IG9mIHRhZ3MgZm9yIGdpdmVuIGJ1aWxkZXIuCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWdfdW5pdHRlc3QucHk6IHVuaXQtdGVzdHMgZm9yIGxv
YWRDb25maWcucHkuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL21hc3Rl
ci5jZmc6IENvbmZpZ3VyYXRpb24gZm9yIGJ1aWxkYm90LgorCiAyMDE4LTA1LTIyICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZGVkIG15
c2VsZiBhcyBhIFdlYktpdCBjb21taXR0ZXIuCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9ld3MtYnVpbGQvY29uZmlnLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uCShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2V3cy1idWlsZC9jb25maWcuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI4MCBAQAoreworICAid29ya2VycyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJ3ZWJr
aXQtbWlzYyIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lIjogInRhbnR5LWd0ay13azItZXdzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJndGsiCisgICAg
fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJsdGlsdmUtZ3RrLXdrMi1ld3MiLAorICAgICAgInBs
YXRmb3JtIjogImd0ayIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImlnYWxpYS13cGUt
ZXdzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3cGUiCisgICAgfSwKKyAgICB7CisgICAgICAibmFt
ZSI6ICJhcGVyZXotd3BlLWdjYzUtZXdzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3cGUiCisgICAg
fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJhcGVyZXotd3BlLWdjYzYtZXdzIiwKKyAgICAgICJw
bGF0Zm9ybSI6ICJ3cGUiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ3aW5jYWlyby1l
d3MtMDAxIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW5jYWlybyIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogIndpbmNhaXJvLWV3cy0wMDIiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNh
aXJvIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAid2luY2Fpcm8tZXdzLTAwMyIsCisg
ICAgICAicGxhdGZvcm0iOiAid2luY2Fpcm8iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6
ICJ3aW5jYWlyby1ld3MtMDA0IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW5jYWlybyIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwMCIsCisgICAgICAicGxhdGZvcm0iOiAibWFj
LXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwMSIsCisgICAgICAi
cGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3
czEwMiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czEwMyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAg
ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwNCIsCisgICAgICAicGxhdGZvcm0iOiAi
bWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwNSIsCisgICAg
ICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
ImV3czEwNiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogImV3czEwNyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEwOCIsCisgICAgICAicGxhdGZvcm0i
OiAiaW9zLTExIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA5IiwKKyAgICAg
ICJwbGF0Zm9ybSI6ICJpb3MtMTEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3Mx
MTIiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJld3MxMTMiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAg
fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTQiLAorICAgICAgInBsYXRmb3JtIjogIm1h
Yy1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTUiLAorICAgICAg
InBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJl
d3MxMTYiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisgICAgfSwKKyAgICB7Cisg
ICAgICAibmFtZSI6ICJld3MxMTciLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1zaWVycmEiCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMTgiLAorICAgICAgInBsYXRmb3JtIjog
Im1hYy1oaWdoLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExOSIs
CisgICAgICAicGxhdGZvcm0iOiAibWFjLWhpZ2gtc2llcnJhIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiZXdzMTIwIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtaGlnaC1zaWVycmEi
CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMjMiLAorICAgICAgInBsYXRmb3Jt
IjogImlvcy0xMS1zaW11bGF0b3IiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3Mx
MjQiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMS1zaW11bGF0b3IiCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJld3MxMjUiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMS1zaW11
bGF0b3IiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMjYiLAorICAgICAgInBs
YXRmb3JtIjogImlvcy0xMS1zaW11bGF0b3IiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6
ICJld3MxMjciLAorICAgICAgInBsYXRmb3JtIjogIioiCisgICAgfSwKKyAgICB7CisgICAgICAi
bmFtZSI6ICJld3MxMjgiLAorICAgICAgInBsYXRmb3JtIjogIioiCisgICAgfSwKKyAgICB7Cisg
ICAgICAibmFtZSI6ICJld3MyMDAiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lIjogImV3czIwMSIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMjAyIiwKKyAgICAgICJwbGF0Zm9ybSI6
ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MyMDMiLAorICAgICAgInBs
YXRmb3JtIjogIndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czIwNCIsCisg
ICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdz
MjA1IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFt
ZSI6ICJld3MyMDYiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czIwNyIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisg
ICAgeworICAgICAgIm5hbWUiOiAiZXdzMjA4IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisg
ICAgfQorICBdLAorICAiYnVpbGRlcnMiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiU3R5bGUt
RVdTIiwKKyAgICAgICJmYWN0b3J5IjogIlN0eWxlRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0i
OiAiKiIsCisgICAgICAid29ya2VybmFtZXMiOiBbIndlYmtpdC1taXNjIl0KKyAgICB9LAorICAg
IHsKKyAgICAgICJuYW1lIjogIkdUSy1XZWJraXQyLUVXUyIsCisgICAgICAiZmFjdG9yeSI6ICJH
VEtGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJndGsiLAorICAgICAgIndvcmtlcm5hbWVz
IjogWyJ0YW50eS1ndGstd2syLWV3cyIsICJsdGlsdmUtZ3RrLXdrMi1ld3MiXQorICAgIH0sCisg
ICAgeworICAgICAgIm5hbWUiOiAiaU9TLTExLUVXUyIsCisgICAgICAiZmFjdG9yeSI6ICJpT1NG
YWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJpb3MtMTEiLAorICAgICAgIndvcmtlcm5hbWVz
IjogWyJld3MxMDgiLCAiZXdzMTA5Il0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImlP
Uy0xMS1TaW11bGF0b3ItRVdTIiwKKyAgICAgICJmYWN0b3J5IjogImlPU1NpbXVsYXRvckZhY3Rv
cnkiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMS1zaW11bGF0b3IiLAorICAgICAgIndvcmtl
cm5hbWVzIjogWyJld3MxMjMiLCAiZXdzMTI0IiwgImV3czEyNSIsICJld3MxMjYiXQorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0sxLUVXUyIsCisg
ICAgICAiZmFjdG9yeSI6ICJNYWNXSzFGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMt
c2llcnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIlJlbGVhc2UiLAorICAgICAgIndvcmtl
cm5hbWVzIjogWyJld3MxMDAiLCAiZXdzMTAxIiwgImV3czEwMiIsICJld3MxMDMiXQorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0syLUVXUyIsCisg
ICAgICAiZmFjdG9yeSI6ICJNYWNXSzJGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMt
c2llcnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIlJlbGVhc2UiLAorICAgICAgIndvcmtl
cm5hbWVzIjogWyJld3MxMDQiLCAiZXdzMTA1IiwgImV3czEwNiIsICJld3MxMDciXQorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAibWFjT1MtU2llcnJhLURlYnVnLVdLMS1FV1MiLAorICAg
ICAgImZhY3RvcnkiOiAiTWFjV0sxRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNp
ZXJyYSIsCisgICAgICAiY29uZmlndXJhdGlvbiI6ICJEZWJ1ZyIsCisgICAgICAid29ya2VybmFt
ZXMiOiBbImV3czExMiIsICJld3MxMTMiLCAiZXdzMTE0IiwgImV3czExNSIsICJld3MxMTYiXQor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAibWFjT1MtSGlnaC1TaWVycmEtUmVsZWFzZS0z
MmJpdC1XSzItRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIk1hY1dLMkZhY3RvcnkiLAorICAgICAg
InBsYXRmb3JtIjogIm1hYy1oaWdoLXNpZXJyYSIsCisgICAgICAiY29uZmlndXJhdGlvbiI6ICJS
ZWxlYXNlIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsiZXdzMTE4IiwgImV3czExOSIsICJld3Mx
MjAiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2luZG93cy1FV1MiLAorICAgICAg
ImZhY3RvcnkiOiAiV2luZG93c0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIsCisg
ICAgICAid29ya2VybmFtZXMiOiBbImV3czIwMCIsICJld3MyMDEiLCAiZXdzMjAyIiwgImV3czIw
MyIsICJld3MyMDQiLCAiZXdzMjA1IiwgImV3czIwNiIsICJld3MyMDciLCAiZXdzMjA4Il0KKyAg
ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIldpbkNhaXJvLUVXUyIsCisgICAgICAiZmFjdG9y
eSI6ICJXaW5DYWlyb0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNhaXJvIiwKKyAg
ICAgICJ3b3JrZXJuYW1lcyI6IFsid2luY2Fpcm8tZXdzLTAwMSIsICJ3aW5jYWlyby1ld3MtMDAy
IiwgIndpbmNhaXJvLWV3cy0wMDMiLCAid2luY2Fpcm8tZXdzLTAwNCJdCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJXUEUtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIldQRUZhY3Rvcnki
LAorICAgICAgInBsYXRmb3JtIjogIndwZSIsCisgICAgICAid29ya2VybmFtZXMiOiBbImlnYWxp
YS13cGUtZXdzIiwgImFwZXJlei13cGUtZ2NjNS1ld3MiLCAiYXBlcmV6LXdwZS1nY2M2LWV3cyJd
CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJKU0MtdGVzdHMtRVdTIiwKKyAgICAgICJm
YWN0b3J5IjogIkpTQ1Rlc3RzRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAiKiIsCisgICAg
ICAid29ya2VybmFtZXMiOiBbImV3czEyNyIsICJld3MxMjgiXQorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiQmluZGluZ3MtdGVzdHMtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIkJpbmRp
bmdzRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAiKiIsCisgICAgICAid29ya2VybmFtZXMi
OiBbIndlYmtpdC1taXNjIl0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIldlYmtpdHB5
LXRlc3RzLUVXUyIsCisgICAgICAiZmFjdG9yeSI6ICJXZWJraXRweUZhY3RvcnkiLAorICAgICAg
InBsYXRmb3JtIjogIioiLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJ3ZWJraXQtbWlzYyJdCisg
ICAgfQorICBdLAorICAic2NoZWR1bGVycyI6IFsKKyAgICB7CisgICAgICAidHlwZSI6ICJBbnlC
cmFuY2hTY2hlZHVsZXIiLAorICAgICAgIm5hbWUiOiAibWlzYy10cmlnZ2VyIiwKKyAgICAgICJ0
cmVlU3RhYmxlVGltZXIiOiAwLAorICAgICAgImJ1aWxkZXJOYW1lcyI6IFsiU3R5bGUtRVdTIiwg
IkpTQy10ZXN0cy1FV1MiLCAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0sxLUVXUyIsICJHVEstV2Vi
a2l0Mi1FV1MiLCAibWFjT1MtU2llcnJhLVJlbGVhc2UtV0syLUVXUyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICJtYWNPUy1IaWdoLVNpZXJyYS1SZWxlYXNlLTMyYml0LVdLMi1FV1MiLCAiV1BF
LUVXUyIsICJXaW5kb3dzLUVXUyIsICJpT1MtMTEtRVdTIiwgIldpbkNhaXJvLUVXUyIsICJpT1Mt
MTEtU2ltdWxhdG9yLUVXUyIsCisgICAgICAgICAgICAgICAgICAgICAgICJXZWJraXRweS10ZXN0
cy1FV1MiLCAibWFjT1MtU2llcnJhLURlYnVnLVdLMS1FV1MiLCAiQmluZGluZ3MtdGVzdHMtRVdT
Il0KKyAgICB9CisgIF0KK30KSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWls
ZC9mYWN0b3JpZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdz
LWJ1aWxkL2ZhY3Rvcmllcy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitmcm9tIGJ1aWxk
Ym90LnByb2Nlc3MgaW1wb3J0IGZhY3RvcnkKKworCitjbGFzcyBTdHlsZUZhY3RvcnkoZmFjdG9y
eS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBHVEtGYWN0b3J5KGZhY3Rvcnku
QnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgaU9TRmFjdG9yeShmYWN0b3J5LkJ1
aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIGlPU1NpbXVsYXRvckZhY3RvcnkoZmFj
dG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBNYWNXSzFGYWN0b3J5KGZh
Y3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgTWFjV0syRmFjdG9yeShm
YWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIFdpbmRvd3NGYWN0b3J5
KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2luQ2Fpcm9GYWN0
b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV1BFRmFjdG9y
eShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIEpTQ1Rlc3RzRmFj
dG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIEJpbmRpbmdz
RmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIFdlYmtp
dHB5RmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcwpJbmRleDogVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWcucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWcucHkJKG5vbmV4aXN0
ZW50KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWcucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQganNvbgoraW1wb3J0IHJlCisKK2Zyb20gYnVpbGRi
b3Quc2NoZWR1bGVyIGltcG9ydCBBbnlCcmFuY2hTY2hlZHVsZXIsIFBlcmlvZGljLCBEZXBlbmRl
bnQsIFRyaWdnZXJhYmxlLCBOaWdodGx5Citmcm9tIGJ1aWxkYm90LndvcmtlciBpbXBvcnQgV29y
a2VyCitmcm9tIGJ1aWxkYm90LnV0aWwgaW1wb3J0IGlkZW50aWZpZXJzIGFzIGJ1aWxkYm90X2lk
ZW50aWZpZXJzCisKK2Zyb20gZmFjdG9yaWVzIGltcG9ydCAqCisKK0JVSUxERVJfTkFNRV9MRU5H
VEhfTElNSVQgPSA3MAorU1RFUF9OQU1FX0xFTkdUSF9MSU1JVCA9IDUwCisKKworZGVmIGxvYWRC
dWlsZGVyQ29uZmlnKGMpOgorICAgIGNvbmZpZyA9IGpzb24ubG9hZChvcGVuKCdjb25maWcuanNv
bicpKQorICAgIHBhc3N3b3JkcyA9IGpzb24ubG9hZChvcGVuKCdwYXNzd29yZHMuanNvbicpKQor
ICAgIGNoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9yQ29uc2lzdGVuY3koY29uZmlnWyd3b3JrZXJz
J10sIGNvbmZpZ1snYnVpbGRlcnMnXSkKKworICAgIGNbJ3dvcmtlcnMnXSA9IFtXb3JrZXIod29y
a2VyWyduYW1lJ10sIHBhc3N3b3Jkcy5nZXQod29ya2VyWyduYW1lJ10sICdwYXNzd29yZCcpKSBm
b3Igd29ya2VyIGluIGNvbmZpZ1snd29ya2VycyddXQorICAgIGNbJ2J1aWxkZXJzJ10gPSBbXQor
ICAgIGZvciBidWlsZGVyIGluIGNvbmZpZ1snYnVpbGRlcnMnXToKKyAgICAgICAgYnVpbGRlclsn
dGFncyddID0gZ2V0VGFnc0ZvckJ1aWxkZXIoYnVpbGRlcikKKyAgICAgICAgZmFjdG9yeSA9IGds
b2JhbHMoKVtidWlsZGVyWyJmYWN0b3J5Il1dCisgICAgICAgIGJ1aWxkZXJbImZhY3RvcnkiXSA9
IGZhY3RvcnkoKQorICAgICAgICBidWlsZGVyLnBvcCgncGxhdGZvcm0nKQorICAgICAgICBpZiBi
dWlsZGVyLmdldCgnY29uZmlndXJhdGlvbicpOgorICAgICAgICAgICAgYnVpbGRlci5wb3AoJ2Nv
bmZpZ3VyYXRpb24nKQorICAgICAgICBjWydidWlsZGVycyddLmFwcGVuZChidWlsZGVyKQorCisg
ICAgY1snc2NoZWR1bGVycyddID0gW10KKyAgICBmb3Igc2NoZWR1bGVyIGluIGNvbmZpZ1snc2No
ZWR1bGVycyddOgorICAgICAgICBzY2hlZHVsZXJUeXBlID0gZ2xvYmFscygpW3NjaGVkdWxlci5w
b3AoJ3R5cGUnKV0KKyAgICAgICAgIyBQeXRob24gMi42IGNhbid0IGhhbmRsZSB1bmljb2RlIGtl
eXMgYXMga2V5d29yZCBhcmd1bWVudHM6CisgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9y
Zy9pc3N1ZTI2NDYuICBNb2Rlcm4gdmVyc2lvbnMgb2YganNvbiByZXR1cm4KKyAgICAgICAgIyB1
bmljb2RlIHN0cmluZ3MgZnJvbSBqc29uLmxvYWQsIHNvIHdlIG1hcCBhbGwga2V5cyB0byBzdHIg
b2JqZWN0cy4KKyAgICAgICAgc2NoZWR1bGVyID0gZGljdChtYXAobGFtYmRhIGtleV92YWx1ZV9w
YWlyOiAoc3RyKGtleV92YWx1ZV9wYWlyWzBdKSwga2V5X3ZhbHVlX3BhaXJbMV0pLCBzY2hlZHVs
ZXIuaXRlbXMoKSkpCisgICAgICAgIGNbJ3NjaGVkdWxlcnMnXS5hcHBlbmQoc2NoZWR1bGVyVHlw
ZSgqKnNjaGVkdWxlcikpCisKKworZGVmIGNoZWNrVmFsaWRXb3JrZXIod29ya2VyKToKKyAgICBp
ZiBub3Qgd29ya2VyOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dvcmtlciBpcyBOb25lIG9y
IEVtcHR5LicpCisKKyAgICBpZiBub3Qgd29ya2VyLmdldCgnbmFtZScpOgorICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ1dvcmtlciAie30iIGRvZXMgbm90IGhhdmUgbmFtZSBkZWZpbmVkLicuZm9y
bWF0KHdvcmtlcikpCisKKyAgICBpZiBub3Qgd29ya2VyLmdldCgncGxhdGZvcm0nKToKKyAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdXb3JrZXIgInt9IiBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRl
ZmluZWQuJy5mb3JtYXQod29ya2VyWyduYW1lJ10pKQorCisKK2RlZiBjaGVja1ZhbGlkQnVpbGRl
cihidWlsZGVyKToKKyAgICBpZiBub3QgYnVpbGRlcjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdCdWlsZGVyIGlzIE5vbmUgb3IgRW1wdHkuJykKKworICAgIGlmIG5vdCBidWlsZGVyLmdldCgn
bmFtZScpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgInt9IiBkb2VzIG5vdCBo
YXZlIG5hbWUgZGVmaW5lZC4nLmZvcm1hdChidWlsZGVyKSkKKworICAgIGlmIG5vdCBidWlsZGJv
dF9pZGVudGlmaWVycy5pZGVudF9yZS5tYXRjaChidWlsZGVyWyduYW1lJ10pOgorICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgbmFtZSAie30iIGlzIG5vdCBhIHZhbGlkIGJ1aWxkYm90
IGlkZW50aWZpZXIuJy5mb3JtYXQoYnVpbGRlclsnbmFtZSddKSkKKworICAgIGlmIGxlbihidWls
ZGVyWyduYW1lJ10pID4gQlVJTERFUl9OQU1FX0xFTkdUSF9MSU1JVDoKKyAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdCdWlsZGVyIG5hbWUgInt9IiBpcyBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93
ZWQgYnkgQnVpbGRib3QgKHt9IGNoYXJhY3RlcnMpLicuZm9ybWF0KGJ1aWxkZXJbJ25hbWUnXSwg
QlVJTERFUl9OQU1FX0xFTkdUSF9MSU1JVCkpCisKKyAgICBpZiAnY29uZmlndXJhdGlvbicgaW4g
YnVpbGRlciBhbmQgYnVpbGRlclsnY29uZmlndXJhdGlvbiddIG5vdCBpbiBbJ0RlYnVnJywgJ1By
b2R1Y3Rpb24nLCAnUmVsZWFzZSddOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIkludmFsaWQg
Y29uZmlndXJhdGlvbjoge30gZm9yIGJ1aWxkZXI6IHt9Ii5mb3JtYXQoYnVpbGRlci5nZXQoJ2Nv
bmZpZ3VyYXRpb24nKSwgYnVpbGRlci5nZXQoJ25hbWUnKSkpCisKKyAgICBpZiBub3QgYnVpbGRl
ci5nZXQoJ2ZhY3RvcnknKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVyICJ7fSIg
ZG9lcyBub3QgaGF2ZSBmYWN0b3J5IGRlZmluZWQuJy5mb3JtYXQoYnVpbGRlclsnbmFtZSddKSkK
KworICAgIGlmIG5vdCBidWlsZGVyLmdldCgncGxhdGZvcm0nKToKKyAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdCdWlsZGVyICJ7fSIgZG9lcyBub3QgaGF2ZSBwbGF0Zm9ybSBkZWZpbmVkLicuZm9y
bWF0KGJ1aWxkZXJbJ25hbWUnXSkpCisKKworZGVmIGNoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9y
Q29uc2lzdGVuY3kod29ya2VycywgYnVpbGRlcnMpOgorICAgIGRlZiBfZmluZF93b3JrZXJfd2l0
aF9uYW1lKHdvcmtlcnMsIHdvcmtlcl9uYW1lKToKKyAgICAgICAgZm9yIHdvcmtlciBpbiB3b3Jr
ZXJzOgorICAgICAgICAgICAgaWYgd29ya2VyWyduYW1lJ10gPT0gd29ya2VyX25hbWU6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHdvcmtlcgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZm9y
IHdvcmtlciBpbiB3b3JrZXJzOgorICAgICAgICBjaGVja1ZhbGlkV29ya2VyKHdvcmtlcikKKwor
ICAgIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzOgorICAgICAgICBjaGVja1ZhbGlkQnVpbGRlcihi
dWlsZGVyKQorICAgICAgICBmb3Igd29ya2VyX25hbWUgaW4gYnVpbGRlclsnd29ya2VybmFtZXMn
XToKKyAgICAgICAgICAgIHdvcmtlciA9IF9maW5kX3dvcmtlcl93aXRoX25hbWUod29ya2Vycywg
d29ya2VyX25hbWUpCisgICAgICAgICAgICBpZiB3b3JrZXIgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgInt9IiBoYXMgd29ya2VyICJ7fSIsIHdoaWNo
IGlzIG5vdCBkZWZpbmVkIGluIHdvcmtlcnMgbGlzdCEnLmZvcm1hdChidWlsZGVyWyduYW1lJ10s
IHdvcmtlcl9uYW1lKSkKKworICAgICAgICAgICAgaWYgd29ya2VyWydwbGF0Zm9ybSddICE9IGJ1
aWxkZXJbJ3BsYXRmb3JtJ106CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWls
ZGVyICJ7MH0iIGlzIGZvciBwbGF0Zm9ybSAiezF9IiwgYnV0IGhhcyB3b3JrZXIgInsyfSIgZm9y
IHBsYXRmb3JtICJ7M30iIScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBidWlsZGVyWydu
YW1lJ10sIGJ1aWxkZXJbJ3BsYXRmb3JtJ10sIHdvcmtlclsnbmFtZSddLCB3b3JrZXJbJ3BsYXRm
b3JtJ10pKQorCisKK2RlZiBnZXRCbGFja0xpc3RlZFRhZ3MoKToKKyAgICAiIiIKKyAgICBXZSBt
YWludGFpbiBhIGJsYWNrbGlzdCBvZiB3b3JkcyB3aGljaCB3ZSBkbyBub3Qgd2FudCB0byBkaXNw
bGF5IGFzIHRhZyBpbiBidWlsZGJvdC4KKyAgICBXZSBnZW5lcmF0ZSBhIGxpc3Qgb2YgdGFncyBi
eSBzcGxpdHRpbmcgdGhlIGJ1aWxkZXIgbmFtZS4gV2UgZG8gbm90IHdhbnQgY2VydGFpbiB3b3Jk
cyBhcyB0YWcuCisgICAgRm9yIGUuZy4gd2UgZG9uJ3Qgd2FudCAnMTEnYXMgdGFnIGZvciBidWls
ZGVyIGlPUy0xMS1TaW11bGF0b3ItRVdTCisgICAgIiIiCisgICAgdGFnc19ibGFja2xpc3QgPSBb
c3RyKGkpIGZvciBpIGluIHJhbmdlKDAsIDIwKV0KKyAgICB0YWdzX2JsYWNrbGlzdC5leHRlbmQo
WydFV1MnLCAnVHJ5Qm90J10pCisgICAgcmV0dXJuIHRhZ3NfYmxhY2tsaXN0CisKKworZGVmIGdl
dFZhbGlkVGFncyh0YWdzKToKKyAgICByZXR1cm4gbGlzdChzZXQodGFncykgLSBzZXQoZ2V0Qmxh
Y2tMaXN0ZWRUYWdzKCkpKQorCisKK2RlZiBnZXRUYWdzRm9yQnVpbGRlcihidWlsZGVyKToKKyAg
ICBrZXl3b3JkcyA9IGZpbHRlcihOb25lLCByZS5zcGxpdCgiWywgXC1fOigpXSsiLCBzdHIoYnVp
bGRlclsnbmFtZSddKSkpCisgICAgcmV0dXJuIGdldFZhbGlkVGFncyhrZXl3b3JkcykKSW5kZXg6
IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9sb2FkQ29uZmlnX3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9sb2FkQ29u
ZmlnX3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1idWlsZC9sb2FkQ29uZmlnX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTQ5IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGxvYWRDb25m
aWcKKworCitjbGFzcyBDb25maWdEb3RKU09OVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIHRlc3RfY29uZmlndXJhdGlvbihzZWxmKToKKyAgICAgICAgbG9hZENvbmZpZy5sb2FkQnVp
bGRlckNvbmZpZyh7fSkKKworCitjbGFzcyBUYWdzRm9yQnVpbGRlclRlZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICBkZWYgdmVyaWZ5VGFncyhzZWxmLCBidWlsZGVyTmFtZSwgZXhwZWN0ZWRU
YWdzKToKKyAgICAgICAgdGFncyA9IGxvYWRDb25maWcuZ2V0VGFnc0ZvckJ1aWxkZXIoeyduYW1l
JzogYnVpbGRlck5hbWV9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZCh0YWdzKSwg
c29ydGVkKGV4cGVjdGVkVGFncykpCisKKyAgICBkZWYgdGVzdF9nZXRUYWdzRm9yQnVpbGRlcihz
ZWxmKToKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCdFV1MnLCBbXSkKKyAgICAgICAgc2VsZi52
ZXJpZnlUYWdzKCdUcnlCb3QtMTAtRVdTJywgW10pCisgICAgICAgIHNlbGYudmVyaWZ5VGFncygn
MTEtRVdTJywgW10pCisgICAgICAgIHNlbGYudmVyaWZ5VGFncygnMzItRVdTJywgWyczMiddKQor
ICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ2lPUy0xMS1FV1MnLCBbJ2lPUyddKQorICAgICAgICBz
ZWxmLnZlcmlmeVRhZ3MoJ2lPUygxMSksKHRlc3QpLUVXUycsIFsnaU9TJywgJ3Rlc3QnXSkKKyAg
ICAgICAgc2VsZi52ZXJpZnlUYWdzKCdXaW5kb3dzLUVXUycsIFsnV2luZG93cyddKQorICAgICAg
ICBzZWxmLnZlcmlmeVRhZ3MoJ1dpbmRvd3NfV2luZG93cycsIFsnV2luZG93cyddKQorICAgICAg
ICBzZWxmLnZlcmlmeVRhZ3MoJ0dUSy1XZWJraXQyLUVXUycsIFsnR1RLJywgJ1dlYmtpdDInXSkK
KyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCdtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTJywg
WydTaWVycmEnLCAnUmVsZWFzZScsICdtYWNPUycsICdXSzEnXSkKKyAgICAgICAgc2VsZi52ZXJp
ZnlUYWdzKCdtYWNPUy1IaWdoLVNpZXJyYS1SZWxlYXNlLTMyYml0LVdLMi1FV1MnLCBbJ21hY09T
JywgJ0hpZ2gnLCAnU2llcnJhJywgJ1JlbGVhc2UnLCAnV0syJywgJzMyYml0J10pCisKKyAgICBk
ZWYgdGVzdF90YWdzX3R5cGUoc2VsZik6CisgICAgICAgIHRhZ3MgPSBsb2FkQ29uZmlnLmdldFRh
Z3NGb3JCdWlsZGVyKHsnbmFtZSc6IHUnaU9TLTExLUVXUyd9KQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhZ3MsIFsnaU9TJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZSh0YWdz
WzBdKSwgc3RyKQorCisgICAgZGVmIHRlc3RfZ2V0QmxhY2tMaXN0ZWRUYWdzKHNlbGYpOgorICAg
ICAgICBibGFja2xpc3RlZFRhZ3MgPSBsb2FkQ29uZmlnLmdldEJsYWNrTGlzdGVkVGFncygpCisg
ICAgICAgIGV4cGVjdGVkVGFncyA9IFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNics
ICc3JywgJzgnLCAnOScsICcxMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnMTEnLCAnMTIn
LCAnMTMnLCAnMTQnLCAnMTUnLCAnMTYnLCAnMTcnLCAnMTgnLCAnMTknLCAnRVdTJywgJ1RyeUJv
dCddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmxhY2tsaXN0ZWRUYWdzLCBleHBlY3RlZFRh
Z3MpCisKKworY2xhc3MgVGVzdGNoZWNrVmFsaWRXb3JrZXIodW5pdHRlc3QuVGVzdENhc2UpOgor
ICAgIGRlZiB0ZXN0X2ludmFsaWRfd29ya2VyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcu
Y2hlY2tWYWxpZFdvcmtlcih7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4
Y2VwdGlvbi5hcmdzLCAoJ1dvcmtlciBpcyBOb25lIG9yIEVtcHR5LicsKSkKKworICAgIGRlZiB0
ZXN0X3dvcmtlcl93aXRoX21pc3NpbmdfbmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmln
LmNoZWNrVmFsaWRXb3JrZXIoeyJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIn0pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdXb3JrZXIgIntcJ3BsYXRm
b3JtXCc6IFwnbWFjLXNpZXJyYVwnfSIgZG9lcyBub3QgaGF2ZSBuYW1lIGRlZmluZWQuJywpKQor
CisgICAgZGVmIHRlc3Rfd29ya2VyX3dpdGhfbWlzc2luZ19wbGF0TmFtZShzZWxmKToKKyAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAg
ICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRXb3JrZXIoeyJuYW1lIjogImV3czEwMSJ9KQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnV29ya2VyICJl
d3MxMDEiIGRvZXMgbm90IGhhdmUgcGxhdGZvcm0gZGVmaW5lZC4nLCkpCisKKyAgICBkZWYgdGVz
dF92YWxpZF93b3JrZXIoc2VsZik6CisgICAgICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZFdvcmtl
cih7Im5hbWUiOiAiZXdzMTAxIiwgInBsYXRmb3JtIjogIm1hYy1zaWVycmEifSkKKworCitjbGFz
cyBUZXN0Y2hlY2tWYWxpZEJ1aWxkZXIodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0
X2ludmFsaWRfYnVpbGRlcihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhF
eGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRC
dWlsZGVyKHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFy
Z3MsICgnQnVpbGRlciBpcyBOb25lIG9yIEVtcHR5LicsKSkKKworICAgIGRlZiB0ZXN0X2J1aWxk
ZXJfd2l0aF9taXNzaW5nX25hbWUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1Zh
bGlkQnVpbGRlcih7InBsYXRmb3JtIjogIm1hYy1zaWVycmEifSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0J1aWxkZXIgIntcJ3BsYXRmb3JtXCc6
IFwnbWFjLXNpZXJyYVwnfSIgZG9lcyBub3QgaGF2ZSBuYW1lIGRlZmluZWQuJywpKQorCisgICAg
ZGVmIHRlc3RfYnVpbGRlcl93aXRoX2ludmFsaWRfaWRlbnRpZmllcihzZWxmKToKKyAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAg
ICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRCdWlsZGVyKHsibmFtZSI6ICJtYWMtd2syKHRlc3QpIn0p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWls
ZGVyIG5hbWUgIm1hYy13azIodGVzdCkiIGlzIG5vdCBhIHZhbGlkIGJ1aWxkYm90IGlkZW50aWZp
ZXIuJywpKQorCisgICAgZGVmIHRlc3RfYnVpbGRlcl93aXRoX2V4dHJhX2xvbmdfbmFtZShzZWxm
KToKKyAgICAgICAgbG9uZ05hbWUgPSAnYScgKiA3MQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcuY2hl
Y2tWYWxpZEJ1aWxkZXIoeyJuYW1lIjogbG9uZ05hbWV9KQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnQnVpbGRlciBuYW1lICJ7fSIgaXMgbG9uZ2Vy
IHRoYW4gbWF4aW11bSBhbGxvd2VkIGJ5IEJ1aWxkYm90ICg3MCBjaGFyYWN0ZXJzKS4nLmZvcm1h
dChsb25nTmFtZSksKSkKKworICAgIGRlZiB0ZXN0X2J1aWxkZXJfd2l0aF9pbnZhbGlkX2NvbmZp
Z3VyYXRpb24oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9u
KSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7
Im5hbWUiOiAibWFjLXdrMiIsICJjb25maWd1cmF0aW9uIjogImFzYW4ifSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0ludmFsaWQgY29uZmlndXJh
dGlvbjogYXNhbiBmb3IgYnVpbGRlcjogbWFjLXdrMicsKSkKKworICAgIGRlZiB0ZXN0X2J1aWxk
ZXJfd2l0aF9taXNzaW5nX2ZhY3Rvcnkoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVj
a1ZhbGlkQnVpbGRlcih7Im5hbWUiOiAibWFjLXdrMiIsICJjb25maWd1cmF0aW9uIjogIlJlbGVh
c2UifSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAo
J0J1aWxkZXIgIm1hYy13azIiIGRvZXMgbm90IGhhdmUgZmFjdG9yeSBkZWZpbmVkLicsKSkKKwor
ICAgIGRlZiB0ZXN0X2J1aWxkZXJfd2l0aF9taXNzaW5nX3BsYXRmb3JtKHNlbGYpOgorICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAg
ICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZEJ1aWxkZXIoeyJuYW1lIjogIm1hYy13azIiLCAiY29u
ZmlndXJhdGlvbiI6ICJSZWxlYXNlIiwgImZhY3RvcnkiOiAiV0syRmFjdG9yeSJ9KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnQnVpbGRlciAibWFj
LXdrMiIgZG9lcyBub3QgaGF2ZSBwbGF0Zm9ybSBkZWZpbmVkLicsKSkKKworICAgIGRlZiB0ZXN0
X3ZhbGlkX2J1aWxkZXIoc2VsZik6CisgICAgICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZEJ1aWxk
ZXIoeyJuYW1lIjogIm1hYy13azIiLCAiY29uZmlndXJhdGlvbiI6ICJSZWxlYXNlIiwgImZhY3Rv
cnkiOiAiV0syRmFjdG9yeSIsICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIn0pCisKKworY2xhc3Mg
VGVzdGNoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9yQ29uc2lzdGVuY3kodW5pdHRlc3QuVGVzdENh
c2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBz
ZWxmLldLMkJ1aWxkZXIgPSB7Im5hbWUiOiAibWFjLXdrMiIsICJmYWN0b3J5IjogIldLMkZhY3Rv
cnkiLCAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIsICJ3b3JrZXJuYW1lcyI6IFsiZXdzMTAxIiwg
ImV3czEwMiJdfQorICAgICAgICBzZWxmLmV3czEwMSA9IHsibmFtZSI6ICJld3MxMDEiLCAicGxh
dGZvcm0iOiAibWFjLXNpZXJyYSJ9CisgICAgICAgIHNlbGYuZXdzMTAyID0geyJuYW1lIjogImV3
czEwMiIsICJwbGF0Zm9ybSI6ICJpb3MtMTEifQorICAgICAgICBzdXBlcihUZXN0Y2hlY2tXb3Jr
ZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh
cmdzKQorCisgICAgZGVmIHRlc3RfY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5j
eShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24pIGFzIGNv
bnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9y
Q29uc2lzdGVuY3koW10sIFtzZWxmLldLMkJ1aWxkZXJdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnQnVpbGRlciAibWFjLXdrMiIgaGFzIHdvcmtl
ciAiZXdzMTAxIiwgd2hpY2ggaXMgbm90IGRlZmluZWQgaW4gd29ya2VycyBsaXN0IScsKSkKKwor
ICAgIGRlZiB0ZXN0X2NoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9yQ29uc2lzdGVuY3kxKHNlbGYp
OgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoK
KyAgICAgICAgICAgIGxvYWRDb25maWcuY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0
ZW5jeShbc2VsZi5ld3MxMDEsIHNlbGYuZXdzMTAyXSwgW3NlbGYuV0syQnVpbGRlcl0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWlsZGVyICJt
YWMtd2syIiBpcyBmb3IgcGxhdGZvcm0gIm1hYy1zaWVycmEiLCBidXQgaGFzIHdvcmtlciAiZXdz
MTAyIiBmb3IgcGxhdGZvcm0gImlvcy0xMSIhJywpKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzcyhz
ZWxmKToKKyAgICAgICAgbG9hZENvbmZpZy5jaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNp
c3RlbmN5KFtzZWxmLmV3czEwMSwgeyJuYW1lIjogImV3czEwMiIsICJwbGF0Zm9ybSI6ICJtYWMt
c2llcnJhIn1dLCBbc2VsZi5XSzJCdWlsZGVyXSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
ZXdzLWJ1aWxkL21hc3Rlci5jZmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvZXdzLWJ1aWxkL21hc3Rlci5jZmcJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvZXdzLWJ1aWxkL21hc3Rlci5jZmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MyBAQAoraW1wb3J0IGxvYWRDb25maWcKKworCitjID0gQnVpbGRtYXN0ZXJDb25maWcgPSB7fQor
CitjWyd3d3cnXSA9IGRpY3QocG9ydD04MDEwLAorICAgICAgICAgICAgICAgIHBsdWdpbnM9ZGlj
dCh3YXRlcmZhbGxfdmlldz17fSwgY29uc29sZV92aWV3PXt9KSkKKworY1snd3d3J11bJ3VpX2Rl
ZmF1bHRfY29uZmlnJ10gPSB7IAorICAgICdCdWlsZGVycy5zaG93X3dvcmtlcnNfbmFtZSc6IFRy
dWUsCisgICAgJ0J1aWxkZXJzLmJ1aWxkRmV0Y2hMaW1pdCc6IDEwMDAsCisgICAgJ1dvcmtlcnMu
c2hvd1dvcmtlckJ1aWxkZXJzJzogVHJ1ZSwKK30KKworY1sncHJvdG9jb2xzJ10gPSB7J3BiJzog
eydwb3J0JzogOTk4OX19CisKK2NbJ3Byb2plY3ROYW1lJ10gPSAnV2Via2l0IEVXUycKK2NbJ3By
b2plY3RVUkwnXSA9ICdodHRwczovL2V3cy1idWlsZC53ZWJraXQub3JnLycKK2NbJ2J1aWxkYm90
VVJMJ10gPSAnaHR0cHM6Ly9ld3MtYnVpbGQud2Via2l0Lm9yZy8nCisKK2NbJ2J1aWxkYm90TmV0
VXNhZ2VEYXRhJ10gPSBOb25lCisKK2xvYWRDb25maWcubG9hZEJ1aWxkZXJDb25maWcoYykK
</data>
<flag name="review"
          id="359213"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341100</attachid>
            <date>2018-05-23 10:07:20 -0700</date>
            <delta_ts>2018-05-23 16:00:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>ews-buildbot-config-v3.patch</filename>
            <type>text/plain</type>
            <size>25589</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMjExNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA1LTIzICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQnVpbGRib3QgY29uZmlndXJhdGlvbiBmb3IgT3BlbnNvdXJjZSBF
V1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTQ4
NAorCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb246IEFkZGVkLCBj
b25maWcgZmlsZS4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9y
aWVzLnB5OiBBZGRlZCwgYmFzaWMgdGVtcGxhdGUgZm9yIGZhY3Rvcmllcy4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weTogQWRkZWQuCisgICAgICAg
IChsb2FkQnVpbGRlckNvbmZpZyk6IExvYWRzIHRoZSBjb25maWd1cmF0aW9uLgorICAgICAgICAo
Y2hlY2tWYWxpZFdvcmtlcik6IENoZWNrcyBpZiB0aGUgd29ya2VyIGlzIHZhbGlkLgorICAgICAg
ICAoY2hlY2tWYWxpZEJ1aWxkZXIpOiBDaGVja3MgaWYgdGhlIGJ1aWxkZXIgaXMgdmFsaWQuCisg
ICAgICAgIChjaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5KTogQ2hlY2sgaWYg
d29ya2VycyBhbmQgYnVpbGRlcnMgYXJlIGNvbnNpc3RlbnQuCisgICAgICAgIChjaGVja1dvcmtl
cnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5Ll9maW5kX3dvcmtlcl93aXRoX25hbWUpOgorICAg
ICAgICAoZ2V0QmxhY2tMaXN0ZWRUYWdzKTogUmV0dXJucyBhIGxpc3Qgb2Yga2V5d29yZHMgd2hp
Y2ggc2hvdWxkIG5vdCBiZSBsaXN0ZWQgYXMgdGFncy4KKyAgICAgICAgKGdldFZhbGlkVGFncyk6
IFJldHVybnMgYSBsaXN0IG9mIHZhbGlkIHRhZ3MuCisgICAgICAgIChnZXRUYWdzRm9yQnVpbGRl
cik6IFJldHVybiBhIGxpc3Qgb2YgdGFncyBmb3IgZ2l2ZW4gYnVpbGRlci4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZ191bml0dGVzdC5weTogdW5pdC10
ZXN0cyBmb3IgbG9hZENvbmZpZy5weS4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YnVpbGQvbWFzdGVyLmNmZzogQ29uZmlndXJhdGlvbiBmb3IgYnVpbGRib3QuCisKIDIwMTgtMDUt
MjMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIzMjExMi4KSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1idWlsZC9jb25maWcuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjgwIEBACit7CisgICJ3b3JrZXJzIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIndlYmtp
dC1taXNjIiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIgorICAgIH0sCisgICAgeworICAgICAgIm5h
bWUiOiAidGFudHktZ3RrLXdrMi1ld3MiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImx0aWx2ZS1ndGstd2syLWV3cyIsCisgICAgICAicGxh
dGZvcm0iOiAiZ3RrIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiaWdhbGlhLXdwZS1l
d3MiLAorICAgICAgInBsYXRmb3JtIjogIndwZSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
IjogImFwZXJlei13cGUtZ2NjNS1ld3MiLAorICAgICAgInBsYXRmb3JtIjogIndwZSIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImFwZXJlei13cGUtZ2NjNi1ld3MiLAorICAgICAgInBs
YXRmb3JtIjogIndwZSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIndpbmNhaXJvLWV3
cy0wMDEiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNhaXJvIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAid2luY2Fpcm8tZXdzLTAwMiIsCisgICAgICAicGxhdGZvcm0iOiAid2luY2Fp
cm8iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ3aW5jYWlyby1ld3MtMDAzIiwKKyAg
ICAgICJwbGF0Zm9ybSI6ICJ3aW5jYWlybyIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
IndpbmNhaXJvLWV3cy0wMDQiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNhaXJvIgorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTAwIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMt
c2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTAxIiwKKyAgICAgICJw
bGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdz
MTAyIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiZXdzMTAzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA0IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJt
YWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA1IiwKKyAgICAg
ICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
ZXdzMTA2IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgewor
ICAgICAgIm5hbWUiOiAiZXdzMTA3IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA4IiwKKyAgICAgICJwbGF0Zm9ybSI6
ICJpb3MtMTEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMDkiLAorICAgICAg
InBsYXRmb3JtIjogImlvcy0xMSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEx
MiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAg
ICJuYW1lIjogImV3czExMyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExNCIsCisgICAgICAicGxhdGZvcm0iOiAibWFj
LXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExNSIsCisgICAgICAi
cGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3
czExNiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czExNyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAg
ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExOCIsCisgICAgICAicGxhdGZvcm0iOiAi
bWFjLWhpZ2gtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTE5IiwK
KyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtaGlnaC1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJld3MxMjAiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1oaWdoLXNpZXJyYSIK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyMyIsCisgICAgICAicGxhdGZvcm0i
OiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEy
NCIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogImV3czEyNSIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVs
YXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyNiIsCisgICAgICAicGxh
dGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
ImV3czEyNyIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lIjogImV3czEyOCIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czIwMCIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisg
ICAgeworICAgICAgIm5hbWUiOiAiZXdzMjAxIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MyMDIiLAorICAgICAgInBsYXRmb3JtIjog
IndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czIwMyIsCisgICAgICAicGxh
dGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMjA0IiwKKyAg
ICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3My
MDUiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
IjogImV3czIwNiIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiZXdzMjA3IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJld3MyMDgiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAg
ICB9CisgIF0sCisgICJidWlsZGVycyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJTdHlsZS1F
V1MiLAorICAgICAgImZhY3RvcnkiOiAiU3R5bGVGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6
ICIqIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsid2Via2l0LW1pc2MiXQorICAgIH0sCisgICAg
eworICAgICAgIm5hbWUiOiAiR1RLLVdlYmtpdDItRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIkdU
S0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIsCisgICAgICAid29ya2VybmFtZXMi
OiBbInRhbnR5LWd0ay13azItZXdzIiwgImx0aWx2ZS1ndGstd2syLWV3cyJdCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJpT1MtMTEtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogImlPU0Zh
Y3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMSIsCisgICAgICAid29ya2VybmFtZXMi
OiBbImV3czEwOCIsICJld3MxMDkiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiaU9T
LTExLVNpbXVsYXRvci1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiaU9TU2ltdWxhdG9yRmFjdG9y
eSIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEyMyIsICJld3MxMjQiLCAiZXdzMTI1IiwgImV3czEyNiJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTIiwKKyAg
ICAgICJmYWN0b3J5IjogIk1hY1dLMUZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1z
aWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEwMCIsICJld3MxMDEiLCAiZXdzMTAyIiwgImV3czEwMyJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzItRVdTIiwKKyAg
ICAgICJmYWN0b3J5IjogIk1hY1dLMkZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1z
aWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEwNCIsICJld3MxMDUiLCAiZXdzMTA2IiwgImV3czEwNyJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtRGVidWctV0sxLUVXUyIsCisgICAg
ICAiZmFjdG9yeSI6ICJNYWNXSzFGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2ll
cnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIkRlYnVnIiwKKyAgICAgICJ3b3JrZXJuYW1l
cyI6IFsiZXdzMTEyIiwgImV3czExMyIsICJld3MxMTQiLCAiZXdzMTE1IiwgImV3czExNiJdCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1IaWdoLVNpZXJyYS1SZWxlYXNlLTMy
Yml0LVdLMi1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiTWFjV0syRmFjdG9yeSIsCisgICAgICAi
cGxhdGZvcm0iOiAibWFjLWhpZ2gtc2llcnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIlJl
bGVhc2UiLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJld3MxMTgiLCAiZXdzMTE5IiwgImV3czEy
MCJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJXaW5kb3dzLUVXUyIsCisgICAgICAi
ZmFjdG9yeSI6ICJXaW5kb3dzRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAid2luIiwKKyAg
ICAgICJ3b3JrZXJuYW1lcyI6IFsiZXdzMjAwIiwgImV3czIwMSIsICJld3MyMDIiLCAiZXdzMjAz
IiwgImV3czIwNCIsICJld3MyMDUiLCAiZXdzMjA2IiwgImV3czIwNyIsICJld3MyMDgiXQorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2luQ2Fpcm8tRVdTIiwKKyAgICAgICJmYWN0b3J5
IjogIldpbkNhaXJvRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAid2luY2Fpcm8iLAorICAg
ICAgIndvcmtlcm5hbWVzIjogWyJ3aW5jYWlyby1ld3MtMDAxIiwgIndpbmNhaXJvLWV3cy0wMDIi
LCAid2luY2Fpcm8tZXdzLTAwMyIsICJ3aW5jYWlyby1ld3MtMDA0Il0KKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogIldQRS1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiV1BFRmFjdG9yeSIs
CisgICAgICAicGxhdGZvcm0iOiAid3BlIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsiaWdhbGlh
LXdwZS1ld3MiLCAiYXBlcmV6LXdwZS1nY2M1LWV3cyIsICJhcGVyZXotd3BlLWdjYzYtZXdzIl0K
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkpTQy10ZXN0cy1FV1MiLAorICAgICAgImZh
Y3RvcnkiOiAiSlNDVGVzdHNGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIiwKKyAgICAg
ICJ3b3JrZXJuYW1lcyI6IFsiZXdzMTI3IiwgImV3czEyOCJdCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJCaW5kaW5ncy10ZXN0cy1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiQmluZGlu
Z3NGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6
IFsid2Via2l0LW1pc2MiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2Via2l0cHkt
dGVzdHMtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIldlYmtpdHB5RmFjdG9yeSIsCisgICAgICAi
cGxhdGZvcm0iOiAiKiIsCisgICAgICAid29ya2VybmFtZXMiOiBbIndlYmtpdC1taXNjIl0KKyAg
ICB9CisgIF0sCisgICJzY2hlZHVsZXJzIjogWworICAgIHsKKyAgICAgICJ0eXBlIjogIkFueUJy
YW5jaFNjaGVkdWxlciIsCisgICAgICAibmFtZSI6ICJtaXNjLXRyaWdnZXIiLAorICAgICAgInRy
ZWVTdGFibGVUaW1lciI6IDAsCisgICAgICAiYnVpbGRlck5hbWVzIjogWyJTdHlsZS1FV1MiLCAi
SlNDLXRlc3RzLUVXUyIsICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTIiwgIkdUSy1XZWJr
aXQyLUVXUyIsICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzItRVdTIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIm1hY09TLUhpZ2gtU2llcnJhLVJlbGVhc2UtMzJiaXQtV0syLUVXUyIsICJXUEUt
RVdTIiwgIldpbmRvd3MtRVdTIiwgImlPUy0xMS1FV1MiLCAiV2luQ2Fpcm8tRVdTIiwgImlPUy0x
MS1TaW11bGF0b3ItRVdTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIldlYmtpdHB5LXRlc3Rz
LUVXUyIsICJtYWNPUy1TaWVycmEtRGVidWctV0sxLUVXUyIsICJCaW5kaW5ncy10ZXN0cy1FV1Mi
XQorICAgIH0KKyAgXQorfQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxk
L2ZhY3Rvcmllcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YnVpbGQvZmFjdG9yaWVzLnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gYnVpbGRi
b3QucHJvY2VzcyBpbXBvcnQgZmFjdG9yeQorCisKK2NsYXNzIFN0eWxlRmFjdG9yeShmYWN0b3J5
LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIEdUS0ZhY3RvcnkoZmFjdG9yeS5C
dWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBpT1NGYWN0b3J5KGZhY3RvcnkuQnVp
bGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgaU9TU2ltdWxhdG9yRmFjdG9yeShmYWN0
b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIE1hY1dLMUZhY3RvcnkoZmFj
dG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBNYWNXSzJGYWN0b3J5KGZh
Y3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2luZG93c0ZhY3Rvcnko
ZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXaW5DYWlyb0ZhY3Rv
cnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXUEVGYWN0b3J5
KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgSlNDVGVzdHNGYWN0
b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgQmluZGluZ3NG
YWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2Via2l0
cHlGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCkluZGV4OiBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQkobm9uZXhpc3Rl
bnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKKworZnJvbSBidWlsZGJv
dC5zY2hlZHVsZXIgaW1wb3J0IEFueUJyYW5jaFNjaGVkdWxlciwgUGVyaW9kaWMsIERlcGVuZGVu
dCwgVHJpZ2dlcmFibGUsIE5pZ2h0bHkKK2Zyb20gYnVpbGRib3Qud29ya2VyIGltcG9ydCBXb3Jr
ZXIKK2Zyb20gYnVpbGRib3QudXRpbCBpbXBvcnQgaWRlbnRpZmllcnMgYXMgYnVpbGRib3RfaWRl
bnRpZmllcnMKKworZnJvbSBmYWN0b3JpZXMgaW1wb3J0ICoKKworQlVJTERFUl9OQU1FX0xFTkdU
SF9MSU1JVCA9IDcwCitTVEVQX05BTUVfTEVOR1RIX0xJTUlUID0gNTAKKworCitkZWYgbG9hZEJ1
aWxkZXJDb25maWcoYyk6CisgICAgY29uZmlnID0ganNvbi5sb2FkKG9wZW4oJ2NvbmZpZy5qc29u
JykpCisgICAgcGFzc3dvcmRzID0ganNvbi5sb2FkKG9wZW4oJ3Bhc3N3b3Jkcy5qc29uJykpCisg
ICAgY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeShjb25maWdbJ3dvcmtlcnMn
XSwgY29uZmlnWydidWlsZGVycyddKQorCisgICAgY1snd29ya2VycyddID0gW1dvcmtlcih3b3Jr
ZXJbJ25hbWUnXSwgcGFzc3dvcmRzLmdldCh3b3JrZXJbJ25hbWUnXSwgJ3Bhc3N3b3JkJykpIGZv
ciB3b3JrZXIgaW4gY29uZmlnWyd3b3JrZXJzJ11dCisgICAgY1snYnVpbGRlcnMnXSA9IFtdCisg
ICAgZm9yIGJ1aWxkZXIgaW4gY29uZmlnWydidWlsZGVycyddOgorICAgICAgICBidWlsZGVyWyd0
YWdzJ10gPSBnZXRUYWdzRm9yQnVpbGRlcihidWlsZGVyKQorICAgICAgICBmYWN0b3J5ID0gZ2xv
YmFscygpW2J1aWxkZXJbImZhY3RvcnkiXV0KKyAgICAgICAgYnVpbGRlclsiZmFjdG9yeSJdID0g
ZmFjdG9yeSgpCisgICAgICAgIGJ1aWxkZXIucG9wKCdwbGF0Zm9ybScpCisgICAgICAgIGlmIGJ1
aWxkZXIuZ2V0KCdjb25maWd1cmF0aW9uJyk6CisgICAgICAgICAgICBidWlsZGVyLnBvcCgnY29u
ZmlndXJhdGlvbicpCisgICAgICAgIGNbJ2J1aWxkZXJzJ10uYXBwZW5kKGJ1aWxkZXIpCisKKyAg
ICBjWydzY2hlZHVsZXJzJ10gPSBbXQorICAgIGZvciBzY2hlZHVsZXIgaW4gY29uZmlnWydzY2hl
ZHVsZXJzJ106CisgICAgICAgIHNjaGVkdWxlclR5cGUgPSBnbG9iYWxzKClbc2NoZWR1bGVyLnBv
cCgndHlwZScpXQorICAgICAgICAjIFB5dGhvbiAyLjYgY2FuJ3QgaGFuZGxlIHVuaWNvZGUga2V5
cyBhcyBrZXl3b3JkIGFyZ3VtZW50czoKKyAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3Jn
L2lzc3VlMjY0Ni4gIE1vZGVybiB2ZXJzaW9ucyBvZiBqc29uIHJldHVybgorICAgICAgICAjIHVu
aWNvZGUgc3RyaW5ncyBmcm9tIGpzb24ubG9hZCwgc28gd2UgbWFwIGFsbCBrZXlzIHRvIHN0ciBv
YmplY3RzLgorICAgICAgICBzY2hlZHVsZXIgPSBkaWN0KG1hcChsYW1iZGEga2V5X3ZhbHVlX3Bh
aXI6IChzdHIoa2V5X3ZhbHVlX3BhaXJbMF0pLCBrZXlfdmFsdWVfcGFpclsxXSksIHNjaGVkdWxl
ci5pdGVtcygpKSkKKyAgICAgICAgY1snc2NoZWR1bGVycyddLmFwcGVuZChzY2hlZHVsZXJUeXBl
KCoqc2NoZWR1bGVyKSkKKworCitkZWYgY2hlY2tWYWxpZFdvcmtlcih3b3JrZXIpOgorICAgIGlm
IG5vdCB3b3JrZXI6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV29ya2VyIGlzIE5vbmUgb3Ig
RW1wdHkuJykKKworICAgIGlmIG5vdCB3b3JrZXIuZ2V0KCduYW1lJyk6CisgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignV29ya2VyICJ7fSIgZG9lcyBub3QgaGF2ZSBuYW1lIGRlZmluZWQuJy5mb3Jt
YXQod29ya2VyKSkKKworICAgIGlmIG5vdCB3b3JrZXIuZ2V0KCdwbGF0Zm9ybScpOgorICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1dvcmtlciAie30iIGRvZXMgbm90IGhhdmUgcGxhdGZvcm0gZGVm
aW5lZC4nLmZvcm1hdCh3b3JrZXJbJ25hbWUnXSkpCisKKworZGVmIGNoZWNrVmFsaWRCdWlsZGVy
KGJ1aWxkZXIpOgorICAgIGlmIG5vdCBidWlsZGVyOgorICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0J1aWxkZXIgaXMgTm9uZSBvciBFbXB0eS4nKQorCisgICAgaWYgbm90IGJ1aWxkZXIuZ2V0KCdu
YW1lJyk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciAie30iIGRvZXMgbm90IGhh
dmUgbmFtZSBkZWZpbmVkLicuZm9ybWF0KGJ1aWxkZXIpKQorCisgICAgaWYgbm90IGJ1aWxkYm90
X2lkZW50aWZpZXJzLmlkZW50X3JlLm1hdGNoKGJ1aWxkZXJbJ25hbWUnXSk6CisgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQnVpbGRlciBuYW1lICJ7fSIgaXMgbm90IGEgdmFsaWQgYnVpbGRib3Qg
aWRlbnRpZmllci4nLmZvcm1hdChidWlsZGVyWyduYW1lJ10pKQorCisgICAgaWYgbGVuKGJ1aWxk
ZXJbJ25hbWUnXSkgPiBCVUlMREVSX05BTUVfTEVOR1RIX0xJTUlUOgorICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ0J1aWxkZXIgbmFtZSAie30iIGlzIGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dl
ZCBieSBCdWlsZGJvdCAoe30gY2hhcmFjdGVycykuJy5mb3JtYXQoYnVpbGRlclsnbmFtZSddLCBC
VUlMREVSX05BTUVfTEVOR1RIX0xJTUlUKSkKKworICAgIGlmICdjb25maWd1cmF0aW9uJyBpbiBi
dWlsZGVyIGFuZCBidWlsZGVyWydjb25maWd1cmF0aW9uJ10gbm90IGluIFsnRGVidWcnLCAnUHJv
ZHVjdGlvbicsICdSZWxlYXNlJ106CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiSW52YWxpZCBj
b25maWd1cmF0aW9uOiB7fSBmb3IgYnVpbGRlcjoge30iLmZvcm1hdChidWlsZGVyLmdldCgnY29u
ZmlndXJhdGlvbicpLCBidWlsZGVyLmdldCgnbmFtZScpKSkKKworICAgIGlmIG5vdCBidWlsZGVy
LmdldCgnZmFjdG9yeScpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgInt9IiBk
b2VzIG5vdCBoYXZlIGZhY3RvcnkgZGVmaW5lZC4nLmZvcm1hdChidWlsZGVyWyduYW1lJ10pKQor
CisgICAgaWYgbm90IGJ1aWxkZXIuZ2V0KCdwbGF0Zm9ybScpOgorICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0J1aWxkZXIgInt9IiBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRlZmluZWQuJy5mb3Jt
YXQoYnVpbGRlclsnbmFtZSddKSkKKworCitkZWYgY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JD
b25zaXN0ZW5jeSh3b3JrZXJzLCBidWlsZGVycyk6CisgICAgZGVmIF9maW5kX3dvcmtlcl93aXRo
X25hbWUod29ya2Vycywgd29ya2VyX25hbWUpOgorICAgICAgICBmb3Igd29ya2VyIGluIHdvcmtl
cnM6CisgICAgICAgICAgICBpZiB3b3JrZXJbJ25hbWUnXSA9PSB3b3JrZXJfbmFtZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gd29ya2VyCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBmb3Ig
d29ya2VyIGluIHdvcmtlcnM6CisgICAgICAgIGNoZWNrVmFsaWRXb3JrZXIod29ya2VyKQorCisg
ICAgZm9yIGJ1aWxkZXIgaW4gYnVpbGRlcnM6CisgICAgICAgIGNoZWNrVmFsaWRCdWlsZGVyKGJ1
aWxkZXIpCisgICAgICAgIGZvciB3b3JrZXJfbmFtZSBpbiBidWlsZGVyWyd3b3JrZXJuYW1lcydd
OgorICAgICAgICAgICAgd29ya2VyID0gX2ZpbmRfd29ya2VyX3dpdGhfbmFtZSh3b3JrZXJzLCB3
b3JrZXJfbmFtZSkKKyAgICAgICAgICAgIGlmIHdvcmtlciBpcyBOb25lOgorICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciAie30iIGhhcyB3b3JrZXIgInt9Iiwgd2hpY2gg
aXMgbm90IGRlZmluZWQgaW4gd29ya2VycyBsaXN0IScuZm9ybWF0KGJ1aWxkZXJbJ25hbWUnXSwg
d29ya2VyX25hbWUpKQorCisgICAgICAgICAgICBpZiB3b3JrZXJbJ3BsYXRmb3JtJ10gIT0gYnVp
bGRlclsncGxhdGZvcm0nXToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxk
ZXIgInswfSIgaXMgZm9yIHBsYXRmb3JtICJ7MX0iLCBidXQgaGFzIHdvcmtlciAiezJ9IiBmb3Ig
cGxhdGZvcm0gInszfSIhJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXJbJ25h
bWUnXSwgYnVpbGRlclsncGxhdGZvcm0nXSwgd29ya2VyWyduYW1lJ10sIHdvcmtlclsncGxhdGZv
cm0nXSkpCisKKworZGVmIGdldEJsYWNrTGlzdGVkVGFncygpOgorICAgICIiIgorICAgIFdlIG1h
aW50YWluIGEgYmxhY2tsaXN0IG9mIHdvcmRzIHdoaWNoIHdlIGRvIG5vdCB3YW50IHRvIGRpc3Bs
YXkgYXMgdGFnIGluIGJ1aWxkYm90LgorICAgIFdlIGdlbmVyYXRlIGEgbGlzdCBvZiB0YWdzIGJ5
IHNwbGl0dGluZyB0aGUgYnVpbGRlciBuYW1lLiBXZSBkbyBub3Qgd2FudCBjZXJ0YWluIHdvcmRz
IGFzIHRhZy4KKyAgICBGb3IgZS5nLiB3ZSBkb24ndCB3YW50ICcxMSdhcyB0YWcgZm9yIGJ1aWxk
ZXIgaU9TLTExLVNpbXVsYXRvci1FV1MKKyAgICAiIiIKKyAgICB0YWdzX2JsYWNrbGlzdCA9IFtz
dHIoaSkgZm9yIGkgaW4gcmFuZ2UoMCwgMjApXQorICAgIHRhZ3NfYmxhY2tsaXN0LmV4dGVuZChb
J0VXUycsICdUcnlCb3QnXSkKKyAgICByZXR1cm4gdGFnc19ibGFja2xpc3QKKworCitkZWYgZ2V0
VmFsaWRUYWdzKHRhZ3MpOgorICAgIHJldHVybiBsaXN0KHNldCh0YWdzKSAtIHNldChnZXRCbGFj
a0xpc3RlZFRhZ3MoKSkpCisKKworZGVmIGdldFRhZ3NGb3JCdWlsZGVyKGJ1aWxkZXIpOgorICAg
IGtleXdvcmRzID0gZmlsdGVyKE5vbmUsIHJlLnNwbGl0KCJbLCBcLV86KCldKyIsIHN0cihidWls
ZGVyWyduYW1lJ10pKSkKKyAgICByZXR1cm4gZ2V0VmFsaWRUYWdzKGtleXdvcmRzKQpJbmRleDog
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25maWdfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2xvYWRDb25m
aWdfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
ZXdzLWJ1aWxkL2xvYWRDb25maWdfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNDkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCB1bml0dGVzdAorCitpbXBvcnQgbG9hZENvbmZp
ZworCisKK2NsYXNzIENvbmZpZ0RvdEpTT05UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgdGVzdF9jb25maWd1cmF0aW9uKHNlbGYpOgorICAgICAgICBsb2FkQ29uZmlnLmxvYWRCdWls
ZGVyQ29uZmlnKHt9KQorCisKK2NsYXNzIFRhZ3NGb3JCdWlsZGVyVGVlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiB2ZXJpZnlUYWdzKHNlbGYsIGJ1aWxkZXJOYW1lLCBleHBlY3RlZFRh
Z3MpOgorICAgICAgICB0YWdzID0gbG9hZENvbmZpZy5nZXRUYWdzRm9yQnVpbGRlcih7J25hbWUn
OiBidWlsZGVyTmFtZX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHRhZ3MpLCBz
b3J0ZWQoZXhwZWN0ZWRUYWdzKSkKKworICAgIGRlZiB0ZXN0X2dldFRhZ3NGb3JCdWlsZGVyKHNl
bGYpOgorICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ0VXUycsIFtdKQorICAgICAgICBzZWxmLnZl
cmlmeVRhZ3MoJ1RyeUJvdC0xMC1FV1MnLCBbXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCcx
MS1FV1MnLCBbXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCczMi1FV1MnLCBbJzMyJ10pCisg
ICAgICAgIHNlbGYudmVyaWZ5VGFncygnaU9TLTExLUVXUycsIFsnaU9TJ10pCisgICAgICAgIHNl
bGYudmVyaWZ5VGFncygnaU9TKDExKSwodGVzdCktRVdTJywgWydpT1MnLCAndGVzdCddKQorICAg
ICAgICBzZWxmLnZlcmlmeVRhZ3MoJ1dpbmRvd3MtRVdTJywgWydXaW5kb3dzJ10pCisgICAgICAg
IHNlbGYudmVyaWZ5VGFncygnV2luZG93c19XaW5kb3dzJywgWydXaW5kb3dzJ10pCisgICAgICAg
IHNlbGYudmVyaWZ5VGFncygnR1RLLVdlYmtpdDItRVdTJywgWydHVEsnLCAnV2Via2l0MiddKQor
ICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ21hY09TLVNpZXJyYS1SZWxlYXNlLVdLMS1FV1MnLCBb
J1NpZXJyYScsICdSZWxlYXNlJywgJ21hY09TJywgJ1dLMSddKQorICAgICAgICBzZWxmLnZlcmlm
eVRhZ3MoJ21hY09TLUhpZ2gtU2llcnJhLVJlbGVhc2UtMzJiaXQtV0syLUVXUycsIFsnbWFjT1Mn
LCAnSGlnaCcsICdTaWVycmEnLCAnUmVsZWFzZScsICdXSzInLCAnMzJiaXQnXSkKKworICAgIGRl
ZiB0ZXN0X3RhZ3NfdHlwZShzZWxmKToKKyAgICAgICAgdGFncyA9IGxvYWRDb25maWcuZ2V0VGFn
c0ZvckJ1aWxkZXIoeyduYW1lJzogdSdpT1MtMTEtRVdTJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGFncywgWydpT1MnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHRhZ3Nb
MF0pLCBzdHIpCisKKyAgICBkZWYgdGVzdF9nZXRCbGFja0xpc3RlZFRhZ3Moc2VsZik6CisgICAg
ICAgIGJsYWNrbGlzdGVkVGFncyA9IGxvYWRDb25maWcuZ2V0QmxhY2tMaXN0ZWRUYWdzKCkKKyAg
ICAgICAgZXhwZWN0ZWRUYWdzID0gWycwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2Jywg
JzcnLCAnOCcsICc5JywgJzEwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICcxMScsICcxMics
ICcxMycsICcxNCcsICcxNScsICcxNicsICcxNycsICcxOCcsICcxOScsICdFV1MnLCAnVHJ5Qm90
J10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChibGFja2xpc3RlZFRhZ3MsIGV4cGVjdGVkVGFn
cykKKworCitjbGFzcyBUZXN0Y2hlY2tWYWxpZFdvcmtlcih1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgZGVmIHRlc3RfaW52YWxpZF93b3JrZXIoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5j
aGVja1ZhbGlkV29ya2VyKHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhj
ZXB0aW9uLmFyZ3MsICgnV29ya2VyIGlzIE5vbmUgb3IgRW1wdHkuJywpKQorCisgICAgZGVmIHRl
c3Rfd29ya2VyX3dpdGhfbWlzc2luZ19uYW1lKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcu
Y2hlY2tWYWxpZFdvcmtlcih7InBsYXRmb3JtIjogIm1hYy1zaWVycmEifSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ1dvcmtlciAie1wncGxhdGZv
cm1cJzogXCdtYWMtc2llcnJhXCd9IiBkb2VzIG5vdCBoYXZlIG5hbWUgZGVmaW5lZC4nLCkpCisK
KyAgICBkZWYgdGVzdF93b3JrZXJfd2l0aF9taXNzaW5nX3BsYXROYW1lKHNlbGYpOgorICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAg
ICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZFdvcmtlcih7Im5hbWUiOiAiZXdzMTAxIn0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdXb3JrZXIgImV3
czEwMSIgZG9lcyBub3QgaGF2ZSBwbGF0Zm9ybSBkZWZpbmVkLicsKSkKKworICAgIGRlZiB0ZXN0
X3ZhbGlkX3dvcmtlcihzZWxmKToKKyAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkV29ya2Vy
KHsibmFtZSI6ICJld3MxMDEiLCAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSJ9KQorCisKK2NsYXNz
IFRlc3RjaGVja1ZhbGlkQnVpbGRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rf
aW52YWxpZF9idWlsZGVyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4
Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZEJ1
aWxkZXIoe30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJn
cywgKCdCdWlsZGVyIGlzIE5vbmUgb3IgRW1wdHkuJywpKQorCisgICAgZGVmIHRlc3RfYnVpbGRl
cl93aXRoX21pc3NpbmdfbmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFs
aWRCdWlsZGVyKHsicGxhdGZvcm0iOiAibWFjLXNpZXJyYSJ9KQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnQnVpbGRlciAie1wncGxhdGZvcm1cJzog
XCdtYWMtc2llcnJhXCd9IiBkb2VzIG5vdCBoYXZlIG5hbWUgZGVmaW5lZC4nLCkpCisKKyAgICBk
ZWYgdGVzdF9idWlsZGVyX3dpdGhfaW52YWxpZF9pZGVudGlmaWVyKHNlbGYpOgorICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAg
IGxvYWRDb25maWcuY2hlY2tWYWxpZEJ1aWxkZXIoeyJuYW1lIjogIm1hYy13azIodGVzdCkifSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0J1aWxk
ZXIgbmFtZSAibWFjLXdrMih0ZXN0KSIgaXMgbm90IGEgdmFsaWQgYnVpbGRib3QgaWRlbnRpZmll
ci4nLCkpCisKKyAgICBkZWYgdGVzdF9idWlsZGVyX3dpdGhfZXh0cmFfbG9uZ19uYW1lKHNlbGYp
OgorICAgICAgICBsb25nTmFtZSA9ICdhJyAqIDcxCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVj
a1ZhbGlkQnVpbGRlcih7Im5hbWUiOiBsb25nTmFtZX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWlsZGVyIG5hbWUgInt9IiBpcyBsb25nZXIg
dGhhbiBtYXhpbXVtIGFsbG93ZWQgYnkgQnVpbGRib3QgKDcwIGNoYXJhY3RlcnMpLicuZm9ybWF0
KGxvbmdOYW1lKSwpKQorCisgICAgZGVmIHRlc3RfYnVpbGRlcl93aXRoX2ludmFsaWRfY29uZmln
dXJhdGlvbihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24p
IGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRCdWlsZGVyKHsi
bmFtZSI6ICJtYWMtd2syIiwgImNvbmZpZ3VyYXRpb24iOiAiYXNhbiJ9KQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnSW52YWxpZCBjb25maWd1cmF0
aW9uOiBhc2FuIGZvciBidWlsZGVyOiBtYWMtd2syJywpKQorCisgICAgZGVmIHRlc3RfYnVpbGRl
cl93aXRoX21pc3NpbmdfZmFjdG9yeShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlcyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNr
VmFsaWRCdWlsZGVyKHsibmFtZSI6ICJtYWMtd2syIiwgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFz
ZSJ9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgn
QnVpbGRlciAibWFjLXdrMiIgZG9lcyBub3QgaGF2ZSBmYWN0b3J5IGRlZmluZWQuJywpKQorCisg
ICAgZGVmIHRlc3RfYnVpbGRlcl93aXRoX21pc3NpbmdfcGxhdGZvcm0oc2VsZik6CisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAg
ICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7Im5hbWUiOiAibWFjLXdrMiIsICJjb25m
aWd1cmF0aW9uIjogIlJlbGVhc2UiLCAiZmFjdG9yeSI6ICJXSzJGYWN0b3J5In0pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWlsZGVyICJtYWMt
d2syIiBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRlZmluZWQuJywpKQorCisgICAgZGVmIHRlc3Rf
dmFsaWRfYnVpbGRlcihzZWxmKToKKyAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRl
cih7Im5hbWUiOiAibWFjLXdrMiIsICJjb25maWd1cmF0aW9uIjogIlJlbGVhc2UiLCAiZmFjdG9y
eSI6ICJXSzJGYWN0b3J5IiwgInBsYXRmb3JtIjogIm1hYy1zaWVycmEifSkKKworCitjbGFzcyBU
ZXN0Y2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeSh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNl
bGYuV0syQnVpbGRlciA9IHsibmFtZSI6ICJtYWMtd2syIiwgImZhY3RvcnkiOiAiV0syRmFjdG9y
eSIsICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIiwgIndvcmtlcm5hbWVzIjogWyJld3MxMDEiLCAi
ZXdzMTAyIl19CisgICAgICAgIHNlbGYuZXdzMTAxID0geyJuYW1lIjogImV3czEwMSIsICJwbGF0
Zm9ybSI6ICJtYWMtc2llcnJhIn0KKyAgICAgICAgc2VsZi5ld3MxMDIgPSB7Im5hbWUiOiAiZXdz
MTAyIiwgInBsYXRmb3JtIjogImlvcy0xMSJ9CisgICAgICAgIHN1cGVyKFRlc3RjaGVja1dvcmtl
cnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2Fy
Z3MpCisKKyAgICBkZWYgdGVzdF9jaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5
KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29u
dGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcuY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JD
b25zaXN0ZW5jeShbXSwgW3NlbGYuV0syQnVpbGRlcl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWlsZGVyICJtYWMtd2syIiBoYXMgd29ya2Vy
ICJld3MxMDEiLCB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB3b3JrZXJzIGxpc3QhJywpKQorCisg
ICAgZGVmIHRlc3RfY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeTEoc2VsZik6
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0Ogor
ICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3Rl
bmN5KFtzZWxmLmV3czEwMSwgc2VsZi5ld3MxMDJdLCBbc2VsZi5XSzJCdWlsZGVyXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0J1aWxkZXIgIm1h
Yy13azIiIGlzIGZvciBwbGF0Zm9ybSAibWFjLXNpZXJyYSIsIGJ1dCBoYXMgd29ya2VyICJld3Mx
MDIiIGZvciBwbGF0Zm9ybSAiaW9zLTExIiEnLCkpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzKHNl
bGYpOgorICAgICAgICBsb2FkQ29uZmlnLmNoZWNrV29ya2Vyc0FuZEJ1aWxkZXJzRm9yQ29uc2lz
dGVuY3koW3NlbGYuZXdzMTAxLCB7Im5hbWUiOiAiZXdzMTAyIiwgInBsYXRmb3JtIjogIm1hYy1z
aWVycmEifV0sIFtzZWxmLldLMkJ1aWxkZXJdKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CisgICAgdW5pdHRlc3QubWFpbigpCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9l
d3MtYnVpbGQvbWFzdGVyLmNmZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9ld3MtYnVpbGQvbWFzdGVyLmNmZwkobm9uZXhpc3RlbnQpCisrKyBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC9ld3MtYnVpbGQvbWFzdGVyLmNmZwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIz
IEBACitpbXBvcnQgbG9hZENvbmZpZworCisKK2MgPSBCdWlsZG1hc3RlckNvbmZpZyA9IHt9CisK
K2NbJ3d3dyddID0gZGljdChwb3J0PTgwMTAsCisgICAgICAgICAgICAgICAgcGx1Z2lucz1kaWN0
KHdhdGVyZmFsbF92aWV3PXt9LCBjb25zb2xlX3ZpZXc9e30pKQorCitjWyd3d3cnXVsndWlfZGVm
YXVsdF9jb25maWcnXSA9IHsgCisgICAgJ0J1aWxkZXJzLnNob3dfd29ya2Vyc19uYW1lJzogVHJ1
ZSwKKyAgICAnQnVpbGRlcnMuYnVpbGRGZXRjaExpbWl0JzogMTAwMCwKKyAgICAnV29ya2Vycy5z
aG93V29ya2VyQnVpbGRlcnMnOiBUcnVlLAorfQorCitjWydwcm90b2NvbHMnXSA9IHsncGInOiB7
J3BvcnQnOiA5OTg5fX0KKworY1sncHJvamVjdE5hbWUnXSA9ICdXZWJraXQgRVdTJworY1sncHJv
amVjdFVSTCddID0gJ2h0dHBzOi8vZXdzLWJ1aWxkLndlYmtpdC5vcmcvJworY1snYnVpbGRib3RV
UkwnXSA9ICdodHRwczovL2V3cy1idWlsZC53ZWJraXQub3JnLycKKworY1snYnVpbGRib3ROZXRV
c2FnZURhdGEnXSA9IE5vbmUKKworbG9hZENvbmZpZy5sb2FkQnVpbGRlckNvbmZpZyhjKQo=
</data>
<flag name="commit-queue"
          id="359302"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341141</attachid>
            <date>2018-05-23 16:00:57 -0700</date>
            <delta_ts>2018-05-23 16:41:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>ews-buildbot-config-v4.patch</filename>
            <type>text/plain</type>
            <size>25544</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMjExNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA1LTIzICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQnVpbGRib3QgY29uZmlndXJhdGlvbiBmb3IgT3BlbnNvdXJjZSBF
V1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTQ4
NAorCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb246IEFkZGVkLCBj
b25maWcgZmlsZS4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9y
aWVzLnB5OiBBZGRlZCwgYmFzaWMgdGVtcGxhdGUgZm9yIGZhY3Rvcmllcy4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weTogQWRkZWQuCisgICAgICAg
IChsb2FkQnVpbGRlckNvbmZpZyk6IExvYWRzIHRoZSBjb25maWd1cmF0aW9uLgorICAgICAgICAo
Y2hlY2tWYWxpZFdvcmtlcik6IENoZWNrcyBpZiB0aGUgd29ya2VyIGlzIHZhbGlkLgorICAgICAg
ICAoY2hlY2tWYWxpZEJ1aWxkZXIpOiBDaGVja3MgaWYgdGhlIGJ1aWxkZXIgaXMgdmFsaWQuCisg
ICAgICAgIChjaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5KTogQ2hlY2sgaWYg
d29ya2VycyBhbmQgYnVpbGRlcnMgYXJlIGNvbnNpc3RlbnQuCisgICAgICAgIChjaGVja1dvcmtl
cnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5Ll9maW5kX3dvcmtlcl93aXRoX25hbWUpOgorICAg
ICAgICAoZ2V0QmxhY2tMaXN0ZWRUYWdzKTogUmV0dXJucyBhIGxpc3Qgb2Yga2V5d29yZHMgd2hp
Y2ggc2hvdWxkIG5vdCBiZSBsaXN0ZWQgYXMgdGFncy4KKyAgICAgICAgKGdldFZhbGlkVGFncyk6
IFJldHVybnMgYSBsaXN0IG9mIHZhbGlkIHRhZ3MuCisgICAgICAgIChnZXRUYWdzRm9yQnVpbGRl
cik6IFJldHVybiBhIGxpc3Qgb2YgdGFncyBmb3IgZ2l2ZW4gYnVpbGRlci4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZ191bml0dGVzdC5weTogdW5pdC10
ZXN0cyBmb3IgbG9hZENvbmZpZy5weS4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YnVpbGQvbWFzdGVyLmNmZzogQ29uZmlndXJhdGlvbiBmb3IgYnVpbGRib3QuCisKIDIwMTgtMDUt
MjMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIzMjExMi4KSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1idWlsZC9jb25maWcuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjgwIEBACit7CisgICJ3b3JrZXJzIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIndlYmtp
dC1taXNjIiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIgorICAgIH0sCisgICAgeworICAgICAgIm5h
bWUiOiAidGFudHktZ3RrLXdrMi1ld3MiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImx0aWx2ZS1ndGstd2syLWV3cyIsCisgICAgICAicGxh
dGZvcm0iOiAiZ3RrIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiaWdhbGlhLXdwZS1l
d3MiLAorICAgICAgInBsYXRmb3JtIjogIndwZSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
IjogImFwZXJlei13cGUtZ2NjNS1ld3MiLAorICAgICAgInBsYXRmb3JtIjogIndwZSIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImFwZXJlei13cGUtZ2NjNi1ld3MiLAorICAgICAgInBs
YXRmb3JtIjogIndwZSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIndpbmNhaXJvLWV3
cy0wMDEiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNhaXJvIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAid2luY2Fpcm8tZXdzLTAwMiIsCisgICAgICAicGxhdGZvcm0iOiAid2luY2Fp
cm8iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ3aW5jYWlyby1ld3MtMDAzIiwKKyAg
ICAgICJwbGF0Zm9ybSI6ICJ3aW5jYWlybyIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
IndpbmNhaXJvLWV3cy0wMDQiLAorICAgICAgInBsYXRmb3JtIjogIndpbmNhaXJvIgorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTAwIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMt
c2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTAxIiwKKyAgICAgICJw
bGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdz
MTAyIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiZXdzMTAzIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA0IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJt
YWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA1IiwKKyAgICAg
ICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
ZXdzMTA2IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgorICAgIH0sCisgICAgewor
ICAgICAgIm5hbWUiOiAiZXdzMTA3IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2llcnJhIgor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTA4IiwKKyAgICAgICJwbGF0Zm9ybSI6
ICJpb3MtMTEiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MxMDkiLAorICAgICAg
InBsYXRmb3JtIjogImlvcy0xMSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEx
MiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAg
ICJuYW1lIjogImV3czExMyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExNCIsCisgICAgICAicGxhdGZvcm0iOiAibWFj
LXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExNSIsCisgICAgICAi
cGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3
czExNiIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czExNyIsCisgICAgICAicGxhdGZvcm0iOiAibWFjLXNpZXJyYSIKKyAg
ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czExOCIsCisgICAgICAicGxhdGZvcm0iOiAi
bWFjLWhpZ2gtc2llcnJhIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMTE5IiwK
KyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtaGlnaC1zaWVycmEiCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJld3MxMjAiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1oaWdoLXNpZXJyYSIK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyMyIsCisgICAgICAicGxhdGZvcm0i
OiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEy
NCIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogImV3czEyNSIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVs
YXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czEyNiIsCisgICAgICAicGxh
dGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
ImV3czEyNyIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lIjogImV3czEyOCIsCisgICAgICAicGxhdGZvcm0iOiAiKiIKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImV3czIwMCIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisg
ICAgeworICAgICAgIm5hbWUiOiAiZXdzMjAxIiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3MyMDIiLAorICAgICAgInBsYXRmb3JtIjog
IndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImV3czIwMyIsCisgICAgICAicGxh
dGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZXdzMjA0IiwKKyAg
ICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJld3My
MDUiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
IjogImV3czIwNiIsCisgICAgICAicGxhdGZvcm0iOiAid2luIgorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiZXdzMjA3IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJ3aW4iCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJld3MyMDgiLAorICAgICAgInBsYXRmb3JtIjogIndpbiIKKyAg
ICB9CisgIF0sCisgICJidWlsZGVycyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJTdHlsZS1F
V1MiLAorICAgICAgImZhY3RvcnkiOiAiU3R5bGVGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6
ICIqIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsid2Via2l0LW1pc2MiXQorICAgIH0sCisgICAg
eworICAgICAgIm5hbWUiOiAiR1RLLVdlYmtpdDItRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIkdU
S0ZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImd0ayIsCisgICAgICAid29ya2VybmFtZXMi
OiBbInRhbnR5LWd0ay13azItZXdzIiwgImx0aWx2ZS1ndGstd2syLWV3cyJdCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJpT1MtMTEtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogImlPU0Zh
Y3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogImlvcy0xMSIsCisgICAgICAid29ya2VybmFtZXMi
OiBbImV3czEwOCIsICJld3MxMDkiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiaU9T
LTExLVNpbXVsYXRvci1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiaU9TU2ltdWxhdG9yRmFjdG9y
eSIsCisgICAgICAicGxhdGZvcm0iOiAiaW9zLTExLXNpbXVsYXRvciIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEyMyIsICJld3MxMjQiLCAiZXdzMTI1IiwgImV3czEyNiJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTIiwKKyAg
ICAgICJmYWN0b3J5IjogIk1hY1dLMUZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1z
aWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEwMCIsICJld3MxMDEiLCAiZXdzMTAyIiwgImV3czEwMyJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzItRVdTIiwKKyAg
ICAgICJmYWN0b3J5IjogIk1hY1dLMkZhY3RvcnkiLAorICAgICAgInBsYXRmb3JtIjogIm1hYy1z
aWVycmEiLAorICAgICAgImNvbmZpZ3VyYXRpb24iOiAiUmVsZWFzZSIsCisgICAgICAid29ya2Vy
bmFtZXMiOiBbImV3czEwNCIsICJld3MxMDUiLCAiZXdzMTA2IiwgImV3czEwNyJdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1TaWVycmEtRGVidWctV0sxLUVXUyIsCisgICAg
ICAiZmFjdG9yeSI6ICJNYWNXSzFGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICJtYWMtc2ll
cnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIkRlYnVnIiwKKyAgICAgICJ3b3JrZXJuYW1l
cyI6IFsiZXdzMTEyIiwgImV3czExMyIsICJld3MxMTQiLCAiZXdzMTE1IiwgImV3czExNiJdCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJtYWNPUy1IaWdoLVNpZXJyYS1SZWxlYXNlLTMy
Yml0LVdLMi1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiTWFjV0syRmFjdG9yeSIsCisgICAgICAi
cGxhdGZvcm0iOiAibWFjLWhpZ2gtc2llcnJhIiwKKyAgICAgICJjb25maWd1cmF0aW9uIjogIlJl
bGVhc2UiLAorICAgICAgIndvcmtlcm5hbWVzIjogWyJld3MxMTgiLCAiZXdzMTE5IiwgImV3czEy
MCJdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJXaW5kb3dzLUVXUyIsCisgICAgICAi
ZmFjdG9yeSI6ICJXaW5kb3dzRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAid2luIiwKKyAg
ICAgICJ3b3JrZXJuYW1lcyI6IFsiZXdzMjAwIiwgImV3czIwMSIsICJld3MyMDIiLCAiZXdzMjAz
IiwgImV3czIwNCIsICJld3MyMDUiLCAiZXdzMjA2IiwgImV3czIwNyIsICJld3MyMDgiXQorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2luQ2Fpcm8tRVdTIiwKKyAgICAgICJmYWN0b3J5
IjogIldpbkNhaXJvRmFjdG9yeSIsCisgICAgICAicGxhdGZvcm0iOiAid2luY2Fpcm8iLAorICAg
ICAgIndvcmtlcm5hbWVzIjogWyJ3aW5jYWlyby1ld3MtMDAxIiwgIndpbmNhaXJvLWV3cy0wMDIi
LCAid2luY2Fpcm8tZXdzLTAwMyIsICJ3aW5jYWlyby1ld3MtMDA0Il0KKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogIldQRS1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiV1BFRmFjdG9yeSIs
CisgICAgICAicGxhdGZvcm0iOiAid3BlIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6IFsiaWdhbGlh
LXdwZS1ld3MiLCAiYXBlcmV6LXdwZS1nY2M1LWV3cyIsICJhcGVyZXotd3BlLWdjYzYtZXdzIl0K
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkpTQy10ZXN0cy1FV1MiLAorICAgICAgImZh
Y3RvcnkiOiAiSlNDVGVzdHNGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIiwKKyAgICAg
ICJ3b3JrZXJuYW1lcyI6IFsiZXdzMTI3IiwgImV3czEyOCJdCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJCaW5kaW5ncy10ZXN0cy1FV1MiLAorICAgICAgImZhY3RvcnkiOiAiQmluZGlu
Z3NGYWN0b3J5IiwKKyAgICAgICJwbGF0Zm9ybSI6ICIqIiwKKyAgICAgICJ3b3JrZXJuYW1lcyI6
IFsid2Via2l0LW1pc2MiXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiV2Via2l0cHkt
dGVzdHMtRVdTIiwKKyAgICAgICJmYWN0b3J5IjogIldlYmtpdHB5RmFjdG9yeSIsCisgICAgICAi
cGxhdGZvcm0iOiAiKiIsCisgICAgICAid29ya2VybmFtZXMiOiBbIndlYmtpdC1taXNjIl0KKyAg
ICB9CisgIF0sCisgICJzY2hlZHVsZXJzIjogWworICAgIHsKKyAgICAgICJ0eXBlIjogIkFueUJy
YW5jaFNjaGVkdWxlciIsCisgICAgICAibmFtZSI6ICJtaXNjLXRyaWdnZXIiLAorICAgICAgInRy
ZWVTdGFibGVUaW1lciI6IDAsCisgICAgICAiYnVpbGRlck5hbWVzIjogWyJTdHlsZS1FV1MiLCAi
SlNDLXRlc3RzLUVXUyIsICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTIiwgIkdUSy1XZWJr
aXQyLUVXUyIsICJtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzItRVdTIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIm1hY09TLUhpZ2gtU2llcnJhLVJlbGVhc2UtMzJiaXQtV0syLUVXUyIsICJXUEUt
RVdTIiwgIldpbmRvd3MtRVdTIiwgImlPUy0xMS1FV1MiLCAiV2luQ2Fpcm8tRVdTIiwgImlPUy0x
MS1TaW11bGF0b3ItRVdTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIldlYmtpdHB5LXRlc3Rz
LUVXUyIsICJtYWNPUy1TaWVycmEtRGVidWctV0sxLUVXUyIsICJCaW5kaW5ncy10ZXN0cy1FV1Mi
XQorICAgIH0KKyAgXQorfQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWJ1aWxk
L2ZhY3Rvcmllcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YnVpbGQvZmFjdG9yaWVzLnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gYnVpbGRi
b3QucHJvY2VzcyBpbXBvcnQgZmFjdG9yeQorCisKK2NsYXNzIFN0eWxlRmFjdG9yeShmYWN0b3J5
LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIEdUS0ZhY3RvcnkoZmFjdG9yeS5C
dWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBpT1NGYWN0b3J5KGZhY3RvcnkuQnVp
bGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgaU9TU2ltdWxhdG9yRmFjdG9yeShmYWN0
b3J5LkJ1aWxkRmFjdG9yeSk6CisgICAgcGFzcworCisKK2NsYXNzIE1hY1dLMUZhY3RvcnkoZmFj
dG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBNYWNXSzJGYWN0b3J5KGZh
Y3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2luZG93c0ZhY3Rvcnko
ZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXaW5DYWlyb0ZhY3Rv
cnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgorICAgIHBhc3MKKworCitjbGFzcyBXUEVGYWN0b3J5
KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgSlNDVGVzdHNGYWN0
b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgQmluZGluZ3NG
YWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCisKKworY2xhc3MgV2Via2l0
cHlGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKKyAgICBwYXNzCkluZGV4OiBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQkobm9uZXhpc3Rl
bnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbG9hZENvbmZpZy5weQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKKworZnJvbSBidWlsZGJv
dC5zY2hlZHVsZXIgaW1wb3J0IEFueUJyYW5jaFNjaGVkdWxlciwgUGVyaW9kaWMsIERlcGVuZGVu
dCwgVHJpZ2dlcmFibGUsIE5pZ2h0bHkKK2Zyb20gYnVpbGRib3Qud29ya2VyIGltcG9ydCBXb3Jr
ZXIKK2Zyb20gYnVpbGRib3QudXRpbCBpbXBvcnQgaWRlbnRpZmllcnMgYXMgYnVpbGRib3RfaWRl
bnRpZmllcnMKKworZnJvbSBmYWN0b3JpZXMgaW1wb3J0ICoKKworQlVJTERFUl9OQU1FX0xFTkdU
SF9MSU1JVCA9IDcwCitTVEVQX05BTUVfTEVOR1RIX0xJTUlUID0gNTAKKworCitkZWYgbG9hZEJ1
aWxkZXJDb25maWcoYyk6CisgICAgY29uZmlnID0ganNvbi5sb2FkKG9wZW4oJ2NvbmZpZy5qc29u
JykpCisgICAgcGFzc3dvcmRzID0ganNvbi5sb2FkKG9wZW4oJ3Bhc3N3b3Jkcy5qc29uJykpCisg
ICAgY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeShjb25maWdbJ3dvcmtlcnMn
XSwgY29uZmlnWydidWlsZGVycyddKQorCisgICAgY1snd29ya2VycyddID0gW1dvcmtlcih3b3Jr
ZXJbJ25hbWUnXSwgcGFzc3dvcmRzLmdldCh3b3JrZXJbJ25hbWUnXSwgJ3Bhc3N3b3JkJykpIGZv
ciB3b3JrZXIgaW4gY29uZmlnWyd3b3JrZXJzJ11dCisgICAgY1snYnVpbGRlcnMnXSA9IFtdCisg
ICAgZm9yIGJ1aWxkZXIgaW4gY29uZmlnWydidWlsZGVycyddOgorICAgICAgICBidWlsZGVyWyd0
YWdzJ10gPSBnZXRUYWdzRm9yQnVpbGRlcihidWlsZGVyKQorICAgICAgICBmYWN0b3J5ID0gZ2xv
YmFscygpW2J1aWxkZXJbJ2ZhY3RvcnknXV0KKyAgICAgICAgYnVpbGRlclsnZmFjdG9yeSddID0g
ZmFjdG9yeSgpCisgICAgICAgIGRlbCBidWlsZGVyWydwbGF0Zm9ybSddCisgICAgICAgIGlmICdj
b25maWd1cmF0aW9uJyBpbiBidWlsZGVyOgorICAgICAgICAgICAgZGVsIGJ1aWxkZXJbJ2NvbmZp
Z3VyYXRpb24nXQorICAgICAgICBjWydidWlsZGVycyddLmFwcGVuZChidWlsZGVyKQorCisgICAg
Y1snc2NoZWR1bGVycyddID0gW10KKyAgICBmb3Igc2NoZWR1bGVyIGluIGNvbmZpZ1snc2NoZWR1
bGVycyddOgorICAgICAgICBzY2hlZHVsZXJUeXBlID0gZ2xvYmFscygpW3NjaGVkdWxlci5wb3Ao
J3R5cGUnKV0KKyAgICAgICAgIyBQeXRob24gMi42IGNhbid0IGhhbmRsZSB1bmljb2RlIGtleXMg
YXMga2V5d29yZCBhcmd1bWVudHM6CisgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9p
c3N1ZTI2NDYuICBNb2Rlcm4gdmVyc2lvbnMgb2YganNvbiByZXR1cm4KKyAgICAgICAgIyB1bmlj
b2RlIHN0cmluZ3MgZnJvbSBqc29uLmxvYWQsIHNvIHdlIG1hcCBhbGwga2V5cyB0byBzdHIgb2Jq
ZWN0cy4KKyAgICAgICAgc2NoZWR1bGVyID0gZGljdChtYXAobGFtYmRhIGtleV92YWx1ZV9wYWly
OiAoc3RyKGtleV92YWx1ZV9wYWlyWzBdKSwga2V5X3ZhbHVlX3BhaXJbMV0pLCBzY2hlZHVsZXIu
aXRlbXMoKSkpCisgICAgICAgIGNbJ3NjaGVkdWxlcnMnXS5hcHBlbmQoc2NoZWR1bGVyVHlwZSgq
KnNjaGVkdWxlcikpCisKKworZGVmIGNoZWNrVmFsaWRXb3JrZXIod29ya2VyKToKKyAgICBpZiBu
b3Qgd29ya2VyOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dvcmtlciBpcyBOb25lIG9yIEVt
cHR5LicpCisKKyAgICBpZiBub3Qgd29ya2VyLmdldCgnbmFtZScpOgorICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ1dvcmtlciAie30iIGRvZXMgbm90IGhhdmUgbmFtZSBkZWZpbmVkLicuZm9ybWF0
KHdvcmtlcikpCisKKyAgICBpZiBub3Qgd29ya2VyLmdldCgncGxhdGZvcm0nKToKKyAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdXb3JrZXIge30gZG9lcyBub3QgaGF2ZSBwbGF0Zm9ybSBkZWZpbmVk
LicuZm9ybWF0KHdvcmtlclsnbmFtZSddKSkKKworCitkZWYgY2hlY2tWYWxpZEJ1aWxkZXIoYnVp
bGRlcik6CisgICAgaWYgbm90IGJ1aWxkZXI6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVp
bGRlciBpcyBOb25lIG9yIEVtcHR5LicpCisKKyAgICBpZiBub3QgYnVpbGRlci5nZXQoJ25hbWUn
KToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVyICJ7fSIgZG9lcyBub3QgaGF2ZSBu
YW1lIGRlZmluZWQuJy5mb3JtYXQoYnVpbGRlcikpCisKKyAgICBpZiBub3QgYnVpbGRib3RfaWRl
bnRpZmllcnMuaWRlbnRfcmUubWF0Y2goYnVpbGRlclsnbmFtZSddKToKKyAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdCdWlsZGVyIG5hbWUge30gaXMgbm90IGEgdmFsaWQgYnVpbGRib3QgaWRlbnRp
Zmllci4nLmZvcm1hdChidWlsZGVyWyduYW1lJ10pKQorCisgICAgaWYgbGVuKGJ1aWxkZXJbJ25h
bWUnXSkgPiBCVUlMREVSX05BTUVfTEVOR1RIX0xJTUlUOgorICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0J1aWxkZXIgbmFtZSB7fSBpcyBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgYnkgQnVp
bGRib3QgKHt9IGNoYXJhY3RlcnMpLicuZm9ybWF0KGJ1aWxkZXJbJ25hbWUnXSwgQlVJTERFUl9O
QU1FX0xFTkdUSF9MSU1JVCkpCisKKyAgICBpZiAnY29uZmlndXJhdGlvbicgaW4gYnVpbGRlciBh
bmQgYnVpbGRlclsnY29uZmlndXJhdGlvbiddIG5vdCBpbiBbJ0RlYnVnJywgJ1Byb2R1Y3Rpb24n
LCAnUmVsZWFzZSddOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY29uZmlndXJh
dGlvbjoge30gZm9yIGJ1aWxkZXI6IHt9Jy5mb3JtYXQoYnVpbGRlci5nZXQoJ2NvbmZpZ3VyYXRp
b24nKSwgYnVpbGRlci5nZXQoJ25hbWUnKSkpCisKKyAgICBpZiBub3QgYnVpbGRlci5nZXQoJ2Zh
Y3RvcnknKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVyIHt9IGRvZXMgbm90IGhh
dmUgZmFjdG9yeSBkZWZpbmVkLicuZm9ybWF0KGJ1aWxkZXJbJ25hbWUnXSkpCisKKyAgICBpZiBu
b3QgYnVpbGRlci5nZXQoJ3BsYXRmb3JtJyk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVp
bGRlciB7fSBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRlZmluZWQuJy5mb3JtYXQoYnVpbGRlclsn
bmFtZSddKSkKKworCitkZWYgY2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeSh3
b3JrZXJzLCBidWlsZGVycyk6CisgICAgZGVmIF9maW5kX3dvcmtlcl93aXRoX25hbWUod29ya2Vy
cywgd29ya2VyX25hbWUpOgorICAgICAgICBmb3Igd29ya2VyIGluIHdvcmtlcnM6CisgICAgICAg
ICAgICBpZiB3b3JrZXJbJ25hbWUnXSA9PSB3b3JrZXJfbmFtZToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gd29ya2VyCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBmb3Igd29ya2VyIGluIHdv
cmtlcnM6CisgICAgICAgIGNoZWNrVmFsaWRXb3JrZXIod29ya2VyKQorCisgICAgZm9yIGJ1aWxk
ZXIgaW4gYnVpbGRlcnM6CisgICAgICAgIGNoZWNrVmFsaWRCdWlsZGVyKGJ1aWxkZXIpCisgICAg
ICAgIGZvciB3b3JrZXJfbmFtZSBpbiBidWlsZGVyWyd3b3JrZXJuYW1lcyddOgorICAgICAgICAg
ICAgd29ya2VyID0gX2ZpbmRfd29ya2VyX3dpdGhfbmFtZSh3b3JrZXJzLCB3b3JrZXJfbmFtZSkK
KyAgICAgICAgICAgIGlmIHdvcmtlciBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignQnVpbGRlciB7fSBoYXMgd29ya2VyIHt9LCB3aGljaCBpcyBub3QgZGVmaW5lZCBp
biB3b3JrZXJzIGxpc3QhJy5mb3JtYXQoYnVpbGRlclsnbmFtZSddLCB3b3JrZXJfbmFtZSkpCisK
KyAgICAgICAgICAgIGlmIHdvcmtlclsncGxhdGZvcm0nXSAhPSBidWlsZGVyWydwbGF0Zm9ybSdd
OgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciB7MH0gaXMgZm9yIHBs
YXRmb3JtIHsxfSwgYnV0IGhhcyB3b3JrZXIgezJ9IGZvciBwbGF0Zm9ybSB7M30hJy5mb3JtYXQo
CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXJbJ25hbWUnXSwgYnVpbGRlclsncGxhdGZvcm0n
XSwgd29ya2VyWyduYW1lJ10sIHdvcmtlclsncGxhdGZvcm0nXSkpCisKKworZGVmIGdldEJsYWNr
TGlzdGVkVGFncygpOgorICAgICIiIgorICAgIFdlIG1haW50YWluIGEgYmxhY2tsaXN0IG9mIHdv
cmRzIHdoaWNoIHdlIGRvIG5vdCB3YW50IHRvIGRpc3BsYXkgYXMgdGFnIGluIGJ1aWxkYm90Lgor
ICAgIFdlIGdlbmVyYXRlIGEgbGlzdCBvZiB0YWdzIGJ5IHNwbGl0dGluZyB0aGUgYnVpbGRlciBu
YW1lLiBXZSBkbyBub3Qgd2FudCBjZXJ0YWluIHdvcmRzIGFzIHRhZy4KKyAgICBGb3IgZS5nLiB3
ZSBkb24ndCB3YW50ICcxMSdhcyB0YWcgZm9yIGJ1aWxkZXIgaU9TLTExLVNpbXVsYXRvci1FV1MK
KyAgICAiIiIKKyAgICB0YWdzX2JsYWNrbGlzdCA9IFtzdHIoaSkgZm9yIGkgaW4geHJhbmdlKDAs
IDIwKV0KKyAgICB0YWdzX2JsYWNrbGlzdC5leHRlbmQoWydFV1MnLCAnVHJ5Qm90J10pCisgICAg
cmV0dXJuIHRhZ3NfYmxhY2tsaXN0CisKKworZGVmIGdldFZhbGlkVGFncyh0YWdzKToKKyAgICBy
ZXR1cm4gbGlzdChzZXQodGFncykgLSBzZXQoZ2V0QmxhY2tMaXN0ZWRUYWdzKCkpKQorCisKK2Rl
ZiBnZXRUYWdzRm9yQnVpbGRlcihidWlsZGVyKToKKyAgICBrZXl3b3JkcyA9IGZpbHRlcihOb25l
LCByZS5zcGxpdCgnWywgXC1fOigpXSsnLCBzdHIoYnVpbGRlclsnbmFtZSddKSkpCisgICAgcmV0
dXJuIGdldFZhbGlkVGFncyhrZXl3b3JkcykKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1idWlsZC9sb2FkQ29uZmlnX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9sb2FkQ29uZmlnX3VuaXR0ZXN0LnB5CShub25leGlz
dGVudCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1idWlsZC9sb2FkQ29uZmlnX3Vu
aXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQ5IEBACisjIS91c3IvYmluL2Vu
diBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitp
bXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGxvYWRDb25maWcKKworCitjbGFzcyBDb25maWdEb3RK
U09OVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfY29uZmlndXJhdGlvbihz
ZWxmKToKKyAgICAgICAgbG9hZENvbmZpZy5sb2FkQnVpbGRlckNvbmZpZyh7fSkKKworCitjbGFz
cyBUYWdzRm9yQnVpbGRlclRlZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdmVyaWZ5
VGFncyhzZWxmLCBidWlsZGVyTmFtZSwgZXhwZWN0ZWRUYWdzKToKKyAgICAgICAgdGFncyA9IGxv
YWRDb25maWcuZ2V0VGFnc0ZvckJ1aWxkZXIoeyduYW1lJzogYnVpbGRlck5hbWV9KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZCh0YWdzKSwgc29ydGVkKGV4cGVjdGVkVGFncykpCisK
KyAgICBkZWYgdGVzdF9nZXRUYWdzRm9yQnVpbGRlcihzZWxmKToKKyAgICAgICAgc2VsZi52ZXJp
ZnlUYWdzKCdFV1MnLCBbXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCdUcnlCb3QtMTAtRVdT
JywgW10pCisgICAgICAgIHNlbGYudmVyaWZ5VGFncygnMTEtRVdTJywgW10pCisgICAgICAgIHNl
bGYudmVyaWZ5VGFncygnMzItRVdTJywgWyczMiddKQorICAgICAgICBzZWxmLnZlcmlmeVRhZ3Mo
J2lPUy0xMS1FV1MnLCBbJ2lPUyddKQorICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ2lPUygxMSks
KHRlc3QpLUVXUycsIFsnaU9TJywgJ3Rlc3QnXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCdX
aW5kb3dzLUVXUycsIFsnV2luZG93cyddKQorICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ1dpbmRv
d3NfV2luZG93cycsIFsnV2luZG93cyddKQorICAgICAgICBzZWxmLnZlcmlmeVRhZ3MoJ0dUSy1X
ZWJraXQyLUVXUycsIFsnR1RLJywgJ1dlYmtpdDInXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdz
KCdtYWNPUy1TaWVycmEtUmVsZWFzZS1XSzEtRVdTJywgWydTaWVycmEnLCAnUmVsZWFzZScsICdt
YWNPUycsICdXSzEnXSkKKyAgICAgICAgc2VsZi52ZXJpZnlUYWdzKCdtYWNPUy1IaWdoLVNpZXJy
YS1SZWxlYXNlLTMyYml0LVdLMi1FV1MnLCBbJ21hY09TJywgJ0hpZ2gnLCAnU2llcnJhJywgJ1Jl
bGVhc2UnLCAnV0syJywgJzMyYml0J10pCisKKyAgICBkZWYgdGVzdF90YWdzX3R5cGUoc2VsZik6
CisgICAgICAgIHRhZ3MgPSBsb2FkQ29uZmlnLmdldFRhZ3NGb3JCdWlsZGVyKHsnbmFtZSc6IHUn
aU9TLTExLUVXUyd9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhZ3MsIFsnaU9TJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZSh0YWdzWzBdKSwgc3RyKQorCisgICAgZGVmIHRl
c3RfZ2V0QmxhY2tMaXN0ZWRUYWdzKHNlbGYpOgorICAgICAgICBibGFja2xpc3RlZFRhZ3MgPSBs
b2FkQ29uZmlnLmdldEJsYWNrTGlzdGVkVGFncygpCisgICAgICAgIGV4cGVjdGVkVGFncyA9IFsn
MCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsICcxMCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAnMTEnLCAnMTInLCAnMTMnLCAnMTQnLCAnMTUnLCAnMTYn
LCAnMTcnLCAnMTgnLCAnMTknLCAnRVdTJywgJ1RyeUJvdCddCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYmxhY2tsaXN0ZWRUYWdzLCBleHBlY3RlZFRhZ3MpCisKKworY2xhc3MgVGVzdGNoZWNr
VmFsaWRXb3JrZXIodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2ludmFsaWRfd29y
a2VyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMg
Y29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZFdvcmtlcih7fSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ1dvcmtlciBp
cyBOb25lIG9yIEVtcHR5LicsKSkKKworICAgIGRlZiB0ZXN0X3dvcmtlcl93aXRoX21pc3Npbmdf
bmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24pIGFz
IGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRXb3JrZXIoeydwbGF0
Zm9ybSc6ICdtYWMtc2llcnJhJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5l
eGNlcHRpb24uYXJncywgKCdXb3JrZXIgIntcJ3BsYXRmb3JtXCc6IFwnbWFjLXNpZXJyYVwnfSIg
ZG9lcyBub3QgaGF2ZSBuYW1lIGRlZmluZWQuJywpKQorCisgICAgZGVmIHRlc3Rfd29ya2VyX3dp
dGhfbWlzc2luZ19wbGF0TmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhFeGNlcHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFs
aWRXb3JrZXIoeyduYW1lJzogJ2V3czEwMSd9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnV29ya2VyIGV3czEwMSBkb2VzIG5vdCBoYXZlIHBsYXRm
b3JtIGRlZmluZWQuJywpKQorCisgICAgZGVmIHRlc3RfdmFsaWRfd29ya2VyKHNlbGYpOgorICAg
ICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRXb3JrZXIoeyduYW1lJzogJ2V3czEwMScsICdwbGF0
Zm9ybSc6ICdtYWMtc2llcnJhJ30pCisKKworY2xhc3MgVGVzdGNoZWNrVmFsaWRCdWlsZGVyKHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2J1aWxkZXIoc2VsZik6Cisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAg
ICAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7fSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0J1aWxkZXIgaXMgTm9uZSBvciBF
bXB0eS4nLCkpCisKKyAgICBkZWYgdGVzdF9idWlsZGVyX3dpdGhfbWlzc2luZ19uYW1lKHNlbGYp
OgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoK
KyAgICAgICAgICAgIGxvYWRDb25maWcuY2hlY2tWYWxpZEJ1aWxkZXIoeydwbGF0Zm9ybSc6ICdt
YWMtc2llcnJhJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24u
YXJncywgKCdCdWlsZGVyICJ7XCdwbGF0Zm9ybVwnOiBcJ21hYy1zaWVycmFcJ30iIGRvZXMgbm90
IGhhdmUgbmFtZSBkZWZpbmVkLicsKSkKKworICAgIGRlZiB0ZXN0X2J1aWxkZXJfd2l0aF9pbnZh
bGlkX2lkZW50aWZpZXIoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhj
ZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVp
bGRlcih7J25hbWUnOiAnbWFjLXdrMih0ZXN0KSd9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbnRleHQuZXhjZXB0aW9uLmFyZ3MsICgnQnVpbGRlciBuYW1lIG1hYy13azIodGVzdCkgaXMg
bm90IGEgdmFsaWQgYnVpbGRib3QgaWRlbnRpZmllci4nLCkpCisKKyAgICBkZWYgdGVzdF9idWls
ZGVyX3dpdGhfZXh0cmFfbG9uZ19uYW1lKHNlbGYpOgorICAgICAgICBsb25nTmFtZSA9ICdhJyAq
IDcxCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0
OgorICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7J25hbWUnOiBsb25n
TmFtZX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywg
KCdCdWlsZGVyIG5hbWUge30gaXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGJ5IEJ1aWxk
Ym90ICg3MCBjaGFyYWN0ZXJzKS4nLmZvcm1hdChsb25nTmFtZSksKSkKKworICAgIGRlZiB0ZXN0
X2J1aWxkZXJfd2l0aF9pbnZhbGlkX2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0OgorICAgICAgICAgICAgbG9h
ZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7J25hbWUnOiAnbWFjLXdrMicsICdjb25maWd1cmF0
aW9uJzogJ2FzYW4nfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2VwdGlv
bi5hcmdzLCAoJ0ludmFsaWQgY29uZmlndXJhdGlvbjogYXNhbiBmb3IgYnVpbGRlcjogbWFjLXdr
MicsKSkKKworICAgIGRlZiB0ZXN0X2J1aWxkZXJfd2l0aF9taXNzaW5nX2ZhY3Rvcnkoc2VsZik6
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBjb250ZXh0Ogor
ICAgICAgICAgICAgbG9hZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7J25hbWUnOiAnbWFjLXdr
MicsICdjb25maWd1cmF0aW9uJzogJ1JlbGVhc2UnfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb250ZXh0LmV4Y2VwdGlvbi5hcmdzLCAoJ0J1aWxkZXIgbWFjLXdrMiBkb2VzIG5vdCBoYXZl
IGZhY3RvcnkgZGVmaW5lZC4nLCkpCisKKyAgICBkZWYgdGVzdF9idWlsZGVyX3dpdGhfbWlzc2lu
Z19wbGF0Zm9ybShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRp
b24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrVmFsaWRCdWlsZGVy
KHsnbmFtZSc6ICdtYWMtd2syJywgJ2NvbmZpZ3VyYXRpb24nOiAnUmVsZWFzZScsICdmYWN0b3J5
JzogJ1dLMkZhY3RvcnknfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmV4Y2Vw
dGlvbi5hcmdzLCAoJ0J1aWxkZXIgbWFjLXdrMiBkb2VzIG5vdCBoYXZlIHBsYXRmb3JtIGRlZmlu
ZWQuJywpKQorCisgICAgZGVmIHRlc3RfdmFsaWRfYnVpbGRlcihzZWxmKToKKyAgICAgICAgbG9h
ZENvbmZpZy5jaGVja1ZhbGlkQnVpbGRlcih7J25hbWUnOiAnbWFjLXdrMicsICdjb25maWd1cmF0
aW9uJzogJ1JlbGVhc2UnLCAnZmFjdG9yeSc6ICdXSzJGYWN0b3J5JywgJ3BsYXRmb3JtJzogJ21h
Yy1zaWVycmEnfSkKKworCitjbGFzcyBUZXN0Y2hlY2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25z
aXN0ZW5jeSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuV0syQnVpbGRlciA9IHsnbmFtZSc6ICdtYWMtd2sy
JywgJ2ZhY3RvcnknOiAnV0syRmFjdG9yeScsICdwbGF0Zm9ybSc6ICdtYWMtc2llcnJhJywgJ3dv
cmtlcm5hbWVzJzogWydld3MxMDEnLCAnZXdzMTAyJ119CisgICAgICAgIHNlbGYuZXdzMTAxID0g
eyduYW1lJzogJ2V3czEwMScsICdwbGF0Zm9ybSc6ICdtYWMtc2llcnJhJ30KKyAgICAgICAgc2Vs
Zi5ld3MxMDIgPSB7J25hbWUnOiAnZXdzMTAyJywgJ3BsYXRmb3JtJzogJ2lvcy0xMSd9CisgICAg
ICAgIHN1cGVyKFRlc3RjaGVja1dvcmtlcnNBbmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5LCBzZWxm
KS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgdGVzdF9jaGVja1dvcmtlcnNB
bmRCdWlsZGVyc0ZvckNvbnNpc3RlbmN5KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbikgYXMgY29udGV4dDoKKyAgICAgICAgICAgIGxvYWRDb25maWcuY2hl
Y2tXb3JrZXJzQW5kQnVpbGRlcnNGb3JDb25zaXN0ZW5jeShbXSwgW3NlbGYuV0syQnVpbGRlcl0p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGV4dC5leGNlcHRpb24uYXJncywgKCdCdWls
ZGVyIG1hYy13azIgaGFzIHdvcmtlciBld3MxMDEsIHdoaWNoIGlzIG5vdCBkZWZpbmVkIGluIHdv
cmtlcnMgbGlzdCEnLCkpCisKKyAgICBkZWYgdGVzdF9jaGVja1dvcmtlcnNBbmRCdWlsZGVyc0Zv
ckNvbnNpc3RlbmN5MShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFeGNl
cHRpb24pIGFzIGNvbnRleHQ6CisgICAgICAgICAgICBsb2FkQ29uZmlnLmNoZWNrV29ya2Vyc0Fu
ZEJ1aWxkZXJzRm9yQ29uc2lzdGVuY3koW3NlbGYuZXdzMTAxLCBzZWxmLmV3czEwMl0sIFtzZWxm
LldLMkJ1aWxkZXJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRleHQuZXhjZXB0aW9u
LmFyZ3MsICgnQnVpbGRlciBtYWMtd2syIGlzIGZvciBwbGF0Zm9ybSBtYWMtc2llcnJhLCBidXQg
aGFzIHdvcmtlciBld3MxMDIgZm9yIHBsYXRmb3JtIGlvcy0xMSEnLCkpCisKKyAgICBkZWYgdGVz
dF9zdWNjZXNzKHNlbGYpOgorICAgICAgICBsb2FkQ29uZmlnLmNoZWNrV29ya2Vyc0FuZEJ1aWxk
ZXJzRm9yQ29uc2lzdGVuY3koW3NlbGYuZXdzMTAxLCB7J25hbWUnOiAnZXdzMTAyJywgJ3BsYXRm
b3JtJzogJ21hYy1zaWVycmEnfV0sIFtzZWxmLldLMkJ1aWxkZXJdKQorCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCkluZGV4OiBUb29scy9CdWlsZFNs
YXZlU3VwcG9ydC9ld3MtYnVpbGQvbWFzdGVyLmNmZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWls
ZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbWFzdGVyLmNmZwkobm9uZXhpc3RlbnQpCisrKyBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYnVpbGQvbWFzdGVyLmNmZwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIzIEBACitpbXBvcnQgbG9hZENvbmZpZworCisKK2MgPSBCdWlsZG1hc3RlckNv
bmZpZyA9IHt9CisKK2NbJ3d3dyddID0gZGljdChwb3J0PTgwMTAsCisgICAgICAgICAgICAgICAg
cGx1Z2lucz1kaWN0KHdhdGVyZmFsbF92aWV3PXt9LCBjb25zb2xlX3ZpZXc9e30pKQorCitjWyd3
d3cnXVsndWlfZGVmYXVsdF9jb25maWcnXSA9IHsgCisgICAgJ0J1aWxkZXJzLnNob3dfd29ya2Vy
c19uYW1lJzogVHJ1ZSwKKyAgICAnQnVpbGRlcnMuYnVpbGRGZXRjaExpbWl0JzogMTAwMCwKKyAg
ICAnV29ya2Vycy5zaG93V29ya2VyQnVpbGRlcnMnOiBUcnVlLAorfQorCitjWydwcm90b2NvbHMn
XSA9IHsncGInOiB7J3BvcnQnOiA5OTg5fX0KKworY1sncHJvamVjdE5hbWUnXSA9ICdXZWJLaXQg
RVdTJworY1sncHJvamVjdFVSTCddID0gJ2h0dHBzOi8vZXdzLWJ1aWxkLndlYmtpdC5vcmcvJwor
Y1snYnVpbGRib3RVUkwnXSA9ICdodHRwczovL2V3cy1idWlsZC53ZWJraXQub3JnLycKKworY1sn
YnVpbGRib3ROZXRVc2FnZURhdGEnXSA9IE5vbmUKKworbG9hZENvbmZpZy5sb2FkQnVpbGRlckNv
bmZpZyhjKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>