<?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>85711</bug_id>
          
          <creation_ts>2012-05-05 07:51:21 -0700</creation_ts>
          <short_desc>Web Inspector: Turn HelpScreen to be View.</short_desc>
          <delta_ts>2012-10-12 04:06:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>eustas.bug</reporter>
          <assigned_to>eustas.bug</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>eustas.bug</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>616968</commentid>
    <comment_count>0</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-05 07:51:21 -0700</bug_when>
    <thetext>For further UI changes (Bug 85061), HelpSceen need to be View.
Also this change will make &quot;helpScreen.css&quot; to be lazy-loaded (as a benefit of being View).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616971</commentid>
    <comment_count>1</comment_count>
      <attachid>140400</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-05 07:59:40 -0700</bug_when>
    <thetext>Created attachment 140400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616978</commentid>
    <comment_count>2</comment_count>
      <attachid>140400</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-05 08:31:37 -0700</bug_when>
    <thetext>Comment on attachment 140400
Patch

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

Overall looks good. Note that since you are going to make it tabbed pane, you will not need the custom show / hide logic - your help screen will become singleton. So most of the code here will vanish.

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:68
&gt;      show: function(onHide)

Do we actually use onHide?

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:-62
&gt; -        if (this._isShown)

You are overriding View&apos;s show with different parameters. I would pick another name.

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:70
&gt; +        var visibleHelpScreen = WebInspector.HelpScreen.visibleScreen_;

_ is before the name, not after

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:79
&gt; +        WebInspector.View.prototype.show.call(this, document.body);

document.body -&gt; WebInspector.inspectorView.element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620488</commentid>
    <comment_count>3</comment_count>
      <attachid>140400</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-10 05:20:00 -0700</bug_when>
    <thetext>Comment on attachment 140400
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/HelpScreen.js:68
&gt;&gt;      show: function(onHide)
&gt; 
&gt; Do we actually use onHide?

For sure. It is used, at least, to remove highlight from &quot;Settings&quot; icon.

&gt;&gt; Source/WebCore/inspector/front-end/HelpScreen.js:-62
&gt;&gt; -        if (this._isShown)
&gt; 
&gt; You are overriding View&apos;s show with different parameters. I would pick another name.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/HelpScreen.js:70
&gt;&gt; +        var visibleHelpScreen = WebInspector.HelpScreen.visibleScreen_;
&gt; 
&gt; _ is before the name, not after

Wasn&apos;t me =)
Fixed.

&gt;&gt; Source/WebCore/inspector/front-end/HelpScreen.js:79
&gt;&gt; +        WebInspector.View.prototype.show.call(this, document.body);
&gt; 
&gt; document.body -&gt; WebInspector.inspectorView.element

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620489</commentid>
    <comment_count>4</comment_count>
      <attachid>141151</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-10 05:23:36 -0700</bug_when>
    <thetext>Created attachment 141151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620534</commentid>
    <comment_count>5</comment_count>
      <attachid>141151</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-10 06:34:12 -0700</bug_when>
    <thetext>Comment on attachment 141151
Patch

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

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:39
&gt; +    this.markAsRoot();

You are showing it as a child of inspector view, no need to mark as root.

&gt; Source/WebCore/inspector/front-end/HelpScreen.js:70
&gt; +    present: function(onHide)

Naming of the function is not clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621406</commentid>
    <comment_count>6</comment_count>
      <attachid>141357</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-11 02:02:41 -0700</bug_when>
    <thetext>Created attachment 141357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621498</commentid>
    <comment_count>7</comment_count>
      <attachid>141357</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-11 05:02:24 -0700</bug_when>
    <thetext>Comment on attachment 141357
Patch

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

&gt; Source/WebCore/inspector/front-end/SettingsController.js:34
&gt; +WebInspector.SettingsController = function()

This can be a part of the settings screen for simplicity.

&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:54
&gt; +    willShow: function()

Why new callback? Doesn&apos;t wasShown work?

&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:57
&gt; +        WebInspector.HelpScreen.prototype.willShow.call(this);

Is there anything in this prototype? You should not override View&apos;s methods here, HelpScreen should provide appropriate apis for extensibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621547</commentid>
    <comment_count>8</comment_count>
      <attachid>141357</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-11 06:05:22 -0700</bug_when>
    <thetext>Comment on attachment 141357
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/SettingsController.js:34
&gt;&gt; +WebInspector.SettingsController = function()
&gt; 
&gt; This can be a part of the settings screen for simplicity.

Moved.

&gt;&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:54
&gt;&gt; +    willShow: function()
&gt; 
&gt; Why new callback? Doesn&apos;t wasShown work?

IMHO it is much better to manipulate DOM until it became visible, not after.

&gt;&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:57
&gt;&gt; +        WebInspector.HelpScreen.prototype.willShow.call(this);
&gt; 
&gt; Is there anything in this prototype? You should not override View&apos;s methods here, HelpScreen should provide appropriate apis for extensibility.

willShow/wasShown/willHide are clearly hook methods created specially for purposes like that.
It seems to be inappropriate to create a new layer of hooks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621554</commentid>
    <comment_count>9</comment_count>
      <attachid>141395</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-11 06:16:06 -0700</bug_when>
    <thetext>Created attachment 141395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621590</commentid>
    <comment_count>10</comment_count>
      <attachid>141395</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-11 06:48:14 -0700</bug_when>
    <thetext>Comment on attachment 141395
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Motivation: for further UI changes, HelpSceen need to be View.

s/need/needs. Also, you may want to mention the intended future changes (e.g. make it a tabbed view).

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:607
&gt; +    var button = new WebInspector.StatusBarButton(WebInspector.UIString(&quot;Settings&quot;), &quot;settings-status-bar-item&quot;);
&gt; +    button.addEventListener(&quot;click&quot;, this._buttonClicked.bind(this), false);
&gt; +
&gt; +    /** @type {!WebInspector.StatusBarButton} */
&gt; +    this._statusBarButton = button;

Can we make this simpler by not using the intermediate local variable?

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:610
&gt; +    /** @type {?WebInspector.SettingsScreen} */
&gt; +    this._settingsScreen;

What&apos;s that for?

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:634
&gt; +    showSettingsScreen: function()

does this have to be public?

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:643
&gt; +    hideSettingsScreen: function()

ditto

&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:56
&gt;          this._buildTable(this.contentElement);

Does it really make a difference whether we render this before, not after this is shown? I.e., are there strong reasons we can&apos;t live with wasShown()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621636</commentid>
    <comment_count>11</comment_count>
      <attachid>141395</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-11 07:32:55 -0700</bug_when>
    <thetext>Comment on attachment 141395
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Motivation: for further UI changes, HelpSceen need to be View.
&gt; 
&gt; s/need/needs. Also, you may want to mention the intended future changes (e.g. make it a tabbed view).

Fixed.

&gt;&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:607
&gt;&gt; +    this._statusBarButton = button;
&gt; 
&gt; Can we make this simpler by not using the intermediate local variable?

We can. But doesn&apos;t local variable here make code more readable?
Fixed.

&gt;&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:610
&gt;&gt; +    this._settingsScreen;
&gt; 
&gt; What&apos;s that for?

That is member type declaration.

&gt;&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:634
&gt;&gt; +    showSettingsScreen: function()
&gt; 
&gt; does this have to be public?

This method is planned to be used outside of controller (with optional parameter &quot;tabToShowId&quot;).
Fixed for now.

&gt;&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:643
&gt;&gt; +    hideSettingsScreen: function()
&gt; 
&gt; ditto

Fixed.

&gt;&gt; Source/WebCore/inspector/front-end/ShortcutsScreen.js:56
&gt;&gt;          this._buildTable(this.contentElement);
&gt; 
&gt; Does it really make a difference whether we render this before, not after this is shown? I.e., are there strong reasons we can&apos;t live with wasShown()?

There are no strong reasons. Reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621641</commentid>
    <comment_count>12</comment_count>
      <attachid>141417</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-11 07:38:58 -0700</bug_when>
    <thetext>Created attachment 141417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621646</commentid>
    <comment_count>13</comment_count>
      <attachid>141417</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-11 07:49:26 -0700</bug_when>
    <thetext>Comment on attachment 141417
Patch

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

LGTM with one nit. Pavel, could you please have a look?

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:603
&gt; +    /** @type {!WebInspector.StatusBarButton} */

I think annotation is redundant there, type should be inferred by the JS compiler from the initialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621649</commentid>
    <comment_count>14</comment_count>
      <attachid>141417</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-11 08:03:38 -0700</bug_when>
    <thetext>Comment on attachment 141417
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Reviewed by NOBODY (OOPS!).

This line should go before the description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622313</commentid>
    <comment_count>15</comment_count>
      <attachid>141567</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-12 03:47:43 -0700</bug_when>
    <thetext>Created attachment 141567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622314</commentid>
    <comment_count>16</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-12 03:48:54 -0700</bug_when>
    <thetext>Rebased, removed redundant type annotation, fixed ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622330</commentid>
    <comment_count>17</comment_count>
      <attachid>141572</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-12 05:45:12 -0700</bug_when>
    <thetext>Created attachment 141572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622331</commentid>
    <comment_count>18</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-05-12 05:46:08 -0700</bug_when>
    <thetext>Darkened background color, fixed scrollbar spacing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622337</commentid>
    <comment_count>19</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-12 06:38:34 -0700</bug_when>
    <thetext>Committed r116854: &lt;http://trac.webkit.org/changeset/116854&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140400</attachid>
            <date>2012-05-05 07:59:40 -0700</date>
            <delta_ts>2012-05-10 05:23:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120505185938.patch</filename>
            <type>text/plain</type>
            <size>6128</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZmZGJhMWEwMzUxOWYy
OTFjNjMxOGJlYTVjMGNlY2NlZjJjNjdhYi4uNThiMWFmM2EzMmI5ZWJkNzhkMzZhMjYzNWU1NTYz
MzU1NGQ0MjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTA1ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgRm9yIGZ1cnRoZXIg
VUkgY2hhbmdlcyAoQnVnIDg1MDYxKSwgSGVscFNjZWVuIG5lZWQgdG8gYmUgVmlldy4KKyAgICAg
ICAgQWxzbyB0aGlzIGNoYW5nZSB3aWxsIG1ha2UgImhlbHBTY3JlZW4uY3NzIiB0byBiZSBsYXp5
LWxvYWRlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVSSBjaGFuZ2UsIG5vIHRlc3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IE1vdmUgImhlbHBTY3JlZW4uY3NzIiB0byBvdGhlciBmaWxlIGdyb3VwCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4pOiBBZGQgaW5oZXJpdGFuY2UgZnJvbSBWaWV3LgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLnNob3cpOiBBZG9wdCBWaWV3IHdvcmtmbG93IC8gbWVt
YmVycy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5oaWRlKTog
RGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuX29uS2V5
RG93bik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBl
Ll9vbkJsdXIpOiBEaXR0by4KKwogMjAxMi0wNS0wNCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29ycmVjdCBwaXhlbCBzbmFwcGluZyBpbiBSZW5kZXJT
VkdSb290OjpwYWludFJlcGxhY2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzEzNGYzNzJiNDcyZTVl
Y2EwMTY4MGU1NWI5MTBjNWUwN2U1NTViZi4uMDJkNzc1Zjg4NjgxYWExNzU1YjY5MzQzYjQ0ODBm
NmY5NjhiMjQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjQ4OSw3ICs2NDg5LDYgQEAKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5jc3MnLAotICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL3BvcG92ZXIuY3NzJywKQEAgLTY1MDEsNiArNjUwMCw3IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MnLAorICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvaW5kZXhlZERCVmlld3MuY3NzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCmluZGV4IGVlZTNhNzc3MjJhZTY1
MzQ4ZmVlNTM5ZTE5ZjYzMjU1YjE4YzUyMjQuLmY0N2MyODBmMzc0M2UwYTQwYjE5ODhmOTM2MDc2
ZjBjMDkzYmE0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVscFNjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0hlbHBTY3JlZW4uanMKQEAgLTMwLDE2ICszMCwyMCBAQAogCiAvKioKICAqIEBjb25zdHJ1Y3Rv
cgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICovCiBXZWJJbnNwZWN0b3IuSGVs
cFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogewotICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJo
ZWxwLXdpbmRvdy1vdXRlciI7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJr
ZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0aGlzLl9l
bGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImZvY3VzIiwgdGhpcy5fb25CbHVyLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICBXZWJJbnNwZWN0
b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygiaGVscFNj
cmVlbi5jc3MiKTsKKyAgICB0aGlzLm1hcmtBc1Jvb3QoKTsKIAotICAgIHZhciBtYWluV2luZG93
ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsK
KyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91dGVyIjsKKyAgICB0
aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5i
aW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICB0
aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0
aGlzKSwgZmFsc2UpOworCisgICAgdmFyIG1haW5XaW5kb3cgPSB0aGlzLmVsZW1lbnQuY3JlYXRl
Q2hpbGQoImRpdiIsICJoZWxwLXdpbmRvdy1tYWluIik7CiAgICAgdmFyIGNhcHRpb25XaW5kb3cg
PSBtYWluV2luZG93LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctY2FwdGlvbiIpOwog
ICAgIHZhciBjbG9zZUJ1dHRvbiA9IGNhcHRpb25XaW5kb3cuY3JlYXRlQ2hpbGQoImJ1dHRvbiIs
ICJoZWxwLWNsb3NlLWJ1dHRvbiIpOwogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBtYWluV2lu
ZG93LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC1jb250ZW50Iik7CkBAIC01NywzMSArNjEsMzUg
QEAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4gPSBmdW5jdGlvbih0aXRsZSkKIFdlYkluc3BlY3Rv
ci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5fID0gbnVsbDsKIAogV2ViSW5zcGVjdG9yLkhlbHBT
Y3JlZW4ucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEBw
YXJhbSB7P2Z1bmN0aW9uKCl9IG9uSGlkZQorICAgICAqLwogICAgIHNob3c6IGZ1bmN0aW9uKG9u
SGlkZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duKQorICAgICAgICB2YXIgdmlz
aWJsZUhlbHBTY3JlZW4gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXzsK
KyAgICAgICAgaWYgKHZpc2libGVIZWxwU2NyZWVuID09PSB0aGlzKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVu
XykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5fLmhp
ZGUoKTsKKyAgICAgICAgaWYgKHZpc2libGVIZWxwU2NyZWVuKQorICAgICAgICAgICAgdmlzaWJs
ZUhlbHBTY3JlZW4uaGlkZSgpOwogICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNp
YmxlU2NyZWVuXyA9IHRoaXM7CiAKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0
aGlzLl9lbGVtZW50KTsKLSAgICAgICAgdGhpcy5faXNTaG93biA9IHRydWU7CiAgICAgICAgIHRo
aXMuX29uSGlkZSA9IG9uSGlkZTsKLSAgICAgICAgdGhpcy5fcHJldmlvdXNGb2N1c0VsZW1lbnQg
PSBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgpOwotICAgICAgICBXZWJJbnNwZWN0
b3Iuc2V0Q3VycmVudEZvY3VzRWxlbWVudCh0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBkb2N1bWVudC5ib2R5KTsKKyAg
ICAgICAgdGhpcy5mb2N1cygpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBpZiAoIXRoaXMuX2lzU2hvd24pCisgICAgICAgIGlmICghdGhpcy5pc1Nob3dp
bmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9pc1Nob3duID0gZmFs
c2U7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVudCk7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX3ByZXZpb3Vz
Rm9jdXNFbGVtZW50KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNj
cmVlbl8gPSBudWxsOworCisgICAgICAgIFdlYkluc3BlY3Rvci5yZXN0b3JlRm9jdXNGcm9tRWxl
bWVudCh0aGlzLmVsZW1lbnQpOworICAgICAgICB0aGlzLmRldGFjaCgpOworCiAgICAgICAgIGlm
ICh0aGlzLl9vbkhpZGUpIHsKICAgICAgICAgICAgIHRoaXMuX29uSGlkZSgpOwogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX29uSGlkZTsKQEAgLTkwLDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4ucHJvdG90eXBlID0gewogCiAgICAgX29uS2V5RG93bjogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICBpZiAodGhpcy5faXNTaG93biAmJiB0aGlzLl9jbG9zZUtleXMuaW5k
ZXhPZihldmVudC5rZXlDb2RlKSA+PSAwKSB7CisgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygp
ICYmIHRoaXMuX2Nsb3NlS2V5cy5pbmRleE9mKGV2ZW50LmtleUNvZGUpID49IDApIHsKICAgICAg
ICAgICAgIHRoaXMuaGlkZSgpOwogICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAg
ICB9CkBAIC05OSw3ICsxMDcsOSBAQCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUg
PSB7CiAgICAgX29uQmx1cjogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICAvLyBQcmV0
ZW5kIHdlJ3JlIG1vZGFsLCBncmFiIGZvY3VzIGJhY2sgaWYgd2UncmUgc3RpbGwgc2hvd24uCi0g
ICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmICF0aGlzLl9lbGVtZW50LmlzU2VsZk9yQW5jZXN0
b3IoZXZlbnQudGFyZ2V0KSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9j
dXNFbGVtZW50KHRoaXMuX2VsZW1lbnQpOworICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmcoKSAm
JiAhdGhpcy5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IoZXZlbnQudGFyZ2V0KSkKKyAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuZWxlbWVudCk7CiAg
ICAgfQogfQorCitXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141151</attachid>
            <date>2012-05-10 05:23:36 -0700</date>
            <delta_ts>2012-05-11 02:02:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120510162334.patch</filename>
            <type>text/plain</type>
            <size>11113</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3ZWI4N2E2NzE3NTJh
