<?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>78472</bug_id>
          
          <creation_ts>2012-02-13 01:14:52 -0800</creation_ts>
          <short_desc>ShadowRoot needs applyAuthorStyles</short_desc>
          <delta_ts>2012-05-09 05:53:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>63601</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>shinyak</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555102</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 01:14:52 -0800</bug_when>
    <thetext>Currently ShadowRoot does not have applyAuthorStyle API.
We should have this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555105</commentid>
    <comment_count>1</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 01:17:25 -0800</bug_when>
    <thetext>See spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601833</commentid>
    <comment_count>2</comment_count>
      <attachid>137040</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-12 22:43:03 -0700</bug_when>
    <thetext>Created attachment 137040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603689</commentid>
    <comment_count>3</comment_count>
      <attachid>137040</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-16 19:19:21 -0700</bug_when>
    <thetext>Comment on attachment 137040
Patch

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

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:1
&gt; +&lt;!DOCTYPE html&gt;

I guess we can use reftest and which will be much simpler.
http://trac.webkit.org/wiki/Writing%20Reftests

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:17
&gt; +    -webkit-appearance: none;

Could you use some more trivial element like div and better-known styles?
Soem port haven&apos;t enabled &lt;progress&gt; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604099</commentid>
    <comment_count>4</comment_count>
      <attachid>137553</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-17 09:59:29 -0700</bug_when>
    <thetext>Created attachment 137553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604102</commentid>
    <comment_count>5</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-17 10:04:43 -0700</bug_when>
    <thetext>&gt; (From update of attachment 137040 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137040&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:1
&gt; &gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; I guess we can use reftest and which will be much simpler.
&gt; http://trac.webkit.org/wiki/Writing%20Reftests

I see. I rewrote the test.

&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:17
&gt; &gt; +    -webkit-appearance: none;
&gt; 
&gt; Could you use some more trivial element like div and better-known styles?

Sure.
Now I&apos;m using &lt;span&gt; element for the test.

&gt; Soem port haven&apos;t enabled &lt;progress&gt; element.

I see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604783</commentid>
    <comment_count>6</comment_count>
      <attachid>137553</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-18 08:49:02 -0700</bug_when>
    <thetext>Comment on attachment 137553
Patch

Almost looks good. Could you add another test case for covering the default value of applyAuthorStyles?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604786</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-18 08:52:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 137553 [details])
&gt; Almost looks good. Could you add another test case for covering the default value of applyAuthorStyles?
Yet another case we should cover is for dynamic changes, that is
- Add a ShadowRoot,
- ensuring it laid-out  (by accessing something like offsetLeft), 
- then change the property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604861</commentid>
    <comment_count>8</comment_count>
      <attachid>137719</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-18 10:29:36 -0700</bug_when>
    <thetext>Created attachment 137719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604865</commentid>
    <comment_count>9</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-18 10:32:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 137553 [details] [details])
&gt; &gt; Almost looks good. Could you add another test case for covering the default value of applyAuthorStyles?

I see. Done.

&gt; Yet another case we should cover is for dynamic changes, that is
&gt; - Add a ShadowRoot,
&gt; - ensuring it laid-out  (by accessing something like offsetLeft), 
&gt; - then change the property.

I couldn&apos;t find any explanation about whether dynamic change causes style recalculation or not. 
Anyway, I created a new bug https://bugs.webkit.org/show_bug.cgi?id=84251 for style recalculation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605048</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-18 13:43:23 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 137553 [details] [details] [details])
&gt; &gt; &gt; Almost looks good. Could you add another test case for covering the default value of applyAuthorStyles?
&gt; 
&gt; I see. Done.
Which one?

&gt; 
&gt; I couldn&apos;t find any explanation about whether dynamic change causes style recalculation or not. 
&gt; Anyway, I created a new bug https://bugs.webkit.org/show_bug.cgi?id=84251 for style recalculation.
Thanks for filing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607309</commentid>
    <comment_count>11</comment_count>
      <attachid>137719</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-21 18:26:41 -0700</bug_when>
    <thetext>Comment on attachment 137719
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        seems to work in the same way as applyAuthorStyles, just renamed all applyAuthorSheets and
&gt; +        added applyAuthorStyles to ShadowRoot.idl.

Nit: renamed all applyAuthorSheets to applyAuthorStyles, and added applyAuthorStyles to ShadowRoot.idl.

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles-expected.html:4
&gt; +&lt;head&gt;
&gt; +&lt;/head&gt;

We don&apos;t need head for this, do we?

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles-expected.html:7
&gt; +&lt;div id=&quot;apply-author-style&quot;&gt;&lt;span style=&quot;margin:2px; border:solid&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&gt; +&lt;div id=&quot;no-apply-author-style&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;

Can we add more test cases like font-size, color, background-color, etc...?
Also, you should definitely test cases where the author style is overridden by inline style declaration or
cases where it overrides UA rules or when it&apos;s overridden by important UA rules.
Furthermore, you should test a case where you change the value of applyAuthorStyles dynamically and
verify that the change takes place dynamically as expected.

r- due to lack of adequate tests.

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:27
&gt; +    var sr = new WebKitShadowRoot(div);

Please don&apos;t use abbreviations like sr. Also, does this constructor work on ports that don&apos;t enable shadow root support yet?

&gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:31
&gt; +    var span = document.createElement(&apos;span&apos;);
&gt; +    sr.appendChild(span);

Since you&apos;re not using span elsewhere, you can just do:
sr.appendChild(document.createElement(&apos;span&apos;));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607850</commentid>
    <comment_count>12</comment_count>
      <attachid>138386</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-23 11:09:15 -0700</bug_when>
    <thetext>Created attachment 138386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607863</commentid>
    <comment_count>13</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-23 11:17:34 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 137719 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137719&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        seems to work in the same way as applyAuthorStyles, just renamed all applyAuthorSheets and
&gt; &gt; +        added applyAuthorStyles to ShadowRoot.idl.
&gt; 
&gt; Nit: renamed all applyAuthorSheets to applyAuthorStyles, and added applyAuthorStyles to ShadowRoot.idl.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles-expected.html:4
&gt; &gt; +&lt;head&gt;
&gt; &gt; +&lt;/head&gt;
&gt; 
&gt; We don&apos;t need head for this, do we?

I see. Done.

&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles-expected.html:7
&gt; &gt; +&lt;div id=&quot;apply-author-style&quot;&gt;&lt;span style=&quot;margin:2px; border:solid&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&gt; &gt; +&lt;div id=&quot;no-apply-author-style&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&gt; 
&gt; Can we add more test cases like font-size, color, background-color, etc...?
&gt; Also, you should definitely test cases where the author style is overridden by inline style declaration or
&gt; cases where it overrides UA rules or when it&apos;s overridden by important UA rules.

I see. I added these test cases.

&gt; Furthermore, you should test a case where you change the value of applyAuthorStyles dynamically and
&gt; verify that the change takes place dynamically as expected.

I created a bug, 84215 for fixing &quot;dynamically changing applyAuthorStyles doesn&apos;t work&quot; and will fix after finishing this bug.

&gt; 
&gt; r- due to lack of adequate tests.
&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:27
&gt; &gt; +    var sr = new WebKitShadowRoot(div);
&gt; 
&gt; Please don&apos;t use abbreviations like sr.

I renamed all sr to shadowRoot.

&gt; Also, does this constructor work on ports that don&apos;t enable shadow root support yet?

I added resources/polyfill.js for the ports.

&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:31
&gt; &gt; +    var span = document.createElement(&apos;span&apos;);
&gt; &gt; +    sr.appendChild(span);
&gt; 
&gt; Since you&apos;re not using span elsewhere, you can just do:
&gt; sr.appendChild(document.createElement(&apos;span&apos;));

I found that shadow root&apos;s innerHTML attirbute works. So I rewrote all test cases to use innerHTML, e.g. shadowRoot.innerHTML = &apos;&lt;span&gt;&lt;/span&gt;&apos;; and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613340</commentid>
    <comment_count>14</comment_count>
      <attachid>139610</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-01 04:46:43 -0700</bug_when>
    <thetext>Created attachment 139610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613341</commentid>
    <comment_count>15</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-01 04:48:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=139610) [details]
&gt; Patch

Since CSSStyleSelector.cpp was renamed to StyleResolver.cpp (and also class CSSStyleSelector was renamed to class StyleResolver), I created a patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619374</commentid>
    <comment_count>16</comment_count>
      <attachid>139610</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-09 04:37:56 -0700</bug_when>
    <thetext>Comment on attachment 139610
Patch

Sorry for really late response. Let&apos;s move forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619424</commentid>
    <comment_count>17</comment_count>
      <attachid>139610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 05:52:57 -0700</bug_when>
    <thetext>Comment on attachment 139610
Patch

Clearing flags on attachment: 139610

Committed r116521: &lt;http://trac.webkit.org/changeset/116521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619425</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 05:53:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137040</attachid>
            <date>2012-04-12 22:43:03 -0700</date>
            <delta_ts>2012-04-17 09:59:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78472-20120413144302.patch</filename>
            <type>text/plain</type>
            <size>11349</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IzOGE3MjlhODM5MzZm
