<?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>108947</bug_id>
          
          <creation_ts>2013-02-05 08:06:58 -0800</creation_ts>
          <short_desc>Web Inspector: show whitespace characters in DTE</short_desc>
          <delta_ts>2013-02-09 01:59:52 -0800</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>1</everconfirmed>
          <reporter name="Andrey Lushnikov">lushnikov</reporter>
          <assigned_to name="Andrey Lushnikov">lushnikov</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825496</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-05 08:06:58 -0800</bug_when>
    <thetext>Make an option to show whitespace characters in DefaultTextEditor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825506</commentid>
    <comment_count>1</comment_count>
      <attachid>186632</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-05 08:44:52 -0800</bug_when>
    <thetext>Created attachment 186632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825546</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-05 09:25:27 -0800</bug_when>
    <thetext>Isn&apos;t it getting too heavy having everything in one file?
Do we want to extract a &quot;core editor&quot;?
Will this new functionality automatically work in other editor impls (code mirror)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825549</commentid>
    <comment_count>3</comment_count>
      <attachid>186632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 09:28:22 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

Attachment 186632 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16379671

New failing tests:
inspector/editor/text-editor-show-whitespaces.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825554</commentid>
    <comment_count>4</comment_count>
      <attachid>186632</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-05 09:31:41 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

Attachment 186632 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16369823

New failing tests:
inspector/editor/text-editor-show-whitespaces.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825580</commentid>
    <comment_count>5</comment_count>
      <attachid>186632</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-05 10:04:04 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

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

&gt; Source/WebCore/English.lproj/localizedStrings.js:393
&gt; +localizedStrings[&quot;Show whitespaces&quot;] = &quot;Show whitespaces&quot;;

