<?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>100865</bug_id>
          
          <creation_ts>2012-10-31 09:42:43 -0700</creation_ts>
          <short_desc>Warn in the inspector console when using dpi and dpcm units outside of media=&quot;print&quot;</short_desc>
          <delta_ts>2012-11-14 10:51:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85262</blocked>
    
    <blocked>99077</blocked>
    
    <blocked>100861</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Mellor">johnme</reporter>
          <assigned_to name="Alexander Shalamov">alexander.shalamov</assigned_to>
          <cc>abarth</cc>
    
    <cc>alexander.shalamov</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>davidbarr</cc>
    
    <cc>eoconnor</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>glenn</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>peter</cc>
    
    <cc>rbyers</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tabatkins</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755383</commentid>
    <comment_count>0</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-10-31 09:42:43 -0700</bug_when>
    <thetext>The dpi unit as specified[2] is incredibly confusing.

The iPhone 3G and iPhone 4 are widely known to have 163 ppi and 326 ppi screens respectively. So people are going to write media queries like:

@media (min-resolution: 300dpi) { /* 2x graphics */ }

And this is going to fail. Why? Because the spec[1] defined dpi and dpcm in terms of CSS inches and CSS cm, which are a fixed number of px, rather than based on the physical units. Hence the iPhone 3G and iPhone 4 are actually 96 CSS dpi and 192 CSS dpi respectively[1]!

While authors have just about gotten used to CSS&apos;s fixed-size inches and cm, and adapted by simply avoiding all use of those units, it will take a long time for them to realise that dpi and dpcm are similarly broken. This is especially dangerous since the effects of resolution media queries are usually fairly subtle - e.g. images gets slightly sharper/blurrier or more bandwidth-intensive when they are set wrongly, but it&apos;s rare to get elements appearing the wrong size or in the wrong place.

To prevent authors shooting themselves in the foot with this counter-intuitive &quot;feature&quot;, we should drop support for the dpi and dpcm units before shipping resolution mq/image-resolution, and only support dppx (which does behave sensibly across different resolution devices).

[1]: (in case it&apos;s not clear why that is, it&apos;s because iPhone 3G and iPhone 4 are 1 dppx and 2 dppx respectively, and the spec[2] hardcodes 1 dppx == 96 CSS dpi, so you have to multiply those values by 96, even though on phones 1 dppx usually means 160 physical ppi, since phones are held closer to the user&apos;s eyes, so you need more physical pixels per inch, and for the same reason the CSS px unit represents a smaller physical length on phones than on desktops[3])

[2]: http://dev.w3.org/csswg/css3-values/#resolution

[3]: http://dev.w3.org/csswg/css3-values/#reference-pixel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755435</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-31 10:26:35 -0700</bug_when>
    <thetext>You should bring this up on the www-style mailing list.  We should argue to change the spec if we think it&apos;s not going to be helpful/useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755440</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-31 10:32:03 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; You should bring this up on the www-style mailing list.  We should argue to change the spec if we think it&apos;s not going to be helpful/useful.

I agree with that. Also I would like to point out that dpi is a lot more useful for printers etc than using dppx.

Another option would be to warn the user then using dpi etc which are not a factor of 96.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755450</commentid>
    <comment_count>3</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-10-31 10:41:11 -0700</bug_when>
    <thetext>(In reply to comment #2) 
&gt; Another option would be to warn the user then using dpi etc which are not a factor of 96.

I don&apos;t think that&apos;s an option - devices can and will have non-integer device scale factors.  Android already uses non-integer device pixel ratios via fixed layout, and we&apos;ll probably need 1.4 and 1.8 for windows metro eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755451</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-31 10:43:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2) 
&gt; &gt; Another option would be to warn the user then using dpi etc which are not a factor of 96.
&gt; 
&gt; I don&apos;t think that&apos;s an option - devices can and will have non-integer device scale factors.  Android already uses non-integer device pixel ratios via fixed layout, and we&apos;ll probably need 1.4 and 1.8 for windows metro eventually.

Yeah you are totally right about that, but we can warn about avoid using dpi or dpcm together with &apos;screen&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756052</commentid>
    <comment_count>5</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2012-11-01 03:46:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2) 
&gt; &gt; &gt; Another option would be to warn the user then using dpi etc which are not a factor of 96.
&gt; &gt; 
&gt; &gt; I don&apos;t think that&apos;s an option - devices can and will have non-integer device scale factors.  Android already uses non-integer device pixel ratios via fixed layout, and we&apos;ll probably need 1.4 and 1.8 for windows metro eventually.
&gt; 
&gt; Yeah you are totally right about that, but we can warn about avoid using dpi or dpcm together with &apos;screen&apos;.

I don&apos;t understand. Rick pointed out that android devices - which match the &apos;screen&apos; media type - have and will continue to have non-integer ratios.

Or are you just arguing that, outside of printing, people should simply never use dpi/dpcm, and just use dppx, with non-integer values when appropriate?

I have an example in the Images 4 spec (&lt;http://dev.w3.org/csswg/css4-images/#image-set-notation&gt; scroll down to example 9) of using both x and dpi in a single image-set() value, where the dpi one is intended for printing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756053</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-01 03:50:31 -0700</bug_when>
    <thetext>&gt; Or are you just arguing that, outside of printing, people should simply never use dpi/dpcm, and just use dppx, with non-integer values when appropriate?

John argues that the dpi/dpcm values have a good chance for being used incorrectly by web authors. So I was suggesting that we could warn in the Web Inspector console, like we do for viewport meta width = 320, at least when used in combination with &apos;screen&apos;.

I don&apos;t want to remove the support as it is quite useful for printing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756060</commentid>
    <comment_count>7</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-11-01 04:01:38 -0700</bug_when>
    <thetext>Printers are interesting. They could use dppx (300dpi would be 3.125 dppx), but I appreciate that it&apos;s more clumsy.

Warning when dpi/dpcm are used in combination with screen would definitely be a good start. I worry that a lot of sites might use them but not specify screen, so would never see the warning.

Could we warn whenever they are used outside of media=&quot;print&quot;? This would show a warning for Tab&apos;s mixed units example (which combines 1x, 2x and 600dpi in a non-print stylesheet). But on some level that warning seems valid, as that usage is only safe because no devices yet have 600 ppi screens; if the example used 300dpi instead of 600dpi it would behave unpredictably, as the 300dpi would fail to match iPhone 4 etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756062</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-01 04:03:38 -0700</bug_when>
    <thetext>&gt; Could we warn whenever they are used outside of media=&quot;print&quot;? This would show a warning for Tab&apos;s mixed units example (which combines 1x, 2x and 600dpi in a non-print stylesheet). But on some level that warning seems valid, as that usage is only safe because no devices yet have 600 ppi screens; if the example used 300dpi instead of 600dpi it would behave unpredictably, as the 300dpi would fail to match iPhone 4 etc.

I am all for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756085</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-01 04:27:25 -0700</bug_when>
    <thetext>I could take a look at this bug. I think I know good place where we could throw error to inspector console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760495</commentid>
    <comment_count>10</comment_count>
      <attachid>172748</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-07 03:02:50 -0800</bug_when>
    <thetext>Created attachment 172748
Patch 1

- patch for initial review
- Added function that prints warning to inspector console
- Warning is printed when:
  * StyleSheet is parsed
  * HTMLStyleElement is updated or created
  * Media Query listener interface is used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760672</commentid>
    <comment_count>11</comment_count>
      <attachid>172748</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-11-07 07:14:53 -0800</bug_when>
    <thetext>Comment on attachment 172748
Patch 1

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

Thanks for the patch! Some quick comments:

&gt; Source/WebCore/css/MediaList.cpp:306
&gt; +static void addWarningMessageToConsole(Document* document, const String&amp; serializedExpression, const CSSPrimitiveValue* value)

Perhaps rename this to addResolutionWarningMessageToConsole to clarify that it has a specialized purpose?

&gt; Source/WebCore/css/MediaList.cpp:308
&gt; +    DEFINE_STATIC_LOCAL(String, mediaQueryMessage, (ASCIILiteral(&quot;Consider using &apos;dppx&apos; units for &apos;screen&apos; media type, as the &apos;%replacementUnits%&apos; units are in CSS units and not actual device units. Media query expression: &quot;)));

Two slightly confusing things about this message:
1. It mentions &apos;screen&apos; media type, even if you didn&apos;t explicitly target screen (e.g. in CSS rules for all media types).
2. It&apos;s not obvious what the implications are of dpi being in CSS units.

How about the following text instead:

&quot;Consider using &apos;dppx&apos; units, as &apos;dpi&apos; is dots-per-CSS-in, not dots-per-physical-inch, so will not match physical pixel density of mobile device screens. Media query expression: &quot;
and
&quot;Consider using &apos;dppx&apos; units, as &apos;dpcm&apos; is dots-per-CSS-cm, not dots-per-physical-cm, so will not match physical pixel density of mobile device screens. Media query expression: &quot;

&gt; Source/WebCore/css/MediaList.cpp:341
&gt; +        if (!query-&gt;ignored() &amp;&amp; (equalIgnoringCase(mediaType, &quot;screen&quot;) || equalIgnoringCase(mediaType, &quot;all&quot;) || mediaType.isEmpty())) {

What about &quot;handheld&quot;, &quot;projection&quot; or &quot;tv&quot; media types? I expect would using dpi in such media types to suffer from the same issues...

&gt; Source/WebCore/css/MediaList.h:126
&gt; +// FIXME: should be removed when dpi / dpcm values would be deprecated for resolution media feature.

I&apos;m not quite sure what this FIXME means?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760676</commentid>
    <comment_count>12</comment_count>
      <attachid>172748</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 07:21:01 -0800</bug_when>
    <thetext>Comment on attachment 172748
Patch 1

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

&gt;&gt; Source/WebCore/css/MediaList.cpp:308
&gt;&gt; +    DEFINE_STATIC_LOCAL(String, mediaQueryMessage, (ASCIILiteral(&quot;Consider using &apos;dppx&apos; units for &apos;screen&apos; media type, as the &apos;%replacementUnits%&apos; units are in CSS units and not actual device units. Media query expression: &quot;)));
&gt; 
&gt; Two slightly confusing things about this message:
&gt; 1. It mentions &apos;screen&apos; media type, even if you didn&apos;t explicitly target screen (e.g. in CSS rules for all media types).
&gt; 2. It&apos;s not obvious what the implications are of dpi being in CSS units.
&gt; 
&gt; How about the following text instead:
&gt; 
&gt; &quot;Consider using &apos;dppx&apos; units, as &apos;dpi&apos; is dots-per-CSS-in, not dots-per-physical-inch, so will not match physical pixel density of mobile device screens. Media query expression: &quot;
&gt; and
&gt; &quot;Consider using &apos;dppx&apos; units, as &apos;dpcm&apos; is dots-per-CSS-cm, not dots-per-physical-cm, so will not match physical pixel density of mobile device screens. Media query expression: &quot;

s/dots-per-CSS-in/dots-per-CSS-inch/ :-)
I will change mobile to &quot;all&quot; (mac book pro&apos;s have the same issue)

&gt;&gt; Source/WebCore/css/MediaList.cpp:341
&gt;&gt; +        if (!query-&gt;ignored() &amp;&amp; (equalIgnoringCase(mediaType, &quot;screen&quot;) || equalIgnoringCase(mediaType, &quot;all&quot;) || mediaType.isEmpty())) {
&gt; 
&gt; What about &quot;handheld&quot;, &quot;projection&quot; or &quot;tv&quot; media types? I expect would using dpi in such media types to suffer from the same issues...

I would do it the other way around, just not complain when using &apos;print&apos;

&gt;&gt; Source/WebCore/css/MediaList.h:126
&gt;&gt; +// FIXME: should be removed when dpi / dpcm values would be deprecated for resolution media feature.
&gt; 
&gt; I&apos;m not quite sure what this FIXME means?

Just remove it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760695</commentid>
    <comment_count>13</comment_count>
      <attachid>172748</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-11-07 07:50:43 -0800</bug_when>
    <thetext>Comment on attachment 172748
Patch 1

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

&gt;&gt;&gt; Source/WebCore/css/MediaList.cpp:308
&gt;&gt;&gt; +    DEFINE_STATIC_LOCAL(String, mediaQueryMessage, (ASCIILiteral(&quot;Consider using &apos;dppx&apos; units for &apos;screen&apos; media type, as the &apos;%replacementUnits%&apos; units are in CSS units and not actual device units. Media query expression: &quot;)));
&gt;&gt; 
&gt;&gt; Two slightly confusing things about this message:
&gt;&gt; 1. It mentions &apos;screen&apos; media type, even if you didn&apos;t explicitly target screen (e.g. in CSS rules for all media types).
&gt;&gt; 2. It&apos;s not obvious what the implications are of dpi being in CSS units.
&gt;&gt; 
&gt;&gt; How about the following text instead:
&gt;&gt; 
&gt;&gt; &quot;Consider using &apos;dppx&apos; units, as &apos;dpi&apos; is dots-per-CSS-in, not dots-per-physical-inch, so will not match physical pixel density of mobile device screens. Media query expression: &quot;
&gt;&gt; and
&gt;&gt; &quot;Consider using &apos;dppx&apos; units, as &apos;dpcm&apos; is dots-per-CSS-cm, not dots-per-physical-cm, so will not match physical pixel density of mobile device screens. Media query expression: &quot;
&gt; 
&gt; s/dots-per-CSS-in/dots-per-CSS-inch/ :-)
&gt; I will change mobile to &quot;all&quot; (mac book pro&apos;s have the same issue)

&gt; s/dots-per-CSS-in/dots-per-CSS-inch/ :-)

