<?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>99083</bug_id>
          
          <creation_ts>2012-10-11 10:11:57 -0700</creation_ts>
          <short_desc>[chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents</short_desc>
          <delta_ts>2012-11-05 10:56:35 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alok Priyadarshi">alokp</reporter>
          <assigned_to name="Alok Priyadarshi">alokp</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>740091</commentid>
    <comment_count>0</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-11 10:11:57 -0700</bug_when>
    <thetext>Stage 1 for LCD text on composited layers. Respect LCD text setting on layers instead of turning it off for all composited layers. For now WebLayer::canUseLCDText should return false, which should not change anything functionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740120</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-11 10:37:16 -0700</bug_when>
    <thetext>WebContentLayer has setUseLCDText(bool).  I don&apos;t see why you need something on WebLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740240</commentid>
    <comment_count>2</comment_count>
      <attachid>168271</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-11 13:50:52 -0700</bug_when>
    <thetext>Created attachment 168271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740243</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 13:53:03 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740257</commentid>
    <comment_count>4</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-11 14:11:28 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; WebContentLayer has setUseLCDText(bool).  I don&apos;t see why you need something on WebLayer.

The new function is not enabling/disabling the LCD text. It is rather asking if it is ok to use LCD text on a particular layer. It will be clearer to review this patch along with the chromium patch here - http://codereview.chromium.org/11027045/

The chromium patch looks at draw-transform and draw-opacity of a layer to decide whether LCD text can be used. This patch looks at the setting on the layer and content opaqueness to make the final decision whether to use LCD text or not.

In subsequent patches, I will be further extend by not just looking at content opaqueness, but rather tracking if text is being painted on opaque region.

I will finally delete WebContentLayer::setUseLCDText(). There is no need to change this setting from the WebKit side of the fence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742159</commentid>
    <comment_count>5</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-15 10:31:53 -0700</bug_when>
    <thetext>ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742484</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-15 14:54:06 -0700</bug_when>
    <thetext>@jamesr: Would you be willing to review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742494</commentid>
    <comment_count>7</comment_count>
      <attachid>168271</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-15 15:05:44 -0700</bug_when>
    <thetext>Comment on attachment 168271
Patch

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

&gt; Source/Platform/chromium/public/WebLayer.h:206
&gt; +    // Returns true if text can be painted into this layer with LCD anti-aliasing.
&gt; +    // Typically LCD text is allowed if the layer is opaque and is not rotated
&gt; +    // or scaled.

I don&apos;t think this API belongs on WebLayer - WebLayers don&apos;t have painted content (in general), WebContentLayers do.  It doesn&apos;t make any sense to talk about LCD text on a video or external texture layer.

&gt; Source/Platform/chromium/public/WebLayer.h:207
&gt; +    // TODO(alokp): Make pure virtual after implementing the impl side.

Don&apos;t use TODO(person) in WebKit comments

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:649
&gt; +    WebLayer* childHost = platformLayer();

This change seems unrelated

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:871
&gt; +    // TODO(alokp): Rename PlatformContextSkia::setDrawingToImageBuffer

Why don&apos;t you just do that?

&gt; Source/WebKit/chromium/src/NonCompositedContentHost.cpp:53
&gt; +    // TODO(alokp): Remove LCD text setting after WebLayer::canUseLCDText is implemented.

FIXME

&gt; Source/WebKit/chromium/src/NonCompositedContentHost.cpp:175
&gt; +    // TODO(alokp): Remove the LCD logic from here.

we don&apos;t use TODO(person) in WebKit - just FIXME and optionally cite a WebKit bug if you have one filed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742495</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-15 15:06:28 -0700</bug_when>
    <thetext>I&apos;m not sure having a bit on the layer makes sense at all since it&apos;s specific to a particular paint call.  What about passing this bit through the paint call on WebContentLayerClient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744416</commentid>
    <comment_count>9</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-17 11:00:13 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;m not sure having a bit on the layer makes sense at all since it&apos;s specific to a particular paint call.  What about passing this bit through the paint call on WebContentLayerClient?

You are right this function should be moved to WebContentLayer.

I will need to add a bit about lcd-text to cc::Layer anyway because it needs to be determined and cached during calculateDrawTransforms traversal. This function would just fetch that value.

Passing this bit would work but it would need to be plumbed through a long list of interfaces:
cc::TiledLayerChromium::updateTileTextures
cc::BitmapCanvasLayerTextureUpdater::prepareToUpdate
cc::CanvasLayerTextureUpdater::paintContents
cc::ContentLayerPainter::paint
WebKit::WebContentLayerImpl::paintContents
WebCore::WebContentLayerClient::paintContents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744422</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-17 11:03:14 -0700</bug_when>
    <thetext>That is a long path.  We could try to simplify things on the chromium side, but as far as WebKit is concerned the only place where it&apos;s needed is on the WebContentLayerClient call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744575</commentid>
    <comment_count>11</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-17 13:52:19 -0700</bug_when>
    <thetext>This is in preparation for supporting LCD text on composited layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744592</commentid>
    <comment_count>12</comment_count>
      <attachid>169256</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-17 14:02:11 -0700</bug_when>
    <thetext>Created attachment 169256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745509</commentid>
    <comment_count>13</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-18 13:30:52 -0700</bug_when>
    <thetext>@jamesr: PTAL. I passed the LCD bit to WebContentLayerClient::paintContents().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746359</commentid>
    <comment_count>14</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-19 09:24:09 -0700</bug_when>
    <thetext>+danakj: Could you also take a look. The patch touches some of your code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746445</commentid>
    <comment_count>15</comment_count>
      <attachid>169256</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-19 10:55:04 -0700</bug_when>
    <thetext>Comment on attachment 169256
Patch

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

Thanks Alok, this looks like a great first step.

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:302
&gt; +    m_opaqueRectTrackingContentLayerDelegate-&gt;setOpaque(opaque);

nit: pass m_contentsOpaque in like the above line?

I&apos;m thinking we should make the content layer call this via the WebContentLayerClient api from ContentLayer::setContentsOpaque(), so that non-web content can also set this flag. Idk if it&apos;s easiest to do that here, before, or after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750948</commentid>
    <comment_count>16</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-25 09:56:44 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 169256 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169256&amp;action=review
&gt; 
&gt; Thanks Alok, this looks like a great first step.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:302
&gt; &gt; +    m_opaqueRectTrackingContentLayerDelegate-&gt;setOpaque(opaque);
&gt; 
&gt; nit: pass m_contentsOpaque in like the above line?

I would prefer not to pass this bit in WebContentLayerClient::paintContents(). contentsOpaque is different from canPaintLCDText. It is not specific to a particular paint call. It is more like a property of the layer.

&gt; I&apos;m thinking we should make the content layer call this via the WebContentLayerClient api from ContentLayer::setContentsOpaque(), so that non-web content can also set this flag. Idk if it&apos;s easiest to do that here, before, or after.

I like this suggestion. But it would mean adding a WebContentLayerClient::setContentsOpaque call, which seems wrong on a class named Client. Usually FooClient has a reference to Foo, and can query for a property as needed. Looking at it more closely this class should rather be named WebContentLayerDelegate. Anyways, I think this can more easily be done in a separate patch. I do not need it now.

Thanks for your review Dana!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751147</commentid>
    <comment_count>17</comment_count>
      <attachid>170717</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-25 13:09:03 -0700</bug_when>
    <thetext>Created attachment 170717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751185</commentid>
    <comment_count>18</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-25 13:58:03 -0700</bug_when>
    <thetext>Chromium patch that makes use of the new interface: http://codereview.chromium.org/11274057/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752075</commentid>
    <comment_count>19</comment_count>
      <attachid>170933</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-26 08:32:39 -0700</bug_when>
    <thetext>Created attachment 170933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752078</commentid>
    <comment_count>20</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-26 08:33:44 -0700</bug_when>
    <thetext>I misunderstood comment #15. It is now addressed in the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753705</commentid>
    <comment_count>21</comment_count>
      <attachid>170933</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-29 13:28:17 -0700</bug_when>
    <thetext>Comment on attachment 170933
Patch

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

I believe this will completely break aura - you should test that.

To land an API change like this, what you probably should do is either add a #define guard for the signature change and land chromium-side code first that checks for the #define and adjusts accordingly.  After the patch lands you can remove the guards from chromium code and then remove the #define from the WebKit header (although this step is often neglected, as you can tell from the #define WEBCONTENTLAYERCLIENT_HAS_OPAQUE / _FLOAT_OPAQUE_RECT #defines in WCLC.h).

R- since this will probably break chromeos completely.  Otherwise, looks fine.

&gt; Source/Platform/chromium/public/WebContentLayerClient.h:48
&gt; +    // FIXME: Remove this version of paintContents after chromium starts using the
&gt; +    // new version with canPaintLCDText.
&gt; +    void paintContents(WebCanvas* canvas, const WebRect&amp; clip, WebFloatRect&amp; opaque)

Did you see the WebContentLayerClient override in ui/compositor/layer.h in the chromium tree?  This change won&apos;t work for that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753749</commentid>
    <comment_count>22</comment_count>
      <attachid>171310</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-29 14:09:59 -0700</bug_when>
    <thetext>Created attachment 171310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753750</commentid>
    <comment_count>23</comment_count>
      <attachid>170933</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-29 14:11:18 -0700</bug_when>
    <thetext>Comment on attachment 170933
Patch

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

&gt;&gt; Source/Platform/chromium/public/WebContentLayerClient.h:48
&gt;&gt; +    void paintContents(WebCanvas* canvas, const WebRect&amp; clip, WebFloatRect&amp; opaque)
&gt; 
&gt; Did you see the WebContentLayerClient override in ui/compositor/layer.h in the chromium tree?  This change won&apos;t work for that

Good catch. I added &quot;virtual&quot; back in the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753768</commentid>
    <comment_count>24</comment_count>
      <attachid>171310</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-29 14:31:53 -0700</bug_when>
    <thetext>Comment on attachment 171310
Patch

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

&gt; Source/Platform/chromium/public/WebContentLayerClient.h:51
&gt; +    // FIXME: Remove this version of paintContents after chromium starts using the
&gt; +    // new version with canPaintLCDText.
&gt; +    virtual void paintContents(WebCanvas* canvas, const WebRect&amp; clip, WebFloatRect&amp; opaque)
&gt; +    {
&gt; +        paintContents(canvas, clip, false, opaque);
&gt; +    }

Now this is just weird - you&apos;re using implementation inheritance.  I really think you should add the new parameter with a guard and do the rolls that way instead of trying to rely on the default implementation.  Any code that calls the 4-arg version of paintContents() will silently break chromium code that implements only the 3-arg version today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754546</commentid>
    <comment_count>25</comment_count>
      <attachid>171491</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-30 11:52:48 -0700</bug_when>
    <thetext>Created attachment 171491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754550</commentid>
    <comment_count>26</comment_count>
      <attachid>171310</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-30 11:59:24 -0700</bug_when>
    <thetext>Comment on attachment 171310
Patch

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

Chromium patch has landed and DEPS has been rolled.

&gt;&gt; Source/Platform/chromium/public/WebContentLayerClient.h:51
&gt;&gt; +    }
&gt; 
&gt; Now this is just weird - you&apos;re using implementation inheritance.  I really think you should add the new parameter with a guard and do the rolls that way instead of trying to rely on the default implementation.  Any code that calls the 4-arg version of paintContents() will silently break chromium code that implements only the 3-arg version today.

Added parameter guard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755666</commentid>
    <comment_count>27</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2012-10-31 15:18:34 -0700</bug_when>
    <thetext>ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755686</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 15:43:26 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; ping!

I presume you&apos;re looking for jamesr here.  It&apos;s helpful to mention the person&apos;s name in your message so they know to take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755689</commentid>
    <comment_count>29</comment_count>
      <attachid>171491</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-31 15:49:21 -0700</bug_when>
    <thetext>Comment on attachment 171491
Patch

Seems ok, although aving an options struct might be better. If you need to add anything else to this interface please do that instead of adding another parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755850</commentid>
    <comment_count>30</comment_count>
      <attachid>171491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 21:16:32 -0700</bug_when>
    <thetext>Comment on attachment 171491
Patch

Clearing flags on attachment: 171491

Committed r133122: &lt;http://trac.webkit.org/changeset/133122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755851</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 21:16:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755863</commentid>
    <comment_count>32</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-10-31 21:44:57 -0700</bug_when>
    <thetext>Reverted r133122 for reason:

Broke Win, Android, ChromeOS builds

Committed r133125: &lt;http://trac.webkit.org/changeset/133125&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758666</commentid>
    <comment_count>33</comment_count>
      <attachid>171491</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-11-05 10:26:44 -0800</bug_when>
    <thetext>Comment on attachment 171491
Patch

Let&apos;s try again.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758698</commentid>
    <comment_count>34</comment_count>
      <attachid>171491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 10:56:30 -0800</bug_when>
    <thetext>Comment on attachment 171491
Patch

Clearing flags on attachment: 171491

Committed r133499: &lt;http://trac.webkit.org/changeset/133499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758700</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 10:56:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168271</attachid>
            <date>2012-10-11 13:50:52 -0700</date>
            <delta_ts>2012-10-17 14:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121011144949.patch</filename>
            <type>text/plain</type>
            <size>8228</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNjYxZmU2NDBlYmJk
