<?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>85940</bug_id>
          
          <creation_ts>2012-05-08 18:16:34 -0700</creation_ts>
          <short_desc>Make IFRAME_SEAMLESS child documents inherit styles from their parent iframe element</short_desc>
          <delta_ts>2012-05-11 00:29:29 -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>New Bugs</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>
          <dependson>86182</dependson>
          <blocked>45950</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>hyatt</cc>
    
    <cc>ian</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619044</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-08 18:16:34 -0700</bug_when>
    <thetext>Make IFRAME_SEAMLESS child documents inherit styles from their parent iframe element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619061</commentid>
    <comment_count>1</comment_count>
      <attachid>140842</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-08 18:31:05 -0700</bug_when>
    <thetext>Created attachment 140842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619824</commentid>
    <comment_count>2</comment_count>
      <attachid>140842</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 14:20:46 -0700</bug_when>
    <thetext>Comment on attachment 140842
Patch

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

&gt; Source/WebCore/dom/Document.cpp:1649
&gt; +    // FIXME: In the seamless case, we should likely schedule a style recalc
&gt; +    // on our parent and instead return early here.

Turns out this code is needed for another test case once I land the layout changes.  This change is just about style inheritance.  I&apos;m open to suggestions for further testing of this chagne.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619842</commentid>
    <comment_count>3</comment_count>
      <attachid>140842</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-09 14:34:22 -0700</bug_when>
    <thetext>Comment on attachment 140842
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1542
&gt; +    // FIXME: It&apos;s not clear that we want to override all of these values in the seamless case!

In fact, I think almost all of these are wrong for seamless. designMode is an interesting case. Seems like it should inherit editability and we should certainly inherit rtl, locale, zoom, etc.

When the content&apos;s of a srcdoc seamless iframe change, does the srcdoc also change? That somewhat effects whether editability should inherit.

In either case, this is probably worth bring up on whatwg@ to get other browser vendors&apos; opinions.

&gt; Source/WebCore/dom/Document.cpp:1734
&gt; +    if ((change &gt;= Detach) || (shouldDisplaySeamlesslyWithParent() &amp;&amp; (change &gt;= Inherit))) {

This looks to me like it changes behavior for non-seamless-documents as well. Can you create a test case for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619854</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 14:44:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 140842 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140842&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1542
&gt; &gt; +    // FIXME: It&apos;s not clear that we want to override all of these values in the seamless case!
&gt; 
&gt; In fact, I think almost all of these are wrong for seamless. designMode is an interesting case. Seems like it should inherit editability and we should certainly inherit rtl, locale, zoom, etc.
&gt; 
&gt; When the content&apos;s of a srcdoc seamless iframe change, does the srcdoc also change? That somewhat effects whether editability should inherit.
&gt; 
&gt; In either case, this is probably worth bring up on whatwg@ to get other browser vendors&apos; opinions.

I&apos;d rather test our behavior and someone else can bring it up on the list. :)
 
&gt; &gt; Source/WebCore/dom/Document.cpp:1734
&gt; &gt; +    if ((change &gt;= Detach) || (shouldDisplaySeamlesslyWithParent() &amp;&amp; (change &gt;= Inherit))) {
&gt; 
&gt; This looks to me like it changes behavior for non-seamless-documents as well. Can you create a test case for that?

I did.  I can remove that part if you like, but I do not believe it to be observable.  It could be made observable if style recalcs were made to propgate across iframe boundaries in the detach case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619858</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 14:45:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 140842 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140842&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1542
&gt; &gt; +    // FIXME: It&apos;s not clear that we want to override all of these values in the seamless case!
&gt; 
&gt; In fact, I think almost all of these are wrong for seamless. designMode is an interesting case. Seems like it should inherit editability and we should certainly inherit rtl, locale, zoom, etc.

If you have specific suggestions on how you&apos;d like these to behave, I&apos;m happy to implement them.  Otherwise my default would be to leave them as a FIXME for now.

&gt; When the content&apos;s of a srcdoc seamless iframe change, does the srcdoc also change? That somewhat effects whether editability should inherit.

No.  srcdoc doesn&apos;t change any more than src=data: would. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619863</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 14:46:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 140842 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140842&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/StyleResolver.cpp:1542
&gt; &gt; &gt; +    // FIXME: It&apos;s not clear that we want to override all of these values in the seamless case!
&gt; &gt; 
&gt; &gt; In fact, I think almost all of these are wrong for seamless. designMode is an interesting case. Seems like it should inherit editability and we should certainly inherit rtl, locale, zoom, etc.
&gt; 
&gt; If you have specific suggestions on how you&apos;d like these to behave, I&apos;m happy to implement them.  Otherwise my default would be to leave them as a FIXME for now.

(My reasoning there is that I&apos;m trying not to change iframe behavior unless specified to by the seamless spec.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619914</commentid>
    <comment_count>7</comment_count>
      <attachid>141028</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 15:26:52 -0700</bug_when>
    <thetext>Created attachment 141028
Remove == Force -&gt; &gt;= Detach change per Ojan/James&apos; suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619925</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-09 15:39:21 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (From update of attachment 140842 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140842&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/css/StyleResolver.cpp:1542
&gt; &gt; &gt; &gt; +    // FIXME: It&apos;s not clear that we want to override all of these values in the seamless case!
&gt; &gt; &gt; 
&gt; &gt; &gt; In fact, I think almost all of these are wrong for seamless. designMode is an interesting case. Seems like it should inherit editability and we should certainly inherit rtl, locale, zoom, etc.
&gt; &gt; 
&gt; &gt; If you have specific suggestions on how you&apos;d like these to behave, I&apos;m happy to implement them.  Otherwise my default would be to leave them as a FIXME for now.
&gt; 
&gt; (My reasoning there is that I&apos;m trying not to change iframe behavior unless specified to by the seamless spec.)

This depends on your interpretation of the spec I suppose, but rtl, userModify (i.e. designMode), zoom, etc are all inherited CSS properties and thus, the spec  says they should inherit, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619937</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 15:48:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; (My reasoning there is that I&apos;m trying not to change iframe behavior unless specified to by the seamless spec.)
&gt; 
&gt; This depends on your interpretation of the spec I suppose, but rtl, userModify (i.e. designMode), zoom, etc are all inherited CSS properties and thus, the spec  says they should inherit, no?

I&apos;m happy to change this method to early-return if that&apos;s your recommendation.

http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp#L1531

As you can see, it sets a bunch of junk on the Document&apos;s style.  It&apos;s presumably safe/correct to inherit those from the parent document.

I think either approach is viable, but I don&apos;t feel I have enough data to make the call which way (so I went with what I believe to be the smaller change).

If you&apos;d like me to early return (thus not overriding these), I&apos;ll add a test to make sure we inherit userModify from the parent iframe, as well as are able to set it on the child via document.designMode (like i already have a test for).

Please make sure you&apos;ve read StyleResolver::styleForDocument.  But I&apos;m happy to implement either direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619941</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 15:50:16 -0700</bug_when>
    <thetext>I should clarify: the only aspect of &quot;rtl-ness&quot; which is not inherited in the current implementation is -webkit-rtl-ordering:
http://css-infos.net/property/-webkit-rtl-ordering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619992</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 16:23:53 -0700</bug_when>
    <thetext>I&apos;ve filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=17015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620142</commentid>
    <comment_count>12</comment_count>
      <attachid>141028</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-09 18:22:32 -0700</bug_when>
    <thetext>Comment on attachment 141028
Remove == Force -&gt; &gt;= Detach change per Ojan/James&apos; suggestion

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

&gt; Source/WebCore/css/StyleResolver.cpp:1540
&gt; +    bool seamlessWithParent = document-&gt;shouldDisplaySeamlesslyWithParent();
&gt; +    if (seamlessWithParent) {
&gt; +        RenderStyle* iframeStyle = document-&gt;seamlessParentIFrame()-&gt;renderStyle();
&gt; +        if (iframeStyle)
&gt; +            documentStyle-&gt;inheritFrom(iframeStyle);
&gt; +    }

I think I agree with Ojan here that the properties set on the iframe&apos;s element should be inherited. What I don&apos;t think we have addressed is the issue of those not specified on the iframe&apos;s element. Those used to be set below but if we add an early return, we will never set them.

There is likely a good way of handling that involving some UA style sheet here so that we can still get them overriden and match the spec.

This should definitely be tested for documentation&apos;s sake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620163</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 19:07:13 -0700</bug_when>
    <thetext>I&apos;m not sure we&apos;re making progress here, 24 hours into review. :)

The CSS properties in question are approximately:
-webkit-rtl-ordering
zoom
(page-scale-transform -- not a real CSS property)
-webkit-user-modify
-webkit-locale
writing-mode
direction
-webkit-column-axis
-webkit-column-gap
font

I&apos;m happy to add the early-return and test that these values are inherited from the iframe.

Doing so will break usage of iframe.contentDocument.designMode, as well as writing-mode setting from the documentElement and may change printing for better or worse. :)

My current belief is that a FIXME with no early return is safer, but possibly less correct with the intent of seamless.

Again, happy to do either approach, assuming someone is willing to r+ a patch with either! :)

Please Ojan, Jullien, or (some other rendering reviewer) make a recommendation as to what suits your feelings and I will implement immediately. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620164</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 19:08:31 -0700</bug_when>
    <thetext>(The patch after this one adds the size-negotation between the content document and the parent document, after that &lt;seamless&gt; will be basically &quot;complete&quot; and ready for our first users to play around with it.  I expect we&apos;ll learn a lot from those users.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620167</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-09 19:13:46 -0700</bug_when>
    <thetext>Re-reading the current prevailing winds, I plan to upload a new patch which early-returns from styleForDocument.  That will (intentionally) break setting of iframe.contentDocument.designMode, but will make seamless content documents inherit all styles from their parent iframe.  I will include a test which verifies that the above-mentioned CSS properites are inherited correctly.

Please squeak now if you disagree with that approach. :)  I remain ambivalent. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620821</commentid>
    <comment_count>16</comment_count>
      <attachid>141220</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-10 11:58:25 -0700</bug_when>
    <thetext>Created attachment 141220
Updated as discussed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620844</commentid>
    <comment_count>17</comment_count>
      <attachid>141220</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-10 12:19:34 -0700</bug_when>
    <thetext>Comment on attachment 141220
Updated as discussed

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

&gt; Source/WebCore/css/StyleResolver.cpp:1540
&gt; +            // Early-return to avoid overriding inheritted styles.
&gt; +            return documentStyle.release();

This still needs a FIXME. I had said I was OK with the previous patch + FIXME mainly because early returning is also not fully correct. If you set designMode on the iframe&apos;s document or writing mode on the documentElement, then we do the wrong thing now.

Making this code do the right thing isn&apos;t actually hard. It just requires carefully looking at the code below and applying the right bits. 

I&apos;m fine with the code either way for now as long as there is a clear FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620863</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-10 12:37:51 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 141220 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141220&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1540
&gt; &gt; +            // Early-return to avoid overriding inheritted styles.
&gt; &gt; +            return documentStyle.release();
&gt; 
&gt; This still needs a FIXME. I had said I was OK with the previous patch + FIXME mainly because early returning is also not fully correct. If you set designMode on the iframe&apos;s document or writing mode on the documentElement, then we do the wrong thing now.
&gt; 
&gt; Making this code do the right thing isn&apos;t actually hard. It just requires carefully looking at the code below and applying the right bits. 
&gt; 
&gt; I&apos;m fine with the code either way for now as long as there is a clear FIXME.

Then I would prefer to land my previous patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620888</commentid>
    <comment_count>19</comment_count>
      <attachid>141233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-10 13:01:54 -0700</bug_when>
    <thetext>Created attachment 141233
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621046</commentid>
    <comment_count>20</comment_count>
      <attachid>141233</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 15:11:16 -0700</bug_when>
    <thetext>Comment on attachment 141233
Patch for landing

Clearing flags on attachment: 141233

Committed r116694: &lt;http://trac.webkit.org/changeset/116694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621047</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 15:11:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140842</attachid>
            <date>2012-05-08 18:31:05 -0700</date>
            <delta_ts>2012-05-09 15:26:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85940-20120508183104.patch</filename>
            <type>text/plain</type>
            <size>11037</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkN2YwYmY2YTZlOTk2
