<?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>147280</bug_id>
          
          <creation_ts>2015-07-24 15:29:51 -0700</creation_ts>
          <short_desc>Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions</short_desc>
          <delta_ts>2015-08-07 15:49:13 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=147796</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason Marcell">jmarcell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>jmarcell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112117</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-07-24 15:29:51 -0700</bug_when>
    <thetext>This purpose of this patch is to refactor the codebase in order to convert the openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.

I&apos;ve been working with Dan Bates on an iterative approach to refactoring the codebase so that we can ultimately handle different repositories other than &quot;opensource&quot; and &quot;internal&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112121</commentid>
    <comment_count>1</comment_count>
      <attachid>257486</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-07-24 15:44:33 -0700</bug_when>
    <thetext>Created attachment 257486
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112142</commentid>
    <comment_count>2</comment_count>
      <attachid>257486</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-24 17:01:03 -0700</bug_when>
    <thetext>Comment on attachment 257486
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.

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

This patch looks good. I would like to see another iteration of it.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:200
&gt;          // revision. Therefore, we only look at got_revision to extract the Internal revision when it&apos;s
&gt;          // a dictionary.

The second paragraph of this comment is inconsistent with the code given the proposed changes. We should either update the second paragraph of the comment (if we feel it has value) or remove it.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:207
&gt; +            var key = repository;
&gt; +            var fallbackKey = &quot;Internal&quot;;

For your consideration, I suggest we make fallbackKey null by default because the use of a fallback key is specific to the OpenSource and Internal repositories. You may also want to consider declaring key and fallbackKey here and moving there definition into an else clause of the if-else block below such that the for-loop body has the form:

var key;
var fallbackKey;
if (repository === &quot;openSource&quot;) {
    ...
} else if (repository === &quot;internal&quot;) {
    ...
} else {
    key = repository;
    fallbackKey = null;
}
this.revision[repository] = parseRevisionProperty(revisionProperty, key, fallbackKey);

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:269
&gt;      compareIterations: function(a, b)

We should have a plan on how we are going to abstract this function to work on an arbitrary repository before landing this change.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:271
&gt; +        var result = b.revision[&quot;openSource&quot;] - a.revision[&quot;openSource&quot;];

I suggest that we create a named constant for the string literals &quot;openSource&quot; and referencing this constant throughout the patch instead of hardcoding &quot;openSource&quot; as a string literal. The benefit of this approach is that if we decide to change the repository name then we can update the the constant as opposed to performing a find-and-replace throughout the code for the string literal &quot;openSource&quot;.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:275
&gt; +        result = b.revision[&quot;internal&quot;] - a.revision[&quot;internal&quot;];

Similarly, I suggest we create a named constant for the string literal &quot;internal&quot;.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:287
&gt;      compareIterationsByRevisions: function(a, b)

We should have a plan on how we are going to abstract this function to work on an arbitrary repository before landing this change.

&gt; Tools/ChangeLog:18
&gt; +        Using &quot;revision&quot; property instead of &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.

Minor: We tend to write the remark &quot;Ditto.&quot; whenever the remark of the previous function change is applicable to the current function so as to avoid repeating the same remark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113495</commentid>
    <comment_count>3</comment_count>
      <attachid>257853</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-07-30 14:32:17 -0700</bug_when>
    <thetext>Created attachment 257853
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.

1. I fixed up the change log to use &quot;Ditto.&quot;
2. I created a set of constants for repository names so that we&apos;re no longer using magic strings. I also have a plan in place for using these constants in a subsequent patch.
3. I moved the comment about &quot;got_revision&quot; formats to a more relevant section of the codebase.
4. I made the fallbackKey null by default.
5. I declared key and fallbackKey at the top of this if statement and created a new &quot;else&quot; clause:

var key;
var fallbackKey;
if (repository === &quot;openSource&quot;) {
    ...
} else if (repository === &quot;internal&quot;) {
    ...
} else {
    key = repository;
    fallbackKey = null;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114298</commentid>
    <comment_count>4</comment_count>
      <attachid>257853</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-03 12:34:18 -0700</bug_when>
    <thetext>Comment on attachment 257853
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.

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

Looks good. I noticed some very minor nits.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:207
&gt; +    _revisionContentWithPopoverForIteration: function(iteration, previousIteration, repository, trac)

Would repositoryName be a better name for the argument repository?

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:265
&gt; +        var openSourceContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, &quot;openSource&quot;, webkitTrac);

We should pass Dashboard.Repository.OpenSource.name to _revisionContentWithPopoverForIteration() instead of hardcoding the value of Dashboard.Repository.OpenSource.name.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:270
&gt; +        var internalContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, &quot;internal&quot;, internalTrac);

Similarly, we should pass Dashboard.Repository.Internal.name instead of hardcoding &quot;internal&quot; on this line.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:41
&gt; +        OpenSource: { name: &quot;openSource&quot;, sort: 0 },
&gt; +        Internal: { name: &quot;internal&quot;, sort: 1 },