NTVkZGQ3YTcxY2YyNjZjMTFhMTA0ZTNlYzU0Li5lZTY5OWY1M2ZiYTNlMWNmOGYxOWVkZGU3YzRi
OWIzOTkzNzIxMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xMSAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIEFkZCBXZWJMYXllcjo6Y2FuVXNlTENEVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXNwZWN0IHRoZSBMQ0QgdGV4dCBzZXR0aW5nIG9uIGxh
eWVyIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4K
KworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllci5oOgorICAgICAgICAoV2ViTGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllcjo6Y2FuVXNlTENEVGV4dCk6CisKIDIwMTIt
MTAtMTAgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBi
YWNrZ3JvdW5kIGNvbG9yIGluIFdlYkxheWVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODcwNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhZWFjNzE2M2ZkZDYxZmQzNzgyZGVmMTBk
ZTM4ODlhNzc0NjRiNjEuLmM5NDk0YTM3YjY1MDcwZWQyNGM2NTYzZWYzZWVjNDBmNDY2NGI0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0xMSAgQWxvayBQcml5YWRhcnNo
aSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBXZWJMYXll
cjo6Y2FuVXNlTENEVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXNwZWN0IHRoZSBMQ0QgdGV4dCBzZXR0aW5nIG9uIGxheWVyIGluc3RlYWQgb2Yg
dHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgbmVlZGVkLiBUaGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBhbnl0aGluZyBmdW5j
dGlvbmFsbHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9t
aXVtOjp1cGRhdGVDaGlsZExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNo
cm9taXVtOjpwYWludCk6CisKIDIwMTItMTAtMTEgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtA
cmltLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBub2RlIHNlYXJjaCBkb2VzIG5vdCB3
b3JrIHdpdGggZWxlbWVudHMgb24gdG91Y2ggc3RhcnQgbGlzdGVuZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMzA3YWQ1YzgwMTdmMGE1MTMwZTMwZmNlNGYzNWRkYjI5YzViMDkyMC4u
YjQ1MzQ5YmU3Njk4NjFiNzVkMWVkZjdjNjFlYzMwNTVkMjM1MTcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMC0xMSAgQWxvayBQcml5YWRhcnNo
aSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBXZWJMYXll
cjo6Y2FuVXNlTENEVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXNwZWN0IHRoZSBMQ0QgdGV4dCBzZXR0aW5nIG9uIGxheWVyIGluc3RlYWQgb2Yg
dHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAgICAqIHNy
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb25Db21w
b3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdl
YktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAg
KiBzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Lmg6CisgICAgICAgIChOb25Db21wb3NpdGVk
Q29udGVudEhvc3QpOgorCiAyMDEyLTEwLTExICBNaWhhaSBCYWxhbiAgPG1pYmFsYW5AYWRvYmUu
Y29tPgogCiAgICAgICAgIEFsd2F5cyBlbmFibGUgdGhlIGV4cGVyaW1lbnRzIHRhYiBmb3IgV2Vi
S2l0IG5pZ2h0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApp
bmRleCA3ZWM1MTY1NTVlZDM5ZDgxZWQwOTgyOWUzYmYyMTQzMDRkNDRmMGZmLi5kOGQzMjhhNDE1
YzljOGRhNjhkMGU0YmY4ZDE0NjQ4NDQ3ZTZmOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJMYXllci5oCkBAIC0yMDAsNiArMjAwLDEyIEBAIHB1YmxpYzoKICAgICAv
LyBGb3JjZXMgdGhpcyBsYXllciB0byB1c2UgYSByZW5kZXIgc3VyZmFjZS4gVGhlcmUgaXMgbm8g
YmVuZWZpdCBpbiBkb2luZwogICAgIC8vIHNvLCBidXQgdGhpcyBpcyB0byBmYWNpbGl0YXRlIGJl
bmNobWFya3MgYW5kIHRlc3RzLgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZVJlbmRlclN1cmZh
Y2UoYm9vbCkgPSAwOworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRleHQgY2FuIGJlIHBhaW50
ZWQgaW50byB0aGlzIGxheWVyIHdpdGggTENEIGFudGktYWxpYXNpbmcuCisgICAgLy8gVHlwaWNh
bGx5IExDRCB0ZXh0IGlzIGFsbG93ZWQgaWYgdGhlIGxheWVyIGlzIG9wYXF1ZSBhbmQgaXMgbm90
IHJvdGF0ZWQKKyAgICAvLyBvciBzY2FsZWQuCisgICAgLy8gVE9ETyhhbG9rcCk6IE1ha2UgcHVy
ZSB2aXJ0dWFsIGFmdGVyIGltcGxlbWVudGluZyB0aGUgaW1wbCBzaWRlLgorICAgIHZpcnR1YWwg
Ym9vbCBjYW5Vc2VMQ0RUZXh0KCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMDc1
NzQ5ZTlhMWI4ZWM2MTdmZGVjYTg5Y2ZmZDJlNDlhODgyOTY4ZC4uNmU3NGYyMTlhMTYzYmZkNTMz
NDg4Y2I5MDZmZDNlMDBjNmQzNWI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uY3BwCkBAIC02NDYsNyArNjQ2LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNl
dERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgKIAogdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNoaWxkTGlzdCgpCiB7Ci0gICAgV2ViTGF5
ZXIqIGNoaWxkSG9zdCA9IG1fdHJhbnNmb3JtTGF5ZXIgPyBtX3RyYW5zZm9ybUxheWVyLmdldCgp
IDogbV9sYXllci0+bGF5ZXIoKTsKKyAgICBXZWJMYXllciogY2hpbGRIb3N0ID0gcGxhdGZvcm1M
YXllcigpOwogICAgIGNoaWxkSG9zdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIAogICAgIGNsZWFy
Q29udGVudHNMYXllcklmVW5yZWdpc3RlcmVkKCk7CkBAIC04NjIsNyArODYyLDE1IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNocm9taXVtOjphcHBsaWVzUGFnZVNjYWxlKCkgY29uc3QKIAogdm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgSW50UmVjdCYgY2xpcCkKIHsKLSAgICBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5zZXRE
cmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKKyAgICBib29sIHVzZUxDRFRleHQgPSBmYWxzZTsK
KyAgICAvLyBPbiBhbmRyb2lkIGFsbCB0ZXh0IGlzIGdyYXlzY2FsZS4KKyNpZiAhT1MoQU5EUk9J
RCkKKyAgICB1c2VMQ0RUZXh0ID0gcGxhdGZvcm1MYXllcigpLT5jYW5Vc2VMQ0RUZXh0KCkgJiYg
Y29udGVudHNPcGFxdWUoKTsKKyNlbmRpZgorCisgICAgLy8gVE9ETyhhbG9rcCk6IFJlbmFtZSBQ
bGF0Zm9ybUNvbnRleHRTa2lhOjpzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcgorICAgIC8vIHRvIFBs
YXRmb3JtQ29udGV4dFNraWE6OnNldENhblVzZUxDRFRleHQKKyAgICBjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcighdXNlTENEVGV4dCk7CiAgICAgcGFp
bnRHcmFwaGljc0xheWVyQ29udGVudHMoY29udGV4dCwgY2xpcCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3Bw
CmluZGV4IDIxYjk3MjViMGVhNWQwMGEwOGJhMzY0MTZlNWI4MDVjMGYzZmViZTEuLjI1OGI1YmZh
NmY5NTBkZjI1ZWY5NDFmMjk3NGI3NWZhNDdjNzU5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNDEs
NyArNDEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QoV2ViVmlld0ltcGwqIHdlYlZpZXcpCiAgICAgOiBt
X3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fb3BhcXVlKHRydWUpCiAgICAgLCBtX3Nob3dEZWJ1
Z0JvcmRlcnMoZmFsc2UpCiB7CiAgICAgbV9ncmFwaGljc0xheWVyID0gV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6Y3JlYXRlKDAsIHRoaXMpOwpAQCAtNTAsOSArNDksMTAgQEAgTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QoV2ViVmlld0ltcGwqIHdlYlZp
ZXcpCiAjZW5kaWYKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsK
ICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFwcGxpZXNQYWdlU2NhbGUoIW1fd2ViVmlldy0+cGFn
ZSgpLT5zZXR0aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKTsKKyAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKHRydWUpOworICAgIC8vIFRPRE8o
YWxva3ApOiBSZW1vdmUgTENEIHRleHQgc2V0dGluZyBhZnRlciBXZWJMYXllcjo6Y2FuVXNlTENE
VGV4dCBpcyBpbXBsZW1lbnRlZC4KICAgICBXZWJDb250ZW50TGF5ZXIqIGxheWVyID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtKj4obV9ncmFwaGljc0xheWVyLmdl
dCgpKS0+Y29udGVudExheWVyKCk7CiAgICAgbGF5ZXItPnNldFVzZUxDRFRleHQodHJ1ZSk7Ci0g
ICAgbGF5ZXItPmxheWVyKCktPnNldE9wYXF1ZSh0cnVlKTsKICNpZiAhT1MoQU5EUk9JRCkKICAg
ICBsYXllci0+c2V0RHJhd0NoZWNrZXJib2FyZEZvck1pc3NpbmdUaWxlcyh0cnVlKTsKICNlbmRp
ZgpAQCAtNjksOCArNjksNyBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0QmFj
a2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKIAogdm9pZCBOb25Db21w
b3NpdGVkQ29udGVudEhvc3Q6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkKIHsKLSAgICBtX29wYXF1
ZSA9IG9wYXF1ZTsKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0T3Bh
cXVlKG9wYXF1ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c09wYXF1ZShvcGFx
dWUpOwogfQogCiB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIo
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCkBAIC0xNzMsMTIgKzE3MiwxNiBAQCB2b2lk
IE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKgogCiB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6cGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpCiB7Ci0gICAgLy8gT24gbm9uLWFuZHJv
aWQgcGxhdGZvcm1zLCB3ZSB3YW50IHRvIHJlbmRlciB0ZXh0IHdpdGggc3VicGl4ZWwgYW50aWFs
aWFzaW5nIG9uIHRoZSByb290IGxheWVyCi0gICAgLy8gc28gbG9uZyBhcyB0aGUgcm9vdCBpcyBv
cGFxdWUuIE9uIGFuZHJvaWQgYWxsIHRleHQgaXMgZ3JheXNjYWxlLgorICAgIC8vIFRPRE8oYWxv
a3ApOiBSZW1vdmUgdGhlIExDRCBsb2dpYyBmcm9tIGhlcmUuCisgICAgLy8gVGhlIGxvZ2ljIGlu
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cGFpbnQgd291bGQgYmUgc3VmZmljaWVudCBvbmNlCisg
ICAgLy8gV2ViTGF5ZXI6OmNhblVzZUxDRFRleHQgaXMgaW1wbGVtZW50ZWQuCisgICAgYm9vbCB1
c2VMQ0RUZXh0ID0gZmFsc2U7CisgICAgLy8gT24gYW5kcm9pZCBhbGwgdGV4dCBpcyBncmF5c2Nh
bGUuCiAjaWYgIU9TKEFORFJPSUQpCi0gICAgaWYgKG1fb3BhcXVlKQotICAgICAgICBjb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcihmYWxzZSk7CisgICAg
dXNlTENEVGV4dCA9IG1fZ3JhcGhpY3NMYXllci0+Y29udGVudHNPcGFxdWUoKTsKICNlbmRpZgor
ICAgIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKCF1
c2VMQ0RUZXh0KTsKKwogICAgIGNvbnRleHQudHJhbnNsYXRlKC1tX2xheWVyQWRqdXN0KTsKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IGFkanVzdGVkQ2xpcFJlY3QgPSBjbGlwUmVjdDsKICAgICBhZGp1
c3RlZENsaXBSZWN0Lm1vdmUobV9sYXllckFkanVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCmluZGV4IDA4ZTljNjli
MmY3Y2ExZjNlNGM4MDBlODkyMjgxOWMyZTk1NmJjYjQuLmJkM2E1Mjg1MzA1ZmEzMjhjYTdhZDc2
OWE2M2Y5NWFjMDFkZDU2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCkBAIC04Miw3ICs4Miw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fbGF5ZXJBZGp1c3Q7CiAKLSAgICBib29sIG1fb3BhcXVlOwogICAgIGJvb2wgbV9zaG93
RGVidWdCb3JkZXJzOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169256</attachid>
            <date>2012-10-17 14:02:11 -0700</date>
            <delta_ts>2012-10-25 13:09:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121017150058.patch</filename>
            <type>text/plain</type>
            <size>15608</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNjYxZmU2NDBlYmJk