NTcwYTdiNWRhODlhOTVjMzkwM2NmMWFmMi4uNjk2YjFmMmJjZWFiZDliZDU2MmVjOWY1NmYyOTM1
NWNlNDU1NmNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA0LTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGVkIGFwcGx5QXV0aG9yU3R5bGVzIGF0dHJpYnV0ZSBkZWZp
bmVkIGluIHRoZSBmb2xsb3dpbmcgc3BlYzoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hn
L3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc2hhZG93
LXJvb3QtYXR0cmlidXRlcworICAgICAgICBTaW5jZSBhcHBseUF1dGhvclNoZWV0cyBhdHRyaWJ1
dGUgaGFzIGJlZW4gYWxyZWFkeSBpbXBsZW1lbnRlZCBhbmQgdGhlIGF0dHJpYnV0ZQorICAgICAg
ICBzZWVtcyB0byB3b3JrIGluIHRoZSBzYW1lIHdheSBhcyBhcHBseUF1dGhvclN0eWxlcywganVz
dCByZW5hbWVkIGFsbCBhcHBseUF1dGhvclNoZWV0cyBhbmQKKyAgICAgICAgYWRkZWQgYXBwbHlB
dXRob3JTdHlsZXMgdG8gU2hhZG93Um9vdC5pZGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKKworICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjphcHBseUF1dGhvclN0eWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxlcyk6CisgICAgICAgICogZG9t
L1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMpOgorICAgICAgICAqIGRvbS9UcmVl
U2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAgIENoYW5nZWQgYWxsIGFwcGx5
QXV0aG9yU2hlZXRzIHRvIGFwcGx5QXV0aG9yU3l0bGVzLgorICAgICAgICAoU2hhZG93Um9vdCk6
CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBhIG5ldyBhdHRy
aWJ1dGUsIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXMuCisKIDIwMTItMDQtMTIgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgVjhET01XaW5kb3dTaGVs
bDo6c2V0TG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCA1Y2U3N2UxOWE2ZWE1NTIzZmRlYmY4YTM2YTcxOWYyNjI0ZmRkZmE0Li40NzMzYjEyZjM2N2Iy
OWU0NjlkNDVmZGQwZDZjYTEwYTJhOGRjNjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuY3BwCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6
OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBydWxl
cwogICAgICAgICAgICAgLy8gZCkgdGhlIHJ1bGUgY29udGFpbnMgc2hhZG93LUlEIHBzZXVkbyBl
bGVtZW50cwogICAgICAgICAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBtX2VsZW1lbnQtPnRy
ZWVTY29wZSgpOwogICAgICAgICAgICAgaWYgKCFNYXRjaGluZ1VBUnVsZXNTY29wZTo6aXNNYXRj
aGluZ1VBUnVsZXMoKQotICAgICAgICAgICAgICAgICYmICF0cmVlU2NvcGUtPmFwcGx5QXV0aG9y
U2hlZXRzKCkKKyAgICAgICAgICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBseUF1dGhvclN0eWxl
cygpCiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKICAgICAgICAgICAgICAgICAmJiAoIW9wdGlv
bnMuc2NvcGUgfHwgb3B0aW9ucy5zY29wZS0+dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTc1MGJjMjJiNDRkYjc1YTdlZTQ5
NmJlOTk0MWJiZTlmODQyM2VhNS4uYTkyYTA4MjRjNzNkZGJiNThjNDU3NDkwYmI4MTE1Y2NkMzUw
OGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNDksNyArNDksNyBAQCBTaGFk
b3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIFRyZWVTY29wZSh0
aGlzKQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKLSAgICAsIG1fYXBwbHlBdXRo
b3JTaGVldHMoZmFsc2UpCisgICAgLCBtX2FwcGx5QXV0aG9yU3R5bGVzKGZhbHNlKQogICAgICwg
bV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpA
QCAtMTg4LDE0ICsxODgsMTQgQEAgYm9vbCBTaGFkb3dSb290OjpoYXNJbnNlcnRpb25Qb2ludCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNoYWRvd1Jvb3Q6OmFwcGx5QXV0
aG9yU2hlZXRzKCkgY29uc3QKK2Jvb2wgU2hhZG93Um9vdDo6YXBwbHlBdXRob3JTdHlsZXMoKSBj
b25zdAogewotICAgIHJldHVybiBtX2FwcGx5QXV0aG9yU2hlZXRzOworICAgIHJldHVybiBtX2Fw
cGx5QXV0aG9yU3R5bGVzOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU2hl
ZXRzKGJvb2wgdmFsdWUpCit2b2lkIFNoYWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJv
b2wgdmFsdWUpCiB7Ci0gICAgbV9hcHBseUF1dGhvclNoZWV0cyA9IHZhbHVlOworICAgIG1fYXBw
bHlBdXRob3JTdHlsZXMgPSB2YWx1ZTsKIH0KIAogdm9pZCBTaGFkb3dSb290OjphdHRhY2goKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggZTViMjIxYjczYTMzNzFhMDU0NWYwYzQ5NTk3MTY2
OGRhODI2OWFhOC4uNWRiMzc4ODRmYTQ4NTExMGZlZTcyY2I3ZmMyNjdmNWQ5OTk1M2U4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC02Nyw4ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBJbnNl
cnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaG9z
dENoaWxkcmVuQ2hhbmdlZCgpOwogCi0gICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRz
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKKyAgICB2aXJ0
dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2b2lkIHNldEFwcGx5QXV0
aG9yU3R5bGVzKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNo
YWRvd0hvc3QoKTsgfQogICAgIFNoYWRvd1RyZWUqIHRyZWUoKSBjb25zdDsKQEAgLTEwNCw3ICsx
MDQsNyBAQCBwcml2YXRlOgogCiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jv
b3QqIG1fbmV4dDsKLSAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOworICAgIGJvb2wg
bV9hcHBseUF1dGhvclN0eWxlcyA6IDE7CiAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9u
UG9pbnRBc3NpZ25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IDVl
ZTU2NjMzMjlmNmE3NjA2YTQ2NDE1MTUwNDE2ZWMwODJlNzAwYTIuLjU1MDU3YjY4MDZkNTNiM2My
ZDUxYzk3M2ZmNDVhMGNmOWVmOGFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAg
LTM1LDYgKzM1LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RWxlbWVudCBob3N0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3RpdmVF
bGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uIHNlbGVjdGlv
bjsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CiAKICAgICAg
ICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1M
CiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCmluZGV4IDM3NmZiYzNiZjc0NDFiNTk3ZGQ5YWU4YTY0OWRmMjVlNzkxMDFjMzcu
Ljk5ODI2NDUzMjA4NzY1MDY5M2M0NDhmYzVhNzZiOTMwYzFjNDBmOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgRWxlbWVudCogVHJlZVNjb3BlOjpmaW5k
QW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBUcmVl
U2NvcGU6OmFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3QKK2Jvb2wgVHJlZVNjb3BlOjphcHBseUF1
dGhvclN0eWxlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmgKaW5kZXggMTZjZjY2NDRlNTY1NzgyNmQzYWMxODQ0MzA5ZTNjNGRlNjViZjBhYi4uNzZj
MTJlNWM5MGY3MWUyNGNlOThjODdkMWJmMTcxOGYzMTgyNmY5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgLy8gcXVpcmtzIG1vZGUgZm9yIGhp
c3RvcmljYWwgY29tcGF0aWJpbGl0eSByZWFzb25zLgogICAgIEVsZW1lbnQqIGZpbmRBbmNob3Io
Y29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0
cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0Owog
CiAgICAgLy8gVXNlZCBieSB0aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFw
cGVuZENoaWxkKCkpLgogICAgIHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjli
YzAwMzYwYWRhNzBlZDE3MGYxYTMyMTY4MDE2NTZmMjY2YzYyYy4uN2Y0NmNmODcyY2ViNjQ5MjM3
Mzc5ZGMyZDA0ZjMwZTE2NDFmZWI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA0LTEy
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dS
b290IG5lZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0
aG9yU3R5bGVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFw
cGx5QXV0aG9yU3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVGVzdGVkIHR3byBjYXNlcywg
YXBwbHlBdXRob3JTdHlsZXMgaXMgZmFsc2UgYW5kIGFwcGx5QXV0aG9yU3R5bGVzIGlzIHRydWUu
CisgICAgICAgIFRoZXNlIHRlc3RzIHNwZWNpZnkgInByb2dyZXNzIHsgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lIH0iIGluIGEgYXV0aG9yIHN0eWxlIGFuZAorICAgICAgICBjb21wYXJlIHByb2dy
ZXNzIGVsZW1lbnQncyByZW5kZXJpbmcgcmVzdWx0cy4KKwogMjAxMi0wNC0xMiAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTEzOTAw
KTogVGV4dCB0ZXN0cyBzdGFydGVkIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHls
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMzFmYjIxZjc5YzIyM2QwN2Q0OTEyNDUyNzI4
NWZlNTZkYzM5MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorRkFJTAorUEFTUworVEVTVCBDT01QTEVURUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZmU0NjFhMWQ2MDRhYzBhN2UxODdkNDNmYmVmYjJiNjlmZDllNTgw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVu
c3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLworLmNvbnRhaW5lciB7CisgICAgcG9zaXRp
b246IHJlbGF0aXZlOworfQorCisuc3BhbiB7CisgICAgZGlzcGxheTogYm94ZWQtaW5saW5lOwor
ICAgIG1hcmdpbjogMnB4OworICAgIGJvcmRlcjogc29saWQ7Cit9CisKK3Byb2dyZXNzIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgKz0gKG1lc3NhZ2UgKyAiXG4iKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQWxs
Q2hpbGRyZW4oZWxlbSkgeworICAgIHdoaWxlIChlbGVtLmZpcnN0Q2hpbGQpCisgICAgICAgIGVs
ZW0ucmVtb3ZlQ2hpbGQoZWxlbS5maXJzdENoaWxkKTsKK30KKworZnVuY3Rpb24gY2xlYW5VcCgp
IHsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFs
LWNvbnRhaW5lcicpKTsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVy
TGluZXModGV4dCkgeworICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgbGlu
ZXMuc3BsaWNlKDAsIDIpOworICAgIHJldHVybiBsaW5lcy5qb2luKCdcbicpOworfQorCitmdW5j
dGlvbiBjaGVjaygpIHsKKyAgICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFs
cy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0
LWNvbnRhaW5lcicpKTsKKyAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxp
bmVzKHJlZkNvbnRhaW5lclJlbmRlclRyZWUpOworCisgICAgdmFyIHRhcmdldENvbnRhaW5lclJl
bmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7CisgICAgdmFyIHRhcmdldFJlbmRlclRy
ZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKKwor
ICAgIGlmICh0YXJnZXRSZW5kZXJUcmVlID09IHJlZlJlbmRlclRyZWUpCisgICAgICAgIGxvZygi
UEFTUyIpOworICAgIGVsc2UgeworICAgICAgICBsb2coIkZBSUwiKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHRlc3REaWZmZXJlbnRSZW5kZXJpbmdXaXRoQXBwbHlBdXRob3JTdHlsZXNGYWxzZShj
YWxsSWZEb25lKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPSAiPGRpdj48cHJvZ3Jlc3MgdmFsdWU9JzAnPjxkaXY+PC9kaXY+PC9w
cm9ncmVzcz48L2Rpdj4iOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KSk7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFw
cGVuZENoaWxkKGRpdik7CisKKyAgICB2YXIgc3IgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYp
OworCisgICAgdmFyIGYgPSAoZnVuY3Rpb24oc3IsIGNhbGxJZkRvbmUpIHsKKyAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHByb2dyZXNzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsKKyAgICAgICAgICAgIHByb2dyZXNzLnNldEF0dHJpYnV0
ZSgndmFsdWUnLCAnMCcpOworICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjb250ZW50Jyk7CisgICAgICAgICAgICBwcm9ncmVzcy5hcHBlbmRDaGlsZChj
b250ZW50KTsKKyAgICAgICAgICAgIHNyLmFwcGVuZENoaWxkKHByb2dyZXNzKTsKKyAgICAgICAg
ICAgIGNhbGxJZkRvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9KShzciwgY2FsbElmRG9uZSk7CisK
KyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCitmdW5jdGlvbiB0ZXN0U2FtZVJlbmRlcmluZ1dp
dGhBcHBseUF1dGhvclN0eWxlc1RydWUoY2FsbElmRG9uZSkgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHByb2dyZXNz
IHZhbHVlPScwJz48ZGl2PjwvZGl2PjwvcHJvZ3Jlc3M+PC9kaXY+IjsKKworICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgdmFyIHNyID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBzci5hcHBseUF1dGhvclN0eWxlcyA9IHRy
dWU7CisKKyAgICB2YXIgZiA9IChmdW5jdGlvbihzciwgY2FsbElmRG9uZSkgeworICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcHJvZ3Jlc3MgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdwcm9ncmVzcycpOworICAgICAgICAgICAgcHJvZ3Jlc3Muc2V0QXR0cmli
dXRlKCd2YWx1ZScsICcwJyk7CisgICAgICAgICAgICBzci5hcHBlbmRDaGlsZChwcm9ncmVzcyk7
CisgICAgICAgICAgICBjYWxsSWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSkoc3IsIGNhbGxJ
ZkRvbmUpOworCisgICAgc2V0VGltZW91dChmLCAwKTsKK30KKwordmFyIHRlc3RGdW5jcyA9IFsK
KyAgICB0ZXN0RGlmZmVyZW50UmVuZGVyaW5nV2l0aEFwcGx5QXV0aG9yU3R5bGVzRmFsc2UsCisg
ICAgdGVzdFNhbWVSZW5kZXJpbmdXaXRoQXBwbHlBdXRob3JTdHlsZXNUcnVlCitdOworCitmdW5j
dGlvbiBkb1Rlc3RJZkxlZnQoKSB7CisgICAgdmFyIHRlc3QgPSB0ZXN0RnVuY3Muc2hpZnQoKTsK
KyAgICBpZiAodGVzdCA9PSBudWxsKQorICAgICAgICByZXR1cm4gZG9uZVRlc3QoKTsKKworICAg
IHZhciBjYWxsSWZEb25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBjaGVjaygpOworICAgICAgICAgICAgY2xlYW5VcCgpOworICAg
ICAgICAgICAgZG9UZXN0SWZMZWZ0KCk7CisgICAgICAgIH0sIDApOworICAgIH07CisKKyAgICB0
ZXN0KGNhbGxJZkRvbmUpOworfQorCitmdW5jdGlvbiBkb25lVGVzdCgpIHsKKyAgICBsb2coIlRF
U1QgQ09NUExFVEVEIik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBj
bGVhblVwKCk7CisgICAgZG9UZXN0SWZMZWZ0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorCis8ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBjbGFz
cz0iY29udGFpbmVyIj48L2Rpdj4KKzxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNzPSJj
b250YWluZXIiPjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137553</attachid>
            <date>2012-04-17 09:59:29 -0700</date>
            <delta_ts>2012-04-18 10:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78472-20120417095928.patch</filename>
            <type>text/plain</type>
            <size>8821</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NiYzI3NmY4Yzg5ZDA5