ZTgyNzc0ZTU4N2EyOWJkYjQ0NzMwMmMwNy4uMjIxOTE5N2YyMjMwOWE0MWEzNTZiMjA2ZGQ4NTA3
NDVjOTM4NmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA1LTEwICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgRm9yIGZ1cnRoZXIg
VUkgY2hhbmdlcyAoQnVnIDg1MDYxKSwgSGVscFNjZWVuIG5lZWQgdG8gYmUgVmlldy4KKyAgICAg
ICAgQWxzbyB0aGlzIGNoYW5nZSB3aWxsIG1ha2UgImhlbHBTY3JlZW4uY3NzIiB0byBiZSBsYXp5
LWxvYWRlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVSSBjaGFuZ2UsIG5vIHRlc3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IE1vdmUgImhlbHBTY3JlZW4uY3NzIiB0byBvdGhlciBmaWxlIGdyb3VwCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4pOiBBZGQgaW5oZXJpdGFuY2UgZnJvbSBWaWV3LgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLnByZXNlbnQpOiBBZG9wdCBWaWV3IHdvcmtmbG93IC8g
bWVtYmVycy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5oaWRl
KTogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuX29u
S2V5RG93bik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90
eXBlLl9vbkJsdXIpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBT
Y3JlZW4uY3NzOiBVcGRhdGUgc3BhY2luZy4KKwogMjAxMi0wNS0wOSAgSm9jaGVuIEVpc2luZ2Vy
ICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXaGVuIGNyZWF0aW5nIGEgbmV3IHBh
Z2UgZHVyaW5nIGEgbmF2aWdhdGlvbiwgcHJpbWUgdGhlIGluaXRpYWwgZG9jdW1lbnQgd2l0aCB0
aGUgY29ycmVjdCByZWZlcnJlciBwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMzU3MDMxZTBk
MzA1ZDViMzRkMzVjNTM3MDg5Y2ExOGRlMTY0Njg4Li5lY2M2NGM0OWI0OWUzMjRlYzNkOTFlM2Y4
MThkM2JmMTA3YTI5NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NTAxLDcgKzY1MDEsNiBAQAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCi0gICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvcG9wb3Zlci5jc3MnLApAQCAtNjUxMyw2ICs2NTEyLDcgQEAKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwuY3NzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5jc3Mn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcycsCisg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbmRleGVkREJWaWV3cy5jc3MnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcycsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMKaW5kZXggZWVlM2E3Nzcy
MmFlNjUzNDhmZWU1MzllMTlmNjMyNTViMThjNTIyNC4uNTFlOTdmNDYwZDFkOWNkNmUxMGIxZDcw
Y2RlMDdiYzViNDJhNzQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWxwU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVscFNjcmVlbi5qcwpAQCAtMzAsMTYgKzMwLDIwIEBACiAKIC8qKgogICogQGNvbnN0
cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAgKi8KIFdlYkluc3BlY3Rv
ci5IZWxwU2NyZWVuID0gZnVuY3Rpb24odGl0bGUpCiB7Ci0gICAgdGhpcy5fZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1l
ID0gImhlbHAtd2luZG93LW91dGVyIjsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImtleWRvd24iLCB0aGlzLl9vbktleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRo
aXMuX2VsZW1lbnQudGFiSW5kZXggPSAwOwotICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIFdlYklu
c3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJo
ZWxwU2NyZWVuLmNzcyIpOworICAgIHRoaXMubWFya0FzUm9vdCgpOwogCi0gICAgdmFyIG1haW5X
aW5kb3cgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctbWFp
biIpOworICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAiaGVscC13aW5kb3ctb3V0ZXIiOwor
ICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlE
b3duLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOwor
ICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIHRoaXMuX29uQmx1ci5i
aW5kKHRoaXMpLCBmYWxzZSk7CisKKyAgICB2YXIgbWFpbldpbmRvdyA9IHRoaXMuZWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKICAgICB2YXIgY2FwdGlvbldp
bmRvdyA9IG1haW5XaW5kb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLXdpbmRvdy1jYXB0aW9u
Iik7CiAgICAgdmFyIGNsb3NlQnV0dG9uID0gY2FwdGlvbldpbmRvdy5jcmVhdGVDaGlsZCgiYnV0
dG9uIiwgImhlbHAtY2xvc2UtYnV0dG9uIik7CiAgICAgdGhpcy5jb250ZW50RWxlbWVudCA9IG1h
aW5XaW5kb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLWNvbnRlbnQiKTsKQEAgLTU0LDM0ICs1
OCwzOSBAQCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogICAgIF07
CiB9CiAKKy8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5IZWxwU2NyZWVufQorICovCiBXZWJJ
bnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7CiAKIFdlYkluc3BlY3Rv
ci5IZWxwU2NyZWVuLnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihvbkhpZGUpCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHs/ZnVuY3Rpb24oKX0gb25IaWRlCisgICAgICovCisgICAg
cHJlc2VudDogZnVuY3Rpb24ob25IaWRlKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lzU2hv
d24pCisgICAgICAgIHZhciB2aXNpYmxlSGVscFNjcmVlbiA9IFdlYkluc3BlY3Rvci5IZWxwU2Ny
ZWVuLl92aXNpYmxlU2NyZWVuOworICAgICAgICBpZiAodmlzaWJsZUhlbHBTY3JlZW4gPT09IHRo
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5IZWxw
U2NyZWVuLnZpc2libGVTY3JlZW5fKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3Jl
ZW4udmlzaWJsZVNjcmVlbl8uaGlkZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVl
bi52aXNpYmxlU2NyZWVuXyA9IHRoaXM7Ci0KLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZCh0aGlzLl9lbGVtZW50KTsKLSAgICAgICAgdGhpcy5faXNTaG93biA9IHRydWU7CisgICAg
ICAgIGlmICh2aXNpYmxlSGVscFNjcmVlbikKKyAgICAgICAgICAgIHZpc2libGVIZWxwU2NyZWVu
LmhpZGUoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uX3Zpc2libGVTY3JlZW4g
PSB0aGlzOwogICAgICAgICB0aGlzLl9vbkhpZGUgPSBvbkhpZGU7Ci0gICAgICAgIHRoaXMuX3By
ZXZpb3VzRm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQoKTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fZWxlbWVu
dCk7CisgICAgICAgIHRoaXMuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50
KTsKKyAgICAgICAgdGhpcy5mb2N1cygpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2lzU2hvd24pCisgICAgICAgIGlmICghdGhpcy5p
c1Nob3dpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9pc1Nob3du
ID0gZmFsc2U7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVu
dCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX3By
ZXZpb3VzRm9jdXNFbGVtZW50KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlz
aWJsZVNjcmVlbl8gPSBudWxsOworICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5fdmlz
aWJsZVNjcmVlbiA9IG51bGw7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zy
b21FbGVtZW50KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuZGV0YWNoKCk7CisKICAgICAg
ICAgaWYgKHRoaXMuX29uSGlkZSkgewogICAgICAgICAgICAgdGhpcy5fb25IaWRlKCk7CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fb25IaWRlOwpAQCAtOTAsNyArOTksNyBAQCBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7CiAKICAgICBfb25LZXlEb3duOiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmIHRoaXMuX2Nsb3NlS2V5
cy5pbmRleE9mKGV2ZW50LmtleUNvZGUpID49IDApIHsKKyAgICAgICAgaWYgKHRoaXMuaXNTaG93
aW5nKCkgJiYgdGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMCkgewog
ICAgICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAg
ICAgICAgIH0KQEAgLTk5LDcgKzEwOCw5IEBAIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3Rv
dHlwZSA9IHsKICAgICBfb25CbHVyOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIC8v
IFByZXRlbmQgd2UncmUgbW9kYWwsIGdyYWIgZm9jdXMgYmFjayBpZiB3ZSdyZSBzdGlsbCBzaG93
bi4KLSAgICAgICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgIXRoaXMuX2VsZW1lbnQuaXNTZWxmT3JB
bmNlc3RvcihldmVudC50YXJnZXQpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJl
bnRGb2N1c0VsZW1lbnQodGhpcy5fZWxlbWVudCk7CisgICAgICAgIGlmICh0aGlzLmlzU2hvd2lu
ZygpICYmICF0aGlzLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3RvcihldmVudC50YXJnZXQpKQorICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5lbGVtZW50
KTsKICAgICB9CiB9CisKK1dlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzCmluZGV4IDg4YzhmOWZl
ZjgzNTM1OTZkZDY3MmRjM2I5MDdmMjg5OTA3YTNhZGUuLjA0MmYwMDkxMzAyZmM0YWFiMDExOWYx
YzY0NGViMTM4N2UwZTNiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzCkBAIC00OCwxMCArNDgsMTQgQEAgV2ViSW5z
cGVjdG9yLlNob3J0Y3V0c1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBzZWN0
aW9uOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihvbkhpZGUpCisgICAgLyoqCisgICAg
ICogQG92ZXJyaWRlCisgICAgICogQHBhcmFtIHs/ZnVuY3Rpb24oKX0gb25IaWRlCisgICAgICov
CisgICAgcHJlc2VudDogZnVuY3Rpb24ob25IaWRlKQogICAgIHsKICAgICAgICAgdGhpcy5fYnVp
bGRUYWJsZSh0aGlzLmNvbnRlbnRFbGVtZW50KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBT
Y3JlZW4ucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBvbkhpZGUpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUucHJlc2VudC5jYWxsKHRoaXMsIG9uSGlkZSk7CiAg
ICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IGM5ZjA1M2RjNGE4ZGRmMGRjNjUxMDFhZjRmOGM3
YzFhM2M0MTRmMTUuLjMzM2I4YTcwOTViNGNhOWI0YmEzMzUyOTRjNmMwZmE2YzI1YzA5ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFn
ZXIuanMKQEAgLTIxMSw3ICsyMTEsNyBAQCBXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHNjcmVlbiA9IG5ldyBXZWJJbnNwZWN0
b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbigpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50
cy5HbG9iYWxPYmplY3RDbGVhcmVkLCBzY3JlZW4uaGlkZSwgc2NyZWVuKTsKLSAgICAgICAgc2Ny
ZWVuLnNob3cob25IaWRlLmJpbmQodGhpcykpOworICAgICAgICBzY3JlZW4ucHJlc2VudChvbkhp
ZGUuYmluZCh0aGlzKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwppbmRleCBmZTFjZjUwZWVmYzA5NDY1MmRkNTA4
NTg2NTI4NzliYjQ5MTg3MGQ4Li45NmMyMDU0ZDMzMjRjYmZjNWYzNzgxM2RiZTExMDk0M2IwM2Qw
NzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBT
Y3JlZW4uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNj
cmVlbi5jc3MKQEAgLTEsMTcgKzEsMTcgQEAKIC5oZWxwLXdpbmRvdy1vdXRlciB7CiAgICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogNjBweDsKKyAgICB0b3A6IDEycHg7CiAgICAgbGVm
dDogNSU7CiAgICAgd2lkdGg6IDkwJTsKLSAgICBib3R0b206IDQwcHg7CisgICAgYm90dG9tOiAx
MnB4OwogICAgIHotaW5kZXg6IDIwMDA7CiB9CiAKIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ct
b3V0ZXIgewotICAgIHRvcDogMzJweDsKKyAgICB0b3A6IDA7CiAgICAgbGVmdDogMDsKICAgICB3
aWR0aDogMTAwJTsKLSAgICBib3R0b206IDIzcHg7CisgICAgYm90dG9tOiAwOwogfQogCiAuaGVs
cC13aW5kb3ctbWFpbiB7CkBAIC0yNiwxMiArMjYsNyBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2lu
ZG93LW91dGVyIHsKIAogYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1tYWluIHsKICAgICBoZWln
aHQ6IDEwMCU7Ci0gICAgcGFkZGluZzogMTBweDsKLX0KLQotYm9keS5jb21wYWN0IC5oZWxwLXdp
bmRvdy1tYWluIHsKICAgICBib3JkZXItcmFkaXVzOiAwOwotICAgIC13ZWJraXQtYm94LXNoYWRv
dzogMCAwIDA7CiB9CiAKIC5oZWxwLXdpbmRvdy1jYXB0aW9uIHsKQEAgLTQxLDcgKzM2LDcgQEAg
Ym9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1tYWluIHsKIH0KIAogYm9keS5jb21wYWN0IC5oZWxw
LXdpbmRvdy1jYXB0aW9uIHsKLSAgICBtYXJnaW46IDA7CisgICAgbWFyZ2luOiAwIDlweDsKIH0K
IAogLmhlbHAtd2luZG93LXRpdGxlIHsKQEAgLTk1LDEyICs5MCw4IEBAIGJvZHkuY29tcGFjdCAu
aGVscC13aW5kb3ctY2FwdGlvbiB7CiAgICAgbWFyZ2luOiAxMHB4IDA7CiB9CiAKLWJvZHkuY29t
cGFjdCAuaGVscC1jbG9zZS1idXR0b24gewotICAgIG1hcmdpbjogMDsKLX0KLQogYm9keS5jb21w
YWN0IC5oZWxwLWNvbnRlbnQgewotICAgIG1hcmdpbjogOHB4IDAgMCA4cHg7CisgICAgbWFyZ2lu
OiAwIDlweCA5cHggOXB4OwogfQogCiAuaGVscC1jbG9zZS1idXR0b246aG92ZXIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXgg
NWJiOTkwMjY5MzQ2OTQ5M2QwNzU3Yzg5MDdkMmNhODU0NjA1NDQ3Zi4uOGU2NWM1YTFiZTQ4YzVh
OGU1Yjg3NGY0ZGQ3MDNiMWMwZmI0MGEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC0zMyw3ICszMyw2IEBAIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVj
dG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iaW5zcGVjdG9yQ29tbW9uLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcyI+Ci0gICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaGVscFNjcmVlbi5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InBvcG92
ZXIuY3NzIj4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ1dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkRPTUV4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDViMWMwYzQxNWVlYjYwZjZlYjViZDY2OTBk
MWIzZDNiYjc3M2I0ZmYuLjg5YTY1ZjNlZDM0NWM3NGJhZGViZGNlMGMxODVmMWZjNzIzZjc4ZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CkBAIC0xNjUsNyArMTY1LDcgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKIAogICAgICAgICBpZiAo
IXRoaXMuX3NldHRpbmdzU2NyZWVuKSB7CiAgICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVl
biA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4oKTsKLSAgICAgICAgICAgIHRoaXMu
X3NldHRpbmdzU2NyZWVuLnNob3cob25oaWRlLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhp
cy5fc2V0dGluZ3NTY3JlZW4ucHJlc2VudChvbmhpZGUuYmluZCh0aGlzKSk7CiAgICAgICAgIH0K
ICAgICB9LAogCkBAIC03MDYsNyArNzA2LDcgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93
biA9IGZ1bmN0aW9uKGV2ZW50KQogCiAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJG
MSIgfHwKICAgICAgICAgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQu
c2hpZnRLZXkgJiYgKCFXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZChldmVudC50YXJnZXQpIHx8
IGV2ZW50Lm1ldGFLZXkpKSkgewotICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVu
LnNob3coKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5wcmVzZW50KCk7
CiAgICAgICAgIGV2ZW50LmNvbnN1bWUodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141357</attachid>
            <date>2012-05-11 02:02:41 -0700</date>
            <delta_ts>2012-05-11 06:15:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120511130239.patch</filename>
            <type>text/plain</type>
            <size>23124</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMxYWIxNzkyYzk3N2Vm
MzViZWM5Mjc1ZTkwYTAxMzIzYjMzZGM1ZS4uMzhlYWU4NGRlYTEyMDRlYmYzM2RjYzU1NjMxY2Qy
OWNkZjM2ZWEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTExICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgTW90aXZhdGlvbjog
Zm9yIGZ1cnRoZXIgVUkgY2hhbmdlcywgSGVscFNjZWVuIG5lZWQgdG8gYmUgVmlldy4KKyAgICAg
ICAgQm9udXM6ICJoZWxwU2NyZWVuLmNzcyIgd2lsbCBiZSBsYXp5LWxvYWRlZC4KKyAgICAgICAg
QWRkaXRpb25hbCBjaGFuZ2VzOiBtb3ZlIHNldHRpbmdzU2NyZWVuIGxvZ2ljIG91dCBvZiBpbnNw
ZWN0b3IuanMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVSSBjaGFuZ2UsIG5vIHRlc3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOiAKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuKTogVHVybmVkIHRvIFZpZXcgc3ViY2xhc3MuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuc2hvd01vZGFsKTogUmVtb3Zl
ICJvbkhpZGUiIHBhcmFtCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGUuaGlkZSk6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90
eXBlLl9vbktleURvd24pOiBBZG9wdCBWaWV3IG1lbWJlcnMuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuX29uQmx1cik6IERpdHRvLgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvU2V0dGluZ3NDb250cm9sbGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIpOiBNZWRpYXRvciBwYXR0ZXJuIC0gdGhpcyBj
bGFzcworICAgICAgICB0YWtlcyBjYXJlIG9mIHN0YXR1cyBiYXIgYnV0dG9uIC0gc2V0dGluZ3Mg
c2NyZWVuIHJlbGF0aW9uc2hpcC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRy
b2xsZXIucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtKToKKyAgICAgICAgR2V0dGVyIGZvdCBy
ZXByZXNlbnRhdGl2ZSBlbGVtZW50LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29u
dHJvbGxlci5wcm90b3R5cGUuX2J1dHRvbkNsaWNrZWQpOgorICAgICAgICBDbGFzc2lmaWVzIHVz
ZXIgYWN0aW9uLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlci5wcm90
b3R5cGUuX29uSGlkZVNldHRpbmdzU2NyZWVuKToKKyAgICAgICAgQ2xlYW51cCBhZnRlciBzZXR0
aW5ncyBzY3JlZW4gaXMgaGlkZGVuLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29u
dHJvbGxlci5wcm90b3R5cGUuc2hvd1NldHRpbmdzU2NyZWVuKToKKyAgICAgICAgUHJlc2VudHMg
c2V0dGluZ3Mgc2NyZWVuLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxl
ci5wcm90b3R5cGUuaGlkZVNldHRpbmdzU2NyZWVuKToKKyAgICAgICAgSGlkZXMgc2V0dGluZ3Mg
c2NyZWVuLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanM6
IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVl
bik6IFB1dCBvbkhpZGUgZnVuY3Rpb24gdG8gbWVtYmVyCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogSW52b2tlIG9uSGlkZQorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzOiBBZG9wdCBuZXcgd29y
a2Zsb3cuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2hvcnRjdXRzU2NyZWVuLnByb3RvdHlwZS53
aWxsU2hvdyk6IExhenkgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9WaWV3LmpzOiBBZGQgbmV3IGhvb2suCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuX3Byb2Nlc3NXaWxsU2hvdyk6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLndpbGxTaG93KTogQWRkZWQgbmV3IGhvb2sgbWV0aG9kLgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzogQWRkIG5ldyBzb3VyY2UgZmlsZS4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanM6IEFkb3B0IG5l
dyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlw
ZS5fZGlzY29ubmVjdGVkRnJvbVdvcmtlcik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LldvcmtlclRlcm1pbmF0ZWRTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczogRml4IHNwYWNpbmcuCisg
ICAgICAgICguaGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFj
dCAuaGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAuaGVs
cC13aW5kb3ctbWFpbik6IERpdHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRv
dy1jYXB0aW9uKTogRGl0dG8uCisgICAgICAgICguaGVscC1jb250ZW50KTogRGl0dG8uCisgICAg
ICAgIChib2R5LmNvbXBhY3QgLmhlbHAtY29udGVudCk6IERpdHRvLgorICAgICAgICAoLmhlbHAt
Y29udGVudCBzZWxlY3QpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qczogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZUdsb2JhbFN0YXR1
c0Jhckl0ZW1zKTogQ3JlYXRlIFNldHRpbmdzQ29udHJvbGxlci4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb2N1bWVudEtleURvd24pOiBBZG9wdCBuZXcgd29ya2Zsb3cuCisKIDIwMTItMDUtMTAg
IFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFT
dHJlYW0gQVBJOiBGaXggTWVkaWFIaW50cyBwYXJzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTg1
NzI2MTBlNjBkNDIyY2FhZGViNWEzZThjMDEyNjUyODBjNmY5NS4uZmFlYzRlMTcxNDZhYzIxZjA4
MzI0MGNiYTVhYmUzNmY5NTgwYmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjQ1NSw2ICs2NDU1
LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hTY29w
ZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVy
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5q
cycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc0NvbnRyb2xsZXIu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2hvd01vcmVEYXRhR3JpZE5vZGUu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2VjdGlvbi5qcycsCkBAIC02
NTAxLDcgKzY1MDIsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vy
TWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lk
ZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZGlhbG9nLmNz
cycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvcG9wb3Zlci5jc3MnLApAQCAtNjUxMyw2
ICs2NTEzLDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFu
ZWwuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZy5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVh
cFByb2ZpbGVyLmNzcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2Ny
ZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbmRleGVkREJWaWV3
cy5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yQ29tbW9u
LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNz
cycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBT
Y3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4u
anMKaW5kZXggZWVlM2E3NzcyMmFlNjUzNDhmZWU1MzllMTlmNjMyNTViMThjNTIyNC4uMDNmMGQz
NGU1ZWQyMTE2Y2RlNjMwYTE1NDkyN2NhNDgyYzQ4MmIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVscFNjcmVlbi5qcwpAQCAtMzAsMTYgKzMwLDE5IEBA
CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9
CiAgKi8KIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuID0gZnVuY3Rpb24odGl0bGUpCiB7Ci0gICAg
dGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMu
X2VsZW1lbnQuY2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91dGVyIjsKLSAgICB0aGlzLl9lbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vbktleURvd24uYmluZCh0aGlz
KSwgZmFsc2UpOwotICAgIHRoaXMuX2VsZW1lbnQudGFiSW5kZXggPSAwOwotICAgIHRoaXMuX2Vs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKSwg
ZmFsc2UpOworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAgdGhpcy5yZWdp
c3RlclJlcXVpcmVkQ1NTKCJoZWxwU2NyZWVuLmNzcyIpOwogCi0gICAgdmFyIG1haW5XaW5kb3cg
PSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctbWFpbiIpOwor
ICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAiaGVscC13aW5kb3ctb3V0ZXIiOworICAgIHRo
aXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJp
bmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOworICAgIHRo
aXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIHRoaXMuX29uQmx1ci5iaW5kKHRo
aXMpLCBmYWxzZSk7CisKKyAgICB2YXIgbWFpbldpbmRvdyA9IHRoaXMuZWxlbWVudC5jcmVhdGVD
aGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKICAgICB2YXIgY2FwdGlvbldpbmRvdyA9
IG1haW5XaW5kb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLXdpbmRvdy1jYXB0aW9uIik7CiAg
ICAgdmFyIGNsb3NlQnV0dG9uID0gY2FwdGlvbldpbmRvdy5jcmVhdGVDaGlsZCgiYnV0dG9uIiwg
ImhlbHAtY2xvc2UtYnV0dG9uIik7CiAgICAgdGhpcy5jb250ZW50RWxlbWVudCA9IG1haW5XaW5k
b3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLWNvbnRlbnQiKTsKQEAgLTU0LDQzICs1NywzOSBA
QCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogICAgIF07CiB9CiAK
Ky8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5IZWxwU2NyZWVufQorICovCiBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7CiAKIFdlYkluc3BlY3Rvci5IZWxw
U2NyZWVuLnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihvbkhpZGUpCisgICAgc2hv
d01vZGFsOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faXNTaG93bikKKyAg
ICAgICAgdmFyIHZpc2libGVIZWxwU2NyZWVuID0gV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uX3Zp
c2libGVTY3JlZW47CisgICAgICAgIGlmICh2aXNpYmxlSGVscFNjcmVlbiA9PT0gdGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4u
dmlzaWJsZVNjcmVlbl8pCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNp
YmxlU2NyZWVuXy5oaWRlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnZpc2li
bGVTY3JlZW5fID0gdGhpczsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRo
aXMuX2VsZW1lbnQpOwotICAgICAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZTsKLSAgICAgICAgdGhp
cy5fb25IaWRlID0gb25IaWRlOwotICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCA9
IFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1lbnQpOworICAgICAgICBpZiAodmlz
aWJsZUhlbHBTY3JlZW4pCisgICAgICAgICAgICB2aXNpYmxlSGVscFNjcmVlbi5oaWRlKCk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLl92aXNpYmxlU2NyZWVuID0gdGhpczsKKyAg
ICAgICAgdGhpcy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOworICAg
ICAgICB0aGlzLmZvY3VzKCk7CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5faXNTaG93bikKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2lu
ZygpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2lzU2hvd24gPSBmYWxz
ZTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KTsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fcHJldmlvdXNG
b2N1c0VsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2Ny
ZWVuXyA9IG51bGw7Ci0gICAgICAgIGlmICh0aGlzLl9vbkhpZGUpIHsKLSAgICAgICAgICAgIHRo
aXMuX29uSGlkZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX29uSGlkZTsKLSAgICAgICAg
fQorICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5fdmlzaWJsZVNjcmVlbiA9IG51bGw7
CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuZWxl
bWVudCk7CisgICAgICAgIHRoaXMuZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIF9vbktleURvd246
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgdGhp
cy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMCkgeworICAgICAgICBpZiAo
dGhpcy5pc1Nob3dpbmcoKSAmJiB0aGlzLl9jbG9zZUtleXMuaW5kZXhPZihldmVudC5rZXlDb2Rl
KSA+PSAwKSB7CiAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKICAgICAgICAgICAgIGV2ZW50LmNv
bnN1bWUoKTsKICAgICAgICAgfQpAQCAtOTksNyArOTgsOSBAQCBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi5wcm90b3R5cGUgPSB7CiAgICAgX29uQmx1cjogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICAvLyBQcmV0ZW5kIHdlJ3JlIG1vZGFsLCBncmFiIGZvY3VzIGJhY2sgaWYgd2UncmUg
c3RpbGwgc2hvd24uCi0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmICF0aGlzLl9lbGVtZW50
LmlzU2VsZk9yQW5jZXN0b3IoZXZlbnQudGFyZ2V0KSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1lbnQpOworICAgICAgICBpZiAodGhp
cy5pc1Nob3dpbmcoKSAmJiAhdGhpcy5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IoZXZlbnQudGFy
Z2V0KSkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRo
aXMuZWxlbWVudCk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc0NvbnRyb2xsZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzQ29udHJvbGxlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYTUxNGViMTFhNzZjM2NiODIyNzlmYzBjNTRkZmI2NzI1Yjc5NTQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5nc0NvbnRyb2xsZXIuanMKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
Ki8KK1dlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIgPSBmdW5jdGlvbigpCit7CisgICAg
dmFyIGJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU2V0dGluZ3MiKSwgInNldHRpbmdzLXN0YXR1cy1iYXItaXRlbSIpOworICAg
IGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2J1dHRvbkNsaWNrZWQuYmlu
ZCh0aGlzKSwgZmFsc2UpOworCisgICAgLyoqIEB0eXBlIHshV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbn0gKi8KKyAgICB0aGlzLl9zdGF0dXNCYXJCdXR0b24gPSBidXR0b247CisKKyAgICAv
KiogQHR5cGUgez9XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW59ICovCisgICAgdGhpcy5fc2V0
dGluZ3NTY3JlZW47Cit9CisKK1dlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIucHJvdG90
eXBlID0KK3sKKyAgICBnZXQgc3RhdHVzQmFySXRlbSgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fc3RhdHVzQmFyQnV0dG9uLmVsZW1lbnQ7CisgICAgfSwKKworICAgIF9idXR0b25DbGlj
a2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc3RhdHVzQmFyQnV0dG9u
LnRvZ2dsZWQpCisgICAgICAgICAgICB0aGlzLmhpZGVTZXR0aW5nc1NjcmVlbigpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLnNob3dTZXR0aW5nc1NjcmVlbigpOworICAgIH0sCisK
KyAgICBfb25IaWRlU2V0dGluZ3NTY3JlZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3N0YXR1c0JhckJ1dHRvbi50b2dnbGVkID0gZmFsc2U7CisgICAgICAgIGRlbGV0ZSB0aGlz
Ll9zZXR0aW5nc1NjcmVlbjsKKyAgICB9LAorCisgICAgc2hvd1NldHRpbmdzU2NyZWVuOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NldHRpbmdzU2NyZWVuKQorICAgICAg
ICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuKHRoaXMuX29uSGlkZVNldHRpbmdzU2NyZWVuLmJpbmQodGhpcykpOworCisgICAgICAgIHRo
aXMuX3NldHRpbmdzU2NyZWVuLnNob3dNb2RhbCgpOworICAgICAgICB0aGlzLl9zdGF0dXNCYXJC
dXR0b24udG9nZ2xlZCA9IHRydWU7CisgICAgfSwKKworICAgIGhpZGVTZXR0aW5nc1NjcmVlbjog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzU2NyZWVuKQorICAg
ICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uaGlkZSgpOworICAgIH0KK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCmlu
ZGV4IDU2ZmUyNjAwZjI4OTZhY2YxMTQ1YTNiODJhY2FjMjM4ZDlmODNhMmEuLjYyYzAwYzhjMGY0
ZjE0M2Q3ZmI4ZTBlYmExMTQ5ODNiYmE3YWI4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtMzAsMTIgKzMwLDE2
IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0geyFmdW5jdGlvbigpfSBvbkhp
ZGUKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0KICAqLwotV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuID0gZnVuY3Rpb24ob25IaWRlKQogewogICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLmNh
bGwodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXR0aW5ncyIpKTsKIAorICAgIC8qKiBA
dHlwZSB7IWZ1bmN0aW9uKCl9ICovCisgICAgdGhpcy5fb25IaWRlID0gb25IaWRlOworCiAgICAg
dGhpcy5fbGVmdENvbHVtbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwog
ICAgIHRoaXMuX3JpZ2h0Q29sdW1uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRk
Iik7CiAgICAgdmFyIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiR2VuZXJhbCIpKTsKQEAgLTExNSw2ICsxMTksMTUgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdz
U2NyZWVuID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90
eXBlID0gewogICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdpbGxIaWRl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9vbkhpZGUoKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHBhcmFt
IHtib29sZWFuPX0gcmlnaHQKICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMKaW5kZXggODhjOGY5ZmVmODM1MzU5
NmRkNjcyZGMzYjkwN2YyODk5MDdhM2FkZS4uODBjNGJiMzRlNzM0NGEwNTczM2MzOGE0NzZlZDMw
MTliZjdjZTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TaG9ydGN1dHNTY3JlZW4uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMKQEAgLTQ4LDEwICs0OCwxMyBAQCBXZWJJbnNwZWN0b3Iu
U2hvcnRjdXRzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHNlY3Rpb247CiAg
ICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKG9uSGlkZSkKKyAgICAvKioKKyAgICAgKiBAb3Zl
cnJpZGUKKyAgICAgKi8KKyAgICB3aWxsU2hvdzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5fYnVpbGRUYWJsZSh0aGlzLmNvbnRlbnRFbGVtZW50KTsKLSAgICAgICAgV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBvbkhpZGUpOworICAgICAg
ICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUud2lsbFNob3cuY2FsbCh0aGlzKTsK
ICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Zp
ZXcuanMKaW5kZXggOTFjYjI4N2MwZDU3MjI1NjAyMzdiYzJhOWFlMDFjMWFlM2NhOWZlMS4uZDU0
NjM2Yzg0NDYzNWUxZGVkMGNlNjcxMTNhOTNlOGE4YTc3MDI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwpAQCAtNzQsNiArNzQsNyBAQCBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgX3Byb2Nlc3NXaWxsU2hvdzogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fbG9hZENTU0lmTmVlZGVkKCk7CisgICAgICAgIHRoaXMud2ls
bFNob3coKTsKICAgICAgICAgdGhpcy5fY2FsbE9uVmlzaWJsZUNoaWxkcmVuKHRoaXMuX3Byb2Nl
c3NXaWxsU2hvdyk7CiAgICAgfSwKIApAQCAtMTEzLDYgKzExNCwxMCBAQCBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2NhbGxPblZpc2libGVDaGlsZHJlbih0
aGlzLl9wcm9jZXNzT25SZXNpemUpOwogICAgIH0sCiAKKyAgICB3aWxsU2hvdzogZnVuY3Rpb24o
KQorICAgIHsKKyAgICB9LAorCiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0
LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRl
eCA4ZGQ5Mzc2YTBmZTNjOGFlODQ3MTZmMDcxNjE3OTU4ZDlhMzc1ZjA3Li5kZmYzOTcwM2VmYzc3
NDQzMDJmY2FiYjJlMjFhMmMxZjI0ZTUzYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xMzYsNiArMTM2LDcgQEAKICAgICA8ZmlsZT5T
ZWFyY2hDb250cm9sbGVyLmpzPC9maWxlPgogICAgIDxmaWxlPlNlY3Rpb24uanM8L2ZpbGU+CiAg
ICAgPGZpbGU+U2V0dGluZ3MuanM8L2ZpbGU+CisgICAgPGZpbGU+U2V0dGluZ3NDb250cm9sbGVy
LmpzPC9maWxlPgogICAgIDxmaWxlPlNldHRpbmdzU2NyZWVuLmpzPC9maWxlPgogICAgIDxmaWxl
PlNob3J0Y3V0c1NjcmVlbi5qczwvZmlsZT4KICAgICA8ZmlsZT5TaG93TW9yZURhdGFHcmlkTm9k
ZS5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV29ya2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
V29ya2VyTWFuYWdlci5qcwppbmRleCBjOWYwNTNkYzRhOGRkZjBkYzY1MTAxYWY0ZjhjN2MxYTNj
NDE0ZjE1Li4zN2Y0Njc4ZjdmNGY5YjFkMzgxN2ExNTRiYWE3ZTgyOGU1M2M5ZjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpz
CkBAIC0yMDUsMTMgKzIwNSw5IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlw
ZSA9IHsKIAogICAgIF9kaXNjb25uZWN0ZWRGcm9tV29ya2VyOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBmdW5jdGlvbiBvbkhpZGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCBzY3JlZW4uaGlkZSwgc2NyZWVu
KTsKLSAgICAgICAgfQogICAgICAgICB2YXIgc2NyZWVuID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jr
ZXJUZXJtaW5hdGVkU2NyZWVuKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2Jh
bE9iamVjdENsZWFyZWQsIHNjcmVlbi5oaWRlLCBzY3JlZW4pOwotICAgICAgICBzY3JlZW4uc2hv
dyhvbkhpZGUuYmluZCh0aGlzKSk7CisgICAgICAgIHNjcmVlbi5zaG93TW9kYWwoKTsKICAgICB9
CiB9CiAKQEAgLTI3Miw0ICsyNjgsMTUgQEAgV2ViSW5zcGVjdG9yLldvcmtlclRlcm1pbmF0ZWRT
Y3JlZW4gPSBmdW5jdGlvbigpCiAgICAgcC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiSW5zcGVjdGVkIHdvcmtlciBoYXMgdGVybWluYXRlZC4gT25jZSBpdCByZXN0YXJ0cyB3
ZSB3aWxsIGF0dGFjaCB0byBpdCBhdXRvbWF0aWNhbGx5LiIpOwogfQogCitXZWJJbnNwZWN0b3Iu
V29ya2VyVGVybWluYXRlZFNjcmVlbi5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQG92
ZXJyaWRlCisgICAgICovCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRoaXMuaGlkZSwg
dGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53aWxsSGlk
ZS5jYWxsKHRoaXMpOworICAgIH0KK30KKwogV2ViSW5zcGVjdG9yLldvcmtlclRlcm1pbmF0ZWRT
Y3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3Rv
dHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVs
cFNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3Jl
ZW4uY3NzCmluZGV4IGZlMWNmNTBlZWZjMDk0NjUyZGQ1MDg1ODY1Mjg3OWJiNDkxODcwZDguLjBj
ZmY2MDk1ZGE5NjU0MmFmMjQyNTg1MTIwNTA5MjM4MDRlMTBmODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwpAQCAtMSwxNyArMSwx
NyBAQAogLmhlbHAtd2luZG93LW91dGVyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAg
dG9wOiA2MHB4OworICAgIHRvcDogMTJweDsKICAgICBsZWZ0OiA1JTsKICAgICB3aWR0aDogOTAl
OwotICAgIGJvdHRvbTogNDBweDsKKyAgICBib3R0b206IDEycHg7CiAgICAgei1pbmRleDogMjAw
MDsKIH0KIAogYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlciB7Ci0gICAgdG9wOiAzMnB4
OworICAgIHRvcDogMDsKICAgICBsZWZ0OiAwOwogICAgIHdpZHRoOiAxMDAlOwotICAgIGJvdHRv
bTogMjNweDsKKyAgICBib3R0b206IDA7CiB9CiAKIC5oZWxwLXdpbmRvdy1tYWluIHsKQEAgLTI2
LDEyICsyNiw3IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctb3V0ZXIgewogCiBib2R5LmNv
bXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRkaW5n
OiAxMHB4OwotfQotCi1ib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAgIGJvcmRl
ci1yYWRpdXM6IDA7Ci0gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMDsKIH0KIAogLmhlbHAt
d2luZG93LWNhcHRpb24gewpAQCAtNDEsNyArMzYsNyBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2lu
ZG93LW1haW4gewogfQogCiBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24gewotICAg
IG1hcmdpbjogMDsKKyAgICBtYXJnaW46IDAgOXB4OwogfQogCiAuaGVscC13aW5kb3ctdGl0bGUg
ewpAQCAtNTQsNyArNDksNyBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24gewog
ICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICBzY3JvbGxiYXItd2lkdGg6IDExcHg7CiAgICAg
LXdlYmtpdC1ib3gtZmxleDogMTsKLSAgICBtYXJnaW46IDBweCAxNnB4IDE2cHggMTZweDsKKyAg
ICBtYXJnaW46IDAgMTZweCAxNnB4IDE2cHg7CiAgICAgZm9udC1zaXplOiAxM3B4OwogfQogCkBA
IC05NSwxMiArOTAsOCBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24gewogICAg
IG1hcmdpbjogMTBweCAwOwogfQogCi1ib2R5LmNvbXBhY3QgLmhlbHAtY2xvc2UtYnV0dG9uIHsK
LSAgICBtYXJnaW46IDA7Ci19Ci0KIGJvZHkuY29tcGFjdCAuaGVscC1jb250ZW50IHsKLSAgICBt
YXJnaW46IDhweCAwIDAgOHB4OworICAgIG1hcmdpbi1ib3R0b206IDhweDsKIH0KIAogLmhlbHAt
Y2xvc2UtYnV0dG9uOmhvdmVyIHsKQEAgLTIxNyw3ICsyMDgsNyBAQCBib2R5LnBsYXRmb3JtLW1h
YyAuaGVscC1rZXkgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig2NCwgNjQsIDY0KTsKICAg
ICBjb2xvcjogd2hpdGU7CiAgICAgYm9yZGVyLWNvbG9yOiBibGFjazsKLSAgICBwYWRkaW5nOiAw
cHggNHB4OworICAgIHBhZGRpbmc6IDAgNHB4OwogfQogCiAuaGVscC1jb250ZW50IHNlbGVjdDpk
aXNhYmxlZCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuaHRtbAppbmRleCA2MTI1OWEzZGZiZWQyNjQ5ZmRkYzAxNTUzMjRhNGUwYzQ5YjQwYWNi
Li40NDc5Yjc1M2NkNGM2MzRhMGE5YTUzYzM0ZDRkNjg3YzkxNWMyZDI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTMzLDcg
KzMzLDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJpbnNwZWN0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JDb21tb24uY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JTeW50YXhIaWdobGln
aHQuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJoZWxwU2NyZWVuLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0icG9wb3Zlci5jc3MiPgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iRE9NRXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KQEAgLTE5OSw2ICsx
OTgsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkdvVG9MaW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNpZGViYXJPdmVybGF5Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTZXR0
aW5nc0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlNldHRpbmdzU2NyZWVuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaG9ydGN1dHNTY3JlZW4uanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhBUkVudHJ5LmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggNWIxYzBjNDE1ZWViNjBmNmViNWJkNjY5MGQxYjNkM2JiNzczYjRmZi4uNmE3NTc2
MWU2N2YwZGQwZTY1OWNlYTc0NTU2MzIyMzI1NjIxOTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTc3LDkgKzc3LDYgQEAgdmFy
IFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgdGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi50b2dnbGVk
ID0gIXRoaXMuYXR0YWNoZWQ7CiAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVEb2NrVG9nZ2xl
QnV0dG9uKCk7CiAKLSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24gPSBuZXcgV2ViSW5zcGVj
dG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdzIiksICJz
ZXR0aW5ncy1zdGF0dXMtYmFyLWl0ZW0iKTsKLSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24u
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVTZXR0aW5ncy5iaW5kKHRoaXMp
LCBmYWxzZSk7Ci0KICAgICAgICAgdmFyIGFuY2hvcmVkU3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImFuY2hvcmVkLXN0YXR1cy1iYXItaXRlbXMiKTsKICAgICAgICAgYW5jaG9y
ZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5lbGVtZW50KTsK
IApAQCAtODksNyArODYsNyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogCiAgICAgICAgIGlmICh0
aGlzLnBhbmVscy5lbGVtZW50cykKICAgICAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVu
ZENoaWxkKHRoaXMucGFuZWxzLmVsZW1lbnRzLm5vZGVTZWFyY2hCdXR0b24uZWxlbWVudCk7Ci0g
ICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX3NldHRpbmdzQnV0dG9u
LmVsZW1lbnQpOworICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLnNl
dHRpbmdzQ29udHJvbGxlci5zdGF0dXNCYXJJdGVtKTsKICAgICB9LAogCiAgICAgX2RvY2tCdXR0
b25UaXRsZTogZnVuY3Rpb24oKQpAQCAtMTQ2LDM1ICsxNDMsNiBAQCB2YXIgV2ViSW5zcGVjdG9y
ID0gewogICAgICAgICB0aGlzLmRyYXdlci5zaG93KHZpZXcsIFdlYkluc3BlY3Rvci5EcmF3ZXIu
QW5pbWF0aW9uVHlwZS5JbW1lZGlhdGVseSk7CiAgICAgfSwKIAotICAgIF90b2dnbGVTZXR0aW5n
czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xl
ZCA9ICF0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkOwotICAgICAgICBpZiAodGhpcy5fc2V0
dGluZ3NCdXR0b24udG9nZ2xlZCkKLSAgICAgICAgICAgIHRoaXMuX3Nob3dTZXR0aW5nc1NjcmVl
bigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9oaWRlU2V0dGluZ3NTY3JlZW4o
KTsKLSAgICB9LAotCi0gICAgX3Nob3dTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gb25oaWRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgdGhpcy5f
c2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9IGZhbHNlOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X3NldHRpbmdzU2NyZWVuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9zZXR0aW5n
c1NjcmVlbikgewotICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4gPSBuZXcgV2ViSW5z
cGVjdG9yLlNldHRpbmdzU2NyZWVuKCk7Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVl
bi5zaG93KG9uaGlkZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfaGlk
ZVNldHRpbmdzU2NyZWVuOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc2V0
dGluZ3NTY3JlZW4pCi0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5oaWRlKCk7Ci0g
ICAgfSwKLQogICAgIGdldCBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5f
YXR0YWNoZWQ7CkBAIC00MzQsNiArNDAyLDcgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVX
aXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5zZWFyY2hDb250cm9sbGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyKCk7CiAgICAgdGhpcy5hZHZhbmNl
ZFNlYXJjaENvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJv
bGxlcigpOworICAgIHRoaXMuc2V0dGluZ3NDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5T
ZXR0aW5nc0NvbnRyb2xsZXIoKTsKIAogICAgIGlmIChDYXBhYmlsaXRpZXMubmF0aXZlSW5zdHJ1
bWVudGF0aW9uRW5hYmxlZCkKICAgICAgICAgdGhpcy5kb21CcmVha3BvaW50c1NpZGViYXJQYW5l
ID0gbmV3IFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50c1NpZGViYXJQYW5lKCk7CkBAIC03MDYs
NyArNjc1LDcgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50
KQogCiAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJGMSIgfHwKICAgICAgICAgKGV2
ZW50LmtleUlkZW50aWZpZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQuc2hpZnRLZXkgJiYgKCFXZWJJ
bnNwZWN0b3IuaXNCZWluZ0VkaXRlZChldmVudC50YXJnZXQpIHx8IGV2ZW50Lm1ldGFLZXkpKSkg
ewotICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNob3coKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zaG93TW9kYWwoKTsKICAgICAgICAgZXZlbnQu
Y29uc3VtZSh0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141395</attachid>
            <date>2012-05-11 06:16:06 -0700</date>
            <delta_ts>2012-05-11 07:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120511171604.patch</filename>
            <type>text/plain</type>
            <size>19751</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMxYWIxNzkyYzk3N2Vm
MzViZWM5Mjc1ZTkwYTAxMzIzYjMzZGM1ZS4uNjg0OWQwYmU4MzRkMGQ1ODg0ZGFhZGNmZmJhYmFk
M2QzM2ZiYTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA1LTExICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgTW90aXZhdGlvbjog
Zm9yIGZ1cnRoZXIgVUkgY2hhbmdlcywgSGVscFNjZWVuIG5lZWQgdG8gYmUgVmlldy4KKyAgICAg
ICAgQm9udXM6ICJoZWxwU2NyZWVuLmNzcyIgd2lsbCBiZSBsYXp5LWxvYWRlZC4KKyAgICAgICAg
QWRkaXRpb25hbCBjaGFuZ2VzOiBtb3ZlIHNldHRpbmdzU2NyZWVuIGxvZ2ljIG91dCBvZiBpbnNw
ZWN0b3IuanMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVSSBjaGFuZ2UsIG5vIHRlc3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IENoYW5nZSAiaGVscFNjcmVlbi5jc3MiIGZpbGUgZ3JvdXAuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOiAKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWxwU2Ny
ZWVuKTogVHVybmVkIHRvIFZpZXcgc3ViY2xhc3MuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVs
cFNjcmVlbi5wcm90b3R5cGUuc2hvd01vZGFsKTogUmVtb3ZlICJvbkhpZGUiIHBhcmFtCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuaGlkZSk6IERpdHRvLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLl9vbktleURvd24pOiBBZG9w
dCBWaWV3IG1lbWJlcnMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGUuX29uQmx1cik6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3NTY3JlZW4uanM6IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbik6IFB1dCBvbkhpZGUgZnVuY3Rpb24gdG8gbWVtYmVyCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogSW52b2tlIG9u
SGlkZQorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlcik6IE1lZGlhdG9y
IHBhdHRlcm4gLSB0aGlzIGNsYXNzCisgICAgICAgIHRha2VzIGNhcmUgb2Ygc3RhdHVzIGJhciBi
dXR0b24gLSBzZXR0aW5ncyBzY3JlZW4gcmVsYXRpb25zaGlwLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNldHRpbmdzQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jhckl0ZW0pOgorICAg
ICAgICBHZXR0ZXIgZm90IHJlcHJlc2VudGF0aXZlIGVsZW1lbnQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NDb250cm9sbGVyLnByb3RvdHlwZS5fYnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIENsYXNzaWZpZXMgdXNlciBhY3Rpb24uCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NDb250cm9sbGVyLnByb3RvdHlwZS5fb25IaWRlU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICBD
bGVhbnVwIGFmdGVyIHNldHRpbmdzIHNjcmVlbiBpcyBoaWRkZW4uCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NDb250cm9sbGVyLnByb3RvdHlwZS5zaG93U2V0dGluZ3NTY3JlZW4pOgor
ICAgICAgICBQcmVzZW50cyBzZXR0aW5ncyBzY3JlZW4uCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2V0dGluZ3NDb250cm9sbGVyLnByb3RvdHlwZS5oaWRlU2V0dGluZ3NTY3JlZW4pOgorICAgICAg
ICBIaWRlcyBzZXR0aW5ncyBzY3JlZW4uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
aG9ydGN1dHNTY3JlZW4uanM6IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TaG9ydGN1dHNTY3JlZW4ucHJvdG90eXBlLndpbGxTaG93KTogTGF6eSBpbml0aWFsaXph
dGlvbi4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanM6IEFkZCBuZXcgaG9v
ay4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1dpbGxTaG93
KTogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2lsbFNob3cp
OiBBZGRlZCBuZXcgaG9vayBtZXRob2QuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjOiBBZGQgbmV3IHNvdXJjZSBmaWxlLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvV29ya2VyTWFuYWdlci5qczogQWRvcHQgbmV3IHdvcmtmbG93LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLl9kaXNjb25uZWN0ZWRGcm9tV29ya2Vy
KTogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbi5w
cm90b3R5cGUud2lsbEhpZGUpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2hlbHBTY3JlZW4uY3NzOiBGaXggc3BhY2luZy4KKyAgICAgICAgKC5oZWxwLXdpbmRvdy1vdXRl
cik6IERpdHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlcik6IERp
dHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1tYWluKTogRGl0dG8uCisg
ICAgICAgIChib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24pOiBEaXR0by4KKyAgICAg
ICAgKC5oZWxwLWNvbnRlbnQpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAuaGVscC1j
b250ZW50KTogRGl0dG8uCisgICAgICAgICguaGVscC1jb250ZW50IHNlbGVjdCk6IERpdHRvLgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6IERpdHRvLgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOiBEaXR0by4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5fY3JlYXRlR2xvYmFsU3RhdHVzQmFySXRlbXMpOiBDcmVhdGUgU2V0dGlu
Z3NDb250cm9sbGVyLgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93bik6IEFk
b3B0IG5ldyB3b3JrZmxvdy4KKwogMjAxMi0wNS0xMCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21t
eXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEZpeCBNZWRpYUhpbnRz
IHBhcnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlODU3MjYxMGU2MGQ0MjJjYWFkZWI1YTNlOGMw
MTI2NTI4MGM2Zjk1Li40ODFhYjJiZjliMGQ2M2U0MDAyNTAyZjMyNGU1OWMwYTlkODRlZTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC02NTAxLDcgKzY1MDEsNiBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9oZWxwU2NyZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5
bnRheEhpZ2hsaWdodC5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvcG9w
b3Zlci5jc3MnLApAQCAtNjUxMyw2ICs2NTEyLDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL2ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5jc3MnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcycsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9pbmRleGVkREJWaWV3cy5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMKaW5kZXggZWVlM2E3NzcyMmFlNjUzNDhmZWU1MzllMTlm
NjMyNTViMThjNTIyNC4uMDNmMGQzNGU1ZWQyMTE2Y2RlNjMwYTE1NDkyN2NhNDgyYzQ4MmIwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVu
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVscFNjcmVlbi5q
cwpAQCAtMzAsMTYgKzMwLDE5IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAgKi8KIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuID0gZnVu
Y3Rpb24odGl0bGUpCiB7Ci0gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwotICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91
dGVyIjsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlz
Ll9vbktleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuX2VsZW1lbnQudGFiSW5k
ZXggPSAwOwotICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlz
Ll9vbkJsdXIuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CisgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJoZWxwU2NyZWVuLmNzcyIpOwog
Ci0gICAgdmFyIG1haW5XaW5kb3cgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAi
aGVscC13aW5kb3ctbWFpbiIpOworICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAiaGVscC13
aW5kb3ctb3V0ZXIiOworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3du
IiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQu
dGFiSW5kZXggPSAwOworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIs
IHRoaXMuX29uQmx1ci5iaW5kKHRoaXMpLCBmYWxzZSk7CisKKyAgICB2YXIgbWFpbldpbmRvdyA9
IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKICAg
ICB2YXIgY2FwdGlvbldpbmRvdyA9IG1haW5XaW5kb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxw
LXdpbmRvdy1jYXB0aW9uIik7CiAgICAgdmFyIGNsb3NlQnV0dG9uID0gY2FwdGlvbldpbmRvdy5j
cmVhdGVDaGlsZCgiYnV0dG9uIiwgImhlbHAtY2xvc2UtYnV0dG9uIik7CiAgICAgdGhpcy5jb250
ZW50RWxlbWVudCA9IG1haW5XaW5kb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLWNvbnRlbnQi
KTsKQEAgLTU0LDQzICs1NywzOSBAQCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9u
KHRpdGxlKQogICAgIF07CiB9CiAKKy8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5IZWxwU2Ny
ZWVufQorICovCiBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7
CiAKIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5j
dGlvbihvbkhpZGUpCisgICAgc2hvd01vZGFsOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBp
ZiAodGhpcy5faXNTaG93bikKKyAgICAgICAgdmFyIHZpc2libGVIZWxwU2NyZWVuID0gV2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW4uX3Zpc2libGVTY3JlZW47CisgICAgICAgIGlmICh2aXNpYmxlSGVs
cFNjcmVlbiA9PT0gdGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNjcmVlbl8pCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXy5oaWRlKCk7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5fID0gdGhpczsKLQotICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpOwotICAgICAgICB0aGlzLl9pc1Nob3du
ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fb25IaWRlID0gb25IaWRlOwotICAgICAgICB0aGlzLl9w
cmV2aW91c0ZvY3VzRWxlbWVudCA9IFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCk7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1l
bnQpOworICAgICAgICBpZiAodmlzaWJsZUhlbHBTY3JlZW4pCisgICAgICAgICAgICB2aXNpYmxl
SGVscFNjcmVlbi5oaWRlKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLl92aXNp
YmxlU2NyZWVuID0gdGhpczsKKyAgICAgICAgdGhpcy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0
b3JWaWV3LmVsZW1lbnQpOworICAgICAgICB0aGlzLmZvY3VzKCk7CiAgICAgfSwKIAogICAgIGhp
ZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faXNTaG93bikKKyAgICAg
ICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHRoaXMuX2lzU2hvd24gPSBmYWxzZTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZCh0aGlzLl9lbGVtZW50KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0Vs
ZW1lbnQodGhpcy5fcHJldmlvdXNGb2N1c0VsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0b3Iu
SGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7Ci0gICAgICAgIGlmICh0aGlzLl9vbkhp
ZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX29uSGlkZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX29uSGlkZTsKLSAgICAgICAgfQorICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5f
dmlzaWJsZVNjcmVlbiA9IG51bGw7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1
c0Zyb21FbGVtZW50KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuZGV0YWNoKCk7CiAgICAg
fSwKIAogICAgIF9vbktleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX2lzU2hvd24gJiYgdGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkg
Pj0gMCkgeworICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmcoKSAmJiB0aGlzLl9jbG9zZUtleXMu
aW5kZXhPZihldmVudC5rZXlDb2RlKSA+PSAwKSB7CiAgICAgICAgICAgICB0aGlzLmhpZGUoKTsK
ICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgfQpAQCAtOTksNyArOTgsOSBA
QCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgX29uQmx1cjogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICAvLyBQcmV0ZW5kIHdlJ3JlIG1vZGFsLCBncmFi
IGZvY3VzIGJhY2sgaWYgd2UncmUgc3RpbGwgc2hvd24uCi0gICAgICAgIGlmICh0aGlzLl9pc1No
b3duICYmICF0aGlzLl9lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IoZXZlbnQudGFyZ2V0KSkKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1l
bnQpOworICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmcoKSAmJiAhdGhpcy5lbGVtZW50LmlzU2Vs
Zk9yQW5jZXN0b3IoZXZlbnQudGFyZ2V0KSkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRD
dXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuZWxlbWVudCk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJv
dG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZXR0aW5nc1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3NTY3JlZW4uanMKaW5kZXggNTZmZTI2MDBmMjg5NmFjZjExNDVhM2I4MmFjYWMyMzhkOWY4
M2EyYS4uZGM0Y2M5ZTljZjVkY2ZmNTExMzk5NWNiYjIxZTYwNzE1YzZmZGJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpz
CkBAIC0zMCwxMiArMzAsMTYgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7
IWZ1bmN0aW9uKCl9IG9uSGlkZQogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWxwU2NyZWVu
fQogICovCi1XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCitXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbihvbkhpZGUpCiB7CiAgICAgV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4uY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdz
IikpOwogCisgICAgLyoqIEB0eXBlIHshZnVuY3Rpb24oKX0gKi8KKyAgICB0aGlzLl9vbkhpZGUg
PSBvbkhpZGU7CisKICAgICB0aGlzLl9sZWZ0Q29sdW1uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInRkIik7CiAgICAgdGhpcy5fcmlnaHRDb2x1bW5FbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgidGQiKTsKICAgICB2YXIgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJHZW5lcmFsIikpOwpAQCAtMTE1LDYgKzExOSwxNSBAQCBXZWJJ
bnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5TZXR0
aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAg
ICovCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX29uSGlk
ZSgpOworICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUud2lsbEhpZGUu
Y2FsbCh0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5h
bWUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSByaWdodAogICAgICAqLwpAQCAtNTgxLDMgKzU5
NCw1NSBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewogfQogCiBX
ZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwor
V2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlciA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIg
YnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTZXR0aW5ncyIpLCAic2V0dGluZ3Mtc3RhdHVzLWJhci1pdGVtIik7CisgICAgYnV0
dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fYnV0dG9uQ2xpY2tlZC5iaW5kKHRo
aXMpLCBmYWxzZSk7CisKKyAgICAvKiogQHR5cGUgeyFXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0
dG9ufSAqLworICAgIHRoaXMuX3N0YXR1c0JhckJ1dHRvbiA9IGJ1dHRvbjsKKworICAgIC8qKiBA
dHlwZSB7P1dlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbn0gKi8KKyAgICB0aGlzLl9zZXR0aW5n
c1NjcmVlbjsKK30KKworV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlci5wcm90b3R5cGUg
PQoreworICAgIGdldCBzdGF0dXNCYXJJdGVtKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9zdGF0dXNCYXJCdXR0b24uZWxlbWVudDsKKyAgICB9LAorCisgICAgX2J1dHRvbkNsaWNrZWQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zdGF0dXNCYXJCdXR0b24udG9n
Z2xlZCkKKyAgICAgICAgICAgIHRoaXMuaGlkZVNldHRpbmdzU2NyZWVuKCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuc2hvd1NldHRpbmdzU2NyZWVuKCk7CisgICAgfSwKKworICAg
IF9vbkhpZGVTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
c3RhdHVzQmFyQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3Nl
dHRpbmdzU2NyZWVuOworICAgIH0sCisKKyAgICBzaG93U2V0dGluZ3NTY3JlZW46IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NTY3JlZW4pCisgICAgICAgICAg
ICB0aGlzLl9zZXR0aW5nc1NjcmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4o
dGhpcy5fb25IaWRlU2V0dGluZ3NTY3JlZW4uYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5f
c2V0dGluZ3NTY3JlZW4uc2hvd01vZGFsKCk7CisgICAgICAgIHRoaXMuX3N0YXR1c0JhckJ1dHRv
bi50b2dnbGVkID0gdHJ1ZTsKKyAgICB9LAorCisgICAgaGlkZVNldHRpbmdzU2NyZWVuOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NTY3JlZW4pCisgICAgICAg
ICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5oaWRlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwppbmRl
eCA4OGM4ZjlmZWY4MzUzNTk2ZGQ2NzJkYzNiOTA3ZjI4OTkwN2EzYWRlLi44MGM0YmIzNGU3MzQ0
YTA1NzMzYzM4YTQ3NmVkMzAxOWJmN2NlOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwpAQCAtNDgsMTAgKzQ4LDEz
IEBAIFdlYkluc3BlY3Rvci5TaG9ydGN1dHNTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICBy
ZXR1cm4gc2VjdGlvbjsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ob25IaWRlKQorICAg
IC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdpbGxTaG93OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB0aGlzLl9idWlsZFRhYmxlKHRoaXMuY29udGVudEVsZW1lbnQpOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMs
IG9uSGlkZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53aWxs
U2hvdy5jYWxsKHRoaXMpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVmlldy5qcwppbmRleCA5MWNiMjg3YzBkNTcyMjU2MDIzN2JjMmE5YWUw
MWMxYWUzY2E5ZmUxLi5kNTQ2MzZjODQ0NjM1ZTFkZWQwY2U2NzExM2E5M2U4YThhNzcwMjg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC03NCw2ICs3
NCw3IEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICBfcHJvY2Vzc1dpbGxT
aG93OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9sb2FkQ1NTSWZOZWVkZWQoKTsK
KyAgICAgICAgdGhpcy53aWxsU2hvdygpOwogICAgICAgICB0aGlzLl9jYWxsT25WaXNpYmxlQ2hp
bGRyZW4odGhpcy5fcHJvY2Vzc1dpbGxTaG93KTsKICAgICB9LAogCkBAIC0xMTMsNiArMTE0LDEw
IEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY2FsbE9u
VmlzaWJsZUNoaWxkcmVuKHRoaXMuX3Byb2Nlc3NPblJlc2l6ZSk7CiAgICAgfSwKIAorICAgIHdp
bGxTaG93OiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKICAgICB3YXNTaG93bjogZnVuY3Rp
b24oKQogICAgIHsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IGM5ZjA1M2RjNGE4ZGRmMGRjNjUxMDFhZjRm
OGM3YzFhM2M0MTRmMTUuLjM3ZjQ2NzhmN2Y0ZjliMWQzODE3YTE1NGJhYTdlODI4ZTUzYzlmMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFu
YWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1h
bmFnZXIuanMKQEAgLTIwNSwxMyArMjA1LDkgQEAgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIu
cHJvdG90eXBlID0gewogCiAgICAgX2Rpc2Nvbm5lY3RlZEZyb21Xb3JrZXI6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIG9uSGlkZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHNjcmVlbi5oaWRl
LCBzY3JlZW4pOwotICAgICAgICB9CiAgICAgICAgIHZhciBzY3JlZW4gPSBuZXcgV2ViSW5zcGVj
dG9yLldvcmtlclRlcm1pbmF0ZWRTY3JlZW4oKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgc2NyZWVuLmhpZGUsIHNjcmVlbik7Ci0gICAgICAgIHNj
cmVlbi5zaG93KG9uSGlkZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgc2NyZWVuLnNob3dNb2RhbCgp
OwogICAgIH0KIH0KIApAQCAtMjcyLDQgKzI2OCwxNSBAQCBXZWJJbnNwZWN0b3IuV29ya2VyVGVy
bWluYXRlZFNjcmVlbiA9IGZ1bmN0aW9uKCkKICAgICBwLnRleHRDb250ZW50ID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJJbnNwZWN0ZWQgd29ya2VyIGhhcyB0ZXJtaW5hdGVkLiBPbmNlIGl0IHJl
c3RhcnRzIHdlIHdpbGwgYXR0YWNoIHRvIGl0IGF1dG9tYXRpY2FsbHkuIik7CiB9CiAKK1dlYklu
c3BlY3Rvci5Xb3JrZXJUZXJtaW5hdGVkU2NyZWVuLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAg
ICAgKiBAb3ZlcnJpZGUKKyAgICAgKi8KKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhp
cy5oaWRlLCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBl
LndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAgfQorfQorCiBXZWJJbnNwZWN0b3IuV29ya2VyVGVy
bWluYXRlZFNjcmVlbi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkhlbHBTY3Jl
ZW4ucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9oZWxwU2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aGVscFNjcmVlbi5jc3MKaW5kZXggZmUxY2Y1MGVlZmMwOTQ2NTJkZDUwODU4NjUyODc5YmI0OTE4
NzBkOC4uMGNmZjYwOTVkYTk2NTQyYWYyNDI1ODUxMjA1MDkyMzgwNGUxMGY4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzCkBAIC0x
LDE3ICsxLDE3IEBACiAuaGVscC13aW5kb3ctb3V0ZXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICB0b3A6IDYwcHg7CisgICAgdG9wOiAxMnB4OwogICAgIGxlZnQ6IDUlOwogICAgIHdp
ZHRoOiA5MCU7Ci0gICAgYm90dG9tOiA0MHB4OworICAgIGJvdHRvbTogMTJweDsKICAgICB6LWlu
ZGV4OiAyMDAwOwogfQogCiBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LW91dGVyIHsKLSAgICB0
b3A6IDMycHg7CisgICAgdG9wOiAwOwogICAgIGxlZnQ6IDA7CiAgICAgd2lkdGg6IDEwMCU7Ci0g
ICAgYm90dG9tOiAyM3B4OworICAgIGJvdHRvbTogMDsKIH0KIAogLmhlbHAtd2luZG93LW1haW4g
ewpAQCAtMjYsMTIgKzI2LDcgQEAgYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlciB7CiAK
IGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctbWFpbiB7CiAgICAgaGVpZ2h0OiAxMDAlOwotICAg
IHBhZGRpbmc6IDEwcHg7Ci19Ci0KLWJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctbWFpbiB7CiAg
ICAgYm9yZGVyLXJhZGl1czogMDsKLSAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwOwogfQog
CiAuaGVscC13aW5kb3ctY2FwdGlvbiB7CkBAIC00MSw3ICszNiw3IEBAIGJvZHkuY29tcGFjdCAu
aGVscC13aW5kb3ctbWFpbiB7CiB9CiAKIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2FwdGlv
biB7Ci0gICAgbWFyZ2luOiAwOworICAgIG1hcmdpbjogMCA5cHg7CiB9CiAKIC5oZWxwLXdpbmRv
dy10aXRsZSB7CkBAIC01NCw3ICs0OSw3IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2Fw
dGlvbiB7CiAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgIHNjcm9sbGJhci13aWR0aDogMTFw
eDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwotICAgIG1hcmdpbjogMHB4IDE2cHggMTZweCAx
NnB4OworICAgIG1hcmdpbjogMCAxNnB4IDE2cHggMTZweDsKICAgICBmb250LXNpemU6IDEzcHg7
CiB9CiAKQEAgLTk1LDEyICs5MCw4IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2FwdGlv
biB7CiAgICAgbWFyZ2luOiAxMHB4IDA7CiB9CiAKLWJvZHkuY29tcGFjdCAuaGVscC1jbG9zZS1i
dXR0b24gewotICAgIG1hcmdpbjogMDsKLX0KLQogYm9keS5jb21wYWN0IC5oZWxwLWNvbnRlbnQg
ewotICAgIG1hcmdpbjogOHB4IDAgMCA4cHg7CisgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogfQog
CiAuaGVscC1jbG9zZS1idXR0b246aG92ZXIgewpAQCAtMjE3LDcgKzIwOCw3IEBAIGJvZHkucGxh
dGZvcm0tbWFjIC5oZWxwLWtleSB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY0LCA2NCwg
NjQpOwogICAgIGNvbG9yOiB3aGl0ZTsKICAgICBib3JkZXItY29sb3I6IGJsYWNrOwotICAgIHBh
ZGRpbmc6IDBweCA0cHg7CisgICAgcGFkZGluZzogMCA0cHg7CiB9CiAKIC5oZWxwLWNvbnRlbnQg
c2VsZWN0OmRpc2FibGVkIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDYxMjU5YTNkZmJlZDI2NDlmZGRjMDE1NTMyNGE0ZTBj
NDliNDBhY2IuLjhkMDQwN2ZjODBiMDgxZWQ4Njg0NDY0YzgzZTlkZWQ4YzI3NGI3YTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApA
QCAtMzMsNyArMzMsNiBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw
ZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3Rvci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3RvckNvbW1vbi5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3RvclN5bnRh
eEhpZ2hsaWdodC5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImhlbHBTY3JlZW4uY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJwb3BvdmVyLmNzcyI+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0idXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01FeHRlbnNpb24uanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA1
YjFjMGM0MTVlZWI2MGY2ZWI1YmQ2NjkwZDFiM2QzYmI3NzNiNGZmLi42YTc1NzYxZTY3ZjBkZDBl
NjU5Y2VhNzQ1NTYzMjIzMjU2MjE5MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNzcsOSArNzcsNiBAQCB2YXIgV2ViSW5zcGVj
dG9yID0gewogICAgICAgICB0aGlzLl9kb2NrVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy5h
dHRhY2hlZDsKICAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZURvY2tUb2dnbGVCdXR0b24oKTsK
IAotICAgICAgICB0aGlzLl9zZXR0aW5nc0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVz
QmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2V0dGluZ3MiKSwgInNldHRpbmdzLXN0
YXR1cy1iYXItaXRlbSIpOwotICAgICAgICB0aGlzLl9zZXR0aW5nc0J1dHRvbi5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZVNldHRpbmdzLmJpbmQodGhpcyksIGZhbHNlKTsK
LQogICAgICAgICB2YXIgYW5jaG9yZWRTdGF0dXNCYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYW5jaG9yZWQtc3RhdHVzLWJhci1pdGVtcyIpOwogICAgICAgICBhbmNob3JlZFN0YXR1c0Jh
ci5hcHBlbmRDaGlsZCh0aGlzLl9kb2NrVG9nZ2xlQnV0dG9uLmVsZW1lbnQpOwogCkBAIC04OSw3
ICs4Niw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAgICAgICAgaWYgKHRoaXMucGFuZWxz
LmVsZW1lbnRzKQogICAgICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhp
cy5wYW5lbHMuZWxlbWVudHMubm9kZVNlYXJjaEJ1dHRvbi5lbGVtZW50KTsKLSAgICAgICAgYW5j
aG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5fc2V0dGluZ3NCdXR0b24uZWxlbWVudCk7
CisgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NDb250
cm9sbGVyLnN0YXR1c0Jhckl0ZW0pOwogICAgIH0sCiAKICAgICBfZG9ja0J1dHRvblRpdGxlOiBm
dW5jdGlvbigpCkBAIC0xNDYsMzUgKzE0Myw2IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAg
ICAgIHRoaXMuZHJhd2VyLnNob3codmlldywgV2ViSW5zcGVjdG9yLkRyYXdlci5BbmltYXRpb25U
eXBlLkltbWVkaWF0ZWx5KTsKICAgICB9LAogCi0gICAgX3RvZ2dsZVNldHRpbmdzOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICB0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gIXRoaXMu
X3NldHRpbmdzQnV0dG9uLnRvZ2dsZWQ7Ci0gICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc0J1dHRv
bi50b2dnbGVkKQotICAgICAgICAgICAgdGhpcy5fc2hvd1NldHRpbmdzU2NyZWVuKCk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2hpZGVTZXR0aW5nc1NjcmVlbigpOwotICAgIH0s
Ci0KLSAgICBfc2hvd1NldHRpbmdzU2NyZWVuOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBm
dW5jdGlvbiBvbmhpZGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc0J1
dHRvbi50b2dnbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fc2V0dGluZ3NT
Y3JlZW47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXRoaXMuX3NldHRpbmdzU2NyZWVuKSB7
Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0
dGluZ3NTY3JlZW4oKTsKLSAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuLnNob3cob25o
aWRlLmJpbmQodGhpcykpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9oaWRlU2V0dGluZ3NT
Y3JlZW46IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NjcmVl
bikKLSAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuLmhpZGUoKTsKLSAgICB9LAotCiAg
ICAgZ2V0IGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9hdHRhY2hlZDsK
QEAgLTQzNCw2ICs0MDIsNyBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmls
aXRpZXMgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLnNlYXJjaENvbnRyb2xsZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIoKTsKICAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ29u
dHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyKCk7Cisg
ICAgdGhpcy5zZXR0aW5nc0NvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29u
dHJvbGxlcigpOwogCiAgICAgaWYgKENhcGFiaWxpdGllcy5uYXRpdmVJbnN0cnVtZW50YXRpb25F
bmFibGVkKQogICAgICAgICB0aGlzLmRvbUJyZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUoKTsKQEAgLTcwNiw3ICs2NzUsNyBA
QCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICBp
ZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkYxIiB8fAogICAgICAgICAoZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gaGVscEtleSAmJiBldmVudC5zaGlmdEtleSAmJiAoIVdlYkluc3BlY3Rvci5p
c0JlaW5nRWRpdGVkKGV2ZW50LnRhcmdldCkgfHwgZXZlbnQubWV0YUtleSkpKSB7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5zaG9ydGN1dHNTY3JlZW4uc2hvdygpOworICAgICAgICBXZWJJbnNwZWN0
b3Iuc2hvcnRjdXRzU2NyZWVuLnNob3dNb2RhbCgpOwogICAgICAgICBldmVudC5jb25zdW1lKHRy
dWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141417</attachid>
            <date>2012-05-11 07:38:58 -0700</date>
            <delta_ts>2012-05-12 03:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120511183857.patch</filename>
            <type>text/plain</type>
            <size>18869</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMxYWIxNzkyYzk3N2Vm
MzViZWM5Mjc1ZTkwYTAxMzIzYjMzZGM1ZS4uY2QzNWE4NDgyN2Y4Y2YwOWY1YmRmNDdjNWJjOGM4
ZjZkODBmMDA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTExICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgTW90aXZhdGlvbjog
Zm9yIGZ1cnRoZXIgVUkgY2hhbmdlcywgSGVscFNjZWVuIG5lZWRzIHRvIGJlIFZpZXcuCisgICAg
ICAgIEl0IGlzIHBsYW5uZWQgdG8gY29tYmluZSBTZXR0aW5ncyBTY3JlZW4gYW5kIFNob3J0Y3V0
cyBTY3JlZW4gaW4gb25lCisgICAgICAgIHRhYmJlZCBzY3JlZW4uCisgICAgICAgIEJvbnVzOiAi
aGVscFNjcmVlbi5jc3MiIHdpbGwgYmUgbGF6eS1sb2FkZWQuCisgICAgICAgIEFkZGl0aW9uYWwg
Y2hhbmdlczogbW92ZSBzZXR0aW5nc1NjcmVlbiBsb2dpYyBvdXQgb2YgaW5zcGVjdG9yLmpzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVUkgY2hhbmdl
LCBubyB0ZXN0IHJlcXVpcmVkLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBDaGFuZ2UgImhl
bHBTY3JlZW4uY3NzIiBmaWxlIGdyb3VwLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
SGVscFNjcmVlbi5qczogCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbik6IFR1cm5l
ZCB0byBWaWV3IHN1YmNsYXNzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJv
dG90eXBlLnNob3dNb2RhbCk6IFJlbW92ZSAib25IaWRlIiBwYXJhbQorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLmhpZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fb25LZXlEb3duKTogQWRvcHQgVmlldyBtZW1i
ZXJzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLl9vbkJsdXIp
OiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpz
OiBBZG9wdCBuZXcgd29ya2Zsb3cuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3Jl
ZW4pOiBQdXQgb25IaWRlIGZ1bmN0aW9uIHRvIG1lbWJlcgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS53aWxsSGlkZSk6IEludm9rZSBvbkhpZGUKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIpOiBNZWRpYXRvciBwYXR0ZXJuIC0g
dGhpcyBjbGFzcworICAgICAgICB0YWtlcyBjYXJlIG9mIHN0YXR1cyBiYXIgYnV0dG9uIC0gc2V0
dGluZ3Mgc2NyZWVuIHJlbGF0aW9uc2hpcC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5n
c0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtKToKKyAgICAgICAgR2V0dGVy
IGZvdCByZXByZXNlbnRhdGl2ZSBlbGVtZW50LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX2J1dHRvbkNsaWNrZWQpOgorICAgICAgICBDbGFzc2lm
aWVzIHVzZXIgYWN0aW9uLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxl
ci5wcm90b3R5cGUuX29uSGlkZVNldHRpbmdzU2NyZWVuKToKKyAgICAgICAgQ2xlYW51cCBhZnRl
ciBzZXR0aW5ncyBzY3JlZW4gaXMgaGlkZGVuLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX3Nob3dTZXR0aW5nc1NjcmVlbik6CisgICAgICAgIFBy
ZXNlbnRzIHNldHRpbmdzIHNjcmVlbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0Nv
bnRyb2xsZXIucHJvdG90eXBlLl9oaWRlU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICBIaWRlcyBz
ZXR0aW5ncyBzY3JlZW4uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNT
Y3JlZW4uanM6IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaG9y
dGN1dHNTY3JlZW4ucHJvdG90eXBlLndhc1Nob3duKTogTGF6eSBpbml0aWFsaXphdGlvbi4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanM6IEFkb3B0IG5ldyB3
b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5f
ZGlzY29ubmVjdGVkRnJvbVdvcmtlcik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLldv
cmtlclRlcm1pbmF0ZWRTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogRGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczogRml4IHNwYWNpbmcuCisgICAg
ICAgICguaGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAu
aGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAuaGVscC13
aW5kb3ctbWFpbik6IERpdHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1j
YXB0aW9uKTogRGl0dG8uCisgICAgICAgICguaGVscC1jb250ZW50KTogRGl0dG8uCisgICAgICAg
IChib2R5LmNvbXBhY3QgLmhlbHAtY29udGVudCk6IERpdHRvLgorICAgICAgICAoLmhlbHAtY29u
dGVudCBzZWxlY3QpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qczogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZUdsb2JhbFN0YXR1c0Jh
ckl0ZW1zKTogQ3JlYXRlIFNldHRpbmdzQ29udHJvbGxlci4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5kb2N1bWVudEtleURvd24pOiBBZG9wdCBuZXcgd29ya2Zsb3cuCisKIDIwMTItMDUtMTAgIFRv
bW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJl
YW0gQVBJOiBGaXggTWVkaWFIaW50cyBwYXJzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTg1NzI2
MTBlNjBkNDIyY2FhZGViNWEzZThjMDEyNjUyODBjNmY5NS4uNDgxYWIyYmY5YjBkNjNlNDAwMjUw
MmYzMjRlNTljMGE5ZDg0ZWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUwMSw3ICs2NTAxLDYg
QEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5jc3MnLAotICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL3BvcG92ZXIuY3NzJywKQEAgLTY1MTMsNiArNjUxMiw3IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cu
Y3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3Mn
LAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5kZXhlZERCVmlld3MuY3NzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCmluZGV4IGVlZTNh
Nzc3MjJhZTY1MzQ4ZmVlNTM5ZTE5ZjYzMjU1YjE4YzUyMjQuLjAzZjBkMzRlNWVkMjExNmNkZTYz
MGExNTQ5MjdjYTQ4MmM0ODJiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSGVscFNjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMKQEAgLTMwLDE2ICszMCwxOSBAQAogCiAvKioKICAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICovCiBXZWJJbnNw
ZWN0b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogewotICAgIHRoaXMuX2VsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9lbGVtZW50LmNsYXNz
TmFtZSA9ICJoZWxwLXdpbmRvdy1vdXRlciI7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAg
ICB0aGlzLl9lbGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5fb25CbHVyLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICBX
ZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENT
UygiaGVscFNjcmVlbi5jc3MiKTsKIAotICAgIHZhciBtYWluV2luZG93ID0gdGhpcy5fZWxlbWVu
dC5jcmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKKyAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91dGVyIjsKKyAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxz
ZSk7CisgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKSwgZmFsc2UpOwor
CisgICAgdmFyIG1haW5XaW5kb3cgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJo
ZWxwLXdpbmRvdy1tYWluIik7CiAgICAgdmFyIGNhcHRpb25XaW5kb3cgPSBtYWluV2luZG93LmNy
ZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctY2FwdGlvbiIpOwogICAgIHZhciBjbG9zZUJ1
dHRvbiA9IGNhcHRpb25XaW5kb3cuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJoZWxwLWNsb3NlLWJ1
dHRvbiIpOwogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBtYWluV2luZG93LmNyZWF0ZUNoaWxk
KCJkaXYiLCAiaGVscC1jb250ZW50Iik7CkBAIC01NCw0MyArNTcsMzkgQEAgV2ViSW5zcGVjdG9y
LkhlbHBTY3JlZW4gPSBmdW5jdGlvbih0aXRsZSkKICAgICBdOwogfQogCisvKioKKyAqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0KKyAqLwogV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4u
dmlzaWJsZVNjcmVlbl8gPSBudWxsOwogCiBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ob25IaWRlKQorICAgIHNob3dNb2RhbDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lzU2hvd24pCisgICAgICAgIHZhciB2aXNp
YmxlSGVscFNjcmVlbiA9IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLl92aXNpYmxlU2NyZWVuOwor
ICAgICAgICBpZiAodmlzaWJsZUhlbHBTY3JlZW4gPT09IHRoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5f
KQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNjcmVlbl8uaGlk
ZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IHRo
aXM7Ci0KLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KTsK
LSAgICAgICAgdGhpcy5faXNTaG93biA9IHRydWU7Ci0gICAgICAgIHRoaXMuX29uSGlkZSA9IG9u
SGlkZTsKLSAgICAgICAgdGhpcy5fcHJldmlvdXNGb2N1c0VsZW1lbnQgPSBXZWJJbnNwZWN0b3Iu
Y3VycmVudEZvY3VzRWxlbWVudCgpOwotICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZv
Y3VzRWxlbWVudCh0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgaWYgKHZpc2libGVIZWxwU2NyZWVu
KQorICAgICAgICAgICAgdmlzaWJsZUhlbHBTY3JlZW4uaGlkZSgpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuSGVscFNjcmVlbi5fdmlzaWJsZVNjcmVlbiA9IHRoaXM7CisgICAgICAgIHRoaXMuc2hv
dyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5mb2N1
cygpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAo
IXRoaXMuX2lzU2hvd24pCisgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9pc1Nob3duID0gZmFsc2U7Ci0gICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVudCk7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50KTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNjcmVlbl8gPSBudWxsOwot
ICAgICAgICBpZiAodGhpcy5fb25IaWRlKSB7Ci0gICAgICAgICAgICB0aGlzLl9vbkhpZGUoKTsK
LSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9vbkhpZGU7Ci0gICAgICAgIH0KKyAgICAgICAgV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4uX3Zpc2libGVTY3JlZW4gPSBudWxsOworCisgICAgICAgIFdl
Ykluc3BlY3Rvci5yZXN0b3JlRm9jdXNGcm9tRWxlbWVudCh0aGlzLmVsZW1lbnQpOworICAgICAg
ICB0aGlzLmRldGFjaCgpOwogICAgIH0sCiAKICAgICBfb25LZXlEb3duOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmIHRoaXMuX2Nsb3NlS2V5cy5p
bmRleE9mKGV2ZW50LmtleUNvZGUpID49IDApIHsKKyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5n
KCkgJiYgdGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMCkgewogICAg
ICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAg
ICAgIH0KQEAgLTk5LDcgKzk4LDkgQEAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBl
ID0gewogICAgIF9vbkJsdXI6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgLy8gUHJl
dGVuZCB3ZSdyZSBtb2RhbCwgZ3JhYiBmb2N1cyBiYWNrIGlmIHdlJ3JlIHN0aWxsIHNob3duLgot
ICAgICAgICBpZiAodGhpcy5faXNTaG93biAmJiAhdGhpcy5fZWxlbWVudC5pc1NlbGZPckFuY2Vz
dG9yKGV2ZW50LnRhcmdldCkpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZv
Y3VzRWxlbWVudCh0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKCkg
JiYgIXRoaXMuZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKGV2ZW50LnRhcmdldCkpCisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZvY3VzRWxlbWVudCh0aGlzLmVsZW1lbnQpOwog
ICAgIH0KIH0KKworV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCmluZGV4IDU2ZmUyNjAwZjI4OTZh
Y2YxMTQ1YTNiODJhY2FjMjM4ZDlmODNhMmEuLmU2ZmZkYjA0ZGI5NWI1ODI3N2ZkZGMyZmFjNDI0
MWUxNTJkMTlkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtMzAsMTIgKzMwLDE2IEBACiAKIC8qKgogICogQGNv
bnN0cnVjdG9yCisgKiBAcGFyYW0geyFmdW5jdGlvbigpfSBvbkhpZGUKICAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0KICAqLwotV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
ID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24ob25I
aWRlKQogewogICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLmNhbGwodGhpcywgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTZXR0aW5ncyIpKTsKIAorICAgIC8qKiBAdHlwZSB7IWZ1bmN0aW9uKCl9
ICovCisgICAgdGhpcy5fb25IaWRlID0gb25IaWRlOworCiAgICAgdGhpcy5fbGVmdENvbHVtbkVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAgIHRoaXMuX3JpZ2h0Q29s
dW1uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICAgdmFyIHAgPSB0
aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiR2VuZXJhbCIpKTsKQEAg
LTExNSw2ICsxMTksMTUgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24o
KQogCiBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewogICAgIC8qKgor
ICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICB0aGlzLl9vbkhpZGUoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3Jl
ZW4ucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHBhcmFtIHtib29sZWFuPX0gcmlnaHQK
ICAgICAgKi8KQEAgLTU4MSwzICs1OTQsNTMgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGU7CisKKy8qKgor
ICogQGNvbnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIgPSBm
dW5jdGlvbigpCit7CisgICAgLyoqIEB0eXBlIHshV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRv
bn0gKi8KKyAgICB0aGlzLl9zdGF0dXNCYXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1
c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdzIiksICJzZXR0aW5ncy1z
dGF0dXMtYmFyLWl0ZW0iKTs7CisgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9uLmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgdGhpcy5fYnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisK
KyAgICAvKiogQHR5cGUgez9XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW59ICovCisgICAgdGhp
cy5fc2V0dGluZ3NTY3JlZW47Cit9CisKK1dlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIu
cHJvdG90eXBlID0KK3sKKyAgICBnZXQgc3RhdHVzQmFySXRlbSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fc3RhdHVzQmFyQnV0dG9uLmVsZW1lbnQ7CisgICAgfSwKKworICAgIF9idXR0
b25DbGlja2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc3RhdHVzQmFy
QnV0dG9uLnRvZ2dsZWQpCisgICAgICAgICAgICB0aGlzLl9oaWRlU2V0dGluZ3NTY3JlZW4oKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fc2hvd1NldHRpbmdzU2NyZWVuKCk7Cisg
ICAgfSwKKworICAgIF9vbkhpZGVTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKKyAgICAgICAgZGVs
ZXRlIHRoaXMuX3NldHRpbmdzU2NyZWVuOworICAgIH0sCisKKyAgICBfc2hvd1NldHRpbmdzU2Ny
ZWVuOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NldHRpbmdzU2NyZWVu
KQorICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLlNl
dHRpbmdzU2NyZWVuKHRoaXMuX29uSGlkZVNldHRpbmdzU2NyZWVuLmJpbmQodGhpcykpOworCisg
ICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuLnNob3dNb2RhbCgpOworICAgICAgICB0aGlzLl9z
dGF0dXNCYXJCdXR0b24udG9nZ2xlZCA9IHRydWU7CisgICAgfSwKKworICAgIF9oaWRlU2V0dGlu
Z3NTY3JlZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1Nj
cmVlbikKKyAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuLmhpZGUoKTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0
c1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRz
U2NyZWVuLmpzCmluZGV4IDg4YzhmOWZlZjgzNTM1OTZkZDY3MmRjM2I5MDdmMjg5OTA3YTNhZGUu
LmViMWRiNmY0YWFmMWMyMmU5NDE4MTk1YTdlZWQ3ZWRlNzJkYWNkODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpzCkBA
IC00OCwxMCArNDgsMTMgQEAgV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NjcmVlbi5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiBzZWN0aW9uOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlv
bihvbkhpZGUpCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICovCisgICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2J1aWxkVGFibGUodGhpcy5jb250
ZW50RWxlbWVudCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5z
aG93LmNhbGwodGhpcywgb25IaWRlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4u
cHJvdG90eXBlLndpbGxTaG93LmNhbGwodGhpcyk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmlu
ZGV4IGM5ZjA1M2RjNGE4ZGRmMGRjNjUxMDFhZjRmOGM3YzFhM2M0MTRmMTUuLjM3ZjQ2NzhmN2Y0
ZjliMWQzODE3YTE1NGJhYTdlODI4ZTUzYzlmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMKQEAgLTIwNSwxMyArMjA1LDkg
QEAgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgX2Rpc2Nv
bm5lY3RlZEZyb21Xb3JrZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIG9u
SGlkZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkds
b2JhbE9iamVjdENsZWFyZWQsIHNjcmVlbi5oaWRlLCBzY3JlZW4pOwotICAgICAgICB9CiAgICAg
ICAgIHZhciBzY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtlclRlcm1pbmF0ZWRTY3JlZW4o
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgc2Ny
ZWVuLmhpZGUsIHNjcmVlbik7Ci0gICAgICAgIHNjcmVlbi5zaG93KG9uSGlkZS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgc2NyZWVuLnNob3dNb2RhbCgpOwogICAgIH0KIH0KIApAQCAtMjcyLDQgKzI2
OCwxNSBAQCBXZWJJbnNwZWN0b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbiA9IGZ1bmN0aW9uKCkK
ICAgICBwLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbnNwZWN0ZWQgd29y
a2VyIGhhcyB0ZXJtaW5hdGVkLiBPbmNlIGl0IHJlc3RhcnRzIHdlIHdpbGwgYXR0YWNoIHRvIGl0
IGF1dG9tYXRpY2FsbHkuIik7CiB9CiAKK1dlYkluc3BlY3Rvci5Xb3JrZXJUZXJtaW5hdGVkU2Ny
ZWVuLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKi8KKyAg
ICB3aWxsSGlkZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5F
dmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5oaWRlLCB0aGlzKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAg
fQorfQorCiBXZWJJbnNwZWN0b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbi5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKaW5kZXggZmUxY2Y1
MGVlZmMwOTQ2NTJkZDUwODU4NjUyODc5YmI0OTE4NzBkOC4uMGNmZjYwOTVkYTk2NTQyYWYyNDI1
ODUxMjA1MDkyMzgwNGUxMGY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzCkBAIC0xLDE3ICsxLDE3IEBACiAuaGVscC13aW5kb3ct
b3V0ZXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDYwcHg7CisgICAgdG9w
OiAxMnB4OwogICAgIGxlZnQ6IDUlOwogICAgIHdpZHRoOiA5MCU7Ci0gICAgYm90dG9tOiA0MHB4
OworICAgIGJvdHRvbTogMTJweDsKICAgICB6LWluZGV4OiAyMDAwOwogfQogCiBib2R5LmNvbXBh
Y3QgLmhlbHAtd2luZG93LW91dGVyIHsKLSAgICB0b3A6IDMycHg7CisgICAgdG9wOiAwOwogICAg
IGxlZnQ6IDA7CiAgICAgd2lkdGg6IDEwMCU7Ci0gICAgYm90dG9tOiAyM3B4OworICAgIGJvdHRv
bTogMDsKIH0KIAogLmhlbHAtd2luZG93LW1haW4gewpAQCAtMjYsMTIgKzI2LDcgQEAgYm9keS5j
b21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlciB7CiAKIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ct
bWFpbiB7CiAgICAgaGVpZ2h0OiAxMDAlOwotICAgIHBhZGRpbmc6IDEwcHg7Ci19Ci0KLWJvZHku
Y29tcGFjdCAuaGVscC13aW5kb3ctbWFpbiB7CiAgICAgYm9yZGVyLXJhZGl1czogMDsKLSAgICAt
d2Via2l0LWJveC1zaGFkb3c6IDAgMCAwOwogfQogCiAuaGVscC13aW5kb3ctY2FwdGlvbiB7CkBA
IC00MSw3ICszNiw3IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctbWFpbiB7CiB9CiAKIGJv
ZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2FwdGlvbiB7Ci0gICAgbWFyZ2luOiAwOworICAgIG1h
cmdpbjogMCA5cHg7CiB9CiAKIC5oZWxwLXdpbmRvdy10aXRsZSB7CkBAIC01NCw3ICs0OSw3IEBA
IGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2FwdGlvbiB7CiAgICAgb3ZlcmZsb3cteDogaGlk
ZGVuOwogICAgIHNjcm9sbGJhci13aWR0aDogMTFweDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAx
OwotICAgIG1hcmdpbjogMHB4IDE2cHggMTZweCAxNnB4OworICAgIG1hcmdpbjogMCAxNnB4IDE2
cHggMTZweDsKICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKQEAgLTk1LDEyICs5MCw4IEBAIGJv
ZHkuY29tcGFjdCAuaGVscC13aW5kb3ctY2FwdGlvbiB7CiAgICAgbWFyZ2luOiAxMHB4IDA7CiB9
CiAKLWJvZHkuY29tcGFjdCAuaGVscC1jbG9zZS1idXR0b24gewotICAgIG1hcmdpbjogMDsKLX0K
LQogYm9keS5jb21wYWN0IC5oZWxwLWNvbnRlbnQgewotICAgIG1hcmdpbjogOHB4IDAgMCA4cHg7
CisgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogfQogCiAuaGVscC1jbG9zZS1idXR0b246aG92ZXIg
ewpAQCAtMjE3LDcgKzIwOCw3IEBAIGJvZHkucGxhdGZvcm0tbWFjIC5oZWxwLWtleSB7CiAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDY0LCA2NCwgNjQpOwogICAgIGNvbG9yOiB3aGl0ZTsKICAg
ICBib3JkZXItY29sb3I6IGJsYWNrOwotICAgIHBhZGRpbmc6IDBweCA0cHg7CisgICAgcGFkZGlu
ZzogMCA0cHg7CiB9CiAKIC5oZWxwLWNvbnRlbnQgc2VsZWN0OmRpc2FibGVkIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDYx
MjU5YTNkZmJlZDI2NDlmZGRjMDE1NTMyNGE0ZTBjNDliNDBhY2IuLjhkMDQwN2ZjODBiMDgxZWQ4
Njg0NDY0YzgzZTlkZWQ4YzI3NGI3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMzMsNyArMzMsNiBAQCBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3Rv
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
Imluc3BlY3RvckNvbW1vbi5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9Imluc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MiPgotICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImhlbHBTY3JlZW4uY3NzIj4K
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJwb3BvdmVy
LmNzcyI+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJE
T01FeHRlbnNpb24uanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA1YjFjMGM0MTVlZWI2MGY2ZWI1YmQ2NjkwZDFi
M2QzYmI3NzNiNGZmLi42YTc1NzYxZTY3ZjBkZDBlNjU5Y2VhNzQ1NTYzMjIzMjU2MjE5MmQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpA
QCAtNzcsOSArNzcsNiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICB0aGlzLl9kb2Nr
VG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy5hdHRhY2hlZDsKICAgICAgICAgV2ViSW5zcGVj
dG9yLnVwZGF0ZURvY2tUb2dnbGVCdXR0b24oKTsKIAotICAgICAgICB0aGlzLl9zZXR0aW5nc0J1
dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2V0dGluZ3MiKSwgInNldHRpbmdzLXN0YXR1cy1iYXItaXRlbSIpOwotICAgICAgICB0
aGlzLl9zZXR0aW5nc0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2ds
ZVNldHRpbmdzLmJpbmQodGhpcyksIGZhbHNlKTsKLQogICAgICAgICB2YXIgYW5jaG9yZWRTdGF0
dXNCYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5jaG9yZWQtc3RhdHVzLWJhci1pdGVt
cyIpOwogICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl9kb2NrVG9n
Z2xlQnV0dG9uLmVsZW1lbnQpOwogCkBAIC04OSw3ICs4Niw3IEBAIHZhciBXZWJJbnNwZWN0b3Ig
PSB7CiAKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmVsZW1lbnRzKQogICAgICAgICAgICAgYW5j
aG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5wYW5lbHMuZWxlbWVudHMubm9kZVNlYXJj
aEJ1dHRvbi5lbGVtZW50KTsKLSAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQo
dGhpcy5fc2V0dGluZ3NCdXR0b24uZWxlbWVudCk7CisgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFy
LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NDb250cm9sbGVyLnN0YXR1c0Jhckl0ZW0pOwogICAg
IH0sCiAKICAgICBfZG9ja0J1dHRvblRpdGxlOiBmdW5jdGlvbigpCkBAIC0xNDYsMzUgKzE0Myw2
IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgIHRoaXMuZHJhd2VyLnNob3codmlldywg
V2ViSW5zcGVjdG9yLkRyYXdlci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICB9LAog
Ci0gICAgX3RvZ2dsZVNldHRpbmdzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9z
ZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gIXRoaXMuX3NldHRpbmdzQnV0dG9uLnRvZ2dsZWQ7Ci0g
ICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkKQotICAgICAgICAgICAgdGhp
cy5fc2hvd1NldHRpbmdzU2NyZWVuKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMu
X2hpZGVTZXR0aW5nc1NjcmVlbigpOwotICAgIH0sCi0KLSAgICBfc2hvd1NldHRpbmdzU2NyZWVu
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBvbmhpZGUoKQotICAgICAgICB7
Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gZmFsc2U7Ci0gICAg
ICAgICAgICBkZWxldGUgdGhpcy5fc2V0dGluZ3NTY3JlZW47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoIXRoaXMuX3NldHRpbmdzU2NyZWVuKSB7Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5n
c1NjcmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4oKTsKLSAgICAgICAgICAg
IHRoaXMuX3NldHRpbmdzU2NyZWVuLnNob3cob25oaWRlLmJpbmQodGhpcykpOwotICAgICAgICB9
Ci0gICAgfSwKLQotICAgIF9oaWRlU2V0dGluZ3NTY3JlZW46IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NjcmVlbikKLSAgICAgICAgICAgIHRoaXMuX3NldHRp
bmdzU2NyZWVuLmhpZGUoKTsKLSAgICB9LAotCiAgICAgZ2V0IGF0dGFjaGVkKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9hdHRhY2hlZDsKQEAgLTQzNCw2ICs0MDIsNyBAQCBXZWJJbnNw
ZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpZXMgPSBmdW5jdGlvbigpCiAKICAgICB0
aGlzLnNlYXJjaENvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIo
KTsKICAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
QWR2YW5jZWRTZWFyY2hDb250cm9sbGVyKCk7CisgICAgdGhpcy5zZXR0aW5nc0NvbnRyb2xsZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlcigpOwogCiAgICAgaWYgKENhcGFi
aWxpdGllcy5uYXRpdmVJbnN0cnVtZW50YXRpb25FbmFibGVkKQogICAgICAgICB0aGlzLmRvbUJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRzU2lk
ZWJhclBhbmUoKTsKQEAgLTcwNiw3ICs2NzUsNyBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlE
b3duID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0g
IkYxIiB8fAogICAgICAgICAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gaGVscEtleSAmJiBldmVu
dC5zaGlmdEtleSAmJiAoIVdlYkluc3BlY3Rvci5pc0JlaW5nRWRpdGVkKGV2ZW50LnRhcmdldCkg
fHwgZXZlbnQubWV0YUtleSkpKSB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zaG9ydGN1dHNTY3Jl
ZW4uc2hvdygpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNob3dNb2Rh
bCgpOwogICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141567</attachid>
            <date>2012-05-12 03:47:43 -0700</date>
            <delta_ts>2012-05-14 08:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120512144741.patch</filename>
            <type>text/plain</type>
            <size>18894</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc3ZjFhNTI1Y2Q0ODBj