NTVkZGQ3YTcxY2YyNjZjMTFhMTA0ZTNlYzU0Li42MjhiY2Q0YjYyYmJjYmUyMjY2N2NhYTI3M2Jk
NTE3NzA1NWE2MmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRD
b250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWlu
dENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxh
eWVycy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMTAgIFNjb3R0
IFZpb2xldCAgPHNreUBnb29nbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBiYWNrZ3JvdW5kIGNv
bG9yIGluIFdlYkxheWVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODcwNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGFhZWFjNzE2M2ZkZDYxZmQzNzgyZGVmMTBkZTM4ODlhNzc0NjRi
NjEuLmNiYzI0ZGRiZjRmYzM2OTU0MTg0YTRjOGRmNWU4MTViMDc0NmU3Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMC0xNyAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRv
IFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQg
dG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmlu
ZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAgICBObyBuZXcgdGVz
dHMgbmVlZGVkLiBUaGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBhbnl0aGluZyBmdW5jdGlvbmFs
bHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDb250ZW50c09wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21p
dW06OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpP
cGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29u
dGVudExheWVyRGVsZWdhdGUuaDoKKyAgICAgICAgKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRM
YXllckRlbGVnYXRlKToKKwogMjAxMi0xMC0xMSAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Npa0By
aW0uY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG5vZGUgc2VhcmNoIGRvZXMgbm90IHdv
cmsgd2l0aCBlbGVtZW50cyBvbiB0b3VjaCBzdGFydCBsaXN0ZW5lcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCAzMDdhZDVjODAxN2YwYTUxMzBlMzBmY2U0ZjM1ZGRiMjljNWIwOTIwLi4z
MzA1MDlkYjU1NGRhOGZmNDYxNzM5NDMyNTk1ZWQxZTE5Y2JjNzdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTE3ICBBbG9rIFByaXlhZGFyc2hp
ICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBjYW5QYWlu
dExDRFRleHQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBMQ0QgdGV4dCBzZXR0
aW5nIHBhc3NlZCB0byBXZWJDb250ZW50TGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMgaW5zdGVh
ZCBvZiB0dXJuaW5nIGl0IG9mZiBmb3IgYWxsIGNvbXBvc2l0ZWQgbGF5ZXJzLgorCisgICAgICAg
ICogc3JjL0xpbmtIaWdobGlnaHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaW5rSGlnaGxpZ2h0
OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBzcmMvTGlua0hpZ2hsaWdodC5oOgorICAgICAg
ICAoTGlua0hpZ2hsaWdodCk6CisgICAgICAgICogc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0KToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpzZXRPcGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVu
dEhvc3Q6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVu
dEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgICog
dGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRFU1RfRik6CisKIDIwMTItMTAtMTEgIE1paGFpIEJhbGFuICA8bWli
YWxhbkBhZG9iZS5jb20+CiAKICAgICAgICAgQWx3YXlzIGVuYWJsZSB0aGUgZXhwZXJpbWVudHMg
dGFiIGZvciBXZWJLaXQgbmlnaHRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50LmgKaW5kZXggNTQ2OWJkMjhjODRmZmVk
ODAzMDAwMzY3MmYwOWVhMjU3MGIwZDlmZi4uNzc0ZjkzY2EyOTY0ODJhMjc2MzllMWZiYzEwNmY0
YzdlZmNmMTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJDb250ZW50TGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5oCkBAIC00Myw3ICs0MywxMyBAQCBwdWJsaWM6CiAg
ICAgLy8gb3B0aW1pemF0aW9ucy4KICNkZWZpbmUgV0VCQ09OVEVOVExBWUVSQ0xJRU5UX0hBU19P
UEFRVUUgMQogI2RlZmluZSBXRUJDT05URU5UTEFZRVJDTElFTlRfRkxPQVRfT1BBUVVFX1JFQ1Qg
MQotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJl
Y3QmIGNsaXAsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIHZlcnNpb24gb2YgcGFpbnRDb250ZW50cyBhZnRlciBjaHJvbWl1bSBzdGFydHMgdXNp
bmcgdGhlCisgICAgLy8gbmV3IHZlcnNpb24gd2l0aCBjYW5QYWludExDRFRleHQuCisgICAgdm9p
ZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBX
ZWJGbG9hdFJlY3QmIG9wYXF1ZSkKKyAgICB7CisgICAgICAgIHBhaW50Q29udGVudHMoY2FudmFz
LCBjbGlwLCBmYWxzZSwgb3BhcXVlKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHMoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYgY2xpcCwgYm9vbCBjYW5QYWludExDRFRl
eHQsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IH5XZWJDb250ZW50TGF5ZXJDbGllbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uY3BwCmluZGV4IDA3NTc0OWU5YTFiOGVjNjE3ZmRlY2E4OWNmZmQyZTQ5YTg4Mjk2OGQu
LjAzNzc2NTVmOGZhYmFmYzg5MTExMjE1ZDg2OTkyZDEwMjM0ZjFmNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMjk5LDYgKzI5OSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c09wYXF1ZShib29sIG9wYXF1ZSkKIHsKICAgICBH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c09wYXF1ZShvcGFxdWUpOwogICAgIG1fbGF5ZXItPmxh
eWVyKCktPnNldE9wYXF1ZShtX2NvbnRlbnRzT3BhcXVlKTsKKyAgICBtX29wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLT5zZXRPcGFxdWUob3BhcXVlKTsKIH0KIAogc3RhdGlj
IGJvb2wgY29weVdlYkNvcmVGaWx0ZXJPcGVyYXRpb25zVG9XZWJGaWx0ZXJPcGVyYXRpb25zKGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIFdlYkZpbHRlck9wZXJhdGlvbnMmIHdlYkZp
bHRlcnMpCkBAIC04NjIsNyArODYzLDYgQEAgYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFw
cGxpZXNQYWdlU2NhbGUoKSBjb25zdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQogewotICAg
IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUp
OwogICAgIHBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKGNvbnRleHQsIGNsaXApOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFx
dWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJE
ZWxlZ2F0ZS5jcHAKaW5kZXggYTA2YWM2NjZlMTM0Y2NkNjllNzRiMWEzZjdjZTNhNTZjMGU1ZDg4
Ni4uNjJlZGNlZDE3OTdmM2NjNzMzYTdjYmVmNGIyODRkMzNiZjQzNGNlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRl
LmNwcApAQCAtNDksNyArNDksNyBAQCBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxl
Z2F0ZTo6fk9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKAogewogfQogCi12
b2lkIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjpwYWludENvbnRlbnRz
KFNrQ2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIGNsaXAsIFdlYkZsb2F0UmVjdCYgb3Bh
cXVlKQordm9pZCBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6cGFpbnRD
b250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBib29sIGNhblBh
aW50TENEVGV4dCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpCiB7CiAgICAgUGxhdGZvcm1Db250ZXh0
U2tpYSBwbGF0Zm9ybUNvbnRleHQoY2FudmFzKTsKICNpZiBkZWZpbmVkKFNLX1NVUFBPUlRfSElO
VElOR19TQ0FMRV9GQUNUT1IpCkBAIC01Nyw2ICs1NywxMCBAQCB2b2lkIE9wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjpwYWludENvbnRlbnRzKFNrQ2FudmFzKiBjYW52YXMs
IGNvbgogICAgICAgICBwbGF0Zm9ybUNvbnRleHQuc2V0SGludGluZ1NjYWxlRmFjdG9yKGNhbnZh
cy0+Z2V0VG90YWxNYXRyaXgoKS5nZXRTY2FsZVgoKSk7CiAjZW5kaWYKICAgICBwbGF0Zm9ybUNv
bnRleHQuc2V0VHJhY2tPcGFxdWVSZWdpb24oIW1fb3BhcXVlKTsKKyAgICAvLyBGSVhNRTogUmVu
YW1lIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldERyYXdpbmdUb0ltYWdlQnVmZmVyIHRvIHNldENh
blBhaW50TENEVGV4dC4KKyAgICAvLyBJIGFsc28gc3VzcGVjdCB0aGF0IGEgZnVuY3Rpb24gb24g
UGxhdGZvcm1Db250ZXh0U2tpYSBpcyBub3QgcmVhbGx5IG5lZWRlZC4KKyAgICAvLyBHcmFwaGlj
c0NvbnRleHQ6OnNldEFsbG93c0ZvbnRTbW9vdGhpbmcgY2FuIGJlIHVzZWQgZm9yIHRoaXMgcHVy
cG9zZS4KKyAgICBwbGF0Zm9ybUNvbnRleHQuc2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIoIShjYW5Q
YWludExDRFRleHQgJiYgbV9vcGFxdWUpKTsKICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgm
cGxhdGZvcm1Db250ZXh0KTsKIAogICAgIC8vIFJlY29yZCB0cmFuc2Zvcm0gcHJpb3IgdG8gcGFp
bnRpbmcsIGFzIGFsbCBvcGFxdWUgdHJhY2tpbmcgd2lsbCBiZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29u
dGVudExheWVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmgKaW5kZXggYmI1
YzJhZTk2ZTJkMzJkMDEzN2QyZGQ3NGQ0MzY2MjAyMGUzOTM5My4uNDUxYjY0N2IxM2QxZDE2MGQy
ZGFmNzk3ZGZhNzQwZjBiNmQyZDAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFx
dWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE9wYXF1ZShib29sIG9wYXF1ZSkgeyBtX29wYXF1ZSA9IG9wYXF1
ZTsgfQogCiAgICAgLy8gV2ViS2l0OjpXZWJDb250ZW50TGF5ZXJDbGllbnQgaW1wbGVtZW50YXRp
b24uCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBjb25zdCBXZWJL
aXQ6OldlYlJlY3QmIGNsaXAsIFdlYktpdDo6V2ViRmxvYXRSZWN0JiBvcGFxdWUpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwgY29uc3QgV2ViS2l0
OjpXZWJSZWN0JiBjbGlwLCBib29sIGNhblBhaW50TENEVGV4dCwgV2ViS2l0OjpXZWJGbG9hdFJl
Y3QmIG9wYXF1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0UGFp
bnRlciogbV9wYWludGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
TGlua0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxp
Z2h0LmNwcAppbmRleCA4YTZjMzQ1OWQ1MzM1ZGVhODQ2ZjI0MDljMDMwMWU0NTg0M2Y5NjFhLi41
Nzc5ODMyOTU1YzViNTM4NTJjMDA4MWQyNTRkZjU3NTNlNzU5NDRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIGJv
b2wgTGlua0hpZ2hsaWdodDo6Y29tcHV0ZUhpZ2hsaWdodExheWVyUGF0aEFuZFBvc2l0aW9uKFJl
bmRlckxheWVyKiBjb21wb3NpdGluCiAgICAgcmV0dXJuIHBhdGhIYXNDaGFuZ2VkOwogfQogCi12
b2lkIExpbmtIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoV2ViQ2FudmFzKiBjYW52YXMsIGNvbnN0
IFdlYlJlY3QmIHdlYkNsaXBSZWN0LCBXZWJGbG9hdFJlY3QmKQordm9pZCBMaW5rSGlnaGxpZ2h0
OjpwYWludENvbnRlbnRzKFdlYkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiB3ZWJDbGlw
UmVjdCwgYm9vbCwgV2ViRmxvYXRSZWN0JikKIHsKICAgICBpZiAoIW1fbm9kZSB8fCAhbV9ub2Rl
LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9MaW5rSGlnaGxpZ2h0LmgKaW5kZXggM2JhYzNjNzI5ZGQ4OTgyMjkzYTY3NGVkYmZkYmI3NjVj
ODYxYmY3Yi4uYzFhZTkxOWVlMDZjMjJhYWJmMGUzMTg3NWYxNTU0MjkyZTIzOTE2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuaApAQCAtNTgsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVHZW9tZXRyeSgpOwogCiAgICAgLy8gV2ViQ29udGVu
dExheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNsaXBSZWN0LCBXZWJGbG9hdFJlY3QmIG9w
YXF1ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoV2ViQ2FudmFz
KiwgY29uc3QgV2ViUmVjdCYgY2xpcFJlY3QsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9h
dFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJBbmltYXRpb25EZWxlZ2F0ZSBp
bXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChk
b3VibGUgdGltZSkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAppbmRleCAyMWI5NzI1YjBlYTVkMDBh
MDhiYTM2NDE2ZTViODA1YzBmM2ZlYmUxLi42OTIxMzY4NjFkOTBiYjBlZTEwMDdiZjRhZjM0Mjc4
YmUyMmUzZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0KFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAg
LCBtX29wYXF1ZSh0cnVlKQogICAgICwgbV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogewogICAg
IG1fZ3JhcGhpY3NMYXllciA9IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgwLCB0aGlz
KTsKQEAgLTUwLDkgKzQ5LDEwIEBAIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0KFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogI2VuZGlmCiAgICAgbV9ncmFw
aGljc0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXRBcHBsaWVzUGFnZVNjYWxlKCFtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YXBwbHlQ
YWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRD
b250ZW50c09wYXF1ZSh0cnVlKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIExDRCB0ZXh0IHNldHRp
bmcgYWZ0ZXIgaXQgaXMgaW1wbGVtZW50ZWQgaW4gY2hyb21pdW0uCiAgICAgV2ViQ29udGVudExh
eWVyKiBsYXllciA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bSo+
KG1fZ3JhcGhpY3NMYXllci5nZXQoKSktPmNvbnRlbnRMYXllcigpOwogICAgIGxheWVyLT5zZXRV
c2VMQ0RUZXh0KHRydWUpOwotICAgIGxheWVyLT5sYXllcigpLT5zZXRPcGFxdWUodHJ1ZSk7CiAj
aWYgIU9TKEFORFJPSUQpCiAgICAgbGF5ZXItPnNldERyYXdDaGVja2VyYm9hcmRGb3JNaXNzaW5n
VGlsZXModHJ1ZSk7CiAjZW5kaWYKQEAgLTY5LDggKzY5LDcgQEAgdm9pZCBOb25Db21wb3NpdGVk
Q29udGVudEhvc3Q6OnNldEJhY2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29s
b3IpCiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRPcGFxdWUoYm9vbCBvcGFx
dWUpCiB7Ci0gICAgbV9vcGFxdWUgPSBvcGFxdWU7Ci0gICAgbV9ncmFwaGljc0xheWVyLT5wbGF0
Zm9ybUxheWVyKCktPnNldE9wYXF1ZShvcGFxdWUpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0
Q29udGVudHNPcGFxdWUob3BhcXVlKTsKIH0KIAogdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhv
c3Q6OnNldFNjcm9sbExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKQpAQCAtMTcz
LDEwICsxNzIsMTEgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Om5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcioKIAogdm9pZCBOb25Db21wb3Np
dGVkQ29udGVudEhvc3Q6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KQogewor
ICAgIC8vIEZJWE1FOiBSZW1vdmUgTENEIHRleHQgc2V0dGluZyBhZnRlciBpdCBpcyBpbXBsZW1l
bnRlZCBpbiBjaHJvbWl1bS4KICAgICAvLyBPbiBub24tYW5kcm9pZCBwbGF0Zm9ybXMsIHdlIHdh
bnQgdG8gcmVuZGVyIHRleHQgd2l0aCBzdWJwaXhlbCBhbnRpYWxpYXNpbmcgb24gdGhlIHJvb3Qg
bGF5ZXIKICAgICAvLyBzbyBsb25nIGFzIHRoZSByb290IGlzIG9wYXF1ZS4gT24gYW5kcm9pZCBh
bGwgdGV4dCBpcyBncmF5c2NhbGUuCiAjaWYgIU9TKEFORFJPSUQpCi0gICAgaWYgKG1fb3BhcXVl
KQorICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmNvbnRlbnRzT3BhcXVlKCkpCiAgICAgICAgIGNv
bnRleHQucGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKGZhbHNlKTsK
ICNlbmRpZgogICAgIGNvbnRleHQudHJhbnNsYXRlKC1tX2xheWVyQWRqdXN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
aW5kZXggMDhlOWM2OWIyZjdjYTFmM2U0YzgwMGU4OTIyODE5YzJlOTU2YmNiNC4uYmQzYTUyODUz
MDVmYTMyOGNhN2FkNzY5YTYzZjk1YWMwMWRkNTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKQEAgLTgyLDcgKzgy
LDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwogICAg
IFdlYkNvcmU6OkludFNpemUgbV9sYXllckFkanVzdDsKIAotICAgIGJvb2wgbV9vcGFxdWU7CiAg
ICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRl
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RUcmFja2lu
Z0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAKaW5kZXggMGNmODI0OTRiMGYyN2I0Y2NjOTgz
OTMzMWQzOTU5NTkyNTkzZjg2NS4uMzllMzZhOWZiMTE1NTQ5YjdkZDYzODg0Y2Q3YzYzMTE5Yzdl
MWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9PcGFxdWVSZWN0
VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50
TGF5ZXJEZWxlZ2F0ZVRlc3QsIHRlc3RPcGFxdWVSZWN0UHJlc2VudEFmdGVyT3BhCiAgICAgT3Bh
cXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUgZGVsZWdhdGUoJnBhaW50ZXIpOwog
CiAgICAgV2ViRmxvYXRSZWN0IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50
cyhza0NhbnZhcygpLCBjYW52YXNSZWN0KCksIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBh
aW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxzZSwgb3BhcXVlUmVjdCk7
CiAgICAgRVhQRUNUX0VRX1JFQ1QoV2ViRmxvYXRSZWN0KDAsIDAsIDQwMCwgNDAwKSwgb3BhcXVl
UmVjdCk7CiB9CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRBZnRlcgog
ICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlKCZwYWlu
dGVyKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50
Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxl
Z2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1
ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3Bh
cXVlUmVjdCk7CiB9CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRGb3JP
cAogICAgIGRlbGVnYXRlLnNldE9wYXF1ZSh0cnVlKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFx
dWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVj
dCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCks
IGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdl
YkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE4Miw3ICsxODIs
NyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0
ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRGb3JPcAogICAgIGRlbGVnYXRlLnNldE9wYXF1ZSh0cnVl
KTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29u
dGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0
ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJl
Y3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVl
UmVjdCk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0UGFydGlhbE9wYXF1ZVJlY3ROb1RyYW5zZgog
ICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlKCZwYWlu
dGVyKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50
Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxl
Z2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1
ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVjdChwYXJ0aWFsUmVjdC54KCks
IHBhcnRpYWxSZWN0LnkoKSwgcGFydGlhbFJlY3Qud2lkdGgoKSwgcGFydGlhbFJlY3QuaGVpZ2h0
KCkpLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMjA3LDcgKzIwNyw3IEBAIFRFU1RfRihPcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QsIHRlc3RQYXJ0aWFsT3BhcXVlUmVj
dFRyYW5zbGF0CiAKICAgICBXZWJGbG9hdFJlY3Qgb3BhcXVlUmVjdDsKICAgICBXZWJSZWN0IGNv
bnRlbnRSZWN0KDExLCAxMiwgMzg5LCAzODgpOwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMo
c2tDYW52YXMoKSwgY29udGVudFJlY3QsIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50
Q29udGVudHMoc2tDYW52YXMoKSwgY29udGVudFJlY3QsIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAg
ICBFWFBFQ1RfRVFfUkVDVChXZWJGbG9hdFJlY3QocGFydGlhbFJlY3QueCgpLCBwYXJ0aWFsUmVj
dC55KCksIHBhcnRpYWxSZWN0LndpZHRoKCksIHBhcnRpYWxSZWN0LmhlaWdodCgpKSwgb3BhcXVl
UmVjdCk7CiB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0SGludGluZ1NjYWxlRmFjdG9yU2V0KQogCiAg
ICAgSW50UmVjdCByZWN0QTsKICAgICBXZWJGbG9hdFJlY3QgcmVjdEI7Ci0gICAgZGVsZWdhdGUu
cGFpbnRDb250ZW50cygmY2FudmFzLCByZWN0QSwgcmVjdEIpOworICAgIGRlbGVnYXRlLnBhaW50
Q29udGVudHMoJmNhbnZhcywgcmVjdEEsIGZhbHNlLCByZWN0Qik7CiAgICAgRVhQRUNUX0VRKGNh
bGxiYWNrLmhpbnRpbmdTY2FsZSwgaGludGluZ1NjYWxlKTsKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170717</attachid>
            <date>2012-10-25 13:09:03 -0700</date>
            <delta_ts>2012-10-26 08:32:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121025140736.patch</filename>
            <type>text/plain</type>
            <size>15629</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMmRlNzQ3MTZlNWI4