MGFlMmFkOWM2Yzc0ZWE3ZTM5NmQxZGQzZC4uM2U2NGIwMDVmZTVlZjA3ODVjMWRhYzYxMmEyNDky
ODBkMWJiYWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA0LTE3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGVkIGFwcGx5QXV0aG9yU3R5bGVzIGF0dHJpYnV0ZSBkZWZp
bmVkIGluIHRoZSBmb2xsb3dpbmcgc3BlYzoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hn
L3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc2hhZG93
LXJvb3QtYXR0cmlidXRlcworICAgICAgICBTaW5jZSBhcHBseUF1dGhvclNoZWV0cyBhdHRyaWJ1
dGUgaGFzIGJlZW4gYWxyZWFkeSBpbXBsZW1lbnRlZCBhbmQgdGhlIGF0dHJpYnV0ZQorICAgICAg
ICBzZWVtcyB0byB3b3JrIGluIHRoZSBzYW1lIHdheSBhcyBhcHBseUF1dGhvclN0eWxlcywganVz
dCByZW5hbWVkIGFsbCBhcHBseUF1dGhvclNoZWV0cyBhbmQKKyAgICAgICAgYWRkZWQgYXBwbHlB
dXRob3JTdHlsZXMgdG8gU2hhZG93Um9vdC5pZGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAg
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLWV4cGVjdGVkLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAg
ICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjphcHBseUF1dGhvclN0
eWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxl
cyk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
IENoYW5nZWQgYWxsIGFwcGx5QXV0aG9yU2hlZXRzIHRvIGFwcGx5QXV0aG9yU3l0bGVzLgorICAg
ICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAg
ICBBZGRlZCBhIG5ldyBhdHRyaWJ1dGUsIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXMuCisKIDIw
MTItMDQtMTcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBbQ1JBU0hdIEluc3BlY3RvckRPTUFnZW50OjpkaWRJbnNlcnRE
T01Ob2RlKCkgb24gcGFnZSByZWxvYWQgd2l0aCBvcGVuIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDVjZTc3ZTE5YTZlYTU1MjNmZGViZjhhMzZh
NzE5ZjI2MjRmZGRmYTQuLjQ3MzNiMTJmMzY3YjI5ZTQ2OWQ0NWZkZDBkNmNhMTBhMmE4ZGM2M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTEwMTUsNyArMTAx
NSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0
KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzCiAgICAgICAgICAgICAvLyBkKSB0aGUgcnVs
ZSBjb250YWlucyBzaGFkb3ctSUQgcHNldWRvIGVsZW1lbnRzCiAgICAgICAgICAgICBUcmVlU2Nv
cGUqIHRyZWVTY29wZSA9IG1fZWxlbWVudC0+dHJlZVNjb3BlKCk7CiAgICAgICAgICAgICBpZiAo
IU1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpCi0gICAgICAgICAgICAg
ICAgJiYgIXRyZWVTY29wZS0+YXBwbHlBdXRob3JTaGVldHMoKQorICAgICAgICAgICAgICAgICYm
ICF0cmVlU2NvcGUtPmFwcGx5QXV0aG9yU3R5bGVzKCkKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVE
KQogICAgICAgICAgICAgICAgICYmICghb3B0aW9ucy5zY29wZSB8fCBvcHRpb25zLnNjb3BlLT50
cmVlU2NvcGUoKSAhPSB0cmVlU2NvcGUpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cAppbmRleCBlNzUwYmMyMmI0NGRiNzVhN2VlNDk2YmU5OTQxYmJlOWY4NDIzZWE1Li5hOTJhMDgy
NGM3M2RkYmI1OGM0NTc0OTBiYjgxMTVjY2QzNTA4YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQq
IGRvY3VtZW50KQogICAgICwgVHJlZVNjb3BlKHRoaXMpCiAgICAgLCBtX3ByZXYoMCkKICAgICAs
IG1fbmV4dCgwKQotICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKKyAgICAsIG1fYXBw
bHlBdXRob3JTdHlsZXMoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbygw
KQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xODgsMTQgKzE4OCwxNCBAQCBib29sIFNo
YWRvd1Jvb3Q6Omhhc0luc2VydGlvblBvaW50KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgU2hhZG93Um9vdDo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAorYm9vbCBTaGFk
b3dSb290OjphcHBseUF1dGhvclN0eWxlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fYXBwbHlB
dXRob3JTaGVldHM7CisgICAgcmV0dXJuIG1fYXBwbHlBdXRob3JTdHlsZXM7CiB9CiAKLXZvaWQg
U2hhZG93Um9vdDo6c2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCB2YWx1ZSkKK3ZvaWQgU2hhZG93
Um9vdDo6c2V0QXBwbHlBdXRob3JTdHlsZXMoYm9vbCB2YWx1ZSkKIHsKLSAgICBtX2FwcGx5QXV0
aG9yU2hlZXRzID0gdmFsdWU7CisgICAgbV9hcHBseUF1dGhvclN0eWxlcyA9IHZhbHVlOwogfQog
CiB2b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBl
NWIyMjFiNzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li41ZGIzNzg4NGZhNDg1MTEw
ZmVlNzJjYjdmYzI2N2Y1ZDk5OTUzZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTY3
LDggKzY3LDggQEAgcHVibGljOgogICAgIEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZv
cihOb2RlKikgY29uc3Q7CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKLSAgICB2b2lkIHNldEFwcGx5
QXV0aG9yU2hlZXRzKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygp
IGNvbnN0OworICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTdHlsZXMoYm9vbCk7CiAKICAgICBFbGVt
ZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJl
ZSogdHJlZSgpIGNvbnN0OwpAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAKICAgICBTaGFk
b3dSb290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwotICAgIGJvb2wgbV9hcHBs
eUF1dGhvclNoZWV0cyA6IDE7CisgICAgYm9vbCBtX2FwcGx5QXV0aG9yU3R5bGVzIDogMTsKICAg
ICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggNWVlNTY2MzMyOWY2YTc2MDZhNDY0MTUxNTA0MTZl
YzA4MmU3MDBhMi4uNTUwNTdiNjgwNmQ1M2IzYzJkNTFjOTczZmY0NWEwY2Y5ZWY4YWJhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMzUsNiArMzUsNyBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1lbnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVh
biBhcHBseUF1dGhvclN0eWxlczsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMzc2ZmJjM2JmNzQ0
MWI1OTdkZDlhZThhNjQ5ZGYyNWU3OTEwMWMzNy4uOTk4MjY0NTMyMDg3NjUwNjkzYzQ0OGZjNWE3
NmI5MzBjMWM0MGY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTEzOSw3ICsxMzks
NyBAQCBFbGVtZW50KiBUcmVlU2NvcGU6OmZpbmRBbmNob3IoY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIHJldHVybiAwOwogfQogCi1ib29sIFRyZWVTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBj
b25zdAorYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCAxNmNmNjY0NGU1NjU3ODI2
ZDNhYzE4NDQzMDllM2M0ZGU2NWJmMGFiLi43NmMxMmU1YzkwZjcxZTI0Y2U5OGM4N2QxYmYxNzE4
ZjMxODI2Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC02OSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBxdWlya3MgbW9kZSBmb3IgaGlzdG9yaWNhbCBjb21wYXRpYmlsaXR5IHJlYXNv
bnMuCiAgICAgRWxlbWVudCogZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAg
dmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBE
T00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9w
dElmTmVlZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMmVjYjhkODZiMWJlMzc2NTc0MWUxZWExYzFmYTJi
YzcwZWYwNzIzLi44ODUxNTFmZDZlOTAwMTIzMDAyOGNiZTNhMjYxNmZhZGVlNWIwODMwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDQtMTcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bn
b29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgYXBwbHlBdXRob3JTdHlsZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDcyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgVGVzdGVkIHR3byBjYXNlcywgYXBwbHlBdXRob3JTdHlsZXMgaXMgZmFsc2Ug
YW5kIGFwcGx5QXV0aG9yU3R5bGVzIGlzIHRydWUuCisgICAgICAgIFRoZXNlIHRlc3RzIHNwZWNp
ZnkgInNwYW4geyAuLi4gfSIgaW4gYSBhdXRob3Igc3R5bGUgYW5kCisgICAgICAgIGNvbXBhcmUg
dGhlIHNwYW4gZWxlbWVudCdzIHJlbmRlcmluZyByZXN1bHRzLgorCiAyMDEyLTA0LTE3ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0NSQVNIXSBJbnNwZWN0b3JET01BZ2VudDo6ZGlkSW5zZXJ0RE9NTm9kZSgpIG9uIHBh
Z2UgcmVsb2FkIHdpdGggb3BlbiBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5
bGVzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ3NDQ3ZjFhNmQwMGRhYzNiNWMyOGExZmQz
MDFhMTRhODk4MGEzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJhcHBseS1hdXRob3Itc3R5bGUiPjxzcGFuIHN0eWxlPSJtYXJnaW46MnB4OyBi
b3JkZXI6c29saWQiPjwvc3Bhbj48L2Rpdj4KKzxkaXYgaWQ9Im5vLWFwcGx5LWF1dGhvci1zdHls
ZSI+PHNwYW4+PC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JT
dHlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODA1ODljODU3YTg5NjRjNmFiZGZkNGRjZWRjZTVkNTIw
MWY1YWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICAgZGlzcGxheTog
Ym94ZWQtaW5saW5lOworICAgIG1hcmdpbjogMnB4OworICAgIGJvcmRlcjogc29saWQ7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJhcHBseS1hdXRob3Itc3R5bGUiPjwv
ZGl2PgorPGRpdiBpZD0ibm8tYXBwbHktYXV0aG9yLXN0eWxlIj48L2Rpdj4KKworPHNjcmlwdD4K
K2Z1bmN0aW9uIHJlbmRlckFwcGx5QXV0aG9yU3R5bGVDYXNlKCkgeworICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYXBwbHktYXV0aG9yLXN0eWxlJykuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIHZhciBzciA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgc3IuYXBwbHlBdXRob3JTdHlsZXMgPSB0
cnVlOworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAg
IHNyLmFwcGVuZENoaWxkKHNwYW4pOworfTsKKworZnVuY3Rpb24gcmVuZGVyTm9BcHBseUF1dGhv
clN0eWxlQ2FzZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLWFwcGx5LWF1dGhvci1zdHlsZScp
LmFwcGVuZENoaWxkKGRpdik7CisKKyAgICB2YXIgc3IgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChk
aXYpOworICAgIHNyLmFwcGx5QXV0aG9yU3R5bGVzID0gZmFsc2U7CisgICAgdmFyIHNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3IuYXBwZW5kQ2hpbGQoc3Bhbik7
Cit9OworCityZW5kZXJBcHBseUF1dGhvclN0eWxlQ2FzZSgpOworcmVuZGVyTm9BcHBseUF1dGhv
clN0eWxlQ2FzZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137719</attachid>
            <date>2012-04-18 10:29:36 -0700</date>
            <delta_ts>2012-04-23 11:09:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78472-20120418102935.patch</filename>
            <type>text/plain</type>
            <size>9023</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNlMmJjY2YxNGMxYzg2