&quot;CSS-in&quot; was meant emphasize that it was the CSS unit, but agree that it&apos;s probably clearer to just put &quot;CSS-inch&quot;.

&gt; I will change mobile to &quot;all&quot; (mac book pro&apos;s have the same issue)

Good point. How about:

&quot;Consider using &apos;dppx&apos; units instead of &apos;dpi&apos;, as in CSS &apos;dpi&apos; means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual dpi of a screen. In media query expression: &quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760701</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 07:55:18 -0800</bug_when>
    <thetext>Sounds good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761427</commentid>
    <comment_count>15</comment_count>
      <attachid>172947</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-08 00:36:48 -0800</bug_when>
    <thetext>Created attachment 172947
Patch 2

- rebased to master
- removed FIXME
- modified warning message according to review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761447</commentid>
    <comment_count>16</comment_count>
      <attachid>172947</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 01:05:04 -0800</bug_when>
    <thetext>Comment on attachment 172947
Patch 2

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

&gt; Source/WebCore/css/MediaList.cpp:306
&gt; +static void addWarningMessageToConsole(Document* document, const String&amp; serializedExpression, const CSSPrimitiveValue* value)

addResolutionWarningMessageToConsole... it is not just any warning

&gt; Source/WebCore/css/MediaList.cpp:316
&gt; +
&gt; +    String message;
&gt; +    if (value-&gt;isDotsPerInch())
&gt; +        message = String(mediaQueryMessage).replace(&quot;%replacementUnits%&quot;, mediaValueDPI).replace(&quot;%lengthUnit%&quot;, lengthUnitInch);

Why no assert for calling this method when it shouldnt warn?

&gt; Source/WebCore/css/MediaList.cpp:329
&gt; +void reportMediaQueryWarning(Document* document, const MediaQuerySet* mediaQuerySet)

IfNeeded ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761488</commentid>
    <comment_count>17</comment_count>
      <attachid>172963</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-08 01:51:44 -0800</bug_when>
    <thetext>Created attachment 172963
Patch 3

- reportMediaQueryWarning =&gt; reportMediaQueryWarningIfNeeded
- addWarningMessageToConsole =&gt; addResolutionWarningMessageToConsole
- add asserts for null document, null css value or css value that is not dpcm / dpi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761513</commentid>
    <comment_count>18</comment_count>
      <attachid>172963</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-11-08 02:35:59 -0800</bug_when>
    <thetext>Comment on attachment 172963
Patch 3

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