MzIyYmZkODcxMWUwMzNmOGY4ZDFhZmMxYzdhLi5iNWQ3ZTViYzVjODk0YjZhNzA4OGYyMDBhYzcw
NGNkOTc1Y2NkN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRD
b250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWlu
dENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxh
eWVycy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMjQgIEpvaG4g
U2hldSAgPHNoZXVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0ZXh0dXJl
V2lkdGgoKSBhbmQgdGV4dHVyZUhlaWdodCgpIHRvIFdlYlZpZGVvRnJhbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBiZjc0NTE4NzA3M2E5Y2FmYjI2MWU5ODQzYzE5MTAzZjcxNDNmNTNmLi44MjNlMzI4Y2EzNDNl
ZmQyMTBmODAxN2JmNzk5MDUwODQ2ZjgxODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTItMTAtMTcgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBQYXNzIGNhblBhaW50TENEVGV4dCB0byBXZWJDb250ZW50TGF5ZXJD
bGllbnQ6OnBhaW50Q29udGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXNlIExDRCB0ZXh0IHNldHRpbmcgcGFzc2VkIHRvIFdlYkNvbnRlbnRMYXll
ckNsaWVudDo6cGFpbnRDb250ZW50cyBpbnN0ZWFkIG9mIHR1cm5pbmcgaXQgb2ZmIGZvciBhbGwg
Y29tcG9zaXRlZCBsYXllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gVGhpcyBw
YXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55dGhpbmcgZnVuY3Rpb25hbGx5LgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNPcGFxdWUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVu
dExheWVyRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRl
Lmg6CisgICAgICAgIChPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk6CisK
IDIwMTItMTAtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgcjEzMjQyNyBjaGFuZ2VkIHRoZSB0aWxpbmcgYmVoYXZpb3Igb2YgdGlsZWQgbGF5ZXIg
VGlsZUNhY2hlcyBhcyB3ZWxsIGFzIHRoZSBwYWdlIHRpbGUgY2FjaGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZjBlZGM1YjZjNTkzOTcwZTcyZGU4YzIyMjAyNDkzMGQ4MjhlM2FhNS4u
MWMxZGRmYjM4YzBmZDA3MGExZTZkNjBhZjBmZmQxZDA0MDM4ZDFiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNyAgQWxvayBQcml5YWRhcnNo
aSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBhc3MgY2FuUGFp
bnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTENEIHRleHQgc2V0
dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzIGluc3Rl
YWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAg
ICAqIHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGlua0hpZ2hsaWdo
dDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuaDoKKyAgICAg
ICAgKExpbmtIaWdobGlnaHQpOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVudEhv
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0Lmg6CisgICAgICAgIChOb25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAq
IHRlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpURVNUX0YpOgorCiAyMDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3Yg
IDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9y
dE11bHRpcGxlV2luZG93cyBzZXR0aW5nLCBuZWVkZWQgZm9yIEFuZHJvaWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5o
CmluZGV4IDU0NjliZDI4Yzg0ZmZlZDgwMzAwMDM2NzJmMDllYTI1NzBiMGQ5ZmYuLjFjNjg2NWIy
NDZjZTYxMGZkYmU5MzFjY2JkM2U1ODlhZjlkNDA4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaApAQCAtNDMs
NyArNDMsMTMgQEAgcHVibGljOgogICAgIC8vIG9wdGltaXphdGlvbnMuCiAjZGVmaW5lIFdFQkNP
TlRFTlRMQVlFUkNMSUVOVF9IQVNfT1BBUVVFIDEKICNkZWZpbmUgV0VCQ09OVEVOVExBWUVSQ0xJ
RU5UX0ZMT0FUX09QQVFVRV9SRUNUIDEKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgPSAw
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB2ZXJzaW9uIG9mIHBhaW50Q29udGVudHMgYWZ0
ZXIgY2hyb21pdW0gc3RhcnRzIHVzaW5nIHRoZQorICAgIC8vIG5ldyB2ZXJzaW9uIHdpdGggY2Fu
UGFpbnRMQ0RUZXh0LgorICAgIHZvaWQgcGFpbnRDb250ZW50cyhXZWJDYW52YXMqIGNhbnZhcywg
Y29uc3QgV2ViUmVjdCYgY2xpcCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpCisgICAgeworICAgICAg
ICBwYWludENvbnRlbnRzKGNhbnZhcywgY2xpcCwgZmFsc2UsIG9wYXF1ZSk7CisgICAgfQorICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNs
aXAsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgeyB9CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJDb250ZW50TGF5ZXJDbGllbnQoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNz
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGE1OTVkZjI4ZGExNmE0MDVlNGZj
NDgzNDY3NzMwYzcyZjVjZWE2ZWYuLjY3YmQ2ZDE4NjBmZTNkN2FjNzlhZmM4ZmVhMjYyMDYzNTRl
YjRhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMzAwLDYg
KzMwMCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c09wYXF1ZShi
b29sIG9wYXF1ZSkKIHsKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c09wYXF1ZShvcGFx
dWUpOwogICAgIG1fbGF5ZXItPmxheWVyKCktPnNldE9wYXF1ZShtX2NvbnRlbnRzT3BhcXVlKTsK
KyAgICBtX29wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLT5zZXRPcGFxdWUo
b3BhcXVlKTsKIH0KIAogc3RhdGljIGJvb2wgY29weVdlYkNvcmVGaWx0ZXJPcGVyYXRpb25zVG9X
ZWJGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIFdlYkZp
bHRlck9wZXJhdGlvbnMmIHdlYkZpbHRlcnMpCkBAIC04NjMsNyArODY0LDYgQEAgYm9vbCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OmFwcGxpZXNQYWdlU2NhbGUoKSBjb25zdAogCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBjbGlwKQogewotICAgIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdp
bmdUb0ltYWdlQnVmZmVyKHRydWUpOwogICAgIHBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKGNv
bnRleHQsIGNsaXApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0
VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5jcHAKaW5kZXggYTA2YWM2NjZlMTM0Y2NkNjll
NzRiMWEzZjdjZTNhNTZjMGU1ZDg4Ni4uNjJlZGNlZDE3OTdmM2NjNzMzYTdjYmVmNGIyODRkMzNi
ZjQzNGNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2lu
Z0NvbnRlbnRMYXllckRlbGVnYXRlLmNwcApAQCAtNDksNyArNDksNyBAQCBPcGFxdWVSZWN0VHJh
Y2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6fk9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXll
ckRlbGVnYXRlKAogewogfQogCi12b2lkIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRl
bGVnYXRlOjpwYWludENvbnRlbnRzKFNrQ2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIGNs
aXAsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKQordm9pZCBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50
TGF5ZXJEZWxlZ2F0ZTo6cGFpbnRDb250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb25zdCBXZWJS
ZWN0JiBjbGlwLCBib29sIGNhblBhaW50TENEVGV4dCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpCiB7
CiAgICAgUGxhdGZvcm1Db250ZXh0U2tpYSBwbGF0Zm9ybUNvbnRleHQoY2FudmFzKTsKICNpZiBk
ZWZpbmVkKFNLX1NVUFBPUlRfSElOVElOR19TQ0FMRV9GQUNUT1IpCkBAIC01Nyw2ICs1NywxMCBA
QCB2b2lkIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjpwYWludENvbnRl
bnRzKFNrQ2FudmFzKiBjYW52YXMsIGNvbgogICAgICAgICBwbGF0Zm9ybUNvbnRleHQuc2V0SGlu
dGluZ1NjYWxlRmFjdG9yKGNhbnZhcy0+Z2V0VG90YWxNYXRyaXgoKS5nZXRTY2FsZVgoKSk7CiAj
ZW5kaWYKICAgICBwbGF0Zm9ybUNvbnRleHQuc2V0VHJhY2tPcGFxdWVSZWdpb24oIW1fb3BhcXVl
KTsKKyAgICAvLyBGSVhNRTogUmVuYW1lIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldERyYXdpbmdU
b0ltYWdlQnVmZmVyIHRvIHNldENhblBhaW50TENEVGV4dC4KKyAgICAvLyBJIGFsc28gc3VzcGVj
dCB0aGF0IGEgZnVuY3Rpb24gb24gUGxhdGZvcm1Db250ZXh0U2tpYSBpcyBub3QgcmVhbGx5IG5l
ZWRlZC4KKyAgICAvLyBHcmFwaGljc0NvbnRleHQ6OnNldEFsbG93c0ZvbnRTbW9vdGhpbmcgY2Fu
IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KKyAgICBwbGF0Zm9ybUNvbnRleHQuc2V0RHJhd2lu
Z1RvSW1hZ2VCdWZmZXIoIShjYW5QYWludExDRFRleHQgJiYgbV9vcGFxdWUpKTsKICAgICBHcmFw
aGljc0NvbnRleHQgY29udGV4dCgmcGxhdGZvcm1Db250ZXh0KTsKIAogICAgIC8vIFJlY29yZCB0
cmFuc2Zvcm0gcHJpb3IgdG8gcGFpbnRpbmcsIGFzIGFsbCBvcGFxdWUgdHJhY2tpbmcgd2lsbCBi
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXll
ckRlbGVnYXRlLmgKaW5kZXggYmI1YzJhZTk2ZTJkMzJkMDEzN2QyZGQ3NGQ0MzY2MjAyMGUzOTM5
My4uNDUxYjY0N2IxM2QxZDE2MGQyZGFmNzk3ZGZhNzQwZjBiNmQyZDAzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5o
CkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9wYXF1ZShib29sIG9wYXF1
ZSkgeyBtX29wYXF1ZSA9IG9wYXF1ZTsgfQogCiAgICAgLy8gV2ViS2l0OjpXZWJDb250ZW50TGF5
ZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
U2tDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGNsaXAsIFdlYktpdDo6V2ViRmxvYXRS
ZWN0JiBvcGFxdWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFNr
Q2FudmFzKiwgY29uc3QgV2ViS2l0OjpXZWJSZWN0JiBjbGlwLCBib29sIGNhblBhaW50TENEVGV4
dCwgV2ViS2l0OjpXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAg
ICAgR3JhcGhpY3NDb250ZXh0UGFpbnRlciogbV9wYWludGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAppbmRleCA4MTVhMGMzMDBlOWFiNTE5NjBjZTk0
MGQ5MmRkYTE1NmE5NDBlNTljLi5iYTgyOTE3MDc1ZTdmNmViZDIxNWUwODE5OGJjMmEwODhjNWQ2
ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcApA
QCAtMjI1LDcgKzIyNSw3IEBAIGJvb2wgTGlua0hpZ2hsaWdodDo6Y29tcHV0ZUhpZ2hsaWdodExh
eWVyUGF0aEFuZFBvc2l0aW9uKFJlbmRlckxheWVyKiBjb21wb3NpdGluCiAgICAgcmV0dXJuIHBh
dGhIYXNDaGFuZ2VkOwogfQogCi12b2lkIExpbmtIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoV2Vi
Q2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIHdlYkNsaXBSZWN0LCBXZWJGbG9hdFJlY3Qm
KQordm9pZCBMaW5rSGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKFdlYkNhbnZhcyogY2FudmFzLCBj
b25zdCBXZWJSZWN0JiB3ZWJDbGlwUmVjdCwgYm9vbCwgV2ViRmxvYXRSZWN0JikKIHsKICAgICBp
ZiAoIW1fbm9kZSB8fCAhbV9ub2RlLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmgKaW5kZXggM2JhYzNjNzI5ZGQ4
OTgyMjkzYTY3NGVkYmZkYmI3NjVjODYxYmY3Yi4uYzFhZTkxOWVlMDZjMjJhYWJmMGUzMTg3NWYx
NTU0MjkyZTIzOTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlu
a0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGln
aHQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVHZW9tZXRyeSgp
OwogCiAgICAgLy8gV2ViQ29udGVudExheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNsaXBS
ZWN0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYgY2xpcFJlY3QsIGJvb2wgY2Fu
UGFpbnRMQ0RUZXh0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CiAKICAgICAvLyBX
ZWJBbmltYXRpb25EZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChkb3VibGUgdGltZSkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApp
bmRleCAyMWI5NzI1YjBlYTVkMDBhMDhiYTM2NDE2ZTViODA1YzBmM2ZlYmUxLi42OTIxMzY4NjFk
OTBiYjBlZTEwMDdiZjRhZjM0Mjc4YmUyMmUzZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKQEAgLTQxLDcg
KzQxLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogICAgIDogbV93
ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX29wYXF1ZSh0cnVlKQogICAgICwgbV9zaG93RGVidWdC
b3JkZXJzKGZhbHNlKQogewogICAgIG1fZ3JhcGhpY3NMYXllciA9IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKQEAgLTUwLDkgKzQ5LDEwIEBAIE5vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFdlYlZpZXdJbXBsKiB3ZWJWaWV3
KQogI2VuZGlmCiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAg
ICAgbV9ncmFwaGljc0xheWVyLT5zZXRBcHBsaWVzUGFnZVNjYWxlKCFtX3dlYlZpZXctPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSk7CisgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c09wYXF1ZSh0cnVlKTsKKyAgICAvLyBGSVhNRTog
UmVtb3ZlIExDRCB0ZXh0IHNldHRpbmcgYWZ0ZXIgaXQgaXMgaW1wbGVtZW50ZWQgaW4gY2hyb21p
dW0uCiAgICAgV2ViQ29udGVudExheWVyKiBsYXllciA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDaHJvbWl1bSo+KG1fZ3JhcGhpY3NMYXllci5nZXQoKSktPmNvbnRlbnRMYXll
cigpOwogICAgIGxheWVyLT5zZXRVc2VMQ0RUZXh0KHRydWUpOwotICAgIGxheWVyLT5sYXllcigp
LT5zZXRPcGFxdWUodHJ1ZSk7CiAjaWYgIU9TKEFORFJPSUQpCiAgICAgbGF5ZXItPnNldERyYXdD
aGVja2VyYm9hcmRGb3JNaXNzaW5nVGlsZXModHJ1ZSk7CiAjZW5kaWYKQEAgLTY5LDggKzY5LDcg
QEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldEJhY2tncm91bmRDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpzZXRPcGFxdWUoYm9vbCBvcGFxdWUpCiB7Ci0gICAgbV9vcGFxdWUgPSBvcGFxdWU7Ci0gICAg
bV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE9wYXF1ZShvcGFxdWUpOworICAg
IG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUob3BhcXVlKTsKIH0KIAogdm9pZCBO
b25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFNjcm9sbExheWVyKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqIGxheWVyKQpAQCAtMTczLDEwICsxNzIsMTEgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29u
dGVudEhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
cioKIAogdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnBhaW50Q29udGVudHMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGNsaXBSZWN0KQogeworICAgIC8vIEZJWE1FOiBSZW1vdmUgTENEIHRleHQgc2V0dGlu
ZyBhZnRlciBpdCBpcyBpbXBsZW1lbnRlZCBpbiBjaHJvbWl1bS4KICAgICAvLyBPbiBub24tYW5k
cm9pZCBwbGF0Zm9ybXMsIHdlIHdhbnQgdG8gcmVuZGVyIHRleHQgd2l0aCBzdWJwaXhlbCBhbnRp
YWxpYXNpbmcgb24gdGhlIHJvb3QgbGF5ZXIKICAgICAvLyBzbyBsb25nIGFzIHRoZSByb290IGlz
IG9wYXF1ZS4gT24gYW5kcm9pZCBhbGwgdGV4dCBpcyBncmF5c2NhbGUuCiAjaWYgIU9TKEFORFJP
SUQpCi0gICAgaWYgKG1fb3BhcXVlKQorICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmNvbnRlbnRz
T3BhcXVlKCkpCiAgICAgICAgIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPnNldERyYXdpbmdU
b0ltYWdlQnVmZmVyKGZhbHNlKTsKICNlbmRpZgogICAgIGNvbnRleHQudHJhbnNsYXRlKC1tX2xh
eWVyQWRqdXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMDhlOWM2OWIyZjdjYTFmM2U0YzgwMGU4OTIyODE5
YzJlOTU2YmNiNC4uYmQzYTUyODUzMDVmYTMyOGNhN2FkNzY5YTYzZjk1YWMwMWRkNTYxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0LmgKQEAgLTgyLDcgKzgyLDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1fdmlld3BvcnRTaXplOwogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXllckFkanVzdDsKIAot
ICAgIGJvb2wgbV9vcGFxdWU7CiAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RUcmFja2lu
Z0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAKaW5kZXgg
MGNmODI0OTRiMGYyN2I0Y2NjOTgzOTMzMWQzOTU5NTkyNTkzZjg2NS4uMzllMzZhOWZiMTE1NTQ5
YjdkZDYzODg0Y2Q3YzYzMTE5YzdlMWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29u
dGVudExheWVyRGVsZWdhdGVUZXN0LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIFRFU1RfRihPcGFx
dWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QsIHRlc3RPcGFxdWVSZWN0UHJl
c2VudEFmdGVyT3BhCiAgICAgT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUg
ZGVsZWdhdGUoJnBhaW50ZXIpOwogCiAgICAgV2ViRmxvYXRSZWN0IG9wYXF1ZVJlY3Q7Ci0gICAg
ZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBjYW52YXNSZWN0KCksIG9wYXF1ZVJl
Y3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgp
LCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoV2ViRmxvYXRSZWN0KDAs
IDAsIDQwMCwgNDAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNU
X0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3BhcXVl
UmVjdE5vdFByZXNlbnRBZnRlcgogICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRl
bGVnYXRlIGRlbGVnYXRlKCZwYWludGVyKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0
OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBv
cGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZh
c1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0
UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBU
RVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3Bh
cXVlUmVjdE5vdFByZXNlbnRGb3JPcAogICAgIGRlbGVnYXRlLnNldE9wYXF1ZSh0cnVlKTsKIAog
ICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMo
c2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWlu
dENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwog
ICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7
CiB9CiAKQEAgLTE4Miw3ICsxODIsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVu
dExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRGb3JPcAogICAgIGRl
bGVnYXRlLnNldE9wYXF1ZSh0cnVlKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0Owot
ICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFx
dWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1Jl
Y3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVj
dCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCBURVNU
X0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0UGFydGlh
bE9wYXF1ZVJlY3ROb1RyYW5zZgogICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRl
bGVnYXRlIGRlbGVnYXRlKCZwYWludGVyKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0
OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBv
cGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZh
c1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0
UmVjdChwYXJ0aWFsUmVjdC54KCksIHBhcnRpYWxSZWN0LnkoKSwgcGFydGlhbFJlY3Qud2lkdGgo
KSwgcGFydGlhbFJlY3QuaGVpZ2h0KCkpLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMjA3LDcgKzIw
Nyw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3Qs
IHRlc3RQYXJ0aWFsT3BhcXVlUmVjdFRyYW5zbGF0CiAKICAgICBXZWJGbG9hdFJlY3Qgb3BhcXVl
UmVjdDsKICAgICBXZWJSZWN0IGNvbnRlbnRSZWN0KDExLCAxMiwgMzg5LCAzODgpOwotICAgIGRl
bGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY29udGVudFJlY3QsIG9wYXF1ZVJlY3Qp
OworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY29udGVudFJlY3QsIGZh
bHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVDVChXZWJGbG9hdFJlY3QocGFydGlh
bFJlY3QueCgpLCBwYXJ0aWFsUmVjdC55KCksIHBhcnRpYWxSZWN0LndpZHRoKCksIHBhcnRpYWxS
ZWN0LmhlaWdodCgpKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBURVNU
X0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0SGludGlu
Z1NjYWxlRmFjdG9yU2V0KQogCiAgICAgSW50UmVjdCByZWN0QTsKICAgICBXZWJGbG9hdFJlY3Qg
cmVjdEI7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cygmY2FudmFzLCByZWN0QSwgcmVjdEIp
OworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoJmNhbnZhcywgcmVjdEEsIGZhbHNlLCByZWN0
Qik7CiAgICAgRVhQRUNUX0VRKGNhbGxiYWNrLmhpbnRpbmdTY2FsZSwgaGludGluZ1NjYWxlKTsK
IH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170933</attachid>
            <date>2012-10-26 08:32:39 -0700</date>
            <delta_ts>2012-10-29 14:11:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121026093111.patch</filename>
            <type>text/plain</type>
            <size>15639</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMmRlNzQ3MTZlNWI4