ZTViZDM3ZmRkZjdiNzAwMjA2MzE0ZjA3YS4uZWFmZWYwMmVmMmZjOGI5MGY4YmExYjY5NjAwMDdm
YWU2YjE0YjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1IEBACiAyMDEyLTA1LTA4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVT
UyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1l
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEhUTUw1IDxpZnJhbWUgc2VhbWxlc3M+IHNwZWMgc2F5czoKKyAgICAgICAgSW4gYSBDU1Mt
c3VwcG9ydGluZyB1c2VyIGFnZW50OiB0aGUgdXNlciBhZ2VudCBtdXN0LCBmb3IgdGhlIHB1cnBv
c2Ugb2YgQ1NTIHByb3BlcnR5CisgICAgICAgIGluaGVyaXRhbmNlIG9ubHksIHRyZWF0IHRoZSBy
b290IGVsZW1lbnQgb2YgdGhlIGFjdGl2ZSBkb2N1bWVudCBvZiB0aGUgaWZyYW1lCisgICAgICAg
IGVsZW1lbnQncyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBhcyBiZWluZyBhIGNoaWxkIG9mIHRo
ZSBpZnJhbWUgZWxlbWVudC4KKyAgICAgICAgKFRodXMgaW5oZXJpdGVkIHByb3BlcnRpZXMgb24g
dGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgaW4gdGhlCisgICAgICAgIGlmcmFtZSB3
aWxsIGluaGVyaXQgdGhlIGNvbXB1dGVkIHZhbHVlcyBvZiB0aG9zZSBwcm9wZXJ0aWVzIG9uIHRo
ZSBpZnJhbWUKKyAgICAgICAgZWxlbWVudCBpbnN0ZWFkIG9mIHRha2luZyB0aGVpciBpbml0aWFs
IHZhbHVlcy4pCisKKyAgICAgICAgSW5pdGlhbGx5IEkgaW1wbGVtZW50ZWQgdGhpcyBzdXBwb3J0
IHRvIHRoZSBsZXR0ZXIgb2YgdGhlIHNwZWMuIEhvd2V2ZXIsIGRvaW5nIHNvIEkgbGVhcm5lZAor
ICAgICAgICB0aGF0IFdlYktpdCBoYXMgYSBSZW5kZXJTdHlsZSBmb3IgdGhlIERvY3VtZW50IE5v
ZGUsIG5vdCBqdXN0IHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50LgorICAgICAgICBJ
biB0aGlzIFJlbmRlclN0eWxlIG9uIHRoZSBEb2N1bWVudCwgd2UgYWRkIGEgYnVuY2ggb2YgcGVy
LWRvY3VtZW50IHN0eWxlcyBmcm9tIHNldHRpbmdzCisgICAgICAgIGluY2x1ZGluZyBkZXNpZ25N
b2RlLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9y
RG9jdW1lbnQgaW5oZXJpdCBzdHlsZSBmcm9tIHRoZSBwYXJlbnQgaWZyYW1lJ3MKKyAgICAgICAg
c3R5bGUsIGJlZm9yZSBhcHBseWluZyBhbnkgb2YgdGhlc2UgcGVyLWRvY3VtZW50IHN0eWxlcy4g
IFRoaXMgbWF5IG9yIG1heSBub3QgYmUgY29ycmVjdAorICAgICAgICBkZXBlbmRpbmcgb24gd2hh
dCBiZWhhdmlvciB3ZSB3YW50IGZvciBydGwtb3JkZXJpbmcsIHBhZ2Utem9vbSwgbG9jYWxlLCBk
ZXNpZ24gbW9kZSwgZXRjLgorICAgICAgICBGb3Igbm93LCB3ZSBjb250aW51ZSB0byB0cmVhdCB0
aGUgaWZyYW1lJ3MgZG9jdW1lbnQgYXMgaW5kZXBlbmRlbnQgaW4gdGhlc2UgcmVnYXJkcywgYW5k
CisgICAgICAgIHRoZSBzZXR0aW5ncyBvbiB0aGF0IGRvY3VtZW50IG92ZXJyaWRlIHRob3NlIGlu
aGVyaXRlZCBmcm9tIHRoZSBpZnJhbWUuCisKKyAgICAgICAgQWxzbywgaW50aWFsbHkgd2hlbiBt
YWtpbmcgdGhpcyB3b3JrLCBJIGFkZGVkIHJlZGlyZWN0cyBpbiByZWNhbGNTdHlsZSBhbmQgc2No
ZWR1bGVTdHlsZVJlY2FsYworICAgICAgICBmcm9tIHRoZSBjaGlsZCBkb2N1bWVudCB0byB0aGUg
cGFyZW50IGRvY3VtZW50IGluIHRoZSBjYXNlIG9mIHNlYW1sZXNzIChzaW5jZSB0aGUgcGFyZW50
CisgICAgICAgIGRvY3VtZW50IGVmZmVjdGl2ZWx5IG1hbmFnZXMgdGhlIHN0eWxlIHJlc29sdmUg
YW5kIGxheW91dCBvZiB0aGUgY2hpbGQgaW4gc2VhbWxlc3MgbW9kZSkuCisgICAgICAgIEhvd2V2
ZXIsIEkgd2FzIG5vdCBhYmxlIHRvIGZpbmQgYSB0ZXN0IHdoaWNoIGRlcGVuZGVkIG9uIHRoaXMg
Y29kZSBjaGFuZ2UsIHNvIGluIHRoaXMgZmluYWwgcGF0Y2gKKyAgICAgICAgSSBoYXZlIHJlbW92
ZWQgYm90aCBvZiB0aGVzZSBtb2RpZmljYXRpb25zIGFuZCByZXBsYWNlZCB0aGVtIHdpdGggRklY
TUVzLiAgQmFzZWQgb24gZGlzY3Vzc2lvbnMKKyAgICAgICAgd2l0aCBPamFuIGFuZCBKYW1lcyBS
b2JpbnNvbiwgSSBiZWxpZXZlIGJvdGggb2YgdGhvc2UgY2hhbmdlcyBtYXkgZXZlbnR1YWxseSBi
ZSB3YW50ZWQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYmFzaWNhbGx5IGRvZXMgMyB0aGluZ3M6
CisgICAgICAgIDEuICBNYWtlcyBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50IGluaGVy
aXQgZnJvbSB0aGUgcGFyZW50IGlmcmFtZS4KKyAgICAgICAgMi4gIE1ha2VzIGFueSByZWNhbGNT
dHlsZSBjYWxscyBvbiB0aGUgaWZyYW1lIHByb3BvZ2F0ZSBkb3duIGludG8gdGhlIGNoaWxkIGRv
Y3VtZW50IChIVE1MSUZyYW1lRWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUpLgorICAgICAgICAzLiAg
TWFrZXMgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlIGF3YXJlIG9mIHRoZSBmYWN0IHRoYXQgdGhlIERv
Y3VtZW50J3Mgc3R5bGUgKmNhbiogY2hhbmdlCisgICAgICAgICAgICBmb3IgcmVhc29ucyBvdGhl
ciB0aGFuIHJlY2FsY1N0eWxlKEZvcmNlKS4gIEkgYWxzbyBjaGFuZ2VkIGNoYW5nZSA9PSBGb3Jj
ZSAtPiBjaGFuZ2UgPj0gRGV0YWNoCisgICAgICAgICAgICBhcyB3ZSBzaG91bGQgYmUgcmVjYWxj
dWxhdGluZyB0aGUgRG9jdW1lbnQncyByZW5kbmVyJ3Mgc3R5bGUgKFJlbmRlclZpZXcpIHdoZW4g
d2UncmUgZGV0YWNoaW5nIHRvby4KKyAgICAgICAgICAgIChUaGlzIGlzIHByZXN1bWFibHkgaGFs
ZiBvZiB3aGF0IGlzIG5lZWRlIHRvIGZpeCBidWcgODQ2ODQuKQorCisgICAgICAgIEknbSBvcGVu
IHRvIG1vcmUgdGVzdGluZyBzdWdnZXN0aW9ucywgaWYgcmV2aWV3ZXJzIGhhdmUgc2V0dGluZ3Mg
b24gdGhlIERvY3VtZW50J3Mgc3R5bGUKKyAgICAgICAgdGhhdCB5b3Ugd2FudCB0byBtYWtlIHN1
cmUgd2UgaW5oZXJpdCBmcm9tIHRoZSBwYXJlbnQgaWZyYW1lLCBvciBkb24ndCBpbmhlcml0LCBl
dGMuCisgICAgICAgIEkgdmlldyB0aGlzIGFzIGEgY29tcGxldGUgc29sdXRpb24gdG8gdGhpcyBh
c3BlY3Qgb2YgdGhlIGN1cnJlbnQgPGlmcmFtZSBzZWFtbGVzcz4gc3BlYywKKyAgICAgICAgYnV0
IGxpa2VseSBub3QgdGhlIGxhc3QgY29kZSB3ZSB3aWxsIHdyaXRlIGZvciB0aGlzIGFzcGVjdCBv
ZiB0aGUgc2VhbWxlc3MgZmVhdHVyZS4gOikKKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9mcmFt
ZXMvc2VhbWxlc3NzL3NlYW1sZXNzLWNzcy1jYXNjYWRlLmh0bWwgYW5kIHNlYW1sZXNzLWRlc2ln
bk1vZGUuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNj
aGVkdWxlU3R5bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0
eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpIVE1MSUZyYW1lRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAgICAoSFRN
TElGcmFtZUVsZW1lbnQpOgorCisyMDEyLTA1LTA4ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0
Lm9yZz4KKwogICAgICAgICBBZGQgc3R5bGVzaGVldCBpbmhlcml0YW5jZSBzdXBwb3J0IHRvIElG
UkFNRV9TRUFNTEVTUwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU5MTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGVmMDli
ZmFkMjY0OGJiYWQxNjQ1MTc0YjAwYTU0NGVmNzIyNDMwYzcuLmUyNGRkODYyNzFhYmQzNDMxZjA3
NTg4N2UzYmU3MmY4ZDI4Njk1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
QEAgLTE1MjcsNyArMTUyNywxOSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29s
dmVyOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ1NTRgogewogICAgIEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwogCisgICAgLy8gSFRNTDUgc3RhdGVzIHRo
YXQgc2VhbWxlc3MgaWZyYW1lcyBzaG91bGQgcmVwbGFjZSBkZWZhdWx0IENTUyB2YWx1ZXMKKyAg
ICAvLyB3aXRoIHZhbHVlcyBpbmhlcml0ZWQgZnJvbSB0aGUgY29udGFpbmluZyBpZnJhbWUgZWxl
bWVudC4gSG93ZXZlciwKKyAgICAvLyBzb21lIHZhbHVlcyAoc3VjaCBhcyB0aGUgY2FzZSBvZiBk
ZXNpZ25Nb2RlID0gIm9uIikgc3RpbGwgbmVlZCB0bworICAgIC8vIGJlIHNldCBieSB0aGlzICJk
b2N1bWVudCBzdHlsZSIuCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBkb2N1bWVudFN0eWxlID0g
UmVuZGVyU3R5bGU6OmNyZWF0ZSgpOworICAgIGJvb2wgc2VhbWxlc3NXaXRoUGFyZW50ID0gZG9j
dW1lbnQtPnNob3VsZERpc3BsYXlTZWFtbGVzc2x5V2l0aFBhcmVudCgpOworICAgIGlmIChzZWFt
bGVzc1dpdGhQYXJlbnQpIHsKKyAgICAgICAgUmVuZGVyU3R5bGUqIGlmcmFtZVN0eWxlID0gZG9j
dW1lbnQtPnNlYW1sZXNzUGFyZW50SUZyYW1lKCktPnJlbmRlclN0eWxlKCk7CisgICAgICAgIGlm
IChpZnJhbWVTdHlsZSkKKyAgICAgICAgICAgIGRvY3VtZW50U3R5bGUtPmluaGVyaXRGcm9tKGlm
cmFtZVN0eWxlKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgdGhhdCB3
ZSB3YW50IHRvIG92ZXJyaWRlIGFsbCBvZiB0aGVzZSB2YWx1ZXMgaW4gdGhlIHNlYW1sZXNzIGNh
c2UhCiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CiAgICAgZG9jdW1lbnRT
dHlsZS0+c2V0UlRMT3JkZXJpbmcoZG9jdW1lbnQtPnZpc3VhbGx5T3JkZXJlZCgpID8gVmlzdWFs
T3JkZXIgOiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUg
JiYgIWRvY3VtZW50LT5wcmludGluZygpID8gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgOiAxKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1MGFjZTg2YzAwNjk1NGEzYjhjMWIxY2M3YjVl
YTM3OTg4MWVlODIuLjM5N2RiNGI4MmMwZDFjYjgzMTYwZWFlMDM3ZjE1ZWE2MjJkMDBhMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTY0NSw2ICsxNjQ1LDkgQEAgdm9pZCBEb2N1bWVu
dDo6c2NoZWR1bGVGb3JjZWRTdHlsZVJlY2FsYygpCiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxl
U3R5bGVSZWNhbGMoKQogeworICAgIC8vIEZJWE1FOiBJbiB0aGUgc2VhbWxlc3MgY2FzZSwgd2Ug
c2hvdWxkIGxpa2VseSBzY2hlZHVsZSBhIHN0eWxlIHJlY2FsYworICAgIC8vIG9uIG91ciBwYXJl
bnQgYW5kIGluc3RlYWQgcmV0dXJuIGVhcmx5IGhlcmUuCisKICAgICBpZiAobV9zdHlsZVJlY2Fs
Y1RpbWVyLmlzQWN0aXZlKCkgfHwgaW5QYWdlQ2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0xNjk4LDcgKzE3MDEsMTAgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFu
Z2UgY2hhbmdlKQogICAgIAogICAgIGlmIChtX2luU3R5bGVSZWNhbGMpCiAgICAgICAgIHJldHVy
bjsgLy8gR3VhcmQgYWdhaW5zdCByZS1lbnRyYW5jeS4gLWR3aAotICAgIAorCisgICAgLy8gRklY
TUU6IEluIHRoZSBzZWFtbGVzcyBjYXNlLCB3ZSBtYXkgd2lzaCB0byBleGl0IGVhcmx5IGluIHRo
ZSBjaGlsZCBhZnRlciByZWNhbGNpbmcgb3VyIHBhcmVudCBjaGFpbi4KKyAgICAvLyBJIGhhdmUg
bm90IHlldCBmb3VuZCBhIHRlc3Qgd2hpY2ggcmVxdWlyZXMgc3VjaC4KKwogICAgIGlmIChtX2hh
c0RpcnR5U3R5bGVSZXNvbHZlcikKICAgICAgICAgdXBkYXRlQWN0aXZlU3R5bGVzaGVldHMoUmVj
YWxjU3R5bGVJbW1lZGlhdGVseSk7CiAKQEAgLTE3MjQsNyArMTczMCw4IEBAIHZvaWQgRG9jdW1l
bnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICBpZiAobV9wZW5kaW5nU3R5
bGVSZWNhbGNTaG91bGRGb3JjZSkKICAgICAgICAgY2hhbmdlID0gRm9yY2U7CiAKLSAgICBpZiAo
Y2hhbmdlID09IEZvcmNlKSB7CisgICAgLy8gUmVjYWxjdWxhdGluZyB0aGUgcm9vdCBzdHlsZSAo
b24gdGhlIGRvY3VtZW50KSBpcyBub3QgbmVlZGVkIGluIHRoZSBjb21tb24gY2FzZS4KKyAgICBp
ZiAoKGNoYW5nZSA+PSBEZXRhY2gpIHx8IChzaG91bGREaXNwbGF5U2VhbWxlc3NseVdpdGhQYXJl
bnQoKSAmJiAoY2hhbmdlID49IEluaGVyaXQpKSkgewogICAgICAgICAvLyBzdHlsZSBzZWxlY3Rv
ciBtYXkgc2V0IHRoaXMgYWdhaW4gZHVyaW5nIHJlY2FsYwogICAgICAgICBtX2hhc05vZGVzV2l0
aFBsYWNlaG9sZGVyU3R5bGUgPSBmYWxzZTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IDA0NTI5YzgzZWQxNzI4Y2Q1Yzg3N2RjNjcyZmNk
YWZiZTkwMWI3YjIuLmM3ZTE1N2U3MzQwZDFjYjYyOTBhNzcyZjkyNmQxNDMxY2M3YmE0MzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC00MSw2ICs0MSw3
IEBAIGlubGluZSBIVE1MSUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgOiBIVE1MRnJhbWVFbGVtZW50QmFzZSh0
YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShpZnJhbWVUYWcpKTsK
KyAgICBzZXRIYXNDdXN0b21XaWxsT3JEaWRSZWNhbGNTdHlsZSgpOwogfQogCiBQYXNzUmVmUHRy
PEhUTUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTEyMCw2ICsxMjEsMTUg
QEAgYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6c2hvdWxkRGlzcGxheVNlYW1sZXNzbHkoKSBjb25z
dAogICAgIHJldHVybiBjb250ZW50RG9jdW1lbnQoKSAmJiBjb250ZW50RG9jdW1lbnQoKS0+bWF5
RGlzcGxheVNlYW1sZXNzV2l0aFBhcmVudCgpICYmIGhhc0F0dHJpYnV0ZShzZWFtbGVzc0F0dHIp
OwogfQogCit2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSBzdHlsZUNoYW5nZSkKK3sKKyAgICBpZiAoIXNob3VsZERpc3BsYXlTZWFtbGVzc2x5KCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBEb2N1bWVudCogY2hpbGREb2N1bWVudCA9IGNvbnRlbnREb2N1
bWVudCgpOworICAgIGlmIChzdHlsZUNoYW5nZSA+PSBJbmhlcml0IHx8IGNoaWxkRG9jdW1lbnQt
PmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoaWxkRG9jdW1lbnQtPm5lZWRzU3R5bGVSZWNh
bGMoKSkKKyAgICAgICAgY29udGVudERvY3VtZW50KCktPnJlY2FsY1N0eWxlKHN0eWxlQ2hhbmdl
KTsKK30KKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBTdHJpbmcgSFRNTElGcmFtZUVsZW1lbnQ6
Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCmluZGV4IDVkNTUzNTliYTk3Y2RmODVhOTUwOWE1N2RlZTFiMjYwNDE4MzhkM2IuLmZm
ODg5YjA2MDRlZTM5YmNmMTlkNjcyNTQ4Y2NlYTkxNTM4NzZkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQzLDEwICs0MywxMiBAQCBwcml2YXRlOgogCiAg
ICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhOb2Rl
KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKE5vZGUqKSBPVkVSUklE
RTsKLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVS
ZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKLSAgICAgICAKKworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUo
TUlDUk9EQVRBKQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjRlM2RmMWU2NDczNzFkOTMyNDUwMWFh
YmFkZGE1NDM2YzE4ZDk0ZC4uYjUxOTM3MDk0ZGMzYmU4ZjMyODI1YjY3OGIwZWUxMzE1MWY3ZDI0
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTA1LTA4ICBFcmljIFNlaWRlbCAgPGVyaWNA
d2Via2l0Lm9yZz4KIAorICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVTUyBjaGlsZCBkb2N1bWVu
dHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1lIGVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaW5nbGUgcGFz
cyBpcyBkZWNlcHRpdmUuICBzZWFtbGVzcy1kZXNpZ25Nb2RlIGV4aXN0cworICAgICAgICB0byBt
YWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgcmVncmVzcyBhcHBsaWNhdGlvbiBvZiBEb2N1bWVudC1s
ZXZlbAorICAgICAgICBzdHlsZXMgaW4gdGhlIGNoaWxkIGRvY3VtZW50LgorCisgICAgICAgICog
ZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0Ogor
CisyMDEyLTA1LTA4ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBB
ZGQgc3R5bGVzaGVldCBpbmhlcml0YW5jZSBzdXBwb3J0IHRvIElGUkFNRV9TRUFNTEVTUwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5MTQKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNh
c2NhZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2Vh
bWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0CmluZGV4IGRhZjc2OWFiMTQzY2EzYTE0MDdh
ZDQzOWE4MTk3ZGVkN2RlNDJhOGMuLjFmY2U0MDY0NGVkNjVlMDJiOTFiODYwOWI5NzBjZDkyODZk
NTI4MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1s
ZXNzLWNzcy1jYXNjYWRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9zZWFtbGVzcy9zZWFtbGVzcy1jc3MtY2FzY2FkZS1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3
IEBAIFRlc3QgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGluaGVyaXQgc3R5bGVzIGZyb20gdGhlaXIg
cGFyZW50IGlmcmFtZSwgYW5kIGR5bWFuaWNhCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KG9uZSkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHR3bykuY29sb3IgaXMgInJnYigxMjgsIDAsIDEyOCkiCiBQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRocmVlKS5jb2xvciBpcyAicmdiKDI1NSwgMjU1LCAyNTUpIgotRkFJTCB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudCkuY29sb3Igc2hvdWxkIGJlIHJnYigy
NTUsIDE2NSwgMCkuIFdhcyByZ2IoMCwgMCwgMCkuCi1GQUlMIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHJvb3RFbGVtZW50KS5jb2xvciBzaG91bGQgYmUgcmdiKDEsIDIsIDMpLiBXYXMgcmdiKDAs
IDAsIDApLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudCkuY29sb3Ig
aXMgInJnYigyNTUsIDE2NSwgMCkiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RF
bGVtZW50KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShvbmUpLmNvbG9yIGlzICJyZ2IoMywgMiwgMSkiCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141028</attachid>
            <date>2012-05-09 15:26:52 -0700</date>
            <delta_ts>2012-05-10 11:58:20 -0700</delta_ts>
            <desc>Remove == Force -&gt; &gt;= Detach change per Ojan/James&apos; suggestion</desc>
            <filename>bug-85940-20120509152651.patch</filename>
            <type>text/plain</type>
            <size>10694</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzYzRmZWUzOWVlYTRj
MmEzNTQ2Mjc1ZWI1MjAxMWYzMDVjZDU3MC4uYzgyMjU0YTA5NjAwYTA4ZDJlMTBkZGQ0MWJjMjY5
MTk2MTVlNmY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTA4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVT
UyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1l
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEhUTUw1IDxpZnJhbWUgc2VhbWxlc3M+IHNwZWMgc2F5czoKKyAgICAgICAgSW4gYSBDU1Mt
c3VwcG9ydGluZyB1c2VyIGFnZW50OiB0aGUgdXNlciBhZ2VudCBtdXN0LCBmb3IgdGhlIHB1cnBv
c2Ugb2YgQ1NTIHByb3BlcnR5CisgICAgICAgIGluaGVyaXRhbmNlIG9ubHksIHRyZWF0IHRoZSBy
b290IGVsZW1lbnQgb2YgdGhlIGFjdGl2ZSBkb2N1bWVudCBvZiB0aGUgaWZyYW1lCisgICAgICAg
IGVsZW1lbnQncyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBhcyBiZWluZyBhIGNoaWxkIG9mIHRo
ZSBpZnJhbWUgZWxlbWVudC4KKyAgICAgICAgKFRodXMgaW5oZXJpdGVkIHByb3BlcnRpZXMgb24g
dGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgaW4gdGhlCisgICAgICAgIGlmcmFtZSB3
aWxsIGluaGVyaXQgdGhlIGNvbXB1dGVkIHZhbHVlcyBvZiB0aG9zZSBwcm9wZXJ0aWVzIG9uIHRo
ZSBpZnJhbWUKKyAgICAgICAgZWxlbWVudCBpbnN0ZWFkIG9mIHRha2luZyB0aGVpciBpbml0aWFs
IHZhbHVlcy4pCisKKyAgICAgICAgSW5pdGlhbGx5IEkgaW1wbGVtZW50ZWQgdGhpcyBzdXBwb3J0
IHRvIHRoZSBsZXR0ZXIgb2YgdGhlIHNwZWMuIEhvd2V2ZXIsIGRvaW5nIHNvIEkgbGVhcm5lZAor
ICAgICAgICB0aGF0IFdlYktpdCBoYXMgYSBSZW5kZXJTdHlsZSBmb3IgdGhlIERvY3VtZW50IE5v
ZGUsIG5vdCBqdXN0IHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50LgorICAgICAgICBJ
biB0aGlzIFJlbmRlclN0eWxlIG9uIHRoZSBEb2N1bWVudCwgd2UgYWRkIGEgYnVuY2ggb2YgcGVy
LWRvY3VtZW50IHN0eWxlcyBmcm9tIHNldHRpbmdzCisgICAgICAgIGluY2x1ZGluZyBkZXNpZ25N
b2RlLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9y
RG9jdW1lbnQgaW5oZXJpdCBzdHlsZSBmcm9tIHRoZSBwYXJlbnQgaWZyYW1lJ3MKKyAgICAgICAg
c3R5bGUsIGJlZm9yZSBhcHBseWluZyBhbnkgb2YgdGhlc2UgcGVyLWRvY3VtZW50IHN0eWxlcy4g
IFRoaXMgbWF5IG9yIG1heSBub3QgYmUgY29ycmVjdAorICAgICAgICBkZXBlbmRpbmcgb24gd2hh
dCBiZWhhdmlvciB3ZSB3YW50IGZvciBydGwtb3JkZXJpbmcsIHBhZ2Utem9vbSwgbG9jYWxlLCBk
ZXNpZ24gbW9kZSwgZXRjLgorICAgICAgICBGb3Igbm93LCB3ZSBjb250aW51ZSB0byB0cmVhdCB0
aGUgaWZyYW1lJ3MgZG9jdW1lbnQgYXMgaW5kZXBlbmRlbnQgaW4gdGhlc2UgcmVnYXJkcywgYW5k
CisgICAgICAgIHRoZSBzZXR0aW5ncyBvbiB0aGF0IGRvY3VtZW50IG92ZXJyaWRlIHRob3NlIGlu
aGVyaXRlZCBmcm9tIHRoZSBpZnJhbWUuCisKKyAgICAgICAgQWxzbywgaW50aWFsbHkgd2hlbiBt
YWtpbmcgdGhpcyB3b3JrLCBJIGFkZGVkIHJlZGlyZWN0cyBpbiByZWNhbGNTdHlsZSBhbmQgc2No
ZWR1bGVTdHlsZVJlY2FsYworICAgICAgICBmcm9tIHRoZSBjaGlsZCBkb2N1bWVudCB0byB0aGUg
cGFyZW50IGRvY3VtZW50IGluIHRoZSBjYXNlIG9mIHNlYW1sZXNzIChzaW5jZSB0aGUgcGFyZW50
CisgICAgICAgIGRvY3VtZW50IGVmZmVjdGl2ZWx5IG1hbmFnZXMgdGhlIHN0eWxlIHJlc29sdmUg
YW5kIGxheW91dCBvZiB0aGUgY2hpbGQgaW4gc2VhbWxlc3MgbW9kZSkuCisgICAgICAgIEhvd2V2
ZXIsIEkgd2FzIG5vdCBhYmxlIHRvIGZpbmQgYSB0ZXN0IHdoaWNoIGRlcGVuZGVkIG9uIHRoaXMg
Y29kZSBjaGFuZ2UsIHNvIGluIHRoaXMgZmluYWwgcGF0Y2gKKyAgICAgICAgSSBoYXZlIHJlbW92
ZWQgYm90aCBvZiB0aGVzZSBtb2RpZmljYXRpb25zIGFuZCByZXBsYWNlZCB0aGVtIHdpdGggRklY
TUVzLiAgQmFzZWQgb24gZGlzY3Vzc2lvbnMKKyAgICAgICAgd2l0aCBPamFuIGFuZCBKYW1lcyBS
b2JpbnNvbiwgSSBiZWxpZXZlIGJvdGggb2YgdGhvc2UgY2hhbmdlcyBtYXkgZXZlbnR1YWxseSBi
ZSB3YW50ZWQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYmFzaWNhbGx5IGRvZXMgMyB0aGluZ3M6
CisgICAgICAgIDEuICBNYWtlcyBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50IGluaGVy
aXQgZnJvbSB0aGUgcGFyZW50IGlmcmFtZS4KKyAgICAgICAgMi4gIE1ha2VzIGFueSByZWNhbGNT
dHlsZSBjYWxscyBvbiB0aGUgaWZyYW1lIHByb3BvZ2F0ZSBkb3duIGludG8gdGhlIGNoaWxkIGRv
Y3VtZW50IChIVE1MSUZyYW1lRWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUpLgorICAgICAgICAzLiAg
TWFrZXMgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlIGF3YXJlIG9mIHRoZSBmYWN0IHRoYXQgdGhlIERv
Y3VtZW50J3Mgc3R5bGUgKmNhbiogY2hhbmdlCisgICAgICAgICAgICBmb3IgcmVhc29ucyBvdGhl
ciB0aGFuIHJlY2FsY1N0eWxlKEZvcmNlKS4KKworICAgICAgICBJJ20gb3BlbiB0byBtb3JlIHRl
c3Rpbmcgc3VnZ2VzdGlvbnMsIGlmIHJldmlld2VycyBoYXZlIHNldHRpbmdzIG9uIHRoZSBEb2N1
bWVudCdzIHN0eWxlCisgICAgICAgIHRoYXQgeW91IHdhbnQgdG8gbWFrZSBzdXJlIHdlIGluaGVy
aXQgZnJvbSB0aGUgcGFyZW50IGlmcmFtZSwgb3IgZG9uJ3QgaW5oZXJpdCwgZXRjLgorICAgICAg
ICBJIHZpZXcgdGhpcyBhcyBhIGNvbXBsZXRlIHNvbHV0aW9uIHRvIHRoaXMgYXNwZWN0IG9mIHRo
ZSBjdXJyZW50IDxpZnJhbWUgc2VhbWxlc3M+IHNwZWMsCisgICAgICAgIGJ1dCBsaWtlbHkgbm90
IHRoZSBsYXN0IGNvZGUgd2Ugd2lsbCB3cml0ZSBmb3IgdGhpcyBhc3BlY3Qgb2YgdGhlIHNlYW1s
ZXNzIGZlYXR1cmUuIDopCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvZnJhbWVzL3NlYW1sZXNz
cy9zZWFtbGVzcy1jc3MtY2FzY2FkZS5odG1sIGFuZCBzZWFtbGVzcy1kZXNpZ25Nb2RlLmh0bWwK
KworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxl
UmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWNhbGNTdHlsZSk6CisgICAg
ICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElGcmFtZUVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxJRnJhbWVFbGVt
ZW50KToKKwogMjAxMi0wNS0wOSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAg
IFJlbW92ZSBzb21lIGlzU1ZHRm9vIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAppbmRleCAzYzJiNjNhZWM0ZDQyYmI2NDRjY2EzNTYzMWIzM2Q2N2U4ZTE0MjU2Li5jYWJl
ZjkxNGZmOGJlYWJiZTkzMDMzYzJkZmU5ZGI2NmE3NGVhOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNTI3LDcgKzE1MjcsMTkgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQs
IENTU0YKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKIAorICAgIC8v
IEhUTUw1IHN0YXRlcyB0aGF0IHNlYW1sZXNzIGlmcmFtZXMgc2hvdWxkIHJlcGxhY2UgZGVmYXVs
dCBDU1MgdmFsdWVzCisgICAgLy8gd2l0aCB2YWx1ZXMgaW5oZXJpdGVkIGZyb20gdGhlIGNvbnRh
aW5pbmcgaWZyYW1lIGVsZW1lbnQuIEhvd2V2ZXIsCisgICAgLy8gc29tZSB2YWx1ZXMgKHN1Y2gg
YXMgdGhlIGNhc2Ugb2YgZGVzaWduTW9kZSA9ICJvbiIpIHN0aWxsIG5lZWQgdG8KKyAgICAvLyBi
ZSBzZXQgYnkgdGhpcyAiZG9jdW1lbnQgc3R5bGUiLgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4g
ZG9jdW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBib29sIHNlYW1sZXNz
V2l0aFBhcmVudCA9IGRvY3VtZW50LT5zaG91bGREaXNwbGF5U2VhbWxlc3NseVdpdGhQYXJlbnQo
KTsKKyAgICBpZiAoc2VhbWxlc3NXaXRoUGFyZW50KSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBp
ZnJhbWVTdHlsZSA9IGRvY3VtZW50LT5zZWFtbGVzc1BhcmVudElGcmFtZSgpLT5yZW5kZXJTdHls
ZSgpOworICAgICAgICBpZiAoaWZyYW1lU3R5bGUpCisgICAgICAgICAgICBkb2N1bWVudFN0eWxl
LT5pbmhlcml0RnJvbShpZnJhbWVTdHlsZSk7CisgICAgfQorCisgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGNsZWFyIHRoYXQgd2Ugd2FudCB0byBvdmVycmlkZSBhbGwgb2YgdGhlc2UgdmFsdWVzIGlu
IHRoZSBzZWFtbGVzcyBjYXNlIQogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3BsYXkoQkxPQ0sp
OwogICAgIGRvY3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LT52aXN1YWxseU9y
ZGVyZWQoKSA/IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVyKTsKICAgICBkb2N1bWVudFN0eWxl
LT5zZXRab29tKGZyYW1lICYmICFkb2N1bWVudC0+cHJpbnRpbmcoKSA/IGZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpIDogMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzNTBhY2U4NmMwMDY5
NTRhM2I4YzFiMWNjN2I1ZWEzNzk4ODFlZTgyLi5jMWVjYzBmYjExODQ1NjQ1OGQ0MDRlMDZmMjAy
MjUxOGVjMTMxNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE2NDUsNiArMTY0NSw5
IEBAIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQogCiB2b2lkIERv
Y3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKKyAgICAvLyBGSVhNRTogSW4gdGhlIHNl
YW1sZXNzIGNhc2UsIHdlIHNob3VsZCBsaWtlbHkgc2NoZWR1bGUgYSBzdHlsZSByZWNhbGMKKyAg
ICAvLyBvbiBvdXIgcGFyZW50IGFuZCBpbnN0ZWFkIHJldHVybiBlYXJseSBoZXJlLgorCiAgICAg
aWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGluUGFnZUNhY2hlKCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTY5OCw3ICsxNzAxLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlY2Fs
Y1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAKICAgICBpZiAobV9pblN0eWxlUmVjYWxj
KQogICAgICAgICByZXR1cm47IC8vIEd1YXJkIGFnYWluc3QgcmUtZW50cmFuY3kuIC1kd2gKLSAg
ICAKKworICAgIC8vIEZJWE1FOiBJbiB0aGUgc2VhbWxlc3MgY2FzZSwgd2UgbWF5IHdpc2ggdG8g
ZXhpdCBlYXJseSBpbiB0aGUgY2hpbGQgYWZ0ZXIgcmVjYWxjaW5nIG91ciBwYXJlbnQgY2hhaW4u
CisgICAgLy8gSSBoYXZlIG5vdCB5ZXQgZm91bmQgYSB0ZXN0IHdoaWNoIHJlcXVpcmVzIHN1Y2gu
CisKICAgICBpZiAobV9oYXNEaXJ0eVN0eWxlUmVzb2x2ZXIpCiAgICAgICAgIHVwZGF0ZUFjdGl2
ZVN0eWxlc2hlZXRzKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOwogCkBAIC0xNzI0LDcgKzE3MzAs
OCBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
aWYgKG1fcGVuZGluZ1N0eWxlUmVjYWxjU2hvdWxkRm9yY2UpCiAgICAgICAgIGNoYW5nZSA9IEZv
cmNlOwogCi0gICAgaWYgKGNoYW5nZSA9PSBGb3JjZSkgeworICAgIC8vIFJlY2FsY3VsYXRpbmcg
dGhlIHJvb3Qgc3R5bGUgKG9uIHRoZSBkb2N1bWVudCkgaXMgbm90IG5lZWRlZCBpbiB0aGUgY29t
bW9uIGNhc2UuCisgICAgaWYgKChjaGFuZ2UgPT0gRm9yY2UpIHx8IChzaG91bGREaXNwbGF5U2Vh
bWxlc3NseVdpdGhQYXJlbnQoKSAmJiAoY2hhbmdlID49IEluaGVyaXQpKSkgewogICAgICAgICAv
LyBzdHlsZSBzZWxlY3RvciBtYXkgc2V0IHRoaXMgYWdhaW4gZHVyaW5nIHJlY2FsYwogICAgICAg
ICBtX2hhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUgPSBmYWxzZTsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IDA0NTI5YzgzZWQxNzI4
Y2Q1Yzg3N2RjNjcyZmNkYWZiZTkwMWI3YjIuLmM3ZTE1N2U3MzQwZDFjYjYyOTBhNzcyZjkyNmQx
NDMxY2M3YmE0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3Bw
CkBAIC00MSw2ICs0MSw3IEBAIGlubGluZSBIVE1MSUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgOiBIVE1MRnJh
bWVFbGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZShpZnJhbWVUYWcpKTsKKyAgICBzZXRIYXNDdXN0b21XaWxsT3JEaWRSZWNhbGNTdHlsZSgpOwog
fQogCiBQYXNzUmVmUHRyPEhUTUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAg
LTEyMCw2ICsxMjEsMTUgQEAgYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6c2hvdWxkRGlzcGxheVNl
YW1sZXNzbHkoKSBjb25zdAogICAgIHJldHVybiBjb250ZW50RG9jdW1lbnQoKSAmJiBjb250ZW50
RG9jdW1lbnQoKS0+bWF5RGlzcGxheVNlYW1sZXNzV2l0aFBhcmVudCgpICYmIGhhc0F0dHJpYnV0
ZShzZWFtbGVzc0F0dHIpOwogfQogCit2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpkaWRSZWNhbGNT
dHlsZShTdHlsZUNoYW5nZSBzdHlsZUNoYW5nZSkKK3sKKyAgICBpZiAoIXNob3VsZERpc3BsYXlT
ZWFtbGVzc2x5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBEb2N1bWVudCogY2hpbGREb2N1bWVu
dCA9IGNvbnRlbnREb2N1bWVudCgpOworICAgIGlmIChzdHlsZUNoYW5nZSA+PSBJbmhlcml0IHx8
IGNoaWxkRG9jdW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoaWxkRG9jdW1lbnQt
Pm5lZWRzU3R5bGVSZWNhbGMoKSkKKyAgICAgICAgY29udGVudERvY3VtZW50KCktPnJlY2FsY1N0
eWxlKHN0eWxlQ2hhbmdlKTsKK30KKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBTdHJpbmcgSFRN
TElGcmFtZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDVkNTUzNTliYTk3Y2RmODVhOTUwOWE1N2RlZTFi
MjYwNDE4MzhkM2IuLmZmODg5YjA2MDRlZTM5YmNmMTlkNjcyNTQ4Y2NlYTkxNTM4NzZkNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQzLDEwICs0MywxMiBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGlu
c2VydGVkSW50byhOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KE5vZGUqKSBPVkVSUklERTsKLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKLSAgICAgICAK
KworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkgT1ZFUlJJREU7
CisKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRl
eHQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjIzOTNiZWZi
NjM0NGVhYjY1Mzc0MTZiODVhN2JjMzQyMjMyNDAxNS4uMzE5NzQzN2M4NmE2NmIyYzRmYjMwYmIy
Nzc3YzQ0ZDY1NGQ4MjYwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTA4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVT
UyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1l
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBzaW5nbGUgcGFzcyBpcyBkZWNlcHRpdmUuICBzZWFtbGVzcy1kZXNpZ25Nb2RlIGV4aXN0
cworICAgICAgICB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgcmVncmVzcyBhcHBsaWNhdGlv
biBvZiBEb2N1bWVudC1sZXZlbAorICAgICAgICBzdHlsZXMgaW4gdGhlIGNoaWxkIGRvY3VtZW50
LgorCisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNhc2NhZGUt
ZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA1LTA5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0Bn
bWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gTWFueSB0ZXN0cyByZXZlYWxlZCBhcyBwYXNzaW5n
IGFmdGVyIG1vdmluZyBmcm9tIFNraXBwZWQgdG8gdGVzdF9leHBlY3RhdGlvbnMudHh0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1jc3MtY2Fz
Y2FkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFt
bGVzcy1jc3MtY2FzY2FkZS1leHBlY3RlZC50eHQKaW5kZXggZGFmNzY5YWIxNDNjYTNhMTQwN2Fk
NDM5YTgxOTdkZWQ3ZGU0MmE4Yy4uMWZjZTQwNjQ0ZWQ2NWUwMmI5MWI4NjA5Yjk3MGNkOTI4NmQ1
MjgxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxl
c3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L3NlYW1sZXNzL3NlYW1sZXNzLWNzcy1jYXNjYWRlLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcg
QEAgVGVzdCB0aGF0IHNlYW1sZXNzIGlmcmFtZXMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBw
YXJlbnQgaWZyYW1lLCBhbmQgZHltYW5pY2EKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
b25lKS5jb2xvciBpcyAicmdiKDI1NSwgMjU1LCAwKSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUodHdvKS5jb2xvciBpcyAicmdiKDEyOCwgMCwgMTI4KSIKIFBBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUodGhyZWUpLmNvbG9yIGlzICJyZ2IoMjU1LCAyNTUsIDI1NSkiCi1GQUlMIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KS5jb2xvciBzaG91bGQgYmUgcmdiKDI1
NSwgMTY1LCAwKS4gV2FzIHJnYigwLCAwLCAwKS4KLUZBSUwgd2luZG93LmdldENvbXB1dGVkU3R5
bGUocm9vdEVsZW1lbnQpLmNvbG9yIHNob3VsZCBiZSByZ2IoMSwgMiwgMykuIFdhcyByZ2IoMCwg
MCwgMCkuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KS5jb2xvciBp
cyAicmdiKDI1NSwgMTY1LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVs
ZW1lbnQpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKG9uZSkuY29sb3IgaXMgInJnYigzLCAyLCAxKSIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141220</attachid>
            <date>2012-05-10 11:58:25 -0700</date>
            <delta_ts>2012-05-10 13:01:48 -0700</delta_ts>
            <desc>Updated as discussed</desc>
            <filename>bug-85940-20120510115824.patch</filename>
            <type>text/plain</type>
            <size>15569</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzYzRmZWUzOWVlYTRj
MmEzNTQ2Mjc1ZWI1MjAxMWYzMDVjZDU3MC4uZmZkZWYyMTQ5NmEzNTcyNWMyYjA0YmI3YTBhOTI4
NTg3NGM0YjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTA4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVT
UyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1l
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEhUTUw1IDxpZnJhbWUgc2VhbWxlc3M+IHNwZWMgc2F5czoKKyAgICAgICAgSW4gYSBDU1Mt
c3VwcG9ydGluZyB1c2VyIGFnZW50OiB0aGUgdXNlciBhZ2VudCBtdXN0LCBmb3IgdGhlIHB1cnBv
c2Ugb2YgQ1NTIHByb3BlcnR5CisgICAgICAgIGluaGVyaXRhbmNlIG9ubHksIHRyZWF0IHRoZSBy
b290IGVsZW1lbnQgb2YgdGhlIGFjdGl2ZSBkb2N1bWVudCBvZiB0aGUgaWZyYW1lCisgICAgICAg
IGVsZW1lbnQncyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBhcyBiZWluZyBhIGNoaWxkIG9mIHRo
ZSBpZnJhbWUgZWxlbWVudC4KKyAgICAgICAgKFRodXMgaW5oZXJpdGVkIHByb3BlcnRpZXMgb24g
dGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgaW4gdGhlCisgICAgICAgIGlmcmFtZSB3
aWxsIGluaGVyaXQgdGhlIGNvbXB1dGVkIHZhbHVlcyBvZiB0aG9zZSBwcm9wZXJ0aWVzIG9uIHRo
ZSBpZnJhbWUKKyAgICAgICAgZWxlbWVudCBpbnN0ZWFkIG9mIHRha2luZyB0aGVpciBpbml0aWFs
IHZhbHVlcy4pCisKKyAgICAgICAgSW5pdGlhbGx5IEkgaW1wbGVtZW50ZWQgdGhpcyBzdXBwb3J0
IHRvIHRoZSBsZXR0ZXIgb2YgdGhlIHNwZWMuIEhvd2V2ZXIsIGRvaW5nIHNvIEkgbGVhcm5lZAor
ICAgICAgICB0aGF0IFdlYktpdCBoYXMgYSBSZW5kZXJTdHlsZSBmb3IgdGhlIERvY3VtZW50IE5v
ZGUsIG5vdCBqdXN0IHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50LgorICAgICAgICBJ
biB0aGlzIFJlbmRlclN0eWxlIG9uIHRoZSBEb2N1bWVudCwgd2UgYWRkIGEgYnVuY2ggb2YgcGVy
LWRvY3VtZW50IHN0eWxlcyBmcm9tIHNldHRpbmdzCisgICAgICAgIGluY2x1ZGluZyBkZXNpZ25N
b2RlLiBTaW5jZSB3ZSd2ZSBkZWNpZGVkIG5vdCB0byB1c2UgdGhlc2UgcGVyLWRvY3VtZW50IHNl
dHRpbmdzIGFuZAorICAgICAgICBpbnN0ZWFkIGVhcmx5LXJldHVybiBmcm9tIHN0eWxlRm9yRG9j
dW1lbnQsIHdlIGNvdWxkIG1vdmUgdGhpcyBjb2RlIGJhY2sgdG8gdGhlCisgICAgICAgIGRvY3Vt
ZW50RWxlbWVudCwgYnV0IEkgdGhpbmsgdGhpcyBpcyBjbGVhbmVyIGZvciBub3cuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgbWFrZXMgU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudCBpbmhl
cml0IHN0eWxlIGZyb20gdGhlIHBhcmVudCBpZnJhbWUncworICAgICAgICBzdHlsZSwgYmVmb3Jl
IGFwcGx5aW5nIGFueSBvZiB0aGVzZSBwZXItZG9jdW1lbnQgc3R5bGVzLgorCisgICAgICAgIEFs
c28sIGludGlhbGx5IHdoZW4gbWFraW5nIHRoaXMgd29yaywgSSBhZGRlZCByZWRpcmVjdHMgaW4g
cmVjYWxjU3R5bGUgYW5kIHNjaGVkdWxlU3R5bGVSZWNhbGMKKyAgICAgICAgZnJvbSB0aGUgY2hp
bGQgZG9jdW1lbnQgdG8gdGhlIHBhcmVudCBkb2N1bWVudCBpbiB0aGUgY2FzZSBvZiBzZWFtbGVz
cyAoc2luY2UgdGhlIHBhcmVudAorICAgICAgICBkb2N1bWVudCBlZmZlY3RpdmVseSBtYW5hZ2Vz
IHRoZSBzdHlsZSByZXNvbHZlIGFuZCBsYXlvdXQgb2YgdGhlIGNoaWxkIGluIHNlYW1sZXNzIG1v
ZGUpLgorICAgICAgICBBdCBsZWFzdCBvbmUgb2YgdGhvc2UgY29kZSBjaGFuZ2VzIHdpbGwgYmUg
bmVlZGVkIGZvciBteSBuZXh0IHBhdGNoLCBidXQgc2luY2UgdGhleSdyZSBub3QgdHJpZ2dlcmVk
CisgICAgICAgIGJ5IHRoZXNlIHRlc3RzLCBJJ3ZlIHJlbW92ZWQgdGhlbSBmb3Igbm93LiBJIG5v
dGVkIHRoZW0gd2l0aCBGSVhNRXMgYXMgdGhleSBhcmUgdGhlbWF0aWNhbGx5CisgICAgICAgIHJl
bGF0ZWQgdG8gdGhlIHJlc3Qgb2YgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
YmFzaWNhbGx5IGRvZXMgMyB0aGluZ3M6CisgICAgICAgIDEuICBNYWtlcyBTdHlsZVJlc29sdmVy
OjpzdHlsZUZvckRvY3VtZW50IGluaGVyaXQgZnJvbSB0aGUgcGFyZW50IGlmcmFtZS4KKyAgICAg
ICAgMi4gIE1ha2VzIGFueSByZWNhbGNTdHlsZSBjYWxscyBvbiB0aGUgaWZyYW1lIHByb3BvZ2F0
ZSBkb3duIGludG8gdGhlIGNoaWxkIGRvY3VtZW50IChIVE1MSUZyYW1lRWxlbWVudDo6ZGlkUmVj
YWxjU3R5bGUpLgorICAgICAgICAzLiAgTWFrZXMgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlIGF3YXJl
IG9mIHRoZSBmYWN0IHRoYXQgdGhlIERvY3VtZW50J3Mgc3R5bGUgKmNhbiogY2hhbmdlCisgICAg
ICAgICAgICBmb3IgcmVhc29ucyBvdGhlciB0aGFuIHJlY2FsY1N0eWxlKEZvcmNlKS4KKworICAg
ICAgICBUZXN0ZWQgYnkgZmFzdC9mcmFtZXMvc2VhbWxlc3NzL3NlYW1sZXNzLWNzcy1jYXNjYWRl
Lmh0bWwsIHNlYW1sZXNzLWluaGVyaXRlZC1kb2N1bWVudC1zdHlsZS5odG1sIGFuZCBzZWFtbGVz
cy1kZXNpZ25Nb2RlLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlz
dCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZWNhbGNTdHlsZSk6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxJRnJhbWVFbGVtZW50KToKKwogMjAxMi0wNS0wOSAgUm9iIEJ1aXMgIDxyYnVpc0By
aW0uY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21lIGlzU1ZHRm9vIG1ldGhvZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAzYzJiNjNhZWM0ZDQyYmI2NDRjY2EzNTYzMWIz
M2Q2N2U4ZTE0MjU2Li5kOTI5NzIwN2VmMjZhZDI5M2UyNWUyOTk3OWZhYTFmZTFmODVkZjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNTI3LDcgKzE1MjcsMjAgQEAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChE
b2N1bWVudCogZG9jdW1lbnQsIENTU0YKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+
ZnJhbWUoKTsKIAorICAgIC8vIEhUTUw1IHN0YXRlcyB0aGF0IHNlYW1sZXNzIGlmcmFtZXMgc2hv
dWxkIHJlcGxhY2UgZGVmYXVsdCBDU1MgdmFsdWVzCisgICAgLy8gd2l0aCB2YWx1ZXMgaW5oZXJp
dGVkIGZyb20gdGhlIGNvbnRhaW5pbmcgaWZyYW1lIGVsZW1lbnQuIEhvd2V2ZXIsCisgICAgLy8g
c29tZSB2YWx1ZXMgKHN1Y2ggYXMgdGhlIGNhc2Ugb2YgZGVzaWduTW9kZSA9ICJvbiIpIHN0aWxs
IG5lZWQgdG8KKyAgICAvLyBiZSBzZXQgYnkgdGhpcyAiZG9jdW1lbnQgc3R5bGUiLgogICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gZG9jdW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
KyAgICBpZiAoSFRNTElGcmFtZUVsZW1lbnQqIHBhcmVudElmcmFtZSA9IGRvY3VtZW50LT5zZWFt
bGVzc1BhcmVudElGcmFtZSgpKSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBpZnJhbWVTdHlsZSA9
IHBhcmVudElmcmFtZS0+cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgaWYgKGlmcmFtZVN0eWxlKSB7
CisgICAgICAgICAgICBkb2N1bWVudFN0eWxlLT5pbmhlcml0RnJvbShpZnJhbWVTdHlsZSk7Cisg
ICAgICAgICAgICAvLyBFYXJseS1yZXR1cm4gdG8gYXZvaWQgb3ZlcnJpZGluZyBpbmhlcml0dGVk
IHN0eWxlcy4KKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudFN0eWxlLnJlbGVhc2UoKTsKKyAg
ICAgICAgfQorICAgIH0KKwogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwog
ICAgIGRvY3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LT52aXN1YWxseU9yZGVy
ZWQoKSA/IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVyKTsKICAgICBkb2N1bWVudFN0eWxlLT5z
ZXRab29tKGZyYW1lICYmICFkb2N1bWVudC0+cHJpbnRpbmcoKSA/IGZyYW1lLT5wYWdlWm9vbUZh
Y3RvcigpIDogMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzNTBhY2U4NmMwMDY5NTRh
M2I4YzFiMWNjN2I1ZWEzNzk4ODFlZTgyLi5jMWVjYzBmYjExODQ1NjQ1OGQ0MDRlMDZmMjAyMjUx
OGVjMTMxNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE2NDUsNiArMTY0NSw5IEBA
IHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQogCiB2b2lkIERvY3Vt
ZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKKyAgICAvLyBGSVhNRTogSW4gdGhlIHNlYW1s
ZXNzIGNhc2UsIHdlIHNob3VsZCBsaWtlbHkgc2NoZWR1bGUgYSBzdHlsZSByZWNhbGMKKyAgICAv
LyBvbiBvdXIgcGFyZW50IGFuZCBpbnN0ZWFkIHJldHVybiBlYXJseSBoZXJlLgorCiAgICAgaWYg
KG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGluUGFnZUNhY2hlKCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTY5OCw3ICsxNzAxLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlY2FsY1N0
eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAKICAgICBpZiAobV9pblN0eWxlUmVjYWxjKQog
ICAgICAgICByZXR1cm47IC8vIEd1YXJkIGFnYWluc3QgcmUtZW50cmFuY3kuIC1kd2gKLSAgICAK
KworICAgIC8vIEZJWE1FOiBJbiB0aGUgc2VhbWxlc3MgY2FzZSwgd2UgbWF5IHdpc2ggdG8gZXhp
dCBlYXJseSBpbiB0aGUgY2hpbGQgYWZ0ZXIgcmVjYWxjaW5nIG91ciBwYXJlbnQgY2hhaW4uCisg
ICAgLy8gSSBoYXZlIG5vdCB5ZXQgZm91bmQgYSB0ZXN0IHdoaWNoIHJlcXVpcmVzIHN1Y2guCisK
ICAgICBpZiAobV9oYXNEaXJ0eVN0eWxlUmVzb2x2ZXIpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVN0
eWxlc2hlZXRzKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOwogCkBAIC0xNzI0LDcgKzE3MzAsOCBA
QCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgaWYg
KG1fcGVuZGluZ1N0eWxlUmVjYWxjU2hvdWxkRm9yY2UpCiAgICAgICAgIGNoYW5nZSA9IEZvcmNl
OwogCi0gICAgaWYgKGNoYW5nZSA9PSBGb3JjZSkgeworICAgIC8vIFJlY2FsY3VsYXRpbmcgdGhl
IHJvb3Qgc3R5bGUgKG9uIHRoZSBkb2N1bWVudCkgaXMgbm90IG5lZWRlZCBpbiB0aGUgY29tbW9u
IGNhc2UuCisgICAgaWYgKChjaGFuZ2UgPT0gRm9yY2UpIHx8IChzaG91bGREaXNwbGF5U2VhbWxl
c3NseVdpdGhQYXJlbnQoKSAmJiAoY2hhbmdlID49IEluaGVyaXQpKSkgewogICAgICAgICAvLyBz
dHlsZSBzZWxlY3RvciBtYXkgc2V0IHRoaXMgYWdhaW4gZHVyaW5nIHJlY2FsYwogICAgICAgICBt
X2hhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUgPSBmYWxzZTsKICAgICAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IDA0NTI5YzgzZWQxNzI4Y2Q1
Yzg3N2RjNjcyZmNkYWZiZTkwMWI3YjIuLmM3ZTE1N2U3MzQwZDFjYjYyOTBhNzcyZjkyNmQxNDMx
Y2M3YmE0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBA
IC00MSw2ICs0MSw3IEBAIGlubGluZSBIVE1MSUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgOiBIVE1MRnJhbWVF
bGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShp
ZnJhbWVUYWcpKTsKKyAgICBzZXRIYXNDdXN0b21XaWxsT3JEaWRSZWNhbGNTdHlsZSgpOwogfQog
CiBQYXNzUmVmUHRyPEhUTUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTEy
MCw2ICsxMjEsMTUgQEAgYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6c2hvdWxkRGlzcGxheVNlYW1s
ZXNzbHkoKSBjb25zdAogICAgIHJldHVybiBjb250ZW50RG9jdW1lbnQoKSAmJiBjb250ZW50RG9j
dW1lbnQoKS0+bWF5RGlzcGxheVNlYW1sZXNzV2l0aFBhcmVudCgpICYmIGhhc0F0dHJpYnV0ZShz
ZWFtbGVzc0F0dHIpOwogfQogCit2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpkaWRSZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBzdHlsZUNoYW5nZSkKK3sKKyAgICBpZiAoIXNob3VsZERpc3BsYXlTZWFt
bGVzc2x5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBEb2N1bWVudCogY2hpbGREb2N1bWVudCA9
IGNvbnRlbnREb2N1bWVudCgpOworICAgIGlmIChzdHlsZUNoYW5nZSA+PSBJbmhlcml0IHx8IGNo
aWxkRG9jdW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoaWxkRG9jdW1lbnQtPm5l
ZWRzU3R5bGVSZWNhbGMoKSkKKyAgICAgICAgY29udGVudERvY3VtZW50KCktPnJlY2FsY1N0eWxl
KHN0eWxlQ2hhbmdlKTsKK30KKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBTdHJpbmcgSFRNTElG
cmFtZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDVkNTUzNTliYTk3Y2RmODVhOTUwOWE1N2RlZTFiMjYw
NDE4MzhkM2IuLmZmODg5YjA2MDRlZTM5YmNmMTlkNjcyNTQ4Y2NlYTkxNTM4NzZkNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQzLDEwICs0MywxMiBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKE5v
ZGUqKSBPVkVSUklERTsKLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKLSAgICAgICAKKwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkgT1ZFUlJJREU7CisK
ICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjIzOTNiZWZiNjM0
NGVhYjY1Mzc0MTZiODVhN2JjMzQyMjMyNDAxNS4uNDM1MmM1M2UxNGVmYWRlZDU5MWE3MTVhY2Fh
ZWIyMzExMGY5ODAyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA1LTA4ICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVTUyBj
aGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1lIGVs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIG91ciB0ZXN0cyB0byBtYXRjaCBvdXIgbmV3bHkgZGVjaWRlZCBiZWhhdmlvciBvZgorICAg
ICAgICBkaXNhYmxpbmcgZGVzaWduTW9kZSBmb3Igc2VhbWxlc3MgaWZyYW1lcyBhbmQgdXNpbmcg
YWxsCisgICAgICAgIGluaGVyaXRlZCB2YWx1ZXMgaW5zdGVhZCBvZiBhbnkgcGVyLWZyYW1lIHNl
dHRpbmdzLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNh
c2NhZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1s
ZXNzLWRlc2lnbk1vZGUuaHRtbDogQ2hhZ25lZCB0byBtYXRjaCBuZXcgYmVoYXZpb3IuCisgICAg
ICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZGVzaWduTW9kZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5oZXJpdGVkLWRv
Y3VtZW50LXN0eWxlLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxl
c3MtaW5oZXJpdGVkLWRvY3VtZW50LXN0eWxlLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNS0wOSAg
WmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHdGtdIE1h
bnkgdGVzdHMgcmV2ZWFsZWQgYXMgcGFzc2luZyBhZnRlciBtb3ZpbmcgZnJvbSBTa2lwcGVkIHRv
IHRlc3RfZXhwZWN0YXRpb25zLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0
CmluZGV4IGRhZjc2OWFiMTQzY2EzYTE0MDdhZDQzOWE4MTk3ZGVkN2RlNDJhOGMuLjFmY2U0MDY0
NGVkNjVlMDJiOTFiODYwOWI5NzBjZDkyODZkNTI4MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWNzcy1jYXNjYWRlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1jc3MtY2FzY2Fk
ZS1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRlc3QgdGhhdCBzZWFtbGVzcyBpZnJhbWVz
IGluaGVyaXQgc3R5bGVzIGZyb20gdGhlaXIgcGFyZW50IGlmcmFtZSwgYW5kIGR5bWFuaWNhCiBQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG9uZSkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwg
MCkiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHR3bykuY29sb3IgaXMgInJnYigxMjgs
IDAsIDEyOCkiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRocmVlKS5jb2xvciBpcyAi
cmdiKDI1NSwgMjU1LCAyNTUpIgotRkFJTCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxl
bWVudCkuY29sb3Igc2hvdWxkIGJlIHJnYigyNTUsIDE2NSwgMCkuIFdhcyByZ2IoMCwgMCwgMCku
Ci1GQUlMIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KS5jb2xvciBzaG91bGQg
YmUgcmdiKDEsIDIsIDMpLiBXYXMgcmdiKDAsIDAsIDApLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShyb290RWxlbWVudCkuY29sb3IgaXMgInJnYigyNTUsIDE2NSwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KS5jb2xvciBpcyAicmdiKDEsIDIsIDMp
IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvbmUpLmNvbG9yIGlzICJyZ2IoMywgMiwg
MSkiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1s
ZXNzLWRlc2lnbk1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2Vh
bWxlc3Mvc2VhbWxlc3MtZGVzaWduTW9kZS1leHBlY3RlZC50eHQKaW5kZXggOTQwNGExMDg4OTYy
Yzg5NmFmODI4ZmMyNWI4MTRhMWM5MjAwYzI0NC4uMGYyNjUzMmQzNDhhNDdjMmM4ZGViZDJmMzdj
ZWVlMGU2ODZiNDRiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxl
c3Mvc2VhbWxlc3MtZGVzaWduTW9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZGVzaWduTW9kZS1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSw0IEBACi1UZXN0IHRoYXQgYmVpbmcgYSBzZWFtbGVzcyBpZnJhbWUgZG9lcyBub3QgYnJl
YWsgZGVzaWduTW9kZS4KLVBBU1Mgd2luZG93LmlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS50
ZXh0Q29udGVudCBpcyAiUEFTUyIKK1Rlc3QgdGhhdCBiZWluZyBhIHNlYW1sZXNzIGlmcmFtZSBk
aXNhYmxlcyBub3JtYWwgZGVzaWduTW9kZS4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
cm9vdEVsZW1lbnQpWyctd2Via2l0LXVzZXItbW9kaWZ5J10gaXMgInJlYWQtb25seSIKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpWyctd2Via2l0LXVzZXItbW9kaWZ5
J10gaXMgInJlYWQtd3JpdGUiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L3NlYW1sZXNzL3NlYW1sZXNzLWRlc2lnbk1vZGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NlYW1sZXNzL3NlYW1sZXNzLWRlc2lnbk1vZGUuaHRtbAppbmRleCAwOGI4MjM5MjJmYmEz
ODMxN2E4YzlhMzFjYjVkYWY1NTRkMjJmNTU1Li4wZGUzNjBmODQ4Y2Y0MTk5MDk0MzRjYmQzOWE4
MmM1ZDRlMzNkOGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVz
cy9zZWFtbGVzcy1kZXNpZ25Nb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
c2VhbWxlc3Mvc2VhbWxlc3MtZGVzaWduTW9kZS5odG1sCkBAIC0xLDIwICsxLDE2IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPGlmcmFtZSBpZD0iaWZyYW1lIiBzZWFtbGVzcyBzcmNkb2M9IkZBSUwi
PjwvaWZyYW1lPgorPGlmcmFtZSBpZD0iaWZyYW1lIiBzZWFtbGVzcyBzcmNkb2M9IiI+PC9pZnJh
bWU+CiA8c2NyaXB0PgotZGVidWcoIlRlc3QgdGhhdCBiZWluZyBhIHNlYW1sZXNzIGlmcmFtZSBk
b2VzIG5vdCBicmVhayBkZXNpZ25Nb2RlLiIpCitkZWJ1ZygiVGVzdCB0aGF0IGJlaW5nIGEgc2Vh
bWxlc3MgaWZyYW1lIGRpc2FibGVzIG5vcm1hbCBkZXNpZ25Nb2RlLiIpCiB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24gKCkgewogICAgIHdpbmRvdy5pZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaWZyYW1lIik7CiAgICAgd2luZG93LmlmcmFtZS5jb250ZW50RG9jdW1lbnQuZGVzaWdu
TW9kZSA9ICJvbiI7Ci0gICAgdmFyIHRhcmdldCA9IHdpbmRvdy5pZnJhbWUuY29udGVudERvY3Vt
ZW50LmJvZHk7Ci0gICAgdGFyZ2V0LmZvY3VzKCk7Ci0gICAgd2luZG93LmlmcmFtZS5jb250ZW50
RG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4odGFyZ2V0KTsKLSAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlAi
KTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQSIpOwotICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJTIik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlMiKTsKLSAgICB9
Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuaWZyYW1lLmNvbnRlbnREb2N1bWVu
dC5ib2R5LnRleHRDb250ZW50IiwgIlBBU1MiKTsKKyAgICB3aW5kb3cucm9vdEVsZW1lbnQgPSBp
ZnJhbWUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsnLXdlYmtpdC11
c2VyLW1vZGlmeSddIiwgInJlYWQtb25seSIpOworCisgICAgLy8gQnV0IGlmIHdlIHNldCBjb250
ZW50ZWRpdGFibGUgb24gdGhlIGlmcmFtZSwgdGhlIGlubmVyIGRvY3VtZW50IGJlY29tZXMgZWRp
dGFibGUuCisgICAgd2luZG93LmlmcmFtZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQp
Wyctd2Via2l0LXVzZXItbW9kaWZ5J10iLCAicmVhZC13cml0ZSIpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1pbmhl
cml0ZWQtZG9jdW1lbnQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5oZXJpdGVkLWRvY3VtZW50LXN0eWxlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wOGQ1Y2NkYzhjNGE4NWM5NzAwZDU5ZmY5NDBhZTExNTg2N2NiMWUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxl
c3MtaW5oZXJpdGVkLWRvY3VtZW50LXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAK
K1Rlc3QgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGluaGVyaXQgc3R5bGVzIGZyb20gdGhlaXIgcGFy
ZW50IGlmcmFtZSBpbnN0ZWFkIG9mIHVzaW5nIFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRG9jdW1l
bnQgZGVmYXVsdHMuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsn
LXdlYmtpdC1ydGwtb3JkZXJpbmcnXSBpcyAidmlzdWFsIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShyb290RWxlbWVudClbJy13ZWJraXQtdXNlci1tb2RpZnknXSBpcyAicmVhZC13cml0
ZSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpWyctd2Via2l0LWxv
Y2FsZSddIGlzICJlbl9VUyIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1l
bnQpWyd3cml0aW5nLW1vZGUnXSBpcyAibHIiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHJvb3RFbGVtZW50KVsnZGlyZWN0aW9uJ10gaXMgInJ0bCIKK1BBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUocm9vdEVsZW1lbnQpWydmb250J10gaXMgIm5vcm1hbCBub3JtYWwgbm9ybWFsIDE4
cHgvbm9ybWFsIEFoZW0iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Nl
YW1sZXNzL3NlYW1sZXNzLWluaGVyaXRlZC1kb2N1bWVudC1zdHlsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5oZXJpdGVkLWRvY3VtZW50LXN0eWxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGJmYjUwODQ3NTdmOTcxNWRjNWI2Yjc2NmE3OGQ2NmEzZGY2ZjY0
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3Nl
YW1sZXNzLWluaGVyaXRlZC1kb2N1bWVudC1zdHlsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpZnJhbWUgeworICAgIC13ZWJraXQtcnRsLW9yZGVy
aW5nOiB2aXN1YWw7CisgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZTsKKyAgICAt
d2Via2l0LWxvY2FsZTogJ2VuX1VTJzsKKyAgICB3cml0aW5nLW1vZGU6IGxyOworICAgIGRpcmVj
dGlvbjogcnRsOworICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE4cHgvbm9ybWFsIEFo
ZW07Cit9Cis8L3N0eWxlPgorPGlmcmFtZSBpZD0iaWZyYW1lIiBzZWFtbGVzcyBzcmNkb2M9IiI+
PC9pZnJhbWU+Cis8c2NyaXB0PgorZGVidWcoIlRlc3QgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGlu
aGVyaXQgc3R5bGVzIGZyb20gdGhlaXIgcGFyZW50IGlmcmFtZSBpbnN0ZWFkIG9mIHVzaW5nIFN0
eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRG9jdW1lbnQgZGVmYXVsdHMuIikKK3dpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbiAoKSB7CisgICAgd2luZG93LmlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpZnJhbWUiKTsKKyAgICB3aW5kb3cucm9vdEVsZW1lbnQgPSBpZnJhbWUuY29udGVudERv
Y3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsnLXdlYmtpdC1ydGwtb3JkZXJpbmcnXSIs
ICJ2aXN1YWwiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHJvb3RFbGVtZW50KVsnLXdlYmtpdC11c2VyLW1vZGlmeSddIiwgInJlYWQtd3JpdGUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJv
b3RFbGVtZW50KVsnLXdlYmtpdC1sb2NhbGUnXSIsICJlbl9VUyIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpWyd3cml0aW5n
LW1vZGUnXSIsICJsciIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENv
bXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpWydkaXJlY3Rpb24nXSIsICJydGwiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsn
Zm9udCddIiwgIm5vcm1hbCBub3JtYWwgbm9ybWFsIDE4cHgvbm9ybWFsIEFoZW0iKTsKK30KKzwv
c2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141233</attachid>
            <date>2012-05-10 13:01:54 -0700</date>
            <delta_ts>2012-05-10 15:11:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85940-20120510130153.patch</filename>
            <type>text/plain</type>
            <size>14679</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzYzRmZWUzOWVlYTRj
MmEzNTQ2Mjc1ZWI1MjAxMWYzMDVjZDU3MC4uMTk5MTYxOGMxYWUyMmYyYjY1MzI5ZDU1NWEyYjg3
OGQ3NjZlZTc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTEwICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVT
UyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1l
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBUaGUg
SFRNTDUgPGlmcmFtZSBzZWFtbGVzcz4gc3BlYyBzYXlzOgorICAgICAgICBJbiBhIENTUy1zdXBw
b3J0aW5nIHVzZXIgYWdlbnQ6IHRoZSB1c2VyIGFnZW50IG11c3QsIGZvciB0aGUgcHVycG9zZSBv
ZiBDU1MgcHJvcGVydHkKKyAgICAgICAgaW5oZXJpdGFuY2Ugb25seSwgdHJlYXQgdGhlIHJvb3Qg
ZWxlbWVudCBvZiB0aGUgYWN0aXZlIGRvY3VtZW50IG9mIHRoZSBpZnJhbWUKKyAgICAgICAgZWxl
bWVudCdzIG5lc3RlZCBicm93c2luZyBjb250ZXh0IGFzIGJlaW5nIGEgY2hpbGQgb2YgdGhlIGlm
cmFtZSBlbGVtZW50LgorICAgICAgICAoVGh1cyBpbmhlcml0ZWQgcHJvcGVydGllcyBvbiB0aGUg
cm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCBpbiB0aGUKKyAgICAgICAgaWZyYW1lIHdpbGwg
aW5oZXJpdCB0aGUgY29tcHV0ZWQgdmFsdWVzIG9mIHRob3NlIHByb3BlcnRpZXMgb24gdGhlIGlm
cmFtZQorICAgICAgICBlbGVtZW50IGluc3RlYWQgb2YgdGFraW5nIHRoZWlyIGluaXRpYWwgdmFs
dWVzLikKKworICAgICAgICBJbml0aWFsbHkgSSBpbXBsZW1lbnRlZCB0aGlzIHN1cHBvcnQgdG8g
dGhlIGxldHRlciBvZiB0aGUgc3BlYy4gSG93ZXZlciwgZG9pbmcgc28gSSBsZWFybmVkCisgICAg
ICAgIHRoYXQgV2ViS2l0IGhhcyBhIFJlbmRlclN0eWxlIGZvciB0aGUgRG9jdW1lbnQgTm9kZSwg
bm90IGp1c3QgdGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQuCisgICAgICAgIEluIHRo
aXMgUmVuZGVyU3R5bGUgb24gdGhlIERvY3VtZW50LCB3ZSBhZGQgYSBidW5jaCBvZiBwZXItZG9j
dW1lbnQgc3R5bGVzIGZyb20gc2V0dGluZ3MKKyAgICAgICAgaW5jbHVkaW5nIGRlc2lnbk1vZGUu
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbWFrZXMgU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1
bWVudCBpbmhlcml0IHN0eWxlIGZyb20gdGhlIHBhcmVudCBpZnJhbWUncworICAgICAgICBzdHls
ZSwgYmVmb3JlIGFwcGx5aW5nIGFueSBvZiB0aGVzZSBwZXItZG9jdW1lbnQgc3R5bGVzLiAgVGhp
cyBtYXkgb3IgbWF5IG5vdCBiZSBjb3JyZWN0CisgICAgICAgIGRlcGVuZGluZyBvbiB3aGF0IGJl
aGF2aW9yIHdlIHdhbnQgZm9yIHJ0bC1vcmRlcmluZywgcGFnZS16b29tLCBsb2NhbGUsIGRlc2ln
biBtb2RlLCBldGMuCisgICAgICAgIEZvciBub3csIHdlIGNvbnRpbnVlIHRvIHRyZWF0IHRoZSBp
ZnJhbWUncyBkb2N1bWVudCBhcyBpbmRlcGVuZGVudCBpbiB0aGVzZSByZWdhcmRzLCBhbmQKKyAg
ICAgICAgdGhlIHNldHRpbmdzIG9uIHRoYXQgZG9jdW1lbnQgb3ZlcnJpZGUgdGhvc2UgaW5oZXJp
dGVkIGZyb20gdGhlIGlmcmFtZS4KKworICAgICAgICBBbHNvLCBpbnRpYWxseSB3aGVuIG1ha2lu
ZyB0aGlzIHdvcmssIEkgYWRkZWQgcmVkaXJlY3RzIGluIHJlY2FsY1N0eWxlIGFuZCBzY2hlZHVs
ZVN0eWxlUmVjYWxjCisgICAgICAgIGZyb20gdGhlIGNoaWxkIGRvY3VtZW50IHRvIHRoZSBwYXJl
bnQgZG9jdW1lbnQgaW4gdGhlIGNhc2Ugb2Ygc2VhbWxlc3MgKHNpbmNlIHRoZSBwYXJlbnQKKyAg
ICAgICAgZG9jdW1lbnQgZWZmZWN0aXZlbHkgbWFuYWdlcyB0aGUgc3R5bGUgcmVzb2x2ZSBhbmQg
bGF5b3V0IG9mIHRoZSBjaGlsZCBpbiBzZWFtbGVzcyBtb2RlKS4KKyAgICAgICAgSG93ZXZlciwg
SSB3YXMgbm90IGFibGUgdG8gZmluZCBhIHRlc3Qgd2hpY2ggZGVwZW5kZWQgb24gdGhpcyBjb2Rl
IGNoYW5nZSwgc28gaW4gdGhpcyBmaW5hbCBwYXRjaAorICAgICAgICBJIGhhdmUgcmVtb3ZlZCBi
b3RoIG9mIHRoZXNlIG1vZGlmaWNhdGlvbnMgYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBGSVhNRXMu
ICBCYXNlZCBvbiBkaXNjdXNzaW9ucworICAgICAgICB3aXRoIE9qYW4gYW5kIEphbWVzIFJvYmlu
c29uLCBJIGJlbGlldmUgYm90aCBvZiB0aG9zZSBjaGFuZ2VzIG1heSBldmVudHVhbGx5IGJlIHdh
bnRlZC4KKworICAgICAgICBUaGlzIGNoYW5nZSBiYXNpY2FsbHkgZG9lcyAzIHRoaW5nczoKKyAg
ICAgICAgMS4gIE1ha2VzIFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRG9jdW1lbnQgaW5oZXJpdCBm
cm9tIHRoZSBwYXJlbnQgaWZyYW1lLgorICAgICAgICAyLiAgTWFrZXMgYW55IHJlY2FsY1N0eWxl
IGNhbGxzIG9uIHRoZSBpZnJhbWUgcHJvcG9nYXRlIGRvd24gaW50byB0aGUgY2hpbGQgZG9jdW1l
bnQgKEhUTUxJRnJhbWVFbGVtZW50OjpkaWRSZWNhbGNTdHlsZSkuCisgICAgICAgIDMuICBNYWtl
cyBEb2N1bWVudDo6cmVjYWxjU3R5bGUgYXdhcmUgb2YgdGhlIGZhY3QgdGhhdCB0aGUgRG9jdW1l
bnQncyBzdHlsZSAqY2FuKiBjaGFuZ2UKKyAgICAgICAgICAgIGZvciByZWFzb25zIG90aGVyIHRo
YW4gcmVjYWxjU3R5bGUoRm9yY2UpLgorCisgICAgICAgIEknbSBvcGVuIHRvIG1vcmUgdGVzdGlu
ZyBzdWdnZXN0aW9ucywgaWYgcmV2aWV3ZXJzIGhhdmUgc2V0dGluZ3Mgb24gdGhlIERvY3VtZW50
J3Mgc3R5bGUKKyAgICAgICAgdGhhdCB5b3Ugd2FudCB0byBtYWtlIHN1cmUgd2UgaW5oZXJpdCBm
cm9tIHRoZSBwYXJlbnQgaWZyYW1lLCBvciBkb24ndCBpbmhlcml0LCBldGMuCisgICAgICAgIEkg
dmlldyB0aGlzIGFzIGEgY29tcGxldGUgc29sdXRpb24gdG8gdGhpcyBhc3BlY3Qgb2YgdGhlIGN1
cnJlbnQgPGlmcmFtZSBzZWFtbGVzcz4gc3BlYywKKyAgICAgICAgYnV0IGxpa2VseSBub3QgdGhl
IGxhc3QgY29kZSB3ZSB3aWxsIHdyaXRlIGZvciB0aGlzIGFzcGVjdCBvZiB0aGUgc2VhbWxlc3Mg
ZmVhdHVyZS4gOikKKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9mcmFtZXMvc2VhbWxlc3NzL3Nl
YW1sZXNzLWNzcy1jYXNjYWRlLmh0bWwgYW5kIHNlYW1sZXNzLWRlc2lnbk1vZGUuaHRtbAorCisg
ICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
ZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjaGVkdWxlU3R5bGVSZWNh
bGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAg
KiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJh
bWVFbGVtZW50OjpIVE1MSUZyYW1lRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSUZy
YW1lRWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAgICAoSFRNTElGcmFtZUVsZW1lbnQp
OgorCiAyMDEyLTA1LTA5ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHNvbWUgaXNTVkdGb28gbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDNjMmI2M2FlYzRkNDJiYjY0NGNjYTM1NjMxYjMzZDY3ZThlMTQyNTYuLjI0YTE4MGYx
MDg4ODE0YzE4YjcyOTJkNDQ1YWI1YjJhMDUwMDgwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTE1MjcsMTMgKzE1MjcsMjggQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIENT
U0YKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKIAorICAgIC8vIEhU
TUw1IHN0YXRlcyB0aGF0IHNlYW1sZXNzIGlmcmFtZXMgc2hvdWxkIHJlcGxhY2UgZGVmYXVsdCBD
U1MgdmFsdWVzCisgICAgLy8gd2l0aCB2YWx1ZXMgaW5oZXJpdGVkIGZyb20gdGhlIGNvbnRhaW5p
bmcgaWZyYW1lIGVsZW1lbnQuIEhvd2V2ZXIsCisgICAgLy8gc29tZSB2YWx1ZXMgKHN1Y2ggYXMg
dGhlIGNhc2Ugb2YgZGVzaWduTW9kZSA9ICJvbiIpIHN0aWxsIG5lZWQgdG8KKyAgICAvLyBiZSBz
ZXQgYnkgdGhpcyAiZG9jdW1lbnQgc3R5bGUiLgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gZG9j
dW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBib29sIHNlYW1sZXNzV2l0
aFBhcmVudCA9IGRvY3VtZW50LT5zaG91bGREaXNwbGF5U2VhbWxlc3NseVdpdGhQYXJlbnQoKTsK
KyAgICBpZiAoc2VhbWxlc3NXaXRoUGFyZW50KSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBpZnJh
bWVTdHlsZSA9IGRvY3VtZW50LT5zZWFtbGVzc1BhcmVudElGcmFtZSgpLT5yZW5kZXJTdHlsZSgp
OworICAgICAgICBpZiAoaWZyYW1lU3R5bGUpCisgICAgICAgICAgICBkb2N1bWVudFN0eWxlLT5p
bmhlcml0RnJvbShpZnJhbWVTdHlsZSk7CisgICAgfQorCisgICAgLy8gRklYTUU6IEl0J3Mgbm90
IGNsZWFyIHdoaWNoIHZhbHVlcyBiZWxvdyB3ZSB3YW50IHRvIG92ZXJyaWRlIGluIHRoZSBzZWFt
bGVzcyBjYXNlIQogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwotICAgIGRv
Y3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LT52aXN1YWxseU9yZGVyZWQoKSA/
IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVyKTsKLSAgICBkb2N1bWVudFN0eWxlLT5zZXRab29t
KGZyYW1lICYmICFkb2N1bWVudC0+cHJpbnRpbmcoKSA/IGZyYW1lLT5wYWdlWm9vbUZhY3Rvcigp
IDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8g
ZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSA6IDEpOworICAgIGlmICghc2VhbWxlc3NXaXRoUGFy
ZW50KSB7CisgICAgICAgIGRvY3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LT52
aXN1YWxseU9yZGVyZWQoKSA/IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVyKTsKKyAgICAgICAg
ZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSAmJiAhZG9jdW1lbnQtPnByaW50aW5nKCkgPyBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOworICAgICAgICBkb2N1bWVudFN0eWxlLT5zZXRQ
YWdlU2NhbGVUcmFuc2Zvcm0oZnJhbWUgPyBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpIDogMSk7
CisgICAgICAgIGRvY3VtZW50U3R5bGUtPnNldExvY2FsZShkb2N1bWVudC0+Y29udGVudExhbmd1
YWdlKCkpOworICAgIH0KKyAgICAvLyBGSVhNRTogVGhpcyBvdmVycmlkZXMgYW55IC13ZWJraXQt
dXNlci1tb2RpZnkgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBpZnJhbWUuCiAgICAgZG9jdW1l
bnRTdHlsZS0+c2V0VXNlck1vZGlmeShkb2N1bWVudC0+aW5EZXNpZ25Nb2RlKCkgPyBSRUFEX1dS
SVRFIDogUkVBRF9PTkxZKTsKLSAgICBkb2N1bWVudFN0eWxlLT5zZXRMb2NhbGUoZG9jdW1lbnQt
PmNvbnRlbnRMYW5ndWFnZSgpKTsKIAogICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVu
dC0+ZG9jdW1lbnRFbGVtZW50KCk7CiAgICAgUmVuZGVyT2JqZWN0KiBkb2NFbGVtZW50UmVuZGVy
ZXIgPSBkb2NFbGVtZW50ID8gZG9jRWxlbWVudC0+cmVuZGVyZXIoKSA6IDA7CkBAIC0xNTYyLDYg
KzE1NzcsMTAgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVG
b3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIENTU0YKICAgICAgICAgfQogICAgIH0KIAor
ICAgIC8vIFNlYW1sZXNzIGlmcmFtZXMgd2FudCB0byBpbmhlcml0IHRoZWlyIGZvbnQgZnJvbSB0
aGVpciBwYXJlbnQgaWZyYW1lLCBzbyBlYXJseSByZXR1cm4gYmVmb3JlIHNldHRpbmcgdGhlIGZv
bnQuCisgICAgaWYgKHNlYW1sZXNzV2l0aFBhcmVudCkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50
U3R5bGUucmVsZWFzZSgpOworCiAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsK
ICAgICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQoZG9jdW1lbnQtPnByaW50aW5n
KCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTY3JpcHQobG9jYWxlVG9TY3JpcHRDb2RlRm9y
Rm9udFNlbGVjdGlvbihkb2N1bWVudFN0eWxlLT5sb2NhbGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggMzUwYWNlODZjMDA2OTU0YTNiOGMxYjFjYzdiNWVhMzc5ODgxZWU4Mi4uYzFl
Y2MwZmIxMTg0NTY0NThkNDA0ZTA2ZjIwMjI1MThlYzEzMTUyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0xNjQ1LDYgKzE2NDUsOSBAQCB2b2lkIERvY3VtZW50OjpzY2hlZHVsZUZvcmNl
ZFN0eWxlUmVjYWxjKCkKIAogdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVTdHlsZVJlY2FsYygpCiB7
CisgICAgLy8gRklYTUU6IEluIHRoZSBzZWFtbGVzcyBjYXNlLCB3ZSBzaG91bGQgbGlrZWx5IHNj
aGVkdWxlIGEgc3R5bGUgcmVjYWxjCisgICAgLy8gb24gb3VyIHBhcmVudCBhbmQgaW5zdGVhZCBy
ZXR1cm4gZWFybHkgaGVyZS4KKwogICAgIGlmIChtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUo
KSB8fCBpblBhZ2VDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE2OTgsNyArMTcwMSwx
MCBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
CiAgICAgaWYgKG1faW5TdHlsZVJlY2FsYykKICAgICAgICAgcmV0dXJuOyAvLyBHdWFyZCBhZ2Fp
bnN0IHJlLWVudHJhbmN5LiAtZHdoCi0gICAgCisKKyAgICAvLyBGSVhNRTogSW4gdGhlIHNlYW1s
ZXNzIGNhc2UsIHdlIG1heSB3aXNoIHRvIGV4aXQgZWFybHkgaW4gdGhlIGNoaWxkIGFmdGVyIHJl
Y2FsY2luZyBvdXIgcGFyZW50IGNoYWluLgorICAgIC8vIEkgaGF2ZSBub3QgeWV0IGZvdW5kIGEg
dGVzdCB3aGljaCByZXF1aXJlcyBzdWNoLgorCiAgICAgaWYgKG1faGFzRGlydHlTdHlsZVJlc29s
dmVyKQogICAgICAgICB1cGRhdGVBY3RpdmVTdHlsZXNoZWV0cyhSZWNhbGNTdHlsZUltbWVkaWF0
ZWx5KTsKIApAQCAtMTcyNCw3ICsxNzMwLDggQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUo
U3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIGlmIChtX3BlbmRpbmdTdHlsZVJlY2FsY1Nob3VsZEZv
cmNlKQogICAgICAgICBjaGFuZ2UgPSBGb3JjZTsKIAotICAgIGlmIChjaGFuZ2UgPT0gRm9yY2Up
IHsKKyAgICAvLyBSZWNhbGN1bGF0aW5nIHRoZSByb290IHN0eWxlIChvbiB0aGUgZG9jdW1lbnQp
IGlzIG5vdCBuZWVkZWQgaW4gdGhlIGNvbW1vbiBjYXNlLgorICAgIGlmICgoY2hhbmdlID09IEZv
cmNlKSB8fCAoc2hvdWxkRGlzcGxheVNlYW1sZXNzbHlXaXRoUGFyZW50KCkgJiYgKGNoYW5nZSA+
PSBJbmhlcml0KSkpIHsKICAgICAgICAgLy8gc3R5bGUgc2VsZWN0b3IgbWF5IHNldCB0aGlzIGFn
YWluIGR1cmluZyByZWNhbGMKICAgICAgICAgbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxl
ID0gZmFsc2U7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmNwcAppbmRleCAwNDUyOWM4M2VkMTcyOGNkNWM4NzdkYzY3MmZjZGFmYmU5MDFiN2IyLi5jN2Ux
NTdlNzM0MGQxY2I2MjkwYTc3MmY5MjZkMTQzMWNjN2JhNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNDEsNiArNDEsNyBAQCBpbmxpbmUgSFRNTElG
cmFtZUVsZW1lbnQ6OkhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZQogICAgIDogSFRNTEZyYW1lRWxlbWVudEJhc2UodGFnTmFtZSwgZG9jdW1lbnQp
CiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaWZyYW1lVGFnKSk7CisgICAgc2V0SGFzQ3VzdG9t
V2lsbE9yRGlkUmVjYWxjU3R5bGUoKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MSUZyYW1lRWxlbWVu
dD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCkBAIC0xMjAsNiArMTIxLDE1IEBAIGJvb2wgSFRNTElGcmFt
ZUVsZW1lbnQ6OnNob3VsZERpc3BsYXlTZWFtbGVzc2x5KCkgY29uc3QKICAgICByZXR1cm4gY29u
dGVudERvY3VtZW50KCkgJiYgY29udGVudERvY3VtZW50KCktPm1heURpc3BsYXlTZWFtbGVzc1dp
dGhQYXJlbnQoKSAmJiBoYXNBdHRyaWJ1dGUoc2VhbWxlc3NBdHRyKTsKIH0KIAordm9pZCBIVE1M
SUZyYW1lRWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2Ugc3R5bGVDaGFuZ2UpCit7
CisgICAgaWYgKCFzaG91bGREaXNwbGF5U2VhbWxlc3NseSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgRG9jdW1lbnQqIGNoaWxkRG9jdW1lbnQgPSBjb250ZW50RG9jdW1lbnQoKTsKKyAgICBpZiAo
c3R5bGVDaGFuZ2UgPj0gSW5oZXJpdCB8fCBjaGlsZERvY3VtZW50LT5jaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKSB8fCBjaGlsZERvY3VtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpCisgICAgICAgIGNv
bnRlbnREb2N1bWVudCgpLT5yZWNhbGNTdHlsZShzdHlsZUNoYW5nZSk7Cit9CisKICNpZiBFTkFC
TEUoTUlDUk9EQVRBKQogU3RyaW5nIEhUTUxJRnJhbWVFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCA1ZDU1
MzU5YmE5N2NkZjg1YTk1MDlhNTdkZWUxYjI2MDQxODM4ZDNiLi5mZjg4OWIwNjA0ZWUzOWJjZjE5
ZDY3MjU0OGNjZWE5MTUzODc2ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCkBAIC00MywxMCArNDMsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oTm9kZSopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShOb2RlKikgT1ZFUlJJREU7Ci0gICAgCisKICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYp
OwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7Ci0gICAgICAgCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjYWxjU3R5
bGUoU3R5bGVDaGFuZ2UpIE9WRVJSSURFOworCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2
aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDIyMzkzYmVmYjYzNDRlYWI2NTM3NDE2Yjg1YTdiYzM0MjIzMjQwMTUu
LjcyYjg4MmY5MDM2ZDY5YTc2MGQ1ZmYxMGJkOTI1N2ZlZTY3NzIyMDUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0wNS0xMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgTWFrZSBJRlJBTUVfU0VBTUxFU1MgY2hpbGQgZG9jdW1lbnRzIGluaGVyaXQgc3R5bGVz
IGZyb20gdGhlaXIgcGFyZW50IGlmcmFtZSBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE9q
YW4gVmFmYWkuCisKKyAgICAgICAgVGhpcyBzaW5nbGUgcGFzcyBpcyBkZWNlcHRpdmUuICBzZWFt
bGVzcy1kZXNpZ25Nb2RlIGV4aXN0cworICAgICAgICB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkbyBu
b3QgcmVncmVzcyBhcHBsaWNhdGlvbiBvZiBEb2N1bWVudC1sZXZlbAorICAgICAgICBzdHlsZXMg
aW4gdGhlIGNoaWxkIGRvY3VtZW50LgorCisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mv
c2VhbWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA1LTA5ICBaYW4gRG9i
ZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gTWFueSB0ZXN0
cyByZXZlYWxlZCBhcyBwYXNzaW5nIGFmdGVyIG1vdmluZyBmcm9tIFNraXBwZWQgdG8gdGVzdF9l
eHBlY3RhdGlvbnMudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFt
bGVzcy9zZWFtbGVzcy1jc3MtY2FzY2FkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1jc3MtY2FzY2FkZS1leHBlY3RlZC50eHQKaW5kZXgg
ZGFmNzY5YWIxNDNjYTNhMTQwN2FkNDM5YTgxOTdkZWQ3ZGU0MmE4Yy4uMWZjZTQwNjQ0ZWQ2NWUw
MmI5MWI4NjA5Yjk3MGNkOTI4NmQ1MjgxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtY3NzLWNhc2NhZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWNzcy1jYXNjYWRlLWV4cGVj
dGVkLnR4dApAQCAtMiw3ICsyLDcgQEAgVGVzdCB0aGF0IHNlYW1sZXNzIGlmcmFtZXMgaW5oZXJp
dCBzdHlsZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1lLCBhbmQgZHltYW5pY2EKIFBBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUob25lKS5jb2xvciBpcyAicmdiKDI1NSwgMjU1LCAwKSIKIFBB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodHdvKS5jb2xvciBpcyAicmdiKDEyOCwgMCwgMTI4
KSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhyZWUpLmNvbG9yIGlzICJyZ2IoMjU1
LCAyNTUsIDI1NSkiCi1GQUlMIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KS5j
b2xvciBzaG91bGQgYmUgcmdiKDI1NSwgMTY1LCAwKS4gV2FzIHJnYigwLCAwLCAwKS4KLUZBSUwg
d2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpLmNvbG9yIHNob3VsZCBiZSByZ2Io
MSwgMiwgMykuIFdhcyByZ2IoMCwgMCwgMCkuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHJvb3RFbGVtZW50KS5jb2xvciBpcyAicmdiKDI1NSwgMTY1LCAwKSIKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUocm9vdEVsZW1lbnQpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCiBQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG9uZSkuY29sb3IgaXMgInJnYigzLCAyLCAxKSIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5o
ZXJpdGVkLWRvY3VtZW50LXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NlYW1sZXNzL3NlYW1sZXNzLWluaGVyaXRlZC1kb2N1bWVudC1zdHlsZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmRkY2I4NzU3NWU3NDMyNDMxOWU1MmIzYmZjZWRmNTBmZmY0YTNmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1s
ZXNzLWluaGVyaXRlZC1kb2N1bWVudC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBA
CitUZXN0IHRoYXQgc2VhbWxlc3MgaWZyYW1lcyBpbmhlcml0IHN0eWxlcyBmcm9tIHRoZWlyIHBh
cmVudCBpZnJhbWUgaW5zdGVhZCBvZiB1c2luZyBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3Vt
ZW50IGRlZmF1bHRzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudClb
Jy13ZWJraXQtcnRsLW9yZGVyaW5nJ10gaXMgInZpc3VhbCIKK0ZBSUwgd2luZG93LmdldENvbXB1
dGVkU3R5bGUocm9vdEVsZW1lbnQpWyctd2Via2l0LXVzZXItbW9kaWZ5J10gc2hvdWxkIGJlIHJl
YWQtd3JpdGUuIFdhcyByZWFkLW9ubHkuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJv
b3RFbGVtZW50KVsnLXdlYmtpdC1sb2NhbGUnXSBpcyAiZW5fVVMiCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsnd3JpdGluZy1tb2RlJ10gaXMgImxyIgorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudClbJ2RpcmVjdGlvbiddIGlzICJydGwi
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsnZm9udCddIGlzICJu
b3JtYWwgbm9ybWFsIG5vcm1hbCAxOHB4L25vcm1hbCBBaGVtIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1pbmhlcml0ZWQtZG9jdW1lbnQt
c3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWlu
aGVyaXRlZC1kb2N1bWVudC1zdHlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZmI1MDg0NzU3Zjk3MTVk
YzViNmI3NjZhNzhkNjZhM2RmNmY2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1pbmhlcml0ZWQtZG9jdW1lbnQtc3R5bGUuaHRt
bApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraWZyYW1lIHsK
KyAgICAtd2Via2l0LXJ0bC1vcmRlcmluZzogdmlzdWFsOworICAgIC13ZWJraXQtdXNlci1tb2Rp
Znk6IHJlYWQtd3JpdGU7CisgICAgLXdlYmtpdC1sb2NhbGU6ICdlbl9VUyc7CisgICAgd3JpdGlu
Zy1tb2RlOiBscjsKKyAgICBkaXJlY3Rpb246IHJ0bDsKKyAgICBmb250OiBub3JtYWwgbm9ybWFs
IG5vcm1hbCAxOHB4L25vcm1hbCBBaGVtOworfQorPC9zdHlsZT4KKzxpZnJhbWUgaWQ9ImlmcmFt
ZSIgc2VhbWxlc3Mgc3JjZG9jPSIiPjwvaWZyYW1lPgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHRo
YXQgc2VhbWxlc3MgaWZyYW1lcyBpbmhlcml0IHN0eWxlcyBmcm9tIHRoZWlyIHBhcmVudCBpZnJh
bWUgaW5zdGVhZCBvZiB1c2luZyBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50IGRlZmF1
bHRzLiIpCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgIHdpbmRvdy5pZnJhbWUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7CisgICAgd2luZG93LnJvb3RFbGVt
ZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudClbJy13
ZWJraXQtcnRsLW9yZGVyaW5nJ10iLCAidmlzdWFsIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudClbJy13ZWJraXQtdXNlci1t
b2RpZnknXSIsICJyZWFkLXdyaXRlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShyb290RWxlbWVudClbJy13ZWJraXQtbG9jYWxlJ10iLCAiZW5f
VVMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHJvb3RFbGVtZW50KVsnd3JpdGluZy1tb2RlJ10iLCAibHIiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3RFbGVtZW50KVsnZGlyZWN0aW9u
J10iLCAicnRsIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShyb290RWxlbWVudClbJ2ZvbnQnXSIsICJub3JtYWwgbm9ybWFsIG5vcm1hbCAxOHB4
L25vcm1hbCBBaGVtIik7Cit9Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>