ZTdmNjliZWE4ODFmYTRiODZiNWEyYjNjNS4uMWYwYjU1NmY0YjA4NGY1NmQzYzY3OGZkNTM0NDU1
NTVhMGM2Y2E5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTEyICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW90aXZhdGlvbjogZm9yIGZ1cnRoZXIgVUkgY2hh
bmdlcywgSGVscFNjZWVuIG5lZWRzIHRvIGJlIFZpZXcuCisgICAgICAgIEl0IGlzIHBsYW5uZWQg
dG8gY29tYmluZSBTZXR0aW5ncyBTY3JlZW4gYW5kIFNob3J0Y3V0cyBTY3JlZW4gaW4gb25lCisg
ICAgICAgIHRhYmJlZCBzY3JlZW4uCisgICAgICAgIEJvbnVzOiAiaGVscFNjcmVlbi5jc3MiIHdp
bGwgYmUgbGF6eS1sb2FkZWQuCisgICAgICAgIEFkZGl0aW9uYWwgY2hhbmdlczogbW92ZSBzZXR0
aW5nc1NjcmVlbiBsb2dpYyBvdXQgb2YgaW5zcGVjdG9yLmpzCisKKyAgICAgICAgVUkgY2hhbmdl
LCBubyB0ZXN0IHJlcXVpcmVkLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBDaGFuZ2UgImhl
bHBTY3JlZW4uY3NzIiBmaWxlIGdyb3VwLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
SGVscFNjcmVlbi5qczogCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbik6IFR1cm5l
ZCB0byBWaWV3IHN1YmNsYXNzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJv
dG90eXBlLnNob3dNb2RhbCk6IFJlbW92ZSAib25IaWRlIiBwYXJhbQorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLmhpZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fb25LZXlEb3duKTogQWRvcHQgVmlldyBtZW1i
ZXJzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLl9vbkJsdXIp
OiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpz
OiBBZG9wdCBuZXcgd29ya2Zsb3cuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3Jl
ZW4pOiBQdXQgb25IaWRlIGZ1bmN0aW9uIHRvIG1lbWJlcgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS53aWxsSGlkZSk6IEludm9rZSBvbkhpZGUKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIpOiBNZWRpYXRvciBwYXR0ZXJuIC0g
dGhpcyBjbGFzcworICAgICAgICB0YWtlcyBjYXJlIG9mIHN0YXR1cyBiYXIgYnV0dG9uIC0gc2V0
dGluZ3Mgc2NyZWVuIHJlbGF0aW9uc2hpcC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5n
c0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtKToKKyAgICAgICAgR2V0dGVy
IGZvdCByZXByZXNlbnRhdGl2ZSBlbGVtZW50LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX2J1dHRvbkNsaWNrZWQpOgorICAgICAgICBDbGFzc2lm
aWVzIHVzZXIgYWN0aW9uLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxl
ci5wcm90b3R5cGUuX29uSGlkZVNldHRpbmdzU2NyZWVuKToKKyAgICAgICAgQ2xlYW51cCBhZnRl
ciBzZXR0aW5ncyBzY3JlZW4gaXMgaGlkZGVuLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX3Nob3dTZXR0aW5nc1NjcmVlbik6CisgICAgICAgIFBy
ZXNlbnRzIHNldHRpbmdzIHNjcmVlbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0Nv
bnRyb2xsZXIucHJvdG90eXBlLl9oaWRlU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICBIaWRlcyBz
ZXR0aW5ncyBzY3JlZW4uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNT
Y3JlZW4uanM6IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaG9y
dGN1dHNTY3JlZW4ucHJvdG90eXBlLndhc1Nob3duKTogTGF6eSBpbml0aWFsaXphdGlvbi4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanM6IEFkb3B0IG5ldyB3
b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5f
ZGlzY29ubmVjdGVkRnJvbVdvcmtlcik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLldv
cmtlclRlcm1pbmF0ZWRTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogRGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczogRml4IHNwYWNpbmcuCisgICAg
ICAgICguaGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAu
aGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAuaGVscC13
aW5kb3ctbWFpbik6IERpdHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1j
YXB0aW9uKTogRGl0dG8uCisgICAgICAgICguaGVscC1jb250ZW50KTogRGl0dG8uCisgICAgICAg
IChib2R5LmNvbXBhY3QgLmhlbHAtY29udGVudCk6IERpdHRvLgorICAgICAgICAoLmhlbHAtY29u
dGVudCBzZWxlY3QpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qczogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZUdsb2JhbFN0YXR1c0Jh
ckl0ZW1zKTogQ3JlYXRlIFNldHRpbmdzQ29udHJvbGxlci4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5kb2N1bWVudEtleURvd24pOiBBZG9wdCBuZXcgd29ya2Zsb3cuCisKIDIwMTItMDUtMTEgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY4MDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWM0Njc1OWY1
ZGQxMTQ3NmQ2ZjNlYWVhYzE2MjhhODIyYTQxYjljMS4uODc5YzdlOThkM2Q0MmY2MDVkNGZiYWRk
NmRhY2EyNTA5Njc1NjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUwMyw3ICs2NTAzLDYgQEAK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5jc3MnLAotICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL3BvcG92ZXIuY3NzJywKQEAgLTY1MTUsNiArNjUxNCw3IEBACiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3Nz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MnLAor
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5kZXhlZERCVmlld3MuY3NzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCmluZGV4IDIxYzVlYTgy
Mjg0OThjMzFlNjk0YzA3ZmU2MjRhMzU3ZmY3MTZlNDUuLmY0MjgzYTFjZWMzMjM0YmMzZWZjY2Y2
MzI1NDkzZTIxNmRmYjNjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVscFNjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlbHBTY3JlZW4uanMKQEAgLTMwLDE2ICszMCwxOSBAQAogCiAvKioKICAqIEBjb25z
dHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICovCiBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogewotICAgIHRoaXMuX2VsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFt
ZSA9ICJoZWxwLXdpbmRvdy1vdXRlciI7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0
aGlzLl9lbGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImZvY3VzIiwgdGhpcy5fb25CbHVyLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICBXZWJJ
bnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygi
aGVscFNjcmVlbi5jc3MiKTsKIAotICAgIHZhciBtYWluV2luZG93ID0gdGhpcy5fZWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKKyAgICB0aGlzLmVsZW1lbnQu
Y2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91dGVyIjsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7
CisgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKSwgZmFsc2UpOworCisg
ICAgdmFyIG1haW5XaW5kb3cgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxw
LXdpbmRvdy1tYWluIik7CiAgICAgdmFyIGNhcHRpb25XaW5kb3cgPSBtYWluV2luZG93LmNyZWF0
ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctY2FwdGlvbiIpOwogICAgIHZhciBjbG9zZUJ1dHRv
biA9IGNhcHRpb25XaW5kb3cuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJoZWxwLWNsb3NlLWJ1dHRv
biIpOwogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBtYWluV2luZG93LmNyZWF0ZUNoaWxkKCJk
aXYiLCAiaGVscC1jb250ZW50Iik7CkBAIC00OSwzOCArNTIsMzQgQEAgV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4gPSBmdW5jdGlvbih0aXRsZSkKICAgICBjbG9zZUJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiB9CiAKKy8qKgorICog
QHR5cGUge1dlYkluc3BlY3Rvci5IZWxwU2NyZWVufQorICovCiBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7CiAKIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnBy
b3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihvbkhpZGUpCisgICAgc2hvd01vZGFsOiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faXNTaG93bikKKyAgICAgICAgdmFy
IHZpc2libGVIZWxwU2NyZWVuID0gV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uX3Zpc2libGVTY3Jl
ZW47CisgICAgICAgIGlmICh2aXNpYmxlSGVscFNjcmVlbiA9PT0gdGhpcykKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNj
cmVlbl8pCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVu
Xy5oaWRlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5f
ID0gdGhpczsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1l
bnQpOwotICAgICAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fb25IaWRl
ID0gb25IaWRlOwotICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCA9IFdlYkluc3Bl
Y3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJy
ZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1lbnQpOworICAgICAgICBpZiAodmlzaWJsZUhlbHBT
Y3JlZW4pCisgICAgICAgICAgICB2aXNpYmxlSGVscFNjcmVlbi5oaWRlKCk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5IZWxwU2NyZWVuLl92aXNpYmxlU2NyZWVuID0gdGhpczsKKyAgICAgICAgdGhp
cy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOworICAgICAgICB0aGlz
LmZvY3VzKCk7CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IGlmICghdGhpcy5faXNTaG93bikKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZTsKLSAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KTsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fcHJldmlvdXNGb2N1c0VsZW1l
bnQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51
bGw7Ci0gICAgICAgIGlmICh0aGlzLl9vbkhpZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX29uSGlk
ZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX29uSGlkZTsKLSAgICAgICAgfQorICAgICAg
ICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5fdmlzaWJsZVNjcmVlbiA9IG51bGw7CisKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuZWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtOTgsNyArOTcsNyBA
QCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7CiAKICAgICBfb25LZXlEb3du
OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmIHRo
aXMuaXNDbG9zaW5nS2V5KGV2ZW50LmtleUNvZGUpKSB7CisgICAgICAgIGlmICh0aGlzLmlzU2hv
d2luZygpICYmIHRoaXMuaXNDbG9zaW5nS2V5KGV2ZW50LmtleUNvZGUpKSB7CiAgICAgICAgICAg
ICB0aGlzLmhpZGUoKTsKICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgfQpA
QCAtMTA3LDcgKzEwNiw5IEBAIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZSA9IHsK
ICAgICBfb25CbHVyOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIC8vIFByZXRlbmQg
d2UncmUgbW9kYWwsIGdyYWIgZm9jdXMgYmFjayBpZiB3ZSdyZSBzdGlsbCBzaG93bi4KLSAgICAg
ICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgIXRoaXMuX2VsZW1lbnQuaXNTZWxmT3JBbmNlc3Rvcihl
dmVudC50YXJnZXQpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0Vs
ZW1lbnQodGhpcy5fZWxlbWVudCk7CisgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygpICYmICF0
aGlzLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3RvcihldmVudC50YXJnZXQpKQorICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5lbGVtZW50KTsKICAgICB9
CiB9CisKK1dlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwppbmRleCA0NTJlYzc3ZjlkN2NmZWZjZTQ5
MTI2NGJlMmQ5ZTE1M2Y3YzQ1NzM3Li41YmNlZDU4M2Q4NGFmZDc2YTEzOTlkODdmYjFkNDU1ZTUz
Zjg2OTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3NTY3JlZW4uanMKQEAgLTMwLDEyICszMCwxNiBAQAogCiAvKioKICAqIEBjb25zdHJ1
Y3RvcgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gb25IaWRlCiAgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW59CiAgKi8KLVdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1
bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKG9uSGlkZSkK
IHsKICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2V0dGluZ3MiKSk7CiAKKyAgICAvKiogQHR5cGUgeyFmdW5jdGlvbigpfSAqLwor
ICAgIHRoaXMuX29uSGlkZSA9IG9uSGlkZTsKKwogICAgIHRoaXMuX2xlZnRDb2x1bW5FbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKICAgICB0aGlzLl9yaWdodENvbHVtbkVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAgIHZhciBwID0gdGhpcy5f
YXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdlbmVyYWwiKSk7CkBAIC0xMjcs
NiArMTMxLDE1IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAg
ICAgfSwKIAogICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdpbGxIaWRl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9vbkhpZGUoKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHBhcmFt
IHtib29sZWFuPX0gcmlnaHQKICAgICAgKi8KQEAgLTU5MywzICs2MDYsNTIgQEAgV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlNldHRp
bmdzU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5w
cm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5TZXR0
aW5nc0NvbnRyb2xsZXIgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9u
ID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTZXR0aW5ncyIpLCAic2V0dGluZ3Mtc3RhdHVzLWJhci1pdGVtIik7OworICAgIHRoaXMuX3N0
YXR1c0JhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2J1dHRvbkNsaWNr
ZWQuYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgLyoqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlNl
dHRpbmdzU2NyZWVufSAqLworICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuOworfQorCitXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NDb250cm9sbGVyLnByb3RvdHlwZSA9Cit7CisgICAgZ2V0IHN0YXR1c0Jh
ckl0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c0JhckJ1dHRvbi5lbGVt
ZW50OworICAgIH0sCisKKyAgICBfYnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3N0YXR1c0JhckJ1dHRvbi50b2dnbGVkKQorICAgICAgICAgICAgdGhp
cy5faGlkZVNldHRpbmdzU2NyZWVuKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X3Nob3dTZXR0aW5nc1NjcmVlbigpOworICAgIH0sCisKKyAgICBfb25IaWRlU2V0dGluZ3NTY3Jl
ZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3N0YXR1c0JhckJ1dHRvbi50b2dn
bGVkID0gZmFsc2U7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zZXR0aW5nc1NjcmVlbjsKKyAgICB9
LAorCisgICAgX3Nob3dTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl9zZXR0aW5nc1NjcmVlbikKKyAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2Ny
ZWVuID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbih0aGlzLl9vbkhpZGVTZXR0aW5n
c1NjcmVlbi5iaW5kKHRoaXMpKTsKKworICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5zaG93
TW9kYWwoKTsKKyAgICAgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwor
ICAgIH0sCisKKyAgICBfaGlkZVNldHRpbmdzU2NyZWVuOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBpZiAodGhpcy5fc2V0dGluZ3NTY3JlZW4pCisgICAgICAgICAgICB0aGlzLl9zZXR0aW5n
c1NjcmVlbi5oaWRlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwppbmRleCA4OGM4ZjlmZWY4MzUzNTk2
ZGQ2NzJkYzNiOTA3ZjI4OTkwN2EzYWRlLi5lOTUzMjBjZTEwMjA2MWE4Y2IzZTE1NmM5ZjRhYTY3
YzlhNjc1YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Nob3J0Y3V0c1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwpAQCAtNDgsMTAgKzQ4LDEzIEBAIFdlYkluc3BlY3Rvci5T
aG9ydGN1dHNTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gc2VjdGlvbjsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ob25IaWRlKQorICAgIC8qKgorICAgICAqIEBvdmVy
cmlkZQorICAgICAqLworICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl9idWlsZFRhYmxlKHRoaXMuY29udGVudEVsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIG9uSGlkZSk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwog
ICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV29ya2VyTWFuYWdlci5qcwppbmRleCBjOWYwNTNkYzRhOGRkZjBkYzY1MTAxYWY0Zjhj
N2MxYTNjNDE0ZjE1Li4zN2Y0Njc4ZjdmNGY5YjFkMzgxN2ExNTRiYWE3ZTgyOGU1M2M5ZjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFn
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5h
Z2VyLmpzCkBAIC0yMDUsMTMgKzIwNSw5IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnBy
b3RvdHlwZSA9IHsKIAogICAgIF9kaXNjb25uZWN0ZWRGcm9tV29ya2VyOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBmdW5jdGlvbiBvbkhpZGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCBzY3JlZW4uaGlkZSwg
c2NyZWVuKTsKLSAgICAgICAgfQogICAgICAgICB2YXIgc2NyZWVuID0gbmV3IFdlYkluc3BlY3Rv
ci5Xb3JrZXJUZXJtaW5hdGVkU2NyZWVuKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRz
Lkdsb2JhbE9iamVjdENsZWFyZWQsIHNjcmVlbi5oaWRlLCBzY3JlZW4pOwotICAgICAgICBzY3Jl
ZW4uc2hvdyhvbkhpZGUuYmluZCh0aGlzKSk7CisgICAgICAgIHNjcmVlbi5zaG93TW9kYWwoKTsK
ICAgICB9CiB9CiAKQEAgLTI3Miw0ICsyNjgsMTUgQEAgV2ViSW5zcGVjdG9yLldvcmtlclRlcm1p
bmF0ZWRTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgcC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiSW5zcGVjdGVkIHdvcmtlciBoYXMgdGVybWluYXRlZC4gT25jZSBpdCByZXN0
YXJ0cyB3ZSB3aWxsIGF0dGFjaCB0byBpdCBhdXRvbWF0aWNhbGx5LiIpOwogfQogCitXZWJJbnNw
ZWN0b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbi5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAg
ICogQG92ZXJyaWRlCisgICAgICovCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRoaXMu
aGlkZSwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53
aWxsSGlkZS5jYWxsKHRoaXMpOworICAgIH0KK30KKwogV2ViSW5zcGVjdG9yLldvcmtlclRlcm1p
bmF0ZWRTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVu
LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaGVscFNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hl
bHBTY3JlZW4uY3NzCmluZGV4IGZlMWNmNTBlZWZjMDk0NjUyZGQ1MDg1ODY1Mjg3OWJiNDkxODcw
ZDguLjBjZmY2MDk1ZGE5NjU0MmFmMjQyNTg1MTIwNTA5MjM4MDRlMTBmODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwpAQCAtMSwx
NyArMSwxNyBAQAogLmhlbHAtd2luZG93LW91dGVyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgdG9wOiA2MHB4OworICAgIHRvcDogMTJweDsKICAgICBsZWZ0OiA1JTsKICAgICB3aWR0
aDogOTAlOwotICAgIGJvdHRvbTogNDBweDsKKyAgICBib3R0b206IDEycHg7CiAgICAgei1pbmRl
eDogMjAwMDsKIH0KIAogYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlciB7Ci0gICAgdG9w
OiAzMnB4OworICAgIHRvcDogMDsKICAgICBsZWZ0OiAwOwogICAgIHdpZHRoOiAxMDAlOwotICAg
IGJvdHRvbTogMjNweDsKKyAgICBib3R0b206IDA7CiB9CiAKIC5oZWxwLXdpbmRvdy1tYWluIHsK
QEAgLTI2LDEyICsyNiw3IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctb3V0ZXIgewogCiBi
b2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBw
YWRkaW5nOiAxMHB4OwotfQotCi1ib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAg
IGJvcmRlci1yYWRpdXM6IDA7Ci0gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMDsKIH0KIAog
LmhlbHAtd2luZG93LWNhcHRpb24gewpAQCAtNDEsNyArMzYsNyBAQCBib2R5LmNvbXBhY3QgLmhl
bHAtd2luZG93LW1haW4gewogfQogCiBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24g
ewotICAgIG1hcmdpbjogMDsKKyAgICBtYXJnaW46IDAgOXB4OwogfQogCiAuaGVscC13aW5kb3ct
dGl0bGUgewpAQCAtNTQsNyArNDksNyBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRp
b24gewogICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICBzY3JvbGxiYXItd2lkdGg6IDExcHg7
CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKLSAgICBtYXJnaW46IDBweCAxNnB4IDE2cHggMTZw
eDsKKyAgICBtYXJnaW46IDAgMTZweCAxNnB4IDE2cHg7CiAgICAgZm9udC1zaXplOiAxM3B4Owog
fQogCkBAIC05NSwxMiArOTAsOCBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24g
ewogICAgIG1hcmdpbjogMTBweCAwOwogfQogCi1ib2R5LmNvbXBhY3QgLmhlbHAtY2xvc2UtYnV0
dG9uIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KIGJvZHkuY29tcGFjdCAuaGVscC1jb250ZW50IHsK
LSAgICBtYXJnaW46IDhweCAwIDAgOHB4OworICAgIG1hcmdpbi1ib3R0b206IDhweDsKIH0KIAog
LmhlbHAtY2xvc2UtYnV0dG9uOmhvdmVyIHsKQEAgLTIxNyw3ICsyMDgsNyBAQCBib2R5LnBsYXRm
b3JtLW1hYyAuaGVscC1rZXkgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig2NCwgNjQsIDY0
KTsKICAgICBjb2xvcjogd2hpdGU7CiAgICAgYm9yZGVyLWNvbG9yOiBibGFjazsKLSAgICBwYWRk
aW5nOiAwcHggNHB4OworICAgIHBhZGRpbmc6IDAgNHB4OwogfQogCiAuaGVscC1jb250ZW50IHNl
bGVjdDpkaXNhYmxlZCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAppbmRleCA2MTI1OWEzZGZiZWQyNjQ5ZmRkYzAxNTUzMjRhNGUwYzQ5
YjQwYWNiLi44ZDA0MDdmYzgwYjA4MWVkODY4NDQ2NGM4M2U5ZGVkOGMyNzRiN2E1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAg
LTMzLDcgKzMzLDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9
InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JDb21tb24uY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JTeW50YXhI
aWdobGlnaHQuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSJoZWxwU2NyZWVuLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0icG9wb3Zlci5jc3MiPgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRE9NRXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZWY5
MGQ2ZDI4NWYyODc0NDRiOTA5NmIwZmEyMTFmMzBkMGI0ZjVkZC4uMmViYzg3NmM0ZjA5ZWI3NmVk
NzgwYzU1MGRmODNiYmVjYzc3Yzc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTc3LDkgKzc3LDYgQEAgdmFyIFdlYkluc3BlY3Rv
ciA9IHsKICAgICAgICAgdGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi50b2dnbGVkID0gIXRoaXMuYXR0
YWNoZWQ7CiAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVEb2NrVG9nZ2xlQnV0dG9uKCk7CiAK
LSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdzIiksICJzZXR0aW5ncy1zdGF0
dXMtYmFyLWl0ZW0iKTsKLSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVTZXR0aW5ncy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0K
ICAgICAgICAgdmFyIGFuY2hvcmVkU3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFuY2hvcmVkLXN0YXR1cy1iYXItaXRlbXMiKTsKICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIu
YXBwZW5kQ2hpbGQodGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5lbGVtZW50KTsKIApAQCAtODksNyAr
ODYsNyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogCiAgICAgICAgIGlmICh0aGlzLnBhbmVscy5l
bGVtZW50cykKICAgICAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMu
cGFuZWxzLmVsZW1lbnRzLm5vZGVTZWFyY2hCdXR0b24uZWxlbWVudCk7Ci0gICAgICAgIGFuY2hv
cmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX3NldHRpbmdzQnV0dG9uLmVsZW1lbnQpOwor
ICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzQ29udHJv
bGxlci5zdGF0dXNCYXJJdGVtKTsKICAgICB9LAogCiAgICAgX2RvY2tCdXR0b25UaXRsZTogZnVu
Y3Rpb24oKQpAQCAtMTQ2LDM1ICsxNDMsNiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAg
ICB0aGlzLmRyYXdlci5zaG93KHZpZXcsIFdlYkluc3BlY3Rvci5EcmF3ZXIuQW5pbWF0aW9uVHlw
ZS5JbW1lZGlhdGVseSk7CiAgICAgfSwKIAotICAgIF90b2dnbGVTZXR0aW5nczogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl9z
ZXR0aW5nc0J1dHRvbi50b2dnbGVkOwotICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NCdXR0b24u
dG9nZ2xlZCkKLSAgICAgICAgICAgIHRoaXMuX3Nob3dTZXR0aW5nc1NjcmVlbigpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9oaWRlU2V0dGluZ3NTY3JlZW4oKTsKLSAgICB9LAot
Ci0gICAgX3Nob3dTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gb25oaWRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0
b24udG9nZ2xlZCA9IGZhbHNlOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdzU2Ny
ZWVuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9zZXR0aW5nc1NjcmVlbikgewot
ICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRp
bmdzU2NyZWVuKCk7Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5zaG93KG9uaGlk
ZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfaGlkZVNldHRpbmdzU2Ny
ZWVuOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NTY3JlZW4p
Ci0gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5oaWRlKCk7Ci0gICAgfSwKLQogICAg
IGdldCBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fYXR0YWNoZWQ7CkBA
IC00MzUsNiArNDAzLDcgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0
aWVzID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5zZWFyY2hDb250cm9sbGVyID0gbmV3IFdlYklu
c3BlY3Rvci5TZWFyY2hDb250cm9sbGVyKCk7CiAgICAgdGhpcy5hZHZhbmNlZFNlYXJjaENvbnRy
b2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlcigpOworICAg
IHRoaXMuc2V0dGluZ3NDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRy
b2xsZXIoKTsKIAogICAgIGlmIChDYXBhYmlsaXRpZXMubmF0aXZlSW5zdHJ1bWVudGF0aW9uRW5h
YmxlZCkKICAgICAgICAgdGhpcy5kb21CcmVha3BvaW50c1NpZGViYXJQYW5lID0gbmV3IFdlYklu
c3BlY3Rvci5ET01CcmVha3BvaW50c1NpZGViYXJQYW5lKCk7CkBAIC03MDcsNyArNjc2LDcgQEAg
V2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50KQogCiAgICAgaWYg
KGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJGMSIgfHwKICAgICAgICAgKGV2ZW50LmtleUlkZW50
aWZpZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQuc2hpZnRLZXkgJiYgKCFXZWJJbnNwZWN0b3IuaXNC
ZWluZ0VkaXRlZChldmVudC50YXJnZXQpIHx8IGV2ZW50Lm1ldGFLZXkpKSkgewotICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNob3coKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LnNob3J0Y3V0c1NjcmVlbi5zaG93TW9kYWwoKTsKICAgICAgICAgZXZlbnQuY29uc3VtZSh0cnVl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141572</attachid>
            <date>2012-05-12 05:45:12 -0700</date>
            <delta_ts>2012-05-12 05:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85711-20120512164510.patch</filename>
            <type>text/plain</type>
            <size>19531</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc3ZjFhNTI1Y2Q0ODBj