MzIyYmZkODcxMWUwMzNmOGY4ZDFhZmMxYzdhLi5iNWQ3ZTViYzVjODk0YjZhNzA4OGYyMDBhYzcw
NGNkOTc1Y2NkN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRD
b250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWlu
dENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxh
eWVycy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMjQgIEpvaG4g
U2hldSAgPHNoZXVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0ZXh0dXJl
V2lkdGgoKSBhbmQgdGV4dHVyZUhlaWdodCgpIHRvIFdlYlZpZGVvRnJhbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBiZjc0NTE4NzA3M2E5Y2FmYjI2MWU5ODQzYzE5MTAzZjcxNDNmNTNmLi44MjNlMzI4Y2EzNDNl
ZmQyMTBmODAxN2JmNzk5MDUwODQ2ZjgxODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTItMTAtMTcgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBQYXNzIGNhblBhaW50TENEVGV4dCB0byBXZWJDb250ZW50TGF5ZXJD
bGllbnQ6OnBhaW50Q29udGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXNlIExDRCB0ZXh0IHNldHRpbmcgcGFzc2VkIHRvIFdlYkNvbnRlbnRMYXll
ckNsaWVudDo6cGFpbnRDb250ZW50cyBpbnN0ZWFkIG9mIHR1cm5pbmcgaXQgb2ZmIGZvciBhbGwg
Y29tcG9zaXRlZCBsYXllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gVGhpcyBw
YXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55dGhpbmcgZnVuY3Rpb25hbGx5LgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNPcGFxdWUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVu
dExheWVyRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRl
Lmg6CisgICAgICAgIChPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk6CisK
IDIwMTItMTAtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgcjEzMjQyNyBjaGFuZ2VkIHRoZSB0aWxpbmcgYmVoYXZpb3Igb2YgdGlsZWQgbGF5ZXIg
VGlsZUNhY2hlcyBhcyB3ZWxsIGFzIHRoZSBwYWdlIHRpbGUgY2FjaGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZjBlZGM1YjZjNTkzOTcwZTcyZGU4YzIyMjAyNDkzMGQ4MjhlM2FhNS4u
MWMxZGRmYjM4YzBmZDA3MGExZTZkNjBhZjBmZmQxZDA0MDM4ZDFiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNyAgQWxvayBQcml5YWRhcnNo
aSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBhc3MgY2FuUGFp
bnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTENEIHRleHQgc2V0
dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzIGluc3Rl
YWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAg
ICAqIHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGlua0hpZ2hsaWdo
dDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuaDoKKyAgICAg
ICAgKExpbmtIaWdobGlnaHQpOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVudEhv
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0Lmg6CisgICAgICAgIChOb25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAq
IHRlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpURVNUX0YpOgorCiAyMDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3Yg
IDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9y
dE11bHRpcGxlV2luZG93cyBzZXR0aW5nLCBuZWVkZWQgZm9yIEFuZHJvaWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5o
CmluZGV4IDU0NjliZDI4Yzg0ZmZlZDgwMzAwMDM2NzJmMDllYTI1NzBiMGQ5ZmYuLjFjNjg2NWIy
NDZjZTYxMGZkYmU5MzFjY2JkM2U1ODlhZjlkNDA4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaApAQCAtNDMs
NyArNDMsMTMgQEAgcHVibGljOgogICAgIC8vIG9wdGltaXphdGlvbnMuCiAjZGVmaW5lIFdFQkNP
TlRFTlRMQVlFUkNMSUVOVF9IQVNfT1BBUVVFIDEKICNkZWZpbmUgV0VCQ09OVEVOVExBWUVSQ0xJ
RU5UX0ZMT0FUX09QQVFVRV9SRUNUIDEKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgPSAw
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB2ZXJzaW9uIG9mIHBhaW50Q29udGVudHMgYWZ0
ZXIgY2hyb21pdW0gc3RhcnRzIHVzaW5nIHRoZQorICAgIC8vIG5ldyB2ZXJzaW9uIHdpdGggY2Fu
UGFpbnRMQ0RUZXh0LgorICAgIHZvaWQgcGFpbnRDb250ZW50cyhXZWJDYW52YXMqIGNhbnZhcywg
Y29uc3QgV2ViUmVjdCYgY2xpcCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpCisgICAgeworICAgICAg
ICBwYWludENvbnRlbnRzKGNhbnZhcywgY2xpcCwgZmFsc2UsIG9wYXF1ZSk7CisgICAgfQorICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNs
aXAsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgeyB9CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJDb250ZW50TGF5ZXJDbGllbnQoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNz
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGE1OTVkZjI4ZGExNmE0MDVlNGZj
NDgzNDY3NzMwYzcyZjVjZWE2ZWYuLmY0ZGNmNmU1NTRjZDkyYmRkZGFlOTIzNTg2OTMyMmVkZTgy
YmMzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMzAwLDYg
KzMwMCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c09wYXF1ZShi
b29sIG9wYXF1ZSkKIHsKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c09wYXF1ZShvcGFx
dWUpOwogICAgIG1fbGF5ZXItPmxheWVyKCktPnNldE9wYXF1ZShtX2NvbnRlbnRzT3BhcXVlKTsK
KyAgICBtX29wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLT5zZXRPcGFxdWUo
bV9jb250ZW50c09wYXF1ZSk7CiB9CiAKIHN0YXRpYyBib29sIGNvcHlXZWJDb3JlRmlsdGVyT3Bl
cmF0aW9uc1RvV2ViRmlsdGVyT3BlcmF0aW9ucyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0
ZXJzLCBXZWJGaWx0ZXJPcGVyYXRpb25zJiB3ZWJGaWx0ZXJzKQpAQCAtODYzLDcgKzg2NCw2IEBA
IGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjphcHBsaWVzUGFnZVNjYWxlKCkgY29uc3QKIAog
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgSW50UmVjdCYgY2xpcCkKIHsKLSAgICBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKICAgICBwYWludEdyYXBoaWNzTGF5ZXJD
b250ZW50cyhjb250ZXh0LCBjbGlwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVy
RGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuY3BwCmluZGV4IGEwNmFjNjY2
ZTEzNGNjZDY5ZTc0YjFhM2Y3Y2UzYTU2YzBlNWQ4ODYuLjYyZWRjZWQxNzk3ZjNjYzczM2E3Y2Jl
ZjRiMjg0ZDMzYmY0MzRjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgT3Bh
cXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGU6On5PcGFxdWVSZWN0VHJhY2tpbmdD
b250ZW50TGF5ZXJEZWxlZ2F0ZSgKIHsKIH0KIAotdm9pZCBPcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZTo6cGFpbnRDb250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb25zdCBX
ZWJSZWN0JiBjbGlwLCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkKK3ZvaWQgT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcywg
Y29uc3QgV2ViUmVjdCYgY2xpcCwgYm9vbCBjYW5QYWludExDRFRleHQsIFdlYkZsb2F0UmVjdCYg
b3BhcXVlKQogewogICAgIFBsYXRmb3JtQ29udGV4dFNraWEgcGxhdGZvcm1Db250ZXh0KGNhbnZh
cyk7CiAjaWYgZGVmaW5lZChTS19TVVBQT1JUX0hJTlRJTkdfU0NBTEVfRkFDVE9SKQpAQCAtNTcs
NiArNTcsMTAgQEAgdm9pZCBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6
cGFpbnRDb250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb24KICAgICAgICAgcGxhdGZvcm1Db250
ZXh0LnNldEhpbnRpbmdTY2FsZUZhY3RvcihjYW52YXMtPmdldFRvdGFsTWF0cml4KCkuZ2V0U2Nh
bGVYKCkpOwogI2VuZGlmCiAgICAgcGxhdGZvcm1Db250ZXh0LnNldFRyYWNrT3BhcXVlUmVnaW9u
KCFtX29wYXF1ZSk7CisgICAgLy8gRklYTUU6IFJlbmFtZSBQbGF0Zm9ybUNvbnRleHRTa2lhOjpz
ZXREcmF3aW5nVG9JbWFnZUJ1ZmZlciB0byBzZXRDYW5QYWludExDRFRleHQuCisgICAgLy8gSSBh
bHNvIHN1c3BlY3QgdGhhdCBhIGZ1bmN0aW9uIG9uIFBsYXRmb3JtQ29udGV4dFNraWEgaXMgbm90
IHJlYWxseSBuZWVkZWQuCisgICAgLy8gR3JhcGhpY3NDb250ZXh0OjpzZXRBbGxvd3NGb250U21v
b3RoaW5nIGNhbiBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UuCisgICAgcGxhdGZvcm1Db250ZXh0
LnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKCEoY2FuUGFpbnRMQ0RUZXh0ICYmIG1fb3BhcXVlKSk7
CiAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoJnBsYXRmb3JtQ29udGV4dCk7CiAKICAgICAv
LyBSZWNvcmQgdHJhbnNmb3JtIHByaW9yIHRvIHBhaW50aW5nLCBhcyBhbGwgb3BhcXVlIHRyYWNr
aW5nIHdpbGwgYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdD
b250ZW50TGF5ZXJEZWxlZ2F0ZS5oCmluZGV4IGJiNWMyYWU5NmUyZDMyZDAxMzdkMmRkNzRkNDM2
NjIwMjBlMzkzOTMuLjQ1MWI2NDdiMTNkMWQxNjBkMmRhZjc5N2RmYTc0MGYwYjZkMmQwMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1
ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVy
RGVsZWdhdGUuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcGFxdWUo
Ym9vbCBvcGFxdWUpIHsgbV9vcGFxdWUgPSBvcGFxdWU7IH0KIAogICAgIC8vIFdlYktpdDo6V2Vi
Q29udGVudExheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKFNrQ2FudmFzKiwgY29uc3QgV2ViS2l0OjpXZWJSZWN0JiBjbGlwLCBXZWJLaXQ6
OldlYkZsb2F0UmVjdCYgb3BhcXVlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRD
b250ZW50cyhTa0NhbnZhcyosIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcCwgYm9vbCBjYW5Q
YWludExDRFRleHQsIFdlYktpdDo6V2ViRmxvYXRSZWN0JiBvcGFxdWUpIE9WRVJSSURFOwogCiBw
cml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dFBhaW50ZXIqIG1fcGFpbnRlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAKaW5kZXggODE1YTBjMzAwZTlh
YjUxOTYwY2U5NDBkOTJkZGExNTZhOTQwZTU5Yy4uYmE4MjkxNzA3NWU3ZjZlYmQyMTVlMDgxOThi
YzJhMDg4YzVkNmY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlu
a0hpZ2hsaWdodC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hs
aWdodC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBib29sIExpbmtIaWdobGlnaHQ6OmNvbXB1dGVI
aWdobGlnaHRMYXllclBhdGhBbmRQb3NpdGlvbihSZW5kZXJMYXllciogY29tcG9zaXRpbgogICAg
IHJldHVybiBwYXRoSGFzQ2hhbmdlZDsKIH0KIAotdm9pZCBMaW5rSGlnaGxpZ2h0OjpwYWludENv
bnRlbnRzKFdlYkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiB3ZWJDbGlwUmVjdCwgV2Vi
RmxvYXRSZWN0JikKK3ZvaWQgTGlua0hpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhXZWJDYW52YXMq
IGNhbnZhcywgY29uc3QgV2ViUmVjdCYgd2ViQ2xpcFJlY3QsIGJvb2wsIFdlYkZsb2F0UmVjdCYp
CiB7CiAgICAgaWYgKCFtX25vZGUgfHwgIW1fbm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdo
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5oCmluZGV4IDNi
YWMzYzcyOWRkODk4MjI5M2E2NzRlZGJmZGJiNzY1Yzg2MWJmN2IuLmMxYWU5MTllZTA2YzIyYWFi
ZjBlMzE4NzVmMTU1NDI5MmUyMzkxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0xpbmtIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9M
aW5rSGlnaGxpZ2h0LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
R2VvbWV0cnkoKTsKIAogICAgIC8vIFdlYkNvbnRlbnRMYXllckNsaWVudCBpbXBsZW1lbnRhdGlv
bi4KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhXZWJDYW52YXMqLCBjb25zdCBXZWJS
ZWN0JiBjbGlwUmVjdCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNsaXBSZWN0
LCBib29sIGNhblBhaW50TENEVGV4dCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpIE9WRVJSSURFOwog
CiAgICAgLy8gV2ViQW5pbWF0aW9uRGVsZWdhdGUgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoZG91YmxlIHRpbWUpIE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdC5jcHAKaW5kZXggMjFiOTcyNWIwZWE1ZDAwYTA4YmEzNjQxNmU1YjgwNWMwZjNmZWJlMS4u
NjkyMTM2ODYxZDkwYmIwZWUxMDA3YmY0YWYzNDI3OGJlMjJlM2QxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3Bw
CkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOb25Db21wb3NpdGVkQ29u
dGVudEhvc3Q6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdChXZWJWaWV3SW1wbCogd2ViVmlldykK
ICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV9vcGFxdWUodHJ1ZSkKICAgICAsIG1f
c2hvd0RlYnVnQm9yZGVycyhmYWxzZSkKIHsKICAgICBtX2dyYXBoaWNzTGF5ZXIgPSBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjpjcmVhdGUoMCwgdGhpcyk7CkBAIC01MCw5ICs0OSwxMCBAQCBOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdChXZWJWaWV3SW1w
bCogd2ViVmlldykKICNlbmRpZgogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0RHJhd3NDb250ZW50
KHRydWUpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0QXBwbGllc1BhZ2VTY2FsZSghbV93ZWJW
aWV3LT5wYWdlKCktPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KCkpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUodHJ1ZSk7CisgICAg
Ly8gRklYTUU6IFJlbW92ZSBMQ0QgdGV4dCBzZXR0aW5nIGFmdGVyIGl0IGlzIGltcGxlbWVudGVk
IGluIGNocm9taXVtLgogICAgIFdlYkNvbnRlbnRMYXllciogbGF5ZXIgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW0qPihtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkpLT5j
b250ZW50TGF5ZXIoKTsKICAgICBsYXllci0+c2V0VXNlTENEVGV4dCh0cnVlKTsKLSAgICBsYXll
ci0+bGF5ZXIoKS0+c2V0T3BhcXVlKHRydWUpOwogI2lmICFPUyhBTkRST0lEKQogICAgIGxheWVy
LT5zZXREcmF3Q2hlY2tlcmJvYXJkRm9yTWlzc2luZ1RpbGVzKHRydWUpOwogI2VuZGlmCkBAIC02
OSw4ICs2OSw3IEBAIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRCYWNrZ3JvdW5k
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIE5vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdDo6c2V0T3BhcXVlKGJvb2wgb3BhcXVlKQogewotICAgIG1fb3BhcXVlID0gb3Bh
cXVlOwotICAgIG1fZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpLT5zZXRPcGFxdWUob3Bh
cXVlKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKG9wYXF1ZSk7CiB9
CiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRTY3JvbGxMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiBsYXllcikKQEAgLTE3MywxMCArMTcyLDExIEBAIHZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqCiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpwYWludENvbnRl
bnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkKIHsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIExDRCB0
ZXh0IHNldHRpbmcgYWZ0ZXIgaXQgaXMgaW1wbGVtZW50ZWQgaW4gY2hyb21pdW0uCiAgICAgLy8g
T24gbm9uLWFuZHJvaWQgcGxhdGZvcm1zLCB3ZSB3YW50IHRvIHJlbmRlciB0ZXh0IHdpdGggc3Vi
cGl4ZWwgYW50aWFsaWFzaW5nIG9uIHRoZSByb290IGxheWVyCiAgICAgLy8gc28gbG9uZyBhcyB0
aGUgcm9vdCBpcyBvcGFxdWUuIE9uIGFuZHJvaWQgYWxsIHRleHQgaXMgZ3JheXNjYWxlLgogI2lm
ICFPUyhBTkRST0lEKQotICAgIGlmIChtX29wYXF1ZSkKKyAgICBpZiAobV9ncmFwaGljc0xheWVy
LT5jb250ZW50c09wYXF1ZSgpKQogICAgICAgICBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5z
ZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcihmYWxzZSk7CiAjZW5kaWYKICAgICBjb250ZXh0LnRyYW5z
bGF0ZSgtbV9sYXllckFkanVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCmluZGV4IDA4ZTljNjliMmY3Y2ExZjNlNGM4
MDBlODkyMjgxOWMyZTk1NmJjYjQuLmJkM2E1Mjg1MzA1ZmEzMjhjYTdhZDc2OWE2M2Y5NWFjMDFk
ZDU2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5oCkBAIC04Miw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGF5ZXJB
ZGp1c3Q7CiAKLSAgICBib29sIG1fb3BhcXVlOwogICAgIGJvb2wgbV9zaG93RGVidWdCb3JkZXJz
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9PcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3Qu
Y3BwCmluZGV4IDBjZjgyNDk0YjBmMjdiNGNjYzk4MzkzMzFkMzk1OTU5MjU5M2Y4NjUuLjM5ZTM2
YTlmYjExNTU0OWI3ZGQ2Mzg4NGNkN2M2MzExOWM3ZTFmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RU
cmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBU
RVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3Bh
cXVlUmVjdFByZXNlbnRBZnRlck9wYQogICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXll
ckRlbGVnYXRlIGRlbGVnYXRlKCZwYWludGVyKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVS
ZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgp
LCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNh
bnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZs
b2F0UmVjdCgwLCAwLCA0MDAsIDQwMCksIG9wYXF1ZVJlY3QpOwogfQogCkBAIC0xNTYsNyArMTU2
LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdCwg
dGVzdE9wYXF1ZVJlY3ROb3RQcmVzZW50QWZ0ZXIKICAgICBPcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZSBkZWxlZ2F0ZSgmcGFpbnRlcik7CiAKICAgICBXZWJGbG9hdFJlY3Qg
b3BhcXVlUmVjdDsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZh
c1JlY3QoKSwgb3BhcXVlUmVjdCk7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZh
cygpLCBjYW52YXNSZWN0KCksIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVD
VChXZWJGbG9hdFJlY3QoMCwgMCwgMCwgMCksIG9wYXF1ZVJlY3QpOwogfQogCkBAIC0xNjksNyAr
MTY5LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVz
dCwgdGVzdE9wYXF1ZVJlY3ROb3RQcmVzZW50Rm9yT3AKICAgICBkZWxlZ2F0ZS5zZXRPcGFxdWUo
dHJ1ZSk7CiAKICAgICBXZWJGbG9hdFJlY3Qgb3BhcXVlUmVjdDsKLSAgICBkZWxlZ2F0ZS5wYWlu
dENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgb3BhcXVlUmVjdCk7CisgICAgZGVs
ZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBjYW52YXNSZWN0KCksIGZhbHNlLCBvcGFx
dWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVDVChXZWJGbG9hdFJlY3QoMCwgMCwgMCwgMCksIG9w
YXF1ZVJlY3QpOwogfQogCkBAIC0xODIsNyArMTgyLDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdCwgdGVzdE9wYXF1ZVJlY3ROb3RQcmVzZW50Rm9y
T3AKICAgICBkZWxlZ2F0ZS5zZXRPcGFxdWUodHJ1ZSk7CiAKICAgICBXZWJGbG9hdFJlY3Qgb3Bh
cXVlUmVjdDsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1Jl
Y3QoKSwgb3BhcXVlUmVjdCk7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygp
LCBjYW52YXNSZWN0KCksIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVDVChX
ZWJGbG9hdFJlY3QoMCwgMCwgMCwgMCksIG9wYXF1ZVJlY3QpOwogfQogCkBAIC0xOTQsNyArMTk0
LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdCwg
dGVzdFBhcnRpYWxPcGFxdWVSZWN0Tm9UcmFuc2YKICAgICBPcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZSBkZWxlZ2F0ZSgmcGFpbnRlcik7CiAKICAgICBXZWJGbG9hdFJlY3Qg
b3BhcXVlUmVjdDsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZh
c1JlY3QoKSwgb3BhcXVlUmVjdCk7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZh
cygpLCBjYW52YXNSZWN0KCksIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVD
VChXZWJGbG9hdFJlY3QocGFydGlhbFJlY3QueCgpLCBwYXJ0aWFsUmVjdC55KCksIHBhcnRpYWxS
ZWN0LndpZHRoKCksIHBhcnRpYWxSZWN0LmhlaWdodCgpKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAg
LTIwNyw3ICsyMDcsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVs
ZWdhdGVUZXN0LCB0ZXN0UGFydGlhbE9wYXF1ZVJlY3RUcmFuc2xhdAogCiAgICAgV2ViRmxvYXRS
ZWN0IG9wYXF1ZVJlY3Q7CiAgICAgV2ViUmVjdCBjb250ZW50UmVjdCgxMSwgMTIsIDM4OSwgMzg4
KTsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNvbnRlbnRSZWN0LCBv
cGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNvbnRl
bnRSZWN0LCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoV2ViRmxvYXRS
ZWN0KHBhcnRpYWxSZWN0LngoKSwgcGFydGlhbFJlY3QueSgpLCBwYXJ0aWFsUmVjdC53aWR0aCgp
LCBwYXJ0aWFsUmVjdC5oZWlnaHQoKSksIG9wYXF1ZVJlY3QpOwogfQogCkBAIC0yMjUsNyArMjI1
LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdCwg
dGVzdEhpbnRpbmdTY2FsZUZhY3RvclNldCkKIAogICAgIEludFJlY3QgcmVjdEE7CiAgICAgV2Vi
RmxvYXRSZWN0IHJlY3RCOwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoJmNhbnZhcywgcmVj
dEEsIHJlY3RCKTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKCZjYW52YXMsIHJlY3RBLCBm
YWxzZSwgcmVjdEIpOwogICAgIEVYUEVDVF9FUShjYWxsYmFjay5oaW50aW5nU2NhbGUsIGhpbnRp
bmdTY2FsZSk7CiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171310</attachid>
            <date>2012-10-29 14:09:59 -0700</date>
            <delta_ts>2012-10-30 11:59:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121029150825.patch</filename>
            <type>text/plain</type>
            <size>15647</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMmRlNzQ3MTZlNWI4