&gt; Source/WebCore/css/MediaList.cpp:349
&gt; +        if (!query-&gt;ignored() &amp;&amp; (equalIgnoringCase(mediaType, &quot;screen&quot;) || equalIgnoringCase(mediaType, &quot;all&quot;) || mediaType.isEmpty())) {

This patch doesn&apos;t seem to address these two comments:

kenneth wrote:
&gt; johnme wrote:
&gt; &gt; What about &quot;handheld&quot;, &quot;projection&quot; or &quot;tv&quot; media types? I expect would using dpi in such media types to suffer from the same issues...
&gt; I would do it the other way around, just not complain when using &apos;print&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761547</commentid>
    <comment_count>19</comment_count>
      <attachid>172979</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-08 03:06:46 -0800</bug_when>
    <thetext>Created attachment 172979
Patch 4

-        Reviewed by NOBODY (OOPS!).
+        Reviewed by Kenneth Rohde Christiansen.

-        if (!query-&gt;ignored() &amp;&amp; (equalIgnoringCase(mediaType, &quot;screen&quot;) || equalIgnoringCase(mediaType, &quot;all&quot;) || mediaType.isEmpty())) {
+        if (!query-&gt;ignored() &amp;&amp; !equalIgnoringCase(mediaType, &quot;print&quot;)) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761676</commentid>
    <comment_count>20</comment_count>
      <attachid>172979</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 05:12:21 -0800</bug_when>
    <thetext>Comment on attachment 172979
Patch 4

Clearing flags on attachment: 172979

Committed r133884: &lt;http://trac.webkit.org/changeset/133884&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761677</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 05:12:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767051</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-14 10:51:44 -0800</bug_when>
    <thetext>As far as I know, this is the first time we show warnings in the Inspector for a CSS issue. Before we do this, I&apos;d like to hear more of a consensus on webkit-dev that this is a desired behavior.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172748</attachid>
            <date>2012-11-07 03:02:50 -0800</date>
            <delta_ts>2012-11-08 00:36:48 -0800</delta_ts>
            <desc>Patch 1</desc>
            <filename>css_mq_dpi_warning_1.patch</filename>
            <type>text/plain</type>
            <size>16785</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZTVkMmI4Li5kOWI4Y2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdCB0aGF0IGNoZWNr
cyBpZiB3YXJuaW5nIGlzIHByaW50ZWQgdG8gY29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUwor
ICAgICAgICB1bml0cyBhcmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRw
Y20td2FybmluZy5odG1sOiBBZGRlZC4KKworICAgICAgICBTa2lwIHRlc3RzIGZvciBwbGF0Zm9y
bXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMi0xMS0wNyAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNt
LXdhcm5pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjRiY2ZlZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJl
c29sdXRpb24tZHBpLWRwY20td2FybmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBmb3Ig
J3NjcmVlbicgbWVkaWEgdHlwZSwgYXMgdGhlICdkcGknIHVuaXRzIGFyZSBpbiBDU1MgdW5pdHMg
YW5kIG5vdCBhY3R1YWwgZGV2aWNlIHVuaXRzLiBNZWRpYSBxdWVyeSBleHByZXNzaW9uOiBzY3Jl
ZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogOTZkcGkpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTog
Q29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0
aGUgJ2RwY20nIHVuaXRzIGFyZSBpbiBDU1MgdW5pdHMgYW5kIG5vdCBhY3R1YWwgZGV2aWNlIHVu
aXRzLiBNZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDE2MGRwY20pCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgOTogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZvciAn
c2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJ2RwaScgdW5pdHMgYXJlIGluIENTUyB1bml0cyBh
bmQgbm90IGFjdHVhbCBkZXZpY2UgdW5pdHMuIE1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNv
bHV0aW9uOiA5NmRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcg
J2RwcHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJ2RwaScgdW5pdHMg
YXJlIGluIENTUyB1bml0cyBhbmQgbm90IGFjdHVhbCBkZXZpY2UgdW5pdHMuIE1lZGlhIHF1ZXJ5
IGV4cHJlc3Npb246IChtaW4tcmVzb2x1dGlvbjogMmRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBl
LCBhcyB0aGUgJ2RwY20nIHVuaXRzIGFyZSBpbiBDU1MgdW5pdHMgYW5kIG5vdCBhY3R1YWwgZGV2
aWNlIHVuaXRzLiBNZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDJkcGNt
KQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMg
Zm9yICdzY3JlZW4nIG1lZGlhIHR5cGUsIGFzIHRoZSAnZHBpJyB1bml0cyBhcmUgaW4gQ1NTIHVu
aXRzIGFuZCBub3QgYWN0dWFsIGRldmljZSB1bml0cy4gTWVkaWEgcXVlcnkgZXhwcmVzc2lvbjog
c2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDVkcGkpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzY6IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBmb3IgJ3NjcmVlbicgbWVkaWEgdHlwZSwg
YXMgdGhlICdkcGNtJyB1bml0cyBhcmUgaW4gQ1NTIHVuaXRzIGFuZCBub3QgYWN0dWFsIGRldmlj
ZSB1bml0cy4gTWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWluLXJlc29sdXRp
b246IDVkcGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBw
eCcgdW5pdHMgZm9yICdzY3JlZW4nIG1lZGlhIHR5cGUsIGFzIHRoZSAnZHBpJyB1bml0cyBhcmUg
aW4gQ1NTIHVuaXRzIGFuZCBub3QgYWN0dWFsIGRldmljZSB1bml0cy4gTWVkaWEgcXVlcnkgZXhw
cmVzc2lvbjogKG1pbi1yZXNvbHV0aW9uOiAxMGRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
NjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBh
cyB0aGUgJ2RwY20nIHVuaXRzIGFyZSBpbiBDU1MgdW5pdHMgYW5kIG5vdCBhY3R1YWwgZGV2aWNl
IHVuaXRzLiBNZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDEwZHBjbSkK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZv
ciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJ2RwaScgdW5pdHMgYXJlIGluIENTUyB1bml0
cyBhbmQgbm90IGFjdHVhbCBkZXZpY2UgdW5pdHMuIE1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IHNj
cmVlbiBhbmQgKG1heC1yZXNvbHV0aW9uOiAzMDBkcGkpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzY6IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBmb3IgJ3NjcmVlbicgbWVkaWEgdHlwZSwg
YXMgdGhlICdkcGNtJyB1bml0cyBhcmUgaW4gQ1NTIHVuaXRzIGFuZCBub3QgYWN0dWFsIGRldmlj
ZSB1bml0cy4gTWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWF4LXJlc29sdXRp
b246IDMwMGRwY20pCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6IENvbnNpZGVyIHVzaW5nICdk
cHB4JyB1bml0cyBmb3IgJ3NjcmVlbicgbWVkaWEgdHlwZSwgYXMgdGhlICdkcGknIHVuaXRzIGFy
ZSBpbiBDU1MgdW5pdHMgYW5kIG5vdCBhY3R1YWwgZGV2aWNlIHVuaXRzLiBNZWRpYSBxdWVyeSBl
eHByZXNzaW9uOiAocmVzb2x1dGlvbjogOTZkcGkpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6
IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBmb3IgJ3NjcmVlbicgbWVkaWEgdHlwZSwgYXMg
dGhlICdkcGNtJyB1bml0cyBhcmUgaW4gQ1NTIHVuaXRzIGFuZCBub3QgYWN0dWFsIGRldmljZSB1
bml0cy4gTWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogKHJlc29sdXRpb246IDk2ZHBjbSkKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGZvciAnc2Ny
ZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJ2RwaScgdW5pdHMgYXJlIGluIENTUyB1bml0cyBhbmQg
bm90IGFjdHVhbCBkZXZpY2UgdW5pdHMuIE1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0
aW9uOiA5NmRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2Rw
cHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJ2RwY20nIHVuaXRzIGFy
ZSBpbiBDU1MgdW5pdHMgYW5kIG5vdCBhY3R1YWwgZGV2aWNlIHVuaXRzLiBNZWRpYSBxdWVyeSBl
eHByZXNzaW9uOiAocmVzb2x1dGlvbjogOTZkcGNtKQorVGVzdCB2ZXJpZmllcyB0aGF0IHdhcm5p
bmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUyB2YWx1ZXMgYXJlIHVz
ZWQgZm9yIHJlc29sdXRpb24gbWVkaWEgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VkNmNlMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0
bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgLyogVmVyaWZ5IHRoYXQgd2Fybmlu
ZyBpcyBhZGRlZCB0byBjb25zb2xlIHdoZW4gc3R5bGVzaGVldCBpcyBwYXJzZWQgKi8KKyAgICAg
ICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiA5NmRwaSkgeyB9CisgICAgICAg
IEBtZWRpYSBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMTYwZHBjbSkgeyB9CisgICAgICAgIEBt
ZWRpYSAocmVzb2x1dGlvbjogOTZkcGkpIHsgfQorICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBpZD0ic3R5bGVFbGVtZW50IiBtZWRpYT0iYWxsIGFuZCAoY29sb3IpIj4K
KyAgICA8L3N0eWxlPgorPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UZXN0IHZlcmlmaWVzIHRo
YXQgd2FybmluZyBpcyBhZGRlZCB0byBjb25zb2xlIHdoZW4gZHBpIG9yIGRwY20gQ1NTIHZhbHVl
cyBhcmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlPC9wPgorCisgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgdmFyIHN0eWxlRWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZUVsZW1lbnQiKTsKKyAgICAgIC8vIFZl
cmlmeSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIEhUTUxTdHlsZUVsZW1l
bnQgaXMgdXBkYXRlZC4KKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwg
IihtaW4tcmVzb2x1dGlvbjogMmRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1
dGUoIm1lZGlhIiwgIihtaW4tcmVzb2x1dGlvbjogMmRwY20pIik7CisgICAgICBzdHlsZUVsZW1l
bnQuc2V0QXR0cmlidXRlKCJtZWRpYSIsICJzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogNWRw
aSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgInNjcmVlbiBh
bmQgKG1pbi1yZXNvbHV0aW9uOiA1ZHBjbSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRy
aWJ1dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwaSkiKTsKKyAgICAg
IHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0
aW9uOiAxMGRwY20pIik7CisKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQg
dG8gY29uc29sZSB3aGVuIG1lZGlhIGxpc3RlbmVycyBpbnRlcmZhY2UgaXMgdXNlZC4KKyAgICAg
IHdpbmRvdy5tYXRjaE1lZGlhKCJzY3JlZW4gYW5kIChtYXgtcmVzb2x1dGlvbjogMzAwZHBpKSIp
OworICAgICAgd2luZG93Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1yZXNvbHV0aW9uOiAz
MDBkcGNtKSIpOworICAgICAgd2luZG93Lm1hdGNoTWVkaWEoIihyZXNvbHV0aW9uOiA5NmRwaSki
KTsKKyAgICAgIHdpbmRvdy5tYXRjaE1lZGlhKCIocmVzb2x1dGlvbjogOTZkcGNtKSIpOworICAg
ICAgd2luZG93Lm1hdGNoTWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBpKSIpOworICAg
ICAgd2luZG93Lm1hdGNoTWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBjbSkiKTsKKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGE2YjE0Zi4uYTAyYWQzZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTcs
NiArMTk3LDcgQEAgd2Via2l0Lm9yZy9iLzEwMDk4NSBtZWRpYS9wcm9ncmVzcy1ldmVudHMtZ2Vu
ZXJhdGVkLWNvcnJlY3RseS5odG1sCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3Qg
eWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9u
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRp
b24tZHBpLWRwY20td2FybmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0
aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFn
ZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBmNzdkNmIwLi5hY2E3ZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzk2LDYgKzM5Niw3IEBAIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1
cHBvcnRzLmh0bWwKIAogIyBSZXF1aXJlcyBSZXNvbHV0aW9uIE1lZGlhIFF1ZXJ5IHN1cHBvcnQK
IHdlYmtpdC5vcmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1k
cGNtLXdhcm5pbmcuaHRtbCBbIEZhaWx1cmUgXQogCiAjIENTUyBEZXZpY2UgQWRhcHRhdGlvbiBp
cyBub3QgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi85NTk1OSBjc3MzL2RldmljZS1hZGFwdCBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzYWQw
YTg2Li4zZGQwNzAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtOTc4LDYgKzk3OCw3IEBAIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1y
ZXNvbHV0aW9uCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQu
CiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20t
d2FybmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5
ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlNDQyYzQ0
Li41ZDRhNTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTAzNyw2ICsxMDM3LDcgQEAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwK
IGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCiBmYXN0L21lZGlhL21lZGlhLXF1
ZXJ5LWxpc3QtMDcuaHRtbAogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKK2Zhc3QvbWVk
aWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0
aW9ucy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQog
ZmFzdC9yZXBhaW50L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCkBAIC0xOTk2LDcg
KzE5OTcsNiBAQCBmYXN0L2Nzcy93b3JkLXNwYWNlLWV4dHJhLmh0bWwKIGZhc3QvZm9ybXMvZGF0
ZS1tdWx0aXBsZS1maWVsZHMKIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzCiBmYXN0
L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzCi1mYXN0L2Zvcm1zL3dlZWstbXVsdGlwbGUtZmll
bGRzCiAKICMgUmVxdWlyZSByZWJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDI4NgogZmFzdC9ibG9jay9mbG9hdC9hdm9pZGFuY2UtcnRsLmh0
bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiMDhlY2U0Li4zMmNlZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMTItMTEtMDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1v
dkBpbnRlbC5jb20+CisKKyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hl
biB1c2luZyBkcGkgYW5kIGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmdW5jdGlv
biB0aGF0IHByaW50cyB3YXJuaW5nIHRvIGluc3BlY3RvciBjb25zb2xlIHdoZW5ldmVyIGRwaSBv
ciBkcGNtIENTUyB1bml0cworICAgICAgICBhcmUgdXNlZCBmb3Igc2NyZWVuIG1lZGlhLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2hlZXQ6OnNldE1lZGlhUXVlcmllcyk6CisgICAgICAgICogY3NzL01lZGlhTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFdhcm5pbmdN
ZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydE1lZGlhUXVlcnlXYXJu
aW5nKToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZXJB
cHBlbmRSdWxlKToKKwogMjAxMi0xMS0wNyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFu
bkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIHRyaXZpYWwgYnVpbGQgZml4
IGFkYXB0aW5nIHRvIFF0TXVsdGltZWRpYSBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2hlZXQuY3BwCmluZGV4IDEzZmQ5YTQuLjY3NTcyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5jcHAKQEAgLTIwNSw2ICsyMDUsMTEgQEAgdm9pZCBDU1NTdHlsZVNoZWV0Ojpz
ZXRNZWRpYVF1ZXJpZXMoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtZWRpYVF1ZXJpZXMpCiAg
ICAgbV9tZWRpYVF1ZXJpZXMgPSBtZWRpYVF1ZXJpZXM7CiAgICAgaWYgKG1fbWVkaWFDU1NPTVdy
YXBwZXIgJiYgbV9tZWRpYVF1ZXJpZXMpCiAgICAgICAgIG1fbWVkaWFDU1NPTVdyYXBwZXItPnJl
YXR0YWNoKG1fbWVkaWFRdWVyaWVzLmdldCgpKTsKKworI2lmIEVOQUJMRShSRVNPTFVUSU9OX01F
RElBX1FVRVJZKQorICAgIC8vIEFkZCB3YXJuaW5nIG1lc3NhZ2UgdG8gaW5zcGVjdG9yIHdoZW5l
dmVyIGRwaS9kcGNtIHZhbHVlcyBhcmUgdXNlZCBmb3IgInNjcmVlbiIgbWVkaWEuCisgICAgcmVw
b3J0TWVkaWFRdWVyeVdhcm5pbmcob3duZXJEb2N1bWVudCgpLCBtX21lZGlhUXVlcmllcy5nZXQo
KSk7CisjZW5kaWYKIH0KIAogdW5zaWduZWQgQ1NTU3R5bGVTaGVldDo6bGVuZ3RoKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggYmRiYzU3MS4uNWQzNjY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhTGlzdC5jcHAKQEAgLTIzLDkgKzIzLDE0IEBACiAjaW5jbHVkZSAiQ1NTSW1wb3J0
UnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQu
aCIKKyNpbmNsdWRlICJDb25zb2xlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiTWVk
aWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSAiTWVk
aWFRdWVyeUV4cC5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpAQCAtMjk3LDQgKzMwMiw1OCBAQCB2b2lkIE1lZGlhTGlzdDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhUXVlcmllcyk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9N
RURJQV9RVUVSWSkKK3N0YXRpYyB2b2lkIGFkZFdhcm5pbmdNZXNzYWdlVG9Db25zb2xlKERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBzZXJpYWxpemVkRXhwcmVzc2lvbiwgY29uc3Qg
Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBtZWRpYVF1ZXJ5TWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ29uc2lkZXIgdXNpbmcgJ2Rw
cHgnIHVuaXRzIGZvciAnc2NyZWVuJyBtZWRpYSB0eXBlLCBhcyB0aGUgJyVyZXBsYWNlbWVudFVu
aXRzJScgdW5pdHMgYXJlIGluIENTUyB1bml0cyBhbmQgbm90IGFjdHVhbCBkZXZpY2UgdW5pdHMu
IE1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246ICIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVyYWwoImRwaSIpKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIG1lZGlhVmFsdWVEUENNLCAoQVNDSUlMaXRlcmFsKCJkcGNt
IikpKTsKKworICAgIFN0cmluZyBtZXNzYWdlOworICAgIGlmICh2YWx1ZS0+aXNEb3RzUGVySW5j
aCgpKQorICAgICAgICBtZXNzYWdlID0gU3RyaW5nKG1lZGlhUXVlcnlNZXNzYWdlKS5yZXBsYWNl
KCIlcmVwbGFjZW1lbnRVbml0cyUiLCBtZWRpYVZhbHVlRFBJKTsKKyAgICBlbHNlCisgICAgICAg
IG1lc3NhZ2UgPSBTdHJpbmcobWVkaWFRdWVyeU1lc3NhZ2UpLnJlcGxhY2UoIiVyZXBsYWNlbWVu
dFVuaXRzJSIsIG1lZGlhVmFsdWVEUENNKTsKKyAgICBtZXNzYWdlLmFwcGVuZChzZXJpYWxpemVk
RXhwcmVzc2lvbik7CisKKyAgICBpbnQgbGluZU51bWJlciA9IDE7CisgICAgU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
KCk7CisgICAgaWYgKHBhcnNlcikKKyAgICAgICAgbGluZU51bWJlciA9IHBhcnNlci0+bGluZU51
bWJlcigpLm9uZUJhc2VkSW50KCk7CisKKyAgICBkb2N1bWVudC0+ZG9tV2luZG93KCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFRpcE1l
c3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygpLCBsaW5lTnVtYmVy
KTsKK30KKwordm9pZCByZXBvcnRNZWRpYVF1ZXJ5V2FybmluZyhEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IE1lZGlhUXVlcnlTZXQqIG1lZGlhUXVlcnlTZXQpCit7CisgICAgaWYgKCFtZWRpYVF1
ZXJ5U2V0IHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgVmVjdG9y
PE93blB0cjxNZWRpYVF1ZXJ5PiA+JiBtZWRpYVF1ZXJpZXMgPSBtZWRpYVF1ZXJ5U2V0LT5xdWVy
eVZlY3RvcigpOworICAgIGNvbnN0IHNpemVfdCBxdWVyeUNvdW50ID0gbWVkaWFRdWVyaWVzLnNp
emUoKTsKKworICAgIGlmICghcXVlcnlDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBxdWVyeUNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3QgTWVk
aWFRdWVyeSogcXVlcnkgPSBtZWRpYVF1ZXJpZXNbaV0uZ2V0KCk7CisgICAgICAgIFN0cmluZyBt
ZWRpYVR5cGUgPSBxdWVyeS0+bWVkaWFUeXBlKCk7CisgICAgICAgIGlmICghcXVlcnktPmlnbm9y
ZWQoKSAmJiAoZXF1YWxJZ25vcmluZ0Nhc2UobWVkaWFUeXBlLCAic2NyZWVuIikgfHwgZXF1YWxJ
Z25vcmluZ0Nhc2UobWVkaWFUeXBlLCAiYWxsIikgfHwgbWVkaWFUeXBlLmlzRW1wdHkoKSkpIHsK
KyAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8TWVkaWFRdWVyeUV4cD4gPiogZXhwcyA9
IHF1ZXJ5LT5leHByZXNzaW9ucygpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGog
PCBleHBzLT5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhUXVlcnlF
eHAqIGV4cCA9IGV4cHMtPmF0KGopLmdldCgpOworICAgICAgICAgICAgICAgIGlmIChleHAtPm1l
ZGlhRmVhdHVyZSgpID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJl
IHx8IGV4cC0+bWVkaWFGZWF0dXJlKCkgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0
aW9uTWVkaWFGZWF0dXJlIHx8IGV4cC0+bWVkaWFGZWF0dXJlKCkgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlKSB7CisgICAgICAgICAgICAgICAgICAgIENT
U1ZhbHVlKiBjc3NWYWx1ZSA9ICBleHAtPnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChjc3NWYWx1ZSAmJiBjc3NWYWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGNzc1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNEb3RzUGVySW5jaCgpIHx8IHByaW1pdGl2ZVZhbHVl
LT5pc0RvdHNQZXJDZW50aW1ldGVyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRk
V2FybmluZ01lc3NhZ2VUb0NvbnNvbGUoZG9jdW1lbnQsIG1lZGlhUXVlcnlTZXQtPm1lZGlhVGV4
dCgpLCBwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5oCmluZGV4IGQyNDc2MjIuLmE3YmRiMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
U1NSdWxlOwogY2xhc3MgQ1NTU3R5bGVTaGVldDsKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgTWVk
aWFMaXN0OwogY2xhc3MgTWVkaWFRdWVyeTsKIApAQCAtMTIwLDYgKzEyMSwxMiBAQCBwcml2YXRl
OgogICAgIENTU1J1bGUqIG1fcGFyZW50UnVsZTsKIH07CiAKKyNpZiBFTkFCTEUoUkVTT0xVVElP
Tl9NRURJQV9RVUVSWSkKKy8vIEFkZHMgbWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSB3aGVu
ZXZlciBkcGkgb3IgZHBjbSB2YWx1ZXMgYXJlIHVzZWQgZm9yICJzY3JlZW4iIG1lZGlhLgorLy8g
RklYTUU6IHNob3VsZCBiZSByZW1vdmVkIHdoZW4gZHBpIC8gZHBjbSB2YWx1ZXMgd291bGQgYmUg
ZGVwcmVjYXRlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgordm9pZCByZXBvcnRNZWRp
YVF1ZXJ5V2FybmluZyhEb2N1bWVudCosIGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1h
dGNoZXIuY3BwCmluZGV4IGVmZDVkZWQuLmUyYjNhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlNYXRjaGVyLmNwcApAQCAtMTA4LDYgKzEwOCwxMCBAQCBQYXNzUmVmUHRyPE1lZGlh
UXVlcnlMaXN0PiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIHF1
ZXJ5KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtZWRp
YSA9IE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZShxdWVyeSk7CisjaWYgRU5BQkxFKFJFU09MVVRJT05f
TUVESUFfUVVFUlkpCisgICAgLy8gQWRkIHdhcm5pbmcgbWVzc2FnZSB0byBpbnNwZWN0b3Igd2hl
bmV2ZXIgZHBpL2RwY20gdmFsdWVzIGFyZSB1c2VkIGZvciAic2NyZWVuIiBtZWRpYS4KKyAgICBy
ZXBvcnRNZWRpYVF1ZXJ5V2FybmluZyhtX2RvY3VtZW50LCBtZWRpYS5nZXQoKSk7CisjZW5kaWYK
ICAgICByZXR1cm4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSh0aGlzLCBtZWRpYSwgZXZhbHVhdGUo
bWVkaWEuZ2V0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRz
LmNwcAppbmRleCAyZjA3ZmNlLi5mZGRmNmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCkBAIC0x
MzUsNiArMTM2LDEzIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZXJBcHBlbmRSdWxl
KFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSkKICAgICAgICAgbV9pbXBvcnRSdWxlcy5s
YXN0KCktPnJlcXVlc3RTdHlsZVNoZWV0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyNp
ZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICAvLyBBZGQgd2FybmluZyBtZXNz
YWdlIHRvIGluc3BlY3RvciBpZiBkcGkvZHBjbSB2YWx1ZXMgYXJlIHVzZWQgZm9yIHNjcmVlbiBt
ZWRpYS4KKyAgICBpZiAocnVsZS0+aXNNZWRpYVJ1bGUoKSkKKyAgICAgICAgcmVwb3J0TWVkaWFR
dWVyeVdhcm5pbmcoc2luZ2xlT3duZXJEb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxTdHlsZVJ1bGVN
ZWRpYSo+KHJ1bGUuZ2V0KCkpLT5tZWRpYVF1ZXJpZXMoKSk7CisjZW5kaWYKKwogICAgIG1fY2hp
bGRSdWxlcy5hcHBlbmQocnVsZSk7CiB9CiAK
</data>
<flag name="review"
          id="187179"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172947</attachid>
            <date>2012-11-08 00:36:48 -0800</date>
            <delta_ts>2012-11-08 01:51:44 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>css_mq_dpi_warning_2.patch</filename>
            <type>text/plain</type>
            <size>17965</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmNjMjQwLi5mN2EyMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdCB0aGF0IGNoZWNr
cyBpZiB3YXJuaW5nIGlzIHByaW50ZWQgdG8gY29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUwor
ICAgICAgICB1bml0cyBhcmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRw
Y20td2FybmluZy5odG1sOiBBZGRlZC4KKworICAgICAgICBTa2lwIHRlc3RzIGZvciBwbGF0Zm9y
bXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMi0xMS0wOCAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZXIgY2FuIGNoYW5nZSBhIGRpc2FibGVkIHNlbGVjdCAoZHJvcCBkb3duIGJv
eCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGkt
ZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVz
b2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40MzQyZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBDb25zaWRlciB1c2luZyAn
ZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMt
cGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29y
cmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBl
eHByZXNzaW9uOiBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogOTZkcGkpCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgOTogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2Rw
Y20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3Qg
ZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0
aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjog
KG1pbi1yZXNvbHV0aW9uOiAxNjBkcGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IENvbnNp
ZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGknLCBhcyBpbiBDU1MgJ2RwaScg
bWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1pbmNoLCBzbyBk
b2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScgb2YgYSBzY3JlZW4uIEluIG1l
ZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRwaSkKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScs
IGFzIGluIENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBo
eXNpY2FsLWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBv
ZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogKG1pbi1yZXNvbHV0aW9uOiAy
ZHBpKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5p
dHMgaW5zdGVhZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NT
LWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5v
dCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBx
dWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDJkcGNtKQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywg
YXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMtcGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5
c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9m
IGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiBzY3JlZW4gYW5kIChtaW4tcmVz
b2x1dGlvbjogNWRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcg
J2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRv
dHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwg
c28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4g
SW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDVk
cGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5p
dHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMtcGVyLUNTUy1p
bmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0
byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9u
OiAobWluLXJlc29sdXRpb246IDEwZHBpKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25z
aWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBj
bScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1j
ZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9m
IGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDEw
ZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVu
aXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1Mt
aW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQg
dG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lv
bjogc2NyZWVuIGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwaSkKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwY20nLCBh
cyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3QgZG90cy1w
ZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0
dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVu
IGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwY20pCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6
IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGknLCBhcyBpbiBDU1Mg
J2RwaScgbWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1pbmNo
LCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScgb2YgYSBzY3JlZW4u
IEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRwaSkKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2Yg
J2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBu
b3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0
byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lv
bjogKHJlc29sdXRpb246IDk2ZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lk
ZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBt
ZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRv
ZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVk
aWEgcXVlcnkgZXhwcmVzc2lvbjogKHJlc29sdXRpb246IDk2ZHBpKQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScs
IGFzIGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3Rz
LXBlci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBh
Y3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAocmVz
b2x1dGlvbjogOTZkcGNtKQorVGVzdCB2ZXJpZmllcyB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8g
Y29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUyB2YWx1ZXMgYXJlIHVzZWQgZm9yIHJlc29sdXRp
b24gbWVkaWEgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1y
ZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uM2VkNmNlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyAgICAgICAgLyogVmVyaWZ5IHRoYXQgd2FybmluZyBpcyBhZGRlZCB0byBj
b25zb2xlIHdoZW4gc3R5bGVzaGVldCBpcyBwYXJzZWQgKi8KKyAgICAgICAgQG1lZGlhIHNjcmVl
biBhbmQgKG1pbi1yZXNvbHV0aW9uOiA5NmRwaSkgeyB9CisgICAgICAgIEBtZWRpYSBhbGwgYW5k
IChtaW4tcmVzb2x1dGlvbjogMTYwZHBjbSkgeyB9CisgICAgICAgIEBtZWRpYSAocmVzb2x1dGlv
bjogOTZkcGkpIHsgfQorICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBp
ZD0ic3R5bGVFbGVtZW50IiBtZWRpYT0iYWxsIGFuZCAoY29sb3IpIj4KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UZXN0IHZlcmlmaWVzIHRoYXQgd2FybmluZyBpcyBh
ZGRlZCB0byBjb25zb2xlIHdoZW4gZHBpIG9yIGRwY20gQ1NTIHZhbHVlcyBhcmUgdXNlZCBmb3Ig
cmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlPC9wPgorCisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdHlsZUVsZW1lbnQiKTsKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5p
bmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIEhUTUxTdHlsZUVsZW1lbnQgaXMgdXBkYXRlZC4K
KyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgIihtaW4tcmVzb2x1dGlv
bjogMmRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgIiht
aW4tcmVzb2x1dGlvbjogMmRwY20pIik7CisgICAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRl
KCJtZWRpYSIsICJzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogNWRwaSkiKTsKKyAgICAgIHN0
eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgInNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0
aW9uOiA1ZHBjbSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwg
ImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5z
ZXRBdHRyaWJ1dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwY20pIik7
CisKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVu
IG1lZGlhIGxpc3RlbmVycyBpbnRlcmZhY2UgaXMgdXNlZC4KKyAgICAgIHdpbmRvdy5tYXRjaE1l
ZGlhKCJzY3JlZW4gYW5kIChtYXgtcmVzb2x1dGlvbjogMzAwZHBpKSIpOworICAgICAgd2luZG93
Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1yZXNvbHV0aW9uOiAzMDBkcGNtKSIpOworICAg
ICAgd2luZG93Lm1hdGNoTWVkaWEoIihyZXNvbHV0aW9uOiA5NmRwaSkiKTsKKyAgICAgIHdpbmRv
dy5tYXRjaE1lZGlhKCIocmVzb2x1dGlvbjogOTZkcGNtKSIpOworICAgICAgd2luZG93Lm1hdGNo
TWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBpKSIpOworICAgICAgd2luZG93Lm1hdGNo
TWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBjbSkiKTsKKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggM2FlZGEzNC4uMzVlYTQ5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTQsNiArMTk0LDcgQEAgd2Vi
a2l0Lm9yZy9iLzEwMDk4NSBtZWRpYS9wcm9ncmVzcy1ldmVudHMtZ2VuZXJhdGVkLWNvcnJlY3Rs
eS5odG1sCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCiB3
ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20td2Fy
bmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQg
ZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5OTUxMzA0Li4z
MmU0NGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
Mzk2LDYgKzM5Niw3IEBAIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwKIAog
IyBSZXF1aXJlcyBSZXNvbHV0aW9uIE1lZGlhIFF1ZXJ5IHN1cHBvcnQKIHdlYmtpdC5vcmcvYi8x
MDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRt
bCBbIEZhaWx1cmUgXQogCiAjIENTUyBEZXZpY2UgQWRhcHRhdGlvbiBpcyBub3QgZW5hYmxlZC4K
IHdlYmtpdC5vcmcvYi85NTk1OSBjc3MzL2RldmljZS1hZGFwdCBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYjZlNTVlLi40NjViNmY5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTc4LDYgKzk3
OCw3IEBAIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uCiAKICMg
UmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2Iv
ODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20td2FybmluZy5odG1sIFsg
U2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdl
YmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlNDQyYzQ0Li41ZDRhNTk1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAzNyw2ICsxMDM3
LDcgQEAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNi5odG1sCiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRt
bAogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKK2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlv
bi1kcGktZHBjbS13YXJuaW5nLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292
ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCkBAIC0xOTk2LDcgKzE5OTcsNiBAQCBmYXN0
L2Nzcy93b3JkLXNwYWNlLWV4dHJhLmh0bWwKIGZhc3QvZm9ybXMvZGF0ZS1tdWx0aXBsZS1maWVs
ZHMKIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzCiBmYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzCi1mYXN0L2Zvcm1zL3dlZWstbXVsdGlwbGUtZmllbGRzCiAKICMgUmVxdWly
ZSByZWJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDI4NgogZmFzdC9ibG9jay9mbG9hdC9hdm9pZGFuY2UtcnRsLmh0bWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAxOTJmMDU1Li45MDJkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbiB0aGF0IHByaW50cyB3
YXJuaW5nIHRvIGluc3BlY3RvciBjb25zb2xlIHdoZW5ldmVyIGRwaSBvciBkcGNtIENTUyB1bml0
cworICAgICAgICBhcmUgdXNlZCBmb3Igc2NyZWVuIG1lZGlhLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6
OnNldE1lZGlhUXVlcmllcyk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFdhcm5pbmdNZXNzYWdlVG9Db25zb2xl
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydE1lZGlhUXVlcnlXYXJuaW5nKToKKyAgICAgICAg
KiBjc3MvTWVkaWFMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvTWVk
aWFRdWVyeU1hdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6
Om1hdGNoTWVkaWEpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZXJBcHBlbmRSdWxlKToKKwog
MjAxMi0xMS0wOCAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZXIgY2FuIGNoYW5nZSBhIGRpc2FibGVkIHNlbGVjdCAoZHJvcCBkb3duIGJv
eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAxM2ZkOWE0Li42NzU3MmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0yMDUsNiArMjA1LDExIEBA
IHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0TWVkaWFRdWVyaWVzKFBhc3NSZWZQdHI8TWVkaWFRdWVy
eVNldD4gbWVkaWFRdWVyaWVzKQogICAgIG1fbWVkaWFRdWVyaWVzID0gbWVkaWFRdWVyaWVzOwog
ICAgIGlmIChtX21lZGlhQ1NTT01XcmFwcGVyICYmIG1fbWVkaWFRdWVyaWVzKQogICAgICAgICBt
X21lZGlhQ1NTT01XcmFwcGVyLT5yZWF0dGFjaChtX21lZGlhUXVlcmllcy5nZXQoKSk7CisKKyNp
ZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICAvLyBBZGQgd2FybmluZyBtZXNz
YWdlIHRvIGluc3BlY3RvciB3aGVuZXZlciBkcGkvZHBjbSB2YWx1ZXMgYXJlIHVzZWQgZm9yICJz
Y3JlZW4iIG1lZGlhLgorICAgIHJlcG9ydE1lZGlhUXVlcnlXYXJuaW5nKG93bmVyRG9jdW1lbnQo
KSwgbV9tZWRpYVF1ZXJpZXMuZ2V0KCkpOworI2VuZGlmCiB9CiAKIHVuc2lnbmVkIENTU1N0eWxl
U2hlZXQ6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IGJkYmM1
NzEuLjE1NGE4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0yMyw5ICsyMywxNCBA
QAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ29uc29sZS5oIgorI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIk1lZGlhRmVhdHVyZU5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFR
dWVyeS5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKKyNpbmNsdWRlICJTY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTI5Nyw0ICszMDIsNjAgQEAgdm9pZCBN
ZWRpYUxpc3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYVF1ZXJpZXMpOwogfQogCisj
aWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCitzdGF0aWMgdm9pZCBhZGRXYXJuaW5n
TWVzc2FnZVRvQ29uc29sZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc2VyaWFs
aXplZEV4cHJlc3Npb24sIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKK3sKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVy
YWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRV
bml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NT
LSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9l
cyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEg
c2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBtZWRpYVZhbHVlRFBJLCAoQVNDSUlMaXRlcmFsKCJkcGkiKSkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVZhbHVlRFBDTSwgKEFTQ0lJTGl0
ZXJhbCgiZHBjbSIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVu
aXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgbGVuZ3RoVW5pdENlbnRpbWV0ZXIsIChBU0NJSUxpdGVyYWwoImNlbnRpbWV0ZXIi
KSkpOworCisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKHZhbHVlLT5pc0RvdHNQZXJJbmNo
KCkpCisgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmcobWVkaWFRdWVyeU1lc3NhZ2UpLnJlcGxhY2Uo
IiVyZXBsYWNlbWVudFVuaXRzJSIsIG1lZGlhVmFsdWVEUEkpLnJlcGxhY2UoIiVsZW5ndGhVbml0
JSIsIGxlbmd0aFVuaXRJbmNoKTsKKyAgICBlbHNlCisgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmco
bWVkaWFRdWVyeU1lc3NhZ2UpLnJlcGxhY2UoIiVyZXBsYWNlbWVudFVuaXRzJSIsIG1lZGlhVmFs
dWVEUENNKS5yZXBsYWNlKCIlbGVuZ3RoVW5pdCUiLCBsZW5ndGhVbml0Q2VudGltZXRlcik7Cisg
ICAgbWVzc2FnZS5hcHBlbmQoc2VyaWFsaXplZEV4cHJlc3Npb24pOworCisgICAgaW50IGxpbmVO
dW1iZXIgPSAxOworICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1l
bnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOworICAgIGlmIChwYXJzZXIpCisgICAgICAg
IGxpbmVOdW1iZXIgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworCisgICAg
ZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBUaXBNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGRvY3VtZW50
LT51cmwoKS5zdHJpbmcoKSwgbGluZU51bWJlcik7Cit9CisKK3ZvaWQgcmVwb3J0TWVkaWFRdWVy
eVdhcm5pbmcoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBNZWRpYVF1ZXJ5U2V0KiBtZWRpYVF1
ZXJ5U2V0KQoreworICAgIGlmICghbWVkaWFRdWVyeVNldCB8fCAhZG9jdW1lbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8TWVkaWFRdWVyeT4gPiYgbWVkaWFR
dWVyaWVzID0gbWVkaWFRdWVyeVNldC0+cXVlcnlWZWN0b3IoKTsKKyAgICBjb25zdCBzaXplX3Qg
cXVlcnlDb3VudCA9IG1lZGlhUXVlcmllcy5zaXplKCk7CisKKyAgICBpZiAoIXF1ZXJ5Q291bnQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVlcnlDb3Vu
dDsgKytpKSB7CisgICAgICAgIGNvbnN0IE1lZGlhUXVlcnkqIHF1ZXJ5ID0gbWVkaWFRdWVyaWVz
W2ldLmdldCgpOworICAgICAgICBTdHJpbmcgbWVkaWFUeXBlID0gcXVlcnktPm1lZGlhVHlwZSgp
OworICAgICAgICBpZiAoIXF1ZXJ5LT5pZ25vcmVkKCkgJiYgKGVxdWFsSWdub3JpbmdDYXNlKG1l
ZGlhVHlwZSwgInNjcmVlbiIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG1lZGlhVHlwZSwgImFsbCIp
IHx8IG1lZGlhVHlwZS5pc0VtcHR5KCkpKSB7CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8T3du
UHRyPE1lZGlhUXVlcnlFeHA+ID4qIGV4cHMgPSBxdWVyeS0+ZXhwcmVzc2lvbnMoKTsKKyAgICAg
ICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZXhwcy0+c2l6ZSgpOyArK2opIHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBNZWRpYVF1ZXJ5RXhwKiBleHAgPSBleHBzLT5hdChqKS5nZXQoKTsK
KyAgICAgICAgICAgICAgICBpZiAoZXhwLT5tZWRpYUZlYXR1cmUoKSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZSB8fCBleHAtPm1lZGlhRmVhdHVyZSgpID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZSB8fCBleHAtPm1lZGlh
RmVhdHVyZSgpID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZSkgeworICAgICAgICAgICAgICAgICAgICBDU1NWYWx1ZSogY3NzVmFsdWUgPSAgZXhwLT52YWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3NzVmFsdWUgJiYgY3NzVmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihjc3NW
YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzRG90
c1BlckluY2goKSB8fCBwcmltaXRpdmVWYWx1ZS0+aXNEb3RzUGVyQ2VudGltZXRlcigpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFdhcm5pbmdNZXNzYWdlVG9Db25zb2xlKGRvY3Vt
ZW50LCBtZWRpYVF1ZXJ5U2V0LT5tZWRpYVRleHQoKSwgcHJpbWl0aXZlVmFsdWUpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaAppbmRleCBkMjQ3
NjIyLi5jYjFmNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCkBAIC0zMiw2ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7
CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE1lZGlhTGlzdDsKIGNsYXNzIE1lZGlhUXVlcnk7CiAK
QEAgLTEyMCw2ICsxMjEsMTEgQEAgcHJpdmF0ZToKICAgICBDU1NSdWxlKiBtX3BhcmVudFJ1bGU7
CiB9OwogCisjaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCisvLyBBZGRzIG1lc3Nh
Z2UgdG8gaW5zcGVjdG9yIGNvbnNvbGUgd2hlbmV2ZXIgZHBpIG9yIGRwY20gdmFsdWVzIGFyZSB1
c2VkIGZvciAic2NyZWVuIiBtZWRpYS4KK3ZvaWQgcmVwb3J0TWVkaWFRdWVyeVdhcm5pbmcoRG9j
dW1lbnQqLCBjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNo
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAppbmRleCBl
ZmQ1ZGVkLi5lMmIzYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eU1hdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5j
cHAKQEAgLTEwOCw2ICsxMDgsMTAgQEAgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFR
dWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWEgPSBNZWRpYVF1ZXJ5U2V0
OjpjcmVhdGUocXVlcnkpOworI2lmIEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQorICAg
IC8vIEFkZCB3YXJuaW5nIG1lc3NhZ2UgdG8gaW5zcGVjdG9yIHdoZW5ldmVyIGRwaS9kcGNtIHZh
bHVlcyBhcmUgdXNlZCBmb3IgInNjcmVlbiIgbWVkaWEuCisgICAgcmVwb3J0TWVkaWFRdWVyeVdh
cm5pbmcobV9kb2N1bWVudCwgbWVkaWEuZ2V0KCkpOworI2VuZGlmCiAgICAgcmV0dXJuIE1lZGlh
UXVlcnlMaXN0OjpjcmVhdGUodGhpcywgbWVkaWEsIGV2YWx1YXRlKG1lZGlhLmdldCgpKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMmYwN2Zj
ZS4uZmRkZjZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
TWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgpAQCAtMTM1LDYgKzEzNiwxMyBAQCB2
b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VyQXBwZW5kUnVsZShQYXNzUmVmUHRyPFN0eWxl
UnVsZUJhc2U+IHJ1bGUpCiAgICAgICAgIG1faW1wb3J0UnVsZXMubGFzdCgpLT5yZXF1ZXN0U3R5
bGVTaGVldCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisjaWYgRU5BQkxFKFJFU09MVVRJ
T05fTUVESUFfUVVFUlkpCisgICAgLy8gQWRkIHdhcm5pbmcgbWVzc2FnZSB0byBpbnNwZWN0b3Ig
aWYgZHBpL2RwY20gdmFsdWVzIGFyZSB1c2VkIGZvciBzY3JlZW4gbWVkaWEuCisgICAgaWYgKHJ1
bGUtPmlzTWVkaWFSdWxlKCkpCisgICAgICAgIHJlcG9ydE1lZGlhUXVlcnlXYXJuaW5nKHNpbmds
ZU93bmVyRG9jdW1lbnQoKSwgc3RhdGljX2Nhc3Q8U3R5bGVSdWxlTWVkaWEqPihydWxlLmdldCgp
KS0+bWVkaWFRdWVyaWVzKCkpOworI2VuZGlmCisKICAgICBtX2NoaWxkUnVsZXMuYXBwZW5kKHJ1
bGUpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172963</attachid>
            <date>2012-11-08 01:51:44 -0800</date>
            <delta_ts>2012-11-08 03:06:46 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>css_mq_dpi_warning_3.patch</filename>
            <type>text/plain</type>
            <size>18165</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmNjMjQwLi5mN2EyMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdCB0aGF0IGNoZWNr
cyBpZiB3YXJuaW5nIGlzIHByaW50ZWQgdG8gY29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUwor
ICAgICAgICB1bml0cyBhcmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRw
Y20td2FybmluZy5odG1sOiBBZGRlZC4KKworICAgICAgICBTa2lwIHRlc3RzIGZvciBwbGF0Zm9y
bXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMi0xMS0wOCAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZXIgY2FuIGNoYW5nZSBhIGRpc2FibGVkIHNlbGVjdCAoZHJvcCBkb3duIGJv
eCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGkt
ZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVz
b2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40MzQyZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBDb25zaWRlciB1c2luZyAn
ZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMt
cGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29y
cmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBl
eHByZXNzaW9uOiBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogOTZkcGkpCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgOTogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2Rw
Y20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3Qg
ZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0
aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjog
KG1pbi1yZXNvbHV0aW9uOiAxNjBkcGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IENvbnNp
ZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGknLCBhcyBpbiBDU1MgJ2RwaScg
bWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1pbmNoLCBzbyBk
b2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScgb2YgYSBzY3JlZW4uIEluIG1l
ZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRwaSkKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScs
IGFzIGluIENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBo
eXNpY2FsLWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBv
ZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogKG1pbi1yZXNvbHV0aW9uOiAy
ZHBpKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5p
dHMgaW5zdGVhZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NT
LWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5v
dCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBx
dWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDJkcGNtKQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywg
YXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMtcGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5
c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9m
IGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiBzY3JlZW4gYW5kIChtaW4tcmVz
b2x1dGlvbjogNWRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcg
J2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRv
dHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwg
c28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4g
SW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDVk
cGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5p
dHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMtcGVyLUNTUy1p
bmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0
byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9u
OiAobWluLXJlc29sdXRpb246IDEwZHBpKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25z
aWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBj
bScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1j
ZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9m
IGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDEw
ZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVu
aXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1Mt
aW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQg
dG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lv
bjogc2NyZWVuIGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwaSkKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwY20nLCBh
cyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3QgZG90cy1w
ZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0
dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVu
IGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwY20pCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6
IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGknLCBhcyBpbiBDU1Mg
J2RwaScgbWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1pbmNo
LCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScgb2YgYSBzY3JlZW4u
IEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRwaSkKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2Yg
J2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBu
b3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0
byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lv
bjogKHJlc29sdXRpb246IDk2ZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lk
ZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBt
ZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRv
ZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVk
aWEgcXVlcnkgZXhwcmVzc2lvbjogKHJlc29sdXRpb246IDk2ZHBpKQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScs
IGFzIGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3Rz
LXBlci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBh
Y3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAocmVz
b2x1dGlvbjogOTZkcGNtKQorVGVzdCB2ZXJpZmllcyB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8g
Y29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUyB2YWx1ZXMgYXJlIHVzZWQgZm9yIHJlc29sdXRp
b24gbWVkaWEgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1y
ZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uM2VkNmNlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyAgICAgICAgLyogVmVyaWZ5IHRoYXQgd2FybmluZyBpcyBhZGRlZCB0byBj
b25zb2xlIHdoZW4gc3R5bGVzaGVldCBpcyBwYXJzZWQgKi8KKyAgICAgICAgQG1lZGlhIHNjcmVl
biBhbmQgKG1pbi1yZXNvbHV0aW9uOiA5NmRwaSkgeyB9CisgICAgICAgIEBtZWRpYSBhbGwgYW5k
IChtaW4tcmVzb2x1dGlvbjogMTYwZHBjbSkgeyB9CisgICAgICAgIEBtZWRpYSAocmVzb2x1dGlv
bjogOTZkcGkpIHsgfQorICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBp
ZD0ic3R5bGVFbGVtZW50IiBtZWRpYT0iYWxsIGFuZCAoY29sb3IpIj4KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UZXN0IHZlcmlmaWVzIHRoYXQgd2FybmluZyBpcyBh
ZGRlZCB0byBjb25zb2xlIHdoZW4gZHBpIG9yIGRwY20gQ1NTIHZhbHVlcyBhcmUgdXNlZCBmb3Ig
cmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlPC9wPgorCisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdHlsZUVsZW1lbnQiKTsKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5p
bmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIEhUTUxTdHlsZUVsZW1lbnQgaXMgdXBkYXRlZC4K
KyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgIihtaW4tcmVzb2x1dGlv
bjogMmRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgIiht
aW4tcmVzb2x1dGlvbjogMmRwY20pIik7CisgICAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRl
KCJtZWRpYSIsICJzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogNWRwaSkiKTsKKyAgICAgIHN0
eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgInNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0
aW9uOiA1ZHBjbSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwg
ImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5z
ZXRBdHRyaWJ1dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwY20pIik7
CisKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVu
IG1lZGlhIGxpc3RlbmVycyBpbnRlcmZhY2UgaXMgdXNlZC4KKyAgICAgIHdpbmRvdy5tYXRjaE1l
ZGlhKCJzY3JlZW4gYW5kIChtYXgtcmVzb2x1dGlvbjogMzAwZHBpKSIpOworICAgICAgd2luZG93
Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1yZXNvbHV0aW9uOiAzMDBkcGNtKSIpOworICAg
ICAgd2luZG93Lm1hdGNoTWVkaWEoIihyZXNvbHV0aW9uOiA5NmRwaSkiKTsKKyAgICAgIHdpbmRv
dy5tYXRjaE1lZGlhKCIocmVzb2x1dGlvbjogOTZkcGNtKSIpOworICAgICAgd2luZG93Lm1hdGNo
TWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBpKSIpOworICAgICAgd2luZG93Lm1hdGNo
TWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBjbSkiKTsKKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggM2FlZGEzNC4uMzVlYTQ5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTQsNiArMTk0LDcgQEAgd2Vi
a2l0Lm9yZy9iLzEwMDk4NSBtZWRpYS9wcm9ncmVzcy1ldmVudHMtZ2VuZXJhdGVkLWNvcnJlY3Rs
eS5odG1sCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCiB3
ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20td2Fy
bmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQg
ZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5OTUxMzA0Li4z
MmU0NGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
Mzk2LDYgKzM5Niw3IEBAIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwKIAog
IyBSZXF1aXJlcyBSZXNvbHV0aW9uIE1lZGlhIFF1ZXJ5IHN1cHBvcnQKIHdlYmtpdC5vcmcvYi8x
MDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRt
bCBbIEZhaWx1cmUgXQogCiAjIENTUyBEZXZpY2UgQWRhcHRhdGlvbiBpcyBub3QgZW5hYmxlZC4K
IHdlYmtpdC5vcmcvYi85NTk1OSBjc3MzL2RldmljZS1hZGFwdCBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYjZlNTVlLi40NjViNmY5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTc4LDYgKzk3
OCw3IEBAIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uCiAKICMg
UmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2Iv
ODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20td2FybmluZy5odG1sIFsg
U2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdl
YmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlNDQyYzQ0Li41ZDRhNTk1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAzNyw2ICsxMDM3
LDcgQEAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKIGZhc3QvbWVkaWEvbWVk
aWEtcXVlcnktbGlzdC0wNi5odG1sCiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRt
bAogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKK2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlv
bi1kcGktZHBjbS13YXJuaW5nLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292
ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCkBAIC0xOTk2LDcgKzE5OTcsNiBAQCBmYXN0
L2Nzcy93b3JkLXNwYWNlLWV4dHJhLmh0bWwKIGZhc3QvZm9ybXMvZGF0ZS1tdWx0aXBsZS1maWVs
ZHMKIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzCiBmYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzCi1mYXN0L2Zvcm1zL3dlZWstbXVsdGlwbGUtZmllbGRzCiAKICMgUmVxdWly
ZSByZWJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDI4NgogZmFzdC9ibG9jay9mbG9hdC9hdm9pZGFuY2UtcnRsLmh0bWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAxOTJmMDU1Li40ZDljYjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbiB0aGF0IHByaW50cyB3
YXJuaW5nIHRvIGluc3BlY3RvciBjb25zb2xlIHdoZW5ldmVyIGRwaSBvciBkcGNtIENTUyB1bml0
cworICAgICAgICBhcmUgdXNlZCBmb3Igc2NyZWVuIG1lZGlhLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6
OnNldE1lZGlhUXVlcmllcyk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFJlc29sdXRpb25XYXJuaW5nTWVzc2Fn
ZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRNZWRpYVF1ZXJ5V2FybmluZ0lm
TmVlZGVkKToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0
Q29udGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZXJBcHBlbmRSdWxlKToKKwogMjAxMi0xMS0wOCAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1v
dG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZXIgY2FuIGNoYW5nZSBhIGRpc2FibGVkIHNl
bGVjdCAoZHJvcCBkb3duIGJveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRl
eCAxM2ZkOWE0Li45N2IxOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBA
IC0yMDUsNiArMjA1LDExIEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0TWVkaWFRdWVyaWVzKFBh
c3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWFRdWVyaWVzKQogICAgIG1fbWVkaWFRdWVyaWVz
ID0gbWVkaWFRdWVyaWVzOwogICAgIGlmIChtX21lZGlhQ1NTT01XcmFwcGVyICYmIG1fbWVkaWFR
dWVyaWVzKQogICAgICAgICBtX21lZGlhQ1NTT01XcmFwcGVyLT5yZWF0dGFjaChtX21lZGlhUXVl
cmllcy5nZXQoKSk7CisKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICAv
LyBBZGQgd2FybmluZyBtZXNzYWdlIHRvIGluc3BlY3RvciB3aGVuZXZlciBkcGkvZHBjbSB2YWx1
ZXMgYXJlIHVzZWQgZm9yICJzY3JlZW4iIG1lZGlhLgorICAgIHJlcG9ydE1lZGlhUXVlcnlXYXJu
aW5nSWZOZWVkZWQob3duZXJEb2N1bWVudCgpLCBtX21lZGlhUXVlcmllcy5nZXQoKSk7CisjZW5k
aWYKIH0KIAogdW5zaWduZWQgQ1NTU3R5bGVTaGVldDo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhTGlzdC5jcHAKaW5kZXggYmRiYzU3MS4uMWNlMGY3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
TGlzdC5jcHAKQEAgLTIzLDkgKzIzLDE0IEBACiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgog
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNs
dWRlICJDb25zb2xlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiTWVkaWFGZWF0dXJl
TmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4
cC5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpA
QCAtMjk3LDQgKzMwMiw2NiBAQCB2b2lkIE1lZGlhTGlzdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJl
cihtX21lZGlhUXVlcmllcyk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkKK3N0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJuaW5nTWVzc2FnZVRvQ29uc29sZShEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc2VyaWFsaXplZEV4cHJlc3Npb24sIGNvbnN0
IENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAg
IEFTU0VSVCh2YWx1ZSk7CisKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFR
dWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBp
bnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVu
aXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNp
Y2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICcl
cmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9u
OiAiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVZhbHVlRFBJLCAo
QVNDSUlMaXRlcmFsKCJkcGkiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBt
ZWRpYVZhbHVlRFBDTSwgKEFTQ0lJTGl0ZXJhbCgiZHBjbSIpKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGxlbmd0aFVuaXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVuZ3RoVW5pdENlbnRpbWV0ZXIsIChB
U0NJSUxpdGVyYWwoImNlbnRpbWV0ZXIiKSkpOworCisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAg
aWYgKHZhbHVlLT5pc0RvdHNQZXJJbmNoKCkpCisgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmcobWVk
aWFRdWVyeU1lc3NhZ2UpLnJlcGxhY2UoIiVyZXBsYWNlbWVudFVuaXRzJSIsIG1lZGlhVmFsdWVE
UEkpLnJlcGxhY2UoIiVsZW5ndGhVbml0JSIsIGxlbmd0aFVuaXRJbmNoKTsKKyAgICBlbHNlIGlm
ICh2YWx1ZS0+aXNEb3RzUGVyQ2VudGltZXRlcigpKQorICAgICAgICBtZXNzYWdlID0gU3RyaW5n
KG1lZGlhUXVlcnlNZXNzYWdlKS5yZXBsYWNlKCIlcmVwbGFjZW1lbnRVbml0cyUiLCBtZWRpYVZh
bHVlRFBDTSkucmVwbGFjZSgiJWxlbmd0aFVuaXQlIiwgbGVuZ3RoVW5pdENlbnRpbWV0ZXIpOwor
ICAgIGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKKyAgICBtZXNzYWdlLmFw
cGVuZChzZXJpYWxpemVkRXhwcmVzc2lvbik7CisKKyAgICBpbnQgbGluZU51bWJlciA9IDE7Cisg
ICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyKCk7CisgICAgaWYgKHBhcnNlcikKKyAgICAgICAgbGluZU51bWJlciA9
IHBhcnNlci0+bGluZU51bWJlcigpLm9uZUJhc2VkSW50KCk7CisKKyAgICBkb2N1bWVudC0+ZG9t
V2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIFRpcE1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpLCBsaW5lTnVtYmVyKTsKK30KKwordm9pZCByZXBvcnRNZWRpYVF1ZXJ5V2FybmluZ0lmTmVl
ZGVkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyeVNl
dCkKK3sKKyAgICBpZiAoIW1lZGlhUXVlcnlTZXQgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBjb25zdCBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnk+ID4mIG1lZGlhUXVlcmll
cyA9IG1lZGlhUXVlcnlTZXQtPnF1ZXJ5VmVjdG9yKCk7CisgICAgY29uc3Qgc2l6ZV90IHF1ZXJ5
Q291bnQgPSBtZWRpYVF1ZXJpZXMuc2l6ZSgpOworCisgICAgaWYgKCFxdWVyeUNvdW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXJ5Q291bnQ7ICsr
aSkgeworICAgICAgICBjb25zdCBNZWRpYVF1ZXJ5KiBxdWVyeSA9IG1lZGlhUXVlcmllc1tpXS5n
ZXQoKTsKKyAgICAgICAgU3RyaW5nIG1lZGlhVHlwZSA9IHF1ZXJ5LT5tZWRpYVR5cGUoKTsKKyAg
ICAgICAgaWYgKCFxdWVyeS0+aWdub3JlZCgpICYmIChlcXVhbElnbm9yaW5nQ2FzZShtZWRpYVR5
cGUsICJzY3JlZW4iKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShtZWRpYVR5cGUsICJhbGwiKSB8fCBt
ZWRpYVR5cGUuaXNFbXB0eSgpKSkgeworICAgICAgICAgICAgY29uc3QgVmVjdG9yPE93blB0cjxN
ZWRpYVF1ZXJ5RXhwPiA+KiBleHBzID0gcXVlcnktPmV4cHJlc3Npb25zKCk7CisgICAgICAgICAg
ICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGV4cHMtPnNpemUoKTsgKytqKSB7CisgICAgICAgICAg
ICAgICAgY29uc3QgTWVkaWFRdWVyeUV4cCogZXhwID0gZXhwcy0+YXQoaikuZ2V0KCk7CisgICAg
ICAgICAgICAgICAgaWYgKGV4cC0+bWVkaWFGZWF0dXJlKCkgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OnJlc29sdXRpb25NZWRpYUZlYXR1cmUgfHwgZXhwLT5tZWRpYUZlYXR1cmUoKSA9PSBNZWRpYUZl
YXR1cmVOYW1lczo6bWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmUgfHwgZXhwLT5tZWRpYUZlYXR1
cmUoKSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmUpIHsK
KyAgICAgICAgICAgICAgICAgICAgQ1NTVmFsdWUqIGNzc1ZhbHVlID0gIGV4cC0+dmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGNzc1ZhbHVlICYmIGNzc1ZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oY3NzVmFsdWUp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0RvdHNQZXJJ
bmNoKCkgfHwgcHJpbWl0aXZlVmFsdWUtPmlzRG90c1BlckNlbnRpbWV0ZXIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhZGRSZXNvbHV0aW9uV2FybmluZ01lc3NhZ2VUb0NvbnNvbGUo
ZG9jdW1lbnQsIG1lZGlhUXVlcnlTZXQtPm1lZGlhVGV4dCgpLCBwcmltaXRpdmVWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCmluZGV4
IGQyNDc2MjIuLmYyMDAxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmgKQEAgLTMyLDYgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NSdWxlOwogY2xhc3MgQ1NTU3R5bGVT
aGVldDsKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFMaXN0OwogY2xhc3MgTWVkaWFRdWVy
eTsKIApAQCAtMTIwLDYgKzEyMSwxMSBAQCBwcml2YXRlOgogICAgIENTU1J1bGUqIG1fcGFyZW50
UnVsZTsKIH07CiAKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKy8vIEFkZHMg
bWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSB3aGVuZXZlciBkcGkgb3IgZHBjbSB2YWx1ZXMg
YXJlIHVzZWQgZm9yICJzY3JlZW4iIG1lZGlhLgordm9pZCByZXBvcnRNZWRpYVF1ZXJ5V2Fybmlu
Z0lmTmVlZGVkKERvY3VtZW50KiwgY29uc3QgTWVkaWFRdWVyeVNldCopOworI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hl
ci5jcHAKaW5kZXggZWZkNWRlZC4uNjg5ZjY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuY3BwCkBAIC0xMDgsNiArMTA4LDEwIEBAIFBhc3NSZWZQdHI8TWVkaWFRdWVy
eUxpc3Q+IE1lZGlhUXVlcnlNYXRjaGVyOjptYXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnkp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhID0g
TWVkaWFRdWVyeVNldDo6Y3JlYXRlKHF1ZXJ5KTsKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJ
QV9RVUVSWSkKKyAgICAvLyBBZGQgd2FybmluZyBtZXNzYWdlIHRvIGluc3BlY3RvciB3aGVuZXZl
ciBkcGkvZHBjbSB2YWx1ZXMgYXJlIHVzZWQgZm9yICJzY3JlZW4iIG1lZGlhLgorICAgIHJlcG9y
dE1lZGlhUXVlcnlXYXJuaW5nSWZOZWVkZWQobV9kb2N1bWVudCwgbWVkaWEuZ2V0KCkpOworI2Vu
ZGlmCiAgICAgcmV0dXJuIE1lZGlhUXVlcnlMaXN0OjpjcmVhdGUodGhpcywgbWVkaWEsIGV2YWx1
YXRlKG1lZGlhLmdldCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250
ZW50cy5jcHAKaW5kZXggMmYwN2ZjZS4uYjVlN2Q1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NTdHls
ZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgpA
QCAtMTM1LDYgKzEzNiwxMyBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VyQXBwZW5k
UnVsZShQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUpCiAgICAgICAgIG1faW1wb3J0UnVs
ZXMubGFzdCgpLT5yZXF1ZXN0U3R5bGVTaGVldCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
CisjaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCisgICAgLy8gQWRkIHdhcm5pbmcg
bWVzc2FnZSB0byBpbnNwZWN0b3IgaWYgZHBpL2RwY20gdmFsdWVzIGFyZSB1c2VkIGZvciBzY3Jl
ZW4gbWVkaWEuCisgICAgaWYgKHJ1bGUtPmlzTWVkaWFSdWxlKCkpCisgICAgICAgIHJlcG9ydE1l
ZGlhUXVlcnlXYXJuaW5nSWZOZWVkZWQoc2luZ2xlT3duZXJEb2N1bWVudCgpLCBzdGF0aWNfY2Fz
dDxTdHlsZVJ1bGVNZWRpYSo+KHJ1bGUuZ2V0KCkpLT5tZWRpYVF1ZXJpZXMoKSk7CisjZW5kaWYK
KwogICAgIG1fY2hpbGRSdWxlcy5hcHBlbmQocnVsZSk7CiB9CiAK
</data>
<flag name="review"
          id="187477"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172979</attachid>
            <date>2012-11-08 03:06:46 -0800</date>
            <delta_ts>2012-11-08 05:12:21 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>css_mq_dpi_warning_4.patch</filename>
            <type>text/plain</type>
            <size>18125</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmNjMjQwLi5mNDlkMGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEt
MDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1c2luZyBkcGkgYW5k
IGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVz
dCB0aGF0IGNoZWNrcyBpZiB3YXJuaW5nIGlzIHByaW50ZWQgdG8gY29uc29sZSB3aGVuIGRwaSBv
ciBkcGNtIENTUworICAgICAgICB1bml0cyBhcmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBm
ZWF0dXJlLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdh
cm5pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29s
dXRpb24tZHBpLWRwY20td2FybmluZy5odG1sOiBBZGRlZC4KKworICAgICAgICBTa2lwIHRlc3Rz
IGZvciBwbGF0Zm9ybXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgcmVzb2x1dGlvbiBtZWRpYSBmZWF0
dXJlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxMi0xMS0wOCAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVzZXIgY2FuIGNoYW5nZSBhIGRpc2FibGVkIHNlbGVjdCAo
ZHJvcCBkb3duIGJveCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVz
b2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzQyZTk5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBDb25z
aWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGkn
IG1lYW5zIGRvdHMtcGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28g
ZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBt
ZWRpYSBxdWVyeSBleHByZXNzaW9uOiBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogOTZkcGkp
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGlu
c3RlYWQgb2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50
aW1ldGVyLCBub3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29y
cmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkg
ZXhwcmVzc2lvbjogKG1pbi1yZXNvbHV0aW9uOiAxNjBkcGNtKQorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDk6IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGknLCBhcyBp
biBDU1MgJ2RwaScgbWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1waHlzaWNh
bC1pbmNoLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScgb2YgYSBz
Y3JlZW4uIEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRwaSkKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3Rl
YWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90
IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFj
dHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogKG1pbi1y
ZXNvbHV0aW9uOiAyZHBpKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2lu
ZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBjbScgbWVhbnMg
ZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1jZW50aW1ldGVy
LCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVu
LiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDJkcGNtKQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVh
ZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRvdHMtcGVyLUNTUy1pbmNoLCBub3Qg
ZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0
dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiBzY3JlZW4g
YW5kIChtaW4tcmVzb2x1dGlvbjogNWRwaSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29u
c2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2Rw
Y20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVyLCBub3QgZG90cy1wZXItcGh5c2ljYWwt
Y2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGNtJyBv
ZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWluLXJl
c29sdXRpb246IDVkcGNtKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2lu
ZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBpJywgYXMgaW4gQ1NTICdkcGknIG1lYW5zIGRv
dHMtcGVyLUNTUy1pbmNoLCBub3QgZG90cy1wZXItcGh5c2ljYWwtaW5jaCwgc28gZG9lcyBub3Qg
Y29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGknIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVy
eSBleHByZXNzaW9uOiAobWluLXJlc29sdXRpb246IDEwZHBpKQorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnZHBjbScsIGFz
IGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0ZXIsIG5vdCBkb3RzLXBl
ci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1
YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAobWluLXJl
c29sdXRpb246IDEwZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNp
bmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGluIENTUyAnZHBpJyBtZWFucyBk
b3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLWluY2gsIHNvIGRvZXMgbm90
IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVl
cnkgZXhwcmVzc2lvbjogc2NyZWVuIGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwaSkKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQg
b2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1jZW50aW1ldGVy
LCBub3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3QgY29ycmVzcG9u
ZCB0byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVz
c2lvbjogc2NyZWVuIGFuZCAobWF4LXJlc29sdXRpb246IDMwMGRwY20pCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMzY6IENvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICdkcGkn
LCBhcyBpbiBDU1MgJ2RwaScgbWVhbnMgZG90cy1wZXItQ1NTLWluY2gsIG5vdCBkb3RzLXBlci1w
aHlzaWNhbC1pbmNoLCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJ2RwaScg
b2YgYSBzY3JlZW4uIEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246IChyZXNvbHV0aW9uOiA5NmRw
aSkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRz
IGluc3RlYWQgb2YgJ2RwY20nLCBhcyBpbiBDU1MgJ2RwY20nIG1lYW5zIGRvdHMtcGVyLUNTUy1j
ZW50aW1ldGVyLCBub3QgZG90cy1wZXItcGh5c2ljYWwtY2VudGltZXRlciwgc28gZG9lcyBub3Qg
Y29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICdkcGNtJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVl
cnkgZXhwcmVzc2lvbjogKHJlc29sdXRpb246IDk2ZHBjbSkKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzNjogQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJ2RwaScsIGFzIGlu
IENTUyAnZHBpJyBtZWFucyBkb3RzLXBlci1DU1MtaW5jaCwgbm90IGRvdHMtcGVyLXBoeXNpY2Fs
LWluY2gsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnZHBpJyBvZiBhIHNj
cmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogKHJlc29sdXRpb246IDk2ZHBpKQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM2OiBDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVh
ZCBvZiAnZHBjbScsIGFzIGluIENTUyAnZHBjbScgbWVhbnMgZG90cy1wZXItQ1NTLWNlbnRpbWV0
ZXIsIG5vdCBkb3RzLXBlci1waHlzaWNhbC1jZW50aW1ldGVyLCBzbyBkb2VzIG5vdCBjb3JyZXNw
b25kIHRvIHRoZSBhY3R1YWwgJ2RwY20nIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHBy
ZXNzaW9uOiAocmVzb2x1dGlvbjogOTZkcGNtKQorVGVzdCB2ZXJpZmllcyB0aGF0IHdhcm5pbmcg
aXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIGRwaSBvciBkcGNtIENTUyB2YWx1ZXMgYXJlIHVzZWQg
Zm9yIHJlc29sdXRpb24gbWVkaWEgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNtLXdhcm5pbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VkNmNlMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgLyogVmVyaWZ5IHRoYXQgd2FybmluZyBp
cyBhZGRlZCB0byBjb25zb2xlIHdoZW4gc3R5bGVzaGVldCBpcyBwYXJzZWQgKi8KKyAgICAgICAg
QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiA5NmRwaSkgeyB9CisgICAgICAgIEBt
ZWRpYSBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMTYwZHBjbSkgeyB9CisgICAgICAgIEBtZWRp
YSAocmVzb2x1dGlvbjogOTZkcGkpIHsgfQorICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIiBpZD0ic3R5bGVFbGVtZW50IiBtZWRpYT0iYWxsIGFuZCAoY29sb3IpIj4KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UZXN0IHZlcmlmaWVzIHRoYXQg
d2FybmluZyBpcyBhZGRlZCB0byBjb25zb2xlIHdoZW4gZHBpIG9yIGRwY20gQ1NTIHZhbHVlcyBh
cmUgdXNlZCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBmZWF0dXJlPC9wPgorCisgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgdmFyIHN0eWxlRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZUVsZW1lbnQiKTsKKyAgICAgIC8vIFZlcmlm
eSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8gY29uc29sZSB3aGVuIEhUTUxTdHlsZUVsZW1lbnQg
aXMgdXBkYXRlZC4KKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgIiht
aW4tcmVzb2x1dGlvbjogMmRwaSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUo
Im1lZGlhIiwgIihtaW4tcmVzb2x1dGlvbjogMmRwY20pIik7CisgICAgICBzdHlsZUVsZW1lbnQu
c2V0QXR0cmlidXRlKCJtZWRpYSIsICJzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogNWRwaSki
KTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgInNjcmVlbiBhbmQg
KG1pbi1yZXNvbHV0aW9uOiA1ZHBjbSkiKTsKKyAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1
dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxMGRwaSkiKTsKKyAgICAgIHN0
eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgImFsbCBhbmQgKG1pbi1yZXNvbHV0aW9u
OiAxMGRwY20pIik7CisKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdhcm5pbmcgaXMgYWRkZWQgdG8g
Y29uc29sZSB3aGVuIG1lZGlhIGxpc3RlbmVycyBpbnRlcmZhY2UgaXMgdXNlZC4KKyAgICAgIHdp
bmRvdy5tYXRjaE1lZGlhKCJzY3JlZW4gYW5kIChtYXgtcmVzb2x1dGlvbjogMzAwZHBpKSIpOwor
ICAgICAgd2luZG93Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1yZXNvbHV0aW9uOiAzMDBk
cGNtKSIpOworICAgICAgd2luZG93Lm1hdGNoTWVkaWEoIihyZXNvbHV0aW9uOiA5NmRwaSkiKTsK
KyAgICAgIHdpbmRvdy5tYXRjaE1lZGlhKCIocmVzb2x1dGlvbjogOTZkcGNtKSIpOworICAgICAg
d2luZG93Lm1hdGNoTWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBpKSIpOworICAgICAg
d2luZG93Lm1hdGNoTWVkaWEoImFsbCBhbmQgKHJlc29sdXRpb246IDk2ZHBjbSkiKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2FlZGEzNC4uMzVlYTQ5YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTQsNiAr
MTk0LDcgQEAgd2Via2l0Lm9yZy9iLzEwMDk4NSBtZWRpYS9wcm9ncmVzcy1ldmVudHMtZ2VuZXJh
dGVkLWNvcnJlY3RseS5odG1sCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0
IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24t
ZHBpLWRwY20td2FybmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9u
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1v
cmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA5OTUxMzA0Li4zMmU0NGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMzk2LDYgKzM5Niw3IEBAIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBv
cnRzLmh0bWwKIAogIyBSZXF1aXJlcyBSZXNvbHV0aW9uIE1lZGlhIFF1ZXJ5IHN1cHBvcnQKIHdl
YmtpdC5vcmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmtpdC5vcmcvYi8xMDAxMzcgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWRwaS1kcGNt
LXdhcm5pbmcuaHRtbCBbIEZhaWx1cmUgXQogCiAjIENTUyBEZXZpY2UgQWRhcHRhdGlvbiBpcyBu
b3QgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi85NTk1OSBjc3MzL2RldmljZS1hZGFwdCBbIFNraXAg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYjZlNTVl
Li40NjViNmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtOTc4LDYgKzk3OCw3IEBAIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1yZXNv
bHV0aW9uCiAKICMgUmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCiB3
ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZHBpLWRwY20td2Fy
bmluZy5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQg
ZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlNDQyYzQ0Li41
ZDRhNTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTAzNyw2ICsxMDM3LDcgQEAgZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA1Lmh0bWwKIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNi5odG1sCiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWxpc3QtMDcuaHRtbAogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKK2Zhc3QvbWVkaWEv
bXEtcmVzb2x1dGlvbi1kcGktZHBjbS13YXJuaW5nLmh0bWwKIAogIyBOZWVkIGV4cGVjdGF0aW9u
cy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ2MQogZmFz
dC9yZXBhaW50L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5odG1sCkBAIC0xOTk2LDcgKzE5
OTcsNiBAQCBmYXN0L2Nzcy93b3JkLXNwYWNlLWV4dHJhLmh0bWwKIGZhc3QvZm9ybXMvZGF0ZS1t
dWx0aXBsZS1maWVsZHMKIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzCiBmYXN0L2Zv
cm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzCi1mYXN0L2Zvcm1zL3dlZWstbXVsdGlwbGUtZmllbGRz
CiAKICMgUmVxdWlyZSByZWJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NDI4NgogZmFzdC9ibG9jay9mbG9hdC9hdm9pZGFuY2UtcnRsLmh0bWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxOTJmMDU1Li4xYTQ4Y2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMTEtMDcgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBp
bnRlbC5jb20+CisKKyAgICAgICAgV2FybiBpbiB0aGUgaW5zcGVjdG9yIGNvbnNvbGUgd2hlbiB1
c2luZyBkcGkgYW5kIGRwY20gdW5pdHMgb3V0c2lkZSBvZiBtZWRpYT0icHJpbnQiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4NjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICBBZGRl
ZCBmdW5jdGlvbiB0aGF0IHByaW50cyB3YXJuaW5nIHRvIGluc3BlY3RvciBjb25zb2xlIHdoZW5l
dmVyIGRwaSBvciBkcGNtIENTUyB1bml0cworICAgICAgICBhcmUgdXNlZCBmb3Igc2NyZWVuIG1l
ZGlhLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1kcGktZHBjbS13
YXJuaW5nLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OnNldE1lZGlhUXVlcmllcyk6CisgICAgICAgICogY3Nz
L01lZGlhTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFk
ZFJlc29sdXRpb25XYXJuaW5nTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBvcnRNZWRpYVF1ZXJ5V2FybmluZ0lmTmVlZGVkKToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEpOgor
ICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZXJBcHBlbmRSdWxlKToKKwogMjAxMi0xMS0wOCAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZXIg
Y2FuIGNoYW5nZSBhIGRpc2FibGVkIHNlbGVjdCAoZHJvcCBkb3duIGJveCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAxM2ZkOWE0Li45N2IxOTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0yMDUsNiArMjA1LDExIEBAIHZvaWQgQ1NTU3R5bGVT
aGVldDo6c2V0TWVkaWFRdWVyaWVzKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWFRdWVy
aWVzKQogICAgIG1fbWVkaWFRdWVyaWVzID0gbWVkaWFRdWVyaWVzOwogICAgIGlmIChtX21lZGlh
Q1NTT01XcmFwcGVyICYmIG1fbWVkaWFRdWVyaWVzKQogICAgICAgICBtX21lZGlhQ1NTT01XcmFw
cGVyLT5yZWF0dGFjaChtX21lZGlhUXVlcmllcy5nZXQoKSk7CisKKyNpZiBFTkFCTEUoUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkKKyAgICAvLyBBZGQgd2FybmluZyBtZXNzYWdlIHRvIGluc3BlY3Rv
ciB3aGVuZXZlciBkcGkvZHBjbSB2YWx1ZXMgYXJlIHVzZWQgZm9yICJzY3JlZW4iIG1lZGlhLgor
ICAgIHJlcG9ydE1lZGlhUXVlcnlXYXJuaW5nSWZOZWVkZWQob3duZXJEb2N1bWVudCgpLCBtX21l
ZGlhUXVlcmllcy5nZXQoKSk7CisjZW5kaWYKIH0KIAogdW5zaWduZWQgQ1NTU3R5bGVTaGVldDo6
bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggYmRiYzU3MS4uMjY4
Y2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTIzLDkgKzIzLDE0IEBACiAjaW5j
bHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUg
IkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDb25zb2xlLmgiCisjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5Lmgi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVu
dFBhcnNlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMjk3LDQgKzMwMiw2NiBAQCB2b2lkIE1lZGlhTGlz
dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhUXVlcmllcyk7CiB9CiAKKyNpZiBFTkFC
TEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKK3N0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJu
aW5nTWVzc2FnZVRvQ29uc29sZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc2Vy
aWFsaXplZEV4cHJlc3Npb24sIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKK3sKKyAg
ICBBU1NFUlQoZG9jdW1lbnQpOworICAgIEFTU0VSVCh2YWx1ZSk7CisKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgbWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNvbnNp
ZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUnLCBh
cyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5ndGhV
bml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3QgY29y
cmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVuLiBJ
biBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBtZWRpYVZhbHVlRFBJLCAoQVNDSUlMaXRlcmFsKCJkcGkiKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVZhbHVlRFBDTSwgKEFTQ0lJTGl0ZXJhbCgiZHBj
bSIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVuaXRJbmNoLCAo
QVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
bGVuZ3RoVW5pdENlbnRpbWV0ZXIsIChBU0NJSUxpdGVyYWwoImNlbnRpbWV0ZXIiKSkpOworCisg
ICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKHZhbHVlLT5pc0RvdHNQZXJJbmNoKCkpCisgICAg
ICAgIG1lc3NhZ2UgPSBTdHJpbmcobWVkaWFRdWVyeU1lc3NhZ2UpLnJlcGxhY2UoIiVyZXBsYWNl
bWVudFVuaXRzJSIsIG1lZGlhVmFsdWVEUEkpLnJlcGxhY2UoIiVsZW5ndGhVbml0JSIsIGxlbmd0
aFVuaXRJbmNoKTsKKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNEb3RzUGVyQ2VudGltZXRlcigpKQor
ICAgICAgICBtZXNzYWdlID0gU3RyaW5nKG1lZGlhUXVlcnlNZXNzYWdlKS5yZXBsYWNlKCIlcmVw
bGFjZW1lbnRVbml0cyUiLCBtZWRpYVZhbHVlRFBDTSkucmVwbGFjZSgiJWxlbmd0aFVuaXQlIiwg
bGVuZ3RoVW5pdENlbnRpbWV0ZXIpOworICAgIGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisKKyAgICBtZXNzYWdlLmFwcGVuZChzZXJpYWxpemVkRXhwcmVzc2lvbik7CisKKyAg
ICBpbnQgbGluZU51bWJlciA9IDE7CisgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJz
ZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAgaWYgKHBhcnNl
cikKKyAgICAgICAgbGluZU51bWJlciA9IHBhcnNlci0+bGluZU51bWJlcigpLm9uZUJhc2VkSW50
KCk7CisKKyAgICBkb2N1bWVudC0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShI
VE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFRpcE1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygpLCBsaW5lTnVtYmVyKTsKK30KKwordm9pZCByZXBv
cnRNZWRpYVF1ZXJ5V2FybmluZ0lmTmVlZGVkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgTWVk
aWFRdWVyeVNldCogbWVkaWFRdWVyeVNldCkKK3sKKyAgICBpZiAoIW1lZGlhUXVlcnlTZXQgfHwg
IWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBWZWN0b3I8T3duUHRyPE1l
ZGlhUXVlcnk+ID4mIG1lZGlhUXVlcmllcyA9IG1lZGlhUXVlcnlTZXQtPnF1ZXJ5VmVjdG9yKCk7
CisgICAgY29uc3Qgc2l6ZV90IHF1ZXJ5Q291bnQgPSBtZWRpYVF1ZXJpZXMuc2l6ZSgpOworCisg
ICAgaWYgKCFxdWVyeUNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHF1ZXJ5Q291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBNZWRpYVF1ZXJ5KiBx
dWVyeSA9IG1lZGlhUXVlcmllc1tpXS5nZXQoKTsKKyAgICAgICAgU3RyaW5nIG1lZGlhVHlwZSA9
IHF1ZXJ5LT5tZWRpYVR5cGUoKTsKKyAgICAgICAgaWYgKCFxdWVyeS0+aWdub3JlZCgpICYmICFl
cXVhbElnbm9yaW5nQ2FzZShtZWRpYVR5cGUsICJwcmludCIpKSB7CisgICAgICAgICAgICBjb25z
dCBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnlFeHA+ID4qIGV4cHMgPSBxdWVyeS0+ZXhwcmVzc2lv
bnMoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZXhwcy0+c2l6ZSgpOyAr
K2opIHsKKyAgICAgICAgICAgICAgICBjb25zdCBNZWRpYVF1ZXJ5RXhwKiBleHAgPSBleHBzLT5h
dChqKS5nZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhwLT5tZWRpYUZlYXR1cmUoKSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZSB8fCBleHAtPm1lZGlhRmVh
dHVyZSgpID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZSB8
fCBleHAtPm1lZGlhRmVhdHVyZSgpID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fcmVzb2x1dGlv
bk1lZGlhRmVhdHVyZSkgeworICAgICAgICAgICAgICAgICAgICBDU1NWYWx1ZSogY3NzVmFsdWUg
PSAgZXhwLT52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3NzVmFsdWUgJiYgY3Nz
VmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPihjc3NWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzRG90c1BlckluY2goKSB8fCBwcmltaXRpdmVWYWx1ZS0+aXNEb3RzUGVyQ2VudGlt
ZXRlcigpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFJlc29sdXRpb25XYXJuaW5n
TWVzc2FnZVRvQ29uc29sZShkb2N1bWVudCwgbWVkaWFRdWVyeVNldC0+bWVkaWFUZXh0KCksIHBy
aW1pdGl2ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmgKaW5kZXggZDI0NzYyMi4uZjIwMDE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3Qu
aApAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1J1bGU7
CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYUxpc3Q7
CiBjbGFzcyBNZWRpYVF1ZXJ5OwogCkBAIC0xMjAsNiArMTIxLDExIEBAIHByaXZhdGU6CiAgICAg
Q1NTUnVsZSogbV9wYXJlbnRSdWxlOwogfTsKIAorI2lmIEVOQUJMRShSRVNPTFVUSU9OX01FRElB
X1FVRVJZKQorLy8gQWRkcyBtZXNzYWdlIHRvIGluc3BlY3RvciBjb25zb2xlIHdoZW5ldmVyIGRw
aSBvciBkcGNtIHZhbHVlcyBhcmUgdXNlZCBmb3IgInNjcmVlbiIgbWVkaWEuCit2b2lkIHJlcG9y
dE1lZGlhUXVlcnlXYXJuaW5nSWZOZWVkZWQoRG9jdW1lbnQqLCBjb25zdCBNZWRpYVF1ZXJ5U2V0
Kik7CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlNYXRjaGVyLmNwcAppbmRleCBlZmQ1ZGVkLi42ODlmNjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKQEAgLTEwOCw2ICsxMDgsMTAgQEAgUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gTWVkaWFRdWVyeU1hdGNoZXI6Om1hdGNoTWVkaWEoY29u
c3QgU3RyaW5nJiBxdWVyeSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFR
dWVyeVNldD4gbWVkaWEgPSBNZWRpYVF1ZXJ5U2V0OjpjcmVhdGUocXVlcnkpOworI2lmIEVOQUJM
RShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQorICAgIC8vIEFkZCB3YXJuaW5nIG1lc3NhZ2UgdG8g
aW5zcGVjdG9yIHdoZW5ldmVyIGRwaS9kcGNtIHZhbHVlcyBhcmUgdXNlZCBmb3IgInNjcmVlbiIg
bWVkaWEuCisgICAgcmVwb3J0TWVkaWFRdWVyeVdhcm5pbmdJZk5lZWRlZChtX2RvY3VtZW50LCBt
ZWRpYS5nZXQoKSk7CisjZW5kaWYKICAgICByZXR1cm4gTWVkaWFRdWVyeUxpc3Q6OmNyZWF0ZSh0
aGlzLCBtZWRpYSwgZXZhbHVhdGUobWVkaWEuZ2V0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCAyZjA3ZmNlLi5iNWU3ZDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNs
dWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnR5U2V0LmgiCkBAIC0xMzUsNiArMTM2LDEzIEBAIHZvaWQgU3R5bGVTaGVldENvbnRl
bnRzOjpwYXJzZXJBcHBlbmRSdWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSkKICAg
ICAgICAgbV9pbXBvcnRSdWxlcy5sYXN0KCktPnJlcXVlc3RTdHlsZVNoZWV0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAg
ICAvLyBBZGQgd2FybmluZyBtZXNzYWdlIHRvIGluc3BlY3RvciBpZiBkcGkvZHBjbSB2YWx1ZXMg
YXJlIHVzZWQgZm9yIHNjcmVlbiBtZWRpYS4KKyAgICBpZiAocnVsZS0+aXNNZWRpYVJ1bGUoKSkK
KyAgICAgICAgcmVwb3J0TWVkaWFRdWVyeVdhcm5pbmdJZk5lZWRlZChzaW5nbGVPd25lckRvY3Vt
ZW50KCksIHN0YXRpY19jYXN0PFN0eWxlUnVsZU1lZGlhKj4ocnVsZS5nZXQoKSktPm1lZGlhUXVl
cmllcygpKTsKKyNlbmRpZgorCiAgICAgbV9jaGlsZFJ1bGVzLmFwcGVuZChydWxlKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>