<?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>62218</bug_id>
          
          <creation_ts>2011-06-07 10:05:09 -0700</creation_ts>
          <short_desc>Shadow Pseudo ID should be able to nest to point nested shadow DOM</short_desc>
          <delta_ts>2012-06-12 18:28:56 -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>CSS</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72352</blocked>
    
    <blocked>59827</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dominicc</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>silviapf</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416589</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-07 10:05:09 -0700</bug_when>
    <thetext>Per https://bugs.webkit.org/show_bug.cgi?id=52917#c15, we need to be more precise in determining whether a rule applies a given instance of the shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417058</commentid>
    <comment_count>1</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-06-07 21:13:12 -0700</bug_when>
    <thetext>*** Bug 62261 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566434</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-27 23:52:15 -0800</bug_when>
    <thetext>Roland, do you think this is live?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566449</commentid>
    <comment_count>3</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-28 00:12:42 -0800</bug_when>
    <thetext>I think this is still valid, but more of a theoretical concern at the moment. Per spec, a pseudo-element selector cannot be followed by anything, except a few pseudo-classes. It&apos;s only when we relax this requirement that it may become a real issue.

(setting this to P3 for now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566753</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-28 08:58:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think this is still valid, but more of a theoretical concern at the moment. Per spec, a pseudo-element selector cannot be followed by anything, except a few pseudo-classes. It&apos;s only when we relax this requirement that it may become a real issue.
&gt; 
&gt; (setting this to P3 for now).

We relaxed it a while back: http://trac.webkit.org/changeset/85077.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579131</commentid>
    <comment_count>5</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-03-14 22:16:39 -0700</bug_when>
    <thetext>I have an issue with nested shadow DOMs and selectors.

I&apos;m working on the video controls. They are built as a shadow dom. The transport bar and the volume slider are implemented as input[type&quot;range&quot;] elements.

Now I want to style the input element&apos;s shadow dom.

In theory, I&apos;d like to do the following:

video::-webkit-media-controls  input[type=&quot;range&quot;]::-webkit-slider-container {
    border: 1px solid rgb(130, 130, 130);
    border-radius: 5px;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579135</commentid>
    <comment_count>6</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-03-14 22:33:18 -0700</bug_when>
    <thetext>Hmm, that was incomplete.

Instead of the above, I have to do:

input[type=&quot;range&quot;]::-webkit-slider-container {
    border: 1px solid rgb(130, 130, 130);
    border-radius: 5px;
}

otherwise I get no changes to the sliders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579169</commentid>
    <comment_count>7</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-15 00:05:01 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; video::-webkit-media-controls  input[type=&quot;range&quot;]::-webkit-slider-container {

A descendant combinator after a pseudo-element - I understand what you&apos;re attempting to do, but this is quite hairy from a spec point of view. Have you tried

video::-webkit-media-controls::-webkit-slider-container

Or even

video::-webkit-slider-container

? If those don&apos;t work either, then finding a solution for something like this (even with code changes) would go over much smoother IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580041</commentid>
    <comment_count>8</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-03-15 19:23:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; video::-webkit-media-controls  input[type=&quot;range&quot;]::-webkit-slider-container {
&gt; 
&gt; A descendant combinator after a pseudo-element - I understand what you&apos;re attempting to do, but this is quite hairy from a spec point of view.

OK, I am just trying to find something that works.

&gt; Have you tried
&gt; 
&gt; video::-webkit-media-controls::-webkit-slider-container

This is what I tried first and it doesn&apos;t work.


&gt; Or even
&gt; 
&gt; video::-webkit-slider-container

Again, this doesn&apos;t work.

Also, I cannot address individual sliders differently in this way. For example, I have a slider for the timeline and a slider for the volume. If I wanted to style them differently, it wouldn&apos;t be possible. (Thank god that&apos;s not currently required, but I can see it coming...)


&gt; ? If those don&apos;t work either, then finding a solution for something like this (even with code changes) would go over much smoother IMHO.

I&apos;m open for any suggestions. Other than hard coding media controls knowledge into the shadow dom of the input element, I couldn&apos;t see a solution. I don&apos;t think hard coding is the right approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580143</commentid>
    <comment_count>9</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-15 22:28:45 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Have you tried
&gt; &gt; 
&gt; &gt; video::-webkit-media-controls::-webkit-slider-container
&gt; 
&gt; This is what I tried first and it doesn&apos;t work.

Hm, I have a hunch why, but could you please post a minimal test case so that we can look at the issue in detail?

&gt; Also, I cannot address individual sliders differently in this way. For example, I have a slider for the timeline and a slider for the volume. If I wanted to style them differently, it wouldn&apos;t be possible. (Thank god that&apos;s not currently required, but I can see it coming...)

Well, just use 3 levels of pseudo-elements: volume::-webkit-media-controls::-webkit-volume-control::-webkit-slider-container ... ;) (just kidding!)

The problem in any case is that all of this requires more or less knowledge of the &lt;volume&gt;&apos;s internal structure. The way I think we really want to take this is to use CSS Variables. You&apos;d write

video {
    data-webkit-volume-control-border-width: 1px;
    data-webkit-volume-control-border-color: rgb(130, 130, 130);
    data-webkit-volume-control-border-radius: 5px;
}

and inside the shadow DOM you&apos;d use 

&lt;style scoped&gt;
    #volume::-webkit-slider-container {
        border: data(webkit-volume-control-border-width, 0px) solid data(webkit-volume-control-border-color, white);
        border-radius: data(webkit-volume-control-border-radius, 0px);
    }
&lt;/style&gt;

or even do another stage of handing variables off:

&lt;style scoped&gt;
    #volume {
        data-webkit-slider-border-color: data(webkit-volume-control-border-color, white);
        data-webkit-slider-border-width: data(webkit-volume-control-border-width, 0px);
        data-webkit-slider-border-radius: data(webkit-volume-control-border-radius, 0px);
    }
&lt;/style&gt;

where the shadow DOM within &lt;input type=&quot;range&quot;&gt; uses the variables similarly to set the border color and radius. But unfortunately all of this isn&apos;t ready yet.

&gt; I&apos;m open for any suggestions. Other than hard coding media controls knowledge into the shadow dom of the input element, I couldn&apos;t see a solution. I don&apos;t think hard coding is the right approach.

Actually, what is the purpose? Is this to allow the user to style the &lt;video&gt; element, or is it for internal styling only? In the latter case a &lt;style scoped&gt; inside the &lt;video&gt; shadow DOM might work, at least for the time being (?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580208</commentid>
    <comment_count>10</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-03-16 00:05:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; &gt; video::-webkit-media-controls::-webkit-slider-container
&gt; &gt; 
&gt; &gt; This is what I tried first and it doesn&apos;t work.
&gt; 
&gt; Hm, I have a hunch why, but could you please post a minimal test case so that we can look at the issue in detail?


The patch for Chrome that I&apos;m working on is not landed yet, so it&apos;s kinda difficult. I&apos;ll post a link to it when I&apos;m uploading it to the chrome bug tracker.


&gt; The problem in any case is that all of this requires more or less knowledge of the &lt;volume&gt;&apos;s internal structure. The way I think we really want to take this is to use CSS Variables. You&apos;d write
&gt; 
&gt; video {
&gt;     data-webkit-volume-control-border-width: 1px;
&gt;     data-webkit-volume-control-border-color: rgb(130, 130, 130);
&gt;     data-webkit-volume-control-border-radius: 5px;
&gt; }

&gt; where the shadow DOM within &lt;input type=&quot;range&quot;&gt; uses the variables similarly to set the border color and radius. But unfortunately all of this isn&apos;t ready yet.


Hmm, these are very long variable names. Also, it&apos;s not actually the control&apos;s border that I&apos;m setting, but the first shadow child (the container) in the input control.

I thought the shadowPseudoIds were a clever way of addressing the correct shadow element from CSS, but it&apos;s just unfortunate that there is only one level of hierarchical depth that we&apos;re allowed to use.


&gt; &gt; I&apos;m open for any suggestions. Other than hard coding media controls knowledge into the shadow dom of the input element, I couldn&apos;t see a solution. I don&apos;t think hard coding is the right approach.
&gt; 
&gt; Actually, what is the purpose? Is this to allow the user to style the &lt;video&gt; element, or is it for internal styling only?


It&apos;s for internal styling only right now. User styling is a bonus, but not strictly necessary for my Chrome video controls styling update.

&gt; In the latter case a &lt;style scoped&gt; inside the &lt;video&gt; shadow DOM might work, at least for the time being (?).

The shadow dom is coded in C++. I have an external stylesheet that is applied to the shadow dom, so scoping is out of the question IIUC.

If everything else fails, I think I will be able to grab the graphics context and set the CSS properties by hand. It&apos;s just that CSS is so much nicer to write than coding CSS rules in C++!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620026</commentid>
    <comment_count>11</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-05-09 16:48:53 -0700</bug_when>
    <thetext>The full patch for the updated video controls is now at https://bugs.webkit.org/attachment.cgi?id=140240&amp;action=prettypatch . I&apos;m attaching here just the subpart that will show this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620035</commentid>
    <comment_count>12</comment_count>
      <attachid>141052</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-05-09 16:53:47 -0700</bug_when>
    <thetext>Created attachment 141052
Patch that exposes the bug

Patch that exposes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624871</commentid>
    <comment_count>13</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-05-15 19:25:01 -0700</bug_when>
    <thetext>Also see https://code.google.com/p/chromium/issues/detail?id=112508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645840</commentid>
    <comment_count>14</comment_count>
      <attachid>146812</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 02:02:26 -0700</bug_when>
    <thetext>Created attachment 146812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645847</commentid>
    <comment_count>15</comment_count>
      <attachid>146812</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-06-11 02:13:22 -0700</bug_when>
    <thetext>Comment on attachment 146812
Patch

Attachment 146812 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12946116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645862</commentid>
    <comment_count>16</comment_count>
      <attachid>146812</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-11 02:27:26 -0700</bug_when>
    <thetext>Comment on attachment 146812
Patch

Attachment 146812 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12943198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645863</commentid>
    <comment_count>17</comment_count>
      <attachid>146812</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-11 02:31:17 -0700</bug_when>
    <thetext>Comment on attachment 146812
Patch

Attachment 146812 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12925909</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646018</commentid>
    <comment_count>18</comment_count>
      <attachid>146812</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-11 09:03:04 -0700</bug_when>
    <thetext>Comment on attachment 146812
Patch

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

I think you&apos;re missing expected file, and the bots are angry.

&gt; Source/WebCore/ChangeLog:10
&gt; +        - updateSpecifiersWithElementName() didn&apos;t take nesting into account.
&gt; +          tag history can contain selector entries which isn&apos;t marked as ShadowDescendant yet.
&gt; +          such entry can be found by investigating isUnknownPseudoElement().

I am curious when this happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646639</commentid>
    <comment_count>19</comment_count>
      <attachid>147010</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 22:50:01 -0700</bug_when>
    <thetext>Created attachment 147010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646643</commentid>
    <comment_count>20</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 22:56:16 -0700</bug_when>
    <thetext>Hi Dimitri, thanks for taking a look.

(In reply to comment #18)
&gt; (From update of attachment 146812 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146812&amp;action=review
&gt; 
&gt; I think you&apos;re missing expected file, and the bots are angry.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        - updateSpecifiersWithElementName() didn&apos;t take nesting into account.
&gt; &gt; +          tag history can contain selector entries which isn&apos;t marked as ShadowDescendant yet.
&gt; &gt; +          such entry can be found by investigating isUnknownPseudoElement().
&gt; 
&gt; I am curious when this happens.

Exactly in this case:

 tag::-shadow-id::-nested-shadow-id.

When the parser calls updateSpecifiersWithElementName(), there is a selector chain which looks like:

 [-shadow-id] &lt;-(ShadowDescenDant) - [-nested-shadow-id]

Since [-shadow-id] is the head of the chain, it has no tag history, thus no relationship to it is set.
It set tag name to the selector, instead of creating new one, which creates

 [both tag name and -shadow-id is set] &lt;-(ShadowDescenDant) - [-nested-shadow-id]

instead of 

 [tag] &lt;-(ShadowDescenDant) - [-shadow-id is set] &lt;-(ShadowDescenDant) - [-nested-shadow-id]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646645</commentid>
    <comment_count>21</comment_count>
      <attachid>147012</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 22:59:59 -0700</bug_when>
    <thetext>Created attachment 147012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647564</commentid>
    <comment_count>22</comment_count>
      <attachid>147012</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 18:28:49 -0700</bug_when>
    <thetext>Comment on attachment 147012
Patch

Clearing flags on attachment: 147012

Committed r120147: &lt;http://trac.webkit.org/changeset/120147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647565</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 18:28:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>141052</attachid>
            <date>2012-05-09 16:53:47 -0700</date>
            <delta_ts>2012-05-09 16:53:47 -0700</delta_ts>
            <desc>Patch that exposes the bug</desc>
            <filename>shadowDomStyling.git.diff</filename>
            <type>text/plain</type>
            <size>1053</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Nz
IGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKaW5kZXggNzMy
M2YyYS4uMDA2MGIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNDaHJvbWl1bS5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3MKQEAgLTEwNSw2ICsxMDUsMjIgQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZWxpbmUtY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy0KICAg
ICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiB9CiAK
Ky8qIEZJWE1FIHRoZXNlIHJpZ2h0IG5vdyBicmVhayBvdGhlciB1c2FnZSBvZiBpbnB1dCBpbiBz
aGFkb3cgRE9NcworICAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTExMjUwOAorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyMjE4CisqLworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItY29udGFp
bmVyIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAgYm9y
ZGVyLXJhZGl1czogNXB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyOSwgMjksIDI5KTsK
K30KKworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeworICAgIG1h
cmdpbi1sZWZ0OiAtN3B4OworICAgIG1hcmdpbi1yaWdodDogLTdweDsKKyAgICBib3R0b206IDFw
eDsKKworCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxh
eSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkgewog
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXk7CiAgICAg
LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146812</attachid>
            <date>2012-06-11 02:02:26 -0700</date>
            <delta_ts>2012-06-11 22:49:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62218-20120611180225.patch</filename>
            <type>text/plain</type>
            <size>8384</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q5NjBlYzZmY2MyNjBi
ZTI3NDI3ZmVhMzk0NDIwZTQ5ZmY2YzQ4YS4uYmRiYzc0ZDc0YTdjMmRhNmZjNTM1NjBiNjRmNGE0
OTBlNTgwYmJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTExICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBQc2V1ZG8g
SUQgc2hvdWxkIGJlIGFibGUgdG8gbmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93IERPTS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSB1cGRhdGVTcGVj
aWZpZXJzV2l0aEVsZW1lbnROYW1lKCkgZGlkbid0IHRha2UgbmVzdGluZyBpbnRvIGFjY291bnQu
CisgICAgICAgICAgdGFnIGhpc3RvcnkgY2FuIGNvbnRhaW4gc2VsZWN0b3IgZW50cmllcyB3aGlj
aCBpc24ndCBtYXJrZWQgYXMgU2hhZG93RGVzY2VuZGFudCB5ZXQuCisgICAgICAgICAgc3VjaCBl
bnRyeSBjYW4gYmUgZm91bmQgYnkgaW52ZXN0aWdhdGluZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50
KCkuCisgICAgICAgIC0gU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKCkgd2FzIHRvbyBz
dHJpY3QuIFVua25vd24gcHNldWRvIGVsZW1lbnRzIGFyZSBlc3NlbnRpYWxseSBhIGtpbmQgb2Yg
Y2xhc3Mgb3IgaWQKKyAgICAgICAgICBpbiBpbXBsZW1lbnRhdGlvbiBwZXJzcGVjdGl2ZS4gRm9y
IHN1Y2gsIHJlamVjdGluZyBieSBtaXNzaW5nIGVsZW1lbnRTdHlsZSBkb2Vzbid0IG1ha2Ugc2Vu
c2U6CisgICAgICAgICAgSXQgaXNuJ3QgYSBwc2V1ZG8gYnV0IGEgcmVhbCBlbGVtZW50IGZvciBX
ZWJDb3JlIGFmdGVyIGFsbC4KKyAgICAgICAgLSBBZGRlZCBJbnRlcm5hbHM6OnNldFNoYWRvd1Bz
ZXVkb0lkKCkgdG8gY3JlYXRlIGEgdGVzdCBoYXJuZXNzIHdob3NlIERPTSB0cmVlIGNvbnRhaW5z
IHBzZXVkbyBzaGFkb3cgaWRzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50
TmFtZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0U2hhZG93
UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCiAyMDEyLTA2LTA2ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBhbmQgRWxlbWVu
dC5nZXRDbGllbnRSZWN0cygpIHJldHVybiBpbmNvcnJlY3QgdmFsdWVzIGluIGZyYW1lcyBpbiBh
IHNjYWxlZCBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDk3MzM0MmQwOTA4MDk5
NzlmYjkwZTYwMTk0ZTZiOWNmNjY2MTgwMTMuLjk0MDAwZDUyOTNjYjU5NjE0OWMwZTE2YjI3MzI1
M2E4YmI2NTlkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC05MjA2LDcgKzkyMDYs
NyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogICAgIENTU1BhcnNlclNlbGVjdG9yKiBoaXN0
b3J5ID0gc3BlY2lmaWVyczsKICAgICB3aGlsZSAoaGlzdG9yeS0+dGFnSGlzdG9yeSgpKSB7CiAg
ICAgICAgIGhpc3RvcnkgPSBoaXN0b3J5LT50YWdIaXN0b3J5KCk7Ci0gICAgICAgIGlmIChoaXN0
b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50KCkpCisgICAgICAgIGlmIChoaXN0b3J5LT5pc1Vua25v
d25Qc2V1ZG9FbGVtZW50KCkgfHwgaGlzdG9yeS0+aGFzU2hhZG93RGVzY2VuZGFudCgpKQogICAg
ICAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQgPSBoaXN0b3J5OwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA1MGZlZDQ4MDhhNzUxNWEzYTQ0ZDlm
ZTliOWE4ZWM4N2JiNmFkNDY1Li5kOTU5ZjY3MTVhMzVjNzZlMmNkOTU1Y2ZiMjNiNDA0YTJjZDNh
YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMTE3NywxNCAr
MTE3NywxNCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBT
ZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
RWxlbWVudCkgewotICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21vZGUg
PT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVzKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCiAgICAgICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNldWRv
RWxlbWVudCgpKSB7CiAgICAgICAgICAgICBtX2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IHRy
dWU7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSA9PSBzZWxl
Y3Rvci0+dmFsdWUoKTsKICAgICAgICAgfQogCisgICAgICAgIGlmICgoIWNvbnRleHQuZWxlbWVu
dFN0eWxlICYmIG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSkgfHwgbV9tb2RlID09IFF1ZXJ5aW5n
UnVsZXMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgUHNldWRvSWQgcHNl
dWRvSWQgPSBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSk7CiAg
ICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKICAgICAgICAgICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50LT5kb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IGY0YWQzZjY4YjU3Y2MwOTEwOTBjODQ5MDMzMGM1MzJmYjc4
ZmMyOTAuLjY4ZmU1MjgwODg3YzRlNTk4MWM3N2RiNWI1OTZlMWU1YjgwNjdkNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM4MCw2ICszODAsMTYgQEAgU3RyaW5nIElu
dGVybmFsczo6c2hhZG93UHNldWRvSWQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkuc3RyaW5nKCk7CiB9CiAK
K3ZvaWQgSW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBjb25z
dCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICByZXR1cm4gZWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoaWQsIGVjKTsKK30KKwog
U3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBsYWNlaG9sZGVyKEVsZW1lbnQqIGVsZW1lbnQpCiB7
CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gdG9UZXh0Rm9y
bUNvbnRyb2woZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA2ZmE0
YTQ1YzY3MjlkMWNhYjVkYzA3NGQxMzI4YjUzMTJmNWMxNGU0Li5lY2UyMGJkMTAwZGYxN2NkMGU1
YTliN2MxMDE0ODYzYWEyMWJiZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTc3LDYgKzc3LDggQEAgcHVibGljOgogICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRP
ck5vZGUqIG9sZGVyU2hhZG93Um9vdChOb2RlKiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmlu
ZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
U2hhZG93UHNldWRvSWQoRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
KwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jv
b3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIGJvb2wgaXNWYWxpZENvbnRlbnRTZWxlY3QoRWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhYTEw
ODU4YmIzZDY2NmFmNGZjMDVkYmVlOGE0NDA3NmFkZjg2MDQwLi5mMmY3MWI3NTdkMGE3MzUxN2Jl
MjVlMmM2MTIzYWM0MTgxMjBlYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CkBAIC01MCw2ICs1MCw3IEBAIG1vZHVsZSB3aW5kb3cgewogI2VuZGlmCiAgICAgICAgIEVsZW1l
bnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAg
ICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50
IGVsZW1lbnQsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAg
ICBFbGVtZW50IGNyZWF0ZUNvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93
Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNWYWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVudCBj
b250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2MwOTRjOGMzMjhl
OTU4ZDc0ZjU5YzA2MGQ0YTVlNzJmZjUxOTllOC4uOTg0ZDQ1ZjkzMTczYzMwNzlmNmFjZDcxYTBm
ZmI4N2M2ODUyZmUwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTExICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBQc2V1ZG8gSUQg
c2hvdWxkIGJlIGFibGUgdG8gbmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93IERPTS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDYgIFhp
YW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbGVtZW50
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGFuZCBFbGVtZW50LmdldENsaWVudFJlY3RzKCkgcmV0
dXJuIGluY29ycmVjdCB2YWx1ZXMgaW4gZnJhbWVzIGluIGEgc2NhbGVkIHBhZ2UKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGRjMmZiMDRhYzM0N2RlMTc0OGM2YzNmODA4MjhkNTRjMjJmYzEy
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
bmVzdGVkLXBzZXVkby1pZC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorCitwOjotc2hhZG93LWNoaWxkIHsKKyAgY29sb3I6
IHJlZDsKK30KKworYTo6LW5lc3RlZC1zaGFkb3ctY2hpbGQgeworICBjb2xvcjogYmx1ZTsKK30K
KworcDo6LXNoYWRvdy1jaGlsZDo6LW5lc3RlZC1zaGFkb3ctY2hpbGQgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxwIGlkPSJob3N0Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0
aW9uIGJ1aWxkU2hhZG93V2l0aE9uZUNoaWxkKGhvc3QsIGNoaWxkVGFnTmFtZSwgY2hpbGRQc2V1
ZG9JZCkKK3sKKyAgICB2YXIgc2hhZG93ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7Cisg
ICAgdmFyIHNoYWRvd0NoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjaGlsZFRhZ05hbWUp
OworICAgIHNoYWRvdy5hcHBlbmRDaGlsZChzaGFkb3dDaGlsZCk7CisgICAgaW50ZXJuYWxzLnNl
dFNoYWRvd1BzZXVkb0lkKHNoYWRvd0NoaWxkLCBjaGlsZFBzZXVkb0lkKTsKKyAgICByZXR1cm4g
eyBob3N0OiBob3N0LCBzaGFkb3c6IHNoYWRvdywgc2hhZG93Q2hpbGQ6IHNoYWRvd0NoaWxkIH07
Cit9CisKK2Rlc2NyaXB0aW9uKCJOZXN0ZWQgcHNldWRvIGlkIHNob3VsZCBiZSBtYXRjaGFibGUi
KTsKKworaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgIGZhaWwoIllvdSBuZWVkIHdpbmRvdy5p
bnRlcm5hbHMgdG8gcnVuIHRoaXMgdGVzdCIpOworICAgIAordmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaG9zdCIpOwordmFyIHR1cGxlID0gYnVpbGRTaGFkb3dXaXRoT25lQ2hp
bGQoaG9zdCwgImEiLCAiLXNoYWRvdy1jaGlsZCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHR1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdiKDI1NSwgMCwgMCknIik7
Cit2YXIgc2hhZG93VHVwbGUgPSBidWlsZFNoYWRvd1dpdGhPbmVDaGlsZCh0dXBsZS5zaGFkb3dD
aGlsZCwgImIiLCAiLW5lc3RlZC1zaGFkb3ctY2hpbGQiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShzaGFkb3dUdXBsZS5zaGFkb3dDaGlsZCkuY29sb3IiLCAiJ3JnYigwLCAw
LCAyNTUpJyIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxl
LnNoYWRvd0NoaWxkKS5iYWNrZ3JvdW5kQ29sb3IiLCAiJ3JnYigwLCAxMjgsIDApJyIpOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147010</attachid>
            <date>2012-06-11 22:50:01 -0700</date>
            <delta_ts>2012-06-11 22:59:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62218-20120612144957.patch</filename>
            <type>text/plain</type>
            <size>13355</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5MWY2ZTUyY2ZlMGUw
ZWQ2OTMyMjM4NWRkMzdhMWVhYjRkNzgzMC4uZjdmZTNjZjkzMTgyNmY5Y2ZjZTlmOTYyOGYwNWYx
MzNlOGYyNTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTExICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBQc2V1ZG8g
SUQgc2hvdWxkIGJlIGFibGUgdG8gbmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93IERPTS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSB1cGRhdGVTcGVj
aWZpZXJzV2l0aEVsZW1lbnROYW1lKCkgZGlkbid0IHRha2UgbmVzdGluZyBpbnRvIGFjY291bnQu
CisgICAgICAgICAgdGFnIGhpc3RvcnkgY2FuIGNvbnRhaW4gc2VsZWN0b3IgZW50cmllcyB3aGlj
aCBpc24ndCBtYXJrZWQgYXMgU2hhZG93RGVzY2VuZGFudCB5ZXQuCisgICAgICAgICAgc3VjaCBl
bnRyeSBjYW4gYmUgZm91bmQgYnkgaW52ZXN0aWdhdGluZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50
KCkuCisgICAgICAgIC0gU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKCkgd2FzIHRvbyBz
dHJpY3QuIFVua25vd24gcHNldWRvIGVsZW1lbnRzIGFyZSBlc3NlbnRpYWxseSBhIGtpbmQgb2Yg
Y2xhc3Mgb3IgaWQKKyAgICAgICAgICBpbiBpbXBsZW1lbnRhdGlvbiBwZXJzcGVjdGl2ZS4gRm9y
IHN1Y2gsIHJlamVjdGluZyBieSBtaXNzaW5nIGVsZW1lbnRTdHlsZSBkb2Vzbid0IG1ha2Ugc2Vu
c2U6CisgICAgICAgICAgSXQgaXNuJ3QgYSBwc2V1ZG8gYnV0IGEgcmVhbCBlbGVtZW50IGZvciBX
ZWJDb3JlIGFmdGVyIGFsbC4KKyAgICAgICAgLSBBZGRlZCBJbnRlcm5hbHM6OnNldFNoYWRvd1Bz
ZXVkb0lkKCkgdG8gY3JlYXRlIGEgdGVzdCBoYXJuZXNzIHdob3NlIERPTSB0cmVlIGNvbnRhaW5z
IHBzZXVkbyBzaGFkb3cgaWRzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25l
U2VsZWN0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6c2V0U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA2LTEwICBZb3NoaWZ1bWkg
SW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Zvcm1zXSBJbnRyb2R1Y2Ug
RGVjaW1hbCBiZWhpbmQgdGhlIElucHV0TnVtYmVyIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNDI4NjYw
MjNjMzFlNzVhYWQ3NzBkOTA3MWJkMzQ4NDRmOGQxYzdkLi4zMjI3OWRjOTk4YzM5YjkxNzAyZTRl
NDI2ZDgzZjI1MGZlNWJhNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYt
MTEgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93
IFBzZXVkbyBJRCBzaG91bGQgYmUgYWJsZSB0byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cg
RE9NLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIy
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTIt
MDYtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1
bm5lZWRlZCBjYWxsUmVtb3ZlZExhc3RSZWYgZnVuY3Rpb24gZnJvbSBUcmVlU2hhcmVkIHJlZmFj
dG9yaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDdhN2M2NzA2NmVjMjMxOWExMGE0NmNlYzc2
ZDRlYzMwZTJmOGRhMzQuLmY0YWNhZjQ3ZTFlZjY0OGQ4NGExNGExZGVmZDc3ZGJhMDM5OTc0ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NTEsNiArOTUxLDcgQEAgX19aTjdXZWJDb3JlNnRv
Tm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhj
ZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25z
RWIKIF9fWk43V2ViQ29yZTdFbGVtZW50MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgorX19aTjdX
ZWJDb3JlN0VsZW1lbnQxN3NldFNoYWRvd1BzZXVkb0lkRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VS
aQogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0
NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDk3MzM0MmQwOTA4MDk5NzlmYjkwZTYwMTk0ZTZiOWNmNjY2MTgwMTMu
Ljk0MDAwZDUyOTNjYjU5NjE0OWMwZTE2YjI3MzI1M2E4YmI2NTlkMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCkBAIC05MjA2LDcgKzkyMDYsNyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRl
U3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVBy
ZQogICAgIENTU1BhcnNlclNlbGVjdG9yKiBoaXN0b3J5ID0gc3BlY2lmaWVyczsKICAgICB3aGls
ZSAoaGlzdG9yeS0+dGFnSGlzdG9yeSgpKSB7CiAgICAgICAgIGhpc3RvcnkgPSBoaXN0b3J5LT50
YWdIaXN0b3J5KCk7Ci0gICAgICAgIGlmIChoaXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50KCkp
CisgICAgICAgIGlmIChoaXN0b3J5LT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgfHwgaGlzdG9y
eS0+aGFzU2hhZG93RGVzY2VuZGFudCgpKQogICAgICAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRh
bnQgPSBoaXN0b3J5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCA1MGZlZDQ4MDhhNzUxNWEzYTQ0ZDlmZTliOWE4ZWM4N2JiNmFkNDY1Li5kOTU5ZjY3
MTVhMzVjNzZlMmNkOTU1Y2ZiMjNiNDA0YTJjZDNhYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtMTE3NywxNCArMTE3NywxNCBAQCBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29u
dGV4dCwgUAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmIChzZWxlY3Rvci0+
bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCkgewotICAgICAgICBpZiAoKCFj
b250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9k
ZSA9PSBRdWVyeWluZ1J1bGVzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgICAg
IGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBt
X2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZWxl
bWVudC0+c2hhZG93UHNldWRvSWQoKSA9PSBzZWxlY3Rvci0+dmFsdWUoKTsKICAgICAgICAgfQog
CisgICAgICAgIGlmICgoIWNvbnRleHQuZWxlbWVudFN0eWxlICYmIG1fbW9kZSA9PSBSZXNvbHZp
bmdTdHlsZSkgfHwgbV9tb2RlID09IFF1ZXJ5aW5nUnVsZXMpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICAgICAgUHNldWRvSWQgcHNldWRvSWQgPSBDU1NTZWxlY3Rvcjo6cHNldWRv
SWQoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSk7CiAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJT
VF9MRVRURVIpIHsKICAgICAgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50
LT5kb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNmZDA5
MDdiNzNlMzYwMDgwNmE1MTc2YWQ5Zjc3MmNhODZlOTlmYzYuLmQ3NGM5YThkYWY5Y2Q1ZWU4YTZh
ZWJiN2FjNDY2YzgzNWIxYmZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTM4MSw2ICszODEsMTYgQEAgU3RyaW5nIEludGVybmFsczo6c2hhZG93UHNldWRvSWQoRWxl
bWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNo
YWRvd1BzZXVkb0lkKCkuc3RyaW5nKCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTaGFkb3dQ
c2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZXR1cm4gZWxlbWVudC0+c2V0
U2hhZG93UHNldWRvSWQoaWQsIGVjKTsKK30KKwogU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBs
YWNlaG9sZGVyKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQqIHRleHRDb250cm9sID0gdG9UZXh0Rm9ybUNvbnRyb2woZWxlbWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA2ZmE0YTQ1YzY3MjlkMWNhYjVkYzA3NGQxMzI4YjUz
MTJmNWMxNGU0Li5lY2UyMGJkMTAwZGYxN2NkMGU1YTliN2MxMDE0ODYzYWEyMWJiZDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGljOgogICAg
IFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIG9sZGVyU2hhZG93Um9vdChOb2Rl
KiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2Rl
KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0U2hhZG93UHNldWRvSWQoRWxlbWVudCosIGNv
bnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4g
Y3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxl
bWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3Qg
U3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgaXNWYWxpZENvbnRlbnRTZWxl
Y3QoRWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhYTEwODU4YmIzZDY2NmFmNGZjMDVkYmVlOGE0NDA3
NmFkZjg2MDQwLi5mMmY3MWI3NTdkMGE3MzUxN2JlMjVlMmM2MTIzYWM0MTgxMjBlYWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01MCw2ICs1MCw3IEBAIG1vZHVsZSB3
aW5kb3cgewogI2VuZGlmCiAgICAgICAgIEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2Rl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9J
ZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9p
ZCBzZXRTaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBpZCkg
cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBFbGVtZW50IGNyZWF0ZUNvbnRlbnRFbGVt
ZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
RWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGlu
IERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNW
YWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVudCBjb250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNGE3NGQ1YWE5ZjVjYTgwMzQ2MTBh
ZTI1ZmQxNjc2ZTA3MTM2Yzg5NS4uMmE0N2VhODk4Y2U4MzcyYzViMjM2Mzg5ODBjN2YwNjI3YmQ1
YjI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjE5LDYgKzIxOSw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0
b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAgID9zZXRTYW5zU2VyaWZGb250
RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3Jp
cHRDb2RlQEBAWgogICAgICAgICA/c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BX
ZWJDb3JlQEBRQUVYX04wQFoKKyAgICAgICAgP3NldFNoYWRvd1BzZXVkb0lkQEVsZW1lbnRAV2Vi
Q29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQEFBSEBaCiAgICAgICAgID9zZXREZWxlZ2F0
ZXNTY3JvbGxpbmdAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0U2Ny
b2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50
UG9pbnRAMkBAWgogICAgICAgICA/c2V0U2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVA
QFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDNlMjAwNjI3ZjE5N2EzNTIzNzU4ODZjNThhOTZkMzdl
ZjdkOTFjNzQuLmY3MmM3ZTEyNGQzZDRhMTlkMmM3MmM2NDk5OTE0ZTZkZTFmZDdjMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTIxNSw2ICsyMTUsNyBAQCBFWFBPUlRT
CiAgICAgICAgID9zZXREZWxlZ2F0ZXNTY3JvbGxpbmdAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVY
X05AWgogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJl
YUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U2VyaWZGb250RmFt
aWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRD
b2RlQEBAWgorICAgICAgICA/c2V0U2hhZG93UHNldWRvSWRARWxlbWVudEBXZWJDb3JlQEBRQUVY
QUJWQXRvbWljU3RyaW5nQFdURkBAQUFIQFoKICAgICAgICAgP3NldFN0YW5kYXJkRm9udEZhbWls
eUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29k
ZUBAQFoKICAgICAgICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29y
ZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElu
cHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCmluZGV4IDZhOGQwN2YwNGM3NjA0NDgxYWQzYjRhZGI3MzlhZjZhYzg2NDkwMTUuLmYw
NWZlYzFhOTlkMTkyZDlkODM1OGJiMmRhNGQ0ZTQ0NWVhOTM0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcgpAQCAtODUsNiArODUsNyBAQCBfWk43V2ViQ29yZTZKU05vZGUyMHZpc2l0Q2hpbGRy
ZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0b3JFOwogX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5m
b0U7CiBfWk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTdFbGVt
ZW50MjByZW1vdmVTaGFkb3dSb290TGlzdEV2OworX1pON1dlYkNvcmU3RWxlbWVudDE3c2V0U2hh
ZG93UHNldWRvSWRFUktOM1dURjEyQXRvbWljU3RyaW5nRVJpOwogX1pON1dlYkNvcmU3dG9SYW5n
ZUVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0VmlydHVhbEVQTjNK
U0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFBy
b3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGFk
YzgzNjllMzU3Zjc1NTE1NTNmMjNkZmE3NTQyMWRkZjVkZjRkLi40NmVmYTJhNWVmZjRlOGQ3OGE4
ZjM2ZDlkYTY3NjMzNGE1ZjVlNDE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTEg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IFBz
ZXVkbyBJRCBzaG91bGQgYmUgYWJsZSB0byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9N
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wNi0xMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtGb3Jtc10gSW50cm9kdWNlIERlY2ltYWwgYmVoaW5kIHRoZSBJbnB1dE51
bWJlciB0eXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LW5lc3RlZC1wc2V1ZG8taWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDU4
ZDZiNTA0ODM1MWQzZDJjYjc1MjkxODg2MWZiYTRjYzJmNGRiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitOZXN0ZWQgcHNldWRvIGlkIHNob3VsZCBiZSBtYXRj
aGFibGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUodHVwbGUuc2hhZG93Q2hpbGQpLmNvbG9yIGlzICdyZ2IoMjU1LCAwLCAwKScK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hhZG93Q2hpbGQpLmNv
bG9yIGlzICdyZ2IoMCwgMCwgMjU1KScKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hh
ZG93VHVwbGUuc2hhZG93Q2hpbGQpLmJhY2tncm91bmRDb2xvciBpcyAncmdiKDAsIDEyOCwgMCkn
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRv
LWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1
ZG8taWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGMyZmIwNGFjMzQ3ZGUxNzQ4YzZjM2Y4MDgyOGQ1NGMy
MmZjMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisKK3A6Oi1zaGFkb3ctY2hpbGQgeworICBj
b2xvcjogcmVkOworfQorCithOjotbmVzdGVkLXNoYWRvdy1jaGlsZCB7CisgIGNvbG9yOiBibHVl
OworfQorCitwOjotc2hhZG93LWNoaWxkOjotbmVzdGVkLXNoYWRvdy1jaGlsZCB7CisgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHAgaWQ9Imhvc3QiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZnVuY3Rpb24gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQoaG9zdCwgY2hpbGRUYWdOYW1lLCBjaGls
ZFBzZXVkb0lkKQoreworICAgIHZhciBzaGFkb3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0
KTsKKyAgICB2YXIgc2hhZG93Q2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGNoaWxkVGFn
TmFtZSk7CisgICAgc2hhZG93LmFwcGVuZENoaWxkKHNoYWRvd0NoaWxkKTsKKyAgICBpbnRlcm5h
bHMuc2V0U2hhZG93UHNldWRvSWQoc2hhZG93Q2hpbGQsIGNoaWxkUHNldWRvSWQpOworICAgIHJl
dHVybiB7IGhvc3Q6IGhvc3QsIHNoYWRvdzogc2hhZG93LCBzaGFkb3dDaGlsZDogc2hhZG93Q2hp
bGQgfTsKK30KKworZGVzY3JpcHRpb24oIk5lc3RlZCBwc2V1ZG8gaWQgc2hvdWxkIGJlIG1hdGNo
YWJsZSIpOworCitpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgZmFpbCgiWW91IG5lZWQgd2lu
ZG93LmludGVybmFscyB0byBydW4gdGhpcyB0ZXN0Iik7CisgICAgCit2YXIgaG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Cit2YXIgdHVwbGUgPSBidWlsZFNoYWRvd1dpdGhP
bmVDaGlsZChob3N0LCAiYSIsICItc2hhZG93LWNoaWxkIik7CitzaG91bGRCZSgid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodHVwbGUuc2hhZG93Q2hpbGQpLmNvbG9yIiwgIidyZ2IoMjU1LCAwLCAw
KSciKTsKK3ZhciBzaGFkb3dUdXBsZSA9IGJ1aWxkU2hhZG93V2l0aE9uZUNoaWxkKHR1cGxlLnNo
YWRvd0NoaWxkLCAiYiIsICItbmVzdGVkLXNoYWRvdy1jaGlsZCIpOworc2hvdWxkQmUoIndpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdi
KDAsIDAsIDI1NSknIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93
VHVwbGUuc2hhZG93Q2hpbGQpLmJhY2tncm91bmRDb2xvciIsICIncmdiKDAsIDEyOCwgMCknIik7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMDEwOWUw
OTY1NWI2NzdiNTJiMTRjNmU3ZGYzZjYwNmEzMjg3OGU0Mi4uNmZmYjdlNWE4MzM2NDUxODQyYWEy
M2I4MzI4Zjc1MWJlOTJkNzhhMCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTExICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBQc2V1ZG8gSUQgc2hvdWxkIGJlIGFibGUgdG8g
bmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93IERPTS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
OgorCiAyMDEyLTA2LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgdW5uZWVkZWQgY2FsbFJlbW92ZWRMYXN0UmVmIGZ1bmN0aW9uIGZyb20gVHJlZVNo
YXJlZCByZWZhY3RvcmluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147012</attachid>
            <date>2012-06-11 22:59:59 -0700</date>
            <delta_ts>2012-06-12 18:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62218-20120612145958.patch</filename>
            <type>text/plain</type>
            <size>13727</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5MWY2ZTUyY2ZlMGUw
ZWQ2OTMyMjM4NWRkMzdhMWVhYjRkNzgzMC4uNDAxOTNmNmRiMTRjMmRlNGEwOWVlNGEzYzZkZmJl
MmI5NTU0YWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA2LTExICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBQc2V1ZG8g
SUQgc2hvdWxkIGJlIGFibGUgdG8gbmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93IERPTS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSB1cGRhdGVTcGVj
aWZpZXJzV2l0aEVsZW1lbnROYW1lKCkgZGlkbid0IHRha2UgbmVzdGluZyBpbnRvIGFjY291bnQu
CisgICAgICAgICAgdGFnIGhpc3RvcnkgY2FuIGNvbnRhaW4gc2VsZWN0b3IgZW50cmllcyB3aGlj
aCBpc24ndCBtYXJrZWQgYXMgU2hhZG93RGVzY2VuZGFudCB5ZXQuCisgICAgICAgICAgc3VjaCBl
bnRyeSBjYW4gYmUgZm91bmQgYnkgaW52ZXN0aWdhdGluZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50
KCkuCisgICAgICAgIC0gU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKCkgd2FzIHRvbyBz
dHJpY3QuIFVua25vd24gcHNldWRvIGVsZW1lbnRzIGFyZSBlc3NlbnRpYWxseSBhIGtpbmQgb2Yg
Y2xhc3Mgb3IgaWQKKyAgICAgICAgICBpbiBpbXBsZW1lbnRhdGlvbiBwZXJzcGVjdGl2ZS4gRm9y
IHN1Y2gsIHJlamVjdGluZyBieSBtaXNzaW5nIGVsZW1lbnRTdHlsZSBkb2Vzbid0IG1ha2Ugc2Vu
c2U6CisgICAgICAgICAgSXQgaXNuJ3QgYSBwc2V1ZG8gYnV0IGEgcmVhbCBlbGVtZW50IGZvciBX
ZWJDb3JlIGFmdGVyIGFsbC4KKyAgICAgICAgLSBBZGRlZCBJbnRlcm5hbHM6OnNldFNoYWRvd1Bz
ZXVkb0lkKCkgdG8gY3JlYXRlIGEgdGVzdCBoYXJuZXNzIHdob3NlIERPTSB0cmVlIGNvbnRhaW5z
IHBzZXVkbyBzaGFkb3cgaWRzLgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgZm9sbG93
aW5nIHNlbGVjZHRvciBjaGFpbiBpcyBjcmVhdGVkIGZvciAicDo6LXNoYWRvdy1jaGlsZDo6LW5l
c3RlZC1zaGFkb3ctY2hpbGQiOgorCisgICAgICAgICAgW2JvdGggdGFnIG5hbWUgYW5kIC1zaGFk
b3ctaWQgYXJlIHNldF0gPC0oU2hhZG93RGVzY2VuZGFudCktIFstbmVzdGVkLXNoYWRvdy1pZF0K
KworICAgICAgICBXaGF0IHdlIHdhbnQsIHdoaWNoIGlzIGNyZWF0ZWQgYnkgdGhpcyBjaGFuZ2Ug
aXM6CisKKyAgICAgICAgICBbdGFnXSA8LShTaGFkb3dEZXNjZW5kYW50KS0gWy1zaGFkb3ctaWQg
aXMgc2V0XSA8LShTaGFkb3dkZXNjZW5EYW50KS0gWy1uZXN0ZWQtc2hhZG93LWlkXQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50
TmFtZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0U2hhZG93
UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCiAyMDEyLTA2LTEwICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Zvcm1zXSBJbnRyb2R1Y2UgRGVjaW1hbCBiZWhpbmQgdGhlIElucHV0TnVt
YmVyIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNDI4NjYwMjNjMzFlNzVhYWQ3NzBkOTA3MWJkMzQ4NDRm
OGQxYzdkLi4zMjI3OWRjOTk4YzM5YjkxNzAyZTRlNDI2ZDgzZjI1MGZlNWJhNTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTEgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IFBzZXVkbyBJRCBzaG91bGQgYmUgYWJsZSB0
byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9NLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3
aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDYtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bm5lZWRlZCBjYWxsUmVtb3ZlZExhc3RSZWYg
ZnVuY3Rpb24gZnJvbSBUcmVlU2hhcmVkIHJlZmFjdG9yaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDdhN2M2NzA2NmVjMjMxOWExMGE0NmNlYzc2ZDRlYzMwZTJmOGRhMzQuLmY0YWNhZjQ3ZTFl
ZjY0OGQ4NGExNGExZGVmZDc3ZGJhMDM5OTc0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05
NTEsNiArOTUxLDcgQEAgX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29u
c29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTdFbGVtZW50MjFi
b3VuZHNJblJvb3RWaWV3U3BhY2VFdgorX19aTjdXZWJDb3JlN0VsZW1lbnQxN3NldFNoYWRvd1Bz
ZXVkb0lkRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VSaQogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5u
ZXJUZXh0RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRS
ZWN0NXVuaXRlRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDk3MzM0MmQwOTA4
MDk5NzlmYjkwZTYwMTk0ZTZiOWNmNjY2MTgwMTMuLjk0MDAwZDUyOTNjYjU5NjE0OWMwZTE2YjI3
MzI1M2E4YmI2NTlkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC05MjA2LDcgKzky
MDYsNyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogICAgIENTU1BhcnNlclNlbGVjdG9yKiBo
aXN0b3J5ID0gc3BlY2lmaWVyczsKICAgICB3aGlsZSAoaGlzdG9yeS0+dGFnSGlzdG9yeSgpKSB7
CiAgICAgICAgIGhpc3RvcnkgPSBoaXN0b3J5LT50YWdIaXN0b3J5KCk7Ci0gICAgICAgIGlmICho
aXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50KCkpCisgICAgICAgIGlmIChoaXN0b3J5LT5pc1Vu
a25vd25Qc2V1ZG9FbGVtZW50KCkgfHwgaGlzdG9yeS0+aGFzU2hhZG93RGVzY2VuZGFudCgpKQog
ICAgICAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQgPSBoaXN0b3J5OwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA1MGZlZDQ4MDhhNzUxNWEzYTQ0
ZDlmZTliOWE4ZWM4N2JiNmFkNDY1Li5kOTU5ZjY3MTVhMzVjNzZlMmNkOTU1Y2ZiMjNiNDA0YTJj
ZDNhYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMTE3Nywx
NCArMTE3NywxNCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25z
dCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRWxlbWVudCkgewotICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21v
ZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVzKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNl
dWRvRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBtX2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9
IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSA9PSBz
ZWxlY3Rvci0+dmFsdWUoKTsKICAgICAgICAgfQogCisgICAgICAgIGlmICgoIWNvbnRleHQuZWxl
bWVudFN0eWxlICYmIG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSkgfHwgbV9tb2RlID09IFF1ZXJ5
aW5nUnVsZXMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgUHNldWRvSWQg
cHNldWRvSWQgPSBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSk7
CiAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKICAgICAgICAgICAgIGlm
IChEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50LT5kb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNmZDA5MDdiNzNlMzYwMDgwNmE1MTc2YWQ5Zjc3MmNh
ODZlOTlmYzYuLmQ3NGM5YThkYWY5Y2Q1ZWU4YTZhZWJiN2FjNDY2YzgzNWIxYmZmYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM4MSw2ICszODEsMTYgQEAgU3RyaW5n
IEludGVybmFsczo6c2hhZG93UHNldWRvSWQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkuc3RyaW5nKCk7CiB9
CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICByZXR1cm4gZWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoaWQsIGVjKTsKK30K
KwogU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBsYWNlaG9sZGVyKEVsZW1lbnQqIGVsZW1lbnQp
CiB7CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gdG9UZXh0
Rm9ybUNvbnRyb2woZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA2
ZmE0YTQ1YzY3MjlkMWNhYjVkYzA3NGQxMzI4YjUzMTJmNWMxNGU0Li5lY2UyMGJkMTAwZGYxN2Nk
MGU1YTliN2MxMDE0ODYzYWEyMWJiZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTc3LDYgKzc3LDggQEAgcHVibGljOgogICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJs
ZWRPck5vZGUqIG9sZGVyU2hhZG93Um9vdChOb2RlKiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0
cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0U2hhZG93UHNldWRvSWQoRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKKwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRv
d1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIGJvb2wgaXNWYWxpZENvbnRlbnRTZWxlY3QoRWxlbWVudCogaW5zZXJ0aW9uUG9pbnQs
IEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBh
YTEwODU4YmIzZDY2NmFmNGZjMDVkYmVlOGE0NDA3NmFkZjg2MDQwLi5mMmY3MWI3NTdkMGE3MzUx
N2JlMjVlMmM2MTIzYWM0MTgxMjBlYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC01MCw2ICs1MCw3IEBAIG1vZHVsZSB3aW5kb3cgewogI2VuZGlmCiAgICAgICAgIEVs
ZW1lbnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTaGFkb3dQc2V1ZG9JZChpbiBFbGVt
ZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAg
ICAgICBFbGVtZW50IGNyZWF0ZUNvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hh
ZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNWYWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVu
dCBjb250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYKaW5kZXggNGE3NGQ1YWE5ZjVjYTgwMzQ2MTBhZTI1ZmQxNjc2ZTA3MTM2Yzg5NS4uMmE0N2Vh
ODk4Y2U4MzcyYzViMjM2Mzg5ODBjN2YwNjI3YmQ1YjI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRl
ZgpAQCAtMjE5LDYgKzIxOSw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFJlc291cmNlc0RhdGFT
aXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhI
SEBaCiAgICAgICAgID9zZXRTYW5zU2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFB
RVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgogICAgICAgICA/c2V0U2Ny
b2xsYmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKKyAgICAgICAg
P3NldFNoYWRvd1BzZXVkb0lkQEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BX
VEZAQEFBSEBaCiAgICAgICAgID9zZXREZWxlZ2F0ZXNTY3JvbGxpbmdAU2Nyb2xsVmlld0BXZWJD
b3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3Jv
bGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U2Vy
aWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBX
NFVTY3JpcHRDb2RlQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDNl
MjAwNjI3ZjE5N2EzNTIzNzU4ODZjNThhOTZkMzdlZjdkOTFjNzQuLmY3MmM3ZTEyNGQzZDRhMTlk
MmM3MmM2NDk5OTE0ZTZkZTFmZDdjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKQEAgLTIxNSw2ICsyMTUsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXREZWxlZ2F0ZXNTY3Jv
bGxpbmdAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0U2Nyb2xsT2Zm
c2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRA
MkBAWgogICAgICAgICA/c2V0U2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhB
QlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgorICAgICAgICA/c2V0U2hhZG93
UHNldWRvSWRARWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdURkBAQUFIQFoK
ICAgICAgICAgP3NldFN0YW5kYXJkRm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJW
QXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFoKICAgICAgICAgP3NldFN1Z2dlc3Rl
ZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAg
ICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJW
U3RyaW5nQFdURkBAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDZhOGQwN2YwNGM3NjA0
NDgxYWQzYjRhZGI3MzlhZjZhYzg2NDkwMTUuLmYwNWZlYzFhOTlkMTkyZDlkODM1OGJiMmRhNGQ0
ZTQ0NWVhOTM0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
KysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtODUsNiArODUsNyBAQCBf
Wk43V2ViQ29yZTZKU05vZGUyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0
b3JFOwogX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0U7CiBfWk43V2ViQ29yZTZ0b05vZGVFTjNK
U0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTdFbGVtZW50MjByZW1vdmVTaGFkb3dSb290TGlzdEV2
OworX1pON1dlYkNvcmU3RWxlbWVudDE3c2V0U2hhZG93UHNldWRvSWRFUktOM1dURjEyQXRvbWlj
U3RyaW5nRVJpOwogX1pON1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJD
b3JlOUpTRWxlbWVudDEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRp
ZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlK
U0VsZW1lbnQ2c19pbmZvRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGFkYzgzNjllMzU3Zjc1NTE1NTNmMjNkZmE3NTQy
MWRkZjVkZjRkLi40NmVmYTJhNWVmZjRlOGQ3OGE4ZjM2ZDlkYTY3NjMzNGE1ZjVlNDE4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTEgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IFBzZXVkbyBJRCBzaG91bGQgYmUgYWJsZSB0byBu
ZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9NLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBz
ZXVkby1pZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xMCAgWW9zaGlm
dW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gSW50cm9k
dWNlIERlY2ltYWwgYmVoaW5kIHRoZSBJbnB1dE51bWJlciB0eXBlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDU4ZDZiNTA0ODM1MWQzZDJjYjc1MjkxODg2MWZi
YTRjYzJmNGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitO
ZXN0ZWQgcHNldWRvIGlkIHNob3VsZCBiZSBtYXRjaGFibGUKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodHVwbGUuc2hhZG93Q2hp
bGQpLmNvbG9yIGlzICdyZ2IoMjU1LCAwLCAwKScKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhZG93VHVwbGUuc2hhZG93Q2hpbGQpLmNvbG9yIGlzICdyZ2IoMCwgMCwgMjU1KScKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hhZG93Q2hpbGQpLmJhY2tn
cm91bmRDb2xvciBpcyAncmdiKDAsIDEyOCwgMCknCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGMy
ZmIwNGFjMzQ3ZGUxNzQ4YzZjM2Y4MDgyOGQ1NGMyMmZjMTI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwK
QEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CisKK3A6Oi1zaGFkb3ctY2hpbGQgeworICBjb2xvcjogcmVkOworfQorCithOjotbmVzdGVk
LXNoYWRvdy1jaGlsZCB7CisgIGNvbG9yOiBibHVlOworfQorCitwOjotc2hhZG93LWNoaWxkOjot
bmVzdGVkLXNoYWRvdy1jaGlsZCB7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorCis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHAg
aWQ9Imhvc3QiPjwvZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24gYnVpbGRTaGFkb3dXaXRoT25l
Q2hpbGQoaG9zdCwgY2hpbGRUYWdOYW1lLCBjaGlsZFBzZXVkb0lkKQoreworICAgIHZhciBzaGFk
b3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc2hhZG93Q2hpbGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KGNoaWxkVGFnTmFtZSk7CisgICAgc2hhZG93LmFwcGVuZENo
aWxkKHNoYWRvd0NoaWxkKTsKKyAgICBpbnRlcm5hbHMuc2V0U2hhZG93UHNldWRvSWQoc2hhZG93
Q2hpbGQsIGNoaWxkUHNldWRvSWQpOworICAgIHJldHVybiB7IGhvc3Q6IGhvc3QsIHNoYWRvdzog
c2hhZG93LCBzaGFkb3dDaGlsZDogc2hhZG93Q2hpbGQgfTsKK30KKworZGVzY3JpcHRpb24oIk5l
c3RlZCBwc2V1ZG8gaWQgc2hvdWxkIGJlIG1hdGNoYWJsZSIpOworCitpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCisgICAgZmFpbCgiWW91IG5lZWQgd2luZG93LmludGVybmFscyB0byBydW4gdGhpcyB0
ZXN0Iik7CisgICAgCit2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7
Cit2YXIgdHVwbGUgPSBidWlsZFNoYWRvd1dpdGhPbmVDaGlsZChob3N0LCAiYSIsICItc2hhZG93
LWNoaWxkIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodHVwbGUuc2hhZG93
Q2hpbGQpLmNvbG9yIiwgIidyZ2IoMjU1LCAwLCAwKSciKTsKK3ZhciBzaGFkb3dUdXBsZSA9IGJ1
aWxkU2hhZG93V2l0aE9uZUNoaWxkKHR1cGxlLnNoYWRvd0NoaWxkLCAiYiIsICItbmVzdGVkLXNo
YWRvdy1jaGlsZCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1
cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdiKDAsIDAsIDI1NSknIik7CitzaG91bGRCZSgi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hhZG93Q2hpbGQpLmJhY2tncm91
bmRDb2xvciIsICIncmdiKDAsIDEyOCwgMCknIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMDEwOWUwOTY1NWI2NzdiNTJiMTRjNmU3ZGYzZjYwNmEz
Mjg3OGU0Mi4uNmZmYjdlNWE4MzM2NDUxODQyYWEyM2I4MzI4Zjc1MWJlOTJkNzhhMCAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2
LTExICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRv
dyBQc2V1ZG8gSUQgc2hvdWxkIGJlIGFibGUgdG8gbmVzdCB0byBwb2ludCBuZXN0ZWQgc2hhZG93
IERPTS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYy
MjE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA2LTEwICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgY2FsbFJlbW92
ZWRMYXN0UmVmIGZ1bmN0aW9uIGZyb20gVHJlZVNoYXJlZCByZWZhY3RvcmluZwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>