MzIyYmZkODcxMWUwMzNmOGY4ZDFhZmMxYzdhLi5iNWQ3ZTViYzVjODk0YjZhNzA4OGYyMDBhYzcw
NGNkOTc1Y2NkN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRD
b250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWlu
dENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxh
eWVycy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMjQgIEpvaG4g
U2hldSAgPHNoZXVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0ZXh0dXJl
V2lkdGgoKSBhbmQgdGV4dHVyZUhlaWdodCgpIHRvIFdlYlZpZGVvRnJhbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBiZjc0NTE4NzA3M2E5Y2FmYjI2MWU5ODQzYzE5MTAzZjcxNDNmNTNmLi44MjNlMzI4Y2EzNDNl
ZmQyMTBmODAxN2JmNzk5MDUwODQ2ZjgxODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTItMTAtMTcgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBQYXNzIGNhblBhaW50TENEVGV4dCB0byBXZWJDb250ZW50TGF5ZXJD
bGllbnQ6OnBhaW50Q29udGVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXNlIExDRCB0ZXh0IHNldHRpbmcgcGFzc2VkIHRvIFdlYkNvbnRlbnRMYXll
ckNsaWVudDo6cGFpbnRDb250ZW50cyBpbnN0ZWFkIG9mIHR1cm5pbmcgaXQgb2ZmIGZvciBhbGwg
Y29tcG9zaXRlZCBsYXllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gVGhpcyBw
YXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55dGhpbmcgZnVuY3Rpb25hbGx5LgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNPcGFxdWUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpwYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVu
dExheWVyRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRl
Lmg6CisgICAgICAgIChPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk6CisK
IDIwMTItMTAtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgcjEzMjQyNyBjaGFuZ2VkIHRoZSB0aWxpbmcgYmVoYXZpb3Igb2YgdGlsZWQgbGF5ZXIg
VGlsZUNhY2hlcyBhcyB3ZWxsIGFzIHRoZSBwYWdlIHRpbGUgY2FjaGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZjBlZGM1YjZjNTkzOTcwZTcyZGU4YzIyMjAyNDkzMGQ4MjhlM2FhNS4u
MWMxZGRmYjM4YzBmZDA3MGExZTZkNjBhZjBmZmQxZDA0MDM4ZDFiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNyAgQWxvayBQcml5YWRhcnNo
aSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBhc3MgY2FuUGFp
bnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTENEIHRleHQgc2V0
dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzIGluc3Rl
YWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAg
ICAqIHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGlua0hpZ2hsaWdo
dDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuaDoKKyAgICAg
ICAgKExpbmtIaWdobGlnaHQpOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVudEhv
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0Lmg6CisgICAgICAgIChOb25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAq
IHRlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpURVNUX0YpOgorCiAyMDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3Yg
IDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9y
dE11bHRpcGxlV2luZG93cyBzZXR0aW5nLCBuZWVkZWQgZm9yIEFuZHJvaWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5o
CmluZGV4IDU0NjliZDI4Yzg0ZmZlZDgwMzAwMDM2NzJmMDllYTI1NzBiMGQ5ZmYuLmIwZmNmYWMw
MDZkOWMzYzI2MDIxZmMxNmM2ZjJjMjc2ZjdjMzc4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaApAQCAtNDMs
NyArNDMsMTMgQEAgcHVibGljOgogICAgIC8vIG9wdGltaXphdGlvbnMuCiAjZGVmaW5lIFdFQkNP
TlRFTlRMQVlFUkNMSUVOVF9IQVNfT1BBUVVFIDEKICNkZWZpbmUgV0VCQ09OVEVOVExBWUVSQ0xJ
RU5UX0ZMT0FUX09QQVFVRV9SRUNUIDEKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgPSAw
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB2ZXJzaW9uIG9mIHBhaW50Q29udGVudHMgYWZ0
ZXIgY2hyb21pdW0gc3RhcnRzIHVzaW5nIHRoZQorICAgIC8vIG5ldyB2ZXJzaW9uIHdpdGggY2Fu
UGFpbnRMQ0RUZXh0LgorICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyog
Y2FudmFzLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkKKyAgICB7
CisgICAgICAgIHBhaW50Q29udGVudHMoY2FudmFzLCBjbGlwLCBmYWxzZSwgb3BhcXVlKTsKKyAg
ICB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoV2ViQ2FudmFzKiwgY29uc3QgV2Vi
UmVjdCYgY2xpcCwgYm9vbCBjYW5QYWludExDRFRleHQsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKSB7
IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkNvbnRlbnRMYXllckNsaWVudCgpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggYTU5NWRmMjhkYTE2
YTQwNWU0ZmM0ODM0Njc3MzBjNzJmNWNlYTZlZi4uZjRkY2Y2ZTU1NGNkOTJiZGRkYWU5MjM1ODY5
MzIyZWRlODJiYzM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBA
IC0zMDAsNiArMzAwLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRz
T3BhcXVlKGJvb2wgb3BhcXVlKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3Bh
cXVlKG9wYXF1ZSk7CiAgICAgbV9sYXllci0+bGF5ZXIoKS0+c2V0T3BhcXVlKG1fY29udGVudHNP
cGFxdWUpOworICAgIG1fb3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUtPnNl
dE9wYXF1ZShtX2NvbnRlbnRzT3BhcXVlKTsKIH0KIAogc3RhdGljIGJvb2wgY29weVdlYkNvcmVG
aWx0ZXJPcGVyYXRpb25zVG9XZWJGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIGZpbHRlcnMsIFdlYkZpbHRlck9wZXJhdGlvbnMmIHdlYkZpbHRlcnMpCkBAIC04NjMsNyAr
ODY0LDYgQEAgYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFwcGxpZXNQYWdlU2NhbGUoKSBj
b25zdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQogewotICAgIGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogICAgIHBhaW50R3JhcGhp
Y3NMYXllckNvbnRlbnRzKGNvbnRleHQsIGNsaXApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5jcHAKaW5kZXgg
YTA2YWM2NjZlMTM0Y2NkNjllNzRiMWEzZjdjZTNhNTZjMGU1ZDg4Ni4uNjJlZGNlZDE3OTdmM2Nj
NzMzYTdjYmVmNGIyODRkMzNiZjQzNGNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVs
ZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmNwcApAQCAtNDksNyArNDks
NyBAQCBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6fk9wYXF1ZVJlY3RU
cmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKAogewogfQogCi12b2lkIE9wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjpwYWludENvbnRlbnRzKFNrQ2FudmFzKiBjYW52YXMs
IGNvbnN0IFdlYlJlY3QmIGNsaXAsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKQordm9pZCBPcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZTo6cGFpbnRDb250ZW50cyhTa0NhbnZhcyog
Y2FudmFzLCBjb25zdCBXZWJSZWN0JiBjbGlwLCBib29sIGNhblBhaW50TENEVGV4dCwgV2ViRmxv
YXRSZWN0JiBvcGFxdWUpCiB7CiAgICAgUGxhdGZvcm1Db250ZXh0U2tpYSBwbGF0Zm9ybUNvbnRl
eHQoY2FudmFzKTsKICNpZiBkZWZpbmVkKFNLX1NVUFBPUlRfSElOVElOR19TQ0FMRV9GQUNUT1Ip
CkBAIC01Nyw2ICs1NywxMCBAQCB2b2lkIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRl
bGVnYXRlOjpwYWludENvbnRlbnRzKFNrQ2FudmFzKiBjYW52YXMsIGNvbgogICAgICAgICBwbGF0
Zm9ybUNvbnRleHQuc2V0SGludGluZ1NjYWxlRmFjdG9yKGNhbnZhcy0+Z2V0VG90YWxNYXRyaXgo
KS5nZXRTY2FsZVgoKSk7CiAjZW5kaWYKICAgICBwbGF0Zm9ybUNvbnRleHQuc2V0VHJhY2tPcGFx
dWVSZWdpb24oIW1fb3BhcXVlKTsKKyAgICAvLyBGSVhNRTogUmVuYW1lIFBsYXRmb3JtQ29udGV4
dFNraWE6OnNldERyYXdpbmdUb0ltYWdlQnVmZmVyIHRvIHNldENhblBhaW50TENEVGV4dC4KKyAg
ICAvLyBJIGFsc28gc3VzcGVjdCB0aGF0IGEgZnVuY3Rpb24gb24gUGxhdGZvcm1Db250ZXh0U2tp
YSBpcyBub3QgcmVhbGx5IG5lZWRlZC4KKyAgICAvLyBHcmFwaGljc0NvbnRleHQ6OnNldEFsbG93
c0ZvbnRTbW9vdGhpbmcgY2FuIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KKyAgICBwbGF0Zm9y
bUNvbnRleHQuc2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIoIShjYW5QYWludExDRFRleHQgJiYgbV9v
cGFxdWUpKTsKICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgmcGxhdGZvcm1Db250ZXh0KTsK
IAogICAgIC8vIFJlY29yZCB0cmFuc2Zvcm0gcHJpb3IgdG8gcGFpbnRpbmcsIGFzIGFsbCBvcGFx
dWUgdHJhY2tpbmcgd2lsbCBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RU
cmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmgKaW5kZXggYmI1YzJhZTk2ZTJkMzJkMDEzN2Qy
ZGQ3NGQ0MzY2MjAyMGUzOTM5My4uNDUxYjY0N2IxM2QxZDE2MGQyZGFmNzk3ZGZhNzQwZjBiNmQy
ZDAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dE9wYXF1ZShib29sIG9wYXF1ZSkgeyBtX29wYXF1ZSA9IG9wYXF1ZTsgfQogCiAgICAgLy8gV2Vi
S2l0OjpXZWJDb250ZW50TGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGNsaXAs
IFdlYktpdDo6V2ViRmxvYXRSZWN0JiBvcGFxdWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwgY29uc3QgV2ViS2l0OjpXZWJSZWN0JiBjbGlwLCBi
b29sIGNhblBhaW50TENEVGV4dCwgV2ViS2l0OjpXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJ
REU7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0UGFpbnRlciogbV9wYWludGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAppbmRleCA4MTVh
MGMzMDBlOWFiNTE5NjBjZTk0MGQ5MmRkYTE1NmE5NDBlNTljLi5iYTgyOTE3MDc1ZTdmNmViZDIx
NWUwODE5OGJjMmEwODhjNWQ2ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9M
aW5rSGlnaGxpZ2h0LmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIGJvb2wgTGlua0hpZ2hsaWdodDo6
Y29tcHV0ZUhpZ2hsaWdodExheWVyUGF0aEFuZFBvc2l0aW9uKFJlbmRlckxheWVyKiBjb21wb3Np
dGluCiAgICAgcmV0dXJuIHBhdGhIYXNDaGFuZ2VkOwogfQogCi12b2lkIExpbmtIaWdobGlnaHQ6
OnBhaW50Q29udGVudHMoV2ViQ2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIHdlYkNsaXBS
ZWN0LCBXZWJGbG9hdFJlY3QmKQordm9pZCBMaW5rSGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKFdl
YkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiB3ZWJDbGlwUmVjdCwgYm9vbCwgV2ViRmxv
YXRSZWN0JikKIHsKICAgICBpZiAoIW1fbm9kZSB8fCAhbV9ub2RlLT5yZW5kZXJlcigpKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5r
SGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmgK
aW5kZXggM2JhYzNjNzI5ZGQ4OTgyMjkzYTY3NGVkYmZkYmI3NjVjODYxYmY3Yi4uYzFhZTkxOWVl
MDZjMjJhYWJmMGUzMTg3NWYxNTU0MjkyZTIzOTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0xpbmtIaWdobGlnaHQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVHZW9tZXRyeSgpOwogCiAgICAgLy8gV2ViQ29udGVudExheWVyQ2xpZW50IGltcGxl
bWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNv
bnN0IFdlYlJlY3QmIGNsaXBSZWN0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYg
Y2xpcFJlY3QsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZF
UlJJREU7CiAKICAgICAvLyBXZWJBbmltYXRpb25EZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4KICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChkb3VibGUgdGltZSkgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0LmNwcAppbmRleCAyMWI5NzI1YjBlYTVkMDBhMDhiYTM2NDE2ZTViODA1YzBm
M2ZlYmUxLi42OTIxMzY4NjFkOTBiYjBlZTEwMDdiZjRhZjM0Mjc4YmUyMmUzZDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIE5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFdlYlZpZXdJbXBsKiB3
ZWJWaWV3KQogICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX29wYXF1ZSh0cnVlKQog
ICAgICwgbV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogewogICAgIG1fZ3JhcGhpY3NMYXllciA9
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKQEAgLTUwLDkgKzQ5LDEw
IEBAIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFdl
YlZpZXdJbXBsKiB3ZWJWaWV3KQogI2VuZGlmCiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXREcmF3
c0NvbnRlbnQodHJ1ZSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRBcHBsaWVzUGFnZVNjYWxl
KCFtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNv
bXBvc2l0b3IoKSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c09wYXF1ZSh0cnVl
KTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIExDRCB0ZXh0IHNldHRpbmcgYWZ0ZXIgaXQgaXMgaW1w
bGVtZW50ZWQgaW4gY2hyb21pdW0uCiAgICAgV2ViQ29udGVudExheWVyKiBsYXllciA9IHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bSo+KG1fZ3JhcGhpY3NMYXllci5n
ZXQoKSktPmNvbnRlbnRMYXllcigpOwogICAgIGxheWVyLT5zZXRVc2VMQ0RUZXh0KHRydWUpOwot
ICAgIGxheWVyLT5sYXllcigpLT5zZXRPcGFxdWUodHJ1ZSk7CiAjaWYgIU9TKEFORFJPSUQpCiAg
ICAgbGF5ZXItPnNldERyYXdDaGVja2VyYm9hcmRGb3JNaXNzaW5nVGlsZXModHJ1ZSk7CiAjZW5k
aWYKQEAgLTY5LDggKzY5LDcgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldEJh
Y2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiAKIHZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0OjpzZXRPcGFxdWUoYm9vbCBvcGFxdWUpCiB7Ci0gICAgbV9vcGFx
dWUgPSBvcGFxdWU7Ci0gICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE9w
YXF1ZShvcGFxdWUpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUob3Bh
cXVlKTsKIH0KIAogdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFNjcm9sbExheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKQpAQCAtMTczLDEwICsxNzIsMTEgQEAgdm9p
ZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllcioKIAogdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnBh
aW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KQogeworICAgIC8vIEZJWE1FOiBSZW1v
dmUgTENEIHRleHQgc2V0dGluZyBhZnRlciBpdCBpcyBpbXBsZW1lbnRlZCBpbiBjaHJvbWl1bS4K
ICAgICAvLyBPbiBub24tYW5kcm9pZCBwbGF0Zm9ybXMsIHdlIHdhbnQgdG8gcmVuZGVyIHRleHQg
d2l0aCBzdWJwaXhlbCBhbnRpYWxpYXNpbmcgb24gdGhlIHJvb3QgbGF5ZXIKICAgICAvLyBzbyBs
b25nIGFzIHRoZSByb290IGlzIG9wYXF1ZS4gT24gYW5kcm9pZCBhbGwgdGV4dCBpcyBncmF5c2Nh
bGUuCiAjaWYgIU9TKEFORFJPSUQpCi0gICAgaWYgKG1fb3BhcXVlKQorICAgIGlmIChtX2dyYXBo
aWNzTGF5ZXItPmNvbnRlbnRzT3BhcXVlKCkpCiAgICAgICAgIGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCktPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKGZhbHNlKTsKICNlbmRpZgogICAgIGNvbnRl
eHQudHJhbnNsYXRlKC1tX2xheWVyQWRqdXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMDhlOWM2OWIyZjdj
YTFmM2U0YzgwMGU4OTIyODE5YzJlOTU2YmNiNC4uYmQzYTUyODUzMDVmYTMyOGNhN2FkNzY5YTYz
Zjk1YWMwMWRkNTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKQEAgLTgyLDcgKzgyLDYgQEAgcHJpdmF0ZToKICAg
ICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIFdlYkNvcmU6OkludFNpemUg
bV9sYXllckFkanVzdDsKIAotICAgIGJvb2wgbV9vcGFxdWU7CiAgICAgYm9vbCBtX3Nob3dEZWJ1
Z0JvcmRlcnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVn
YXRlVGVzdC5jcHAKaW5kZXggMGNmODI0OTRiMGYyN2I0Y2NjOTgzOTMzMWQzOTU5NTkyNTkzZjg2
NS4uMzllMzZhOWZiMTE1NTQ5YjdkZDYzODg0Y2Q3YzYzMTE5YzdlMWY0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5
ZXJEZWxlZ2F0ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvT3Bh
cXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LmNwcApAQCAtMTQ1LDcgKzE0
NSw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3Qs
IHRlc3RPcGFxdWVSZWN0UHJlc2VudEFmdGVyT3BhCiAgICAgT3BhcXVlUmVjdFRyYWNraW5nQ29u
dGVudExheWVyRGVsZWdhdGUgZGVsZWdhdGUoJnBhaW50ZXIpOwogCiAgICAgV2ViRmxvYXRSZWN0
IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBjYW52
YXNSZWN0KCksIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52
YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNUX0VRX1JF
Q1QoV2ViRmxvYXRSZWN0KDAsIDAsIDQwMCwgNDAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE1
Niw3ICsxNTYsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRBZnRlcgogICAgIE9wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlKCZwYWludGVyKTsKIAogICAgIFdlYkZs
b2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMo
KSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRz
KHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVD
VF9FUV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAg
LTE2OSw3ICsxNjksNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVs
ZWdhdGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFByZXNlbnRGb3JPcAogICAgIGRlbGVnYXRlLnNl
dE9wYXF1ZSh0cnVlKTsKIAogICAgIFdlYkZsb2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVn
YXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsK
KyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFs
c2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAw
LCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE4Miw3ICsxODIsNyBAQCBURVNUX0YoT3BhcXVl
UmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LCB0ZXN0T3BhcXVlUmVjdE5vdFBy
ZXNlbnRGb3JPcAogICAgIGRlbGVnYXRlLnNldE9wYXF1ZSh0cnVlKTsKIAogICAgIFdlYkZsb2F0
UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwg
Y2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNr
Q2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9F
UV9SRUNUKFdlYkZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTE5
NCw3ICsxOTQsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGVUZXN0LCB0ZXN0UGFydGlhbE9wYXF1ZVJlY3ROb1RyYW5zZgogICAgIE9wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlKCZwYWludGVyKTsKIAogICAgIFdlYkZs
b2F0UmVjdCBvcGFxdWVSZWN0OwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMo
KSwgY2FudmFzUmVjdCgpLCBvcGFxdWVSZWN0KTsKKyAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRz
KHNrQ2FudmFzKCksIGNhbnZhc1JlY3QoKSwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVD
VF9FUV9SRUNUKFdlYkZsb2F0UmVjdChwYXJ0aWFsUmVjdC54KCksIHBhcnRpYWxSZWN0LnkoKSwg
cGFydGlhbFJlY3Qud2lkdGgoKSwgcGFydGlhbFJlY3QuaGVpZ2h0KCkpLCBvcGFxdWVSZWN0KTsK
IH0KIApAQCAtMjA3LDcgKzIwNyw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50
TGF5ZXJEZWxlZ2F0ZVRlc3QsIHRlc3RQYXJ0aWFsT3BhcXVlUmVjdFRyYW5zbGF0CiAKICAgICBX
ZWJGbG9hdFJlY3Qgb3BhcXVlUmVjdDsKICAgICBXZWJSZWN0IGNvbnRlbnRSZWN0KDExLCAxMiwg
Mzg5LCAzODgpOwotICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY29udGVu
dFJlY3QsIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMo
KSwgY29udGVudFJlY3QsIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVDVChX
ZWJGbG9hdFJlY3QocGFydGlhbFJlY3QueCgpLCBwYXJ0aWFsUmVjdC55KCksIHBhcnRpYWxSZWN0
LndpZHRoKCksIHBhcnRpYWxSZWN0LmhlaWdodCgpKSwgb3BhcXVlUmVjdCk7CiB9CiAKQEAgLTIy
NSw3ICsyMjUsNyBAQCBURVNUX0YoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGVUZXN0LCB0ZXN0SGludGluZ1NjYWxlRmFjdG9yU2V0KQogCiAgICAgSW50UmVjdCByZWN0QTsK
ICAgICBXZWJGbG9hdFJlY3QgcmVjdEI7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cygmY2Fu
dmFzLCByZWN0QSwgcmVjdEIpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoJmNhbnZhcywg
cmVjdEEsIGZhbHNlLCByZWN0Qik7CiAgICAgRVhQRUNUX0VRKGNhbGxiYWNrLmhpbnRpbmdTY2Fs
ZSwgaGludGluZ1NjYWxlKTsKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171491</attachid>
            <date>2012-10-30 11:52:48 -0700</date>
            <delta_ts>2012-11-05 10:56:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99083-20121030125112.patch</filename>
            <type>text/plain</type>
            <size>15361</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMTJkZDY2ZjViNzdm