ZTdmNjliZWE4ODFmYTRiODZiNWEyYjNjNS4uMWYwYjU1NmY0YjA4NGY1NmQzYzY3OGZkNTM0NDU1
NTVhMGM2Y2E5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTEyICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUdXJuIEhlbHBTY3JlZW4gdG8gYmUgVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW90aXZhdGlvbjogZm9yIGZ1cnRoZXIgVUkgY2hh
bmdlcywgSGVscFNjZWVuIG5lZWRzIHRvIGJlIFZpZXcuCisgICAgICAgIEl0IGlzIHBsYW5uZWQg
dG8gY29tYmluZSBTZXR0aW5ncyBTY3JlZW4gYW5kIFNob3J0Y3V0cyBTY3JlZW4gaW4gb25lCisg
ICAgICAgIHRhYmJlZCBzY3JlZW4uCisgICAgICAgIEJvbnVzOiAiaGVscFNjcmVlbi5jc3MiIHdp
bGwgYmUgbGF6eS1sb2FkZWQuCisgICAgICAgIEFkZGl0aW9uYWwgY2hhbmdlczogbW92ZSBzZXR0
aW5nc1NjcmVlbiBsb2dpYyBvdXQgb2YgaW5zcGVjdG9yLmpzCisKKyAgICAgICAgVUkgY2hhbmdl
LCBubyB0ZXN0IHJlcXVpcmVkLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBDaGFuZ2UgImhl
bHBTY3JlZW4uY3NzIiBmaWxlIGdyb3VwLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
SGVscFNjcmVlbi5qczogCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVscFNjcmVlbik6IFR1cm5l
ZCB0byBWaWV3IHN1YmNsYXNzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJv
dG90eXBlLnNob3dNb2RhbCk6IFJlbW92ZSAib25IaWRlIiBwYXJhbQorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLmhpZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fb25LZXlEb3duKTogQWRvcHQgVmlldyBtZW1i
ZXJzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLl9vbkJsdXIp
OiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpz
OiBBZG9wdCBuZXcgd29ya2Zsb3cuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3Jl
ZW4pOiBQdXQgb25IaWRlIGZ1bmN0aW9uIHRvIG1lbWJlcgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS53aWxsSGlkZSk6IEludm9rZSBvbkhpZGUKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0NvbnRyb2xsZXIpOiBNZWRpYXRvciBwYXR0ZXJuIC0g
dGhpcyBjbGFzcworICAgICAgICB0YWtlcyBjYXJlIG9mIHN0YXR1cyBiYXIgYnV0dG9uIC0gc2V0
dGluZ3Mgc2NyZWVuIHJlbGF0aW9uc2hpcC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5n
c0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtKToKKyAgICAgICAgR2V0dGVy
IGZvdCByZXByZXNlbnRhdGl2ZSBlbGVtZW50LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX2J1dHRvbkNsaWNrZWQpOgorICAgICAgICBDbGFzc2lm
aWVzIHVzZXIgYWN0aW9uLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxl
ci5wcm90b3R5cGUuX29uSGlkZVNldHRpbmdzU2NyZWVuKToKKyAgICAgICAgQ2xlYW51cCBhZnRl
ciBzZXR0aW5ncyBzY3JlZW4gaXMgaGlkZGVuLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRp
bmdzQ29udHJvbGxlci5wcm90b3R5cGUuX3Nob3dTZXR0aW5nc1NjcmVlbik6CisgICAgICAgIFBy
ZXNlbnRzIHNldHRpbmdzIHNjcmVlbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc0Nv
bnRyb2xsZXIucHJvdG90eXBlLl9oaWRlU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICBIaWRlcyBz
ZXR0aW5ncyBzY3JlZW4uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNT
Y3JlZW4uanM6IEFkb3B0IG5ldyB3b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaG9y
dGN1dHNTY3JlZW4ucHJvdG90eXBlLndhc1Nob3duKTogTGF6eSBpbml0aWFsaXphdGlvbi4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanM6IEFkb3B0IG5ldyB3
b3JrZmxvdy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5f
ZGlzY29ubmVjdGVkRnJvbVdvcmtlcik6IERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLldv
cmtlclRlcm1pbmF0ZWRTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlKTogRGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczogRml4IHNwYWNpbmcuCisgICAg
ICAgICguaGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAu
aGVscC13aW5kb3ctb3V0ZXIpOiBEaXR0by4KKyAgICAgICAgKGJvZHkuY29tcGFjdCAuaGVscC13
aW5kb3ctbWFpbik6IERpdHRvLgorICAgICAgICAoYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1j
YXB0aW9uKTogRGl0dG8uCisgICAgICAgICguaGVscC1jb250ZW50KTogRGl0dG8uCisgICAgICAg
IChib2R5LmNvbXBhY3QgLmhlbHAtY29udGVudCk6IERpdHRvLgorICAgICAgICAoLmhlbHAtY29u
dGVudCBzZWxlY3QpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qczogRGl0dG8uCisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZUdsb2JhbFN0YXR1c0Jh
ckl0ZW1zKTogQ3JlYXRlIFNldHRpbmdzQ29udHJvbGxlci4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5kb2N1bWVudEtleURvd24pOiBBZG9wdCBuZXcgd29ya2Zsb3cuCisKIDIwMTItMDUtMTEgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY4MDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWM0Njc1OWY1
ZGQxMTQ3NmQ2ZjNlYWVhYzE2MjhhODIyYTQxYjljMS4uODc5YzdlOThkM2Q0MmY2MDVkNGZiYWRk
NmRhY2EyNTA5Njc1NjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUwMyw3ICs2NTAzLDYgQEAK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RpYWxvZy5jc3MnLAotICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL3BvcG92ZXIuY3NzJywKQEAgLTY1MTUsNiArNjUxNCw3IEBACiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3Nz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MnLAor
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5kZXhlZERCVmlld3MuY3NzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCmluZGV4IDIxYzVlYTgy
Mjg0OThjMzFlNjk0YzA3ZmU2MjRhMzU3ZmY3MTZlNDUuLmY0MjgzYTFjZWMzMjM0YmMzZWZjY2Y2
MzI1NDkzZTIxNmRmYjNjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVscFNjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlbHBTY3JlZW4uanMKQEAgLTMwLDE2ICszMCwxOSBAQAogCiAvKioKICAqIEBjb25z
dHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICovCiBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbiA9IGZ1bmN0aW9uKHRpdGxlKQogewotICAgIHRoaXMuX2VsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFt
ZSA9ICJoZWxwLXdpbmRvdy1vdXRlciI7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0
aGlzLl9lbGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImZvY3VzIiwgdGhpcy5fb25CbHVyLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICBXZWJJ
bnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygi
aGVscFNjcmVlbi5jc3MiKTsKIAotICAgIHZhciBtYWluV2luZG93ID0gdGhpcy5fZWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtd2luZG93LW1haW4iKTsKKyAgICB0aGlzLmVsZW1lbnQu
Y2xhc3NOYW1lID0gImhlbHAtd2luZG93LW91dGVyIjsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7
CisgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKSwgZmFsc2UpOworCisg
ICAgdmFyIG1haW5XaW5kb3cgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxw
LXdpbmRvdy1tYWluIik7CiAgICAgdmFyIGNhcHRpb25XaW5kb3cgPSBtYWluV2luZG93LmNyZWF0
ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctY2FwdGlvbiIpOwogICAgIHZhciBjbG9zZUJ1dHRv
biA9IGNhcHRpb25XaW5kb3cuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJoZWxwLWNsb3NlLWJ1dHRv
biIpOwogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBtYWluV2luZG93LmNyZWF0ZUNoaWxkKCJk
aXYiLCAiaGVscC1jb250ZW50Iik7CkBAIC00OSwzOCArNTIsMzQgQEAgV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4gPSBmdW5jdGlvbih0aXRsZSkKICAgICBjbG9zZUJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiB9CiAKKy8qKgorICog
QHR5cGUge1dlYkluc3BlY3Rvci5IZWxwU2NyZWVufQorICovCiBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi52aXNpYmxlU2NyZWVuXyA9IG51bGw7CiAKIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnBy
b3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihvbkhpZGUpCisgICAgc2hvd01vZGFsOiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faXNTaG93bikKKyAgICAgICAgdmFy
IHZpc2libGVIZWxwU2NyZWVuID0gV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uX3Zpc2libGVTY3Jl
ZW47CisgICAgICAgIGlmICh2aXNpYmxlSGVscFNjcmVlbiA9PT0gdGhpcykKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4udmlzaWJsZVNj
cmVlbl8pCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVu
Xy5oaWRlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnZpc2libGVTY3JlZW5f
ID0gdGhpczsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1l
bnQpOwotICAgICAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fb25IaWRl
ID0gb25IaWRlOwotICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCA9IFdlYkluc3Bl
Y3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJy
ZW50Rm9jdXNFbGVtZW50KHRoaXMuX2VsZW1lbnQpOworICAgICAgICBpZiAodmlzaWJsZUhlbHBT
Y3JlZW4pCisgICAgICAgICAgICB2aXNpYmxlSGVscFNjcmVlbi5oaWRlKCk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5IZWxwU2NyZWVuLl92aXNpYmxlU2NyZWVuID0gdGhpczsKKyAgICAgICAgdGhp
cy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOworICAgICAgICB0aGlz
LmZvY3VzKCk7CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IGlmICghdGhpcy5faXNTaG93bikKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZTsKLSAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KTsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fcHJldmlvdXNGb2N1c0VsZW1l
bnQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi52aXNpYmxlU2NyZWVuXyA9IG51
bGw7Ci0gICAgICAgIGlmICh0aGlzLl9vbkhpZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX29uSGlk
ZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX29uSGlkZTsKLSAgICAgICAgfQorICAgICAg
ICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5fdmlzaWJsZVNjcmVlbiA9IG51bGw7CisKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuZWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtOTgsNyArOTcsNyBA
QCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7CiAKICAgICBfb25LZXlEb3du
OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc1Nob3duICYmIHRo
aXMuaXNDbG9zaW5nS2V5KGV2ZW50LmtleUNvZGUpKSB7CisgICAgICAgIGlmICh0aGlzLmlzU2hv
d2luZygpICYmIHRoaXMuaXNDbG9zaW5nS2V5KGV2ZW50LmtleUNvZGUpKSB7CiAgICAgICAgICAg
ICB0aGlzLmhpZGUoKTsKICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgfQpA
QCAtMTA3LDcgKzEwNiw5IEBAIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZSA9IHsK
ICAgICBfb25CbHVyOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIC8vIFByZXRlbmQg
d2UncmUgbW9kYWwsIGdyYWIgZm9jdXMgYmFjayBpZiB3ZSdyZSBzdGlsbCBzaG93bi4KLSAgICAg
ICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgIXRoaXMuX2VsZW1lbnQuaXNTZWxmT3JBbmNlc3Rvcihl
dmVudC50YXJnZXQpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0Vs
ZW1lbnQodGhpcy5fZWxlbWVudCk7CisgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygpICYmICF0
aGlzLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3RvcihldmVudC50YXJnZXQpKQorICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5lbGVtZW50KTsKICAgICB9
CiB9CisKK1dlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwppbmRleCA0NTJlYzc3ZjlkN2NmZWZjZTQ5
MTI2NGJlMmQ5ZTE1M2Y3YzQ1NzM3Li41YmNlZDU4M2Q4NGFmZDc2YTEzOTlkODdmYjFkNDU1ZTUz
Zjg2OTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3NTY3JlZW4uanMKQEAgLTMwLDEyICszMCwxNiBAQAogCiAvKioKICAqIEBjb25zdHJ1
Y3RvcgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gb25IaWRlCiAgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW59CiAgKi8KLVdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1
bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKG9uSGlkZSkK
IHsKICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2V0dGluZ3MiKSk7CiAKKyAgICAvKiogQHR5cGUgeyFmdW5jdGlvbigpfSAqLwor
ICAgIHRoaXMuX29uSGlkZSA9IG9uSGlkZTsKKwogICAgIHRoaXMuX2xlZnRDb2x1bW5FbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKICAgICB0aGlzLl9yaWdodENvbHVtbkVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAgIHZhciBwID0gdGhpcy5f
YXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdlbmVyYWwiKSk7CkBAIC0xMjcs
NiArMTMxLDE1IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAg
ICAgfSwKIAogICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdpbGxIaWRl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9vbkhpZGUoKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHBhcmFt
IHtib29sZWFuPX0gcmlnaHQKICAgICAgKi8KQEAgLTU5MywzICs2MDYsNTIgQEAgV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlNldHRp
bmdzU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5w
cm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5TZXR0
aW5nc0NvbnRyb2xsZXIgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9u
ID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTZXR0aW5ncyIpLCAic2V0dGluZ3Mtc3RhdHVzLWJhci1pdGVtIik7OworICAgIHRoaXMuX3N0
YXR1c0JhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2J1dHRvbkNsaWNr
ZWQuYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgLyoqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlNl
dHRpbmdzU2NyZWVufSAqLworICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuOworfQorCitXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NDb250cm9sbGVyLnByb3RvdHlwZSA9Cit7CisgICAgZ2V0IHN0YXR1c0Jh
ckl0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c0JhckJ1dHRvbi5lbGVt
ZW50OworICAgIH0sCisKKyAgICBfYnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3N0YXR1c0JhckJ1dHRvbi50b2dnbGVkKQorICAgICAgICAgICAgdGhp
cy5faGlkZVNldHRpbmdzU2NyZWVuKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X3Nob3dTZXR0aW5nc1NjcmVlbigpOworICAgIH0sCisKKyAgICBfb25IaWRlU2V0dGluZ3NTY3Jl
ZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3N0YXR1c0JhckJ1dHRvbi50b2dn
bGVkID0gZmFsc2U7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zZXR0aW5nc1NjcmVlbjsKKyAgICB9
LAorCisgICAgX3Nob3dTZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl9zZXR0aW5nc1NjcmVlbikKKyAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2Ny
ZWVuID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbih0aGlzLl9vbkhpZGVTZXR0aW5n
c1NjcmVlbi5iaW5kKHRoaXMpKTsKKworICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5zaG93
TW9kYWwoKTsKKyAgICAgICAgdGhpcy5fc3RhdHVzQmFyQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwor
ICAgIH0sCisKKyAgICBfaGlkZVNldHRpbmdzU2NyZWVuOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBpZiAodGhpcy5fc2V0dGluZ3NTY3JlZW4pCisgICAgICAgICAgICB0aGlzLl9zZXR0aW5n
c1NjcmVlbi5oaWRlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwppbmRleCA4OGM4ZjlmZWY4MzUzNTk2
ZGQ2NzJkYzNiOTA3ZjI4OTkwN2EzYWRlLi5lOTUzMjBjZTEwMjA2MWE4Y2IzZTE1NmM5ZjRhYTY3
YzlhNjc1YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Nob3J0Y3V0c1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwpAQCAtNDgsMTAgKzQ4LDEzIEBAIFdlYkluc3BlY3Rvci5T
aG9ydGN1dHNTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gc2VjdGlvbjsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ob25IaWRlKQorICAgIC8qKgorICAgICAqIEBvdmVy
cmlkZQorICAgICAqLworICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl9idWlsZFRhYmxlKHRoaXMuY29udGVudEVsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIG9uSGlkZSk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwog
ICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV29ya2VyTWFuYWdlci5qcwppbmRleCBjOWYwNTNkYzRhOGRkZjBkYzY1MTAxYWY0Zjhj
N2MxYTNjNDE0ZjE1Li4zN2Y0Njc4ZjdmNGY5YjFkMzgxN2ExNTRiYWE3ZTgyOGU1M2M5ZjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFn
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5h
Z2VyLmpzCkBAIC0yMDUsMTMgKzIwNSw5IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnBy
b3RvdHlwZSA9IHsKIAogICAgIF9kaXNjb25uZWN0ZWRGcm9tV29ya2VyOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBmdW5jdGlvbiBvbkhpZGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCBzY3JlZW4uaGlkZSwg
c2NyZWVuKTsKLSAgICAgICAgfQogICAgICAgICB2YXIgc2NyZWVuID0gbmV3IFdlYkluc3BlY3Rv
ci5Xb3JrZXJUZXJtaW5hdGVkU2NyZWVuKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRz
Lkdsb2JhbE9iamVjdENsZWFyZWQsIHNjcmVlbi5oaWRlLCBzY3JlZW4pOwotICAgICAgICBzY3Jl
ZW4uc2hvdyhvbkhpZGUuYmluZCh0aGlzKSk7CisgICAgICAgIHNjcmVlbi5zaG93TW9kYWwoKTsK
ICAgICB9CiB9CiAKQEAgLTI3Miw0ICsyNjgsMTUgQEAgV2ViSW5zcGVjdG9yLldvcmtlclRlcm1p
bmF0ZWRTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgcC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiSW5zcGVjdGVkIHdvcmtlciBoYXMgdGVybWluYXRlZC4gT25jZSBpdCByZXN0
YXJ0cyB3ZSB3aWxsIGF0dGFjaCB0byBpdCBhdXRvbWF0aWNhbGx5LiIpOwogfQogCitXZWJJbnNw
ZWN0b3IuV29ya2VyVGVybWluYXRlZFNjcmVlbi5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAg
ICogQG92ZXJyaWRlCisgICAgICovCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRoaXMu
aGlkZSwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZS53
aWxsSGlkZS5jYWxsKHRoaXMpOworICAgIH0KK30KKwogV2ViSW5zcGVjdG9yLldvcmtlclRlcm1p
bmF0ZWRTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVu
LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaGVscFNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hl
bHBTY3JlZW4uY3NzCmluZGV4IGZlMWNmNTBlZWZjMDk0NjUyZGQ1MDg1ODY1Mjg3OWJiNDkxODcw
ZDguLjUyNTMzY2ViOWFhYzNhMTc2NDU1NzM0YTczYzU0Nzg4M2M0M2E5ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwpAQCAtMSwy
MyArMSwyMyBAQAogLmhlbHAtd2luZG93LW91dGVyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgdG9wOiA2MHB4OworICAgIHRvcDogMTJweDsKICAgICBsZWZ0OiA1JTsKICAgICB3aWR0
aDogOTAlOwotICAgIGJvdHRvbTogNDBweDsKKyAgICBib3R0b206IDEycHg7CiAgICAgei1pbmRl
eDogMjAwMDsKIH0KIAogYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1vdXRlciB7Ci0gICAgdG9w
OiAzMnB4OworICAgIHRvcDogMDsKICAgICBsZWZ0OiAwOwogICAgIHdpZHRoOiAxMDAlOwotICAg
IGJvdHRvbTogMjNweDsKKyAgICBib3R0b206IDA7CiB9CiAKIC5oZWxwLXdpbmRvdy1tYWluIHsK
ICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuODUpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YmEoMTcsIDE3LCAxNywgMC44NSk7CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICAgLXdl
YmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgICBib3JkZXItdG9wLXdpZHRoOiAwOwpAQCAt
MjYsMjQgKzI2LDE2IEBAIGJvZHkuY29tcGFjdCAuaGVscC13aW5kb3ctb3V0ZXIgewogCiBib2R5
LmNvbXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRk
aW5nOiAxMHB4OwotfQotCi1ib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LW1haW4gewogICAgIGJv
cmRlci1yYWRpdXM6IDA7Ci0gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMDsKIH0KIAogLmhl
bHAtd2luZG93LWNhcHRpb24gewogICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2IoMTUz
LCAxNTMsIDE1Myk7Ci0gICAgbWFyZ2luOiAwIDE2cHg7CisgICAgbWFyZ2luOiAwIDhweDsKKyAg
ICBwYWRkaW5nOiAwIDJweDsKICAgICBsaW5lLWhlaWdodDogMzZweDsKIH0KIAotYm9keS5jb21w
YWN0IC5oZWxwLXdpbmRvdy1jYXB0aW9uIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KIC5oZWxwLXdp
bmRvdy10aXRsZSB7CiAgICAgZm9udC1zaXplOiAxNnB4OwogICAgIG1hcmdpbjogMDsKQEAgLTU0
LDcgKzQ2LDggQEAgYm9keS5jb21wYWN0IC5oZWxwLXdpbmRvdy1jYXB0aW9uIHsKICAgICBvdmVy
Zmxvdy14OiBoaWRkZW47CiAgICAgc2Nyb2xsYmFyLXdpZHRoOiAxMXB4OwogICAgIC13ZWJraXQt
Ym94LWZsZXg6IDE7Ci0gICAgbWFyZ2luOiAwcHggMTZweCAxNnB4IDE2cHg7CisgICAgbWFyZ2lu
OiA4cHg7CisgICAgcGFkZGluZzogMCA0cHg7CiAgICAgZm9udC1zaXplOiAxM3B4OwogfQogCkBA
IC05NSwxMiArODgsOCBAQCBib2R5LmNvbXBhY3QgLmhlbHAtd2luZG93LWNhcHRpb24gewogICAg
IG1hcmdpbjogMTBweCAwOwogfQogCi1ib2R5LmNvbXBhY3QgLmhlbHAtY2xvc2UtYnV0dG9uIHsK
LSAgICBtYXJnaW46IDA7Ci19Ci0KIGJvZHkuY29tcGFjdCAuaGVscC1jb250ZW50IHsKLSAgICBt
YXJnaW46IDhweCAwIDAgOHB4OworICAgIG1hcmdpbi1ib3R0b206IDhweDsKIH0KIAogLmhlbHAt
Y2xvc2UtYnV0dG9uOmhvdmVyIHsKQEAgLTE4NSwxMyArMTc0LDEyIEBAIGJvZHkucGxhdGZvcm0t
bWFjIC5oZWxwLWtleSB7CiB9CiAKIC5oZWxwLWNvbnRlbnQgcC5oZWxwLXNlY3Rpb24gewotICAg
IG1hcmdpbi1ib3R0b206IDE1cHg7CisgICAgbWFyZ2luOiAwIDAgMTVweCAwOwogfQogCiAuaGVs
cC1zZWN0aW9uLXRpdGxlIHsKICAgICBjb2xvcjogcmdiKDIyMSwgMjIxLCAwKTsKICAgICB0ZXh0
LWFsaWduOiBsZWZ0OwotICAgIHBhZGRpbmctdG9wOiA4cHg7CiB9CiAKIC5zZXR0aW5ncy1leHBl
cmltZW50cy13YXJuaW5nLXN1YnNlY3Rpb24td2FybmluZyB7CkBAIC0yMTcsNyArMjA1LDcgQEAg
Ym9keS5wbGF0Zm9ybS1tYWMgLmhlbHAta2V5IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
NjQsIDY0LCA2NCk7CiAgICAgY29sb3I6IHdoaXRlOwogICAgIGJvcmRlci1jb2xvcjogYmxhY2s7
Ci0gICAgcGFkZGluZzogMHB4IDRweDsKKyAgICBwYWRkaW5nOiAwIDRweDsKIH0KIAogLmhlbHAt
Y29udGVudCBzZWxlY3Q6ZGlzYWJsZWQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggNjEyNTlhM2RmYmVkMjY0OWZkZGMwMTU1
MzI0YTRlMGM0OWI0MGFjYi4uOGQwNDA3ZmM4MGIwODFlZDg2ODQ0NjRjODNlOWRlZDhjMjc0Yjdh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5odG1sCkBAIC0zMyw3ICszMyw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yQ29tbW9uLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVj
dG9yU3ludGF4SGlnaGxpZ2h0LmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iaGVscFNjcmVlbi5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InBvcG92ZXIuY3NzIj4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ1dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRPTUV4dGVuc2lvbi5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CmluZGV4IGVmOTBkNmQyODVmMjg3NDQ0YjkwOTZiMGZhMjExZjMwZDBiNGY1ZGQuLjJlYmM4NzZj
NGYwOWViNzZlZDc4MGM1NTBkZjgzYmJlY2M3N2M3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC03Nyw5ICs3Nyw2IEBAIHZhciBX
ZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgIHRoaXMuX2RvY2tUb2dnbGVCdXR0b24udG9nZ2xlZCA9
ICF0aGlzLmF0dGFjaGVkOwogICAgICAgICBXZWJJbnNwZWN0b3IudXBkYXRlRG9ja1RvZ2dsZUJ1
dHRvbigpOwogCi0gICAgICAgIHRoaXMuX3NldHRpbmdzQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXR0aW5ncyIpLCAic2V0
dGluZ3Mtc3RhdHVzLWJhci1pdGVtIik7Ci0gICAgICAgIHRoaXMuX3NldHRpbmdzQnV0dG9uLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlU2V0dGluZ3MuYmluZCh0aGlzKSwg
ZmFsc2UpOwotCiAgICAgICAgIHZhciBhbmNob3JlZFN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7CiAgICAgICAgIGFuY2hvcmVk
U3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX2RvY2tUb2dnbGVCdXR0b24uZWxlbWVudCk7CiAK
QEAgLTg5LDcgKzg2LDcgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKIAogICAgICAgICBpZiAodGhp
cy5wYW5lbHMuZWxlbWVudHMpCiAgICAgICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRD
aGlsZCh0aGlzLnBhbmVscy5lbGVtZW50cy5ub2RlU2VhcmNoQnV0dG9uLmVsZW1lbnQpOwotICAg
ICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl9zZXR0aW5nc0J1dHRvbi5l
bGVtZW50KTsKKyAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5zZXR0
aW5nc0NvbnRyb2xsZXIuc3RhdHVzQmFySXRlbSk7CiAgICAgfSwKIAogICAgIF9kb2NrQnV0dG9u
VGl0bGU6IGZ1bmN0aW9uKCkKQEAgLTE0NiwzNSArMTQzLDYgQEAgdmFyIFdlYkluc3BlY3RvciA9
IHsKICAgICAgICAgdGhpcy5kcmF3ZXIuc2hvdyh2aWV3LCBXZWJJbnNwZWN0b3IuRHJhd2VyLkFu
aW1hdGlvblR5cGUuSW1tZWRpYXRlbHkpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xlU2V0dGluZ3M6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NldHRpbmdzQnV0dG9uLnRvZ2dsZWQg
PSAhdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZDsKLSAgICAgICAgaWYgKHRoaXMuX3NldHRp
bmdzQnV0dG9uLnRvZ2dsZWQpCi0gICAgICAgICAgICB0aGlzLl9zaG93U2V0dGluZ3NTY3JlZW4o
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5faGlkZVNldHRpbmdzU2NyZWVuKCk7
Ci0gICAgfSwKLQotICAgIF9zaG93U2V0dGluZ3NTY3JlZW46IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIGZ1bmN0aW9uIG9uaGlkZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuX3Nl
dHRpbmdzQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9z
ZXR0aW5nc1NjcmVlbjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NT
Y3JlZW4pIHsKLSAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZXR0aW5nc1NjcmVlbigpOwotICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4u
c2hvdyhvbmhpZGUuYmluZCh0aGlzKSk7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX2hpZGVT
ZXR0aW5nc1NjcmVlbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3NldHRp
bmdzU2NyZWVuKQotICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uaGlkZSgpOwotICAg
IH0sCi0KICAgICBnZXQgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2F0
dGFjaGVkOwpAQCAtNDM1LDYgKzQwMyw3IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0
aENhcGFiaWxpdGllcyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuc2VhcmNoQ29udHJvbGxlciA9
IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlcigpOwogICAgIHRoaXMuYWR2YW5jZWRT
ZWFyY2hDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xs
ZXIoKTsKKyAgICB0aGlzLnNldHRpbmdzQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0
dGluZ3NDb250cm9sbGVyKCk7CiAKICAgICBpZiAoQ2FwYWJpbGl0aWVzLm5hdGl2ZUluc3RydW1l
bnRhdGlvbkVuYWJsZWQpCiAgICAgICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9
IG5ldyBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwpAQCAtNzA3LDcg
KzY3Niw3IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudEtleURvd24gPSBmdW5jdGlvbihldmVudCkK
IAogICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRjEiIHx8CiAgICAgICAgIChldmVu
dC5rZXlJZGVudGlmaWVyID09PSBoZWxwS2V5ICYmIGV2ZW50LnNoaWZ0S2V5ICYmICghV2ViSW5z
cGVjdG9yLmlzQmVpbmdFZGl0ZWQoZXZlbnQudGFyZ2V0KSB8fCBldmVudC5tZXRhS2V5KSkpIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zaG93KCk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zaG9ydGN1dHNTY3JlZW4uc2hvd01vZGFsKCk7CiAgICAgICAgIGV2ZW50LmNv
bnN1bWUodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>