I suggest that we rename the property &quot;sort&quot; to &quot;order&quot; to be consistent with the name of the property with the same purpose in the Dashboard.Platform dictionaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114339</commentid>
    <comment_count>5</comment_count>
      <attachid>258106</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-03 13:51:32 -0700</bug_when>
    <thetext>Created attachment 258106
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114446</commentid>
    <comment_count>6</comment_count>
      <attachid>258106</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-03 17:16:53 -0700</bug_when>
    <thetext>Comment on attachment 258106
Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:202
&gt; +            if (repository === &quot;openSource&quot;) {

We should use Dashboard.Repository.OpenSource.name instead of the string literal &quot;openSource&quot;.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:205
&gt; +            } else if (repository === &quot;internal&quot;) {

Similarly, we should use Dashboard.Repository.Internal.name instead of the string literal &quot;internal&quot;.

&gt; Tools/ChangeLog:11
&gt; +        (parseRevisionProperty): Moved a comment up to parseRevisionProperty where it seems more relevent.

Nit: relevent =&gt; relevant

&gt; Tools/ChangeLog:21
&gt; +        Added &quot;trac&quot; parameter in order to specify the trac instance to use.

Nit: Please move this sentence such that it starts on line 20 (above) and break it across multiple lines if needed.

&gt; Tools/ChangeLog:22
&gt; +        Using &quot;revision&quot; property instead of &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.

Nit: Please move this sentence such that it starts on the same line as the last sentence (above) and break it across multiple lines if needed.

&gt; Tools/ChangeLog:23
&gt; +        (BuildbotQueueView.prototype.revisionContentForIteration): Passing the &quot;repository&quot; and trac

Nit: the &quot;repository&quot; =&gt; the repository name

&gt; Tools/ChangeLog:24
&gt; +        instance to _revisionContentWithPopoverForIteration

Nit: _revisionContentWithPopoverForIteration =&gt; _revisionContentWithPopoverForIteration().
(Notice the period at the end of suggested substitution).

&gt; Tools/ChangeLog:25
&gt; +        Using &quot;revision&quot; property instead of &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.

Nit: Please move this sentence such that it starts on line 24 (above) and break it across multiple lines if needed.

&gt; Tools/ChangeLog:27
&gt; +        constants for internal and opensource repositories

Nit: Missing a period at the end of this sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114470</commentid>
    <comment_count>7</comment_count>
      <attachid>258139</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-03 17:59:05 -0700</bug_when>
    <thetext>Created attachment 258139
Refactor to convert openSourceRevision and internalRevision  properties on BuildbotIteration into a more generic collection of revisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114678</commentid>
    <comment_count>8</comment_count>
      <attachid>258139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-04 11:48:44 -0700</bug_when>
    <thetext>Comment on attachment 258139
Refactor to convert openSourceRevision and internalRevision  properties on BuildbotIteration into a more generic collection of revisions.

Clearing flags on attachment: 258139

Committed r187871: &lt;http://trac.webkit.org/changeset/187871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114679</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-04 11:48:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257486</attachid>
            <date>2015-07-24 15:44:33 -0700</date>
            <delta_ts>2015-07-30 15:34:05 -0700</delta_ts>
            <desc>Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.</desc>
            <filename>0001-Refactor-to-convert-openSourceRevision-and-internalR.patch</filename>
            <type>text/plain</type>
            <size>19398</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">RnJvbSAzMzU4MGJmOTJlYzdlMDY4YTI3YzU0NzNhYWQ4MmVmNGJkZTg3MzRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNYXJjZWxsIDxqbWFyY2VsbEBhcHBsZS5jb20+CkRh
dGU6IEZyaSwgMjQgSnVsIDIwMTUgMTU6Mjk6NDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBSZWZh
Y3RvciB0byBjb252ZXJ0IG9wZW5Tb3VyY2VSZXZpc2lvbiBhbmQgaW50ZXJuYWxSZXZpc2lvbgog
cHJvcGVydGllcyBvbiBCdWlsZGJvdEl0ZXJhdGlvbiBpbnRvIGEgbW9yZSBnZW5lcmljIGNvbGxl
Y3Rpb24gb2YgcmV2aXNpb25zLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzI4MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIEJ1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L0J1aWxkYm90SXRlcmF0aW9uLmpzOgooQnVpbGRib3RJdGVyYXRpb24pOgpSZW1vdmVkIG9wZW5z
b3VyY2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4gQWRkZWQgcmV2aXNpb24uClJlZmFjdG9y
ZWQgX3BhcnNlRGF0YSB0byBoYW5kbGUgcmVwb3NpdG9yaWVzIG1vcmUgZ2VuZXJpY2FsbHkuCiog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKEJ1aWxkYm90UXVldWUucHJvdG90eXBl
LmNvbXBhcmVJdGVyYXRpb25zKToKKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNvbXBhcmVJdGVy
YXRpb25zQnlSZXZpc2lvbnMpOgpVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2Yg
Im9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKiBCdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoKKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5f
YXBwZW5kUGVuZGluZ1JldmlzaW9uQ291bnQpOgpVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGlu
c3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKEJ1
aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fcHJlc2VudFBvcG92ZXJGb3JQZW5kaW5nQ29tbWl0
cyk6ClVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkgaW5zdGVhZCBvZiAib3BlbnNvdXJjZVJldmlz
aW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgooQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBl
Ll9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbik6CkNoYW5naW5nICJpbnRl
cm5hbCIgYm9vbGVhbiBwYXJhbWV0ZXIgdG8gbW9yZSBnZW5lcmljICJyZXBvc2l0b3J5IiBzdHJp
bmcgcGFyYW1ldGVyLgpBZGRlZCAidHJhYyIgcGFyYW1ldGVyIGluIG9yZGVyIHRvIHNwZWNpZnkg
dGhlIHRyYWMgaW5zdGFuY2UgdG8gdXNlLgpVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3Rl
YWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKEJ1aWxk
Ym90UXVldWVWaWV3LnByb3RvdHlwZS5yZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb24pOgpQYXNz
aW5nIHRoZSAicmVwb3NpdG9yeSIgYW5kIHRyYWMgaW5zdGFuY2UgdG8gX3JldmlzaW9uQ29udGVu
dFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uClVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkgaW5zdGVh
ZCBvZiAib3BlbnNvdXJjZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgoqIEJ1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2Fy
ZC9TY3JpcHRzL01ldHJpY3NBbmFseXplci5qczoKKEFuYWx5emVyLnByb3RvdHlwZS5fZmluZElu
ZGV4T2ZMYXJnZXN0SXRlcmF0aW9uQXRPckJlZm9yZVN0YXJ0KToKVXNpbmcgInJldmlzaW9uIiBw
cm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZp
c2lvbiIuCihBbmFseXplci5wcm90b3R5cGUuX2NvdW50UGVyY2VudGFnZU9mR3JlZW4pOgpVc2lu
ZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5k
ICJpbnRlcm5hbFJldmlzaW9uIi4KKEFuYWx5emVyLnByb3RvdHlwZS53ZWJraXRUcmFjLnJlY29y
ZGVkQ29tbWl0cy5mb3JFYWNoKToKVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9m
ICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCihBbmFseXplci5w
cm90b3R5cGUuX2NvdW50VGltZXMpOgpVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQg
b2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qczoKKFdlYktpdEJ1aWxkYm90LnByb3RvdHlwZS5sYXlv
dXRUZXN0UmVzdWx0c0RpcmVjdG9yeVVSTEZvckl0ZXJhdGlvbik6ClVzaW5nICJyZXZpc2lvbiIg
cHJvcGVydHkgaW5zdGVhZCBvZiAib3BlbnNvdXJjZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2
aXNpb24iLgotLS0KIC4uLi9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyAg
ICAgICAgIHwgMjMgKysrKysrKysrLS0tLQogLi4uL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90UXVldWUuanMgfCAgOCArKy0tLQogLi4uL2Rhc2hib2FyZC9TY3JpcHRzL0J1
aWxkYm90UXVldWVWaWV3LmpzICAgICAgICAgfCAzNiArKysrKysrKystLS0tLS0tLS0tCiAuLi4v
ZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzICAgICAgICAgICB8ICA2ICsrLS0K
IC4uLi9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcyAgICAgICAgICAgIHwgIDIg
Ky0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
NDAgKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25z
KCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0
aW9uLmpzCmluZGV4IDJiOWNmMGEuLjZjNzgxYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1
aWxkYm90SXRlcmF0aW9uLmpzCkBAIC00Myw4ICs0Myw3IEBAIEJ1aWxkYm90SXRlcmF0aW9uID0g
ZnVuY3Rpb24ocXVldWUsIGRhdGFPcklELCBmaW5pc2hlZCkKICAgICB0aGlzLmlzTG9hZGluZyA9
IGZhbHNlOwogICAgIHRoaXMuX3Byb2R1Y3RpdmUgPSBmYWxzZTsKIAotICAgIHRoaXMub3BlblNv
dXJjZVJldmlzaW9uID0gbnVsbDsKLSAgICB0aGlzLmludGVybmFsUmV2aXNpb24gPSBudWxsOwor
ICAgIHRoaXMucmV2aXNpb24gPSB7fTsKIAogICAgIHRoaXMubGF5b3V0VGVzdFJlc3VsdHMgPSBu
dWxsOyAvLyBMYXlvdXQgdGVzdCByZXN1bHRzIGNhbiBiZSBuZWVkZWQgZXZlbiBpZiBhbGwgdGVz
dHMgcGFzc2VkLCBlLmcuIGZvciB0aGUgbGVha3MgYm90LgogCkBAIC0yMDAsMTEgKzE5OSwyMSBA
QCBCdWlsZGJvdEl0ZXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIHJldmlzaW9uLiBU
aGVyZWZvcmUsIHdlIG9ubHkgbG9vayBhdCBnb3RfcmV2aXNpb24gdG8gZXh0cmFjdCB0aGUgSW50
ZXJuYWwgcmV2aXNpb24gd2hlbiBpdCdzCiAgICAgICAgIC8vIGEgZGljdGlvbmFyeS4KIAotICAg
ICAgICB2YXIgb3BlblNvdXJjZVJldmlzaW9uUHJvcGVydHkgPSBkYXRhLnByb3BlcnRpZXMuZmlu
ZEZpcnN0KGZ1bmN0aW9uKHByb3BlcnR5KSB7IHJldHVybiBwcm9wZXJ0eVswXSA9PT0gImdvdF9y
ZXZpc2lvbiI7IH0pOwotICAgICAgICB0aGlzLm9wZW5Tb3VyY2VSZXZpc2lvbiA9IHBhcnNlUmV2
aXNpb25Qcm9wZXJ0eShvcGVuU291cmNlUmV2aXNpb25Qcm9wZXJ0eSwgIldlYktpdCIsICJvcGVu
c291cmNlIik7Ci0KLSAgICAgICAgdmFyIGludGVybmFsUmV2aXNpb25Qcm9wZXJ0eSA9IGRhdGEu
cHJvcGVydGllcy5maW5kRmlyc3QoZnVuY3Rpb24ocHJvcGVydHkpIHsgcmV0dXJuIGlzTXVsdGlD
b2RlYmFzZUdvdFJldmlzaW9uUHJvcGVydHkocHJvcGVydHkpOyB9KTsKLSAgICAgICAgdGhpcy5p
bnRlcm5hbFJldmlzaW9uID0gcGFyc2VSZXZpc2lvblByb3BlcnR5KGludGVybmFsUmV2aXNpb25Q
cm9wZXJ0eSwgIkludGVybmFsIiwgImludGVybmFsIik7CisgICAgICAgIHZhciByZXZpc2lvblBy
b3BlcnR5ID0gZGF0YS5wcm9wZXJ0aWVzLmZpbmRGaXJzdChmdW5jdGlvbihwcm9wZXJ0eSkgewor
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5WzBdID09PSAiZ290X3JldmlzaW9uIjsKKyAgICAg
ICAgfSk7CisgICAgICAgIGZvciAocmVwb3NpdG9yeSBpbiB0aGlzLnF1ZXVlLmJyYW5jaCkgewor
ICAgICAgICAgICAgdmFyIGtleSA9IHJlcG9zaXRvcnk7CisgICAgICAgICAgICB2YXIgZmFsbGJh
Y2tLZXkgPSAiSW50ZXJuYWwiOworICAgICAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09ICJvcGVu
U291cmNlIikgeworICAgICAgICAgICAgICAgIGtleSA9ICJXZWJLaXQiOworICAgICAgICAgICAg
ICAgIGZhbGxiYWNrS2V5ID0gIm9wZW5zb3VyY2UiOworICAgICAgICAgICAgfSBlbHNlIGlmIChy
ZXBvc2l0b3J5ID09PSAiaW50ZXJuYWwiKSB7CisgICAgICAgICAgICAgICAga2V5ID0gIkludGVy
bmFsIjsKKyAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9ICJpbnRlcm5hbCI7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLnJldmlzaW9uW3JlcG9zaXRvcnldID0gcGFyc2VSZXZp
c2lvblByb3BlcnR5KHJldmlzaW9uUHJvcGVydHksIGtleSwgZmFsbGJhY2tLZXkpOworICAgICAg
ICB9CiAKICAgICAgICAgZnVuY3Rpb24gc291cmNlU3RhbXBDaGFuZ2VzKHNvdXJjZVN0YW1wKSB7
CiAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gW107CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RR
dWV1ZS5qcwppbmRleCBhNDcyYzE5Li4zMWY3MDJiIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxk
Ym90UXVldWUuanMKQEAgLTI2OCwxMSArMjY4LDExIEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBl
ID0gewogCiAgICAgY29tcGFyZUl0ZXJhdGlvbnM6IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAg
ICAgICB2YXIgcmVzdWx0ID0gYi5vcGVuU291cmNlUmV2aXNpb24gLSBhLm9wZW5Tb3VyY2VSZXZp
c2lvbjsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25bIm9wZW5Tb3VyY2UiXSAtIGEu
cmV2aXNpb25bIm9wZW5Tb3VyY2UiXTsKICAgICAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKLSAgICAgICAgcmVzdWx0ID0gYi5pbnRlcm5hbFJldmlzaW9uIC0g
YS5pbnRlcm5hbFJldmlzaW9uOworICAgICAgICByZXN1bHQgPSBiLnJldmlzaW9uWyJpbnRlcm5h
bCJdIC0gYS5yZXZpc2lvblsiaW50ZXJuYWwiXTsKICAgICAgICAgaWYgKHJlc3VsdCkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTI4NiwxMSArMjg2LDExIEBAIEJ1aWxkYm90UXVl
dWUucHJvdG90eXBlID0gewogCiAgICAgY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogZnVu
Y3Rpb24oYSwgYikKICAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBiLm9wZW5Tb3VyY2VSZXZp
c2lvbiAtIGEub3BlblNvdXJjZVJldmlzaW9uOworICAgICAgICB2YXIgcmVzdWx0ID0gYi5yZXZp
c2lvblsib3BlblNvdXJjZSJdIC0gYS5yZXZpc2lvblsib3BlblNvdXJjZSJdOwogICAgICAgICBp
ZiAocmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgICAgICByZXN1bHQg
PSBiLmludGVybmFsUmV2aXNpb24gLSBhLmludGVybmFsUmV2aXNpb247CisgICAgICAgIHJlc3Vs
dCA9IGIucmV2aXNpb25bImludGVybmFsIl0gLSBhLnJldmlzaW9uWyJpbnRlcm5hbCJdOwogICAg
ICAgICBpZiAocmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwppbmRleCBhYzdmNjc3Li4xZjhkMzkyIDEw
MDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcworKysg
Yi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpAQCAtNzcsMjMgKzc3
LDIzIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICB2YXIgbGF0ZXN0UmVjb3JkZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIg
PSB3ZWJraXRUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXI7Ci0gICAgICAgIGlmICgh
bGF0ZXN0UmVjb3JkZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIgfHwgd2Via2l0VHJhYy5vbGRl
c3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5vcGVu
U291cmNlUmV2aXNpb24pIHsKKyAgICAgICAgaWYgKCFsYXRlc3RSZWNvcmRlZE9wZW5Tb3VyY2VS
ZXZpc2lvbk51bWJlciB8fCB3ZWJraXRUcmFjLm9sZGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIg
PiBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uWyJvcGVuU291cmNlIl0pIHsKICAg
ICAgICAgICAgIHdlYmtpdFRyYWMubG9hZE1vcmVIaXN0b3JpY2FsRGF0YSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFRvIGJlIDEwMCUgY29y
cmVjdCwgd2Ugc2hvdWxkIGFsc28gZmlsdGVyIG91dCBjaGFuZ2VzIHRoYXQgYXJlIGlnbm9yZWQg
YnkKICAgICAgICAgLy8gdGhlIHF1ZXVlLCBzZWUgX3Nob3VsZF9maWxlX3RyaWdnZXJfYnVpbGQg
aW4gd2tidWlsZC5weS4KLSAgICAgICAgdmFyIHRvdGFsUmV2aXNpb25zQmVoaW5kID0gd2Via2l0
VHJhYy5jb21taXRzT25CcmFuY2gocXVldWUuYnJhbmNoLm9wZW5Tb3VyY2UsIGZ1bmN0aW9uKGNv
bW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0
ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNpb247IH0pLmxlbmd0aDsKKyAgICAgICAgdmFyIHRvdGFs
UmV2aXNpb25zQmVoaW5kID0gd2Via2l0VHJhYy5jb21taXRzT25CcmFuY2gocXVldWUuYnJhbmNo
Lm9wZW5Tb3VyY2UsIGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVt
YmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvblsib3BlblNvdXJjZSJdOyB9
KS5sZW5ndGg7CiAKLSAgICAgICAgaWYgKGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24uaW50ZXJu
YWxSZXZpc2lvbikgeworICAgICAgICBpZiAobGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZp
c2lvblsiaW50ZXJuYWwiXSkgewogICAgICAgICAgICAgdmFyIGxhdGVzdFJlY29yZGVkSW50ZXJu
YWxSZXZpc2lvbk51bWJlciA9IGludGVybmFsVHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVt
YmVyOwotICAgICAgICAgICAgaWYgKCFsYXRlc3RSZWNvcmRlZEludGVybmFsUmV2aXNpb25OdW1i
ZXIgfHwgaW50ZXJuYWxUcmFjLm9sZGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQ
cm9kdWN0aXZlSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24pIHsKKyAgICAgICAgICAgIGlmICgh
bGF0ZXN0UmVjb3JkZWRJbnRlcm5hbFJldmlzaW9uTnVtYmVyIHx8IGludGVybmFsVHJhYy5vbGRl
c3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZp
c2lvblsiaW50ZXJuYWwiXSkgewogICAgICAgICAgICAgICAgIGludGVybmFsVHJhYy5sb2FkTW9y
ZUhpc3RvcmljYWxEYXRhKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICB0b3RhbFJldmlzaW9uc0JlaGluZCArPSBpbnRlcm5hbFRyYWMuY29t
bWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaC5pbnRlcm5hbCwgZnVuY3Rpb24oY29tbWl0KSB7IHJl
dHVybiBjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLmlu
dGVybmFsUmV2aXNpb247IH0pLmxlbmd0aDsKKyAgICAgICAgICAgIHRvdGFsUmV2aXNpb25zQmVo
aW5kICs9IGludGVybmFsVHJhYy5jb21taXRzT25CcmFuY2gocXVldWUuYnJhbmNoLmludGVybmFs
LCBmdW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNvbW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVz
dFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bImludGVybmFsIl07IH0pLmxlbmd0aDsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmICghdG90YWxSZXZpc2lvbnNCZWhpbmQpCkBAIC0xNTMsMTMg
KzE1MywxMyBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBj
b250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIGNvbnRlbnQu
Y2xhc3NOYW1lID0gImNvbW1pdC1oaXN0b3J5LXBvcG92ZXIiOwogCi0gICAgICAgIHZhciBsaW5l
c0Zvck9wZW5Tb3VyY2UgPSB0aGlzLl9wb3BvdmVyTGluZXNGb3JDb21taXRSYW5nZSh3ZWJraXRU
cmFjLCBxdWV1ZS5icmFuY2gub3BlblNvdXJjZSwgbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5v
cGVuU291cmNlUmV2aXNpb24gKyAxLCB3ZWJraXRUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25O
dW1iZXIpOworICAgICAgICB2YXIgbGluZXNGb3JPcGVuU291cmNlID0gdGhpcy5fcG9wb3Zlckxp
bmVzRm9yQ29tbWl0UmFuZ2Uod2Via2l0VHJhYywgcXVldWUuYnJhbmNoLm9wZW5Tb3VyY2UsIGxh
dGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bIm9wZW5Tb3VyY2UiXSArIDEsIHdlYmtp
dFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7CiAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpICE9IGxpbmVzRm9yT3BlblNvdXJjZS5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIGNv
bnRlbnQuYXBwZW5kQ2hpbGQobGluZXNGb3JPcGVuU291cmNlW2ldKTsKIAogICAgICAgICB2YXIg
bGluZXNGb3JJbnRlcm5hbCA9IFtdOwotICAgICAgICBpZiAobGF0ZXN0UHJvZHVjdGl2ZUl0ZXJh
dGlvbi5pbnRlcm5hbFJldmlzaW9uICYmIGludGVybmFsVHJhYy5sYXRlc3RSZWNvcmRlZFJldmlz
aW9uTnVtYmVyKQotICAgICAgICAgICAgdmFyIGxpbmVzRm9ySW50ZXJuYWwgPSB0aGlzLl9wb3Bv
dmVyTGluZXNGb3JDb21taXRSYW5nZShpbnRlcm5hbFRyYWMsIHF1ZXVlLmJyYW5jaC5pbnRlcm5h
bCwgbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uICsgMSwgaW50ZXJu
YWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpOworICAgICAgICBpZiAobGF0ZXN0
UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvblsiaW50ZXJuYWwiXSAmJiBpbnRlcm5hbFRyYWMu
bGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcikKKyAgICAgICAgICAgIHZhciBsaW5lc0Zvcklu
dGVybmFsID0gdGhpcy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2UoaW50ZXJuYWxUcmFjLCBx
dWV1ZS5icmFuY2guaW50ZXJuYWwsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25b
ImludGVybmFsIl0gKyAxLCBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJl
cik7CiAKICAgICAgICAgaWYgKGxpbmVzRm9yT3BlblNvdXJjZS5sZW5ndGggJiYgbGluZXNGb3JJ
bnRlcm5hbC5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9hZGREaXZpZGVyVG9Qb3BvdmVyKGNv
bnRlbnQpOwpAQCAtMjA0LDE4ICsyMDQsMTggQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3JldmlzaW9uQ29udGVu
dFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzSXRl
cmF0aW9uLCBpbnRlcm5hbCkKKyAgICBfcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVy
YXRpb246IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNJdGVyYXRpb24sIHJlcG9zaXRvcnks
IHRyYWMpCiAgICAgewogICAgICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKLSAgICAgICAgY29udGVudC50ZXh0Q29udGVudCA9ICJyIiArIChpbnRlcm5h
bCA/IGl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uIDogaXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZp
c2lvbik7CisgICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyBpdGVyYXRpb24ucmV2
aXNpb25bcmVwb3NpdG9yeV07CiAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgicmV2aXNp
b24tbnVtYmVyIik7CiAKICAgICAgICAgaWYgKHByZXZpb3VzSXRlcmF0aW9uKSB7CiAgICAgICAg
ICAgICB2YXIgY29udGV4dCA9IHsKLSAgICAgICAgICAgICAgICB0cmFjOiBpbnRlcm5hbCA/IGlu
dGVybmFsVHJhYyA6IHdlYmtpdFRyYWMsCi0gICAgICAgICAgICAgICAgYnJhbmNoOiBpbnRlcm5h
bCA/IGl0ZXJhdGlvbi5xdWV1ZS5icmFuY2guaW50ZXJuYWwgOiBpdGVyYXRpb24ucXVldWUuYnJh
bmNoLm9wZW5Tb3VyY2UsCi0gICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogKGludGVybmFs
ID8gcHJldmlvdXNJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IHByZXZpb3VzSXRlcmF0aW9u
Lm9wZW5Tb3VyY2VSZXZpc2lvbikgKyAxLAotICAgICAgICAgICAgICAgIGxhc3RSZXZpc2lvbjog
aW50ZXJuYWwgPyBpdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IGl0ZXJhdGlvbi5vcGVuU291
cmNlUmV2aXNpb24KKyAgICAgICAgICAgICAgICB0cmFjOiB0cmFjLAorICAgICAgICAgICAgICAg
IGJyYW5jaDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5XSwKKyAgICAgICAgICAg
ICAgICBmaXJzdFJldmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5
XSArIDEsCisgICAgICAgICAgICAgICAgbGFzdFJldmlzaW9uOiBpdGVyYXRpb24ucmV2aXNpb25b
cmVwb3NpdG9yeV0KICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAoY29udGV4dC5maXJz
dFJldmlzaW9uIDw9IGNvbnRleHQubGFzdFJldmlzaW9uKQogICAgICAgICAgICAgICAgIG5ldyBQ
b3BvdmVyVHJhY2tlcihjb250ZW50LCB0aGlzLl9wcmVzZW50UG9wb3ZlckZvclJldmlzaW9uUmFu
Z2UuYmluZCh0aGlzKSwgY29udGV4dCk7CkBAIC0yNjAsMTQgKzI2MCwxNCBAQCBCdWlsZGJvdFF1
ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICByZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb246
IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24pCiAgICAgewot
ICAgICAgICBjb25zb2xlLmFzc2VydChpdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9uKTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9uLnJldmlzaW9uWyJvcGVuU291cmNlIl0pOwog
Ci0gICAgICAgIHZhciBvcGVuU291cmNlQ29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdp
dGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRp
b24pOworICAgICAgICB2YXIgb3BlblNvdXJjZUNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRl
bnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRl
cmF0aW9uLCAib3BlblNvdXJjZSIsIHdlYmtpdFRyYWMpOwogCi0gICAgICAgIGlmICghaXRlcmF0
aW9uLmludGVybmFsUmV2aXNpb24pCisgICAgICAgIGlmICghaXRlcmF0aW9uLnJldmlzaW9uWyJp
bnRlcm5hbCJdKQogICAgICAgICAgICAgcmV0dXJuIG9wZW5Tb3VyY2VDb250ZW50OwogCi0gICAg
ICAgIHZhciBpbnRlcm5hbENvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3Zl
ckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCB0cnVl
KTsKKyAgICAgICAgdmFyIGludGVybmFsQ29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdp
dGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRp
b24sICJpbnRlcm5hbCIsIGludGVybmFsVHJhYyk7CiAKICAgICAgICAgdmFyIGZyYWdtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgICAgICBmcmFnbWVudC5hcHBl
bmRDaGlsZChvcGVuU291cmNlQ29udGVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9NZXRyaWNzQW5hbHl6ZXIuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5h
bHl6ZXIuanMKaW5kZXggZWFkOTU3ZC4uZTk3NDE1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01l
dHJpY3NBbmFseXplci5qcwpAQCAtMTI0LDcgKzEyNCw3IEBAIEFuYWx5emVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKGkgPCBpdGVyYXRpb25zLmxlbmd0aCkKICAgICAgICAgICAgIHJlc3Vs
dCA9IGkrKzsKICAgICAgICAgd2hpbGUgKGkgPCBpdGVyYXRpb25zLmxlbmd0aCkgewotICAgICAg
ICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0ub3BlblNvdXJjZVJldmlzaW9uID4gaXRlcmF0aW9uc1ty
ZXN1bHRdLm9wZW5Tb3VyY2VSZXZpc2lvbikKKyAgICAgICAgICAgIGlmIChpdGVyYXRpb25zW2ld
LnJldmlzaW9uWyJvcGVuU291cmNlIl0gPiBpdGVyYXRpb25zW3Jlc3VsdF0ucmV2aXNpb25bIm9w
ZW5Tb3VyY2UiXSkKICAgICAgICAgICAgICAgICByZXN1bHQgPSBpOwogICAgICAgICAgICAgKytp
OwogICAgICAgICB9CkBAIC0yMTMsNyArMjEzLDcgQEAgQW5hbHl6ZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0cmV0Y2hPZlJlZENvdW50ZXJzKHRvcEl0ZXJh
dGlvbkJ5UXVldWUsIGN1cnJlbnRUaW1lLCBzdHJldGNoT2ZSZWRDb3VudGVycyk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXRlcmF0
aW9uc1tpXS5vcGVuU291cmNlUmV2aXNpb24gPD0gdG9wSXRlcmF0aW9uQnlRdWV1ZVtpdGVyYXRp
b25zW2ldLnF1ZXVlLmlkXS5vcGVuU291cmNlUmV2aXNpb24pCisgICAgICAgICAgICBpZiAoaXRl
cmF0aW9uc1tpXS5yZXZpc2lvblsib3BlblNvdXJjZSJdIDw9IHRvcEl0ZXJhdGlvbkJ5UXVldWVb
aXRlcmF0aW9uc1tpXS5xdWV1ZS5pZF0ucmV2aXNpb25bIm9wZW5Tb3VyY2UiXSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgdmFyIGRhc2hib2FyZFdhc0FsbEdyZWVu
ID0gdGhpcy5fZGFzaGJvYXJkSXNBbGxHcmVlbih0b3BJdGVyYXRpb25CeVF1ZXVlKTsKQEAgLTI3
NSw3ICsyNzUsNyBAQCBBbmFseXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbGV2YW50SXRl
cmF0aW9uc0J5UXVldWVbcXVldWUuaWRdLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHZhciBpdGVyYXRpb24gPSByZWxldmFudEl0ZXJhdGlvbnNCeVF1ZXVlW3F1ZXVlLmlkXVtp
XTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNpb24g
Pj0gcmV2aXNpb24ucmV2aXNpb25OdW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0
ZXJhdGlvbi5yZXZpc2lvblsib3BlblNvdXJjZSJdID49IHJldmlzaW9uLnJldmlzaW9uTnVtYmVy
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lID0gTWF0aC5tYXgoZW5kVGltZSwg
aXRlcmF0aW9uLmVuZFRpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgb3duVGltZSA9IE1h
dGgubWF4KG93blRpbWUsIGl0ZXJhdGlvbi5lbmRUaW1lIC0gaXRlcmF0aW9uLnN0YXJ0VGltZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2Fy
ZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0
QnVpbGRib3QuanMKaW5kZXggOThiMzc4Zi4uYjg3OWVlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
V2ViS2l0QnVpbGRib3QuanMKQEAgLTgyLDYgKzgyLDYgQEAgV2ViS2l0QnVpbGRib3QucHJvdG90
eXBlID0gewogCiAgICAgbGF5b3V0VGVzdFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb246
IGZ1bmN0aW9uKGl0ZXJhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmJhc2VVUkwg
KyAicmVzdWx0cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KGl0ZXJhdGlvbi5xdWV1ZS5pZCkgKyAi
LyIgKyBlbmNvZGVVUklDb21wb25lbnQoInIiICsgaXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZpc2lv
biArICIgKCIgKyBpdGVyYXRpb24uaWQgKyAiKSIpOworICAgICAgICByZXR1cm4gdGhpcy5iYXNl
VVJMICsgInJlc3VsdHMvIiArIGVuY29kZVVSSUNvbXBvbmVudChpdGVyYXRpb24ucXVldWUuaWQp
ICsgIi8iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJyIiArIGl0ZXJhdGlvbi5yZXZpc2lvblsib3Bl
blNvdXJjZSJdICsgIiAoIiArIGl0ZXJhdGlvbi5pZCArICIpIik7CiAgICAgfQogfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3ZGJlMjM3Li4y
Yjc2ZWUwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDMgQEAKKzIwMTUtMDctMjQgIEphc29uIE1hcmNlbGwgIDxqbWFyY2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgdG8gY29udmVydCBvcGVuU291cmNlUmV2aXNp
b24gYW5kIGludGVybmFsUmV2aXNpb24gcHJvcGVydGllcyBvbiBCdWlsZGJvdEl0ZXJhdGlvbiBp
bnRvIGEgbW9yZSBnZW5lcmljIGNvbGxlY3Rpb24gb2YgcmV2aXNpb25zLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWls
ZGJvdEl0ZXJhdGlvbi5qczoKKyAgICAgICAgKEJ1aWxkYm90SXRlcmF0aW9uKToKKyAgICAgICAg
UmVtb3ZlZCBvcGVuc291cmNlUmV2aXNpb24sIGludGVybmFsUmV2aXNpb24uIEFkZGVkIHJldmlz
aW9uLgorICAgICAgICBSZWZhY3RvcmVkIF9wYXJzZURhdGEgdG8gaGFuZGxlIHJlcG9zaXRvcmll
cyBtb3JlIGdlbmVyaWNhbGx5LgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVl
dWUuanM6CisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5jb21wYXJlSXRlcmF0aW9u
cyk6CisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5jb21wYXJlSXRlcmF0aW9uc0J5
UmV2aXNpb25zKToKKyAgICAgICAgVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9m
ICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWlsZGJvdFF1
ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBlbmRpbmdSZXZpc2lvbkNvdW50KToKKyAgICAgICAg
VXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24i
IGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90
b3R5cGUuX3ByZXNlbnRQb3BvdmVyRm9yUGVuZGluZ0NvbW1pdHMpOgorICAgICAgICBVc2luZyAi
cmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJp
bnRlcm5hbFJldmlzaW9uIi4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5f
cmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOgorICAgICAgICBDaGFuZ2lu
ZyAiaW50ZXJuYWwiIGJvb2xlYW4gcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVwb3NpdG9y
eSIgc3RyaW5nIHBhcmFtZXRlci4KKyAgICAgICAgQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBv
cmRlciB0byBzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4KKyAgICAgICAgVXNpbmcg
InJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAi
aW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUu
cmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uKToKKyAgICAgICAgUGFzc2luZyB0aGUgInJlcG9z
aXRvcnkiIGFuZCB0cmFjIGluc3RhbmNlIHRvIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZv
ckl0ZXJhdGlvbgorICAgICAgICBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2Yg
Im9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanM6CisgICAgICAgIChBbmFseXplci5wcm90
b3R5cGUuX2ZpbmRJbmRleE9mTGFyZ2VzdEl0ZXJhdGlvbkF0T3JCZWZvcmVTdGFydCk6CisgICAg
ICAgIFVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkgaW5zdGVhZCBvZiAib3BlbnNvdXJjZVJldmlz
aW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgorICAgICAgICAoQW5hbHl6ZXIucHJvdG90eXBl
Ll9jb3VudFBlcmNlbnRhZ2VPZkdyZWVuKToKKyAgICAgICAgVXNpbmcgInJldmlzaW9uIiBwcm9w
ZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lv
biIuCisgICAgICAgIChBbmFseXplci5wcm90b3R5cGUud2Via2l0VHJhYy5yZWNvcmRlZENvbW1p
dHMuZm9yRWFjaCk6CisgICAgICAgIFVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkgaW5zdGVhZCBv
ZiAib3BlbnNvdXJjZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgorICAgICAgICAo
QW5hbHl6ZXIucHJvdG90eXBlLl9jb3VudFRpbWVzKToKKyAgICAgICAgVXNpbmcgInJldmlzaW9u
IiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxS
ZXZpc2lvbiIuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanM6Cisg
ICAgICAgIChXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUubGF5b3V0VGVzdFJlc3VsdHNEaXJlY3Rv
cnlVUkxGb3JJdGVyYXRpb24pOgorICAgICAgICBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGlu
c3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKwog
MjAxNS0wNy0yMiAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCAtLWlvcy1zaW11bGF0b3IgdG8gcnVuLWFwaS10ZXN0cyAtLWhlbHAuCi0tIAoyLjMu
OCAoQXBwbGUgR2l0LTU4KQoK
</data>
<flag name="review"
          id="282648"
          type_id="1"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257853</attachid>
            <date>2015-07-30 14:32:17 -0700</date>
            <delta_ts>2015-08-03 13:51:32 -0700</delta_ts>
            <desc>Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.</desc>
            <filename>0001-Refactor-to-convert-openSourceRevision-and-internalR.patch</filename>
            <type>text/plain</type>
            <size>21445</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">RnJvbSBjMjE3NTQwMTNhYmZmNDRhZDBiMzg3NzA3YWUyOTczN2I3YjQyOTU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNYXJjZWxsIDxqbWFyY2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMzAgSnVsIDIwMTUgMTQ6MjQ6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSZWZh
Y3RvciB0byBjb252ZXJ0IG9wZW5Tb3VyY2VSZXZpc2lvbiBhbmQgaW50ZXJuYWxSZXZpc2lvbgog
cHJvcGVydGllcyBvbiBCdWlsZGJvdEl0ZXJhdGlvbiBpbnRvIGEgbW9yZSBnZW5lcmljIGNvbGxl
Y3Rpb24gb2YgcmV2aXNpb25zLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzI4MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIEJ1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L0J1aWxkYm90SXRlcmF0aW9uLmpzOgooQnVpbGRib3RJdGVyYXRpb24pOgpSZW1vdmVkIG9wZW5z
b3VyY2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4gQWRkZWQgcmV2aXNpb24uClJlZmFjdG9y
ZWQgX3BhcnNlRGF0YSB0byBoYW5kbGUgcmVwb3NpdG9yaWVzIG1vcmUgZ2VuZXJpY2FsbHkuCihw
YXJzZVJldmlzaW9uUHJvcGVydHkpOgpNb3ZlZCBhIGNvbW1lbnQgdXAgdG8gcGFyc2VSZXZpc2lv
blByb3BlcnR5IHdoZXJlIGl0IHNlZW1zIG1vcmUgcmVsZXZlbnQuCiogQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
QnVpbGRib3RRdWV1ZS5qczoKKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNvbXBhcmVJdGVyYXRp
b25zKToKVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2
aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCihCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5j
b21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKToKRGl0dG8uCiogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVp
bGRib3RRdWV1ZVZpZXcuanM6CihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBl
bmRpbmdSZXZpc2lvbkNvdW50KToKRGl0dG8uCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUu
X3ByZXNlbnRQb3BvdmVyRm9yUGVuZGluZ0NvbW1pdHMpOgpEaXR0by4KKEJ1aWxkYm90UXVldWVW
aWV3LnByb3RvdHlwZS5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOgpD
aGFuZ2luZyAiaW50ZXJuYWwiIGJvb2xlYW4gcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVw
b3NpdG9yeSIgc3RyaW5nIHBhcmFtZXRlci4KQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBvcmRl
ciB0byBzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4KVXNpbmcgInJldmlzaW9uIiBw
cm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZp
c2lvbiIuCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRl
cmF0aW9uKToKUGFzc2luZyB0aGUgInJlcG9zaXRvcnkiIGFuZCB0cmFjIGluc3RhbmNlIHRvIF9y
ZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbgpVc2luZyAicmV2aXNpb24iIHBy
b3BlcnR5IGluc3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlz
aW9uIi4KKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanM6CiogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0
cmljc0FuYWx5emVyLmpzOgooQW5hbHl6ZXIucHJvdG90eXBlLl9maW5kSW5kZXhPZkxhcmdlc3RJ
dGVyYXRpb25BdE9yQmVmb3JlU3RhcnQpOgpEaXR0by4KKEFuYWx5emVyLnByb3RvdHlwZS5fY291
bnRQZXJjZW50YWdlT2ZHcmVlbik6CkRpdHRvLgooQW5hbHl6ZXIucHJvdG90eXBlLndlYmtpdFRy
YWMucmVjb3JkZWRDb21taXRzLmZvckVhY2gpOgpEaXR0by4KKEFuYWx5emVyLnByb3RvdHlwZS5f
Y291bnRUaW1lcyk6CkRpdHRvLgoqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzOgoo
V2ViS2l0QnVpbGRib3QucHJvdG90eXBlLmxheW91dFRlc3RSZXN1bHRzRGlyZWN0b3J5VVJMRm9y
SXRlcmF0aW9uKToKRGl0dG8uCi0tLQogLi4uL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRl
cmF0aW9uLmpzICAgICAgICAgfCA0NCArKysrKysrKysrKystLS0tLS0tLS0tCiAuLi4vcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyB8ICA4ICsrLS0KIC4uLi9k
YXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcyAgICAgICAgIHwgMzYgKysrKysr
KysrLS0tLS0tLS0tCiAuLi4vcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJk
LmpzICAgICB8ICA2ICsrLQogLi4uL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJpY3NBbmFseXplci5q
cyAgICAgICAgICAgfCAgNiArLS0KIC4uLi9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJv
dC5qcyAgICAgICAgICAgIHwgIDIgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBj
aGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanMgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwppbmRleCAyYjljZjBhLi4xNTdkMjMwIDEwMDY0
NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcworKysgYi9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwpAQCAtNDMsOCArNDMsNyBA
QCBCdWlsZGJvdEl0ZXJhdGlvbiA9IGZ1bmN0aW9uKHF1ZXVlLCBkYXRhT3JJRCwgZmluaXNoZWQp
CiAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsKICAgICB0aGlzLl9wcm9kdWN0aXZlID0gZmFs
c2U7CiAKLSAgICB0aGlzLm9wZW5Tb3VyY2VSZXZpc2lvbiA9IG51bGw7Ci0gICAgdGhpcy5pbnRl
cm5hbFJldmlzaW9uID0gbnVsbDsKKyAgICB0aGlzLnJldmlzaW9uID0ge307CiAKICAgICB0aGlz
LmxheW91dFRlc3RSZXN1bHRzID0gbnVsbDsgLy8gTGF5b3V0IHRlc3QgcmVzdWx0cyBjYW4gYmUg
bmVlZGVkIGV2ZW4gaWYgYWxsIHRlc3RzIHBhc3NlZCwgZS5nLiBmb3IgdGhlIGxlYWtzIGJvdC4K
IApAQCAtMTAyLDYgKzEwMSwxMiBAQCBmdW5jdGlvbiBwYXJzZVJldmlzaW9uUHJvcGVydHkocHJv
cGVydHksIGtleSwgZmFsbGJhY2tLZXkpCiAgICAgaWYgKCFwcm9wZXJ0eSkKICAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgdmFyIHZhbHVlID0gcHJvcGVydHlbMV07CisKKyAgICAvLyBUaGUgcHJv
cGVydHkgZ290X3JldmlzaW9uIG1heSBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXM6CisgICAgLy8K
KyAgICAvLyBbImdvdF9yZXZpc2lvbiIseyJJbnRlcm5hbCI6IjEzNTciLCJXZWJLaXRPcGVuU291
cmNlIjoiMjQ2OCJ9LCJTb3VyY2UiXQorICAgIC8vIE9SCisgICAgLy8gWyJnb3RfcmV2aXNpb24i
LCIyNDY4IiwiU291cmNlIl0KICAgICBpZiAoaXNNdWx0aUNvZGViYXNlR290UmV2aXNpb25Qcm9w
ZXJ0eShwcm9wZXJ0eSkpCiAgICAgICAgIHZhbHVlID0gKGtleSBpbiB2YWx1ZSkgPyB2YWx1ZVtr
ZXldIDogdmFsdWVbZmFsbGJhY2tLZXldOwogICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSk7CkBA
IC0xODgsMjMgKzE5MywyNCBAQCBCdWlsZGJvdEl0ZXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLmlkIHx8IHRoaXMuaWQgPT09IGRhdGEubnVtYmVyKTsK
ICAgICAgICAgdGhpcy5pZCA9IGRhdGEubnVtYmVyOwogCi0gICAgICAgIC8vIFRoZSBwcm9wZXJ0
eSBnb3RfcmV2aXNpb24gbWF5IGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtczoKLSAgICAgICAgLy8K
LSAgICAgICAgLy8gWyJnb3RfcmV2aXNpb24iLHsiSW50ZXJuYWwiOiIxMzU3IiwiV2ViS2l0T3Bl
blNvdXJjZSI6IjI0NjgifSwiU291cmNlIl0KLSAgICAgICAgLy8gT1IKLSAgICAgICAgLy8gWyJn
b3RfcmV2aXNpb24iLCIyNDY4IiwiU291cmNlIl0KLSAgICAgICAgLy8KLSAgICAgICAgLy8gV2hl
biBleHRyYWN0aW5nIHRoZSBPcGVuU291cmNlIHJldmlzaW9uIGZyb20gcHJvcGVydHkgZ290X3Jl
dmlzaW9uIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUKLSAgICAgICAgLy8gdmFs
dWUgb2YgZ290X3JldmlzaW9uIGlzIGEgZGljdGlvbmFyeSAocmVwcmVzZW50cyBtdWx0aXBsZSBj
b2RlYmFzZXMpIG9yIGEgc3RyaW5nIGxpdGVyYWwgYmVjYXVzZSB3ZQotICAgICAgICAvLyBhc3N1
bWUgdGhhdCBnb3RfcmV2aXNpb24gY29udGFpbnMgdGhlIE9wZW5Tb3VyY2UgcmV2aXNpb24uIEhv
d2V2ZXIsIGl0IG1heSBub3QgaGF2ZSB0aGUgSW50ZXJuYWwKLSAgICAgICAgLy8gcmV2aXNpb24u
IFRoZXJlZm9yZSwgd2Ugb25seSBsb29rIGF0IGdvdF9yZXZpc2lvbiB0byBleHRyYWN0IHRoZSBJ
bnRlcm5hbCByZXZpc2lvbiB3aGVuIGl0J3MKLSAgICAgICAgLy8gYSBkaWN0aW9uYXJ5LgotCi0g
ICAgICAgIHZhciBvcGVuU291cmNlUmV2aXNpb25Qcm9wZXJ0eSA9IGRhdGEucHJvcGVydGllcy5m
aW5kRmlyc3QoZnVuY3Rpb24ocHJvcGVydHkpIHsgcmV0dXJuIHByb3BlcnR5WzBdID09PSAiZ290
X3JldmlzaW9uIjsgfSk7Ci0gICAgICAgIHRoaXMub3BlblNvdXJjZVJldmlzaW9uID0gcGFyc2VS
ZXZpc2lvblByb3BlcnR5KG9wZW5Tb3VyY2VSZXZpc2lvblByb3BlcnR5LCAiV2ViS2l0IiwgIm9w
ZW5zb3VyY2UiKTsKLQotICAgICAgICB2YXIgaW50ZXJuYWxSZXZpc2lvblByb3BlcnR5ID0gZGF0
YS5wcm9wZXJ0aWVzLmZpbmRGaXJzdChmdW5jdGlvbihwcm9wZXJ0eSkgeyByZXR1cm4gaXNNdWx0
aUNvZGViYXNlR290UmV2aXNpb25Qcm9wZXJ0eShwcm9wZXJ0eSk7IH0pOwotICAgICAgICB0aGlz
LmludGVybmFsUmV2aXNpb24gPSBwYXJzZVJldmlzaW9uUHJvcGVydHkoaW50ZXJuYWxSZXZpc2lv
blByb3BlcnR5LCAiSW50ZXJuYWwiLCAiaW50ZXJuYWwiKTsKKyAgICAgICAgdmFyIHJldmlzaW9u
UHJvcGVydHkgPSBkYXRhLnByb3BlcnRpZXMuZmluZEZpcnN0KGZ1bmN0aW9uKHByb3BlcnR5KSB7
CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlbMF0gPT09ICJnb3RfcmV2aXNpb24iOworICAg
ICAgICB9KTsKKyAgICAgICAgZm9yIChyZXBvc2l0b3J5IGluIHRoaXMucXVldWUuYnJhbmNoKSB7
CisgICAgICAgICAgICB2YXIga2V5OworICAgICAgICAgICAgdmFyIGZhbGxiYWNrS2V5OworICAg
ICAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09ICJvcGVuU291cmNlIikgeworICAgICAgICAgICAg
ICAgIGtleSA9ICJXZWJLaXQiOworICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5ID0gIm9wZW5z
b3VyY2UiOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXBvc2l0b3J5ID09PSAiaW50ZXJuYWwi
KSB7CisgICAgICAgICAgICAgICAga2V5ID0gIkludGVybmFsIjsKKyAgICAgICAgICAgICAgICBm
YWxsYmFja0tleSA9ICJpbnRlcm5hbCI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIGtleSA9IHJlcG9zaXRvcnk7CisgICAgICAgICAgICAgICAgZmFsbGJhY2tLZXkgPSBu
dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5yZXZpc2lvbltyZXBvc2l0b3J5
XSA9IHBhcnNlUmV2aXNpb25Qcm9wZXJ0eShyZXZpc2lvblByb3BlcnR5LCBrZXksIGZhbGxiYWNr
S2V5KTsKKyAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHNvdXJjZVN0YW1wQ2hhbmdlcyhz
b3VyY2VTdGFtcCkgewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggYTQ3MmMxOS4uMWMyMWFmYiAxMDA2NDQKLS0tIGEv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcworKysgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCkBAIC0yNjgsMTEgKzI2OCwxMSBAQCBCdWlsZGJvdFF1
ZXVlLnByb3RvdHlwZSA9IHsKIAogICAgIGNvbXBhcmVJdGVyYXRpb25zOiBmdW5jdGlvbihhLCBi
KQogICAgIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IGIub3BlblNvdXJjZVJldmlzaW9uIC0gYS5v
cGVuU291cmNlUmV2aXNpb247CisgICAgICAgIHZhciByZXN1bHQgPSBiLnJldmlzaW9uW0Rhc2hi
b2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0gLSBhLnJldmlzaW9uW0Rhc2hib2FyZC5S
ZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV07CiAgICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgICAgIHJlc3VsdCA9IGIuaW50ZXJuYWxSZXZpc2lv
biAtIGEuaW50ZXJuYWxSZXZpc2lvbjsKKyAgICAgICAgcmVzdWx0ID0gYi5yZXZpc2lvbltEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSAtIGEucmV2aXNpb25bRGFzaGJvYXJkLlJl
cG9zaXRvcnkuSW50ZXJuYWwubmFtZV07CiAgICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogCkBAIC0yODYsMTEgKzI4NiwxMSBAQCBCdWlsZGJvdFF1ZXVlLnBy
b3RvdHlwZSA9IHsKIAogICAgIGNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGZ1bmN0aW9u
KGEsIGIpCiAgICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gYi5vcGVuU291cmNlUmV2aXNpb24g
LSBhLm9wZW5Tb3VyY2VSZXZpc2lvbjsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25b
RGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSAtIGEucmV2aXNpb25bRGFzaGJv
YXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXTsKICAgICAgICAgaWYgKHJlc3VsdCkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICAgICAgcmVzdWx0ID0gYi5pbnRlcm5hbFJl
dmlzaW9uIC0gYS5pbnRlcm5hbFJldmlzaW9uOworICAgICAgICByZXN1bHQgPSBiLnJldmlzaW9u
W0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdIC0gYS5yZXZpc2lvbltEYXNoYm9h
cmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXTsKICAgICAgICAgaWYgKHJlc3VsdCkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L0J1aWxkYm90UXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1
ZVZpZXcuanMKaW5kZXggYWM3ZjY3Ny4uMGQ3MzMyMiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
QnVpbGRib3RRdWV1ZVZpZXcuanMKQEAgLTc3LDIzICs3NywyMyBAQCBCdWlsZGJvdFF1ZXVlVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIGxhdGVz
dFJlY29yZGVkT3BlblNvdXJjZVJldmlzaW9uTnVtYmVyID0gd2Via2l0VHJhYy5sYXRlc3RSZWNv
cmRlZFJldmlzaW9uTnVtYmVyOwotICAgICAgICBpZiAoIWxhdGVzdFJlY29yZGVkT3BlblNvdXJj
ZVJldmlzaW9uTnVtYmVyIHx8IHdlYmtpdFRyYWMub2xkZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJl
ciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9uKSB7CisgICAg
ICAgIGlmICghbGF0ZXN0UmVjb3JkZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIgfHwgd2Via2l0
VHJhYy5vbGRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJh
dGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKSB7CiAg
ICAgICAgICAgICB3ZWJraXRUcmFjLmxvYWRNb3JlSGlzdG9yaWNhbERhdGEoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBUbyBiZSAxMDAlIGNv
cnJlY3QsIHdlIHNob3VsZCBhbHNvIGZpbHRlciBvdXQgY2hhbmdlcyB0aGF0IGFyZSBpZ25vcmVk
IGJ5CiAgICAgICAgIC8vIHRoZSBxdWV1ZSwgc2VlIF9zaG91bGRfZmlsZV90cmlnZ2VyX2J1aWxk
IGluIHdrYnVpbGQucHkuCi0gICAgICAgIHZhciB0b3RhbFJldmlzaW9uc0JlaGluZCA9IHdlYmtp
dFRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaC5vcGVuU291cmNlLCBmdW5jdGlvbihj
b21taXQpIHsgcmV0dXJuIGNvbW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJ
dGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9uOyB9KS5sZW5ndGg7CisgICAgICAgIHZhciB0b3Rh
bFJldmlzaW9uc0JlaGluZCA9IHdlYmtpdFRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5j
aC5vcGVuU291cmNlLCBmdW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNvbW1pdC5yZXZpc2lvbk51
bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9z
aXRvcnkuT3BlblNvdXJjZS5uYW1lXTsgfSkubGVuZ3RoOwogCi0gICAgICAgIGlmIChsYXRlc3RQ
cm9kdWN0aXZlSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24pIHsKKyAgICAgICAgaWYgKGxhdGVz
dFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJu
YWwubmFtZV0pIHsKICAgICAgICAgICAgIHZhciBsYXRlc3RSZWNvcmRlZEludGVybmFsUmV2aXNp
b25OdW1iZXIgPSBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcjsKLSAg
ICAgICAgICAgIGlmICghbGF0ZXN0UmVjb3JkZWRJbnRlcm5hbFJldmlzaW9uTnVtYmVyIHx8IGlu
dGVybmFsVHJhYy5vbGRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2
ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uKSB7CisgICAgICAgICAgICBpZiAoIWxhdGVzdFJl
Y29yZGVkSW50ZXJuYWxSZXZpc2lvbk51bWJlciB8fCBpbnRlcm5hbFRyYWMub2xkZXN0UmVjb3Jk
ZWRSZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFz
aGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZV0pIHsKICAgICAgICAgICAgICAgICBpbnRl
cm5hbFRyYWMubG9hZE1vcmVIaXN0b3JpY2FsRGF0YSgpOwogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgdG90YWxSZXZpc2lvbnNCZWhpbmQgKz0g
aW50ZXJuYWxUcmFjLmNvbW1pdHNPbkJyYW5jaChxdWV1ZS5icmFuY2guaW50ZXJuYWwsIGZ1bmN0
aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVj
dGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uOyB9KS5sZW5ndGg7CisgICAgICAgICAgICB0
b3RhbFJldmlzaW9uc0JlaGluZCArPSBpbnRlcm5hbFRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVl
LmJyYW5jaC5pbnRlcm5hbCwgZnVuY3Rpb24oY29tbWl0KSB7IHJldHVybiBjb21taXQucmV2aXNp
b25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5S
ZXBvc2l0b3J5LkludGVybmFsLm5hbWVdOyB9KS5sZW5ndGg7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIXRvdGFsUmV2aXNpb25zQmVoaW5kKQpAQCAtMTUzLDEzICsxNTMsMTMgQEAgQnVpbGRi
b3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBjb250ZW50LmNsYXNzTmFtZSA9ICJjb21t
aXQtaGlzdG9yeS1wb3BvdmVyIjsKIAotICAgICAgICB2YXIgbGluZXNGb3JPcGVuU291cmNlID0g
dGhpcy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2Uod2Via2l0VHJhYywgcXVldWUuYnJhbmNo
Lm9wZW5Tb3VyY2UsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9u
ICsgMSwgd2Via2l0VHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKTsKKyAgICAgICAg
dmFyIGxpbmVzRm9yT3BlblNvdXJjZSA9IHRoaXMuX3BvcG92ZXJMaW5lc0ZvckNvbW1pdFJhbmdl
KHdlYmtpdFRyYWMsIHF1ZXVlLmJyYW5jaC5vcGVuU291cmNlLCBsYXRlc3RQcm9kdWN0aXZlSXRl
cmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0gKyAx
LCB3ZWJraXRUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpOwogICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSAhPSBsaW5lc0Zvck9wZW5Tb3VyY2UubGVuZ3RoOyArK2kpCiAgICAgICAg
ICAgICBjb250ZW50LmFwcGVuZENoaWxkKGxpbmVzRm9yT3BlblNvdXJjZVtpXSk7CiAKICAgICAg
ICAgdmFyIGxpbmVzRm9ySW50ZXJuYWwgPSBbXTsKLSAgICAgICAgaWYgKGxhdGVzdFByb2R1Y3Rp
dmVJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiAmJiBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3Jk
ZWRSZXZpc2lvbk51bWJlcikKLSAgICAgICAgICAgIHZhciBsaW5lc0ZvckludGVybmFsID0gdGhp
cy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2UoaW50ZXJuYWxUcmFjLCBxdWV1ZS5icmFuY2gu
aW50ZXJuYWwsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiArIDEs
IGludGVybmFsVHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKTsKKyAgICAgICAgaWYg
KGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnku
SW50ZXJuYWwubmFtZV0gJiYgaW50ZXJuYWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1i
ZXIpCisgICAgICAgICAgICB2YXIgbGluZXNGb3JJbnRlcm5hbCA9IHRoaXMuX3BvcG92ZXJMaW5l
c0ZvckNvbW1pdFJhbmdlKGludGVybmFsVHJhYywgcXVldWUuYnJhbmNoLmludGVybmFsLCBsYXRl
c3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVy
bmFsLm5hbWVdICsgMSwgaW50ZXJuYWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIp
OwogCiAgICAgICAgIGlmIChsaW5lc0Zvck9wZW5Tb3VyY2UubGVuZ3RoICYmIGxpbmVzRm9ySW50
ZXJuYWwubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fYWRkRGl2aWRlclRvUG9wb3Zlcihjb250
ZW50KTsKQEAgLTIwNCwxOCArMjA0LDE4IEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIF9yZXZpc2lvbkNvbnRlbnRX
aXRoUG9wb3ZlckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJh
dGlvbiwgaW50ZXJuYWwpCisgICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0
aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCByZXBvc2l0b3J5LCB0
cmFjKQogICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7Ci0gICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyAoaW50ZXJuYWwg
PyBpdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IGl0ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNp
b24pOworICAgICAgICBjb250ZW50LnRleHRDb250ZW50ID0gInIiICsgaXRlcmF0aW9uLnJldmlz
aW9uW3JlcG9zaXRvcnldOwogICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQoInJldmlzaW9u
LW51bWJlciIpOwogCiAgICAgICAgIGlmIChwcmV2aW91c0l0ZXJhdGlvbikgewogICAgICAgICAg
ICAgdmFyIGNvbnRleHQgPSB7Ci0gICAgICAgICAgICAgICAgdHJhYzogaW50ZXJuYWwgPyBpbnRl
cm5hbFRyYWMgOiB3ZWJraXRUcmFjLAotICAgICAgICAgICAgICAgIGJyYW5jaDogaW50ZXJuYWwg
PyBpdGVyYXRpb24ucXVldWUuYnJhbmNoLmludGVybmFsIDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5j
aC5vcGVuU291cmNlLAotICAgICAgICAgICAgICAgIGZpcnN0UmV2aXNpb246IChpbnRlcm5hbCA/
IHByZXZpb3VzSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24gOiBwcmV2aW91c0l0ZXJhdGlvbi5v
cGVuU291cmNlUmV2aXNpb24pICsgMSwKLSAgICAgICAgICAgICAgICBsYXN0UmV2aXNpb246IGlu
dGVybmFsID8gaXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24gOiBpdGVyYXRpb24ub3BlblNvdXJj
ZVJldmlzaW9uCisgICAgICAgICAgICAgICAgdHJhYzogdHJhYywKKyAgICAgICAgICAgICAgICBi
cmFuY2g6IGl0ZXJhdGlvbi5xdWV1ZS5icmFuY2hbcmVwb3NpdG9yeV0sCisgICAgICAgICAgICAg
ICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeV0g
KyAxLAorICAgICAgICAgICAgICAgIGxhc3RSZXZpc2lvbjogaXRlcmF0aW9uLnJldmlzaW9uW3Jl
cG9zaXRvcnldCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKGNvbnRleHQuZmlyc3RS
ZXZpc2lvbiA8PSBjb250ZXh0Lmxhc3RSZXZpc2lvbikKICAgICAgICAgICAgICAgICBuZXcgUG9w
b3ZlclRyYWNrZXIoY29udGVudCwgdGhpcy5fcHJlc2VudFBvcG92ZXJGb3JSZXZpc2lvblJhbmdl
LmJpbmQodGhpcyksIGNvbnRleHQpOwpAQCAtMjYwLDE0ICsyNjAsMTQgQEAgQnVpbGRib3RRdWV1
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uOiBm
dW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uKQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZpc2lvbik7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9y
eS5PcGVuU291cmNlLm5hbWVdKTsKIAotICAgICAgICB2YXIgb3BlblNvdXJjZUNvbnRlbnQgPSB0
aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHBy
ZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uKTsKKyAgICAgICAgdmFyIG9wZW5Tb3VyY2VDb250ZW50
ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9u
LCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgIm9wZW5Tb3VyY2UiLCB3ZWJraXRUcmFjKTsK
IAotICAgICAgICBpZiAoIWl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uKQorICAgICAgICBpZiAo
IWl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSkK
ICAgICAgICAgICAgIHJldHVybiBvcGVuU291cmNlQ29udGVudDsKIAotICAgICAgICB2YXIgaW50
ZXJuYWxDb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRp
b24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgdHJ1ZSk7CisgICAgICAg
IHZhciBpbnRlcm5hbENvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZv
ckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCAiaW50ZXJu
YWwiLCBpbnRlcm5hbFRyYWMpOwogCiAgICAgICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQob3Bl
blNvdXJjZUNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJv
YXJkLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzCmluZGV4IDEyYTlkM2Mu
LjI2MzM5MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcwor
KysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKQEAgLTM1LDUgKzM1LDkgQEAg
RGFzaGJvYXJkID0gewogICAgICAgICBMaW51eEdUSzogeyBuYW1lIDogImxpbnV4LWd0ayIsIHJl
YWRhYmxlTmFtZTogIkxpbnV4IEdUSyIsIG9yZGVyOiA5MCB9LAogICAgICAgICBMaW51eEVGTDog
eyBuYW1lOiAibGludXgtZWZsIiwgcmVhZGFibGVOYW1lOiAiTGludXggRUZMIiwgb3JkZXIgOiAx
MDAgfQogICAgIH0sCi0gICAgQnJhbmNoOiB7fQorICAgIEJyYW5jaDoge30sCisgICAgUmVwb3Np
dG9yeTogeworICAgICAgICBPcGVuU291cmNlOiB7IG5hbWU6ICJvcGVuU291cmNlIiwgc29ydDog
MCB9LAorICAgICAgICBJbnRlcm5hbDogeyBuYW1lOiAiaW50ZXJuYWwiLCBzb3J0OiAxIH0sCisg
ICAgfQogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJpY3NBbmFseXpl
ci5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJpY3NBbmFseXplci5qcwppbmRleCBlYWQ5
NTdkLi41ZjczZDMwIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5h
bHl6ZXIuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzCkBA
IC0xMjQsNyArMTI0LDcgQEAgQW5hbHl6ZXIucHJvdG90eXBlID0gewogICAgICAgICBpZiAoaSA8
IGl0ZXJhdGlvbnMubGVuZ3RoKQogICAgICAgICAgICAgcmVzdWx0ID0gaSsrOwogICAgICAgICB3
aGlsZSAoaSA8IGl0ZXJhdGlvbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAoaXRlcmF0aW9u
c1tpXS5vcGVuU291cmNlUmV2aXNpb24gPiBpdGVyYXRpb25zW3Jlc3VsdF0ub3BlblNvdXJjZVJl
dmlzaW9uKQorICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0ucmV2aXNpb25bRGFzaGJvYXJk
LlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSA+IGl0ZXJhdGlvbnNbcmVzdWx0XS5yZXZpc2lv
bltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKQogICAgICAgICAgICAgICAg
IHJlc3VsdCA9IGk7CiAgICAgICAgICAgICArK2k7CiAgICAgICAgIH0KQEAgLTIxMyw3ICsyMTMs
NyBAQCBBbmFseXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRl
U3RyZXRjaE9mUmVkQ291bnRlcnModG9wSXRlcmF0aW9uQnlRdWV1ZSwgY3VycmVudFRpbWUsIHN0
cmV0Y2hPZlJlZENvdW50ZXJzKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChpdGVyYXRpb25zW2ldLm9wZW5Tb3VyY2VSZXZpc2lvbiA8
PSB0b3BJdGVyYXRpb25CeVF1ZXVlW2l0ZXJhdGlvbnNbaV0ucXVldWUuaWRdLm9wZW5Tb3VyY2VS
ZXZpc2lvbikKKyAgICAgICAgICAgIGlmIChpdGVyYXRpb25zW2ldLnJldmlzaW9uW0Rhc2hib2Fy
ZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0gPD0gdG9wSXRlcmF0aW9uQnlRdWV1ZVtpdGVy
YXRpb25zW2ldLnF1ZXVlLmlkXS5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291
cmNlLm5hbWVdKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICB2YXIg
ZGFzaGJvYXJkV2FzQWxsR3JlZW4gPSB0aGlzLl9kYXNoYm9hcmRJc0FsbEdyZWVuKHRvcEl0ZXJh
dGlvbkJ5UXVldWUpOwpAQCAtMjc1LDcgKzI3NSw3IEBAIEFuYWx5emVyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVsZXZhbnRJdGVyYXRpb25zQnlRdWV1ZVtxdWV1ZS5pZF0ubGVuZ3RoOyArK2kp
IHsKICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZXJhdGlvbiA9IHJlbGV2YW50SXRlcmF0aW9u
c0J5UXVldWVbcXVldWUuaWRdW2ldOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcmF0aW9u
Lm9wZW5Tb3VyY2VSZXZpc2lvbiA+PSByZXZpc2lvbi5yZXZpc2lvbk51bWJlcikgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoaXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5
Lk9wZW5Tb3VyY2UubmFtZV0gPj0gcmV2aXNpb24ucmV2aXNpb25OdW1iZXIpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuZFRpbWUgPSBNYXRoLm1heChlbmRUaW1lLCBpdGVyYXRpb24uZW5k
VGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBvd25UaW1lID0gTWF0aC5tYXgob3duVGlt
ZSwgaXRlcmF0aW9uLmVuZFRpbWUgLSBpdGVyYXRpb24uc3RhcnRUaW1lKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2Vi
S2l0QnVpbGRib3QuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcwpp
bmRleCA5OGIzNzhmLi40YzAyNjRjIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9X
ZWJLaXRCdWlsZGJvdC5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJv
dC5qcwpAQCAtODIsNiArODIsNiBAQCBXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUgPSB7CiAKICAg
ICBsYXlvdXRUZXN0UmVzdWx0c0RpcmVjdG9yeVVSTEZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRl
cmF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVSTCArICJyZXN1bHRzLyIg
KyBlbmNvZGVVUklDb21wb25lbnQoaXRlcmF0aW9uLnF1ZXVlLmlkKSArICIvIiArIGVuY29kZVVS
SUNvbXBvbmVudCgiciIgKyBpdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9uICsgIiAoIiArIGl0
ZXJhdGlvbi5pZCArICIpIik7CisgICAgICAgIHJldHVybiB0aGlzLmJhc2VVUkwgKyAicmVzdWx0
cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KGl0ZXJhdGlvbi5xdWV1ZS5pZCkgKyAiLyIgKyBlbmNv
ZGVVUklDb21wb25lbnQoInIiICsgaXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0
b3J5Lk9wZW5Tb3VyY2UubmFtZV0gKyAiICgiICsgaXRlcmF0aW9uLmlkICsgIikiKTsKICAgICB9
CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGZlZTM3YjMuLjcwMWVjNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxNS0wNy0zMCAgSmFzb24gTWFyY2VsbCAg
PGptYXJjZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciB0byBjb252ZXJ0IG9wZW5T
b3VyY2VSZXZpc2lvbiBhbmQgaW50ZXJuYWxSZXZpc2lvbiBwcm9wZXJ0aWVzIG9uIEJ1aWxkYm90
SXRlcmF0aW9uIGludG8gYSBtb3JlIGdlbmVyaWMgY29sbGVjdGlvbiBvZiByZXZpc2lvbnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEJ1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOgorICAgICAgICAoQnVpbGRib3RJdGVyYXRpb24p
OgorICAgICAgICBSZW1vdmVkIG9wZW5zb3VyY2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4g
QWRkZWQgcmV2aXNpb24uCisgICAgICAgIFJlZmFjdG9yZWQgX3BhcnNlRGF0YSB0byBoYW5kbGUg
cmVwb3NpdG9yaWVzIG1vcmUgZ2VuZXJpY2FsbHkuCisgICAgICAgIChwYXJzZVJldmlzaW9uUHJv
cGVydHkpOgorICAgICAgICBNb3ZlZCBhIGNvbW1lbnQgdXAgdG8gcGFyc2VSZXZpc2lvblByb3Bl
cnR5IHdoZXJlIGl0IHNlZW1zIG1vcmUgcmVsZXZlbnQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNv
bXBhcmVJdGVyYXRpb25zKToKKyAgICAgICAgVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0
ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAg
ICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25z
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1
ZVZpZXcuanM6CisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBl
bmRpbmdSZXZpc2lvbkNvdW50KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFF1
ZXVlVmlldy5wcm90b3R5cGUuX3ByZXNlbnRQb3BvdmVyRm9yUGVuZGluZ0NvbW1pdHMpOgorICAg
ICAgICBEaXR0by4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fcmV2aXNp
b25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOgorICAgICAgICBDaGFuZ2luZyAiaW50
ZXJuYWwiIGJvb2xlYW4gcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVwb3NpdG9yeSIgc3Ry
aW5nIHBhcmFtZXRlci4KKyAgICAgICAgQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBvcmRlciB0
byBzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4KKyAgICAgICAgVXNpbmcgInJldmlz
aW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJu
YWxSZXZpc2lvbiIuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUucmV2aXNp
b25Db250ZW50Rm9ySXRlcmF0aW9uKToKKyAgICAgICAgUGFzc2luZyB0aGUgInJlcG9zaXRvcnki
IGFuZCB0cmFjIGluc3RhbmNlIHRvIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJh
dGlvbgorICAgICAgICBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2YgIm9wZW5z
b3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9EYXNoYm9hcmQuanM6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0Fu
YWx5emVyLmpzOgorICAgICAgICAoQW5hbHl6ZXIucHJvdG90eXBlLl9maW5kSW5kZXhPZkxhcmdl
c3RJdGVyYXRpb25BdE9yQmVmb3JlU3RhcnQpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKEFu
YWx5emVyLnByb3RvdHlwZS5fY291bnRQZXJjZW50YWdlT2ZHcmVlbik6CisgICAgICAgIERpdHRv
LgorICAgICAgICAoQW5hbHl6ZXIucHJvdG90eXBlLndlYmtpdFRyYWMucmVjb3JkZWRDb21taXRz
LmZvckVhY2gpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKEFuYWx5emVyLnByb3RvdHlwZS5f
Y291bnRUaW1lcyk6CisgICAgICAgIERpdHRvLgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dl
YktpdEJ1aWxkYm90LmpzOgorICAgICAgICAoV2ViS2l0QnVpbGRib3QucHJvdG90eXBlLmxheW91
dFRlc3RSZXN1bHRzRGlyZWN0b3J5VVJMRm9ySXRlcmF0aW9uKToKKyAgICAgICAgRGl0dG8uCisK
IDIwMTUtMDctMzAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlcGxhY2UgR29vZ2xlIEFwcCBFbmdpbmUgd2l0aCBBcHBTY2FsZQotLSAKMi4zLjggKEFw
cGxlIEdpdC01OCkKCg==
</data>
<flag name="review"
          id="283039"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258106</attachid>
            <date>2015-08-03 13:51:32 -0700</date>
            <delta_ts>2015-08-03 17:59:05 -0700</delta_ts>
            <desc>Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.</desc>
            <filename>0001-Refactor-to-convert-openSourceRevision-and-internalR.patch</filename>
            <type>text/plain</type>
            <size>21678</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">RnJvbSA2MTU5N2M2YjYxYjEwYzI2NmUxZWFiMzViZGFmYjVlMjllYWE4YTdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNYXJjZWxsIDxqbWFyY2VsbEBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMyBBdWcgMjAxNSAxMzo1MDoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlZmFj
dG9yIHRvIGNvbnZlcnQgb3BlblNvdXJjZVJldmlzaW9uIGFuZCBpbnRlcm5hbFJldmlzaW9uCiBw
cm9wZXJ0aWVzIG9uIEJ1aWxkYm90SXRlcmF0aW9uIGludG8gYSBtb3JlIGdlbmVyaWMgY29sbGVj
dGlvbiBvZiByZXZpc2lvbnMuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ3MjgwCgpSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCgoqIEJ1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1
aWxkYm90SXRlcmF0aW9uLmpzOgooQnVpbGRib3RJdGVyYXRpb24pOiBSZW1vdmVkIG9wZW5zb3Vy
Y2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4gQWRkZWQgcmV2aXNpb24uClJlZmFjdG9yZWQg
X3BhcnNlRGF0YSB0byBoYW5kbGUgcmVwb3NpdG9yaWVzIG1vcmUgZ2VuZXJpY2FsbHkuCihwYXJz
ZVJldmlzaW9uUHJvcGVydHkpOiBNb3ZlZCBhIGNvbW1lbnQgdXAgdG8gcGFyc2VSZXZpc2lvblBy
b3BlcnR5IHdoZXJlIGl0IHNlZW1zIG1vcmUgcmVsZXZlbnQuCiogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVp
bGRib3RRdWV1ZS5qczoKKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNvbXBhcmVJdGVyYXRpb25z
KTogVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mCiJvcGVuc291cmNlUmV2aXNp
b24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCihCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5jb21w
YXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKTogRGl0dG8uCiogQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRi
b3RRdWV1ZVZpZXcuanM6CihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBlbmRp
bmdSZXZpc2lvbkNvdW50KTogRGl0dG8uCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3By
ZXNlbnRQb3BvdmVyRm9yUGVuZGluZ0NvbW1pdHMpOiBEaXR0by4KKEJ1aWxkYm90UXVldWVWaWV3
LnByb3RvdHlwZS5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOiBDaGFu
Z2luZyAiaW50ZXJuYWwiCmJvb2xlYW4gcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVwb3Np
dG9yeSIgc3RyaW5nIHBhcmFtZXRlci4KQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBvcmRlciB0
byBzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4KVXNpbmcgInJldmlzaW9uIiBwcm9w
ZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lv
biIuCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0
aW9uKTogUGFzc2luZyB0aGUgInJlcG9zaXRvcnkiIGFuZCB0cmFjCmluc3RhbmNlIHRvIF9yZXZp
c2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbgpVc2luZyAicmV2aXNpb24iIHByb3Bl
cnR5IGluc3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9u
Ii4KKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanM6IEFkZGluZwpjb25zdGFudHMgZm9yIGlu
dGVybmFsIGFuZCBvcGVuc291cmNlIHJlcG9zaXRvcmllcwoqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJp
Y3NBbmFseXplci5qczoKKEFuYWx5emVyLnByb3RvdHlwZS5fZmluZEluZGV4T2ZMYXJnZXN0SXRl
cmF0aW9uQXRPckJlZm9yZVN0YXJ0KTogVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eQppbnN0ZWFk
IG9mICJvcGVuc291cmNlUmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCihBbmFseXpl
ci5wcm90b3R5cGUuX2NvdW50UGVyY2VudGFnZU9mR3JlZW4pOiBEaXR0by4KKEFuYWx5emVyLnBy
b3RvdHlwZS53ZWJraXRUcmFjLnJlY29yZGVkQ29tbWl0cy5mb3JFYWNoKTogRGl0dG8uCihBbmFs
eXplci5wcm90b3R5cGUuX2NvdW50VGltZXMpOiBEaXR0by4KKiBCdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJL
aXRCdWlsZGJvdC5qczoKKFdlYktpdEJ1aWxkYm90LnByb3RvdHlwZS5sYXlvdXRUZXN0UmVzdWx0
c0RpcmVjdG9yeVVSTEZvckl0ZXJhdGlvbik6IERpdHRvLgotLS0KIC4uLi9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyAgICAgICAgIHwgNDQgKysrKysrKysrKysrLS0tLS0t
LS0tLQogLi4uL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMg
fCAgOCArKy0tCiAuLi4vZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgICAg
ICAgICB8IDM2ICsrKysrKysrKy0tLS0tLS0tLQogLi4uL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0Rhc2hib2FyZC5qcyAgICAgfCAgNiArKy0KIC4uLi9kYXNoYm9hcmQvU2NyaXB0cy9N
ZXRyaWNzQW5hbHl6ZXIuanMgICAgICAgICAgIHwgIDYgKy0tCiAuLi4vZGFzaGJvYXJkL1Njcmlw
dHMvV2ViS2l0QnVpbGRib3QuanMgICAgICAgICAgICB8ICAyICstCiBUb29scy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM2ICsrKysrKysrKysrKysrKysr
KwogNyBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCmluZGV4IDJiOWNmMGEuLjE1
N2QyMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9u
LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCkBAIC00
Myw4ICs0Myw3IEBAIEJ1aWxkYm90SXRlcmF0aW9uID0gZnVuY3Rpb24ocXVldWUsIGRhdGFPcklE
LCBmaW5pc2hlZCkKICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlOwogICAgIHRoaXMuX3Byb2R1
Y3RpdmUgPSBmYWxzZTsKIAotICAgIHRoaXMub3BlblNvdXJjZVJldmlzaW9uID0gbnVsbDsKLSAg
ICB0aGlzLmludGVybmFsUmV2aXNpb24gPSBudWxsOworICAgIHRoaXMucmV2aXNpb24gPSB7fTsK
IAogICAgIHRoaXMubGF5b3V0VGVzdFJlc3VsdHMgPSBudWxsOyAvLyBMYXlvdXQgdGVzdCByZXN1
bHRzIGNhbiBiZSBuZWVkZWQgZXZlbiBpZiBhbGwgdGVzdHMgcGFzc2VkLCBlLmcuIGZvciB0aGUg
bGVha3MgYm90LgogCkBAIC0xMDIsNiArMTAxLDEyIEBAIGZ1bmN0aW9uIHBhcnNlUmV2aXNpb25Q
cm9wZXJ0eShwcm9wZXJ0eSwga2V5LCBmYWxsYmFja0tleSkKICAgICBpZiAoIXByb3BlcnR5KQog
ICAgICAgICByZXR1cm4gbnVsbDsKICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0eVsxXTsKKworICAg
IC8vIFRoZSBwcm9wZXJ0eSBnb3RfcmV2aXNpb24gbWF5IGhhdmUgdGhlIGZvbGxvd2luZyBmb3Jt
czoKKyAgICAvLworICAgIC8vIFsiZ290X3JldmlzaW9uIix7IkludGVybmFsIjoiMTM1NyIsIldl
YktpdE9wZW5Tb3VyY2UiOiIyNDY4In0sIlNvdXJjZSJdCisgICAgLy8gT1IKKyAgICAvLyBbImdv
dF9yZXZpc2lvbiIsIjI0NjgiLCJTb3VyY2UiXQogICAgIGlmIChpc011bHRpQ29kZWJhc2VHb3RS
ZXZpc2lvblByb3BlcnR5KHByb3BlcnR5KSkKICAgICAgICAgdmFsdWUgPSAoa2V5IGluIHZhbHVl
KSA/IHZhbHVlW2tleV0gOiB2YWx1ZVtmYWxsYmFja0tleV07CiAgICAgcmV0dXJuIHBhcnNlSW50
KHZhbHVlKTsKQEAgLTE4OCwyMyArMTkzLDI0IEBAIEJ1aWxkYm90SXRlcmF0aW9uLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuaWQgfHwgdGhpcy5pZCA9PT0gZGF0
YS5udW1iZXIpOwogICAgICAgICB0aGlzLmlkID0gZGF0YS5udW1iZXI7CiAKLSAgICAgICAgLy8g
VGhlIHByb3BlcnR5IGdvdF9yZXZpc2lvbiBtYXkgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1zOgot
ICAgICAgICAvLwotICAgICAgICAvLyBbImdvdF9yZXZpc2lvbiIseyJJbnRlcm5hbCI6IjEzNTci
LCJXZWJLaXRPcGVuU291cmNlIjoiMjQ2OCJ9LCJTb3VyY2UiXQotICAgICAgICAvLyBPUgotICAg
ICAgICAvLyBbImdvdF9yZXZpc2lvbiIsIjI0NjgiLCJTb3VyY2UiXQotICAgICAgICAvLwotICAg
ICAgICAvLyBXaGVuIGV4dHJhY3RpbmcgdGhlIE9wZW5Tb3VyY2UgcmV2aXNpb24gZnJvbSBwcm9w
ZXJ0eSBnb3RfcmV2aXNpb24gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZQotICAg
ICAgICAvLyB2YWx1ZSBvZiBnb3RfcmV2aXNpb24gaXMgYSBkaWN0aW9uYXJ5IChyZXByZXNlbnRz
IG11bHRpcGxlIGNvZGViYXNlcykgb3IgYSBzdHJpbmcgbGl0ZXJhbCBiZWNhdXNlIHdlCi0gICAg
ICAgIC8vIGFzc3VtZSB0aGF0IGdvdF9yZXZpc2lvbiBjb250YWlucyB0aGUgT3BlblNvdXJjZSBy
ZXZpc2lvbi4gSG93ZXZlciwgaXQgbWF5IG5vdCBoYXZlIHRoZSBJbnRlcm5hbAotICAgICAgICAv
LyByZXZpc2lvbi4gVGhlcmVmb3JlLCB3ZSBvbmx5IGxvb2sgYXQgZ290X3JldmlzaW9uIHRvIGV4
dHJhY3QgdGhlIEludGVybmFsIHJldmlzaW9uIHdoZW4gaXQncwotICAgICAgICAvLyBhIGRpY3Rp
b25hcnkuCi0KLSAgICAgICAgdmFyIG9wZW5Tb3VyY2VSZXZpc2lvblByb3BlcnR5ID0gZGF0YS5w
cm9wZXJ0aWVzLmZpbmRGaXJzdChmdW5jdGlvbihwcm9wZXJ0eSkgeyByZXR1cm4gcHJvcGVydHlb
MF0gPT09ICJnb3RfcmV2aXNpb24iOyB9KTsKLSAgICAgICAgdGhpcy5vcGVuU291cmNlUmV2aXNp
b24gPSBwYXJzZVJldmlzaW9uUHJvcGVydHkob3BlblNvdXJjZVJldmlzaW9uUHJvcGVydHksICJX
ZWJLaXQiLCAib3BlbnNvdXJjZSIpOwotCi0gICAgICAgIHZhciBpbnRlcm5hbFJldmlzaW9uUHJv
cGVydHkgPSBkYXRhLnByb3BlcnRpZXMuZmluZEZpcnN0KGZ1bmN0aW9uKHByb3BlcnR5KSB7IHJl
dHVybiBpc011bHRpQ29kZWJhc2VHb3RSZXZpc2lvblByb3BlcnR5KHByb3BlcnR5KTsgfSk7Ci0g
ICAgICAgIHRoaXMuaW50ZXJuYWxSZXZpc2lvbiA9IHBhcnNlUmV2aXNpb25Qcm9wZXJ0eShpbnRl
cm5hbFJldmlzaW9uUHJvcGVydHksICJJbnRlcm5hbCIsICJpbnRlcm5hbCIpOworICAgICAgICB2
YXIgcmV2aXNpb25Qcm9wZXJ0eSA9IGRhdGEucHJvcGVydGllcy5maW5kRmlyc3QoZnVuY3Rpb24o
cHJvcGVydHkpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVswXSA9PT0gImdvdF9yZXZp
c2lvbiI7CisgICAgICAgIH0pOworICAgICAgICBmb3IgKHJlcG9zaXRvcnkgaW4gdGhpcy5xdWV1
ZS5icmFuY2gpIHsKKyAgICAgICAgICAgIHZhciBrZXk7CisgICAgICAgICAgICB2YXIgZmFsbGJh
Y2tLZXk7CisgICAgICAgICAgICBpZiAocmVwb3NpdG9yeSA9PT0gIm9wZW5Tb3VyY2UiKSB7Cisg
ICAgICAgICAgICAgICAga2V5ID0gIldlYktpdCI7CisgICAgICAgICAgICAgICAgZmFsbGJhY2tL
ZXkgPSAib3BlbnNvdXJjZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcG9zaXRvcnkgPT09
ICJpbnRlcm5hbCIpIHsKKyAgICAgICAgICAgICAgICBrZXkgPSAiSW50ZXJuYWwiOworICAgICAg
ICAgICAgICAgIGZhbGxiYWNrS2V5ID0gImludGVybmFsIjsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAga2V5ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgICAgICAgICBmYWxs
YmFja0tleSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnJldmlzaW9u
W3JlcG9zaXRvcnldID0gcGFyc2VSZXZpc2lvblByb3BlcnR5KHJldmlzaW9uUHJvcGVydHksIGtl
eSwgZmFsbGJhY2tLZXkpOworICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gc291cmNlU3Rh
bXBDaGFuZ2VzKHNvdXJjZVN0YW1wKSB7CiAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gW107CmRp
ZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzIGIvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCBhNDcyYzE5Li4xYzIxYWZiIDEw
MDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKQEAgLTI2OCwxMSArMjY4LDExIEBA
IEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogCiAgICAgY29tcGFyZUl0ZXJhdGlvbnM6IGZ1
bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gYi5vcGVuU291cmNlUmV2
aXNpb24gLSBhLm9wZW5Tb3VyY2VSZXZpc2lvbjsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2
aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSAtIGEucmV2aXNpb25b
RGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXTsKICAgICAgICAgaWYgKHJlc3Vs
dCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICAgICAgcmVzdWx0ID0gYi5pbnRl
cm5hbFJldmlzaW9uIC0gYS5pbnRlcm5hbFJldmlzaW9uOworICAgICAgICByZXN1bHQgPSBiLnJl
dmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdIC0gYS5yZXZpc2lvbltE
YXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXTsKICAgICAgICAgaWYgKHJlc3VsdCkK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTI4NiwxMSArMjg2LDExIEBAIEJ1aWxk
Ym90UXVldWUucHJvdG90eXBlID0gewogCiAgICAgY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9u
czogZnVuY3Rpb24oYSwgYikKICAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBiLm9wZW5Tb3Vy
Y2VSZXZpc2lvbiAtIGEub3BlblNvdXJjZVJldmlzaW9uOworICAgICAgICB2YXIgcmVzdWx0ID0g
Yi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdIC0gYS5yZXZp
c2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdOwogICAgICAgICBpZiAo
cmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgICAgICByZXN1bHQgPSBi
LmludGVybmFsUmV2aXNpb24gLSBhLmludGVybmFsUmV2aXNpb247CisgICAgICAgIHJlc3VsdCA9
IGIucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZV0gLSBhLnJldmlz
aW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdOwogICAgICAgICBpZiAocmVz
dWx0KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlVmlldy5qcwppbmRleCBhYzdmNjc3Li43ZTQwMWYxIDEwMDY0NAotLS0gYS9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcworKysgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpAQCAtNzcsMjMgKzc3LDIzIEBAIEJ1aWxk
Ym90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICB2YXIgbGF0ZXN0UmVjb3JkZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIgPSB3ZWJraXRUcmFj
LmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXI7Ci0gICAgICAgIGlmICghbGF0ZXN0UmVjb3Jk
ZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIgfHwgd2Via2l0VHJhYy5vbGRlc3RSZWNvcmRlZFJl
dmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNp
b24pIHsKKyAgICAgICAgaWYgKCFsYXRlc3RSZWNvcmRlZE9wZW5Tb3VyY2VSZXZpc2lvbk51bWJl
ciB8fCB3ZWJraXRUcmFjLm9sZGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9k
dWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2Uu
bmFtZV0pIHsKICAgICAgICAgICAgIHdlYmtpdFRyYWMubG9hZE1vcmVIaXN0b3JpY2FsRGF0YSgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFRv
IGJlIDEwMCUgY29ycmVjdCwgd2Ugc2hvdWxkIGFsc28gZmlsdGVyIG91dCBjaGFuZ2VzIHRoYXQg
YXJlIGlnbm9yZWQgYnkKICAgICAgICAgLy8gdGhlIHF1ZXVlLCBzZWUgX3Nob3VsZF9maWxlX3Ry
aWdnZXJfYnVpbGQgaW4gd2tidWlsZC5weS4KLSAgICAgICAgdmFyIHRvdGFsUmV2aXNpb25zQmVo
aW5kID0gd2Via2l0VHJhYy5jb21taXRzT25CcmFuY2gocXVldWUuYnJhbmNoLm9wZW5Tb3VyY2Us
IGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0
UHJvZHVjdGl2ZUl0ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNpb247IH0pLmxlbmd0aDsKKyAgICAg
ICAgdmFyIHRvdGFsUmV2aXNpb25zQmVoaW5kID0gd2Via2l0VHJhYy5jb21taXRzT25CcmFuY2go
cXVldWUuYnJhbmNoLm9wZW5Tb3VyY2UsIGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0
LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvbltEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdOyB9KS5sZW5ndGg7CiAKLSAgICAgICAg
aWYgKGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbikgeworICAgICAg
ICBpZiAobGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3Np
dG9yeS5JbnRlcm5hbC5uYW1lXSkgewogICAgICAgICAgICAgdmFyIGxhdGVzdFJlY29yZGVkSW50
ZXJuYWxSZXZpc2lvbk51bWJlciA9IGludGVybmFsVHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9u
TnVtYmVyOwotICAgICAgICAgICAgaWYgKCFsYXRlc3RSZWNvcmRlZEludGVybmFsUmV2aXNpb25O
dW1iZXIgfHwgaW50ZXJuYWxUcmFjLm9sZGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIgPiBsYXRl
c3RQcm9kdWN0aXZlSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24pIHsKKyAgICAgICAgICAgIGlm
ICghbGF0ZXN0UmVjb3JkZWRJbnRlcm5hbFJldmlzaW9uTnVtYmVyIHx8IGludGVybmFsVHJhYy5v
bGRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5y
ZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSkgewogICAgICAgICAg
ICAgICAgIGludGVybmFsVHJhYy5sb2FkTW9yZUhpc3RvcmljYWxEYXRhKCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB0b3RhbFJldmlzaW9u
c0JlaGluZCArPSBpbnRlcm5hbFRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaC5pbnRl
cm5hbCwgZnVuY3Rpb24oY29tbWl0KSB7IHJldHVybiBjb21taXQucmV2aXNpb25OdW1iZXIgPiBs
YXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb247IH0pLmxlbmd0aDsKKyAg
ICAgICAgICAgIHRvdGFsUmV2aXNpb25zQmVoaW5kICs9IGludGVybmFsVHJhYy5jb21taXRzT25C
cmFuY2gocXVldWUuYnJhbmNoLmludGVybmFsLCBmdW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNv
bW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25b
RGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZV07IH0pLmxlbmd0aDsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICghdG90YWxSZXZpc2lvbnNCZWhpbmQpCkBAIC0xNTMsMTMgKzE1Mywx
MyBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIGNvbnRlbnQuY2xhc3NO
YW1lID0gImNvbW1pdC1oaXN0b3J5LXBvcG92ZXIiOwogCi0gICAgICAgIHZhciBsaW5lc0Zvck9w
ZW5Tb3VyY2UgPSB0aGlzLl9wb3BvdmVyTGluZXNGb3JDb21taXRSYW5nZSh3ZWJraXRUcmFjLCBx
dWV1ZS5icmFuY2gub3BlblNvdXJjZSwgbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5vcGVuU291
cmNlUmV2aXNpb24gKyAxLCB3ZWJraXRUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIp
OworICAgICAgICB2YXIgbGluZXNGb3JPcGVuU291cmNlID0gdGhpcy5fcG9wb3ZlckxpbmVzRm9y
Q29tbWl0UmFuZ2Uod2Via2l0VHJhYywgcXVldWUuYnJhbmNoLm9wZW5Tb3VyY2UsIGxhdGVzdFBy
b2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJj
ZS5uYW1lXSArIDEsIHdlYmtpdFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpICE9IGxpbmVzRm9yT3BlblNvdXJjZS5sZW5ndGg7ICsr
aSkKICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQobGluZXNGb3JPcGVuU291cmNlW2ld
KTsKIAogICAgICAgICB2YXIgbGluZXNGb3JJbnRlcm5hbCA9IFtdOwotICAgICAgICBpZiAobGF0
ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uICYmIGludGVybmFsVHJhYy5s
YXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKQotICAgICAgICAgICAgdmFyIGxpbmVzRm9ySW50
ZXJuYWwgPSB0aGlzLl9wb3BvdmVyTGluZXNGb3JDb21taXRSYW5nZShpbnRlcm5hbFRyYWMsIHF1
ZXVlLmJyYW5jaC5pbnRlcm5hbCwgbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJl
dmlzaW9uICsgMSwgaW50ZXJuYWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpOwor
ICAgICAgICBpZiAobGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQu
UmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSAmJiBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3JkZWRS
ZXZpc2lvbk51bWJlcikKKyAgICAgICAgICAgIHZhciBsaW5lc0ZvckludGVybmFsID0gdGhpcy5f
cG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2UoaW50ZXJuYWxUcmFjLCBxdWV1ZS5icmFuY2guaW50
ZXJuYWwsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9z
aXRvcnkuSW50ZXJuYWwubmFtZV0gKyAxLCBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZp
c2lvbk51bWJlcik7CiAKICAgICAgICAgaWYgKGxpbmVzRm9yT3BlblNvdXJjZS5sZW5ndGggJiYg
bGluZXNGb3JJbnRlcm5hbC5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9hZGREaXZpZGVyVG9Q
b3BvdmVyKGNvbnRlbnQpOwpAQCAtMjA0LDE4ICsyMDQsMTggQEAgQnVpbGRib3RRdWV1ZVZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3Jldmlz
aW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHBy
ZXZpb3VzSXRlcmF0aW9uLCBpbnRlcm5hbCkKKyAgICBfcmV2aXNpb25Db250ZW50V2l0aFBvcG92
ZXJGb3JJdGVyYXRpb246IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNJdGVyYXRpb24sIHJl
cG9zaXRvcnksIHRyYWMpCiAgICAgewogICAgICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgY29udGVudC50ZXh0Q29udGVudCA9ICJyIiAr
IChpbnRlcm5hbCA/IGl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uIDogaXRlcmF0aW9uLm9wZW5T
b3VyY2VSZXZpc2lvbik7CisgICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyBpdGVy
YXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeV07CiAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFk
ZCgicmV2aXNpb24tbnVtYmVyIik7CiAKICAgICAgICAgaWYgKHByZXZpb3VzSXRlcmF0aW9uKSB7
CiAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHsKLSAgICAgICAgICAgICAgICB0cmFjOiBpbnRl
cm5hbCA/IGludGVybmFsVHJhYyA6IHdlYmtpdFRyYWMsCi0gICAgICAgICAgICAgICAgYnJhbmNo
OiBpbnRlcm5hbCA/IGl0ZXJhdGlvbi5xdWV1ZS5icmFuY2guaW50ZXJuYWwgOiBpdGVyYXRpb24u
cXVldWUuYnJhbmNoLm9wZW5Tb3VyY2UsCi0gICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjog
KGludGVybmFsID8gcHJldmlvdXNJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IHByZXZpb3Vz
SXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZpc2lvbikgKyAxLAotICAgICAgICAgICAgICAgIGxhc3RS
ZXZpc2lvbjogaW50ZXJuYWwgPyBpdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IGl0ZXJhdGlv
bi5vcGVuU291cmNlUmV2aXNpb24KKyAgICAgICAgICAgICAgICB0cmFjOiB0cmFjLAorICAgICAg
ICAgICAgICAgIGJyYW5jaDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5XSwKKyAg
ICAgICAgICAgICAgICBmaXJzdFJldmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvblty
ZXBvc2l0b3J5XSArIDEsCisgICAgICAgICAgICAgICAgbGFzdFJldmlzaW9uOiBpdGVyYXRpb24u
cmV2aXNpb25bcmVwb3NpdG9yeV0KICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAoY29u
dGV4dC5maXJzdFJldmlzaW9uIDw9IGNvbnRleHQubGFzdFJldmlzaW9uKQogICAgICAgICAgICAg
ICAgIG5ldyBQb3BvdmVyVHJhY2tlcihjb250ZW50LCB0aGlzLl9wcmVzZW50UG9wb3ZlckZvclJl
dmlzaW9uUmFuZ2UuYmluZCh0aGlzKSwgY29udGV4dCk7CkBAIC0yNjAsMTQgKzI2MCwxNCBAQCBC
dWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICByZXZpc2lvbkNvbnRlbnRGb3JJ
dGVyYXRpb246IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24p
CiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChpdGVyYXRpb24ub3BlblNvdXJjZVJldmlz
aW9uKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2Fy
ZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0pOwogCi0gICAgICAgIHZhciBvcGVuU291cmNl
Q29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0
ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24pOworICAgICAgICB2YXIgb3BlblNv
dXJjZUNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlv
bihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCBEYXNoYm9hcmQuUmVwb3Np
dG9yeS5PcGVuU291cmNlLm5hbWUsIHdlYmtpdFRyYWMpOwogCi0gICAgICAgIGlmICghaXRlcmF0
aW9uLmludGVybmFsUmV2aXNpb24pCisgICAgICAgIGlmICghaXRlcmF0aW9uLnJldmlzaW9uW0Rh
c2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdKQogICAgICAgICAgICAgcmV0dXJuIG9w
ZW5Tb3VyY2VDb250ZW50OwogCi0gICAgICAgIHZhciBpbnRlcm5hbENvbnRlbnQgPSB0aGlzLl9y
ZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3Vz
RGlzcGxheWVkSXRlcmF0aW9uLCB0cnVlKTsKKyAgICAgICAgdmFyIGludGVybmFsQ29udGVudCA9
IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwg
cHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24sIERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFs
Lm5hbWUsIGludGVybmFsVHJhYyk7CiAKICAgICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChv
cGVuU291cmNlQ29udGVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNo
Ym9hcmQuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKaW5kZXggMTJhOWQz
Yy4uNGEzYmRlZCAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpz
CisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcwpAQCAtMzUsNSArMzUsOSBA
QCBEYXNoYm9hcmQgPSB7CiAgICAgICAgIExpbnV4R1RLOiB7IG5hbWUgOiAibGludXgtZ3RrIiwg
cmVhZGFibGVOYW1lOiAiTGludXggR1RLIiwgb3JkZXI6IDkwIH0sCiAgICAgICAgIExpbnV4RUZM
OiB7IG5hbWU6ICJsaW51eC1lZmwiLCByZWFkYWJsZU5hbWU6ICJMaW51eCBFRkwiLCBvcmRlciA6
IDEwMCB9CiAgICAgfSwKLSAgICBCcmFuY2g6IHt9CisgICAgQnJhbmNoOiB7fSwKKyAgICBSZXBv
c2l0b3J5OiB7CisgICAgICAgIE9wZW5Tb3VyY2U6IHsgbmFtZTogIm9wZW5Tb3VyY2UiLCBvcmRl
cjogMCB9LAorICAgICAgICBJbnRlcm5hbDogeyBuYW1lOiAiaW50ZXJuYWwiLCBvcmRlcjogMSB9
LAorICAgIH0KIH07CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5h
bHl6ZXIuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanMKaW5kZXgg
ZWFkOTU3ZC4uNWY3M2QzMCAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmlj
c0FuYWx5emVyLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJpY3NBbmFseXplci5q
cwpAQCAtMTI0LDcgKzEyNCw3IEBAIEFuYWx5emVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KGkgPCBpdGVyYXRpb25zLmxlbmd0aCkKICAgICAgICAgICAgIHJlc3VsdCA9IGkrKzsKICAgICAg
ICAgd2hpbGUgKGkgPCBpdGVyYXRpb25zLmxlbmd0aCkgewotICAgICAgICAgICAgaWYgKGl0ZXJh
dGlvbnNbaV0ub3BlblNvdXJjZVJldmlzaW9uID4gaXRlcmF0aW9uc1tyZXN1bHRdLm9wZW5Tb3Vy
Y2VSZXZpc2lvbikKKyAgICAgICAgICAgIGlmIChpdGVyYXRpb25zW2ldLnJldmlzaW9uW0Rhc2hi
b2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0gPiBpdGVyYXRpb25zW3Jlc3VsdF0ucmV2
aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSkKICAgICAgICAgICAg
ICAgICByZXN1bHQgPSBpOwogICAgICAgICAgICAgKytpOwogICAgICAgICB9CkBAIC0yMTMsNyAr
MjEzLDcgQEAgQW5hbHl6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVN0cmV0Y2hPZlJlZENvdW50ZXJzKHRvcEl0ZXJhdGlvbkJ5UXVldWUsIGN1cnJlbnRUaW1l
LCBzdHJldGNoT2ZSZWRDb3VudGVycyk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXRlcmF0aW9uc1tpXS5vcGVuU291cmNlUmV2aXNp
b24gPD0gdG9wSXRlcmF0aW9uQnlRdWV1ZVtpdGVyYXRpb25zW2ldLnF1ZXVlLmlkXS5vcGVuU291
cmNlUmV2aXNpb24pCisgICAgICAgICAgICBpZiAoaXRlcmF0aW9uc1tpXS5yZXZpc2lvbltEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdIDw9IHRvcEl0ZXJhdGlvbkJ5UXVldWVb
aXRlcmF0aW9uc1tpXS5xdWV1ZS5pZF0ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3Bl
blNvdXJjZS5uYW1lXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAg
dmFyIGRhc2hib2FyZFdhc0FsbEdyZWVuID0gdGhpcy5fZGFzaGJvYXJkSXNBbGxHcmVlbih0b3BJ
dGVyYXRpb25CeVF1ZXVlKTsKQEAgLTI3NSw3ICsyNzUsNyBAQCBBbmFseXplci5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlbGV2YW50SXRlcmF0aW9uc0J5UXVldWVbcXVldWUuaWRdLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVyYXRpb24gPSByZWxldmFudEl0ZXJh
dGlvbnNCeVF1ZXVlW3F1ZXVlLmlkXVtpXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXJh
dGlvbi5vcGVuU291cmNlUmV2aXNpb24gPj0gcmV2aXNpb24ucmV2aXNpb25OdW1iZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3Np
dG9yeS5PcGVuU291cmNlLm5hbWVdID49IHJldmlzaW9uLnJldmlzaW9uTnVtYmVyKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmRUaW1lID0gTWF0aC5tYXgoZW5kVGltZSwgaXRlcmF0aW9u
LmVuZFRpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgb3duVGltZSA9IE1hdGgubWF4KG93
blRpbWUsIGl0ZXJhdGlvbi5lbmRUaW1lIC0gaXRlcmF0aW9uLnN0YXJ0VGltZSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L1dlYktpdEJ1aWxkYm90LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3Qu
anMKaW5kZXggOThiMzc4Zi4uNGMwMjY0YyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvV2ViS2l0QnVpbGRib3QuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVp
bGRib3QuanMKQEAgLTgyLDYgKzgyLDYgQEAgV2ViS2l0QnVpbGRib3QucHJvdG90eXBlID0gewog
CiAgICAgbGF5b3V0VGVzdFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb246IGZ1bmN0aW9u
KGl0ZXJhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmJhc2VVUkwgKyAicmVzdWx0
cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KGl0ZXJhdGlvbi5xdWV1ZS5pZCkgKyAiLyIgKyBlbmNv
ZGVVUklDb21wb25lbnQoInIiICsgaXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZpc2lvbiArICIgKCIg
KyBpdGVyYXRpb24uaWQgKyAiKSIpOworICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInJl
c3VsdHMvIiArIGVuY29kZVVSSUNvbXBvbmVudChpdGVyYXRpb24ucXVldWUuaWQpICsgIi8iICsg
ZW5jb2RlVVJJQ29tcG9uZW50KCJyIiArIGl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVw
b3NpdG9yeS5PcGVuU291cmNlLm5hbWVdICsgIiAoIiArIGl0ZXJhdGlvbi5pZCArICIpIik7CiAg
ICAgfQogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA1NzMyNWU5Li5hYTY3MmY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTUtMDgtMDMgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgdG8gY29udmVydCBv
cGVuU291cmNlUmV2aXNpb24gYW5kIGludGVybmFsUmV2aXNpb24gcHJvcGVydGllcyBvbiBCdWls
ZGJvdEl0ZXJhdGlvbiBpbnRvIGEgbW9yZSBnZW5lcmljIGNvbGxlY3Rpb24gb2YgcmV2aXNpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Mjgw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgICogQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanM6CisgICAgICAgIChCdWlsZGJvdEl0ZXJhdGlv
bik6IFJlbW92ZWQgb3BlbnNvdXJjZVJldmlzaW9uLCBpbnRlcm5hbFJldmlzaW9uLiBBZGRlZCBy
ZXZpc2lvbi4KKyAgICAgICAgUmVmYWN0b3JlZCBfcGFyc2VEYXRhIHRvIGhhbmRsZSByZXBvc2l0
b3JpZXMgbW9yZSBnZW5lcmljYWxseS4KKyAgICAgICAgKHBhcnNlUmV2aXNpb25Qcm9wZXJ0eSk6
IE1vdmVkIGEgY29tbWVudCB1cCB0byBwYXJzZVJldmlzaW9uUHJvcGVydHkgd2hlcmUgaXQgc2Vl
bXMgbW9yZSByZWxldmVudC4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVl
LmpzOgorICAgICAgICAoQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUuY29tcGFyZUl0ZXJhdGlvbnMp
OiBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2YKKyAgICAgICAgIm9wZW5zb3Vy
Y2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKyAgICAgICAgKEJ1aWxkYm90UXVl
dWUucHJvdG90eXBlLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMpOiBEaXR0by4KKyAgICAg
ICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoKKyAgICAgICAgKEJ1aWxk
Ym90UXVldWVWaWV3LnByb3RvdHlwZS5fYXBwZW5kUGVuZGluZ1JldmlzaW9uQ291bnQpOiBEaXR0
by4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fcHJlc2VudFBvcG92ZXJG
b3JQZW5kaW5nQ29tbWl0cyk6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJv
dG90eXBlLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbik6IENoYW5naW5n
ICJpbnRlcm5hbCIKKyAgICAgICAgYm9vbGVhbiBwYXJhbWV0ZXIgdG8gbW9yZSBnZW5lcmljICJy
ZXBvc2l0b3J5IiBzdHJpbmcgcGFyYW1ldGVyLgorICAgICAgICBBZGRlZCAidHJhYyIgcGFyYW1l
dGVyIGluIG9yZGVyIHRvIHNwZWNpZnkgdGhlIHRyYWMgaW5zdGFuY2UgdG8gdXNlLgorICAgICAg
ICBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQgb2YgIm9wZW5zb3VyY2VSZXZpc2lv
biIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnBy
b3RvdHlwZS5yZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb24pOiBQYXNzaW5nIHRoZSAicmVwb3Np
dG9yeSIgYW5kIHRyYWMKKyAgICAgICAgaW5zdGFuY2UgdG8gX3JldmlzaW9uQ29udGVudFdpdGhQ
b3BvdmVyRm9ySXRlcmF0aW9uCisgICAgICAgIFVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkgaW5z
dGVhZCBvZiAib3BlbnNvdXJjZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgorICAg
ICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qczogQWRkaW5nCisgICAgICAgIGNvbnN0
YW50cyBmb3IgaW50ZXJuYWwgYW5kIG9wZW5zb3VyY2UgcmVwb3NpdG9yaWVzCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzOgorICAgICAgICAoQW5hbHl6ZXIucHJv
dG90eXBlLl9maW5kSW5kZXhPZkxhcmdlc3RJdGVyYXRpb25BdE9yQmVmb3JlU3RhcnQpOiBVc2lu
ZyAicmV2aXNpb24iIHByb3BlcnR5IAorICAgICAgICBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2
aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgIChBbmFseXplci5wcm90b3R5
cGUuX2NvdW50UGVyY2VudGFnZU9mR3JlZW4pOiBEaXR0by4KKyAgICAgICAgKEFuYWx5emVyLnBy
b3RvdHlwZS53ZWJraXRUcmFjLnJlY29yZGVkQ29tbWl0cy5mb3JFYWNoKTogRGl0dG8uCisgICAg
ICAgIChBbmFseXplci5wcm90b3R5cGUuX2NvdW50VGltZXMpOiBEaXR0by4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qczoKKyAgICAgICAgKFdlYktpdEJ1aWxkYm90
LnByb3RvdHlwZS5sYXlvdXRUZXN0UmVzdWx0c0RpcmVjdG9yeVVSTEZvckl0ZXJhdGlvbik6IERp
dHRvLgorCiAyMDE1LTA4LTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1dpbl0gQnVpbGQgZml4IGFmdGVyIHIxODc3MzMuCi0tIAoyLjMu
OCAoQXBwbGUgR2l0LTU4KQoK
</data>
<flag name="commit-queue"
          id="283279"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258139</attachid>
            <date>2015-08-03 17:59:05 -0700</date>
            <delta_ts>2015-08-04 11:48:44 -0700</delta_ts>
            <desc>Refactor to convert openSourceRevision and internalRevision  properties on BuildbotIteration into a more generic collection of revisions.</desc>
            <filename>0001-Refactor-to-convert-openSourceRevision-and-internalR.patch</filename>
            <type>text/plain</type>
            <size>21731</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">RnJvbSBkZDU1MWNhNTk4YmVkNDBkNzAzY2FiOWY2NzllMmRjNDdiN2JmMDdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNYXJjZWxsIDxqbWFyY2VsbEBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMyBBdWcgMjAxNSAxMzo1MDoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlZmFj
dG9yIHRvIGNvbnZlcnQgb3BlblNvdXJjZVJldmlzaW9uIGFuZCBpbnRlcm5hbFJldmlzaW9uCiBw
cm9wZXJ0aWVzIG9uIEJ1aWxkYm90SXRlcmF0aW9uIGludG8gYSBtb3JlIGdlbmVyaWMgY29sbGVj
dGlvbiBvZiByZXZpc2lvbnMuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ3MjgwCgpSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCgoqIEJ1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1
aWxkYm90SXRlcmF0aW9uLmpzOgooQnVpbGRib3RJdGVyYXRpb24pOiBSZW1vdmVkIG9wZW5zb3Vy
Y2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4gQWRkZWQgcmV2aXNpb24uClJlZmFjdG9yZWQg
X3BhcnNlRGF0YSB0byBoYW5kbGUgcmVwb3NpdG9yaWVzIG1vcmUgZ2VuZXJpY2FsbHkuCihwYXJz
ZVJldmlzaW9uUHJvcGVydHkpOiBNb3ZlZCBhIGNvbW1lbnQgdXAgdG8gcGFyc2VSZXZpc2lvblBy
b3BlcnR5IHdoZXJlIGl0IHNlZW1zIG1vcmUgcmVsZXZhbnQuCiogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVp
bGRib3RRdWV1ZS5qczoKKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNvbXBhcmVJdGVyYXRpb25z
KTogVXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mCiJvcGVuc291cmNlUmV2aXNp
b24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCihCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5jb21w
YXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKTogRGl0dG8uCiogQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRi
b3RRdWV1ZVZpZXcuanM6CihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBlbmRp
bmdSZXZpc2lvbkNvdW50KTogRGl0dG8uCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3By
ZXNlbnRQb3BvdmVyRm9yUGVuZGluZ0NvbW1pdHMpOiBEaXR0by4KKEJ1aWxkYm90UXVldWVWaWV3
LnByb3RvdHlwZS5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOiBDaGFu
Z2luZyAiaW50ZXJuYWwiIGJvb2xlYW4KcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVwb3Np
dG9yeSIgc3RyaW5nIHBhcmFtZXRlci4gQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBvcmRlciB0
bwpzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4gVXNpbmcgInJldmlzaW9uIiBwcm9w
ZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iCmFuZCAiaW50ZXJuYWxSZXZpc2lv
biIuCihCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0
aW9uKTogUGFzc2luZyB0aGUgcmVwb3NpdG9yeSBuYW1lIGFuZCB0cmFjCmluc3RhbmNlIHRvIF9y
ZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbigpLiBVc2luZyAicmV2aXNpb24i
IHByb3BlcnR5IGluc3RlYWQgb2YKIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJl
dmlzaW9uIi4KKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanM6IEFkZGluZwpjb25zdGFudHMg
Zm9yIGludGVybmFsIGFuZCBvcGVuc291cmNlIHJlcG9zaXRvcmllcy4KKiBCdWlsZFNsYXZlU3Vw
cG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0
cy9NZXRyaWNzQW5hbHl6ZXIuanM6CihBbmFseXplci5wcm90b3R5cGUuX2ZpbmRJbmRleE9mTGFy
Z2VzdEl0ZXJhdGlvbkF0T3JCZWZvcmVTdGFydCk6IFVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkK
aW5zdGVhZCBvZiAib3BlbnNvdXJjZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgoo
QW5hbHl6ZXIucHJvdG90eXBlLl9jb3VudFBlcmNlbnRhZ2VPZkdyZWVuKTogRGl0dG8uCihBbmFs
eXplci5wcm90b3R5cGUud2Via2l0VHJhYy5yZWNvcmRlZENvbW1pdHMuZm9yRWFjaCk6IERpdHRv
LgooQW5hbHl6ZXIucHJvdG90eXBlLl9jb3VudFRpbWVzKTogRGl0dG8uCiogQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvV2ViS2l0QnVpbGRib3QuanM6CihXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUubGF5b3V0VGVz
dFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb24pOiBEaXR0by4KLS0tCiAuLi4vZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanMgICAgICAgICB8IDQ0ICsrKysrKysrKysr
Ky0tLS0tLS0tLS0KIC4uLi9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIHwgIDggKystLQogLi4uL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3
LmpzICAgICAgICAgfCAzNiArKysrKysrKystLS0tLS0tLS0KIC4uLi9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMgICAgIHwgIDYgKystCiAuLi4vZGFzaGJvYXJkL1Nj
cmlwdHMvTWV0cmljc0FuYWx5emVyLmpzICAgICAgICAgICB8ICA2ICstLQogLi4uL2Rhc2hib2Fy
ZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzICAgICAgICAgICAgfCAgMiArLQogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysr
KysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24u
anMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwppbmRleCAyYjlj
ZjBhLi5hMDRjZGZkIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0
ZXJhdGlvbi5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5q
cwpAQCAtNDMsOCArNDMsNyBAQCBCdWlsZGJvdEl0ZXJhdGlvbiA9IGZ1bmN0aW9uKHF1ZXVlLCBk
YXRhT3JJRCwgZmluaXNoZWQpCiAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsKICAgICB0aGlz
Ll9wcm9kdWN0aXZlID0gZmFsc2U7CiAKLSAgICB0aGlzLm9wZW5Tb3VyY2VSZXZpc2lvbiA9IG51
bGw7Ci0gICAgdGhpcy5pbnRlcm5hbFJldmlzaW9uID0gbnVsbDsKKyAgICB0aGlzLnJldmlzaW9u
ID0ge307CiAKICAgICB0aGlzLmxheW91dFRlc3RSZXN1bHRzID0gbnVsbDsgLy8gTGF5b3V0IHRl
c3QgcmVzdWx0cyBjYW4gYmUgbmVlZGVkIGV2ZW4gaWYgYWxsIHRlc3RzIHBhc3NlZCwgZS5nLiBm
b3IgdGhlIGxlYWtzIGJvdC4KIApAQCAtMTAyLDYgKzEwMSwxMiBAQCBmdW5jdGlvbiBwYXJzZVJl
dmlzaW9uUHJvcGVydHkocHJvcGVydHksIGtleSwgZmFsbGJhY2tLZXkpCiAgICAgaWYgKCFwcm9w
ZXJ0eSkKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgdmFyIHZhbHVlID0gcHJvcGVydHlbMV07
CisKKyAgICAvLyBUaGUgcHJvcGVydHkgZ290X3JldmlzaW9uIG1heSBoYXZlIHRoZSBmb2xsb3dp
bmcgZm9ybXM6CisgICAgLy8KKyAgICAvLyBbImdvdF9yZXZpc2lvbiIseyJJbnRlcm5hbCI6IjEz
NTciLCJXZWJLaXRPcGVuU291cmNlIjoiMjQ2OCJ9LCJTb3VyY2UiXQorICAgIC8vIE9SCisgICAg
Ly8gWyJnb3RfcmV2aXNpb24iLCIyNDY4IiwiU291cmNlIl0KICAgICBpZiAoaXNNdWx0aUNvZGVi
YXNlR290UmV2aXNpb25Qcm9wZXJ0eShwcm9wZXJ0eSkpCiAgICAgICAgIHZhbHVlID0gKGtleSBp
biB2YWx1ZSkgPyB2YWx1ZVtrZXldIDogdmFsdWVbZmFsbGJhY2tLZXldOwogICAgIHJldHVybiBw
YXJzZUludCh2YWx1ZSk7CkBAIC0xODgsMjMgKzE5MywyNCBAQCBCdWlsZGJvdEl0ZXJhdGlvbi5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLmlkIHx8IHRoaXMuaWQg
PT09IGRhdGEubnVtYmVyKTsKICAgICAgICAgdGhpcy5pZCA9IGRhdGEubnVtYmVyOwogCi0gICAg
ICAgIC8vIFRoZSBwcm9wZXJ0eSBnb3RfcmV2aXNpb24gbWF5IGhhdmUgdGhlIGZvbGxvd2luZyBm
b3JtczoKLSAgICAgICAgLy8KLSAgICAgICAgLy8gWyJnb3RfcmV2aXNpb24iLHsiSW50ZXJuYWwi
OiIxMzU3IiwiV2ViS2l0T3BlblNvdXJjZSI6IjI0NjgifSwiU291cmNlIl0KLSAgICAgICAgLy8g
T1IKLSAgICAgICAgLy8gWyJnb3RfcmV2aXNpb24iLCIyNDY4IiwiU291cmNlIl0KLSAgICAgICAg
Ly8KLSAgICAgICAgLy8gV2hlbiBleHRyYWN0aW5nIHRoZSBPcGVuU291cmNlIHJldmlzaW9uIGZy
b20gcHJvcGVydHkgZ290X3JldmlzaW9uIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgd2hldGhlciB0
aGUKLSAgICAgICAgLy8gdmFsdWUgb2YgZ290X3JldmlzaW9uIGlzIGEgZGljdGlvbmFyeSAocmVw
cmVzZW50cyBtdWx0aXBsZSBjb2RlYmFzZXMpIG9yIGEgc3RyaW5nIGxpdGVyYWwgYmVjYXVzZSB3
ZQotICAgICAgICAvLyBhc3N1bWUgdGhhdCBnb3RfcmV2aXNpb24gY29udGFpbnMgdGhlIE9wZW5T
b3VyY2UgcmV2aXNpb24uIEhvd2V2ZXIsIGl0IG1heSBub3QgaGF2ZSB0aGUgSW50ZXJuYWwKLSAg
ICAgICAgLy8gcmV2aXNpb24uIFRoZXJlZm9yZSwgd2Ugb25seSBsb29rIGF0IGdvdF9yZXZpc2lv
biB0byBleHRyYWN0IHRoZSBJbnRlcm5hbCByZXZpc2lvbiB3aGVuIGl0J3MKLSAgICAgICAgLy8g
YSBkaWN0aW9uYXJ5LgotCi0gICAgICAgIHZhciBvcGVuU291cmNlUmV2aXNpb25Qcm9wZXJ0eSA9
IGRhdGEucHJvcGVydGllcy5maW5kRmlyc3QoZnVuY3Rpb24ocHJvcGVydHkpIHsgcmV0dXJuIHBy
b3BlcnR5WzBdID09PSAiZ290X3JldmlzaW9uIjsgfSk7Ci0gICAgICAgIHRoaXMub3BlblNvdXJj
ZVJldmlzaW9uID0gcGFyc2VSZXZpc2lvblByb3BlcnR5KG9wZW5Tb3VyY2VSZXZpc2lvblByb3Bl
cnR5LCAiV2ViS2l0IiwgIm9wZW5zb3VyY2UiKTsKLQotICAgICAgICB2YXIgaW50ZXJuYWxSZXZp
c2lvblByb3BlcnR5ID0gZGF0YS5wcm9wZXJ0aWVzLmZpbmRGaXJzdChmdW5jdGlvbihwcm9wZXJ0
eSkgeyByZXR1cm4gaXNNdWx0aUNvZGViYXNlR290UmV2aXNpb25Qcm9wZXJ0eShwcm9wZXJ0eSk7
IH0pOwotICAgICAgICB0aGlzLmludGVybmFsUmV2aXNpb24gPSBwYXJzZVJldmlzaW9uUHJvcGVy
dHkoaW50ZXJuYWxSZXZpc2lvblByb3BlcnR5LCAiSW50ZXJuYWwiLCAiaW50ZXJuYWwiKTsKKyAg
ICAgICAgdmFyIHJldmlzaW9uUHJvcGVydHkgPSBkYXRhLnByb3BlcnRpZXMuZmluZEZpcnN0KGZ1
bmN0aW9uKHByb3BlcnR5KSB7CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlbMF0gPT09ICJn
b3RfcmV2aXNpb24iOworICAgICAgICB9KTsKKyAgICAgICAgZm9yIChyZXBvc2l0b3J5IGluIHRo
aXMucXVldWUuYnJhbmNoKSB7CisgICAgICAgICAgICB2YXIga2V5OworICAgICAgICAgICAgdmFy
IGZhbGxiYWNrS2V5OworICAgICAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5S
ZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZSkgeworICAgICAgICAgICAgICAgIGtleSA9ICJXZWJL
aXQiOworICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5ID0gIm9wZW5zb3VyY2UiOworICAgICAg
ICAgICAgfSBlbHNlIGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRl
cm5hbC5uYW1lKSB7CisgICAgICAgICAgICAgICAga2V5ID0gIkludGVybmFsIjsKKyAgICAgICAg
ICAgICAgICBmYWxsYmFja0tleSA9ICJpbnRlcm5hbCI7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGtleSA9IHJlcG9zaXRvcnk7CisgICAgICAgICAgICAgICAgZmFsbGJh
Y2tLZXkgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5yZXZpc2lvblty
ZXBvc2l0b3J5XSA9IHBhcnNlUmV2aXNpb25Qcm9wZXJ0eShyZXZpc2lvblByb3BlcnR5LCBrZXks
IGZhbGxiYWNrS2V5KTsKKyAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHNvdXJjZVN0YW1w
Q2hhbmdlcyhzb3VyY2VTdGFtcCkgewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyBiL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggYTQ3MmMxOS4uMWMyMWFmYiAxMDA2
NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcworKysgYi9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCkBAIC0yNjgsMTEgKzI2OCwxMSBAQCBC
dWlsZGJvdFF1ZXVlLnByb3RvdHlwZSA9IHsKIAogICAgIGNvbXBhcmVJdGVyYXRpb25zOiBmdW5j
dGlvbihhLCBiKQogICAgIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IGIub3BlblNvdXJjZVJldmlz
aW9uIC0gYS5vcGVuU291cmNlUmV2aXNpb247CisgICAgICAgIHZhciByZXN1bHQgPSBiLnJldmlz
aW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0gLSBhLnJldmlzaW9uW0Rh
c2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV07CiAgICAgICAgIGlmIChyZXN1bHQp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgICAgIHJlc3VsdCA9IGIuaW50ZXJu
YWxSZXZpc2lvbiAtIGEuaW50ZXJuYWxSZXZpc2lvbjsKKyAgICAgICAgcmVzdWx0ID0gYi5yZXZp
c2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSAtIGEucmV2aXNpb25bRGFz
aGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZV07CiAgICAgICAgIGlmIChyZXN1bHQpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC0yODYsMTEgKzI4NiwxMSBAQCBCdWlsZGJv
dFF1ZXVlLnByb3RvdHlwZSA9IHsKIAogICAgIGNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6
IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gYi5vcGVuU291cmNl
UmV2aXNpb24gLSBhLm9wZW5Tb3VyY2VSZXZpc2lvbjsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGIu
cmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSAtIGEucmV2aXNp
b25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXTsKICAgICAgICAgaWYgKHJl
c3VsdCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICAgICAgcmVzdWx0ID0gYi5p
bnRlcm5hbFJldmlzaW9uIC0gYS5pbnRlcm5hbFJldmlzaW9uOworICAgICAgICByZXN1bHQgPSBi
LnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdIC0gYS5yZXZpc2lv
bltEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXTsKICAgICAgICAgaWYgKHJlc3Vs
dCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2Fy
ZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVp
bGRib3RRdWV1ZVZpZXcuanMKaW5kZXggYWM3ZjY3Ny4uN2U0MDFmMSAxMDA2NDQKLS0tIGEvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKKysrIGIvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKQEAgLTc3LDIzICs3NywyMyBAQCBCdWlsZGJv
dFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dmFyIGxhdGVzdFJlY29yZGVkT3BlblNvdXJjZVJldmlzaW9uTnVtYmVyID0gd2Via2l0VHJhYy5s
YXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyOwotICAgICAgICBpZiAoIWxhdGVzdFJlY29yZGVk
T3BlblNvdXJjZVJldmlzaW9uTnVtYmVyIHx8IHdlYmtpdFRyYWMub2xkZXN0UmVjb3JkZWRSZXZp
c2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9u
KSB7CisgICAgICAgIGlmICghbGF0ZXN0UmVjb3JkZWRPcGVuU291cmNlUmV2aXNpb25OdW1iZXIg
fHwgd2Via2l0VHJhYy5vbGRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVj
dGl2ZUl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5h
bWVdKSB7CiAgICAgICAgICAgICB3ZWJraXRUcmFjLmxvYWRNb3JlSGlzdG9yaWNhbERhdGEoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBUbyBi
ZSAxMDAlIGNvcnJlY3QsIHdlIHNob3VsZCBhbHNvIGZpbHRlciBvdXQgY2hhbmdlcyB0aGF0IGFy
ZSBpZ25vcmVkIGJ5CiAgICAgICAgIC8vIHRoZSBxdWV1ZSwgc2VlIF9zaG91bGRfZmlsZV90cmln
Z2VyX2J1aWxkIGluIHdrYnVpbGQucHkuCi0gICAgICAgIHZhciB0b3RhbFJldmlzaW9uc0JlaGlu
ZCA9IHdlYmtpdFRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaC5vcGVuU291cmNlLCBm
dW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNvbW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVzdFBy
b2R1Y3RpdmVJdGVyYXRpb24ub3BlblNvdXJjZVJldmlzaW9uOyB9KS5sZW5ndGg7CisgICAgICAg
IHZhciB0b3RhbFJldmlzaW9uc0JlaGluZCA9IHdlYmtpdFRyYWMuY29tbWl0c09uQnJhbmNoKHF1
ZXVlLmJyYW5jaC5vcGVuU291cmNlLCBmdW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNvbW1pdC5y
ZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJv
YXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXTsgfSkubGVuZ3RoOwogCi0gICAgICAgIGlm
IChsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24pIHsKKyAgICAgICAg
aWYgKGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRv
cnkuSW50ZXJuYWwubmFtZV0pIHsKICAgICAgICAgICAgIHZhciBsYXRlc3RSZWNvcmRlZEludGVy
bmFsUmV2aXNpb25OdW1iZXIgPSBpbnRlcm5hbFRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51
bWJlcjsKLSAgICAgICAgICAgIGlmICghbGF0ZXN0UmVjb3JkZWRJbnRlcm5hbFJldmlzaW9uTnVt
YmVyIHx8IGludGVybmFsVHJhYy5vbGRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyID4gbGF0ZXN0
UHJvZHVjdGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uKSB7CisgICAgICAgICAgICBpZiAo
IWxhdGVzdFJlY29yZGVkSW50ZXJuYWxSZXZpc2lvbk51bWJlciB8fCBpbnRlcm5hbFRyYWMub2xk
ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2
aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZV0pIHsKICAgICAgICAgICAg
ICAgICBpbnRlcm5hbFRyYWMubG9hZE1vcmVIaXN0b3JpY2FsRGF0YSgpOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgdG90YWxSZXZpc2lvbnNC
ZWhpbmQgKz0gaW50ZXJuYWxUcmFjLmNvbW1pdHNPbkJyYW5jaChxdWV1ZS5icmFuY2guaW50ZXJu
YWwsIGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0
ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5pbnRlcm5hbFJldmlzaW9uOyB9KS5sZW5ndGg7CisgICAg
ICAgICAgICB0b3RhbFJldmlzaW9uc0JlaGluZCArPSBpbnRlcm5hbFRyYWMuY29tbWl0c09uQnJh
bmNoKHF1ZXVlLmJyYW5jaC5pbnRlcm5hbCwgZnVuY3Rpb24oY29tbWl0KSB7IHJldHVybiBjb21t
aXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rh
c2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdOyB9KS5sZW5ndGg7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAoIXRvdGFsUmV2aXNpb25zQmVoaW5kKQpAQCAtMTUzLDEzICsxNTMsMTMg
QEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgY29udGVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBjb250ZW50LmNsYXNzTmFt
ZSA9ICJjb21taXQtaGlzdG9yeS1wb3BvdmVyIjsKIAotICAgICAgICB2YXIgbGluZXNGb3JPcGVu
U291cmNlID0gdGhpcy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2Uod2Via2l0VHJhYywgcXVl
dWUuYnJhbmNoLm9wZW5Tb3VyY2UsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ub3BlblNvdXJj
ZVJldmlzaW9uICsgMSwgd2Via2l0VHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKTsK
KyAgICAgICAgdmFyIGxpbmVzRm9yT3BlblNvdXJjZSA9IHRoaXMuX3BvcG92ZXJMaW5lc0ZvckNv
bW1pdFJhbmdlKHdlYmtpdFRyYWMsIHF1ZXVlLmJyYW5jaC5vcGVuU291cmNlLCBsYXRlc3RQcm9k
dWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2Uu
bmFtZV0gKyAxLCB3ZWJraXRUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSAhPSBsaW5lc0Zvck9wZW5Tb3VyY2UubGVuZ3RoOyArK2kp
CiAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGxpbmVzRm9yT3BlblNvdXJjZVtpXSk7
CiAKICAgICAgICAgdmFyIGxpbmVzRm9ySW50ZXJuYWwgPSBbXTsKLSAgICAgICAgaWYgKGxhdGVz
dFByb2R1Y3RpdmVJdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiAmJiBpbnRlcm5hbFRyYWMubGF0
ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcikKLSAgICAgICAgICAgIHZhciBsaW5lc0ZvckludGVy
bmFsID0gdGhpcy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2UoaW50ZXJuYWxUcmFjLCBxdWV1
ZS5icmFuY2guaW50ZXJuYWwsIGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24uaW50ZXJuYWxSZXZp
c2lvbiArIDEsIGludGVybmFsVHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKTsKKyAg
ICAgICAgaWYgKGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJl
cG9zaXRvcnkuSW50ZXJuYWwubmFtZV0gJiYgaW50ZXJuYWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2
aXNpb25OdW1iZXIpCisgICAgICAgICAgICB2YXIgbGluZXNGb3JJbnRlcm5hbCA9IHRoaXMuX3Bv
cG92ZXJMaW5lc0ZvckNvbW1pdFJhbmdlKGludGVybmFsVHJhYywgcXVldWUuYnJhbmNoLmludGVy
bmFsLCBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0
b3J5LkludGVybmFsLm5hbWVdICsgMSwgaW50ZXJuYWxUcmFjLmxhdGVzdFJlY29yZGVkUmV2aXNp
b25OdW1iZXIpOwogCiAgICAgICAgIGlmIChsaW5lc0Zvck9wZW5Tb3VyY2UubGVuZ3RoICYmIGxp
bmVzRm9ySW50ZXJuYWwubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fYWRkRGl2aWRlclRvUG9w
b3Zlcihjb250ZW50KTsKQEAgLTIwNCwxOCArMjA0LDE4IEBAIEJ1aWxkYm90UXVldWVWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIF9yZXZpc2lv
bkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2
aW91c0l0ZXJhdGlvbiwgaW50ZXJuYWwpCisgICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVy
Rm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCByZXBv
c2l0b3J5LCB0cmFjKQogICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyAo
aW50ZXJuYWwgPyBpdGVyYXRpb24uaW50ZXJuYWxSZXZpc2lvbiA6IGl0ZXJhdGlvbi5vcGVuU291
cmNlUmV2aXNpb24pOworICAgICAgICBjb250ZW50LnRleHRDb250ZW50ID0gInIiICsgaXRlcmF0
aW9uLnJldmlzaW9uW3JlcG9zaXRvcnldOwogICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQo
InJldmlzaW9uLW51bWJlciIpOwogCiAgICAgICAgIGlmIChwcmV2aW91c0l0ZXJhdGlvbikgewog
ICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB7Ci0gICAgICAgICAgICAgICAgdHJhYzogaW50ZXJu
YWwgPyBpbnRlcm5hbFRyYWMgOiB3ZWJraXRUcmFjLAotICAgICAgICAgICAgICAgIGJyYW5jaDog
aW50ZXJuYWwgPyBpdGVyYXRpb24ucXVldWUuYnJhbmNoLmludGVybmFsIDogaXRlcmF0aW9uLnF1
ZXVlLmJyYW5jaC5vcGVuU291cmNlLAotICAgICAgICAgICAgICAgIGZpcnN0UmV2aXNpb246IChp
bnRlcm5hbCA/IHByZXZpb3VzSXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24gOiBwcmV2aW91c0l0
ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNpb24pICsgMSwKLSAgICAgICAgICAgICAgICBsYXN0UmV2
aXNpb246IGludGVybmFsID8gaXRlcmF0aW9uLmludGVybmFsUmV2aXNpb24gOiBpdGVyYXRpb24u
b3BlblNvdXJjZVJldmlzaW9uCisgICAgICAgICAgICAgICAgdHJhYzogdHJhYywKKyAgICAgICAg
ICAgICAgICBicmFuY2g6IGl0ZXJhdGlvbi5xdWV1ZS5icmFuY2hbcmVwb3NpdG9yeV0sCisgICAg
ICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVw
b3NpdG9yeV0gKyAxLAorICAgICAgICAgICAgICAgIGxhc3RSZXZpc2lvbjogaXRlcmF0aW9uLnJl
dmlzaW9uW3JlcG9zaXRvcnldCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKGNvbnRl
eHQuZmlyc3RSZXZpc2lvbiA8PSBjb250ZXh0Lmxhc3RSZXZpc2lvbikKICAgICAgICAgICAgICAg
ICBuZXcgUG9wb3ZlclRyYWNrZXIoY29udGVudCwgdGhpcy5fcHJlc2VudFBvcG92ZXJGb3JSZXZp
c2lvblJhbmdlLmJpbmQodGhpcyksIGNvbnRleHQpOwpAQCAtMjYwLDE0ICsyNjAsMTQgQEAgQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcmV2aXNpb25Db250ZW50Rm9ySXRl
cmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uKQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9uLm9wZW5Tb3VyY2VSZXZpc2lv
bik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQu
UmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKTsKIAotICAgICAgICB2YXIgb3BlblNvdXJjZUNv
bnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVy
YXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uKTsKKyAgICAgICAgdmFyIG9wZW5Tb3Vy
Y2VDb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24o
aXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgRGFzaGJvYXJkLlJlcG9zaXRv
cnkuT3BlblNvdXJjZS5uYW1lLCB3ZWJraXRUcmFjKTsKIAotICAgICAgICBpZiAoIWl0ZXJhdGlv
bi5pbnRlcm5hbFJldmlzaW9uKQorICAgICAgICBpZiAoIWl0ZXJhdGlvbi5yZXZpc2lvbltEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lXSkKICAgICAgICAgICAgIHJldHVybiBvcGVu
U291cmNlQ29udGVudDsKIAotICAgICAgICB2YXIgaW50ZXJuYWxDb250ZW50ID0gdGhpcy5fcmV2
aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rp
c3BsYXllZEl0ZXJhdGlvbiwgdHJ1ZSk7CisgICAgICAgIHZhciBpbnRlcm5hbENvbnRlbnQgPSB0
aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHBy
ZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCBEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5u
YW1lLCBpbnRlcm5hbFRyYWMpOwogCiAgICAgICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQob3Bl
blNvdXJjZUNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJv
YXJkLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzCmluZGV4IDEyYTlkM2Mu
LjRhM2JkZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcwor
KysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKQEAgLTM1LDUgKzM1LDkgQEAg
RGFzaGJvYXJkID0gewogICAgICAgICBMaW51eEdUSzogeyBuYW1lIDogImxpbnV4LWd0ayIsIHJl
YWRhYmxlTmFtZTogIkxpbnV4IEdUSyIsIG9yZGVyOiA5MCB9LAogICAgICAgICBMaW51eEVGTDog
eyBuYW1lOiAibGludXgtZWZsIiwgcmVhZGFibGVOYW1lOiAiTGludXggRUZMIiwgb3JkZXIgOiAx
MDAgfQogICAgIH0sCi0gICAgQnJhbmNoOiB7fQorICAgIEJyYW5jaDoge30sCisgICAgUmVwb3Np
dG9yeTogeworICAgICAgICBPcGVuU291cmNlOiB7IG5hbWU6ICJvcGVuU291cmNlIiwgb3JkZXI6
IDAgfSwKKyAgICAgICAgSW50ZXJuYWw6IHsgbmFtZTogImludGVybmFsIiwgb3JkZXI6IDEgfSwK
KyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5
emVyLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc0FuYWx5emVyLmpzCmluZGV4IGVh
ZDk1N2QuLjVmNzNkMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01ldHJpY3NB
bmFseXplci5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanMK
QEAgLTEyNCw3ICsxMjQsNyBAQCBBbmFseXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChp
IDwgaXRlcmF0aW9ucy5sZW5ndGgpCiAgICAgICAgICAgICByZXN1bHQgPSBpKys7CiAgICAgICAg
IHdoaWxlIChpIDwgaXRlcmF0aW9ucy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGlmIChpdGVyYXRp
b25zW2ldLm9wZW5Tb3VyY2VSZXZpc2lvbiA+IGl0ZXJhdGlvbnNbcmVzdWx0XS5vcGVuU291cmNl
UmV2aXNpb24pCisgICAgICAgICAgICBpZiAoaXRlcmF0aW9uc1tpXS5yZXZpc2lvbltEYXNoYm9h
cmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdID4gaXRlcmF0aW9uc1tyZXN1bHRdLnJldmlz
aW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZV0pCiAgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gaTsKICAgICAgICAgICAgICsraTsKICAgICAgICAgfQpAQCAtMjEzLDcgKzIx
Myw3IEBAIEFuYWx5emVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl91cGRh
dGVTdHJldGNoT2ZSZWRDb3VudGVycyh0b3BJdGVyYXRpb25CeVF1ZXVlLCBjdXJyZW50VGltZSwg
c3RyZXRjaE9mUmVkQ291bnRlcnMpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0ub3BlblNvdXJjZVJldmlzaW9u
IDw9IHRvcEl0ZXJhdGlvbkJ5UXVldWVbaXRlcmF0aW9uc1tpXS5xdWV1ZS5pZF0ub3BlblNvdXJj
ZVJldmlzaW9uKQorICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0ucmV2aXNpb25bRGFzaGJv
YXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lXSA8PSB0b3BJdGVyYXRpb25CeVF1ZXVlW2l0
ZXJhdGlvbnNbaV0ucXVldWUuaWRdLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5T
b3VyY2UubmFtZV0pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIHZh
ciBkYXNoYm9hcmRXYXNBbGxHcmVlbiA9IHRoaXMuX2Rhc2hib2FyZElzQWxsR3JlZW4odG9wSXRl
cmF0aW9uQnlRdWV1ZSk7CkBAIC0yNzUsNyArMjc1LDcgQEAgQW5hbHl6ZXIucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWxldmFudEl0ZXJhdGlvbnNCeVF1ZXVlW3F1ZXVlLmlkXS5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgICAgICAgICB2YXIgaXRlcmF0aW9uID0gcmVsZXZhbnRJdGVyYXRp
b25zQnlRdWV1ZVtxdWV1ZS5pZF1baV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRp
b24ub3BlblNvdXJjZVJldmlzaW9uID49IHJldmlzaW9uLnJldmlzaW9uTnVtYmVyKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRv
cnkuT3BlblNvdXJjZS5uYW1lXSA+PSByZXZpc2lvbi5yZXZpc2lvbk51bWJlcikgewogICAgICAg
ICAgICAgICAgICAgICAgICAgZW5kVGltZSA9IE1hdGgubWF4KGVuZFRpbWUsIGl0ZXJhdGlvbi5l
bmRUaW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG93blRpbWUgPSBNYXRoLm1heChvd25U
aW1lLCBpdGVyYXRpb24uZW5kVGltZSAtIGl0ZXJhdGlvbi5zdGFydFRpbWUpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9X
ZWJLaXRCdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90Lmpz
CmluZGV4IDk4YjM3OGYuLjRjMDI2NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L1dlYktpdEJ1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxk
Ym90LmpzCkBAIC04Miw2ICs4Miw2IEBAIFdlYktpdEJ1aWxkYm90LnByb3RvdHlwZSA9IHsKIAog
ICAgIGxheW91dFRlc3RSZXN1bHRzRGlyZWN0b3J5VVJMRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihp
dGVyYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInJlc3VsdHMv
IiArIGVuY29kZVVSSUNvbXBvbmVudChpdGVyYXRpb24ucXVldWUuaWQpICsgIi8iICsgZW5jb2Rl
VVJJQ29tcG9uZW50KCJyIiArIGl0ZXJhdGlvbi5vcGVuU291cmNlUmV2aXNpb24gKyAiICgiICsg
aXRlcmF0aW9uLmlkICsgIikiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVSTCArICJyZXN1
bHRzLyIgKyBlbmNvZGVVUklDb21wb25lbnQoaXRlcmF0aW9uLnF1ZXVlLmlkKSArICIvIiArIGVu
Y29kZVVSSUNvbXBvbmVudCgiciIgKyBpdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9z
aXRvcnkuT3BlblNvdXJjZS5uYW1lXSArICIgKCIgKyBpdGVyYXRpb24uaWQgKyAiKSIpOwogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMWY2Zjc4MC4uYjJmYTkzMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE1LTA4LTAzICBKYXNvbiBNYXJjZWxs
ICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHRvIGNvbnZlcnQgb3Bl
blNvdXJjZVJldmlzaW9uIGFuZCBpbnRlcm5hbFJldmlzaW9uIHByb3BlcnRpZXMgb24gQnVpbGRi
b3RJdGVyYXRpb24gaW50byBhIG1vcmUgZ2VuZXJpYyBjb2xsZWN0aW9uIG9mIHJldmlzaW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICAqIEJ1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOgorICAgICAgICAoQnVpbGRib3RJdGVyYXRpb24p
OiBSZW1vdmVkIG9wZW5zb3VyY2VSZXZpc2lvbiwgaW50ZXJuYWxSZXZpc2lvbi4gQWRkZWQgcmV2
aXNpb24uCisgICAgICAgIFJlZmFjdG9yZWQgX3BhcnNlRGF0YSB0byBoYW5kbGUgcmVwb3NpdG9y
aWVzIG1vcmUgZ2VuZXJpY2FsbHkuCisgICAgICAgIChwYXJzZVJldmlzaW9uUHJvcGVydHkpOiBN
b3ZlZCBhIGNvbW1lbnQgdXAgdG8gcGFyc2VSZXZpc2lvblByb3BlcnR5IHdoZXJlIGl0IHNlZW1z
IG1vcmUgcmVsZXZhbnQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5q
czoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTog
VXNpbmcgInJldmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mCisgICAgICAgICJvcGVuc291cmNl
UmV2aXNpb24iIGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgIChCdWlsZGJvdFF1ZXVl
LnByb3RvdHlwZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKTogRGl0dG8uCisgICAgICAg
ICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWlsZGJv
dFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBlbmRpbmdSZXZpc2lvbkNvdW50KTogRGl0dG8u
CisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3ByZXNlbnRQb3BvdmVyRm9y
UGVuZGluZ0NvbW1pdHMpOiBEaXR0by4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3Rv
dHlwZS5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24pOiBDaGFuZ2luZyAi
aW50ZXJuYWwiIGJvb2xlYW4KKyAgICAgICAgcGFyYW1ldGVyIHRvIG1vcmUgZ2VuZXJpYyAicmVw
b3NpdG9yeSIgc3RyaW5nIHBhcmFtZXRlci4gQWRkZWQgInRyYWMiIHBhcmFtZXRlciBpbiBvcmRl
ciB0bworICAgICAgICBzcGVjaWZ5IHRoZSB0cmFjIGluc3RhbmNlIHRvIHVzZS4gVXNpbmcgInJl
dmlzaW9uIiBwcm9wZXJ0eSBpbnN0ZWFkIG9mICJvcGVuc291cmNlUmV2aXNpb24iCisgICAgICAg
IGFuZCAiaW50ZXJuYWxSZXZpc2lvbiIuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90
b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uKTogUGFzc2luZyB0aGUgcmVwb3NpdG9y
eSBuYW1lIGFuZCB0cmFjCisgICAgICAgIGluc3RhbmNlIHRvIF9yZXZpc2lvbkNvbnRlbnRXaXRo
UG9wb3ZlckZvckl0ZXJhdGlvbigpLiBVc2luZyAicmV2aXNpb24iIHByb3BlcnR5IGluc3RlYWQg
b2YKKyAgICAgICAgIm9wZW5zb3VyY2VSZXZpc2lvbiIgYW5kICJpbnRlcm5hbFJldmlzaW9uIi4K
KyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanM6IEFkZGluZworICAgICAgICBj
b25zdGFudHMgZm9yIGludGVybmFsIGFuZCBvcGVuc291cmNlIHJlcG9zaXRvcmllcy4KKyAgICAg
ICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzQW5hbHl6ZXIuanM6CisgICAgICAgIChBbmFseXpl
ci5wcm90b3R5cGUuX2ZpbmRJbmRleE9mTGFyZ2VzdEl0ZXJhdGlvbkF0T3JCZWZvcmVTdGFydCk6
IFVzaW5nICJyZXZpc2lvbiIgcHJvcGVydHkKKyAgICAgICAgaW5zdGVhZCBvZiAib3BlbnNvdXJj
ZVJldmlzaW9uIiBhbmQgImludGVybmFsUmV2aXNpb24iLgorICAgICAgICAoQW5hbHl6ZXIucHJv
dG90eXBlLl9jb3VudFBlcmNlbnRhZ2VPZkdyZWVuKTogRGl0dG8uCisgICAgICAgIChBbmFseXpl
ci5wcm90b3R5cGUud2Via2l0VHJhYy5yZWNvcmRlZENvbW1pdHMuZm9yRWFjaCk6IERpdHRvLgor
ICAgICAgICAoQW5hbHl6ZXIucHJvdG90eXBlLl9jb3VudFRpbWVzKTogRGl0dG8uCisgICAgICAg
ICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanM6CisgICAgICAgIChXZWJLaXRCdWls
ZGJvdC5wcm90b3R5cGUubGF5b3V0VGVzdFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb24p
OiBEaXR0by4KKwogMjAxNS0wOC0wMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBBcHBTY2FsZTogQWRkIHJlcXVpcmVkIGluZGljZXMKLS0gCjIuMy44IChB
cHBsZSBHaXQtNTgpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>