MzdlNGM4NzBhYzNjMDdlMTA0YjM2OGRkNS4uOTkxM2VjYmU0Y2E1NDFiYjllM2E1ODNmOWVmMzRk
NzJlYjg2YzQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA0LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGVkIGFwcGx5QXV0aG9yU3R5bGVzIGF0dHJpYnV0ZSBkZWZp
bmVkIGluIHRoZSBmb2xsb3dpbmcgc3BlYzoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hn
L3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc2hhZG93
LXJvb3QtYXR0cmlidXRlcworICAgICAgICBTaW5jZSBhcHBseUF1dGhvclNoZWV0cyBhdHRyaWJ1
dGUgaGFzIGJlZW4gYWxyZWFkeSBpbXBsZW1lbnRlZCBhbmQgdGhlIGF0dHJpYnV0ZQorICAgICAg
ICBzZWVtcyB0byB3b3JrIGluIHRoZSBzYW1lIHdheSBhcyBhcHBseUF1dGhvclN0eWxlcywganVz
dCByZW5hbWVkIGFsbCBhcHBseUF1dGhvclNoZWV0cyBhbmQKKyAgICAgICAgYWRkZWQgYXBwbHlB
dXRob3JTdHlsZXMgdG8gU2hhZG93Um9vdC5pZGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAg
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLWV4cGVjdGVkLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAg
ICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjphcHBseUF1dGhvclN0
eWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxl
cyk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
IENoYW5nZWQgYWxsIGFwcGx5QXV0aG9yU2hlZXRzIHRvIGFwcGx5QXV0aG9yU3l0bGVzLgorICAg
ICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAg
ICBBZGRlZCBhIG5ldyBhdHRyaWJ1dGUsIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXMuCisKIDIw
MTItMDQtMTggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IENvbnZlcnQgU2hhZG93RGF0YSBhbmQgRHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbiB0byB1c2Ug
SW50UG9pbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBlMTVk
MDliYTJhODkwNTc0N2E0NTJmZTFlMzc1Njc5N2M5OTliZjhhLi44ZWFiMGI0ZmYwZWVkYzZkYmVh
ZjJjOGYzYmRlN2M2MTQyMGVmZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmNvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBydWxlcwogICAg
ICAgICAgICAgLy8gZCkgdGhlIHJ1bGUgY29udGFpbnMgc2hhZG93LUlEIHBzZXVkbyBlbGVtZW50
cwogICAgICAgICAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBtX2VsZW1lbnQtPnRyZWVTY29w
ZSgpOwogICAgICAgICAgICAgaWYgKCFNYXRjaGluZ1VBUnVsZXNTY29wZTo6aXNNYXRjaGluZ1VB
UnVsZXMoKQotICAgICAgICAgICAgICAgICYmICF0cmVlU2NvcGUtPmFwcGx5QXV0aG9yU2hlZXRz
KCkKKyAgICAgICAgICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBseUF1dGhvclN0eWxlcygpCiAj
aWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKICAgICAgICAgICAgICAgICAmJiAoIW9wdGlvbnMuc2Nv
cGUgfHwgb3B0aW9ucy5zY29wZS0+dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTc1MGJjMjJiNDRkYjc1YTdlZTQ5NmJlOTk0
MWJiZTlmODQyM2VhNS4uYTkyYTA4MjRjNzNkZGJiNThjNDU3NDkwYmI4MTE1Y2NkMzUwOGEyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNDksNyArNDksNyBAQCBTaGFkb3dSb290
OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIFRyZWVTY29wZSh0aGlzKQog
ICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKLSAgICAsIG1fYXBwbHlBdXRob3JTaGVl
dHMoZmFsc2UpCisgICAgLCBtX2FwcGx5QXV0aG9yU3R5bGVzKGZhbHNlKQogICAgICwgbV9pbnNl
cnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTg4
LDE0ICsxODgsMTQgQEAgYm9vbCBTaGFkb3dSb290OjpoYXNJbnNlcnRpb25Qb2ludCgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNoYWRvd1Jvb3Q6OmFwcGx5QXV0aG9yU2hl
ZXRzKCkgY29uc3QKK2Jvb2wgU2hhZG93Um9vdDo6YXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdAog
ewotICAgIHJldHVybiBtX2FwcGx5QXV0aG9yU2hlZXRzOworICAgIHJldHVybiBtX2FwcGx5QXV0
aG9yU3R5bGVzOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU2hlZXRzKGJv
b2wgdmFsdWUpCit2b2lkIFNoYWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFs
dWUpCiB7Ci0gICAgbV9hcHBseUF1dGhvclNoZWV0cyA9IHZhbHVlOworICAgIG1fYXBwbHlBdXRo
b3JTdHlsZXMgPSB2YWx1ZTsKIH0KIAogdm9pZCBTaGFkb3dSb290OjphdHRhY2goKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmgKaW5kZXggZTViMjIxYjczYTMzNzFhMDU0NWYwYzQ5NTk3MTY2OGRhODI2
OWFhOC4uNWRiMzc4ODRmYTQ4NTExMGZlZTcyY2I3ZmMyNjdmNWQ5OTk1M2U4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCkBAIC02Nyw4ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBJbnNlcnRpb25Q
b2ludCogaW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaG9zdENoaWxk
cmVuQ2hhbmdlZCgpOwogCi0gICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29u
c3Q7Ci0gICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKKyAgICB2aXJ0dWFsIGJv
b2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2b2lkIHNldEFwcGx5QXV0aG9yU3R5
bGVzKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hv
c3QoKTsgfQogICAgIFNoYWRvd1RyZWUqIHRyZWUoKSBjb25zdDsKQEAgLTEwNCw3ICsxMDQsNyBA
QCBwcml2YXRlOgogCiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1f
bmV4dDsKLSAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOworICAgIGJvb2wgbV9hcHBs
eUF1dGhvclN0eWxlcyA6IDE7CiAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnRB
c3NpZ25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IDVlZTU2NjMz
MjlmNmE3NjA2YTQ2NDE1MTUwNDE2ZWMwODJlNzAwYTIuLjU1MDU3YjY4MDZkNTNiM2MyZDUxYzk3
M2ZmNDVhMGNmOWVmOGFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAgLTM1LDYg
KzM1LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVu
dCBob3N0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CiAKICAgICAgICAgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCiAgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
Y3BwCmluZGV4IDM3NmZiYzNiZjc0NDFiNTk3ZGQ5YWU4YTY0OWRmMjVlNzkxMDFjMzcuLjk5ODI2
NDUzMjA4NzY1MDY5M2M0NDhmYzVhNzZiOTMwYzFjNDBmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgRWxlbWVudCogVHJlZVNjb3BlOjpmaW5kQW5jaG9y
KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBUcmVlU2NvcGU6
OmFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3QKK2Jvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhvclN0
eWxlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgK
aW5kZXggMTZjZjY2NDRlNTY1NzgyNmQzYWMxODQ0MzA5ZTNjNGRlNjViZjBhYi4uNzZjMTJlNWM5
MGY3MWUyNGNlOThjODdkMWJmMTcxOGYzMTgyNmY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApA
QCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgLy8gcXVpcmtzIG1vZGUgZm9yIGhpc3Rvcmlj
YWwgY29tcGF0aWJpbGl0eSByZWFzb25zLgogICAgIEVsZW1lbnQqIGZpbmRBbmNob3IoY29uc3Qg
U3RyaW5nJiBuYW1lKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0OwogCiAgICAg
Ly8gVXNlZCBieSB0aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENo
aWxkKCkpLgogICAgIHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQ2NGJkMjY2
ZDNjODNlYjc1YThmNmU0ZDhjYzIzMzY5MWM4Yzc2OS4uNWE0MmRkMzAwZmM3MzkxNjIxZDVmM2E0
MTZmYjk2ODFmMGUxZWU1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA0LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5
bGVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0
aG9yU3R5bGVzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgIFRlc3RlZCB0d28gY2FzZXMsIGFwcGx5
QXV0aG9yU3R5bGVzIGlzIGZhbHNlIGFuZCBhcHBseUF1dGhvclN0eWxlcyBpcyB0cnVlLgorICAg
ICAgICBUaGVzZSB0ZXN0cyBzcGVjaWZ5ICJzcGFuIHsgLi4uIH0iIGluIGEgYXV0aG9yIHN0eWxl
IGFuZAorICAgICAgICBjb21wYXJlIHRoZSBzcGFuIGVsZW1lbnQncyByZW5kZXJpbmcgcmVzdWx0
cy4KKwogMjAxMi0wNC0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBU1NFUlQgd2hlbiBhIGxheWVyIHdpdGggYSBmb3JlZ3JvdW5kIGxheWVyIGlz
IGluICdwYWludCBpbnRvIGFuY2VzdG9yJyBtb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0
eWxlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NzQ0N2YxYTZkMDBkYWMzYjVjMjhhMWZk
MzAxYTE0YTg5ODBhMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iYXBwbHktYXV0aG9yLXN0eWxlIj48c3BhbiBzdHlsZT0ibWFyZ2luOjJweDsg
Ym9yZGVyOnNvbGlkIj48L3NwYW4+PC9kaXY+Cis8ZGl2IGlkPSJuby1hcHBseS1hdXRob3Itc3R5
bGUiPjxzcGFuPjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9y
U3R5bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRjMTQyM2NkMGQyOWM2NmY0OTM5M2IyMjk5Y2NmMWE4
ZTYxMGMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geworICAgIGRpc3BsYXk6
IGJveGVkLWlubGluZTsKKyAgICBtYXJnaW46IDJweDsKKyAgICBib3JkZXI6IHNvbGlkOworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYXBwbHktYXV0aG9yLXN0eWxlIj48
L2Rpdj4KKzxkaXYgaWQ9Im5vLWFwcGx5LWF1dGhvci1zdHlsZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0dWFsKSB7CisgICBpZiAoYWN0dWFsKSB7Cisg
ICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNlIGZhaWxlZCI7Cisg
ICB9Cit9CisKK2Z1bmN0aW9uIHJlbmRlckFwcGx5QXV0aG9yU3R5bGVDYXNlKCkgeworICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYXBwbHktYXV0aG9yLXN0eWxlJykuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAg
IHZhciBzciA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2Rl
ZmF1bHQgYXBwbHlBdXRob3JTdHlsZXMnLCBzci5hcHBseUF1dGhvclN0eWxlcyk7CisgICAgc3Iu
YXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOworICAgIHNyLmFwcGVuZENoaWxkKHNwYW4pOworfQorCitmdW5jdGlv
biByZW5kZXJOb0FwcGx5QXV0aG9yU3R5bGVDYXNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm8t
YXBwbHktYXV0aG9yLXN0eWxlJykuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIHZhciBzciA9IG5l
dyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgYXBwbHlB
dXRob3JTdHlsZXMnLCBzci5hcHBseUF1dGhvclN0eWxlcyk7CisgICAgc3IuYXBwbHlBdXRob3JT
dHlsZXMgPSBmYWxzZTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKKyAgICBzci5hcHBlbmRDaGlsZChzcGFuKTsKK30KKworcmVuZGVyQXBwbHlBdXRob3JT
dHlsZUNhc2UoKTsKK3JlbmRlck5vQXBwbHlBdXRob3JTdHlsZUNhc2UoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138386</attachid>
            <date>2012-04-23 11:09:15 -0700</date>
            <delta_ts>2012-05-01 04:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78472-20120423110914.patch</filename>
            <type>text/plain</type>
            <size>11814</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBmODYxNzdiNWM3N2Qy