ZmJjYzA5OTMwNjJjM2JkZmVmZjE3NTUyMWVjLi40ODY0OWNiYWU2ZmZlZjVhMmNhNzY5MDlhOTkx
MTA2M2Y5MDUwMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRD
b250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgTENEIHRleHQgc2V0dGluZyBwYXNzZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWlu
dENvbnRlbnRzIGluc3RlYWQgb2YgdHVybmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxh
eWVycy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMjYgIENocmlz
dG9waGVyIENhbWVyb24gIDxjY2FtZXJvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBBZGQgYWRkaXRpb25hbCBtZW1vcnkgbWFuYWdlbWVudCBmaWVsZHMgdG8gV2ViR3JhcGhp
Y3NDb250ZXh0M0QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTE1NWJhYTE3NGY5YWViNjdhOTc3ODMzN2U0MzU2
ZDNhYWFlZTM4Li43YTMwODhkNGY0OTk3YmY3ZDZhZDc0MzA2MGQzNDY2Mzc2N2I0YTVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAtMTcgIEFsb2sgUHJpeWFkYXJzaGkgIDxh
bG9rcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIGNhblBhaW50TENE
VGV4dCB0byBXZWJDb250ZW50TGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIExDRCB0ZXh0IHNldHRpbmcg
cGFzc2VkIHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyBpbnN0ZWFkIG9m
IHR1cm5pbmcgaXQgb2ZmIGZvciBhbGwgY29tcG9zaXRlZCBsYXllcnMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIG5lZWRlZC4gVGhpcyBwYXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55dGhpbmcgZnVu
Y3Rpb25hbGx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6c2V0Q29udGVudHNPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVu
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFj
a2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmg6CisgICAgICAgIChPcGFxdWVSZWN0VHJhY2tpbmdD
b250ZW50TGF5ZXJEZWxlZ2F0ZSk6CisKIDIwMTItMTAtMjYgIEFsZXhhbmRydSBDaGljdWxpdGEg
IDxhY2hpY3VAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgU2hhZGVyc10gQWRkIHRoZSBWYWxp
ZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggN2NhODU1Y2E3Mjc2ZDg0YmMyNzg2OWQ2YzlkNTNiZjIzNjA3NGQ2OS4uOTljZjIxMzZk
YjE0ZTQ5ZDJlOWEyNmYyNDkzZTZiYjEyMWZkMWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNyAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2tw
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBhc3MgY2FuUGFpbnRMQ0RUZXh0
IHRvIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTENEIHRleHQgc2V0dGluZyBwYXNz
ZWQgdG8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRlbnRzIGluc3RlYWQgb2YgdHVy
bmluZyBpdCBvZmYgZm9yIGFsbCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAgICAqIHNyYy9M
aW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGlua0hpZ2hsaWdodDo6cGFpbnRD
b250ZW50cyk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuaDoKKyAgICAgICAgKExpbmtI
aWdobGlnaHQpOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpw
YWludENvbnRlbnRzKToKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Lmg6
CisgICAgICAgIChOb25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAqIHRlc3RzL09w
YXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpURVNUX0YpOgorCiAyMDEyLTEwLTMwICBBbG9rIFByaXlhZGFyc2hpICA8YWxva3BA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJvbGxlZCBERVBTLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGll
bnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyQ2xp
ZW50LmgKaW5kZXggNTQ2OWJkMjhjODRmZmVkODAzMDAwMzY3MmYwOWVhMjU3MGIwZDlmZi4uODI3
NGQ5ZTM5NzBiZDAyOWQ0ZWViZmE1YjY0MWRjMTYyNjM1ODc3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5oCkBA
IC00Myw3ICs0Myw4IEBAIHB1YmxpYzoKICAgICAvLyBvcHRpbWl6YXRpb25zLgogI2RlZmluZSBX
RUJDT05URU5UTEFZRVJDTElFTlRfSEFTX09QQVFVRSAxCiAjZGVmaW5lIFdFQkNPTlRFTlRMQVlF
UkNMSUVOVF9GTE9BVF9PUEFRVUVfUkVDVCAxCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYgY2xpcCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUp
ID0gMDsKKyNkZWZpbmUgV0VCQ09OVEVOVExBWUVSQ0xJRU5UX0hBU19DQU5QQUlOVExDRFRFWFQg
MQorICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJl
Y3QmIGNsaXAsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgPSAw
OwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQ29udGVudExheWVyQ2xpZW50KCkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCBkYzQ2ZGMzZTc1MTFm
ZDdlNDAzNmY5NWYxNTc1YjYzMTBmN2ViMTk0Li5lNDg2ZDJmMDJiNDJiMjExZWRlODYxMWU4MTZk
OGNjZWRlYTc5NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTMwMCw2ICszMDAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNP
cGFxdWUoYm9vbCBvcGFxdWUpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFx
dWUob3BhcXVlKTsKICAgICBtX2xheWVyLT5sYXllcigpLT5zZXRPcGFxdWUobV9jb250ZW50c09w
YXF1ZSk7CisgICAgbV9vcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS0+c2V0
T3BhcXVlKG1fY29udGVudHNPcGFxdWUpOwogfQogCiBzdGF0aWMgYm9vbCBjb3B5V2ViQ29yZUZp
bHRlck9wZXJhdGlvbnNUb1dlYkZpbHRlck9wZXJhdGlvbnMoY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgZmlsdGVycywgV2ViRmlsdGVyT3BlcmF0aW9ucyYgd2ViRmlsdGVycykKQEAgLTg2NCw3ICs4
NjUsNiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6YXBwbGllc1BhZ2VTY2FsZSgpIGNv
bnN0CiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpwYWludChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGNsaXApCiB7Ci0gICAgY29udGV4dC5wbGF0Zm9ybUNv
bnRleHQoKS0+c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7CiAgICAgcGFpbnRHcmFwaGlj
c0xheWVyQ29udGVudHMoY29udGV4dCwgY2xpcCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRl
bnRMYXllckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlLmNwcAppbmRleCBh
MDZhYzY2NmUxMzRjY2Q2OWU3NGIxYTNmN2NlM2E1NmMwZTVkODg2Li42MmVkY2VkMTc5N2YzY2M3
MzNhN2NiZWY0YjI4NGQzM2JmNDM0Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxl
Z2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuY3BwCkBAIC00OSw3ICs0OSw3
IEBAIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjp+T3BhcXVlUmVjdFRy
YWNraW5nQ29udGVudExheWVyRGVsZWdhdGUoCiB7CiB9CiAKLXZvaWQgT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGU6OnBhaW50Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcywg
Y29uc3QgV2ViUmVjdCYgY2xpcCwgV2ViRmxvYXRSZWN0JiBvcGFxdWUpCit2b2lkIE9wYXF1ZVJl
Y3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlOjpwYWludENvbnRlbnRzKFNrQ2FudmFzKiBj
YW52YXMsIGNvbnN0IFdlYlJlY3QmIGNsaXAsIGJvb2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJGbG9h
dFJlY3QmIG9wYXF1ZSkKIHsKICAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIHBsYXRmb3JtQ29udGV4
dChjYW52YXMpOwogI2lmIGRlZmluZWQoU0tfU1VQUE9SVF9ISU5USU5HX1NDQUxFX0ZBQ1RPUikK
QEAgLTU3LDYgKzU3LDEwIEBAIHZvaWQgT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVs
ZWdhdGU6OnBhaW50Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcywgY29uCiAgICAgICAgIHBsYXRm
b3JtQ29udGV4dC5zZXRIaW50aW5nU2NhbGVGYWN0b3IoY2FudmFzLT5nZXRUb3RhbE1hdHJpeCgp
LmdldFNjYWxlWCgpKTsKICNlbmRpZgogICAgIHBsYXRmb3JtQ29udGV4dC5zZXRUcmFja09wYXF1
ZVJlZ2lvbighbV9vcGFxdWUpOworICAgIC8vIEZJWE1FOiBSZW5hbWUgUGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIgdG8gc2V0Q2FuUGFpbnRMQ0RUZXh0LgorICAg
IC8vIEkgYWxzbyBzdXNwZWN0IHRoYXQgYSBmdW5jdGlvbiBvbiBQbGF0Zm9ybUNvbnRleHRTa2lh
IGlzIG5vdCByZWFsbHkgbmVlZGVkLgorICAgIC8vIEdyYXBoaWNzQ29udGV4dDo6c2V0QWxsb3dz
Rm9udFNtb290aGluZyBjYW4gYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLgorICAgIHBsYXRmb3Jt
Q29udGV4dC5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcighKGNhblBhaW50TENEVGV4dCAmJiBtX29w
YXF1ZSkpOwogICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KCZwbGF0Zm9ybUNvbnRleHQpOwog
CiAgICAgLy8gUmVjb3JkIHRyYW5zZm9ybSBwcmlvciB0byBwYWludGluZywgYXMgYWxsIG9wYXF1
ZSB0cmFja2luZyB3aWxsIGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vT3BhcXVlUmVjdFRy
YWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuaAppbmRleCBiYjVjMmFlOTZlMmQzMmQwMTM3ZDJk
ZDc0ZDQzNjYyMDIwZTM5MzkzLi40NTFiNjQ3YjEzZDFkMTYwZDJkYWY3OTdkZmE3NDBmMGI2ZDJk
MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9PcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRl
bnRMYXllckRlbGVnYXRlLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
T3BhcXVlKGJvb2wgb3BhcXVlKSB7IG1fb3BhcXVlID0gb3BhcXVlOyB9CiAKICAgICAvLyBXZWJL
aXQ6OldlYkNvbnRlbnRMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhTa0NhbnZhcyosIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcCwg
V2ViS2l0OjpXZWJGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGNsaXAsIGJv
b2wgY2FuUGFpbnRMQ0RUZXh0LCBXZWJLaXQ6OldlYkZsb2F0UmVjdCYgb3BhcXVlKSBPVkVSUklE
RTsKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHRQYWludGVyKiBtX3BhaW50ZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3BwCmluZGV4IDgxNWEw
YzMwMGU5YWI1MTk2MGNlOTQwZDkyZGRhMTU2YTk0MGU1OWMuLmJhODI5MTcwNzVlN2Y2ZWJkMjE1
ZTA4MTk4YmMyYTA4OGM1ZDZmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xpbmtIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xp
bmtIaWdobGlnaHQuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgYm9vbCBMaW5rSGlnaGxpZ2h0Ojpj
b21wdXRlSGlnaGxpZ2h0TGF5ZXJQYXRoQW5kUG9zaXRpb24oUmVuZGVyTGF5ZXIqIGNvbXBvc2l0
aW4KICAgICByZXR1cm4gcGF0aEhhc0NoYW5nZWQ7CiB9CiAKLXZvaWQgTGlua0hpZ2hsaWdodDo6
cGFpbnRDb250ZW50cyhXZWJDYW52YXMqIGNhbnZhcywgY29uc3QgV2ViUmVjdCYgd2ViQ2xpcFJl
Y3QsIFdlYkZsb2F0UmVjdCYpCit2b2lkIExpbmtIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoV2Vi
Q2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIHdlYkNsaXBSZWN0LCBib29sLCBXZWJGbG9h
dFJlY3QmKQogewogICAgIGlmICghbV9ub2RlIHx8ICFtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtI
aWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuaApp
bmRleCAzYmFjM2M3MjlkZDg5ODIyOTNhNjc0ZWRiZmRiYjc2NWM4NjFiZjdiLi5jMWFlOTE5ZWUw
NmMyMmFhYmYwZTMxODc1ZjE1NTQyOTJlMjM5MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTGlua0hpZ2hsaWdodC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUdlb21ldHJ5KCk7CiAKICAgICAvLyBXZWJDb250ZW50TGF5ZXJDbGllbnQgaW1wbGVt
ZW50YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoV2ViQ2FudmFzKiwgY29u
c3QgV2ViUmVjdCYgY2xpcFJlY3QsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBj
bGlwUmVjdCwgYm9vbCBjYW5QYWludExDRFRleHQsIFdlYkZsb2F0UmVjdCYgb3BhcXVlKSBPVkVS
UklERTsKIAogICAgIC8vIFdlYkFuaW1hdGlvbkRlbGVnYXRlIGltcGxlbWVudGF0aW9uLgogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0aW1lKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuY3BwCmluZGV4IDIxYjk3MjViMGVhNWQwMGEwOGJhMzY0MTZlNWI4MDVjMGYz
ZmViZTEuLjY5MjEzNjg2MWQ5MGJiMGVlMTAwN2JmNGFmMzQyNzhiZTIyZTNkMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmNwcApAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QoV2ViVmlld0ltcGwqIHdl
YlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fb3BhcXVlKHRydWUpCiAg
ICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiB7CiAgICAgbV9ncmFwaGljc0xheWVyID0g
V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRlKDAsIHRoaXMpOwpAQCAtNTAsOSArNDksMTAg
QEAgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QoV2Vi
Vmlld0ltcGwqIHdlYlZpZXcpCiAjZW5kaWYKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldERyYXdz
Q29udGVudCh0cnVlKTsKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFwcGxpZXNQYWdlU2NhbGUo
IW1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcigpKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKHRydWUp
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgTENEIHRleHQgc2V0dGluZyBhZnRlciBpdCBpcyBpbXBs
ZW1lbnRlZCBpbiBjaHJvbWl1bS4KICAgICBXZWJDb250ZW50TGF5ZXIqIGxheWVyID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtKj4obV9ncmFwaGljc0xheWVyLmdl
dCgpKS0+Y29udGVudExheWVyKCk7CiAgICAgbGF5ZXItPnNldFVzZUxDRFRleHQodHJ1ZSk7Ci0g
ICAgbGF5ZXItPmxheWVyKCktPnNldE9wYXF1ZSh0cnVlKTsKICNpZiAhT1MoQU5EUk9JRCkKICAg
ICBsYXllci0+c2V0RHJhd0NoZWNrZXJib2FyZEZvck1pc3NpbmdUaWxlcyh0cnVlKTsKICNlbmRp
ZgpAQCAtNjksOCArNjksNyBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0QmFj
a2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKIAogdm9pZCBOb25Db21w
b3NpdGVkQ29udGVudEhvc3Q6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkKIHsKLSAgICBtX29wYXF1
ZSA9IG9wYXF1ZTsKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0T3Bh
cXVlKG9wYXF1ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c09wYXF1ZShvcGFx
dWUpOwogfQogCiB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIo
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCkBAIC0xNzMsMTAgKzE3MiwxMSBAQCB2b2lk
IE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKgogCiB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6cGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpCiB7CisgICAgLy8gRklYTUU6IFJlbW92
ZSBMQ0QgdGV4dCBzZXR0aW5nIGFmdGVyIGl0IGlzIGltcGxlbWVudGVkIGluIGNocm9taXVtLgog
ICAgIC8vIE9uIG5vbi1hbmRyb2lkIHBsYXRmb3Jtcywgd2Ugd2FudCB0byByZW5kZXIgdGV4dCB3
aXRoIHN1YnBpeGVsIGFudGlhbGlhc2luZyBvbiB0aGUgcm9vdCBsYXllcgogICAgIC8vIHNvIGxv
bmcgYXMgdGhlIHJvb3QgaXMgb3BhcXVlLiBPbiBhbmRyb2lkIGFsbCB0ZXh0IGlzIGdyYXlzY2Fs
ZS4KICNpZiAhT1MoQU5EUk9JRCkKLSAgICBpZiAobV9vcGFxdWUpCisgICAgaWYgKG1fZ3JhcGhp
Y3NMYXllci0+Y29udGVudHNPcGFxdWUoKSkKICAgICAgICAgY29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKS0+c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpOwogI2VuZGlmCiAgICAgY29udGV4
dC50cmFuc2xhdGUoLW1fbGF5ZXJBZGp1c3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAppbmRleCAwOGU5YzY5YjJmN2Nh
MWYzZTRjODAwZTg5MjI4MTljMmU5NTZiY2I0Li5iZDNhNTI4NTMwNWZhMzI4Y2E3YWQ3NjlhNjNm
OTVhYzAxZGQ1NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25D
b21wb3NpdGVkQ29udGVudEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuaApAQCAtODIsNyArODIsNiBAQCBwcml2YXRlOgogICAg
IFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBt
X2xheWVyQWRqdXN0OwogCi0gICAgYm9vbCBtX29wYXF1ZTsKICAgICBib29sIG1fc2hvd0RlYnVn
Qm9yZGVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
T3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdh
dGVUZXN0LmNwcAppbmRleCAwY2Y4MjQ5NGIwZjI3YjRjY2M5ODM5MzMxZDM5NTk1OTI1OTNmODY1
Li4zOWUzNmE5ZmIxMTU1NDliN2RkNjM4ODRjZDdjNjMxMTljN2UxZjQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXll
ckRlbGVnYXRlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9PcGFx
dWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3BwCkBAIC0xNDUsNyArMTQ1
LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdCwg
dGVzdE9wYXF1ZVJlY3RQcmVzZW50QWZ0ZXJPcGEKICAgICBPcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZSBkZWxlZ2F0ZSgmcGFpbnRlcik7CiAKICAgICBXZWJGbG9hdFJlY3Qg
b3BhcXVlUmVjdDsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKHNrQ2FudmFzKCksIGNhbnZh
c1JlY3QoKSwgb3BhcXVlUmVjdCk7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZh
cygpLCBjYW52YXNSZWN0KCksIGZhbHNlLCBvcGFxdWVSZWN0KTsKICAgICBFWFBFQ1RfRVFfUkVD
VChXZWJGbG9hdFJlY3QoMCwgMCwgNDAwLCA0MDApLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMTU2
LDcgKzE1Niw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0
ZVRlc3QsIHRlc3RPcGFxdWVSZWN0Tm90UHJlc2VudEFmdGVyCiAgICAgT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGUgZGVsZWdhdGUoJnBhaW50ZXIpOwogCiAgICAgV2ViRmxv
YXRSZWN0IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygp
LCBjYW52YXNSZWN0KCksIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMo
c2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNU
X0VRX1JFQ1QoV2ViRmxvYXRSZWN0KDAsIDAsIDAsIDApLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAt
MTY5LDcgKzE2OSw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxl
Z2F0ZVRlc3QsIHRlc3RPcGFxdWVSZWN0Tm90UHJlc2VudEZvck9wCiAgICAgZGVsZWdhdGUuc2V0
T3BhcXVlKHRydWUpOwogCiAgICAgV2ViRmxvYXRSZWN0IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdh
dGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBjYW52YXNSZWN0KCksIG9wYXF1ZVJlY3QpOwor
ICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxz
ZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoV2ViRmxvYXRSZWN0KDAsIDAsIDAs
IDApLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMTgyLDcgKzE4Miw3IEBAIFRFU1RfRihPcGFxdWVS
ZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QsIHRlc3RPcGFxdWVSZWN0Tm90UHJl
c2VudEZvck9wCiAgICAgZGVsZWdhdGUuc2V0T3BhcXVlKHRydWUpOwogCiAgICAgV2ViRmxvYXRS
ZWN0IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBj
YW52YXNSZWN0KCksIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMoc2tD
YW52YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNUX0VR
X1JFQ1QoV2ViRmxvYXRSZWN0KDAsIDAsIDAsIDApLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMTk0
LDcgKzE5NCw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0
ZVRlc3QsIHRlc3RQYXJ0aWFsT3BhcXVlUmVjdE5vVHJhbnNmCiAgICAgT3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGUgZGVsZWdhdGUoJnBhaW50ZXIpOwogCiAgICAgV2ViRmxv
YXRSZWN0IG9wYXF1ZVJlY3Q7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygp
LCBjYW52YXNSZWN0KCksIG9wYXF1ZVJlY3QpOworICAgIGRlbGVnYXRlLnBhaW50Q29udGVudHMo
c2tDYW52YXMoKSwgY2FudmFzUmVjdCgpLCBmYWxzZSwgb3BhcXVlUmVjdCk7CiAgICAgRVhQRUNU
X0VRX1JFQ1QoV2ViRmxvYXRSZWN0KHBhcnRpYWxSZWN0LngoKSwgcGFydGlhbFJlY3QueSgpLCBw
YXJ0aWFsUmVjdC53aWR0aCgpLCBwYXJ0aWFsUmVjdC5oZWlnaHQoKSksIG9wYXF1ZVJlY3QpOwog
fQogCkBAIC0yMDcsNyArMjA3LDcgQEAgVEVTVF9GKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRM
YXllckRlbGVnYXRlVGVzdCwgdGVzdFBhcnRpYWxPcGFxdWVSZWN0VHJhbnNsYXQKIAogICAgIFdl
YkZsb2F0UmVjdCBvcGFxdWVSZWN0OwogICAgIFdlYlJlY3QgY29udGVudFJlY3QoMTEsIDEyLCAz
ODksIDM4OCk7Ci0gICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygpLCBjb250ZW50
UmVjdCwgb3BhcXVlUmVjdCk7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cyhza0NhbnZhcygp
LCBjb250ZW50UmVjdCwgZmFsc2UsIG9wYXF1ZVJlY3QpOwogICAgIEVYUEVDVF9FUV9SRUNUKFdl
YkZsb2F0UmVjdChwYXJ0aWFsUmVjdC54KCksIHBhcnRpYWxSZWN0LnkoKSwgcGFydGlhbFJlY3Qu
d2lkdGgoKSwgcGFydGlhbFJlY3QuaGVpZ2h0KCkpLCBvcGFxdWVSZWN0KTsKIH0KIApAQCAtMjI1
LDcgKzIyNSw3IEBAIFRFU1RfRihPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0
ZVRlc3QsIHRlc3RIaW50aW5nU2NhbGVGYWN0b3JTZXQpCiAKICAgICBJbnRSZWN0IHJlY3RBOwog
ICAgIFdlYkZsb2F0UmVjdCByZWN0QjsKLSAgICBkZWxlZ2F0ZS5wYWludENvbnRlbnRzKCZjYW52
YXMsIHJlY3RBLCByZWN0Qik7CisgICAgZGVsZWdhdGUucGFpbnRDb250ZW50cygmY2FudmFzLCBy
ZWN0QSwgZmFsc2UsIHJlY3RCKTsKICAgICBFWFBFQ1RfRVEoY2FsbGJhY2suaGludGluZ1NjYWxl
LCBoaW50aW5nU2NhbGUpOwogfQogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>