Show whitespace

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1411
&gt; +        if (!visibleTo) {

no {} around single line block

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2022
&gt; +            var cssClass = ranges[i].token ? &quot;webkit-&quot; + ranges[i].token : &quot;&quot;;

Will this work for tab character? Note that it can be of different size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825586</commentid>
    <comment_count>6</comment_count>
      <attachid>186632</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-05 10:16:30 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

Attachment 186632 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16366882

New failing tests:
inspector/editor/text-editor-show-whitespaces.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825686</commentid>
    <comment_count>7</comment_count>
      <attachid>186632</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-05 12:02:24 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

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

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1395
&gt; +WebInspector.TextEditorMainPanel._ConsequtiveSpaces = {

_Consecutive...

&gt;&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2022
&gt;&gt; +            var cssClass = ranges[i].token ? &quot;webkit-&quot; + ranges[i].token : &quot;&quot;;
&gt; 
&gt; Will this work for tab character? Note that it can be of different size.

Tabs are also typically rendered differently (usually using the RIGHT ARROW character, perhaps &amp;#2192;)

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2027
&gt; +                for(var whiteSpaceLength = 16; whiteSpaceLength &gt; 0; whiteSpaceLength &gt;&gt;= 1)

missing whitespace after &quot;for&quot;

&gt; Source/WebCore/inspector/front-end/Settings.js:113
&gt; +    this.showWhitespacesInEditor = this.createSetting(&quot;showWhitespacesInEditor&quot;, false);

showWhitespaceInEditor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826241</commentid>
    <comment_count>8</comment_count>
      <attachid>186632</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-06 02:05:24 -0800</bug_when>
    <thetext>Comment on attachment 186632
Patch

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

&gt;&gt; Source/WebCore/English.lproj/localizedStrings.js:393
&gt;&gt; +localizedStrings[&quot;Show whitespaces&quot;] = &quot;Show whitespaces&quot;;
&gt; 
&gt; Show whitespace

fixed everywhere

&gt;&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1395
&gt;&gt; +WebInspector.TextEditorMainPanel._ConsequtiveSpaces = {
&gt; 
&gt; _Consecutive...

renamed into _ConsecutiveWhitespaceChars

&gt;&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1411
&gt;&gt; +        if (!visibleTo) {
&gt; 
&gt; no {} around single line block

fixed

&gt;&gt;&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2022
&gt;&gt;&gt; +            var cssClass = ranges[i].token ? &quot;webkit-&quot; + ranges[i].token : &quot;&quot;;
&gt;&gt; 
&gt;&gt; Will this work for tab character? Note that it can be of different size.
&gt; 
&gt; Tabs are also typically rendered differently (usually using the RIGHT ARROW character, perhaps &amp;#2192;)

no, this won&apos;t work for tab chars. Tabs have to be separated into a separate token &quot;tabs&quot; by lexer, which explicitly mean changes in re2js grammar. I believe this change is massive enough to worth a separate patch.

&gt;&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2027
&gt;&gt; +                for(var whiteSpaceLength = 16; whiteSpaceLength &gt; 0; whiteSpaceLength &gt;&gt;= 1)
&gt; 
&gt; missing whitespace after &quot;for&quot;

fixed

&gt;&gt; Source/WebCore/inspector/front-end/Settings.js:113
&gt;&gt; +    this.showWhitespacesInEditor = this.createSetting(&quot;showWhitespacesInEditor&quot;, false);
&gt; 
&gt; showWhitespaceInEditor

fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826243</commentid>
    <comment_count>9</comment_count>
      <attachid>186797</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-06 02:09:54 -0800</bug_when>
    <thetext>Created attachment 186797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826285</commentid>
    <comment_count>10</comment_count>
      <attachid>186797</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 03:13:10 -0800</bug_when>
    <thetext>Comment on attachment 186797
Patch

Attachment 186797 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16392170

New failing tests:
inspector/editor/text-editor-show-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826311</commentid>
    <comment_count>11</comment_count>
      <attachid>186797</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-06 04:05:29 -0800</bug_when>
    <thetext>Comment on attachment 186797
Patch

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

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2022
&gt; +            var cssClass = ranges[i].token ? &quot;webkit-&quot; + ranges[i].token : &quot;&quot;;

You should probably extract a method: as is, it has more logic than the rest of range rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826333</commentid>
    <comment_count>12</comment_count>
      <attachid>186825</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-06 04:32:04 -0800</bug_when>
    <thetext>Created attachment 186825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826411</commentid>
    <comment_count>13</comment_count>
      <attachid>186825</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 06:46:51 -0800</bug_when>
    <thetext>Comment on attachment 186825
Patch

Rejecting attachment 186825 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 186825, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
fuzz 2 (offset -1 lines).
patching file Source/WebCore/inspector/front-end/inspectorSyntaxHighlight.css
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/inspector/editor/text-editor-show-whitespace-expected.txt
patching file LayoutTests/inspector/editor/text-editor-show-whitespace.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Pavel Feldman&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16390296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826447</commentid>
    <comment_count>14</comment_count>
      <attachid>186855</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-06 07:48:46 -0800</bug_when>
    <thetext>Created attachment 186855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826532</commentid>
    <comment_count>15</comment_count>
      <attachid>186855</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 10:30:58 -0800</bug_when>
    <thetext>Comment on attachment 186855
Patch

Attachment 186855 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16401204

New failing tests:
inspector/editor/text-editor-show-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826579</commentid>
    <comment_count>16</comment_count>
      <attachid>186855</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 11:18:23 -0800</bug_when>
    <thetext>Comment on attachment 186855
Patch

Attachment 186855 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16400215

New failing tests:
inspector/editor/text-editor-show-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826997</commentid>
    <comment_count>17</comment_count>
      <attachid>186855</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 19:02:39 -0800</bug_when>
    <thetext>Comment on attachment 186855
Patch

Attachment 186855 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16405014

New failing tests:
inspector/editor/text-editor-show-whitespace.html
fast/js/array-sort-modifying-tostring.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827288</commentid>
    <comment_count>18</comment_count>
      <attachid>187054</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-07 04:07:38 -0800</bug_when>
    <thetext>Created attachment 187054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827356</commentid>
    <comment_count>19</comment_count>
      <attachid>187054</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-07 05:29:37 -0800</bug_when>
    <thetext>Comment on attachment 187054
Patch

Attachment 187054 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16445139

New failing tests:
http/tests/cache/cached-main-resource.html
inspector/editor/text-editor-show-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827431</commentid>
    <comment_count>20</comment_count>
      <attachid>187054</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-07 06:28:45 -0800</bug_when>
    <thetext>Comment on attachment 187054
Patch

Attachment 187054 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16443141

New failing tests:
inspector/editor/text-editor-show-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827471</commentid>
    <comment_count>21</comment_count>
      <attachid>187100</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-02-07 07:06:02 -0800</bug_when>
    <thetext>Created attachment 187100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828989</commentid>
    <comment_count>22</comment_count>
      <attachid>187100</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 01:59:47 -0800</bug_when>
    <thetext>Comment on attachment 187100
Patch

Clearing flags on attachment: 187100

Committed r142351: &lt;http://trac.webkit.org/changeset/142351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828990</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 01:59:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186632</attachid>
            <date>2013-02-05 08:44:52 -0800</date>
            <delta_ts>2013-02-06 02:09:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130205204129.patch</filename>
            <type>text/plain</type>
            <size>17742</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU3YmQ4YmNiMDA5NTgy
ODM4ZjMzZDRlZDdmMTJmNTQ0MjRkYmQ1Ny4uZDc5MjY4YTdhYThhNTBlYzFjNzAyZDAyMjU3ZDNh
ODVkMDBjMzgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTA1ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlcXV0aXZlIHdoaXRlc3BhY2VzIGludG8gZ3JvdXBzIG9mIDE2LCA4LCA0LCAyIGFuZCAxIHNw
YWNlcworICAgICAgICBhbmQgYWRkIDo6YmVmb3JlIHBzZXVkb2NsYXNzIGZvciB0aGlzIGdyb3Vw
cyB3aGljaCBjb250YWlucyBuZWNlc3NhcnkKKyAgICAgICAgYW1vdW50IG9mICJkb3RzIiAodSsw
MGI3KS4gQWRkIGEgc2V0dGluZyAiU2hvdyB3aGl0ZXNwYWNlcyIgZm9yIHRoaXMKKyAgICAgICAg
b3B0aW9uIGluICJTb3VyY2VzIiBzZWN0aW9uIG9mICJHZW5lcmFsIiB0YWIuCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5faGFuZGxlU2hvd1doaXRlc3BhY2VzSW5FZGl0
b3JDaGFuZ2UuZ2V0IHZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUuX2hhbmRsZVNob3dXaGl0ZXNwYWNlc0luRWRpdG9yQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS53YXNTaG93
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUu
d2lsbEhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlLl9yZW5kZXJSYW5nZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlLl9wYWludExpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNz
czoKKyAgICAgICAgKC53ZWJraXQtd2hpdGVzcGFjZXMtMTo6YmVmb3JlKToKKyAgICAgICAgKC53
ZWJraXQtd2hpdGVzcGFjZXMtMjo6YmVmb3JlKToKKyAgICAgICAgKC53ZWJraXQtd2hpdGVzcGFj
ZXMtNDo6YmVmb3JlKToKKyAgICAgICAgKC53ZWJraXQtd2hpdGVzcGFjZXMtODo6YmVmb3JlKToK
KyAgICAgICAgKC53ZWJraXQtd2hpdGVzcGFjZXMtMTY6OmJlZm9yZSk6CisgICAgICAgICgud2Vi
a2l0LXdoaXRlc3BhY2VzOjpiZWZvcmUpOgorCiAyMDEzLTAyLTA1ICBIYWppbWUgTW9ycml0YSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIExpbnV4IEFTQU4gYnVp
bGQgZml4IGZvciByMTQxNzgzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGRhMWZkNGZmYTY3MzJlNGNlNWEzZmIxYmFkZWY3NTI2
YzdlZmQ4OGIuLmRiNGI3NDhmZWE5Yzc5YmJkYzc5ODI4M2FjYjlhYTk3NjUwYTU3NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAg
LTM5MCw2ICszOTAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHJ1bGVycyJdID0gIlNob3cg
cnVsZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgU2hhZG93IERPTSJdID0gIlNob3cgU2hh
ZG93IERPTSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiJd
ID0gIlNob3cgdGltZXMgYXMgcGVyY2VudGFnZXMuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cg
dG90YWwgYW5kIHNlbGYgdGltZXMgYXMgcGVyY2VudGFnZXMuIl0gPSAiU2hvdyB0b3RhbCBhbmQg
c2VsZiB0aW1lcyBhcyBwZXJjZW50YWdlcy4iOworbG9jYWxpemVkU3RyaW5nc1siU2hvdyB3aGl0
ZXNwYWNlcyJdID0gIlNob3cgd2hpdGVzcGFjZXMiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSJd
ID0gIlNpemUiOwogbG9jYWxpemVkU3RyaW5nc1siU25hcHNob3QgJWQiXSA9ICJTbmFwc2hvdCAl
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmQgVGltZSJdID0gIkVuZCBUaW1lIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3Iu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9y
LmpzCmluZGV4IDMwYTMzNjQyMzFkODAzYjM4NDJmZDhhMDdiZTNiYjc3OGFmNWQxMDQuLjc1NWNk
ZmFlNTE2ZjFiMjE4OTQwMDAwYjYzNWFlNGQwZDVkZmU1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpAQCAt
MTM3OSw2ICsxMzc5LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5j
dGlvbihkZWxlZ2F0ZSwgdGV4dE1vZGVsLCB1cmwsIHN5bmNTY3JvbGwKICAgICB0aGlzLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigidGV4dElucHV0IiwgdGhpcy5faGFuZGxlVGV4dElucHV0LmJp
bmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY3V0
IiwgdGhpcy5faGFuZGxlQ3V0LmJpbmQodGhpcyksIGZhbHNlKTsKIAorICAgIHRoaXMuX3Nob3dX
aGl0ZXNwYWNlcyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZXNJbkVkaXRv
ci5nZXQoKTsKKyAgICB0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZXNJbkVkaXRvckNoYW5nZSA9
IHRoaXMuX2hhbmRsZVNob3dXaGl0ZXNwYWNlc0luRWRpdG9yQ2hhbmdlLmJpbmQodGhpcyk7CisK
ICAgICB0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9oYW5k
bGVGb2N1c2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRoaXMuX2hpZ2hsaWdodERlc2Ny
aXB0b3JzID0gW107CkBAIC0xMzg5LDcgKzEzOTIsMzAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4dE1vZGVsLCB1cmwsIHN5bmNTY3Jv
bGwKICAgICB0aGlzLmJ1aWxkQ2h1bmtzKCk7CiB9CiAKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TWFpblBhbmVsLl9Db25zZXF1dGl2ZVNwYWNlcyA9IHsKKyAgICAxOiAiICIsCisgICAgMjogIiAg
IiwKKyAgICA0OiAiICAgICIsCisgICAgODogIiAgICAgICAgIiwKKyAgICAxNjogIiAgICAgICAg
ICAgICAgICAiCit9OworCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5
cGUgPSB7CisKKyAgICBfaGFuZGxlU2hvd1doaXRlc3BhY2VzSW5FZGl0b3JDaGFuZ2U6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dXaGl0ZXNwYWNlcyA9IFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZXNJbkVkaXRvci5nZXQoKTsKKyAgICAgICAgdmFyIHZp
c2libGVGcm9tID0gdGhpcy5zY3JvbGxUb3AoKTsKKyAgICAgICAgdmFyIHZpc2libGVUbyA9IHZp
c2libGVGcm9tICsgdGhpcy5jbGllbnRIZWlnaHQoKTsKKworICAgICAgICBpZiAoIXZpc2libGVU
bykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQg
PSB0aGlzLmZpbmRWaXNpYmxlQ2h1bmtzKHZpc2libGVGcm9tLCB2aXNpYmxlVG8pOworICAgICAg
ICB2YXIgc3RhcnRMaW5lID0gdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuc3RhcnRdLnN0YXJ0TGlu
ZTsKKyAgICAgICAgdmFyIGVuZExpbmUgPSB0aGlzLl90ZXh0Q2h1bmtzW3Jlc3VsdC5lbmQgLSAx
XS5zdGFydExpbmUgKyB0aGlzLl90ZXh0Q2h1bmtzW3Jlc3VsdC5lbmQgLSAxXS5saW5lc0NvdW50
OworICAgICAgICB0aGlzLl9wYWludExpbmVzKHN0YXJ0TGluZSwgZW5kTGluZSArIDEpOworICAg
IH0sCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHJlZ2V4CiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IGNzc0NsYXNzCkBAIC0xNDY1LDYgKzE0OTEsOCBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlc0lu
RWRpdG9yLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX2hhbmRsZVNob3dXaGl0ZXNwYWNlc0luRWRp
dG9yQ2hhbmdlKTsKKwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVy
ID0gdGhpcy5faGFuZGxlU2VsZWN0aW9uQ2hhbmdlLmJpbmQodGhpcyk7CiAgICAgICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsIHRoaXMuX2JvdW5kU2VsZWN0
aW9uQ2hhbmdlTGlzdGVuZXIsIGZhbHNlKTsKIApAQCAtMTQ3NCw2ICsxNTAyLDggQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgd2lsbEhpZGU6
IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hp
dGVzcGFjZXNJbkVkaXRvci5yZW1vdmVDaGFuZ2VMaXN0ZW5lcih0aGlzLl9oYW5kbGVTaG93V2hp
dGVzcGFjZXNJbkVkaXRvckNoYW5nZSk7CisKICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0
ZW5lciwgZmFsc2UpOwogICAgICAgICBkZWxldGUgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VM
aXN0ZW5lcjsKIApAQCAtMTk2MSw4ICsxOTkxLDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbGluZVJvdwog
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsaW5lCiAgICAgICogQHBhcmFtIHtBcnJheS48e3N0YXJ0
Q29sdW1uOiBudW1iZXIsIGVuZENvbHVtbjogbnVtYmVyLCB0b2tlbjogP3N0cmluZ30+fSByYW5n
ZXMKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBzcGxpdFdoaXRlc3BhY2VTZXF1ZW5jZXMKICAg
ICAgKi8KLSAgICBfcmVuZGVyUmFuZ2VzOiBmdW5jdGlvbihsaW5lUm93LCBsaW5lLCByYW5nZXMp
CisgICAgX3JlbmRlclJhbmdlczogZnVuY3Rpb24obGluZVJvdywgbGluZSwgcmFuZ2VzLCBzcGxp
dFdoaXRlc3BhY2VTZXF1ZW5jZXMpCiAgICAgewogICAgICAgICB2YXIgZGVjb3JhdGlvbnNFbGVt
ZW50ID0gbGluZVJvdy5kZWNvcmF0aW9uc0VsZW1lbnQ7CiAKQEAgLTE5ODQsMTIgKzIwMTUsMjAg
QEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICBmb3IodmFyIGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICB2
YXIgcmFuZ2VTdGFydCA9IHJhbmdlc1tpXS5zdGFydENvbHVtbjsKICAgICAgICAgICAgIHZhciBy
YW5nZUVuZCA9IHJhbmdlc1tpXS5lbmRDb2x1bW47Ci0gICAgICAgICAgICB2YXIgY3NzQ2xhc3Mg
PSByYW5nZXNbaV0udG9rZW4gPyAid2Via2l0LSIgKyByYW5nZXNbaV0udG9rZW4gOiAiIjsKIAog
ICAgICAgICAgICAgaWYgKHBsYWluVGV4dFN0YXJ0IDwgcmFuZ2VTdGFydCkgewogICAgICAgICAg
ICAgICAgIHRoaXMuX2luc2VydFRleHROb2RlQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxl
bWVudCwgbGluZS5zdWJzdHJpbmcocGxhaW5UZXh0U3RhcnQsIHJhbmdlU3RhcnQpKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2luc2VydFNwYW5CZWZvcmUobGluZVJvdywgZGVj
b3JhdGlvbnNFbGVtZW50LCBsaW5lLnN1YnN0cmluZyhyYW5nZVN0YXJ0LCByYW5nZUVuZCArIDEp
LCBjc3NDbGFzcyk7CisgICAgICAgICAgICB2YXIgY3NzQ2xhc3MgPSByYW5nZXNbaV0udG9rZW4g
PyAid2Via2l0LSIgKyByYW5nZXNbaV0udG9rZW4gOiAiIjsKKworICAgICAgICAgICAgaWYgKHNw
bGl0V2hpdGVzcGFjZVNlcXVlbmNlcyAmJiByYW5nZXNbaV0udG9rZW4gPT09ICJ3aGl0ZXNwYWNl
cyIpIHsKKyAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gcmFuZ2VFbmQgLSByYW5nZVN0YXJ0
ICsgMTsKKyAgICAgICAgICAgICAgICBjc3NDbGFzcyArPSAiIHdlYmtpdC13aGl0ZXNwYWNlcy0i
OworICAgICAgICAgICAgICAgIGZvcih2YXIgd2hpdGVTcGFjZUxlbmd0aCA9IDE2OyB3aGl0ZVNw
YWNlTGVuZ3RoID4gMDsgd2hpdGVTcGFjZUxlbmd0aCA+Pj0gMSkKKyAgICAgICAgICAgICAgICAg
ICAgZm9yICg7IGxlbmd0aCA+PSB3aGl0ZVNwYWNlTGVuZ3RoOyBsZW5ndGggLT0gd2hpdGVTcGFj
ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydFNwYW5CZWZvcmUo
bGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5fQ29uc2VxdXRpdmVTcGFjZXNbd2hpdGVTcGFjZUxlbmd0aF0sIGNzc0NsYXNzICsgd2hp
dGVTcGFjZUxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0aGlz
Ll9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxlbWVudCwgbGluZS5zdWJz
dHJpbmcocmFuZ2VTdGFydCwgcmFuZ2VFbmQgKyAxKSwgY3NzQ2xhc3MpOwogICAgICAgICAgICAg
cGxhaW5UZXh0U3RhcnQgPSByYW5nZUVuZCArIDE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHBs
YWluVGV4dFN0YXJ0IDwgbGluZS5sZW5ndGgpIHsKQEAgLTIwMTMsNyArMjA1Miw3IEBAIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAg
dmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgICAg
IHZhciByYW5nZXMgPSBzeW50YXhIaWdobGlnaHQucmFuZ2VzOwotICAgICAgICAgICAgdGhpcy5f
cmVuZGVyUmFuZ2VzKGxpbmVSb3csIGxpbmUsIHJhbmdlcyk7CisgICAgICAgICAgICB0aGlzLl9y
ZW5kZXJSYW5nZXMobGluZVJvdywgbGluZSwgcmFuZ2VzLCB0aGlzLl9zaG93V2hpdGVzcGFjZXMp
OwogCiAgICAgICAgICAgICBpZiAob3ZlcmxheUhpZ2hsaWdodCkKICAgICAgICAgICAgICAgICBm
b3IodmFyIGkgPSAwOyBpIDwgb3ZlcmxheUhpZ2hsaWdodC5sZW5ndGg7ICsraSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGNlYmQ5OWFl
NTEyZTBlOTE2YTFjMGNlNjc2ODY1OWFhYTlkZTg0MTkuLjM1NWUwNjIwODI5Njg3YjVhMzQ0Zjdh
MzRlYmRmMTFlYWMzMzlhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTEwLDYgKzExMCw3IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5n
cyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmRldmljZU9yaWVudGF0aW9uT3ZlcnJpZGUgPSB0aGlz
LmNyZWF0ZVNldHRpbmcoImRldmljZU9yaWVudGF0aW9uT3ZlcnJpZGUiLCAiIik7CiAgICAgdGhp
cy5zaG93SGVhcFNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRpZXMgPSB0aGlzLmNyZWF0ZVNl
dHRpbmcoInNob3dIZWFTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9wZXJ0aWVzIiwgZmFsc2UpOwog
ICAgIHRoaXMuc2hvd05hdGl2ZVNuYXBzaG90VW5pbnN0cnVtZW50ZWRTaXplID0gdGhpcy5jcmVh
dGVTZXR0aW5nKCJzaG93TmF0aXZlU25hcHNob3RVbmluc3RydW1lbnRlZFNpemUiLCBmYWxzZSk7
CisgICAgdGhpcy5zaG93V2hpdGVzcGFjZXNJbkVkaXRvciA9IHRoaXMuY3JlYXRlU2V0dGluZygi
c2hvd1doaXRlc3BhY2VzSW5FZGl0b3IiLCBmYWxzZSk7CiAgICAgdGhpcy5zZWFyY2hJbkNvbnRl
bnRTY3JpcHRzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzZWFyY2hJbkNvbnRlbnRTY3JpcHRzIiwg
ZmFsc2UpOwogICAgIHRoaXMudGV4dEVkaXRvckluZGVudCA9IHRoaXMuY3JlYXRlU2V0dGluZygi
dGV4dEVkaXRvckluZGVudCIsICIgICAgIik7CiAgICAgdGhpcy5sYXN0RG9ja1N0YXRlID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJsYXN0RG9ja1N0YXRlIiwgIiIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKaW5kZXggYzgzNDJm
Y2IwMmZjNGMzMzk1NGVkMDc4ZTY1ZjA5YjU3NTM3ZTJmYS4uZjg4NzM3YzJlNThiZWMxNjhjMmY2
MWEwNDY0ODgzODc3ODMxZDMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC0zMDQsNiArMzA0LDcgQEAgV2ViSW5z
cGVjdG9yLkdlbmVyaWNTZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKICAgICBwID0gdGhpcy5fYXBw
ZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJjZXMiKSk7CiAgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTaG93IGZvbGRlcnMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dTY3JpcHRGb2xkZXJz
KSk7CiAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIiksIFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5zZWFyY2hJbkNvbnRlbnRTY3JpcHRzKSk7CisgICAgcC5hcHBlbmRDaGlsZCh0
aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHdo
aXRlc3BhY2VzIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZXNJbkVkaXRv
cikpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIHNvdXJjZSBtYXBzIiksIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5zb3VyY2VNYXBzRW5hYmxlZCkpOwogICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVu
dHNTZXR0aW5ncy5pc0VuYWJsZWQoInNhc3MiKSkKICAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlz
Ll9jcmVhdGVDU1NBdXRvUmVsb2FkQ29udHJvbHMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdo
dC5jc3MKaW5kZXggODE4OTdkOGQ0M2QxZWU3M2ZhMTdmZGM0NWQyZDE4ODUzNjcwOGI4NC4uOTli
ZTQ1Yjc5NDc1MDk1MzdjYTNkNTg1NzM0OTc2MTU3NjE3NjdhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4
SGlnaGxpZ2h0LmNzcwpAQCAtNzAsNiArNzAsMzEgQEAKICAgICBjb2xvcjogYmxhY2s7CiB9CiAK
Ky53ZWJraXQtd2hpdGVzcGFjZXMtMTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrciOworfQor
Cisud2Via2l0LXdoaXRlc3BhY2VzLTI6OmJlZm9yZSB7CisgICAgY29udGVudDogIsK3wrciOwor
fQorCisud2Via2l0LXdoaXRlc3BhY2VzLTQ6OmJlZm9yZSB7CisgICAgY29udGVudDogIsK3wrfC
t8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlcy04OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6
ICLCt8K3wrfCt8K3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlcy0xNjo6YmVmb3Jl
IHsKKyAgICBjb250ZW50OiAiwrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrciOworfQor
Cisud2Via2l0LXdoaXRlc3BhY2VzOjpiZWZvcmUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICBjb2xvcjogcmdiKDE3NSwgMTc1LCAxNzUpOworfQorCiAud2Via2l0LWh0bWwtY29tbWVu
dCB7CiAgICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53ZWJr
aXQtaHRtbC1jb21tZW50KSAqLwogICAgIGNvbG9yOiByZ2IoMzUsIDExMCwgMzcpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGFiNGVkZjhiOWFkNTg2MDhkYWQ4NWQ5YjI3OWI2ZGNiYTY3YTAyYjYuLjk5OTZhOGYwOTA5N2Q3
MDkwMDA2MWY4N2Y0NzI0OTljMjlmZDkyZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0w
Mi0wNSAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3Rvcjogc2hvdyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gRFRFCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5NDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRl
c3QgdG8gdmVyaWZ5IHdoaXRlc3BhY2UgaGlnaGxpZ2h0IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNo
b3ctd2hpdGVzcGFjZXMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMDUgIFRvbW15IFdpZGVuZmx5
Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRh
dGUgUlRDUGVlckNvbm5lY3Rpb25zIHN0cmVhbSBhY2Nlc3NvcnMgdG8gbWF0Y2ggdGhlIGxhdGVz
dCBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9y
L3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2VzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NTE0NmIyZjM1Y2NjYTAxYWI0NDA5MDU4N2Y1YzM1ZjQ2ZDc1M2I1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1zaG93LXdoaXRlc3BhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUaGlzIHRl
c3QgY2hlY2tzIGhvdyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8g
aGlnaGxpZ2h0IHRoZW0gaWYgdGhlIGFwcHJvcHJpYXRlIHNldHRpbmcgaXMgc2V0IHVwLgorCitB
Y3R1YWwgdGV4dDoKK2Z1bmN0aW9uIGZvbyhhLCBiKQoreworICAgIC8vIHNwYWNlcyBpbiBjb21t
ZW50CisgICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOworICAgIGEgPSAyOyAgICAgICAgICAg
ICAgIGEgPSAzOworfQorPT09PT09PT09PSBFZGl0b3IgSFRNTCBzaG93V2hpdGVzcGFjZUluRWRp
dG9yIE9GRiA9PT09PT09PT09CisKKzxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciIgdGFiaW5k
ZXg9IjAiPgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9Indl
YmtpdC1qYXZhc2NyaXB0LWtleXdvcmQiPmZ1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZXMiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlk
ZW50Ij5mb288L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1icmFjZS1zdGFydCI+KDwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+LDxzcGFuIGNsYXNz
PSJ3ZWJraXQtd2hpdGVzcGFjZXMiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2Ny
aXB0LWlkZW50Ij5iPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2UtZW5kIj4pPC9zcGFu
PjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9Indl
YmtpdC1ibG9jay1zdGFydCI+ezwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZXMiPiAgICA8L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8vIHNwYWNlcyBpbiBjb21tZW50
PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlcyI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWph
dmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyI+
IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyI+IDwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LWphdmFzY3JpcHQtc3RyaW5nIj4ic3RyaW5nIHdpdGggc3BhY2VzIjwvc3Bh
bj47PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0i
d2Via2l0LXdoaXRlc3BhY2VzIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNj
cmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2VzIj4gPC9z
cGFuPj08c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2VzIj4gPC9zcGFuPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIiPjI8L3NwYW4+OzxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZXMiPiAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWph
dmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyI+
IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyI+IDwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LWphdmFzY3JpcHQtbnVtYmVyIj4zPC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xh
c3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxvY2stZW5kIj59
PC9zcGFuPjwvZGl2PjwvZGl2PgorPT09PT09PT09PSBFZGl0b3IgSFRNTCBhZnRlciBzZXR0aW5n
IHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT04gPT09PT09PT09PQorCis8ZGl2IGNsYXNzPSJpbm5l
ci1jb250YWluZXIiIHRhYmluZGV4PSIwIj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIj5mdW5jdGlvbjwvc3Bh
bj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2VzIHdlYmtpdC13aGl0ZXNwYWNlcy0xIj4g
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Zm9vPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2Utc3RhcnQiPig8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtp
dC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPiw8c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3Bh
Y2VzIHdlYmtpdC13aGl0ZXNwYWNlcy0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2
YXNjcmlwdC1pZGVudCI+Yjwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLWVuZCI+KTwv
c3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtYmxvY2stc3RhcnQiPns8L3NwYW4+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2VzIHdlYmtpdC13aGl0
ZXNwYWNlcy00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1jb21t
ZW50Ij4vLyBzcGFjZXMgaW4gY29tbWVudDwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZXMgd2Via2l0LXdo
aXRlc3BhY2VzLTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlk
ZW50Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZXMgd2Via2l0LXdoaXRl
c3BhY2VzLTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZXMgd2Via2l0
LXdoaXRlc3BhY2VzLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LXN0
cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3NwYW4+OzwvZGl2PgorPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyB3ZWJraXQt
d2hpdGVzcGFjZXMtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQt
aWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyB3ZWJraXQtd2hp
dGVzcGFjZXMtMSI+IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlcyB3ZWJr
aXQtd2hpdGVzcGFjZXMtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQt
bnVtYmVyIj4yPC9zcGFuPjs8c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2VzIHdlYmtpdC13
aGl0ZXNwYWNlcy04Ij4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3Bh
Y2VzIHdlYmtpdC13aGl0ZXNwYWNlcy00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZXMgd2Via2l0LXdoaXRlc3BhY2VzLTIiPiAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtd2hpdGVzcGFjZXMgd2Via2l0LXdoaXRlc3BhY2VzLTEiPiA8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZXMgd2Via2l0LXdoaXRlc3BhY2VzLTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3
ZWJraXQtd2hpdGVzcGFjZXMgd2Via2l0LXdoaXRlc3BhY2VzLTEiPiA8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC1qYXZhc2NyaXB0LW51bWJlciI+Mzwvc3Bhbj47PC9kaXY+Cis8ZGl2IGNsYXNz
PSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWJsb2NrLWVuZCI+fTwv
c3Bhbj48L2Rpdj48L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vk
aXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zOTkxZDhkNzVkYTlmZDMwMWVjZjkyY2Y4MWQ5MjM4MTZhZTQ0YjBjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRl
c3BhY2VzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworZnVuY3Rpb24gZm9vKGEsIGIpCit7CisgICAgLy8gc3BhY2VzIGluIGNv
bW1lbnQKKyAgICBhID0gInN0cmluZyB3aXRoIHNwYWNlcyI7CisgICAgYSA9IDI7ICAgICAgICAg
ICAgICAgYSA9IDM7Cit9CisKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3Bh
Y2VzSW5FZGl0b3Iuc2V0KGZhbHNlKTsKKyAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRl
c3QuY3JlYXRlVGVzdEVkaXRvcigpOworICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9ydEZv
clRlc3QoMCwgdW5kZWZpbmVkLCAzKTsKKyAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQv
amF2YXNjcmlwdCI7CisgICAgdGV4dEVkaXRvci5zZXRUZXh0KGZvby50b1N0cmluZygpKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWN0dWFsIHRleHQ6Iik7CisgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci50ZXh0KCkpOworICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCI9PT09PT09PT09IEVkaXRvciBIVE1MIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT0ZG
ID09PT09PT09PT0iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0
b3IsIHRydWUpOworICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZXNJbkVk
aXRvci5zZXQodHJ1ZSk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT0g
RWRpdG9yIEhUTUwgYWZ0ZXIgc2V0dGluZyBzaG93V2hpdGVzcGFjZUluRWRpdG9yIE9OID09PT09
PT09PT0iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0b3IsIHRy
dWUpOworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cit9CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPHA+CitUaGlzIHRlc3QgY2hl
Y2tzIGhvdyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxp
Z2h0IHRoZW0gaWYgdGhlIGFwcHJvcHJpYXRlCitzZXR0aW5nIGlzIHNldCB1cC4KKzwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186797</attachid>
            <date>2013-02-06 02:09:54 -0800</date>
            <delta_ts>2013-02-06 04:32:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130206140631.patch</filename>
            <type>text/plain</type>
            <size>17632</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBmOThlNzExNmE3ZjQ4
OTg1ZjlmZjhhZjMzM2Q1NjlhMjg3NTUyNS4uYTkzZmY0MTkyZTk1Yzc3MzkwZGFlMTdiOGNkM2I1
NTVkZmJmMGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTAyLTA2ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbnRvIGdyb3VwcyBvZiAxNiwgOCwgNCwg
MiBhbmQKKyAgICAgICAgMSBjaGFyYWN0ZXJzIGFuZCBhZGQgOjpiZWZvcmUgcHNldWRvY2xhc3Mg
Zm9yIHRoaXMgZ3JvdXBzIHdoaWNoIGNvbnRhaW5zIG5lY2Vzc2FyeQorICAgICAgICBhbW91bnQg
b2YgImRvdHMiICh1KzAwYjcpLiBBZGQgYSBzZXR0aW5nICJTaG93IHdoaXRlc3BhY2UiIGZvciB0
aGlzCisgICAgICAgIG9wdGlvbiBpbiAiU291cmNlcyIgc2VjdGlvbiBvZiAiR2VuZXJhbCIgdGFi
LgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndpbGxIaWRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5f
cmVuZGVyUmFuZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZS5fcGFpbnRMaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4u
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuR2VuZXJpY1NldHRpbmdzVGFiKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3M6CisgICAg
ICAgICgud2Via2l0LXdoaXRlc3BhY2UtMTo6YmVmb3JlKToKKyAgICAgICAgKC53ZWJraXQtd2hp
dGVzcGFjZS0yOjpiZWZvcmUpOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNwYWNlLTQ6OmJlZm9y
ZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtODo6YmVmb3JlKToKKyAgICAgICAgKC53
ZWJraXQtd2hpdGVzcGFjZS0xNjo6YmVmb3JlKToKKyAgICAgICAgKC53ZWJraXQtd2hpdGVzcGFj
ZTo6YmVmb3JlKToKKworMjAxMy0wMi0wNiAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBj
aHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogdXBkYXRlIGphdmFzY3JpcHRz
b3VyY2V0b2tlbml6ZXIgdG8gcHJvZHVjZSAid2hpdGVzcGFjZXMiIHRva2VuCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5NDUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291
cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGRhMWZk
NGZmYTY3MzJlNGNlNWEzZmIxYmFkZWY3NTI2YzdlZmQ4OGIuLmUyZDBlODE4OGFmNDhmYWVjMGJi
NWQ3ODgwMjllZGMyZGRmYzM1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gu
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTM5MCw2ICszOTAsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJTaG93IHJ1bGVycyJdID0gIlNob3cgcnVsZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNo
b3cgU2hhZG93IERPTSJdID0gIlNob3cgU2hhZG93IERPTSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJT
aG93IHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiJdID0gIlNob3cgdGltZXMgYXMgcGVyY2VudGFnZXMu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgdG90YWwgYW5kIHNlbGYgdGltZXMgYXMgcGVyY2Vu
dGFnZXMuIl0gPSAiU2hvdyB0b3RhbCBhbmQgc2VsZiB0aW1lcyBhcyBwZXJjZW50YWdlcy4iOwor
bG9jYWxpemVkU3RyaW5nc1siU2hvdyB3aGl0ZXNwYWNlIl0gPSAiU2hvdyB3aGl0ZXNwYWNlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlNpemUiXSA9ICJTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNu
YXBzaG90ICVkIl0gPSAiU25hcHNob3QgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5kIFRpbWUi
XSA9ICJFbmQgVGltZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwppbmRleCAzMGEzMzY0MjMxZDgwM2IzODQyZmQ4
YTA3YmUzYmI3NzhhZjVkMTA0Li43YTM0YzY4M2E0NGY0OGRlOGVlZjBhZWE5ZDI5MTljYmM2Yjc1
NjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1
bHRUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVmYXVsdFRleHRFZGl0b3IuanMKQEAgLTEzNzksNiArMTM3OSw5IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rpb24oZGVsZWdhdGUsIHRleHRNb2RlbCwgdXJsLCBz
eW5jU2Nyb2xsCiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRleHRJbnB1dCIs
IHRoaXMuX2hhbmRsZVRleHRJbnB1dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5lbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImN1dCIsIHRoaXMuX2hhbmRsZUN1dC5iaW5kKHRoaXMpLCBm
YWxzZSk7CiAKKyAgICB0aGlzLl9zaG93V2hpdGVzcGFjZSA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5zaG93V2hpdGVzcGFjZUluRWRpdG9yLmdldCgpOworICAgIHRoaXMuX2hhbmRsZVNob3dXaGl0
ZXNwYWNlSW5FZGl0b3JDaGFuZ2UgPSB0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9y
Q2hhbmdlLmJpbmQodGhpcyk7CisKICAgICB0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5l
cigiZm9jdXMiLCB0aGlzLl9oYW5kbGVGb2N1c2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAg
IHRoaXMuX2hpZ2hsaWdodERlc2NyaXB0b3JzID0gW107CkBAIC0xMzg5LDcgKzEzOTIsMzAgQEAg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4
dE1vZGVsLCB1cmwsIHN5bmNTY3JvbGwKICAgICB0aGlzLmJ1aWxkQ2h1bmtzKCk7CiB9CiAKK1dl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLl9Db25zZWN1dGl2ZVdoaXRlc3BhY2VDaGFy
cyA9IHsKKyAgICAxOiAiICIsCisgICAgMjogIiAgIiwKKyAgICA0OiAiICAgICIsCisgICAgODog
IiAgICAgICAgIiwKKyAgICAxNjogIiAgICAgICAgICAgICAgICAiCit9OworCiBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CisKKyAgICBfaGFuZGxlU2hvd1do
aXRlc3BhY2VJbkVkaXRvckNoYW5nZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
c2hvd1doaXRlc3BhY2UgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVk
aXRvci5nZXQoKTsKKyAgICAgICAgdmFyIHZpc2libGVGcm9tID0gdGhpcy5zY3JvbGxUb3AoKTsK
KyAgICAgICAgdmFyIHZpc2libGVUbyA9IHZpc2libGVGcm9tICsgdGhpcy5jbGllbnRIZWlnaHQo
KTsKKworICAgICAgICBpZiAoIXZpc2libGVUbykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB2YXIgcmVzdWx0ID0gdGhpcy5maW5kVmlzaWJsZUNodW5rcyh2aXNpYmxlRnJvbSwgdmlz
aWJsZVRvKTsKKyAgICAgICAgdmFyIHN0YXJ0TGluZSA9IHRoaXMuX3RleHRDaHVua3NbcmVzdWx0
LnN0YXJ0XS5zdGFydExpbmU7CisgICAgICAgIHZhciBlbmRMaW5lID0gdGhpcy5fdGV4dENodW5r
c1tyZXN1bHQuZW5kIC0gMV0uc3RhcnRMaW5lICsgdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuZW5k
IC0gMV0ubGluZXNDb3VudDsKKyAgICAgICAgdGhpcy5fcGFpbnRMaW5lcyhzdGFydExpbmUsIGVu
ZExpbmUgKyAxKTsKKyAgICB9LAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdl
eAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjc3NDbGFzcwpAQCAtMTQ2NSw2ICsxNDkxLDggQEAg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5z
aG93V2hpdGVzcGFjZUluRWRpdG9yLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX2hhbmRsZVNob3dX
aGl0ZXNwYWNlSW5FZGl0b3JDaGFuZ2UpOworCiAgICAgICAgIHRoaXMuX2JvdW5kU2VsZWN0aW9u
Q2hhbmdlTGlzdGVuZXIgPSB0aGlzLl9oYW5kbGVTZWxlY3Rpb25DaGFuZ2UuYmluZCh0aGlzKTsK
ICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhp
cy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciwgZmFsc2UpOwogCkBAIC0xNDc0LDYgKzE1
MDIsOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5f
aGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5nZSk7CisKICAgICAgICAgZG9jdW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rp
b25DaGFuZ2VMaXN0ZW5lciwgZmFsc2UpOwogICAgICAgICBkZWxldGUgdGhpcy5fYm91bmRTZWxl
Y3Rpb25DaGFuZ2VMaXN0ZW5lcjsKIApAQCAtMTk2MSw4ICsxOTkxLDkgQEAgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7RWxlbWVu
dH0gbGluZVJvdwogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsaW5lCiAgICAgICogQHBhcmFtIHtB
cnJheS48e3N0YXJ0Q29sdW1uOiBudW1iZXIsIGVuZENvbHVtbjogbnVtYmVyLCB0b2tlbjogP3N0
cmluZ30+fSByYW5nZXMKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBzcGxpdFdoaXRlc3BhY2VT
ZXF1ZW5jZXMKICAgICAgKi8KLSAgICBfcmVuZGVyUmFuZ2VzOiBmdW5jdGlvbihsaW5lUm93LCBs
aW5lLCByYW5nZXMpCisgICAgX3JlbmRlclJhbmdlczogZnVuY3Rpb24obGluZVJvdywgbGluZSwg
cmFuZ2VzLCBzcGxpdFdoaXRlc3BhY2VTZXF1ZW5jZXMpCiAgICAgewogICAgICAgICB2YXIgZGVj
b3JhdGlvbnNFbGVtZW50ID0gbGluZVJvdy5kZWNvcmF0aW9uc0VsZW1lbnQ7CiAKQEAgLTE5ODQs
MTIgKzIwMTUsMjAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7CiAg
ICAgICAgICAgICB2YXIgcmFuZ2VTdGFydCA9IHJhbmdlc1tpXS5zdGFydENvbHVtbjsKICAgICAg
ICAgICAgIHZhciByYW5nZUVuZCA9IHJhbmdlc1tpXS5lbmRDb2x1bW47Ci0gICAgICAgICAgICB2
YXIgY3NzQ2xhc3MgPSByYW5nZXNbaV0udG9rZW4gPyAid2Via2l0LSIgKyByYW5nZXNbaV0udG9r
ZW4gOiAiIjsKIAogICAgICAgICAgICAgaWYgKHBsYWluVGV4dFN0YXJ0IDwgcmFuZ2VTdGFydCkg
ewogICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydFRleHROb2RlQmVmb3JlKGxpbmVSb3csIGRl
Y29yYXRpb25zRWxlbWVudCwgbGluZS5zdWJzdHJpbmcocGxhaW5UZXh0U3RhcnQsIHJhbmdlU3Rh
cnQpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2luc2VydFNwYW5CZWZvcmUo
bGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBsaW5lLnN1YnN0cmluZyhyYW5nZVN0YXJ0LCBy
YW5nZUVuZCArIDEpLCBjc3NDbGFzcyk7CisgICAgICAgICAgICB2YXIgY3NzQ2xhc3MgPSByYW5n
ZXNbaV0udG9rZW4gPyAid2Via2l0LSIgKyByYW5nZXNbaV0udG9rZW4gOiAiIjsKKworICAgICAg
ICAgICAgaWYgKHNwbGl0V2hpdGVzcGFjZVNlcXVlbmNlcyAmJiByYW5nZXNbaV0udG9rZW4gPT09
ICJ3aGl0ZXNwYWNlIikgeworICAgICAgICAgICAgICAgIHZhciBsZW5ndGggPSByYW5nZUVuZCAt
IHJhbmdlU3RhcnQgKyAxOworICAgICAgICAgICAgICAgIGNzc0NsYXNzICs9ICIgd2Via2l0LXdo
aXRlc3BhY2UtIjsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciB3aGl0ZVNwYWNlTGVuZ3RoID0g
MTY7IHdoaXRlU3BhY2VMZW5ndGggPiAwOyB3aGl0ZVNwYWNlTGVuZ3RoID4+PSAxKQorICAgICAg
ICAgICAgICAgICAgICBmb3IgKDsgbGVuZ3RoID49IHdoaXRlU3BhY2VMZW5ndGg7IGxlbmd0aCAt
PSB3aGl0ZVNwYWNlTGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0
U3BhbkJlZm9yZShsaW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLl9Db25zZWN1dGl2ZVdoaXRlc3BhY2VDaGFyc1t3aGl0ZVNwYWNlTGVu
Z3RoXSwgY3NzQ2xhc3MgKyB3aGl0ZVNwYWNlTGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydFNwYW5CZWZvcmUobGluZVJvdywgZGVjb3JhdGlv
bnNFbGVtZW50LCBsaW5lLnN1YnN0cmluZyhyYW5nZVN0YXJ0LCByYW5nZUVuZCArIDEpLCBjc3ND
bGFzcyk7CiAgICAgICAgICAgICBwbGFpblRleHRTdGFydCA9IHJhbmdlRW5kICsgMTsKICAgICAg
ICAgfQogICAgICAgICBpZiAocGxhaW5UZXh0U3RhcnQgPCBsaW5lLmxlbmd0aCkgewpAQCAtMjAx
Myw3ICsyMDUyLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgICAgICAgICB2YXIgbGluZSA9IHRoaXMuX3RleHRNb2RlbC5saW5lKGxpbmVO
dW1iZXIpOwogICAgICAgICAgICAgdmFyIHJhbmdlcyA9IHN5bnRheEhpZ2hsaWdodC5yYW5nZXM7
Ci0gICAgICAgICAgICB0aGlzLl9yZW5kZXJSYW5nZXMobGluZVJvdywgbGluZSwgcmFuZ2VzKTsK
KyAgICAgICAgICAgIHRoaXMuX3JlbmRlclJhbmdlcyhsaW5lUm93LCBsaW5lLCByYW5nZXMsIHRo
aXMuX3Nob3dXaGl0ZXNwYWNlKTsKIAogICAgICAgICAgICAgaWYgKG92ZXJsYXlIaWdobGlnaHQp
CiAgICAgICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IG92ZXJsYXlIaWdobGlnaHQubGVu
Z3RoOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcwppbmRleCBjZWJkOTlhZTUxMmUwZTkxNmExYzBjZTY3Njg2NTlhYWE5ZGU4NDE5Li45NWQ5
Y2E3NmUzMjhiYzYxN2FmNWFhNzkxMjA3N2M0MDVmNTViMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTExMCw2ICsxMTAsNyBAQCBX
ZWJJbnNwZWN0b3IuU2V0dGluZ3MgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5kZXZpY2VPcmllbnRh
dGlvbk92ZXJyaWRlID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJkZXZpY2VPcmllbnRhdGlvbk92ZXJy
aWRlIiwgIiIpOwogICAgIHRoaXMuc2hvd0hlYXBTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9wZXJ0
aWVzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzaG93SGVhU25hcHNob3RPYmplY3RzSGlkZGVuUHJv
cGVydGllcyIsIGZhbHNlKTsKICAgICB0aGlzLnNob3dOYXRpdmVTbmFwc2hvdFVuaW5zdHJ1bWVu
dGVkU2l6ZSA9IHRoaXMuY3JlYXRlU2V0dGluZygic2hvd05hdGl2ZVNuYXBzaG90VW5pbnN0cnVt
ZW50ZWRTaXplIiwgZmFsc2UpOworICAgIHRoaXMuc2hvd1doaXRlc3BhY2VJbkVkaXRvciA9IHRo
aXMuY3JlYXRlU2V0dGluZygic2hvd1doaXRlc3BhY2VJbkVkaXRvciIsIGZhbHNlKTsKICAgICB0
aGlzLnNlYXJjaEluQ29udGVudFNjcmlwdHMgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNlYXJjaElu
Q29udGVudFNjcmlwdHMiLCBmYWxzZSk7CiAgICAgdGhpcy50ZXh0RWRpdG9ySW5kZW50ID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJ0ZXh0RWRpdG9ySW5kZW50IiwgIiAgICAiKTsKICAgICB0aGlzLmxh
c3REb2NrU3RhdGUgPSB0aGlzLmNyZWF0ZVNldHRpbmcoImxhc3REb2NrU3RhdGUiLCAiIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2Ny
ZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVl
bi5qcwppbmRleCBjODM0MmZjYjAyZmM0YzMzOTU0ZWQwNzhlNjVmMDliNTc1MzdlMmZhLi4xZDEx
ZmMxYmY5MzM3NWNlMGNjNTk3ZmE2YzAxYzhkMWI4OGZjNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKQEAgLTMwNCw2
ICszMDQsNyBAQCBXZWJJbnNwZWN0b3IuR2VuZXJpY1NldHRpbmdzVGFiID0gZnVuY3Rpb24oKQog
ICAgIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU291cmNl
cyIpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgZm9sZGVycyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
c2hvd1NjcmlwdEZvbGRlcnMpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNr
Ym94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBpbiBjb250ZW50IHNjcmlw
dHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNlYXJjaEluQ29udGVudFNjcmlwdHMpKTsKKyAg
ICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlNob3cgd2hpdGVzcGFjZSIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1do
aXRlc3BhY2VJbkVkaXRvcikpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2ti
b3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIHNvdXJjZSBtYXBzIiksIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5zb3VyY2VNYXBzRW5hYmxlZCkpOwogICAgIGlmIChXZWJJbnNw
ZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5pc0VuYWJsZWQoInNhc3MiKSkKICAgICAgICAgcC5h
cHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDU1NBdXRvUmVsb2FkQ29udHJvbHMoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhp
Z2hsaWdodC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
clN5bnRheEhpZ2hsaWdodC5jc3MKaW5kZXggODE4OTdkOGQ0M2QxZWU3M2ZhMTdmZGM0NWQyZDE4
ODUzNjcwOGI4NC4uMTIyYWUzMmNjYzQ1MGY1NWY3ZmZhNzI5YTA5MjZlZDE0NGY0MjYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50
YXhIaWdobGlnaHQuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwpAQCAtNzAsNiArNzAsMzEgQEAKICAgICBjb2xv
cjogYmxhY2s7CiB9CiAKKy53ZWJraXQtd2hpdGVzcGFjZS0xOjpiZWZvcmUgeworICAgIGNvbnRl
bnQ6ICLCtyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS0yOjpiZWZvcmUgeworICAgIGNvbnRl
bnQ6ICLCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTQ6OmJlZm9yZSB7CisgICAgY29u
dGVudDogIsK3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTg6OmJlZm9yZSB7Cisg
ICAgY29udGVudDogIsK3wrfCt8K3wrfCt8K3wrciOworfQorCisud2Via2l0LXdoaXRlc3BhY2Ut
MTY6OmJlZm9yZSB7CisgICAgY29udGVudDogIsK3wrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfC
t8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlOjpiZWZvcmUgeworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICBjb2xvcjogcmdiKDE3NSwgMTc1LCAxNzUpOworfQorCiAud2Via2l0LWh0
bWwtY29tbWVudCB7CiAgICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5j
c3MgKC53ZWJraXQtaHRtbC1jb21tZW50KSAqLwogICAgIGNvbG9yOiByZ2IoMzUsIDExMCwgMzcp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGZlNTk3ZGNmOGRmMDJhMDBlZDM2MmI1NTJjOGNiZmRhMzUzZGY1ZmEuLmMzNWQz
MmYwOThjMDRlZjgwYzFhNjU0MDJlZjU0NTVjODNhNmM1MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBA
QAogMjAxMy0wMi0wNiAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+
CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4g
RFRFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5
NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHdoaXRlc3BhY2UgaGlnaGxpZ2h0IGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFj
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0bWw6IEFkZGVkLgorCisyMDEzLTAyLTA2ICBBbmRyZXkg
THVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiB1cGRhdGUgamF2YXNjcmlwdHNvdXJjZXRva2VuaXplciB0byBwcm9kdWNlICJ3aGl0ZXNw
YWNlcyIgdG9rZW4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODk0NQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU0MzA2ZDFmNTM5MTgzN2NkNDE0OGY3OWUxMmJjMjJlNDQ5NDllNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hv
dy13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUaGlzIHRlc3QgY2hl
Y2tzIGhvdyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxp
Z2h0IHRoZW0gaWYgdGhlIGFwcHJvcHJpYXRlIHNldHRpbmcgaXMgc2V0IHVwLgorCitBY3R1YWwg
dGV4dDoKK2Z1bmN0aW9uIGZvbyhhLCBiKQoreworICAgIC8vIHNwYWNlcyBpbiBjb21tZW50Cisg
ICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOworICAgIGEgPSAyOyAgICAgICAgICAgICAgIGEg
PSAzOworfQorPT09PT09PT09PSBFZGl0b3IgSFRNTCBzaG93V2hpdGVzcGFjZUluRWRpdG9yIE9G
RiA9PT09PT09PT09CisKKzxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciIgdGFiaW5kZXg9IjAi
PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1q
YXZhc2NyaXB0LWtleXdvcmQiPmZ1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hp
dGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmZv
bzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLXN0YXJ0Ij4oPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj4sPHNwYW4gY2xhc3M9IndlYmtp
dC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVu
dCI+Yjwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLWVuZCI+KTwvc3Bhbj48L2Rpdj4K
KzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxv
Y2stc3RhcnQiPns8L3NwYW4+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8vIHNwYWNlcyBpbiBjb21tZW50PC9zcGFuPjwv
ZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtp
dC13aGl0ZXNwYWNlIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1p
ZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LWphdmFzY3JpcHQtc3RyaW5nIj4ic3RyaW5nIHdpdGggc3BhY2VzIjwvc3Bhbj47PC9kaXY+Cis8
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRl
c3BhY2UiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5h
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj49PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNj
cmlwdC1udW1iZXIiPjI8L3NwYW4+OzxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+ICAg
ICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+
YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFz
Y3JpcHQtbnVtYmVyIj4zPC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNv
bnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxvY2stZW5kIj59PC9zcGFuPjwvZGl2PjwvZGl2
PgorPT09PT09PT09PSBFZGl0b3IgSFRNTCBhZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNwYWNlSW5F
ZGl0b3IgT04gPT09PT09PT09PQorCis8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIiIHRhYmlu
ZGV4PSIwIj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmZvbzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJy
YWNlLXN0YXJ0Ij4oPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+
YTwvc3Bhbj4sPHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5iPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2UtZW5kIj4pPC9zcGFuPjwvZGl2PgorPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1ibG9jay1zdGFydCI+
ezwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Ij4vLyBzcGFjZXMgaW4gY29tbWVu
dDwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj49PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3Nw
YW4+OzwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9
IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAgICA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPj08c3BhbiBjbGFzcz0i
d2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWphdmFzY3JpcHQtbnVtYmVyIj4yPC9zcGFuPjs8c3BhbiBjbGFzcz0id2Via2l0
LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtOCI+ICAgICAgICA8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAgICA8L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTIiPiAgPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj49PHNw
YW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LW51bWJlciI+Mzwvc3Bhbj47PC9kaXY+Cis8
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWJsb2Nr
LWVuZCI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODI5ZTdjNWUzMWNkOTg2NDdhM2RiMDFkZGRkNjA0ZWZlZjhjYjMwMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hv
dy13aGl0ZXNwYWNlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworZnVuY3Rpb24gZm9vKGEsIGIpCit7CisgICAgLy8gc3BhY2Vz
IGluIGNvbW1lbnQKKyAgICBhID0gInN0cmluZyB3aXRoIHNwYWNlcyI7CisgICAgYSA9IDI7ICAg
ICAgICAgICAgICAgYSA9IDM7Cit9CisKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1do
aXRlc3BhY2VJbkVkaXRvci5zZXQoZmFsc2UpOworICAgIHZhciB0ZXh0RWRpdG9yID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7CisgICAgdGV4dEVkaXRvci5vdmVycmlkZVZpZXdw
b3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOworICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAi
dGV4dC9qYXZhc2NyaXB0IjsKKyAgICB0ZXh0RWRpdG9yLnNldFRleHQoZm9vLnRvU3RyaW5nKCkp
OworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBY3R1YWwgdGV4dDoiKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRleHQoKSk7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PT09PT09PT0gRWRpdG9yIEhUTUwgc2hvd1doaXRlc3BhY2VJbkVkaXRv
ciBPRkYgPT09PT09PT09PSIpOworICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4
dEVkaXRvciwgdHJ1ZSk7CisgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNl
SW5FZGl0b3Iuc2V0KHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09
PT09IEVkaXRvciBIVE1MIGFmdGVyIHNldHRpbmcgc2hvd1doaXRlc3BhY2VJbkVkaXRvciBPTiA9
PT09PT09PT09Iik7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9y
LCB0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxwPgorVGhpcyB0ZXN0
IGNoZWNrcyBob3cgdGV4dCBlZGl0b3Igc3BsaXRzIHdoaXRlc3BhY2Ugc2VxdWVuY2VzIHRvIGhp
Z2hsaWdodCB0aGVtIGlmIHRoZSBhcHByb3ByaWF0ZQorc2V0dGluZyBpcyBzZXQgdXAuCis8L3A+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186825</attachid>
            <date>2013-02-06 04:32:04 -0800</date>
            <delta_ts>2013-02-06 07:48:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130206162840.patch</filename>
            <type>text/plain</type>
            <size>18251</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBmOThlNzExNmE3ZjQ4
OTg1ZjlmZjhhZjMzM2Q1NjlhMjg3NTUyNS4uN2Q0MTE5NWYwM2E5OTYxNDNiNzcxZGRhOGNlZDZm
YmFhYTg3MTU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEzLTAyLTA2ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbnRvIGdyb3VwcyBvZiAxNiwgOCwgNCwg
MiBhbmQgMSBhbmQKKyAgICAgICAgYWRkIDo6YmVmb3JlIHBzZXVkb2NsYXNzIGZvciB0aGlzIGdy
b3VwcyB3aGljaCBjb250YWlucyBuZWNlc3NhcnkKKyAgICAgICAgYW1vdW50IG9mICJkb3RzIiAo
dSswMGI3KS4gQWRkIGEgc2V0dGluZyAiU2hvdyB3aGl0ZXNwYWNlIiBmb3IgdGhpcworICAgICAg
ICBvcHRpb24gaW4gIlNvdXJjZXMiIHNlY3Rpb24gb2YgIkdlbmVyYWwiIHRhYi4KKworICAgICAg
ICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3JlbmRlclJhbmdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUu
X3JlbmRlcldoaXRlc3BhY2VDaGFyc1dpdGhGaXhlZFNpemVTcGFucyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50TGluZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkdl
bmVyaWNTZXR0aW5nc1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3JTeW50YXhIaWdobGlnaHQuY3NzOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNwYWNlLTE6OmJl
Zm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlKToKKyAgICAgICAg
KC53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUpOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNw
YWNlLTg6OmJlZm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMTY6OmJlZm9yZSk6
CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2U6OmJlZm9yZSk6CisKKzIwMTMtMDItMDYgIEFu
ZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHVwZGF0ZSBqYXZhc2NyaXB0c291cmNldG9rZW5pemVyIHRvIHByb2R1Y2UgIndo
aXRlc3BhY2VzIiB0b2tlbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4OTQ1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcwppbmRleCBkYTFmZDRmZmE2NzMyZTRjZTVhM2ZiMWJhZGVmNzUyNmM3
ZWZkODhiLi5lMmQwZTgxODhhZjQ4ZmFlYzBiYjVkNzg4MDI5ZWRjMmRkZmMzNTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0z
OTAsNiArMzkwLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyBydWxlcnMiXSA9ICJTaG93IHJ1
bGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IFNoYWRvdyBET00iXSA9ICJTaG93IFNoYWRv
dyBET00iOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyB0aW1lcyBhcyBwZXJjZW50YWdlcy4iXSA9
ICJTaG93IHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHRv
dGFsIGFuZCBzZWxmIHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiJdID0gIlNob3cgdG90YWwgYW5kIHNl
bGYgdGltZXMgYXMgcGVyY2VudGFnZXMuIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNob3cgd2hpdGVz
cGFjZSJdID0gIlNob3cgd2hpdGVzcGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaXplIl0gPSAi
U2l6ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTbmFwc2hvdCAlZCJdID0gIlNuYXBzaG90ICVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkVuZCBUaW1lIl0gPSAiRW5kIFRpbWUiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMK
aW5kZXggMzBhMzM2NDIzMWQ4MDNiMzg0MmZkOGEwN2JlM2JiNzc4YWY1ZDEwNC4uMmVkM2E1Nzcw
MDllMzRlMjJiOGU3ODdlZDY5NDNmZjU0NGViY2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCkBAIC0xMzc5
LDYgKzEzNzksOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCA9IGZ1bmN0aW9u
KGRlbGVnYXRlLCB0ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9sbAogICAgIHRoaXMuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJ0ZXh0SW5wdXQiLCB0aGlzLl9oYW5kbGVUZXh0SW5wdXQuYmluZCh0
aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjdXQiLCB0
aGlzLl9oYW5kbGVDdXQuYmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAgdGhpcy5fc2hvd1doaXRl
c3BhY2UgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5nZXQo
KTsKKyAgICB0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlID0gdGhpcy5f
aGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpOworCiAgICAgdGhp
cy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFuZGxlRm9jdXNl
ZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycyA9
IFtdOwpAQCAtMTM4OSw3ICsxMzkyLDMwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsID0gZnVuY3Rpb24oZGVsZWdhdGUsIHRleHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAgICAg
dGhpcy5idWlsZENodW5rcygpOwogfQogCitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5fQ29uc2VjdXRpdmVXaGl0ZXNwYWNlQ2hhcnMgPSB7CisgICAgMTogIiAiLAorICAgIDI6ICIg
ICIsCisgICAgNDogIiAgICAiLAorICAgIDg6ICIgICAgICAgICIsCisgICAgMTY6ICIgICAgICAg
ICAgICAgICAgIgorfTsKKwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90
eXBlID0geworCisgICAgX2hhbmRsZVNob3dXaGl0ZXNwYWNlSW5FZGl0b3JDaGFuZ2U6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dXaGl0ZXNwYWNlID0gV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IuZ2V0KCk7CisgICAgICAgIHZhciB2aXNp
YmxlRnJvbSA9IHRoaXMuc2Nyb2xsVG9wKCk7CisgICAgICAgIHZhciB2aXNpYmxlVG8gPSB2aXNp
YmxlRnJvbSArIHRoaXMuY2xpZW50SGVpZ2h0KCk7CisKKyAgICAgICAgaWYgKCF2aXNpYmxlVG8p
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuZmluZFZp
c2libGVDaHVua3ModmlzaWJsZUZyb20sIHZpc2libGVUbyk7CisgICAgICAgIHZhciBzdGFydExp
bmUgPSB0aGlzLl90ZXh0Q2h1bmtzW3Jlc3VsdC5zdGFydF0uc3RhcnRMaW5lOworICAgICAgICB2
YXIgZW5kTGluZSA9IHRoaXMuX3RleHRDaHVua3NbcmVzdWx0LmVuZCAtIDFdLnN0YXJ0TGluZSAr
IHRoaXMuX3RleHRDaHVua3NbcmVzdWx0LmVuZCAtIDFdLmxpbmVzQ291bnQ7CisgICAgICAgIHRo
aXMuX3BhaW50TGluZXMoc3RhcnRMaW5lLCBlbmRMaW5lICsgMSk7CisgICAgfSwKICAgICAvKioK
ICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3Nz
Q2xhc3MKQEAgLTE0NjUsNiArMTQ5MSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgeworICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5hZGRDaGFu
Z2VMaXN0ZW5lcih0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlKTsKKwog
ICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyID0gdGhpcy5faGFuZGxl
U2VsZWN0aW9uQ2hhbmdlLmJpbmQodGhpcyk7CiAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsIHRoaXMuX2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVu
ZXIsIGZhbHNlKTsKIApAQCAtMTQ3NCw2ICsxNTAyLDggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZUluRWRpdG9y
LnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX2hhbmRsZVNob3dXaGl0ZXNwYWNlSW5FZGl0b3JD
aGFuZ2UpOworCiAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlv
bmNoYW5nZSIsIHRoaXMuX2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIsIGZhbHNlKTsKICAg
ICAgICAgZGVsZXRlIHRoaXMuX2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXI7CiAKQEAgLTE5
NjEsOCArMTk5MSw5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGxpbmVSb3cKICAgICAgKiBAcGFyYW0ge3N0
cmluZ30gbGluZQogICAgICAqIEBwYXJhbSB7QXJyYXkuPHtzdGFydENvbHVtbjogbnVtYmVyLCBl
bmRDb2x1bW46IG51bWJlciwgdG9rZW46ID9zdHJpbmd9Pn0gcmFuZ2VzCisgICAgICogQHBhcmFt
IHtib29sZWFuPX0gc3BsaXRXaGl0ZXNwYWNlU2VxdWVuY2VzCiAgICAgICovCi0gICAgX3JlbmRl
clJhbmdlczogZnVuY3Rpb24obGluZVJvdywgbGluZSwgcmFuZ2VzKQorICAgIF9yZW5kZXJSYW5n
ZXM6IGZ1bmN0aW9uKGxpbmVSb3csIGxpbmUsIHJhbmdlcywgc3BsaXRXaGl0ZXNwYWNlU2VxdWVu
Y2VzKQogICAgIHsKICAgICAgICAgdmFyIGRlY29yYXRpb25zRWxlbWVudCA9IGxpbmVSb3cuZGVj
b3JhdGlvbnNFbGVtZW50OwogCkBAIC0xOTg0LDEyICsyMDE1LDE1IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yKHZhciBpID0gMDsg
aSA8IHJhbmdlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIHJhbmdlU3RhcnQgPSBy
YW5nZXNbaV0uc3RhcnRDb2x1bW47CiAgICAgICAgICAgICB2YXIgcmFuZ2VFbmQgPSByYW5nZXNb
aV0uZW5kQ29sdW1uOwotICAgICAgICAgICAgdmFyIGNzc0NsYXNzID0gcmFuZ2VzW2ldLnRva2Vu
ID8gIndlYmtpdC0iICsgcmFuZ2VzW2ldLnRva2VuIDogIiI7CiAKICAgICAgICAgICAgIGlmIChw
bGFpblRleHRTdGFydCA8IHJhbmdlU3RhcnQpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9pbnNl
cnRUZXh0Tm9kZUJlZm9yZShsaW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIGxpbmUuc3Vic3Ry
aW5nKHBsYWluVGV4dFN0YXJ0LCByYW5nZVN0YXJ0KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB0aGlzLl9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxlbWVudCwg
bGluZS5zdWJzdHJpbmcocmFuZ2VTdGFydCwgcmFuZ2VFbmQgKyAxKSwgY3NzQ2xhc3MpOworCisg
ICAgICAgICAgICBpZiAoc3BsaXRXaGl0ZXNwYWNlU2VxdWVuY2VzICYmIHJhbmdlc1tpXS50b2tl
biA9PT0gIndoaXRlc3BhY2UiKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcldoaXRlc3Bh
Y2VDaGFyc1dpdGhGaXhlZFNpemVTcGFucyhsaW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIHJh
bmdlRW5kIC0gcmFuZ2VTdGFydCArIDEpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRoaXMuX2luc2VydFNwYW5CZWZvcmUobGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBs
aW5lLnN1YnN0cmluZyhyYW5nZVN0YXJ0LCByYW5nZUVuZCArIDEpLCByYW5nZXNbaV0udG9rZW4g
PyAid2Via2l0LSIgKyByYW5nZXNbaV0udG9rZW4gOiAiIik7CiAgICAgICAgICAgICBwbGFpblRl
eHRTdGFydCA9IHJhbmdlRW5kICsgMTsKICAgICAgICAgfQogICAgICAgICBpZiAocGxhaW5UZXh0
U3RhcnQgPCBsaW5lLmxlbmd0aCkgewpAQCAtMTk5OSw2ICsyMDMzLDIwIEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7RWxlbWVudH0gbGluZVJvdworICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZGVjb3JhdGlv
bnNFbGVtZW50CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aAorICAgICAqLworICAgIF9y
ZW5kZXJXaGl0ZXNwYWNlQ2hhcnNXaXRoRml4ZWRTaXplU3BhbnM6IGZ1bmN0aW9uKGxpbmVSb3cs
IGRlY29yYXRpb25zRWxlbWVudCwgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgd2hp
dGVzcGFjZUxlbmd0aCA9IDE2OyB3aGl0ZXNwYWNlTGVuZ3RoID4gMDsgd2hpdGVzcGFjZUxlbmd0
aCA+Pj0gMSkgeworICAgICAgICAgICAgdmFyIGNzc0NsYXNzID0gIndlYmtpdC13aGl0ZXNwYWNl
IHdlYmtpdC13aGl0ZXNwYWNlLSIgKyB3aGl0ZXNwYWNlTGVuZ3RoOworICAgICAgICAgICAgZm9y
ICg7IGxlbmd0aCA+PSB3aGl0ZXNwYWNlTGVuZ3RoOyBsZW5ndGggLT0gd2hpdGVzcGFjZUxlbmd0
aCkKKyAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29y
YXRpb25zRWxlbWVudCwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuX0NvbnNlY3V0
aXZlV2hpdGVzcGFjZUNoYXJzW3doaXRlc3BhY2VMZW5ndGhdLCBjc3NDbGFzcyk7CisgICAgICAg
IH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtFbGVtZW50fSBsaW5lUm93CiAg
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuTGlu
ZU92ZXJsYXlIaWdobGlnaHQ+fSBvdmVybGF5SGlnaGxpZ2h0CiAgICAgICovCiAgICAgX3BhaW50
TGluZTogZnVuY3Rpb24obGluZVJvdywgb3ZlcmxheUhpZ2hsaWdodCkKQEAgLTIwMTMsNyArMjA2
MSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAog
ICAgICAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsK
ICAgICAgICAgICAgIHZhciByYW5nZXMgPSBzeW50YXhIaWdobGlnaHQucmFuZ2VzOwotICAgICAg
ICAgICAgdGhpcy5fcmVuZGVyUmFuZ2VzKGxpbmVSb3csIGxpbmUsIHJhbmdlcyk7CisgICAgICAg
ICAgICB0aGlzLl9yZW5kZXJSYW5nZXMobGluZVJvdywgbGluZSwgcmFuZ2VzLCB0aGlzLl9zaG93
V2hpdGVzcGFjZSk7CiAKICAgICAgICAgICAgIGlmIChvdmVybGF5SGlnaGxpZ2h0KQogICAgICAg
ICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBvdmVybGF5SGlnaGxpZ2h0Lmxlbmd0aDsgKytp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5k
ZXggY2ViZDk5YWU1MTJlMGU5MTZhMWMwY2U2NzY4NjU5YWFhOWRlODQxOS4uOTVkOWNhNzZlMzI4
YmM2MTdhZjVhYTc5MTIwNzdjNDA1ZjU1YjExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC0xMTAsNiArMTEwLDcgQEAgV2ViSW5zcGVj
dG9yLlNldHRpbmdzID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZGV2aWNlT3JpZW50YXRpb25PdmVy
cmlkZSA9IHRoaXMuY3JlYXRlU2V0dGluZygiZGV2aWNlT3JpZW50YXRpb25PdmVycmlkZSIsICIi
KTsKICAgICB0aGlzLnNob3dIZWFwU25hcHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcyA9IHRo
aXMuY3JlYXRlU2V0dGluZygic2hvd0hlYVNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRpZXMi
LCBmYWxzZSk7CiAgICAgdGhpcy5zaG93TmF0aXZlU25hcHNob3RVbmluc3RydW1lbnRlZFNpemUg
PSB0aGlzLmNyZWF0ZVNldHRpbmcoInNob3dOYXRpdmVTbmFwc2hvdFVuaW5zdHJ1bWVudGVkU2l6
ZSIsIGZhbHNlKTsKKyAgICB0aGlzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgPSB0aGlzLmNyZWF0
ZVNldHRpbmcoInNob3dXaGl0ZXNwYWNlSW5FZGl0b3IiLCBmYWxzZSk7CiAgICAgdGhpcy5zZWFy
Y2hJbkNvbnRlbnRTY3JpcHRzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzZWFyY2hJbkNvbnRlbnRT
Y3JpcHRzIiwgZmFsc2UpOwogICAgIHRoaXMudGV4dEVkaXRvckluZGVudCA9IHRoaXMuY3JlYXRl
U2V0dGluZygidGV4dEVkaXRvckluZGVudCIsICIgICAgIik7CiAgICAgdGhpcy5sYXN0RG9ja1N0
YXRlID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJsYXN0RG9ja1N0YXRlIiwgIiIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKaW5k
ZXggYzgzNDJmY2IwMmZjNGMzMzk1NGVkMDc4ZTY1ZjA5YjU3NTM3ZTJmYS4uMWQxMWZjMWJmOTMz
NzVjZTBjYzU5N2ZhNmMwMWM4ZDFiODhmYzczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC0zMDQsNiArMzA0LDcg
QEAgV2ViSW5zcGVjdG9yLkdlbmVyaWNTZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKICAgICBwID0g
dGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJjZXMiKSk7CiAg
ICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTaG93IGZvbGRlcnMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dTY3Jp
cHRGb2xkZXJzKSk7CiAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRp
bmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIiksIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5zZWFyY2hJbkNvbnRlbnRTY3JpcHRzKSk7CisgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTaG93IHdoaXRlc3BhY2UiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNl
SW5FZGl0b3IpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGlu
ZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBzb3VyY2UgbWFwcyIpLCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3Muc291cmNlTWFwc0VuYWJsZWQpKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4
cGVyaW1lbnRzU2V0dGluZ3MuaXNFbmFibGVkKCJzYXNzIikpCiAgICAgICAgIHAuYXBwZW5kQ2hp
bGQodGhpcy5fY3JlYXRlQ1NTQXV0b1JlbG9hZENvbnRyb2xzKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQu
Y3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhI
aWdobGlnaHQuY3NzCmluZGV4IDgxODk3ZDhkNDNkMWVlNzNmYTE3ZmRjNDVkMmQxODg1MzY3MDhi
ODQuLjEyMmFlMzJjY2M0NTBmNTVmN2ZmYTcyOWEwOTI2ZWQxNDRmNDI2MWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxp
Z2h0LmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
clN5bnRheEhpZ2hsaWdodC5jc3MKQEAgLTcwLDYgKzcwLDMxIEBACiAgICAgY29sb3I6IGJsYWNr
OwogfQogCisud2Via2l0LXdoaXRlc3BhY2UtMTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrci
OworfQorCisud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrfC
tyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICLC
t8K3wrfCtyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS04OjpiZWZvcmUgeworICAgIGNvbnRl
bnQ6ICLCt8K3wrfCt8K3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTE2OjpiZWZv
cmUgeworICAgIGNvbnRlbnQ6ICLCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCtyI7Cit9
CisKKy53ZWJraXQtd2hpdGVzcGFjZTo6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgY29sb3I6IHJnYigxNzUsIDE3NSwgMTc1KTsKK30KKwogLndlYmtpdC1odG1sLWNvbW1l
bnQgewogICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Vi
a2l0LWh0bWwtY29tbWVudCkgKi8KICAgICBjb2xvcjogcmdiKDM1LCAxMTAsIDM3KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmZTU5N2RjZjhkZjAyYTAwZWQzNjJiNTUyYzhjYmZkYTM1M2RmNWZhLi5jMzVkMzJmMDk4YzA0
ZWY4MGMxYTY1NDAyZWY1NDU1YzgzYTZjNTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTMt
MDItMDYgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgogCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHNob3cgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIERURQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTQ3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0
ZXN0IHRvIHZlcmlmeSB3aGl0ZXNwYWNlIGhpZ2hsaWdodCBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNo
b3ctd2hpdGVzcGFjZS5odG1sOiBBZGRlZC4KKworMjAxMy0wMi0wNiAgQW5kcmV5IEx1c2huaWtv
diAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogdXBk
YXRlIGphdmFzY3JpcHRzb3VyY2V0b2tlbml6ZXIgdG8gcHJvZHVjZSAid2hpdGVzcGFjZXMiIHRv
a2VuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5
NDUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vk
aXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1NDMwNmQxZjUzOTE4MzdjZDQxNDhmNzllMTJiYzIyZTQ0OTQ5ZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVz
cGFjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGhpcyB0ZXN0IGNoZWNrcyBob3cg
dGV4dCBlZGl0b3Igc3BsaXRzIHdoaXRlc3BhY2Ugc2VxdWVuY2VzIHRvIGhpZ2hsaWdodCB0aGVt
IGlmIHRoZSBhcHByb3ByaWF0ZSBzZXR0aW5nIGlzIHNldCB1cC4KKworQWN0dWFsIHRleHQ6Citm
dW5jdGlvbiBmb28oYSwgYikKK3sKKyAgICAvLyBzcGFjZXMgaW4gY29tbWVudAorICAgIGEgPSAi
c3RyaW5nIHdpdGggc3BhY2VzIjsKKyAgICBhID0gMjsgICAgICAgICAgICAgICBhID0gMzsKK30K
Kz09PT09PT09PT0gRWRpdG9yIEhUTUwgc2hvd1doaXRlc3BhY2VJbkVkaXRvciBPRkYgPT09PT09
PT09PQorCis8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIiIHRhYmluZGV4PSIwIj4KKzxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlw
dC1rZXl3b3JkIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ui
PiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5mb288L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC1icmFjZS1zdGFydCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0id2Vi
a2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+LDxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmI8L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC1icmFjZS1lbmQiPik8L3NwYW4+PC9kaXY+Cis8ZGl2IGNs
YXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWJsb2NrLXN0YXJ0
Ij57PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4g
Y2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
amF2YXNjcmlwdC1jb21tZW50Ij4vLyBzcGFjZXMgaW4gY29tbWVudDwvc3Bhbj48L2Rpdj4KKzxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8
L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPj08c3BhbiBjbGFz
cz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2Ny
aXB0LXN0cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3NwYW4+OzwvZGl2PgorPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4g
ICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtbnVt
YmVyIj4yPC9zcGFuPjs8c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICAgICAgICAg
ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPj08c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LW51
bWJlciI+Mzwvc3Bhbj47PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3BhbiBjbGFzcz0id2Via2l0LWJsb2NrLWVuZCI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KKz09PT09
PT09PT0gRWRpdG9yIEhUTUwgYWZ0ZXIgc2V0dGluZyBzaG93V2hpdGVzcGFjZUluRWRpdG9yIE9O
ID09PT09PT09PT0KKworPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+
Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWph
dmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0
ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1q
YXZhc2NyaXB0LWlkZW50Ij5mb288L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1icmFjZS1zdGFy
dCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+
LDxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Yjwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LWJyYWNlLWVuZCI+KTwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxvY2stc3RhcnQiPns8L3NwYW4+
PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWphdmFzY3JpcHQtY29tbWVudCI+Ly8gc3BhY2VzIGluIGNvbW1lbnQ8L3NwYW4+
PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13
aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1zdHJpbmciPiJzdHJpbmcgd2l0aCBzcGFjZXMiPC9zcGFuPjs8L2Rp
dj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRl
c3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13
aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtp
dC1qYXZhc2NyaXB0LW51bWJlciI+Mjwvc3Bhbj47PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNw
YWNlIHdlYmtpdC13aGl0ZXNwYWNlLTgiPiAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0yIj4gIDwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNz
PSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIiPjM8L3NwYW4+OzwvZGl2PgorPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1ibG9jay1lbmQiPn08
L3NwYW4+PC9kaXY+PC9kaXY+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgyOWU3YzVlMzFjZDk4NjQ3YTNkYjAxZGRkZDYwNGVmZWY4Y2IzMDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVz
cGFjZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKK2Z1bmN0aW9uIGZvbyhhLCBiKQoreworICAgIC8vIHNwYWNlcyBpbiBjb21t
ZW50CisgICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOworICAgIGEgPSAyOyAgICAgICAgICAg
ICAgIGEgPSAzOworfQorCisgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNl
SW5FZGl0b3Iuc2V0KGZhbHNlKTsKKyAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlVGVzdEVkaXRvcigpOworICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9ydEZvclRl
c3QoMCwgdW5kZWZpbmVkLCAzKTsKKyAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQvamF2
YXNjcmlwdCI7CisgICAgdGV4dEVkaXRvci5zZXRUZXh0KGZvby50b1N0cmluZygpKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWN0dWFsIHRleHQ6Iik7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQodGV4dEVkaXRvci50ZXh0KCkpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT09PT09PT09IEVkaXRvciBIVE1MIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT0ZGID09
PT09PT09PT0iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0b3Is
IHRydWUpOworICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZUluRWRpdG9y
LnNldCh0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PSBFZGl0
b3IgSFRNTCBhZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT04gPT09PT09PT09
PSIpOworICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7
CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3Mg
aG93IHRleHQgZWRpdG9yIHNwbGl0cyB3aGl0ZXNwYWNlIHNlcXVlbmNlcyB0byBoaWdobGlnaHQg
dGhlbSBpZiB0aGUgYXBwcm9wcmlhdGUKK3NldHRpbmcgaXMgc2V0IHVwLgorPC9wPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186855</attachid>
            <date>2013-02-06 07:48:46 -0800</date>
            <delta_ts>2013-02-07 04:07:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130206194522.patch</filename>
            <type>text/plain</type>
            <size>18202</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uMzViYWYxNDE4MjM3YTkwZTdjMWRhOWExMjM3ZDlm
NTdiNDViZGM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTA2ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbnRvIGdyb3VwcyBvZiAxNiwgOCwgNCwg
MiBhbmQgMSBhbmQKKyAgICAgICAgYWRkIDo6YmVmb3JlIHBzZXVkb2NsYXNzIGZvciB0aGlzIGdy
b3VwcyB3aGljaCBjb250YWlucyBuZWNlc3NhcnkKKyAgICAgICAgYW1vdW50IG9mICJkb3RzIiAo
dSswMGI3KS4gQWRkIGEgc2V0dGluZyAiU2hvdyB3aGl0ZXNwYWNlIiBmb3IgdGhpcworICAgICAg
ICBvcHRpb24gaW4gIlNvdXJjZXMiIHNlY3Rpb24gb2YgIkdlbmVyYWwiIHRhYi4KKworICAgICAg
ICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3JlbmRlclJhbmdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUu
X3JlbmRlcldoaXRlc3BhY2VDaGFyc1dpdGhGaXhlZFNpemVTcGFucyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50TGluZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkdl
bmVyaWNTZXR0aW5nc1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3JTeW50YXhIaWdobGlnaHQuY3NzOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNwYWNlLTE6OmJl
Zm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlKToKKyAgICAgICAg
KC53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUpOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNw
YWNlLTg6OmJlZm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMTY6OmJlZm9yZSk6
CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2U6OmJlZm9yZSk6CisKIDIwMTMtMDItMDYgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIEdseXBo
UGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwgZ2x5cGhzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHNhbWUg
Zm9udC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCBkYTFmZDRmZmE2NzMyZTRjZTVhM2ZiMWJhZGVmNzUyNmM3ZWZkODhiLi5lMmQw
ZTgxODhhZjQ4ZmFlYzBiYjVkNzg4MDI5ZWRjMmRkZmMzNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0zOTAsNiArMzkwLDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyBydWxlcnMiXSA9ICJTaG93IHJ1bGVycyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTaG93IFNoYWRvdyBET00iXSA9ICJTaG93IFNoYWRvdyBET00iOwogbG9j
YWxpemVkU3RyaW5nc1siU2hvdyB0aW1lcyBhcyBwZXJjZW50YWdlcy4iXSA9ICJTaG93IHRpbWVz
IGFzIHBlcmNlbnRhZ2VzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHRvdGFsIGFuZCBzZWxm
IHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiJdID0gIlNob3cgdG90YWwgYW5kIHNlbGYgdGltZXMgYXMg
cGVyY2VudGFnZXMuIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNob3cgd2hpdGVzcGFjZSJdID0gIlNo
b3cgd2hpdGVzcGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaXplIl0gPSAiU2l6ZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTbmFwc2hvdCAlZCJdID0gIlNuYXBzaG90ICVkIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVuZCBUaW1lIl0gPSAiRW5kIFRpbWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKaW5kZXggNjY5MTQy
OWEyNmQxNTY3NjViNDViMDlkMmRlZTcwYTVkMWJlOTY4MS4uODVmMzQ1NGNkODM5MTk5NGRmYTI2
NTc3YWQyZjdhYWY5NGVmYjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCkBAIC0xMzY0LDYgKzEzNjQsOSBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB0
ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9sbAogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJ0ZXh0SW5wdXQiLCB0aGlzLl9oYW5kbGVUZXh0SW5wdXQuYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVD
dXQuYmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAgdGhpcy5fc2hvd1doaXRlc3BhY2UgPSBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5nZXQoKTsKKyAgICB0aGlz
Ll9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlID0gdGhpcy5faGFuZGxlU2hvd1do
aXRlc3BhY2VJbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpOworCiAgICAgdGhpcy5fY29udGFpbmVy
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFuZGxlRm9jdXNlZC5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAKICAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycyA9IFtdOwpAQCAtMTM3
NSw2ICsxMzc4LDE0IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rp
b24oZGVsZWdhdGUsIHRleHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAgICAgdGhpcy5fcmVnaXN0
ZXJTaG9ydGN1dHMoKTsKIH0KIAorV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuX0Nv
bnNlY3V0aXZlV2hpdGVzcGFjZUNoYXJzID0geworICAgIDE6ICIgIiwKKyAgICAyOiAiICAiLAor
ICAgIDQ6ICIgICAgIiwKKyAgICA4OiAiICAgICAgICAiLAorICAgIDE2OiAiICAgICAgICAgICAg
ICAgICIKK307CisKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKICAgICB7CkBAIC0xMzk3LDYg
KzE0MDgsMjEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9zaG9ydGN1dHNbV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
bWFrZUtleShrZXlzLlRhYi5jb2RlLCBtb2RpZmllcnMuU2hpZnQpXSA9IGhhbmRsZVNoaWZ0VGFi
S2V5OwogICAgIH0sCiAKKyAgICBfaGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5nZTog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd1doaXRlc3BhY2UgPSBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5nZXQoKTsKKyAgICAgICAgdmFy
IHZpc2libGVGcm9tID0gdGhpcy5zY3JvbGxUb3AoKTsKKyAgICAgICAgdmFyIHZpc2libGVUbyA9
IHZpc2libGVGcm9tICsgdGhpcy5jbGllbnRIZWlnaHQoKTsKKworICAgICAgICBpZiAoIXZpc2li
bGVUbykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5m
aW5kVmlzaWJsZUNodW5rcyh2aXNpYmxlRnJvbSwgdmlzaWJsZVRvKTsKKyAgICAgICAgdmFyIHN0
YXJ0TGluZSA9IHRoaXMuX3RleHRDaHVua3NbcmVzdWx0LnN0YXJ0XS5zdGFydExpbmU7CisgICAg
ICAgIHZhciBlbmRMaW5lID0gdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuZW5kIC0gMV0uc3RhcnRM
aW5lICsgdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuZW5kIC0gMV0ubGluZXNDb3VudDsKKyAgICAg
ICAgdGhpcy5fcGFpbnRMaW5lcyhzdGFydExpbmUsIGVuZExpbmUgKyAxKTsKKyAgICB9LAorCiAg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHJlZ2V4CiAgICAgICogQHBhcmFtIHtzdHJp
bmd9IGNzc0NsYXNzCkBAIC0xNDcyLDYgKzE0OTgsOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3Iu
YWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5faGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5n
ZSk7CisKICAgICAgICAgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA9IHRoaXMu
X2hhbmRsZVNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpOwogICAgICAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5n
ZUxpc3RlbmVyLCBmYWxzZSk7CiAKQEAgLTE0ODEsNiArMTUwOSw4IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlv
bigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJ
bkVkaXRvci5yZW1vdmVDaGFuZ2VMaXN0ZW5lcih0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUlu
RWRpdG9yQ2hhbmdlKTsKKwogICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJz
ZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxz
ZSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyOwog
CkBAIC0xOTY4LDggKzE5OTgsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtFbGVtZW50fSBsaW5lUm93CiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IGxpbmUKICAgICAgKiBAcGFyYW0ge0FycmF5Ljx7c3RhcnRDb2x1bW46IG51
bWJlciwgZW5kQ29sdW1uOiBudW1iZXIsIHRva2VuOiA/c3RyaW5nfT59IHJhbmdlcworICAgICAq
IEBwYXJhbSB7Ym9vbGVhbj19IHNwbGl0V2hpdGVzcGFjZVNlcXVlbmNlcwogICAgICAqLwotICAg
IF9yZW5kZXJSYW5nZXM6IGZ1bmN0aW9uKGxpbmVSb3csIGxpbmUsIHJhbmdlcykKKyAgICBfcmVu
ZGVyUmFuZ2VzOiBmdW5jdGlvbihsaW5lUm93LCBsaW5lLCByYW5nZXMsIHNwbGl0V2hpdGVzcGFj
ZVNlcXVlbmNlcykKICAgICB7CiAgICAgICAgIHZhciBkZWNvcmF0aW9uc0VsZW1lbnQgPSBsaW5l
Um93LmRlY29yYXRpb25zRWxlbWVudDsKIApAQCAtMTk5MSwxMiArMjAyMiwxNSBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcih2YXIg
aSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZhciByYW5nZVN0
YXJ0ID0gcmFuZ2VzW2ldLnN0YXJ0Q29sdW1uOwogICAgICAgICAgICAgdmFyIHJhbmdlRW5kID0g
cmFuZ2VzW2ldLmVuZENvbHVtbjsKLSAgICAgICAgICAgIHZhciBjc3NDbGFzcyA9IHJhbmdlc1tp
XS50b2tlbiA/ICJ3ZWJraXQtIiArIHJhbmdlc1tpXS50b2tlbiA6ICIiOwogCiAgICAgICAgICAg
ICBpZiAocGxhaW5UZXh0U3RhcnQgPCByYW5nZVN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgdGhp
cy5faW5zZXJ0VGV4dE5vZGVCZWZvcmUobGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBsaW5l
LnN1YnN0cmluZyhwbGFpblRleHRTdGFydCwgcmFuZ2VTdGFydCkpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdGhpcy5faW5zZXJ0U3BhbkJlZm9yZShsaW5lUm93LCBkZWNvcmF0aW9uc0Vs
ZW1lbnQsIGxpbmUuc3Vic3RyaW5nKHJhbmdlU3RhcnQsIHJhbmdlRW5kICsgMSksIGNzc0NsYXNz
KTsKKworICAgICAgICAgICAgaWYgKHNwbGl0V2hpdGVzcGFjZVNlcXVlbmNlcyAmJiByYW5nZXNb
aV0udG9rZW4gPT09ICJ3aGl0ZXNwYWNlIikKKyAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJX
aGl0ZXNwYWNlQ2hhcnNXaXRoRml4ZWRTaXplU3BhbnMobGluZVJvdywgZGVjb3JhdGlvbnNFbGVt
ZW50LCByYW5nZUVuZCAtIHJhbmdlU3RhcnQgKyAxKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0aGlzLl9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxl
bWVudCwgbGluZS5zdWJzdHJpbmcocmFuZ2VTdGFydCwgcmFuZ2VFbmQgKyAxKSwgcmFuZ2VzW2ld
LnRva2VuID8gIndlYmtpdC0iICsgcmFuZ2VzW2ldLnRva2VuIDogIiIpOwogICAgICAgICAgICAg
cGxhaW5UZXh0U3RhcnQgPSByYW5nZUVuZCArIDE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHBs
YWluVGV4dFN0YXJ0IDwgbGluZS5sZW5ndGgpIHsKQEAgLTIwMDYsNiArMjA0MCwyMCBAQCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge0VsZW1lbnR9IGxpbmVSb3cKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGRl
Y29yYXRpb25zRWxlbWVudAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGgKKyAgICAgKi8K
KyAgICBfcmVuZGVyV2hpdGVzcGFjZUNoYXJzV2l0aEZpeGVkU2l6ZVNwYW5zOiBmdW5jdGlvbihs
aW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAo
dmFyIHdoaXRlc3BhY2VMZW5ndGggPSAxNjsgd2hpdGVzcGFjZUxlbmd0aCA+IDA7IHdoaXRlc3Bh
Y2VMZW5ndGggPj49IDEpIHsKKyAgICAgICAgICAgIHZhciBjc3NDbGFzcyA9ICJ3ZWJraXQtd2hp
dGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0iICsgd2hpdGVzcGFjZUxlbmd0aDsKKyAgICAgICAg
ICAgIGZvciAoOyBsZW5ndGggPj0gd2hpdGVzcGFjZUxlbmd0aDsgbGVuZ3RoIC09IHdoaXRlc3Bh
Y2VMZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0U3BhbkJlZm9yZShsaW5lUm93
LCBkZWNvcmF0aW9uc0VsZW1lbnQsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLl9D
b25zZWN1dGl2ZVdoaXRlc3BhY2VDaGFyc1t3aGl0ZXNwYWNlTGVuZ3RoXSwgY3NzQ2xhc3MpOwor
ICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbGlu
ZVJvdwogICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLkxpbmVPdmVybGF5SGlnaGxpZ2h0Pn0gb3ZlcmxheUhpZ2hsaWdodAogICAgICAqLwogICAg
IF9wYWludExpbmU6IGZ1bmN0aW9uKGxpbmVSb3csIG92ZXJsYXlIaWdobGlnaHQpCkBAIC0yMDIw
LDcgKzIwNjgsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgICAgIHZhciBsaW5lID0gdGhpcy5fdGV4dE1vZGVsLmxpbmUobGluZU51
bWJlcik7CiAgICAgICAgICAgICB2YXIgcmFuZ2VzID0gc3ludGF4SGlnaGxpZ2h0LnJhbmdlczsK
LSAgICAgICAgICAgIHRoaXMuX3JlbmRlclJhbmdlcyhsaW5lUm93LCBsaW5lLCByYW5nZXMpOwor
ICAgICAgICAgICAgdGhpcy5fcmVuZGVyUmFuZ2VzKGxpbmVSb3csIGxpbmUsIHJhbmdlcywgdGhp
cy5fc2hvd1doaXRlc3BhY2UpOwogCiAgICAgICAgICAgICBpZiAob3ZlcmxheUhpZ2hsaWdodCkK
ICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgb3ZlcmxheUhpZ2hsaWdodC5sZW5n
dGg7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzCmluZGV4IGUwNWE4NWIyMTJjOGU4N2EyMTM0YzBmYjE3MGRiNmNjOTkzZTk1OGEuLmIzMWM5
MDE0NGUzMjIzODc2MDdmMjBlYjI3OWM2ZDMzM2U1M2EyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTA5LDYgKzEwOSw3IEBAIFdl
Ykluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmRldmljZU9yaWVudGF0
aW9uT3ZlcnJpZGUgPSB0aGlzLmNyZWF0ZVNldHRpbmcoImRldmljZU9yaWVudGF0aW9uT3ZlcnJp
ZGUiLCAiIik7CiAgICAgdGhpcy5zaG93SGVhcFNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRp
ZXMgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNob3dIZWFTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9w
ZXJ0aWVzIiwgZmFsc2UpOwogICAgIHRoaXMuc2hvd05hdGl2ZVNuYXBzaG90VW5pbnN0cnVtZW50
ZWRTaXplID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzaG93TmF0aXZlU25hcHNob3RVbmluc3RydW1l
bnRlZFNpemUiLCBmYWxzZSk7CisgICAgdGhpcy5zaG93V2hpdGVzcGFjZUluRWRpdG9yID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJzaG93V2hpdGVzcGFjZUluRWRpdG9yIiwgZmFsc2UpOwogICAgIHRo
aXMuc2VhcmNoSW5Db250ZW50U2NyaXB0cyA9IHRoaXMuY3JlYXRlU2V0dGluZygic2VhcmNoSW5D
b250ZW50U2NyaXB0cyIsIGZhbHNlKTsKICAgICB0aGlzLnRleHRFZGl0b3JJbmRlbnQgPSB0aGlz
LmNyZWF0ZVNldHRpbmcoInRleHRFZGl0b3JJbmRlbnQiLCAiICAgICIpOwogICAgIHRoaXMubGFz
dERvY2tTdGF0ZSA9IHRoaXMuY3JlYXRlU2V0dGluZygibGFzdERvY2tTdGF0ZSIsICIiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3Jl
ZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVu
LmpzCmluZGV4IDY1NzgwMmM1MTdkMzk5ZTNkMzljNTMyOGQwNmViNzExYjdiMTU2MzYuLjA3MGE4
N2I5MDVjMGQ5YjlmZjIyZjFhNWVmNDY2Nzc4NWVmN2QzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtMzAzLDYg
KzMwMyw3IEBAIFdlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIgPSBmdW5jdGlvbigpCiAK
ICAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJj
ZXMiKSk7CiAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIiksIFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5zZWFyY2hJbkNvbnRlbnRTY3JpcHRzKSk7CisgICAgcC5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93
IHdoaXRlc3BhY2UiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0
b3IpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBzb3VyY2UgbWFwcyIpLCBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3Muc291cmNlTWFwc0VuYWJsZWQpKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1l
bnRzU2V0dGluZ3MuaXNFbmFibGVkKCJzYXNzIikpCiAgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhp
cy5fY3JlYXRlQ1NTQXV0b1JlbG9hZENvbnRyb2xzKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGln
aHQuY3NzCmluZGV4IDgxODk3ZDhkNDNkMWVlNzNmYTE3ZmRjNDVkMmQxODg1MzY3MDhiODQuLjEy
MmFlMzJjY2M0NTBmNTVmN2ZmYTcyOWEwOTI2ZWQxNDRmNDI2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRh
eEhpZ2hsaWdodC5jc3MKQEAgLTcwLDYgKzcwLDMxIEBACiAgICAgY29sb3I6IGJsYWNrOwogfQog
Cisud2Via2l0LXdoaXRlc3BhY2UtMTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrciOworfQor
Cisud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrfCtyI7Cit9
CisKKy53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICLCt8K3wrfC
tyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS04OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICLC
t8K3wrfCt8K3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTE2OjpiZWZvcmUgewor
ICAgIGNvbnRlbnQ6ICLCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCtyI7Cit9CisKKy53
ZWJraXQtd2hpdGVzcGFjZTo6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
Y29sb3I6IHJnYigxNzUsIDE3NSwgMTc1KTsKK30KKwogLndlYmtpdC1odG1sLWNvbW1lbnQgewog
ICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0
bWwtY29tbWVudCkgKi8KICAgICBjb2xvcjogcmdiKDM1LCAxMTAsIDM3KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YTBl
OGNiYTM4YmJlZjZlMTJiYTA5YjI2MjE2NzE5NTUzYmFiZGE5Li5lNTk5NzdjZDA4MDQ5NjU3MTE1
MmNmYjA5M2RkNjY5N2UxMjZhNzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMDYg
IEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHNob3cgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIERURQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTQ3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IHRv
IHZlcmlmeSB3aGl0ZXNwYWNlIGhpZ2hsaWdodCBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICog
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hp
dGVzcGFjZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0wNiAgTWFyamEgSMO2bHR0w6QgIDxtYXJq
YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1dLMl0gTmV3IHRlc3RzIGludHJvZHVjZWQgaW4g
cjEwMDg5NSBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU0MzA2ZDFmNTM5MTgzN2NkNDE0OGY3OWUxMmJjMjJlNDQ5NDllNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hv
dy13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUaGlzIHRlc3QgY2hl
Y2tzIGhvdyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxp
Z2h0IHRoZW0gaWYgdGhlIGFwcHJvcHJpYXRlIHNldHRpbmcgaXMgc2V0IHVwLgorCitBY3R1YWwg
dGV4dDoKK2Z1bmN0aW9uIGZvbyhhLCBiKQoreworICAgIC8vIHNwYWNlcyBpbiBjb21tZW50Cisg
ICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOworICAgIGEgPSAyOyAgICAgICAgICAgICAgIGEg
PSAzOworfQorPT09PT09PT09PSBFZGl0b3IgSFRNTCBzaG93V2hpdGVzcGFjZUluRWRpdG9yIE9G
RiA9PT09PT09PT09CisKKzxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciIgdGFiaW5kZXg9IjAi
PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1q
YXZhc2NyaXB0LWtleXdvcmQiPmZ1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hp
dGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmZv
bzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLXN0YXJ0Ij4oPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj4sPHNwYW4gY2xhc3M9IndlYmtp
dC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVu
dCI+Yjwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLWVuZCI+KTwvc3Bhbj48L2Rpdj4K
KzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxv
Y2stc3RhcnQiPns8L3NwYW4+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8vIHNwYWNlcyBpbiBjb21tZW50PC9zcGFuPjwv
ZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtp
dC13aGl0ZXNwYWNlIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1p
ZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LWphdmFzY3JpcHQtc3RyaW5nIj4ic3RyaW5nIHdpdGggc3BhY2VzIjwvc3Bhbj47PC9kaXY+Cis8
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRl
c3BhY2UiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5h
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj49PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNj
cmlwdC1udW1iZXIiPjI8L3NwYW4+OzxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+ICAg
ICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+
YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFz
Y3JpcHQtbnVtYmVyIj4zPC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNv
bnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYmxvY2stZW5kIj59PC9zcGFuPjwvZGl2PjwvZGl2
PgorPT09PT09PT09PSBFZGl0b3IgSFRNTCBhZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNwYWNlSW5F
ZGl0b3IgT04gPT09PT09PT09PQorCis8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIiIHRhYmlu
ZGV4PSIwIj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmZvbzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJy
YWNlLXN0YXJ0Ij4oPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+
YTwvc3Bhbj4sPHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5iPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2UtZW5kIj4pPC9zcGFuPjwvZGl2PgorPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1ibG9jay1zdGFydCI+
ezwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Ij4vLyBzcGFjZXMgaW4gY29tbWVu
dDwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj49PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3Nw
YW4+OzwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9
IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAgICA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJr
aXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPj08c3BhbiBjbGFzcz0i
d2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWphdmFzY3JpcHQtbnVtYmVyIj4yPC9zcGFuPjs8c3BhbiBjbGFzcz0id2Via2l0
LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtOCI+ICAgICAgICA8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAgICA8L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTIiPiAgPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj49PHNw
YW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LW51bWJlciI+Mzwvc3Bhbj47PC9kaXY+Cis8
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWJsb2Nr
LWVuZCI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODI5ZTdjNWUzMWNkOTg2NDdhM2RiMDFkZGRkNjA0ZWZlZjhjYjMwMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hv
dy13aGl0ZXNwYWNlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworZnVuY3Rpb24gZm9vKGEsIGIpCit7CisgICAgLy8gc3BhY2Vz
IGluIGNvbW1lbnQKKyAgICBhID0gInN0cmluZyB3aXRoIHNwYWNlcyI7CisgICAgYSA9IDI7ICAg
ICAgICAgICAgICAgYSA9IDM7Cit9CisKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1do
aXRlc3BhY2VJbkVkaXRvci5zZXQoZmFsc2UpOworICAgIHZhciB0ZXh0RWRpdG9yID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7CisgICAgdGV4dEVkaXRvci5vdmVycmlkZVZpZXdw
b3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOworICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAi
dGV4dC9qYXZhc2NyaXB0IjsKKyAgICB0ZXh0RWRpdG9yLnNldFRleHQoZm9vLnRvU3RyaW5nKCkp
OworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBY3R1YWwgdGV4dDoiKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRleHQoKSk7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PT09PT09PT0gRWRpdG9yIEhUTUwgc2hvd1doaXRlc3BhY2VJbkVkaXRv
ciBPRkYgPT09PT09PT09PSIpOworICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4
dEVkaXRvciwgdHJ1ZSk7CisgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNl
SW5FZGl0b3Iuc2V0KHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09
PT09IEVkaXRvciBIVE1MIGFmdGVyIHNldHRpbmcgc2hvd1doaXRlc3BhY2VJbkVkaXRvciBPTiA9
PT09PT09PT09Iik7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9y
LCB0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxwPgorVGhpcyB0ZXN0
IGNoZWNrcyBob3cgdGV4dCBlZGl0b3Igc3BsaXRzIHdoaXRlc3BhY2Ugc2VxdWVuY2VzIHRvIGhp
Z2hsaWdodCB0aGVtIGlmIHRoZSBhcHByb3ByaWF0ZQorc2V0dGluZyBpcyBzZXQgdXAuCis8L3A+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187054</attachid>
            <date>2013-02-07 04:07:38 -0800</date>
            <delta_ts>2013-02-07 07:05:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130207160413.patch</filename>
            <type>text/plain</type>
            <size>18218</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uMzViYWYxNDE4MjM3YTkwZTdjMWRhOWExMjM3ZDlm
NTdiNDViZGM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTA2ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbnRvIGdyb3VwcyBvZiAxNiwgOCwgNCwg
MiBhbmQgMSBhbmQKKyAgICAgICAgYWRkIDo6YmVmb3JlIHBzZXVkb2NsYXNzIGZvciB0aGlzIGdy
b3VwcyB3aGljaCBjb250YWlucyBuZWNlc3NhcnkKKyAgICAgICAgYW1vdW50IG9mICJkb3RzIiAo
dSswMGI3KS4gQWRkIGEgc2V0dGluZyAiU2hvdyB3aGl0ZXNwYWNlIiBmb3IgdGhpcworICAgICAg
ICBvcHRpb24gaW4gIlNvdXJjZXMiIHNlY3Rpb24gb2YgIkdlbmVyYWwiIHRhYi4KKworICAgICAg
ICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3JlbmRlclJhbmdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUu
X3JlbmRlcldoaXRlc3BhY2VDaGFyc1dpdGhGaXhlZFNpemVTcGFucyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50TGluZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkdl
bmVyaWNTZXR0aW5nc1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3JTeW50YXhIaWdobGlnaHQuY3NzOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNwYWNlLTE6OmJl
Zm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlKToKKyAgICAgICAg
KC53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUpOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNw
YWNlLTg6OmJlZm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMTY6OmJlZm9yZSk6
CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2U6OmJlZm9yZSk6CisKIDIwMTMtMDItMDYgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIEdseXBo
UGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwgZ2x5cGhzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHNhbWUg
Zm9udC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCBkYTFmZDRmZmE2NzMyZTRjZTVhM2ZiMWJhZGVmNzUyNmM3ZWZkODhiLi5lMmQw
ZTgxODhhZjQ4ZmFlYzBiYjVkNzg4MDI5ZWRjMmRkZmMzNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0zOTAsNiArMzkwLDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyBydWxlcnMiXSA9ICJTaG93IHJ1bGVycyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTaG93IFNoYWRvdyBET00iXSA9ICJTaG93IFNoYWRvdyBET00iOwogbG9j
YWxpemVkU3RyaW5nc1siU2hvdyB0aW1lcyBhcyBwZXJjZW50YWdlcy4iXSA9ICJTaG93IHRpbWVz
IGFzIHBlcmNlbnRhZ2VzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHRvdGFsIGFuZCBzZWxm
IHRpbWVzIGFzIHBlcmNlbnRhZ2VzLiJdID0gIlNob3cgdG90YWwgYW5kIHNlbGYgdGltZXMgYXMg
cGVyY2VudGFnZXMuIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNob3cgd2hpdGVzcGFjZSJdID0gIlNo
b3cgd2hpdGVzcGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaXplIl0gPSAiU2l6ZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTbmFwc2hvdCAlZCJdID0gIlNuYXBzaG90ICVkIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVuZCBUaW1lIl0gPSAiRW5kIFRpbWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKaW5kZXggNjY5MTQy
OWEyNmQxNTY3NjViNDViMDlkMmRlZTcwYTVkMWJlOTY4MS4uODVmMzQ1NGNkODM5MTk5NGRmYTI2
NTc3YWQyZjdhYWY5NGVmYjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCkBAIC0xMzY0LDYgKzEzNjQsOSBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB0
ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9sbAogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJ0ZXh0SW5wdXQiLCB0aGlzLl9oYW5kbGVUZXh0SW5wdXQuYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVD
dXQuYmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAgdGhpcy5fc2hvd1doaXRlc3BhY2UgPSBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5nZXQoKTsKKyAgICB0aGlz
Ll9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlID0gdGhpcy5faGFuZGxlU2hvd1do
aXRlc3BhY2VJbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpOworCiAgICAgdGhpcy5fY29udGFpbmVy
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFuZGxlRm9jdXNlZC5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAKICAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycyA9IFtdOwpAQCAtMTM3
NSw2ICsxMzc4LDE0IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rp
b24oZGVsZWdhdGUsIHRleHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAgICAgdGhpcy5fcmVnaXN0
ZXJTaG9ydGN1dHMoKTsKIH0KIAorV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuX0Nv
bnNlY3V0aXZlV2hpdGVzcGFjZUNoYXJzID0geworICAgIDE6ICIgIiwKKyAgICAyOiAiICAiLAor
ICAgIDQ6ICIgICAgIiwKKyAgICA4OiAiICAgICAgICAiLAorICAgIDE2OiAiICAgICAgICAgICAg
ICAgICIKK307CisKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKICAgICB7CkBAIC0xMzk3LDYg
KzE0MDgsMjEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9zaG9ydGN1dHNbV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
bWFrZUtleShrZXlzLlRhYi5jb2RlLCBtb2RpZmllcnMuU2hpZnQpXSA9IGhhbmRsZVNoaWZ0VGFi
S2V5OwogICAgIH0sCiAKKyAgICBfaGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5nZTog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd1doaXRlc3BhY2UgPSBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5nZXQoKTsKKyAgICAgICAgdmFy
IHZpc2libGVGcm9tID0gdGhpcy5zY3JvbGxUb3AoKTsKKyAgICAgICAgdmFyIHZpc2libGVUbyA9
IHZpc2libGVGcm9tICsgdGhpcy5jbGllbnRIZWlnaHQoKTsKKworICAgICAgICBpZiAoIXZpc2li
bGVUbykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5m
aW5kVmlzaWJsZUNodW5rcyh2aXNpYmxlRnJvbSwgdmlzaWJsZVRvKTsKKyAgICAgICAgdmFyIHN0
YXJ0TGluZSA9IHRoaXMuX3RleHRDaHVua3NbcmVzdWx0LnN0YXJ0XS5zdGFydExpbmU7CisgICAg
ICAgIHZhciBlbmRMaW5lID0gdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuZW5kIC0gMV0uc3RhcnRM
aW5lICsgdGhpcy5fdGV4dENodW5rc1tyZXN1bHQuZW5kIC0gMV0ubGluZXNDb3VudDsKKyAgICAg
ICAgdGhpcy5fcGFpbnRMaW5lcyhzdGFydExpbmUsIGVuZExpbmUgKyAxKTsKKyAgICB9LAorCiAg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHJlZ2V4CiAgICAgICogQHBhcmFtIHtzdHJp
bmd9IGNzc0NsYXNzCkBAIC0xNDcyLDYgKzE0OTgsOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3Iu
YWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5faGFuZGxlU2hvd1doaXRlc3BhY2VJbkVkaXRvckNoYW5n
ZSk7CisKICAgICAgICAgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA9IHRoaXMu
X2hhbmRsZVNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpOwogICAgICAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5n
ZUxpc3RlbmVyLCBmYWxzZSk7CiAKQEAgLTE0ODEsNiArMTUwOSw4IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlv
bigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJ
bkVkaXRvci5yZW1vdmVDaGFuZ2VMaXN0ZW5lcih0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUlu
RWRpdG9yQ2hhbmdlKTsKKwogICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJz
ZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxz
ZSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyOwog
CkBAIC0xOTY4LDggKzE5OTgsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtFbGVtZW50fSBsaW5lUm93CiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IGxpbmUKICAgICAgKiBAcGFyYW0ge0FycmF5Ljx7c3RhcnRDb2x1bW46IG51
bWJlciwgZW5kQ29sdW1uOiBudW1iZXIsIHRva2VuOiA/c3RyaW5nfT59IHJhbmdlcworICAgICAq
IEBwYXJhbSB7Ym9vbGVhbj19IHNwbGl0V2hpdGVzcGFjZVNlcXVlbmNlcwogICAgICAqLwotICAg
IF9yZW5kZXJSYW5nZXM6IGZ1bmN0aW9uKGxpbmVSb3csIGxpbmUsIHJhbmdlcykKKyAgICBfcmVu
ZGVyUmFuZ2VzOiBmdW5jdGlvbihsaW5lUm93LCBsaW5lLCByYW5nZXMsIHNwbGl0V2hpdGVzcGFj
ZVNlcXVlbmNlcykKICAgICB7CiAgICAgICAgIHZhciBkZWNvcmF0aW9uc0VsZW1lbnQgPSBsaW5l
Um93LmRlY29yYXRpb25zRWxlbWVudDsKIApAQCAtMTk5MSwxMiArMjAyMiwxNSBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcih2YXIg
aSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZhciByYW5nZVN0
YXJ0ID0gcmFuZ2VzW2ldLnN0YXJ0Q29sdW1uOwogICAgICAgICAgICAgdmFyIHJhbmdlRW5kID0g
cmFuZ2VzW2ldLmVuZENvbHVtbjsKLSAgICAgICAgICAgIHZhciBjc3NDbGFzcyA9IHJhbmdlc1tp
XS50b2tlbiA/ICJ3ZWJraXQtIiArIHJhbmdlc1tpXS50b2tlbiA6ICIiOwogCiAgICAgICAgICAg
ICBpZiAocGxhaW5UZXh0U3RhcnQgPCByYW5nZVN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgdGhp
cy5faW5zZXJ0VGV4dE5vZGVCZWZvcmUobGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBsaW5l
LnN1YnN0cmluZyhwbGFpblRleHRTdGFydCwgcmFuZ2VTdGFydCkpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdGhpcy5faW5zZXJ0U3BhbkJlZm9yZShsaW5lUm93LCBkZWNvcmF0aW9uc0Vs
ZW1lbnQsIGxpbmUuc3Vic3RyaW5nKHJhbmdlU3RhcnQsIHJhbmdlRW5kICsgMSksIGNzc0NsYXNz
KTsKKworICAgICAgICAgICAgaWYgKHNwbGl0V2hpdGVzcGFjZVNlcXVlbmNlcyAmJiByYW5nZXNb
aV0udG9rZW4gPT09ICJ3aGl0ZXNwYWNlIikKKyAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJX
aGl0ZXNwYWNlQ2hhcnNXaXRoRml4ZWRTaXplU3BhbnMobGluZVJvdywgZGVjb3JhdGlvbnNFbGVt
ZW50LCByYW5nZUVuZCAtIHJhbmdlU3RhcnQgKyAxKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0aGlzLl9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxl
bWVudCwgbGluZS5zdWJzdHJpbmcocmFuZ2VTdGFydCwgcmFuZ2VFbmQgKyAxKSwgcmFuZ2VzW2ld
LnRva2VuID8gIndlYmtpdC0iICsgcmFuZ2VzW2ldLnRva2VuIDogIiIpOwogICAgICAgICAgICAg
cGxhaW5UZXh0U3RhcnQgPSByYW5nZUVuZCArIDE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHBs
YWluVGV4dFN0YXJ0IDwgbGluZS5sZW5ndGgpIHsKQEAgLTIwMDYsNiArMjA0MCwyMCBAQCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge0VsZW1lbnR9IGxpbmVSb3cKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGRl
Y29yYXRpb25zRWxlbWVudAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGgKKyAgICAgKi8K
KyAgICBfcmVuZGVyV2hpdGVzcGFjZUNoYXJzV2l0aEZpeGVkU2l6ZVNwYW5zOiBmdW5jdGlvbihs
aW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAo
dmFyIHdoaXRlc3BhY2VMZW5ndGggPSAxNjsgd2hpdGVzcGFjZUxlbmd0aCA+IDA7IHdoaXRlc3Bh
Y2VMZW5ndGggPj49IDEpIHsKKyAgICAgICAgICAgIHZhciBjc3NDbGFzcyA9ICJ3ZWJraXQtd2hp
dGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0iICsgd2hpdGVzcGFjZUxlbmd0aDsKKyAgICAgICAg
ICAgIGZvciAoOyBsZW5ndGggPj0gd2hpdGVzcGFjZUxlbmd0aDsgbGVuZ3RoIC09IHdoaXRlc3Bh
Y2VMZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0U3BhbkJlZm9yZShsaW5lUm93
LCBkZWNvcmF0aW9uc0VsZW1lbnQsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLl9D
b25zZWN1dGl2ZVdoaXRlc3BhY2VDaGFyc1t3aGl0ZXNwYWNlTGVuZ3RoXSwgY3NzQ2xhc3MpOwor
ICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbGlu
ZVJvdwogICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLkxpbmVPdmVybGF5SGlnaGxpZ2h0Pn0gb3ZlcmxheUhpZ2hsaWdodAogICAgICAqLwogICAg
IF9wYWludExpbmU6IGZ1bmN0aW9uKGxpbmVSb3csIG92ZXJsYXlIaWdobGlnaHQpCkBAIC0yMDIw
LDcgKzIwNjgsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgICAgIHZhciBsaW5lID0gdGhpcy5fdGV4dE1vZGVsLmxpbmUobGluZU51
bWJlcik7CiAgICAgICAgICAgICB2YXIgcmFuZ2VzID0gc3ludGF4SGlnaGxpZ2h0LnJhbmdlczsK
LSAgICAgICAgICAgIHRoaXMuX3JlbmRlclJhbmdlcyhsaW5lUm93LCBsaW5lLCByYW5nZXMpOwor
ICAgICAgICAgICAgdGhpcy5fcmVuZGVyUmFuZ2VzKGxpbmVSb3csIGxpbmUsIHJhbmdlcywgdGhp
cy5fc2hvd1doaXRlc3BhY2UpOwogCiAgICAgICAgICAgICBpZiAob3ZlcmxheUhpZ2hsaWdodCkK
ICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgb3ZlcmxheUhpZ2hsaWdodC5sZW5n
dGg7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzCmluZGV4IGUwNWE4NWIyMTJjOGU4N2EyMTM0YzBmYjE3MGRiNmNjOTkzZTk1OGEuLmIzMWM5
MDE0NGUzMjIzODc2MDdmMjBlYjI3OWM2ZDMzM2U1M2EyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTA5LDYgKzEwOSw3IEBAIFdl
Ykluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmRldmljZU9yaWVudGF0
aW9uT3ZlcnJpZGUgPSB0aGlzLmNyZWF0ZVNldHRpbmcoImRldmljZU9yaWVudGF0aW9uT3ZlcnJp
ZGUiLCAiIik7CiAgICAgdGhpcy5zaG93SGVhcFNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRp
ZXMgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNob3dIZWFTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9w
ZXJ0aWVzIiwgZmFsc2UpOwogICAgIHRoaXMuc2hvd05hdGl2ZVNuYXBzaG90VW5pbnN0cnVtZW50
ZWRTaXplID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzaG93TmF0aXZlU25hcHNob3RVbmluc3RydW1l
bnRlZFNpemUiLCBmYWxzZSk7CisgICAgdGhpcy5zaG93V2hpdGVzcGFjZUluRWRpdG9yID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJzaG93V2hpdGVzcGFjZUluRWRpdG9yIiwgZmFsc2UpOwogICAgIHRo
aXMuc2VhcmNoSW5Db250ZW50U2NyaXB0cyA9IHRoaXMuY3JlYXRlU2V0dGluZygic2VhcmNoSW5D
b250ZW50U2NyaXB0cyIsIGZhbHNlKTsKICAgICB0aGlzLnRleHRFZGl0b3JJbmRlbnQgPSB0aGlz
LmNyZWF0ZVNldHRpbmcoInRleHRFZGl0b3JJbmRlbnQiLCAiICAgICIpOwogICAgIHRoaXMubGFz
dERvY2tTdGF0ZSA9IHRoaXMuY3JlYXRlU2V0dGluZygibGFzdERvY2tTdGF0ZSIsICIiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3Jl
ZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVu
LmpzCmluZGV4IDY1NzgwMmM1MTdkMzk5ZTNkMzljNTMyOGQwNmViNzExYjdiMTU2MzYuLjA3MGE4
N2I5MDVjMGQ5YjlmZjIyZjFhNWVmNDY2Nzc4NWVmN2QzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtMzAzLDYg
KzMwMyw3IEBAIFdlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIgPSBmdW5jdGlvbigpCiAK
ICAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJj
ZXMiKSk7CiAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIiksIFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5zZWFyY2hJbkNvbnRlbnRTY3JpcHRzKSk7CisgICAgcC5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93
IHdoaXRlc3BhY2UiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0
b3IpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBzb3VyY2UgbWFwcyIpLCBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3Muc291cmNlTWFwc0VuYWJsZWQpKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1l
bnRzU2V0dGluZ3MuaXNFbmFibGVkKCJzYXNzIikpCiAgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhp
cy5fY3JlYXRlQ1NTQXV0b1JlbG9hZENvbnRyb2xzKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGln
aHQuY3NzCmluZGV4IDgxODk3ZDhkNDNkMWVlNzNmYTE3ZmRjNDVkMmQxODg1MzY3MDhiODQuLjEy
MmFlMzJjY2M0NTBmNTVmN2ZmYTcyOWEwOTI2ZWQxNDRmNDI2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRh
eEhpZ2hsaWdodC5jc3MKQEAgLTcwLDYgKzcwLDMxIEBACiAgICAgY29sb3I6IGJsYWNrOwogfQog
Cisud2Via2l0LXdoaXRlc3BhY2UtMTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrciOworfQor
Cisud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiwrfCtyI7Cit9
CisKKy53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICLCt8K3wrfC
tyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS04OjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICLC
t8K3wrfCt8K3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTE2OjpiZWZvcmUgewor
ICAgIGNvbnRlbnQ6ICLCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCt8K3wrfCtyI7Cit9CisKKy53
ZWJraXQtd2hpdGVzcGFjZTo6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
Y29sb3I6IHJnYigxNzUsIDE3NSwgMTc1KTsKK30KKwogLndlYmtpdC1odG1sLWNvbW1lbnQgewog
ICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0
bWwtY29tbWVudCkgKi8KICAgICBjb2xvcjogcmdiKDM1LCAxMTAsIDM3KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YTBl
OGNiYTM4YmJlZjZlMTJiYTA5YjI2MjE2NzE5NTUzYmFiZGE5Li5lNTk5NzdjZDA4MDQ5NjU3MTE1
MmNmYjA5M2RkNjY5N2UxMjZhNzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMDYg
IEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHNob3cgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIERURQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTQ3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IHRv
IHZlcmlmeSB3aGl0ZXNwYWNlIGhpZ2hsaWdodCBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICog
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hp
dGVzcGFjZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0wNiAgTWFyamEgSMO2bHR0w6QgIDxtYXJq
YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1dLMl0gTmV3IHRlc3RzIGludHJvZHVjZWQgaW4g
cjEwMDg5NSBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjJmMjhhMzk1NmM2OGViZGNjZjQ3ZGJiYzk1YTQ2NWVkYjQ3YWZjNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hv
dy13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUaGlzIHRlc3QgY2hl
Y2tzIGhvdyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxp
Z2h0IHRoZW0gaWYgdGhlIGFwcHJvcHJpYXRlIHNldHRpbmcgaXMgc2V0IHVwLgorCitBY3R1YWwg
dGV4dDoKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgLy8gc3BhY2VzIGluIGNvbW1lbnQKKyAg
ICBhID0gInN0cmluZyB3aXRoIHNwYWNlcyI7CisgICAgYSA9IDI7ICAgICAgICAgICAgICAgYSA9
IDM7Cit9Cis9PT09PT09PT09IEVkaXRvciBIVE1MIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT0ZG
ID09PT09PT09PT0KKworPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+
Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWph
dmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0
ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Zm9v
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2Utc3RhcnQiPig8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPiw8c3BhbiBjbGFzcz0id2Via2l0
LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50
Ij5iPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtYnJhY2UtZW5kIj4pPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWJsb2Nr
LXN0YXJ0Ij57PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+
PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Ij4vLyBzcGFjZXMgaW4gY29tbWVudDwvc3Bhbj48L2Rp
dj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZSI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRl
bnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPj08c3Bh
biBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1q
YXZhc2NyaXB0LXN0cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3NwYW4+OzwvZGl2PgorPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNw
YWNlIj4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNsYXNz
PSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3Jp
cHQtbnVtYmVyIj4yPC9zcGFuPjs8c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICAg
ICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8
L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPj08c3BhbiBjbGFz
cz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2Ny
aXB0LW51bWJlciI+Mzwvc3Bhbj47PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250
ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWJsb2NrLWVuZCI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4K
Kz09PT09PT09PT0gRWRpdG9yIEhUTUwgYWZ0ZXIgc2V0dGluZyBzaG93V2hpdGVzcGFjZUluRWRp
dG9yIE9OID09PT09PT09PT0KKworPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRl
eD0iMCI+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Vi
a2l0LWphdmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtp
dC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5mb288L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1icmFj
ZS1zdGFydCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8
L3NwYW4+LDxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0x
Ij4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Yjwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWJyYWNlLWVuZCI+KTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Vi
a2l0LWJsb2NrLXN0YXJ0Ij57PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8v
IHNwYWNlcyBpbiBjb21tZW50PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4g
PC9zcGFuPj08c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2Ut
MSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtc3RyaW5nIj4ic3RyaW5n
IHdpdGggc3BhY2VzIjwvc3Bhbj47PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250
ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtNCI+
ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3Nw
YW4+PTxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4g
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIiPjI8L3NwYW4+Ozxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS04Ij4gICAgICAg
IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2Ut
NCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtMiI+ICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13
aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50
Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFj
ZS0xIj4gPC9zcGFuPj08c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtbnVtYmVyIj4z
PC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtYmxvY2stZW5kIj59PC9zcGFuPjwvZGl2PjwvZGl2PgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFj
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdo
aXRlc3BhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzVkZWI2NWI4YjRiMzk0MTlmODg0OGQ2NGU4ZGJj
ODc1ZWFiYjBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CitmdW5jdGlvbiBmb28oYSwgYikg
eworICAgIC8vIHNwYWNlcyBpbiBjb21tZW50CisgICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMi
OworICAgIGEgPSAyOyAgICAgICAgICAgICAgIGEgPSAzOworfQorCisgICAgV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3Iuc2V0KGZhbHNlKTsKKyAgICB2YXIgdGV4
dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOworICAgIHRleHRFZGl0
b3Iub3ZlcnJpZGVWaWV3cG9ydEZvclRlc3QoMCwgdW5kZWZpbmVkLCAzKTsKKyAgICB0ZXh0RWRp
dG9yLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7CisgICAgdGV4dEVkaXRvci5zZXRUZXh0
KGZvby50b1N0cmluZygpKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWN0dWFsIHRl
eHQ6Iik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci50ZXh0KCkpOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09IEVkaXRvciBIVE1MIHNob3dX
aGl0ZXNwYWNlSW5FZGl0b3IgT0ZGID09PT09PT09PT0iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1
bXBFZGl0b3JIVE1MKHRleHRFZGl0b3IsIHRydWUpOworICAgIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5zaG93V2hpdGVzcGFjZUluRWRpdG9yLnNldCh0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiPT09PT09PT09PSBFZGl0b3IgSFRNTCBhZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNw
YWNlSW5FZGl0b3IgT04gPT09PT09PT09PSIpOworICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRv
ckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+
Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgaG93IHRleHQgZWRpdG9yIHNwbGl0cyB3aGl0ZXNwYWNl
IHNlcXVlbmNlcyB0byBoaWdobGlnaHQgdGhlbSBpZiB0aGUgYXBwcm9wcmlhdGUKK3NldHRpbmcg
aXMgc2V0IHVwLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187100</attachid>
            <date>2013-02-07 07:06:02 -0800</date>
            <delta_ts>2013-02-09 01:59:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108947-20130207190236.patch</filename>
            <type>text/plain</type>
            <size>17900</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNhZTkzYTM2ODAxMTQw
YzhmOGU0YzVmMzcxMGI1OWMwYzc0MDYyOS4uNzVlZTQwZGFjODE3NjgyZjM4ZjM5ZjE1MzY2OTFm
NDkzZmVmMTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTA3ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiBEVEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk0NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0OiBpbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZXMuaHRtbAorCisgICAgICAgIFNwbGl0IGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbnRvIGdyb3VwcyBvZiAxNiwgOCwgNCwg
MiBhbmQgMSBhbmQKKyAgICAgICAgYWRkIDo6YmVmb3JlIHBzZXVkb2NsYXNzIGZvciB0aGlzIGdy
b3VwcyB3aGljaCBjb250YWlucyBuZWNlc3NhcnkKKyAgICAgICAgYW1vdW50IG9mICJkb3RzIiAo
dSswMGI3KS4gQWRkIGEgc2V0dGluZyAiU2hvdyB3aGl0ZXNwYWNlIiBmb3IgdGhpcworICAgICAg
ICBvcHRpb24gaW4gIlNvdXJjZXMiIHNlY3Rpb24gb2YgIkdlbmVyYWwiIHRhYi4KKworICAgICAg
ICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3JlbmRlclJhbmdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUu
X3JlbmRlcldoaXRlc3BhY2VDaGFyc1dpdGhGaXhlZFNpemVTcGFucyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50TGluZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkdl
bmVyaWNTZXR0aW5nc1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3JTeW50YXhIaWdobGlnaHQuY3NzOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNwYWNlLTE6OmJl
Zm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMjo6YmVmb3JlKToKKyAgICAgICAg
KC53ZWJraXQtd2hpdGVzcGFjZS00OjpiZWZvcmUpOgorICAgICAgICAoLndlYmtpdC13aGl0ZXNw
YWNlLTg6OmJlZm9yZSk6CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2UtMTY6OmJlZm9yZSk6
CisgICAgICAgICgud2Via2l0LXdoaXRlc3BhY2U6OmJlZm9yZSk6CisKIDIwMTMtMDItMDcgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQ2xvc3VyZSBjb21waWxhdGlvbiBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGRhMWZkNGZmYTY3MzJlNGNlNWEz
ZmIxYmFkZWY3NTI2YzdlZmQ4OGIuLmUyZDBlODE4OGFmNDhmYWVjMGJiNWQ3ODgwMjllZGMyZGRm
YzM1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKQEAgLTM5MCw2ICszOTAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHJ1bGVy
cyJdID0gIlNob3cgcnVsZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgU2hhZG93IERPTSJd
ID0gIlNob3cgU2hhZG93IERPTSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IHRpbWVzIGFzIHBl
cmNlbnRhZ2VzLiJdID0gIlNob3cgdGltZXMgYXMgcGVyY2VudGFnZXMuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlNob3cgdG90YWwgYW5kIHNlbGYgdGltZXMgYXMgcGVyY2VudGFnZXMuIl0gPSAiU2hv
dyB0b3RhbCBhbmQgc2VsZiB0aW1lcyBhcyBwZXJjZW50YWdlcy4iOworbG9jYWxpemVkU3RyaW5n
c1siU2hvdyB3aGl0ZXNwYWNlIl0gPSAiU2hvdyB3aGl0ZXNwYWNlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNpemUiXSA9ICJTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNuYXBzaG90ICVkIl0gPSAi
U25hcHNob3QgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5kIFRpbWUiXSA9ICJFbmQgVGltZSI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRU
ZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0
VGV4dEVkaXRvci5qcwppbmRleCAwNWI4ZTFiMWZkZjU4YWU4Mzg5MzQyNWM1NWE5YWY2NWE1YWVi
ZmUyLi43MGVjMTY0ZjA4MzM3MTA5NzRmYTdhNzIzYTIxMmRjZDk3YTg0M2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0
b3IuanMKQEAgLTEzNjQsNiArMTM2NCw5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsID0gZnVuY3Rpb24oZGVsZWdhdGUsIHRleHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAgICAg
dGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRleHRJbnB1dCIsIHRoaXMuX2hhbmRsZVRl
eHRJbnB1dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImN1dCIsIHRoaXMuX2hhbmRsZUN1dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKKyAgICB0
aGlzLl9zaG93V2hpdGVzcGFjZSA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFj
ZUluRWRpdG9yLmdldCgpOworICAgIHRoaXMuX2hhbmRsZVNob3dXaGl0ZXNwYWNlSW5FZGl0b3JD
aGFuZ2UgPSB0aGlzLl9oYW5kbGVTaG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlLmJpbmQodGhp
cyk7CisKICAgICB0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlz
Ll9oYW5kbGVGb2N1c2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRoaXMuX2hpZ2hsaWdo
dERlc2NyaXB0b3JzID0gW107CkBAIC0xMzc3LDYgKzEzODAsMTQgQEAgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4dE1vZGVsLCB1cmwsIHN5
bmNTY3JvbGwKICAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogfQogCitXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5fQ29uc2VjdXRpdmVXaGl0ZXNwYWNlQ2hhcnMgPSB7Cisg
ICAgMTogIiAiLAorICAgIDI6ICIgICIsCisgICAgNDogIiAgICAiLAorICAgIDg6ICIgICAgICAg
ICIsCisgICAgMTY6ICIgICAgICAgICAgICAgICAgIgorfTsKKwogV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgIF9yZWdpc3RlclNob3J0Y3V0czogZnVu
Y3Rpb24oKQogICAgIHsKQEAgLTEzOTksNiArMTQxMCwyMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5KGtleXMuVGFiLmNvZGUsIG1vZGlmaWVy
cy5TaGlmdCldID0gaGFuZGxlU2hpZnRUYWJLZXk7CiAgICAgfSwKIAorICAgIF9oYW5kbGVTaG93
V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlz
Ll9zaG93V2hpdGVzcGFjZSA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZUlu
RWRpdG9yLmdldCgpOworICAgICAgICB2YXIgdmlzaWJsZUZyb20gPSB0aGlzLnNjcm9sbFRvcCgp
OworICAgICAgICB2YXIgdmlzaWJsZVRvID0gdmlzaWJsZUZyb20gKyB0aGlzLmNsaWVudEhlaWdo
dCgpOworCisgICAgICAgIGlmICghdmlzaWJsZVRvKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmZpbmRWaXNpYmxlQ2h1bmtzKHZpc2libGVGcm9tLCB2
aXNpYmxlVG8pOworICAgICAgICB2YXIgc3RhcnRMaW5lID0gdGhpcy5fdGV4dENodW5rc1tyZXN1
bHQuc3RhcnRdLnN0YXJ0TGluZTsKKyAgICAgICAgdmFyIGVuZExpbmUgPSB0aGlzLl90ZXh0Q2h1
bmtzW3Jlc3VsdC5lbmQgLSAxXS5zdGFydExpbmUgKyB0aGlzLl90ZXh0Q2h1bmtzW3Jlc3VsdC5l
bmQgLSAxXS5saW5lc0NvdW50OworICAgICAgICB0aGlzLl9wYWludExpbmVzKHN0YXJ0TGluZSwg
ZW5kTGluZSArIDEpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
cmVnZXgKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3NzQ2xhc3MKQEAgLTE0NzQsNiArMTUwMCw4
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLl9oYW5kbGVT
aG93V2hpdGVzcGFjZUluRWRpdG9yQ2hhbmdlKTsKKwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVj
dGlvbkNoYW5nZUxpc3RlbmVyID0gdGhpcy5faGFuZGxlU2VsZWN0aW9uQ2hhbmdlLmJpbmQodGhp
cyk7CiAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIs
IHRoaXMuX2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIsIGZhbHNlKTsKIApAQCAtMTQ4Myw2
ICsxNTExLDggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZUluRWRpdG9yLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRo
aXMuX2hhbmRsZVNob3dXaGl0ZXNwYWNlSW5FZGl0b3JDaGFuZ2UpOworCiAgICAgICAgIGRvY3Vt
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsIHRoaXMuX2JvdW5kU2Vs
ZWN0aW9uQ2hhbmdlTGlzdGVuZXIsIGZhbHNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2JvdW5k
U2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXI7CiAKQEAgLTE5NzAsOCArMjAwMCw5IEBAIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge0Vs
ZW1lbnR9IGxpbmVSb3cKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGluZQogICAgICAqIEBwYXJh
bSB7QXJyYXkuPHtzdGFydENvbHVtbjogbnVtYmVyLCBlbmRDb2x1bW46IG51bWJlciwgdG9rZW46
ID9zdHJpbmd9Pn0gcmFuZ2VzCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gc3BsaXRXaGl0ZXNw
YWNlU2VxdWVuY2VzCiAgICAgICovCi0gICAgX3JlbmRlclJhbmdlczogZnVuY3Rpb24obGluZVJv
dywgbGluZSwgcmFuZ2VzKQorICAgIF9yZW5kZXJSYW5nZXM6IGZ1bmN0aW9uKGxpbmVSb3csIGxp
bmUsIHJhbmdlcywgc3BsaXRXaGl0ZXNwYWNlU2VxdWVuY2VzKQogICAgIHsKICAgICAgICAgdmFy
IGRlY29yYXRpb25zRWxlbWVudCA9IGxpbmVSb3cuZGVjb3JhdGlvbnNFbGVtZW50OwogCkBAIC0x
OTkzLDEyICsyMDI0LDE1IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykg
ewogICAgICAgICAgICAgdmFyIHJhbmdlU3RhcnQgPSByYW5nZXNbaV0uc3RhcnRDb2x1bW47CiAg
ICAgICAgICAgICB2YXIgcmFuZ2VFbmQgPSByYW5nZXNbaV0uZW5kQ29sdW1uOwotICAgICAgICAg
ICAgdmFyIGNzc0NsYXNzID0gcmFuZ2VzW2ldLnRva2VuID8gIndlYmtpdC0iICsgcmFuZ2VzW2ld
LnRva2VuIDogIiI7CiAKICAgICAgICAgICAgIGlmIChwbGFpblRleHRTdGFydCA8IHJhbmdlU3Rh
cnQpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRUZXh0Tm9kZUJlZm9yZShsaW5lUm93
LCBkZWNvcmF0aW9uc0VsZW1lbnQsIGxpbmUuc3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0LCByYW5n
ZVN0YXJ0KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLl9pbnNlcnRTcGFuQmVm
b3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxlbWVudCwgbGluZS5zdWJzdHJpbmcocmFuZ2VTdGFy
dCwgcmFuZ2VFbmQgKyAxKSwgY3NzQ2xhc3MpOworCisgICAgICAgICAgICBpZiAoc3BsaXRXaGl0
ZXNwYWNlU2VxdWVuY2VzICYmIHJhbmdlc1tpXS50b2tlbiA9PT0gIndoaXRlc3BhY2UiKQorICAg
ICAgICAgICAgICAgIHRoaXMuX3JlbmRlcldoaXRlc3BhY2VDaGFyc1dpdGhGaXhlZFNpemVTcGFu
cyhsaW5lUm93LCBkZWNvcmF0aW9uc0VsZW1lbnQsIHJhbmdlRW5kIC0gcmFuZ2VTdGFydCArIDEp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydFNwYW5CZWZv
cmUobGluZVJvdywgZGVjb3JhdGlvbnNFbGVtZW50LCBsaW5lLnN1YnN0cmluZyhyYW5nZVN0YXJ0
LCByYW5nZUVuZCArIDEpLCByYW5nZXNbaV0udG9rZW4gPyAid2Via2l0LSIgKyByYW5nZXNbaV0u
dG9rZW4gOiAiIik7CiAgICAgICAgICAgICBwbGFpblRleHRTdGFydCA9IHJhbmdlRW5kICsgMTsK
ICAgICAgICAgfQogICAgICAgICBpZiAocGxhaW5UZXh0U3RhcnQgPCBsaW5lLmxlbmd0aCkgewpA
QCAtMjAwOCw2ICsyMDQyLDIwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbGluZVJvdwor
ICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZGVjb3JhdGlvbnNFbGVtZW50CisgICAgICogQHBhcmFt
IHtudW1iZXJ9IGxlbmd0aAorICAgICAqLworICAgIF9yZW5kZXJXaGl0ZXNwYWNlQ2hhcnNXaXRo
Rml4ZWRTaXplU3BhbnM6IGZ1bmN0aW9uKGxpbmVSb3csIGRlY29yYXRpb25zRWxlbWVudCwgbGVu
Z3RoKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgd2hpdGVzcGFjZUxlbmd0aCA9IDE2OyB3aGl0
ZXNwYWNlTGVuZ3RoID4gMDsgd2hpdGVzcGFjZUxlbmd0aCA+Pj0gMSkgeworICAgICAgICAgICAg
dmFyIGNzc0NsYXNzID0gIndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLSIgKyB3
aGl0ZXNwYWNlTGVuZ3RoOworICAgICAgICAgICAgZm9yICg7IGxlbmd0aCA+PSB3aGl0ZXNwYWNl
TGVuZ3RoOyBsZW5ndGggLT0gd2hpdGVzcGFjZUxlbmd0aCkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9pbnNlcnRTcGFuQmVmb3JlKGxpbmVSb3csIGRlY29yYXRpb25zRWxlbWVudCwgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JNYWluUGFuZWwuX0NvbnNlY3V0aXZlV2hpdGVzcGFjZUNoYXJzW3doaXRl
c3BhY2VMZW5ndGhdLCBjc3NDbGFzcyk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtFbGVtZW50fSBsaW5lUm93CiAgICAgICogQHBhcmFtIHtBcnJheS48V2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuTGluZU92ZXJsYXlIaWdobGlnaHQ+fSBvdmVy
bGF5SGlnaGxpZ2h0CiAgICAgICovCiAgICAgX3BhaW50TGluZTogZnVuY3Rpb24obGluZVJvdywg
b3ZlcmxheUhpZ2hsaWdodCkKQEAgLTIwMjIsNyArMjA3MCw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgdmFyIGxpbmUgPSB0
aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgICAgIHZhciByYW5nZXMg
PSBzeW50YXhIaWdobGlnaHQucmFuZ2VzOwotICAgICAgICAgICAgdGhpcy5fcmVuZGVyUmFuZ2Vz
KGxpbmVSb3csIGxpbmUsIHJhbmdlcyk7CisgICAgICAgICAgICB0aGlzLl9yZW5kZXJSYW5nZXMo
bGluZVJvdywgbGluZSwgcmFuZ2VzLCB0aGlzLl9zaG93V2hpdGVzcGFjZSk7CiAKICAgICAgICAg
ICAgIGlmIChvdmVybGF5SGlnaGxpZ2h0KQogICAgICAgICAgICAgICAgIGZvcih2YXIgaSA9IDA7
IGkgPCBvdmVybGF5SGlnaGxpZ2h0Lmxlbmd0aDsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggZTA1YTg1YjIxMmM4ZTg3YTIxMzRj
MGZiMTcwZGI2Y2M5OTNlOTU4YS4uYjMxYzkwMTQ0ZTMyMjM4NzYwN2YyMGViMjc5YzZkMzMzZTUz
YTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzCkBAIC0xMDksNiArMTA5LDcgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuZGV2aWNlT3JpZW50YXRpb25PdmVycmlkZSA9IHRoaXMuY3JlYXRlU2V0dGlu
ZygiZGV2aWNlT3JpZW50YXRpb25PdmVycmlkZSIsICIiKTsKICAgICB0aGlzLnNob3dIZWFwU25h
cHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlU2V0dGluZygic2hvd0hl
YVNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRpZXMiLCBmYWxzZSk7CiAgICAgdGhpcy5zaG93
TmF0aXZlU25hcHNob3RVbmluc3RydW1lbnRlZFNpemUgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNo
b3dOYXRpdmVTbmFwc2hvdFVuaW5zdHJ1bWVudGVkU2l6ZSIsIGZhbHNlKTsKKyAgICB0aGlzLnNo
b3dXaGl0ZXNwYWNlSW5FZGl0b3IgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNob3dXaGl0ZXNwYWNl
SW5FZGl0b3IiLCBmYWxzZSk7CiAgICAgdGhpcy5zZWFyY2hJbkNvbnRlbnRTY3JpcHRzID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJzZWFyY2hJbkNvbnRlbnRTY3JpcHRzIiwgZmFsc2UpOwogICAgIHRo
aXMudGV4dEVkaXRvckluZGVudCA9IHRoaXMuY3JlYXRlU2V0dGluZygidGV4dEVkaXRvckluZGVu
dCIsICIgICAgIik7CiAgICAgdGhpcy5sYXN0RG9ja1N0YXRlID0gdGhpcy5jcmVhdGVTZXR0aW5n
KCJsYXN0RG9ja1N0YXRlIiwgIiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKaW5kZXggNjU3ODAyYzUxN2QzOTllM2QzOWM1
MzI4ZDA2ZWI3MTFiN2IxNTYzNi4uMDcwYTg3YjkwNWMwZDliOWZmMjJmMWE1ZWY0NjY3Nzg1ZWY3
ZDNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzU2NyZWVuLmpzCkBAIC0zMDMsNiArMzAzLDcgQEAgV2ViSW5zcGVjdG9yLkdlbmVyaWNT
ZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKIAogICAgIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU291cmNlcyIpKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBpbiBj
b250ZW50IHNjcmlwdHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNlYXJjaEluQ29udGVudFNj
cmlwdHMpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgd2hpdGVzcGFjZSIpLCBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvcikpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5f
Y3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIHNvdXJj
ZSBtYXBzIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zb3VyY2VNYXBzRW5hYmxlZCkpOwogICAg
IGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5pc0VuYWJsZWQoInNhc3MiKSkK
ICAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDU1NBdXRvUmVsb2FkQ29udHJvbHMo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3RvclN5bnRheEhpZ2hsaWdodC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MKaW5kZXggODE4OTdkOGQ0M2QxZWU3M2Zh
MTdmZGM0NWQyZDE4ODUzNjcwOGI4NC4uMTIyYWUzMmNjYzQ1MGY1NWY3ZmZhNzI5YTA5MjZlZDE0
NGY0MjYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwpAQCAtNzAsNiArNzAsMzEg
QEAKICAgICBjb2xvcjogYmxhY2s7CiB9CiAKKy53ZWJraXQtd2hpdGVzcGFjZS0xOjpiZWZvcmUg
eworICAgIGNvbnRlbnQ6ICLCtyI7Cit9CisKKy53ZWJraXQtd2hpdGVzcGFjZS0yOjpiZWZvcmUg
eworICAgIGNvbnRlbnQ6ICLCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTQ6OmJlZm9y
ZSB7CisgICAgY29udGVudDogIsK3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlLTg6
OmJlZm9yZSB7CisgICAgY29udGVudDogIsK3wrfCt8K3wrfCt8K3wrciOworfQorCisud2Via2l0
LXdoaXRlc3BhY2UtMTY6OmJlZm9yZSB7CisgICAgY29udGVudDogIsK3wrfCt8K3wrfCt8K3wrfC
t8K3wrfCt8K3wrfCt8K3IjsKK30KKworLndlYmtpdC13aGl0ZXNwYWNlOjpiZWZvcmUgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBjb2xvcjogcmdiKDE3NSwgMTc1LCAxNzUpOworfQor
CiAud2Via2l0LWh0bWwtY29tbWVudCB7CiAgICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2
aWV3LXNvdXJjZS5jc3MgKC53ZWJraXQtaHRtbC1jb21tZW50KSAqLwogICAgIGNvbG9yOiByZ2Io
MzUsIDExMCwgMzcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmZTcwNjYwMDg1MzQ1ODVkMDg2NTM0ZDZkNmE3MTMwNjU5
MDhiMDEuLmJiM2M1ZDExNmJiOTUxNzhkYmJiMmMwOWVhY2U3NmM0ZGJjYmI0MGUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMy0wMi0wNyAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyB3aGl0ZXNwYWNlIGNo
YXJhY3RlcnMgaW4gRFRFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg5NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHdoaXRlc3BhY2UgaGlnaGxpZ2h0IGZ1
bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNo
b3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAy
LTA3ICBab2x0YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtR
dF0gVW5yZXZpd2VkIGdhcmRlbmluZy4gUmViYXNlbGluaW5nIGFuZCBza2lwcGluZyBuZXcgZmFp
bHVyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRp
dG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM4NDkwNWIxZTIwZDI1ZDVlMzEwNDZhY2YxOGVmMmU5OWZkOTQ4NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0
ZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUaGlzIHRlc3QgY2hlY2tzIGhv
dyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxpZ2h0IHRo
ZW0gaWYgdGhlIGFwcHJvcHJpYXRlIHNldHRpbmcgaXMgc2V0IHVwLgorCitBY3R1YWwgdGV4dDoK
K2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgLy8gc3BhY2VzIGluIGNvbW1lbnQKKyAgICBhID0g
InN0cmluZyB3aXRoIHNwYWNlcyI7CisgICAgYSA9IDI7ICAgICAgICAgICAgICAgYSA9IDM7Cit9
Cis9PT09PT09PT09IEVkaXRvciBIVE1MIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT0ZGID09PT09
PT09PT0KKworPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Cis8ZGl2
IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3Jp
cHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNl
Ij4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Zm9vPC9zcGFu
Pig8c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+LDxzcGFuIGNs
YXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFz
Y3JpcHQtaWRlbnQiPmI8L3NwYW4+KTxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwv
c3Bhbj57PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFz
cz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZh
c2NyaXB0LWNvbW1lbnQiPi8vIHNwYWNlcyBpbiBjb21tZW50PC9zcGFuPjwvZGl2PgorPGRpdiBj
bGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNl
Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bh
bj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3
ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQt
c3RyaW5nIj4ic3RyaW5nIHdpdGggc3BhY2VzIjwvc3Bhbj47PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiAgICA8
L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPjxzcGFu
IGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13
aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIi
PjI8L3NwYW4+OzxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+ICAgICAgICAgICAgICAg
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJraXQt
d2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtbnVtYmVy
Ij4zPC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPn08L2Rp
dj48L2Rpdj4KKz09PT09PT09PT0gRWRpdG9yIEhUTUwgYWZ0ZXIgc2V0dGluZyBzaG93V2hpdGVz
cGFjZUluRWRpdG9yIE9OID09PT09PT09PT0KKworPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVy
IiB0YWJpbmRleD0iMCI+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBj
bGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5mb288L3NwYW4+KDxzcGFuIGNsYXNzPSJ3
ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj4sPHNwYW4gY2xhc3M9IndlYmtpdC13aGl0
ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1q
YXZhc2NyaXB0LWlkZW50Ij5iPC9zcGFuPik8c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ug
d2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj57PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtY29tbWVu
dCI+Ly8gc3BhY2VzIGluIGNvbW1lbnQ8L3NwYW4+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQi
PmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVz
cGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmciPiJz
dHJpbmcgd2l0aCBzcGFjZXMiPC9zcGFuPjs8L2Rpdj4KKzxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFj
ZS00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+
IDwvc3Bhbj49PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LW51bWJlciI+Mjwvc3Bh
bj47PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTgiPiAg
ICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVz
cGFjZS00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQt
d2hpdGVzcGFjZS0yIj4gIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Vi
a2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQt
aWRlbnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0
ZXNwYWNlLTEiPiA8L3NwYW4+PTxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQt
d2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1udW1i
ZXIiPjM8L3NwYW4+OzwvZGl2PgorPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+fTwv
ZGl2PjwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vk
aXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzVkZWI2
NWI4YjRiMzk0MTlmODg0OGQ2NGU4ZGJjODc1ZWFiYjBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRt
bApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgp
Cit7CitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIC8vIHNwYWNlcyBpbiBjb21tZW50CisgICAg
YSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOworICAgIGEgPSAyOyAgICAgICAgICAgICAgIGEgPSAz
OworfQorCisgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3Iu
c2V0KGZhbHNlKTsKKyAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVz
dEVkaXRvcigpOworICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9ydEZvclRlc3QoMCwgdW5k
ZWZpbmVkLCAzKTsKKyAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7
CisgICAgdGV4dEVkaXRvci5zZXRUZXh0KGZvby50b1N0cmluZygpKTsKKyAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQWN0dWFsIHRleHQ6Iik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQodGV4dEVkaXRvci50ZXh0KCkpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PT09IEVkaXRvciBIVE1MIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT0ZGID09PT09PT09PT0i
KTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0b3IsIHRydWUpOwor
ICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93V2hpdGVzcGFjZUluRWRpdG9yLnNldCh0cnVl
KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PSBFZGl0b3IgSFRNTCBh
ZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT04gPT09PT09PT09PSIpOworICAg
IEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7CisgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgaG93IHRleHQg
ZWRpdG9yIHNwbGl0cyB3aGl0ZXNwYWNlIHNlcXVlbmNlcyB0byBoaWdobGlnaHQgdGhlbSBpZiB0
aGUgYXBwcm9wcmlhdGUKK3NldHRpbmcgaXMgc2V0IHVwLgorPC9wPgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>