NzIwNDMyODI0ZTVjNjljM2RlMjY2ODg1OS4uYmUyODQ4YWI4MDY0YmIwMzA0NWQyNjlkYjAxZjU3
NGM1ZTVmNTQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA0LTIzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGVkIGFwcGx5QXV0aG9yU3R5bGVzIGF0dHJpYnV0ZSBkZWZp
bmVkIGluIHRoZSBmb2xsb3dpbmcgc3BlYzoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hn
L3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc2hhZG93
LXJvb3QtYXR0cmlidXRlcworICAgICAgICBTaW5jZSBhcHBseUF1dGhvclNoZWV0cyBhdHRyaWJ1
dGUgaGFzIGJlZW4gYWxyZWFkeSBpbXBsZW1lbnRlZCwKKyAgICAgICAgcmVuYW1lZCBhbGwgYXBw
bHlBdXRob3JTaGVldHMgdG8gYXBwbHlBdXRob3JTdHlsZXMgYW5kCisgICAgICAgIGFkZGVkIGFw
cGx5QXV0aG9yU3R5bGVzIHRvIFNoYWRvd1Jvb3QuaWRsLgorICAgICAgICBDdXJyZW50bHksIGNo
YW5naW5nIGR5bmFtaWNhbGx5IGFwcGx5QXV0aG9yU3R5bGVzIGRvZXNuJ3Qgd29yay4gSSB3aWxs
IGZpeCB0aGlzIGlzc2UgaW4gYnVnczo4NDIxNTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MjUxCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLWV4cGVjdGVkLmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
U2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjphcHBseUF1dGhvclN0eWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxlcyk6CisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMpOgorICAgICAgICAqIGRv
bS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAgIENoYW5nZWQgYWxs
IGFwcGx5QXV0aG9yU2hlZXRzIHRvIGFwcGx5QXV0aG9yU3l0bGVzLgorICAgICAgICAoU2hhZG93
Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBhIG5l
dyBhdHRyaWJ1dGUsIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXMuCisKIDIwMTItMDQtMjMgIE1p
Y2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KICAgICAgICAg
W0VGTF1bV0syXSBGaXggYnVpbGQgYnJlYWsgd2hlbiBub24tY3Jvc3MgcGxhdGZvcm0gQ09OVEVY
VF9NRU5VUyBhcmUgZW5hYmxlZC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
aW5kZXggNTNhMTQzMDFiZjc3Y2M4ZjQ4NmJjZGFkMjJjYTc1ZjE0YWEwZGMyZC4uNTFjNTY3ZGQ4
YWFmNDhmZWJjZDM4YmExMTFjNTc1N2VhNGU5ODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMTAxNSw3ICsxMDE1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiog
cnVsZXMKICAgICAgICAgICAgIC8vIGQpIHRoZSBydWxlIGNvbnRhaW5zIHNoYWRvdy1JRCBwc2V1
ZG8gZWxlbWVudHMKICAgICAgICAgICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gbV9lbGVtZW50
LT50cmVlU2NvcGUoKTsKICAgICAgICAgICAgIGlmICghTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6Omlz
TWF0Y2hpbmdVQVJ1bGVzKCkKLSAgICAgICAgICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBseUF1
dGhvclNoZWV0cygpCisgICAgICAgICAgICAgICAgJiYgIXRyZWVTY29wZS0+YXBwbHlBdXRob3JT
dHlsZXMoKQogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgICAgICAgICAgICAgJiYgKCFv
cHRpb25zLnNjb3BlIHx8IG9wdGlvbnMuc2NvcGUtPnRyZWVTY29wZSgpICE9IHRyZWVTY29wZSkK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGU3NTBiYzIyYjQ0ZGI3NWE3
ZWU0OTZiZTk5NDFiYmU5Zjg0MjNlYTUuLmE5MmEwODI0YzczZGRiYjU4YzQ1NzQ5MGJiODExNWNj
ZDM1MDhhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
U2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBUcmVlU2Nv
cGUodGhpcykKICAgICAsIG1fcHJldigwKQogICAgICwgbV9uZXh0KDApCi0gICAgLCBtX2FwcGx5
QXV0aG9yU2hlZXRzKGZhbHNlKQorICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkKICAg
ICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50
KTsKQEAgLTE4OCwxNCArMTg4LDE0IEBAIGJvb2wgU2hhZG93Um9vdDo6aGFzSW5zZXJ0aW9uUG9p
bnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBTaGFkb3dSb290OjphcHBs
eUF1dGhvclNoZWV0cygpIGNvbnN0Citib29sIFNoYWRvd1Jvb3Q6OmFwcGx5QXV0aG9yU3R5bGVz
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9hcHBseUF1dGhvclNoZWV0czsKKyAgICByZXR1cm4g
bV9hcHBseUF1dGhvclN0eWxlczsKIH0KIAotdm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1dGhv
clNoZWV0cyhib29sIHZhbHVlKQordm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxl
cyhib29sIHZhbHVlKQogewotICAgIG1fYXBwbHlBdXRob3JTaGVldHMgPSB2YWx1ZTsKKyAgICBt
X2FwcGx5QXV0aG9yU3R5bGVzID0gdmFsdWU7CiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNo
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IGU1YjIyMWI3M2EzMzcxYTA1NDVmMGM0OTU5
NzE2NjhkYTgyNjlhYTguLjVkYjM3ODg0ZmE0ODUxMTBmZWU3MmNiN2ZjMjY3ZjVkOTk5NTNlOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAg
SW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50Rm9yKE5vZGUqKSBjb25zdDsKICAgICB2b2lk
IGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNo
ZWV0cygpIGNvbnN0OwotICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CisgICAg
dmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBcHBs
eUF1dGhvclN0eWxlcyhib29sKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVy
biBzaGFkb3dIb3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkgY29uc3Q7CkBAIC0xMDQs
NyArMTA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFk
b3dSb290KiBtX25leHQ7Ci0gICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzIDogMTsKKyAgICBi
b29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2Vy
dGlvblBvaW50QXNzaWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRl
eCA1ZWU1NjYzMzI5ZjZhNzYwNmE0NjQxNTE1MDQxNmVjMDgyZTcwMGEyLi41NTA1N2I2ODA2ZDUz
YjNjMmQ1MWM5NzNmZjQ1YTBjZjllZjhhYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRs
CkBAIC0zNSw2ICszNSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEVsZW1lbnQgaG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0
aXZlRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlbGVjdGlvbiBzZWxl
Y3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFwcGx5QXV0aG9yU3R5bGVzOwogCiAg
ICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVy
SFRNTAogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcAppbmRleCAzNzZmYmMzYmY3NDQxYjU5N2RkOWFlOGE2NDlkZjI1ZTc5MTAx
YzM3Li45OTgyNjQ1MzIwODc2NTA2OTNjNDQ4ZmM1YTc2YjkzMGMxYzQwZjkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIEVsZW1lbnQqIFRyZWVTY29wZTo6
ZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wg
VHJlZVNjb3BlOjphcHBseUF1dGhvclNoZWV0cygpIGNvbnN0Citib29sIFRyZWVTY29wZTo6YXBw
bHlBdXRob3JTdHlsZXMoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5oCmluZGV4IDE2Y2Y2NjQ0ZTU2NTc4MjZkM2FjMTg0NDMwOWUzYzRkZTY1YmYwYWIu
Ljc2YzEyZTVjOTBmNzFlMjRjZTk4Yzg3ZDFiZjE3MThmMzE4MjZmOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIHF1aXJrcyBtb2RlIGZv
ciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KICAgICBFbGVtZW50KiBmaW5kQW5j
aG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JT
aGVldHMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25z
dDsKIAogICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcu
LCBhcHBlbmRDaGlsZCgpKS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9kZSopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDllZGI2ZGQyNDc2Y2FkOWQxYmNjOWIyZmU3MWRlODQ3NmQwMDJjOTYuLjRmYmE2MzE0NzU5ZGQw
N2JlMmFjNjlkZjQyZmRhZTUzY2MzZTA2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0w
NC0yMyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hh
ZG93Um9vdCBuZWVkcyBhcHBseUF1dGhvclN0eWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBs
eUF1dGhvclN0eWxlcy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sOgorICAgICAgICBUZXN0ZWQgZm91ciBj
YXNlczoKKyAgICAgICAgY2FzZSAxOiBhcHBseUF1dGhvclN0eWxlcyBpcyBmYWxzZSwKKyAgICAg
ICAgY2FzZSAyOiBhcHBseUF1dGhvclN0eWxlcyBpcyB0cnVlIHdpdGggPHNjcmlwdD4uLjwvc2Ny
aXB0PiwKKyAgICAgICAgY2FzZSAzOiBhcHBseUF1dGhvclN0eWxlcyBpcyB0cnVlIHdpdGggaW5s
aW5lIHNjcmlwdCBkZWNsYXJhdGlvbiwgYW5kCisgICAgICAgIGNhc2UgNDogYXBwbHlBdXRob3JT
dHlsZXMgaXMgdHJ1ZSB3aXRoIGltcG9ydGFudCBVQSBwcm9wZXJ0eS4KKyAgICAgICAgVGhlIGNh
c2UgMSwgMiBhbmQgMyBzcGVjaWZ5ICJzcGFuIHsgLi4uIH0iIHdpdGggYXV0aG9yIHN0eWxlcyBh
bmQKKyAgICAgICAgdmVyaWZ5IHJlbmRlcmluZyByZXN1bHRzLgorICAgICAgICBUaGUgY2FzZSA0
IHNwZWNpZmllcyAnPGlucHV0IHR5cGU9ImZpbGUiIC8+JyB3aXRoIGFuIGF1dGhvciBzdHlsZSwK
KyAgICAgICAgdGV4dC1hbGlnbjogZW5kLCBhbmQgdmVyaWZ5IHJlbmRlcmluZyByZXN1bHQuCisK
IDIwMTItMDQtMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBp
bXBsZW1lbnQgZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JT
dHlsZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyYmU2ZmFj
ZjI5ODY3MTUxZjg2NDg3OWMzN2UyNjRiYzQwYWNkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImFwcGx5LWF1dGhvci1zdHlsZSI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6I2VlZjtib3JkZXI6c29saWQ7Y29sb3I6I2ZlZTtkaXNwbGF5OmJveGVkLWlubGluZTtm
b250LXNpemU6MjRweDttYXJnaW46MnB4O291dGxpbmUtY29sb3I6I2YwMDtwYWRkaW5nLWxlZnQ6
NXB4O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsiPjwvc3Bhbj48
L2Rpdj4KKzxkaXYgaWQ9Im5vLWFwcGx5LWF1dGhvci1zdHlsZSI+PHNwYW4+PC9zcGFuPjwvZGl2
PgorPGRpdiBpZD0id2l0aC1pbmxpbmUtc3R5bGUtZGVjbGFyYXRpb24iPjxzcGFuIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiNlZWY7Ym9yZGVyOm5vbmU7Y29sb3I6I2RhYTtkaXNwbGF5OmJveGVk
LWlubGluZTtmb250LXNpemU6MThweDttYXJnaW46MnB4O291dGxpbmUtY29sb3I6I2YwMDtwYWRk
aW5nLWxlZnQ6NXB4O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij48L3Nw
YW4+PC9kaXY+Cis8ZGl2IGlkPSJ0cnktdG8tb3ZlcmlkZS1pbXBvcnRhbnQiPjxpbnB1dCB0eXBl
PSJmaWxlIiAvPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDVkNmQ5ZWU3YTA0MGIyODBiZjA5YTNhM2M1Y2I0NDAwODMzMmQz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogI2VlZjsKKyAgICBib3JkZXI6IHNvbGlkOworICAgIGNvbG9yOiAjZmVlOworICAgIGRpc3Bs
YXk6IGJveGVkLWlubGluZTsKKyAgICBmb250LXNpemU6IDI0cHg7CisgICAgbWFyZ2luOiAycHg7
CisgICAgb3V0bGluZS1jb2xvcjogI2YwMDsKKyAgICBwYWRkaW5nLWxlZnQ6IDVweDsKKyAgICB0
ZXh0LWFsaWduOiBzdGFydDsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KK2lu
cHV0W3R5cGU9ImZpbGUiXSB7CisgICAgdGV4dC1hbGlnbjogZW5kOworfQorPC9zdHlsZT4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJhcHBseS1hdXRob3Itc3R5bGUiPjwvZGl2PgorPGRpdiBpZD0ibm8tYXBw
bHktYXV0aG9yLXN0eWxlIj48L2Rpdj4KKzxkaXYgaWQ9IndpdGgtaW5saW5lLXN0eWxlLWRlY2xh
cmF0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9InRyeS10by1vdmVycmlkZS1pbXBvcnRhbnQiPjwvZGl2
PgorCis8c2NyaXB0PgorZnVuY3Rpb24gYXNzZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7CisgICBpZiAo
IWFjdHVhbCkgeworICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBpZCArICAiOiBhc3NlcnRUcnVl
IGZhaWxlZCI7CisgICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1YWwpIHsK
KyAgIGlmIChhY3R1YWwpIHsKKyAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAgIjogYXNz
ZXJ0RmFsc2UgZmFpbGVkIjsKKyAgIH0KK30KKworZnVuY3Rpb24gcmVuZGVyQXBwbHlBdXRob3JT
dHlsZUNhc2UoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBseS1hdXRob3Itc3R5bGUnKS5hcHBl
bmRDaGlsZChkaXYpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9v
dChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hh
ZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7CisgICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0
eWxlcyA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJl
IHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKKyAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8c3Bhbj48L3NwYW4+JzsKK30KKworZnVuY3Rpb24gcmVuZGVyTm9BcHBseUF1
dGhvclN0eWxlQ2FzZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLWFwcGx5LWF1dGhvci1zdHls
ZScpLmFwcGVuZENoaWxkKGRpdik7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgYXBwbHlBdXRob3JTdHls
ZXMnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKKyAgICBzaGFkb3dSb290LmFwcGx5
QXV0aG9yU3R5bGVzID0gZmFsc2U7CisgICAgYXNzZXJ0RmFsc2UoJ2FwcGx5QXV0aG9yU3R5bGVz
IHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMpOworICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj4nOworfQorCitmdW5jdGlvbiByZW5k
ZXJBcHBseUF1dGhvclN0eWxlV2l0aElubGluZVN0eWxlRGVjbGFyYXRpb25DYXNlKCkgeworICAg
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnd2l0aC1pbmxpbmUtc3R5bGUtZGVjbGFyYXRpb24nKS5hcHBlbmRDaGls
ZChkaXYpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYp
OworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9v
dC5hcHBseUF1dGhvclN0eWxlcyk7CisgICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8c3BhbiBzdHlsZT0iYm9yZGVyOm5vbmU7IGNvbG9yOiNkYWE7IGZvbnQtc2l6ZToxOHB4
OyB0ZXh0LWRlY29yYXRpb246bm9uZSI+PC9zcGFuPic7Cit9CisKK2Z1bmN0aW9uIHJlbmRlckFw
cGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGluZ0ltcG9ydGFudFByb3BlcnR5Q2FzZSgpIHsKKyAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RyeS10by1vdmVycmlkZS1pbXBvcnRhbnQnKS5hcHBlbmRDaGlsZChk
aXYpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOwor
ICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9vdC5h
cHBseUF1dGhvclN0eWxlcyk7CisgICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRy
dWU7CisgICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBz
aGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICc8aW5wdXQgdHlwZT0iZmlsZSIgLz4nOworfQorCityZW5kZXJBcHBseUF1dGhvclN0eWxlQ2Fz
ZSgpOworcmVuZGVyTm9BcHBseUF1dGhvclN0eWxlQ2FzZSgpOworcmVuZGVyQXBwbHlBdXRob3JT
dHlsZVdpdGhJbmxpbmVTdHlsZURlY2xhcmF0aW9uQ2FzZSgpOworcmVuZGVyQXBwbHlBdXRob3JT
dHlsZVdpdGhPdmVycmlkaW5nSW1wb3J0YW50UHJvcGVydHlDYXNlKCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139610</attachid>
            <date>2012-05-01 04:46:43 -0700</date>
            <delta_ts>2012-05-09 05:52:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78472-20120501204642.patch</filename>
            <type>text/plain</type>
            <size>11673</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg3NzQ0MGUwYTdjYjM3
NjM4ZjVhYzBjZDQ4NzJjYTk3YmIzZDUyZS4uZWNhMmRjZmVjMDMxMWVkMDY0MjBhMjY5ZGEwODc0
ZTEwYjA1MzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA1LTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGFwcGx5QXV0aG9yU3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGVkIGFwcGx5QXV0aG9yU3R5bGVzIGF0dHJpYnV0ZSBkZWZp
bmVkIGluIHRoZSBmb2xsb3dpbmcgc3BlYzoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hn
L3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc2hhZG93
LXJvb3QtYXR0cmlidXRlcworICAgICAgICBTaW5jZSBhcHBseUF1dGhvclNoZWV0cyBhdHRyaWJ1
dGUgaGFzIGJlZW4gYWxyZWFkeSBpbXBsZW1lbnRlZCwKKyAgICAgICAgcmVuYW1lZCBhbGwgYXBw
bHlBdXRob3JTaGVldHMgdG8gYXBwbHlBdXRob3JTdHlsZXMgYW5kCisgICAgICAgIGFkZGVkIGFw
cGx5QXV0aG9yU3R5bGVzIHRvIFNoYWRvd1Jvb3QuaWRsLgorICAgICAgICBDdXJyZW50bHksIGNo
YW5naW5nIGR5bmFtaWNhbGx5IGFwcGx5QXV0aG9yU3R5bGVzIGRvZXNuJ3Qgd29yay4gSSB3aWxs
IGZpeCB0aGlzIGlzc2UgaW4gYnVnczo4NDIxNTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MjUxCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLWV4cGVjdGVkLmh0bWwKKworICAgICAg
ICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjphcHBseUF1dGhvclN0eWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxlcyk6CisgICAgICAgICogZG9t
L1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMpOgorICAgICAgICAqIGRvbS9UcmVl
U2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAgIENoYW5nZWQgYWxsIGFwcGx5
QXV0aG9yU2hlZXRzIHRvIGFwcGx5QXV0aG9yU3l0bGVzLgorICAgICAgICAoU2hhZG93Um9vdCk6
CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBhIG5ldyBhdHRy
aWJ1dGUsIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXMuCisKIDIwMTItMDUtMDEgIERhbmEgSmFu
c2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWFybHktb3V0IGZvciBzdWJ0
cmFjdGluZyBhIG5vbi1pbnRlcnNlY3RpbmcgcmVnaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKaW5kZXggNzg0ODhhM2RkYTBiZTA4YjRkNjgwNjVkYzkzNTc5OWM1OTEyYWQ3OS4u
YzIxMzcyMzI4NTZkYTE3NTg2ZWZhNDg1Yzg3ODMwMzY4NDYzMGI3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgdm9pZCBTdHlsZVJlc29s
dmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiog
cnVsZXMsIGkKICAgICAgICAgICAgIC8vIGQpIHRoZSBydWxlIGNvbnRhaW5zIHNoYWRvdy1JRCBw
c2V1ZG8gZWxlbWVudHMKICAgICAgICAgICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gbV9lbGVt
ZW50LT50cmVlU2NvcGUoKTsKICAgICAgICAgICAgIGlmICghTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6
OmlzTWF0Y2hpbmdVQVJ1bGVzKCkKLSAgICAgICAgICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBs
eUF1dGhvclNoZWV0cygpCisgICAgICAgICAgICAgICAgJiYgIXRyZWVTY29wZS0+YXBwbHlBdXRo
b3JTdHlsZXMoKQogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgICAgICAgICAgICAgJiYg
KCFvcHRpb25zLnNjb3BlIHx8IG9wdGlvbnMuc2NvcGUtPnRyZWVTY29wZSgpICE9IHRyZWVTY29w
ZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDhjMWQ4YjJkOGM2NDk3
ZWUwZDRkMTkwYzNmN2E2NDI2YjY2NDc3MzguLmE5MTNjZDcwY2IyZTQyMGRhYmY4M2Q1YjliNTZh
MDVmMjYwMGJhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBUcmVl
U2NvcGUodGhpcykKICAgICAsIG1fcHJldigwKQogICAgICwgbV9uZXh0KDApCi0gICAgLCBtX2Fw
cGx5QXV0aG9yU2hlZXRzKGZhbHNlKQorICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkK
ICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiB7CiAgICAgQVNTRVJUKGRvY3Vt
ZW50KTsKQEAgLTE4OCwxNCArMTg4LDE0IEBAIGJvb2wgU2hhZG93Um9vdDo6aGFzSW5zZXJ0aW9u
UG9pbnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBTaGFkb3dSb290Ojph
cHBseUF1dGhvclNoZWV0cygpIGNvbnN0Citib29sIFNoYWRvd1Jvb3Q6OmFwcGx5QXV0aG9yU3R5
bGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9hcHBseUF1dGhvclNoZWV0czsKKyAgICByZXR1
cm4gbV9hcHBseUF1dGhvclN0eWxlczsKIH0KIAotdm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1
dGhvclNoZWV0cyhib29sIHZhbHVlKQordm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclN0
eWxlcyhib29sIHZhbHVlKQogewotICAgIG1fYXBwbHlBdXRob3JTaGVldHMgPSB2YWx1ZTsKKyAg
ICBtX2FwcGx5QXV0aG9yU3R5bGVzID0gdmFsdWU7CiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6YXR0
YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IGU1YjIyMWI3M2EzMzcxYTA1NDVmMGM0
OTU5NzE2NjhkYTgyNjlhYTguLmU2YzRkZTcwNjIwYTY1OGE0YTlmMTExZGU2ZGU5MjE5NGE2M2I3
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAg
ICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50Rm9yKE5vZGUqKSBjb25zdDsKICAgICB2
b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhv
clNoZWV0cygpIGNvbnN0OwotICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7Cisg
ICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dm9pZCBzZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBj
b25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkgY29u
c3Q7CkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFNoYWRvd1Jvb3QqIG1fcHJl
djsKICAgICBTaGFkb3dSb290KiBtX25leHQ7Ci0gICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRz
IDogMTsKKyAgICBib29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOwogICAgIEluc2VydGlvblBv
aW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbAppbmRleCA1ZWU1NjYzMzI5ZjZhNzYwNmE0NjQxNTE1MDQxNmVjMDgyZTcwMGEyLi41
NTA1N2I2ODA2ZDUzYjNjMmQ1MWM5NzNmZjQ1YTBjZjllZjhhYmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsCkBAIC0zNSw2ICszNSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNl
bGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFwcGx5QXV0aG9y
U3R5bGVzOwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9N
U3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAzNzZmYmMzYmY3NDQxYjU5N2RkOWFlOGE2
NDlkZjI1ZTc5MTAxYzM3Li45OTgyNjQ1MzIwODc2NTA2OTNjNDQ4ZmM1YTc2YjkzMGMxYzQwZjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIEVsZW1lbnQq
IFRyZWVTY29wZTo6ZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIDA7
CiB9CiAKLWJvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhvclNoZWV0cygpIGNvbnN0Citib29sIFRy
ZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IDE2Y2Y2NjQ0ZTU2NTc4MjZkM2FjMTg0NDMwOWUz
YzRkZTY1YmYwYWIuLjc2YzEyZTVjOTBmNzFlMjRjZTk4Yzg3ZDFiZjE3MThmMzE4MjZmOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIHF1
aXJrcyBtb2RlIGZvciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KICAgICBFbGVt
ZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JT
dHlsZXMoKSBjb25zdDsKIAogICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBt
ZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9k
ZSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDUwYjUxYWFmZDNhMjViMGVjNDI2NzQ5YjM1ZDI4OWVjMWVmODFhOWEuLjI2
N2Y1NDFiZTM3ZDQzYjc1YWNjYmM0ZWNiY2U0NjliMTNhMzNlNjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxMi0wNS0wMSAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisK
KyAgICAgICAgU2hhZG93Um9vdCBuZWVkcyBhcHBseUF1dGhvclN0eWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sOgorICAgICAgICBU
ZXN0ZWQgZm91ciBjYXNlczoKKyAgICAgICAgY2FzZSAxOiBhcHBseUF1dGhvclN0eWxlcyBpcyBm
YWxzZSwKKyAgICAgICAgY2FzZSAyOiBhcHBseUF1dGhvclN0eWxlcyBpcyB0cnVlIHdpdGggPHNj
cmlwdD4uLjwvc2NyaXB0PiwKKyAgICAgICAgY2FzZSAzOiBhcHBseUF1dGhvclN0eWxlcyBpcyB0
cnVlIHdpdGggaW5saW5lIHNjcmlwdCBkZWNsYXJhdGlvbiwgYW5kCisgICAgICAgIGNhc2UgNDog
YXBwbHlBdXRob3JTdHlsZXMgaXMgdHJ1ZSB3aXRoIGltcG9ydGFudCBVQSBwcm9wZXJ0eS4KKyAg
ICAgICAgVGhlIGNhc2UgMSwgMiBhbmQgMyBzcGVjaWZ5ICJzcGFuIHsgLi4uIH0iIHdpdGggYXV0
aG9yIHN0eWxlcyBhbmQKKyAgICAgICAgdmVyaWZ5IHJlbmRlcmluZyByZXN1bHRzLgorICAgICAg
ICBUaGUgY2FzZSA0IHNwZWNpZmllcyAnPGlucHV0IHR5cGU9ImZpbGUiIC8+JyB3aXRoIGFuIGF1
dGhvciBzdHlsZSwKKyAgICAgICAgdGV4dC1hbGlnbjogZW5kLCBhbmQgdmVyaWZ5IHJlbmRlcmlu
ZyByZXN1bHQuCisKIDIwMTItMDUtMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmViYXNlbGluZSBmb3IgcmVjZW50IGNoYW5nZXMgYWJv
dXQgPGlucHV0IHR5cGU9ZGF0ZT4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyYmU2ZmFjZjI5ODY3MTUxZjg2NDg3OWMzN2UyNjRiYzQw
YWNkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImFwcGx5LWF1dGhvci1z
dHlsZSI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2VlZjtib3JkZXI6c29saWQ7Y29s
b3I6I2ZlZTtkaXNwbGF5OmJveGVkLWlubGluZTtmb250LXNpemU6MjRweDttYXJnaW46MnB4O291
dGxpbmUtY29sb3I6I2YwMDtwYWRkaW5nLWxlZnQ6NXB4O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTsiPjwvc3Bhbj48L2Rpdj4KKzxkaXYgaWQ9Im5vLWFwcGx5LWF1
dGhvci1zdHlsZSI+PHNwYW4+PC9zcGFuPjwvZGl2PgorPGRpdiBpZD0id2l0aC1pbmxpbmUtc3R5
bGUtZGVjbGFyYXRpb24iPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlZWY7Ym9yZGVy
Om5vbmU7Y29sb3I6I2RhYTtkaXNwbGF5OmJveGVkLWlubGluZTtmb250LXNpemU6MThweDttYXJn
aW46MnB4O291dGxpbmUtY29sb3I6I2YwMDtwYWRkaW5nLWxlZnQ6NXB4O3RleHQtYWxpZ246c3Rh
cnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij48L3NwYW4+PC9kaXY+Cis8ZGl2IGlkPSJ0cnktdG8t
b3ZlcmlkZS1pbXBvcnRhbnQiPjxpbnB1dCB0eXBlPSJmaWxlIiAvPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDVkNmQ5ZWU3
YTA0MGIyODBiZjA5YTNhM2M1Y2I0NDAwODMzMmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwK
QEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
Pgorc3BhbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsKKyAgICBib3JkZXI6IHNvbGlk
OworICAgIGNvbG9yOiAjZmVlOworICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKKyAgICBmb250
LXNpemU6IDI0cHg7CisgICAgbWFyZ2luOiAycHg7CisgICAgb3V0bGluZS1jb2xvcjogI2YwMDsK
KyAgICBwYWRkaW5nLWxlZnQ6IDVweDsKKyAgICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgICB0ZXh0
LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KK2lucHV0W3R5cGU9ImZpbGUiXSB7CisgICAgdGV4
dC1hbGlnbjogZW5kOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJhcHBseS1hdXRob3It
c3R5bGUiPjwvZGl2PgorPGRpdiBpZD0ibm8tYXBwbHktYXV0aG9yLXN0eWxlIj48L2Rpdj4KKzxk
aXYgaWQ9IndpdGgtaW5saW5lLXN0eWxlLWRlY2xhcmF0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9InRy
eS10by1vdmVycmlkZS1pbXBvcnRhbnQiPjwvZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24gYXNz
ZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7CisgICBpZiAoIWFjdHVhbCkgeworICAgICAgIHRocm93ICJm
YWlsdXJlOiIgKyBpZCArICAiOiBhc3NlcnRUcnVlIGZhaWxlZCI7CisgICB9Cit9CisKK2Z1bmN0
aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1YWwpIHsKKyAgIGlmIChhY3R1YWwpIHsKKyAgICAgICB0
aHJvdyAiZmFpbHVyZToiICsgaWQgKyAgIjogYXNzZXJ0RmFsc2UgZmFpbGVkIjsKKyAgIH0KK30K
KworZnVuY3Rpb24gcmVuZGVyQXBwbHlBdXRob3JTdHlsZUNhc2UoKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdhcHBseS1hdXRob3Itc3R5bGUnKS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgdmFyIHNo
YWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZhbHNlKCdk
ZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7
CisgICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRydWU7CisgICAgYXNzZXJ0VHJ1
ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0
aG9yU3R5bGVzKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8c3Bhbj48L3NwYW4+JzsK
K30KKworZnVuY3Rpb24gcmVuZGVyTm9BcHBseUF1dGhvclN0eWxlQ2FzZSgpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ25vLWFwcGx5LWF1dGhvci1zdHlsZScpLmFwcGVuZENoaWxkKGRpdik7CisKKyAg
ICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0
RmFsc2UoJ2RlZmF1bHQgYXBwbHlBdXRob3JTdHlsZXMnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9y
U3R5bGVzKTsKKyAgICBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gZmFsc2U7CisgICAg
YXNzZXJ0RmFsc2UoJ2FwcGx5QXV0aG9yU3R5bGVzIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jv
b3QuYXBwbHlBdXRob3JTdHlsZXMpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFu
Pjwvc3Bhbj4nOworfQorCitmdW5jdGlvbiByZW5kZXJBcHBseUF1dGhvclN0eWxlV2l0aElubGlu
ZVN0eWxlRGVjbGFyYXRpb25DYXNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aC1pbmxpbmUt
c3R5bGUtZGVjbGFyYXRpb24nKS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgdmFyIHNoYWRvd1Jv
b3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0
IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7CisgICAg
c2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgnYXBw
bHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5
bGVzKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT0iYm9yZGVyOm5v
bmU7IGNvbG9yOiNkYWE7IGZvbnQtc2l6ZToxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZSI+PC9z
cGFuPic7Cit9CisKK2Z1bmN0aW9uIHJlbmRlckFwcGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGlu
Z0ltcG9ydGFudFByb3BlcnR5Q2FzZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyeS10by1vdmVy
cmlkZS1pbXBvcnRhbnQnKS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFw
cGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7CisgICAgc2hh
ZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgnYXBwbHlB
dXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVz
KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0iZmlsZSIgLz4nOwor
fQorCityZW5kZXJBcHBseUF1dGhvclN0eWxlQ2FzZSgpOworcmVuZGVyTm9BcHBseUF1dGhvclN0
eWxlQ2FzZSgpOworcmVuZGVyQXBwbHlBdXRob3JTdHlsZVdpdGhJbmxpbmVTdHlsZURlY2xhcmF0
aW9uQ2FzZSgpOworcmVuZGVyQXBwbHlBdXRob3JTdHlsZVdpdGhPdmVycmlkaW5nSW1wb3J0YW50
UHJvcGVydHlDYXNlKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>