<?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>108368</bug_id>
          
          <creation_ts>2013-01-30 12:28:48 -0800</creation_ts>
          <short_desc>Implement a custom appearance for the snapshotted plugin background</short_desc>
          <delta_ts>2013-03-08 02:08:51 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jonlee</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820409</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-30 12:28:48 -0800</bug_when>
    <thetext>Turn the blur behind the label background back on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820410</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-01-30 12:29:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/13117802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822976</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-01 10:58:41 -0800</bug_when>
    <thetext>Why was it removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823052</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-01 11:40:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Why was it removed?

Moving to a shadow tree solution meant I needed to query the dimensions/location of the label element in order to know where to blur. Previously we always drew the label in the same place. I figured it was better to do this in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850498</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 14:44:57 -0800</bug_when>
    <thetext>Retitling from &quot;Reinstate blur for snapshotted plugin label background&quot; to &quot;Implement a custom renderer for the snapshotted plugin background&quot;.

Why? Because we shouldn&apos;t hardcode an effect into WebCore. By having a custom element in the shadow tree, we can allow ports to do anything they want to the element via their injected CSS. This could be a filter effect, like blur, or an animation, etc.

The custom renderer should paint the same as the snapshotted plugin, allowing the content to position the label where ever they like, and have it seamlessly blend into the element content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850509</commentid>
    <comment_count>5</comment_count>
      <attachid>192089</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 15:02:12 -0800</bug_when>
    <thetext>Created attachment 192089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850545</commentid>
    <comment_count>6</comment_count>
      <attachid>192089</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 15:35:42 -0800</bug_when>
    <thetext>Comment on attachment 192089
Patch

temporarily removing r? to see if i can avoid having a custom element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850734</commentid>
    <comment_count>7</comment_count>
      <attachid>192123</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 18:32:53 -0800</bug_when>
    <thetext>Created attachment 192123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850745</commentid>
    <comment_count>8</comment_count>
      <attachid>192123</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-07 18:46:49 -0800</bug_when>
    <thetext>Comment on attachment 192123
Patch

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

Seems reasonable to me! Would really like more tests.

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1717
&gt; +    LayoutUnit cWidth = renderBlock-&gt;contentWidth();

Leading c looks so weird.

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1729
&gt; +    IntRect alignedRect = pixelSnappedIntRect(rect);

Is pixel-snapping right here?

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1740
&gt; +    HTMLElement* plugInOverlay = static_cast&lt;HTMLElement*&gt;(renderBlock-&gt;node());

Please use toHTMLElement.

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1742
&gt; +    while (parent &amp;&amp; !parent-&gt;isPluginElement())

Weird that this isn’t capitalized the same as everything else (but obviously not your fault).

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1748
&gt; +    HTMLPlugInElement* plugInElement = static_cast&lt;HTMLPlugInElement*&gt;(parent);

Ditto (if there is one?).

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1752
&gt; +    HTMLPlugInImageElement* plugInImageElement = static_cast&lt;HTMLPlugInImageElement*&gt;(plugInElement);

Ditto (if there is one?).

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1764
&gt; +    RenderBox* renderBox = static_cast&lt;RenderBox*&gt;(renderBlock);

Ditto.

&gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1770
&gt; +        renderBox = static_cast&lt;RenderBox*&gt;(renderBox-&gt;parentBox());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850748</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 18:56:54 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 192123 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192123&amp;action=review
&gt; 
&gt; Seems reasonable to me! Would really like more tests.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1717
&gt; &gt; +    LayoutUnit cWidth = renderBlock-&gt;contentWidth();
&gt; 
&gt; Leading c looks so weird.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1729
&gt; &gt; +    IntRect alignedRect = pixelSnappedIntRect(rect);
&gt; 
&gt; Is pixel-snapping right here?


&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1740
&gt; &gt; +    HTMLElement* plugInOverlay = static_cast&lt;HTMLElement*&gt;(renderBlock-&gt;node());
&gt; 
&gt; Please use toHTMLElement.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1742
&gt; &gt; +    while (parent &amp;&amp; !parent-&gt;isPluginElement())
&gt; 
&gt; Weird that this isn’t capitalized the same as everything else (but obviously not your fault).

Yes :(

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1748
&gt; &gt; +    HTMLPlugInElement* plugInElement = static_cast&lt;HTMLPlugInElement*&gt;(parent);
&gt; 
&gt; Ditto (if there is one?).

I made one.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1752
&gt; &gt; +    HTMLPlugInImageElement* plugInImageElement = static_cast&lt;HTMLPlugInImageElement*&gt;(plugInElement);
&gt; 
&gt; Ditto (if there is one?).

I made one.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1764
&gt; &gt; +    RenderBox* renderBox = static_cast&lt;RenderBox*&gt;(renderBlock);
&gt; 
&gt; Ditto.

Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMacShared.mm:1770
&gt; &gt; +        renderBox = static_cast&lt;RenderBox*&gt;(renderBox-&gt;parentBox());

In fact, that one isn&apos;t even necessary.

&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850760</commentid>
    <comment_count>10</comment_count>
      <attachid>192130</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 19:15:01 -0800</bug_when>
    <thetext>Created attachment 192130
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850762</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 19:18:24 -0800</bug_when>
    <thetext>Eric, I hear you are looking at static_casts and toBlah() methods. I added some to HTMLPlugInElement and HTMLPlugInImageElement here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850768</commentid>
    <comment_count>12</comment_count>
      <attachid>192130</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-07 19:21:17 -0800</bug_when>
    <thetext>Comment on attachment 192130
Patch for landing

Attachment 192130 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17054303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850769</commentid>
    <comment_count>13</comment_count>
      <attachid>192130</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-07 19:21:32 -0800</bug_when>
    <thetext>Comment on attachment 192130
Patch for landing

Attachment 192130 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16990308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850776</commentid>
    <comment_count>14</comment_count>
      <attachid>192132</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-07 19:32:44 -0800</bug_when>
    <thetext>Created attachment 192132
Another Patch for Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851002</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-08 02:08:51 -0800</bug_when>
    <thetext>Committed r145196: &lt;http://trac.webkit.org/changeset/145196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192089</attachid>
            <date>2013-03-07 15:02:12 -0800</date>
            <delta_ts>2013-03-07 18:32:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108368-20130308095814.patch</filename>
            <type>text/plain</type>
            <size>17807</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyZTA3MWVhODM1YWM0
NTI5YzgwZTU2Mjk0NGNjMDFiZTU5Y2MyNi4uMDM0Y2ViOTNlNzczMDAzN2Q4NzhmYTYxOTYxMTJj
MDk1ZjZiNTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBjdXN0b20g
cmVuZGVyZXIgZm9yIHRoZSBzbmFwc2hvdHRlZCBwbHVnaW4gYmFja2dyb3VuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODI4NCAocjE0MjUwNyksIGEKKyAgICAgICAg
c25hcHNob3R0ZWQgcGx1Z2luIHdhcyBubyBsb25nZXIgZHJhd2luZyB0aGUgYmFja2dyb3VuZCBv
ZiB0aGUKKyAgICAgICAgbGFiZWwgYmx1cnJlZC4gU2luY2UgdGhlIHNuYXBzaG90IGNvbnRlbnQg
d2FzIG5vdyBhIHNoYWRvdyB0cmVlLAorICAgICAgICBpdCB3YXNuJ3QgZmVhc2libGUgdG8gcHJl
LWJsdXIgYSByZWdpb24gb2YgdGhlIHNuYXBzaG90OiB0aGUgbGFiZWwKKyAgICAgICAgY291bGQg
YmUgYW55IHNpemUgYW5kIGluIGFueSBsb2NhdGlvbiwgd2l0aCBwb3J0cyBiZWluZyBhYmxlIHRv
CisgICAgICAgIG92ZXJyaWRlIHRoZSBhcHBlYXJhbmNlIHRocm91Z2ggdGhlaXIgVUEgc3R5bGUg
c2hlZXQuCisKKyAgICAgICAgSW5zdGVhZCB3ZSBub3cgdXNlIG9uZSBvZiB0aGUgZWxlbWVudHMg
aW4gdGhlIHRyZWUsIHRoZSBzbmFwc2hvdC1vdmVybGF5LAorICAgICAgICBhcyBhIGhvb2sgd2hl
cmUgcG9ydHMgY2FuIGFkZCBhbnkgZWZmZWN0IHRoZXkgd2FudC4gVGhpcyBjb3VsZCBiZSBzaW1w
bHkKKyAgICAgICAgYSBib3JkZXIsIG9yIGEgdHJhbnNwYXJlbnQgbWFzaywgb3IgZXZlbiBhIENT
UyBmaWx0ZXIuIFdlIHVzZSBhIGN1c3RvbQorICAgICAgICBIVE1MIGVsZW1lbnQgKGRlcml2ZWQg
ZnJvbSBIVE1MRGl2RWxlbWVudCkgYW5kIGEgY3VzdG9tIHJlbmRlcmVyIHRvCisgICAgICAgIHBh
aW50IGludG8gdGhpcyBlbGVtZW50LCBwcm92aWRpbmcgYW5vdGhlciBjb3B5IG9mIHRoZSBzbmFw
c2hvdCBpbWFnZQorICAgICAgICB0aGF0IGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2hhZG93IHRy
ZWUuCisKKyAgICAgICAgVGhpcyBpcyB1bmZvcnR1bmF0ZWx5IGEgZmFpcmx5IGJydXRhbCB3YXkg
dG8gYWNoaWV2ZSB0aGUgZWZmZWN0CisgICAgICAgIHdlJ3JlIGFmdGVyLiBUaGVyZSBhcmUgYSBu
dW1iZXIgb2YgbmljZXIgc29sdXRpb25zIHRoYXQgd2UgY291bGQKKyAgICAgICAgaW52ZXN0aWdh
dGUgZm9yIHRoZSBmdXR1cmU6CisgICAgICAgIC0gYWxsb3cgQ1NTIGVmZmVjdHMgdG8gYXBwbHkg
dG8gdGhlIGJhY2tncm91bmQgb2YgYW4gZWxlbWVudAorICAgICAgICAgIChpLmUuIGEgQ1NTIGZp
bHRlciBvbiB0aGUgYmFja2dyb3VuZCBhcyB0aGUgZWxlbWVudCBpcyBjb21wb3NpdGVkKS4KKyAg
ICAgICAgLSBoYXZlIHRoZSBzaGFkb3cgcm9vdCBhYmxlIHRvIHJlZmVyZW5jZSB0aGUgaW1hZ2Ug
b2YgdGhlIHNuYXBzaG90CisgICAgICAgICAgdGhhdCBpcyBoZWxkIGluIHRoZSBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50ICh3aXRob3V0IGV4cG9zaW5nIGl0CisgICAgICAgICAgdG8gdGhlIHBhZ2Ug
c2NyaXB0KS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU25hcHNob3R0ZWRQbHVnSW5PdmVybGF5RWxlbWVudDo6SFRN
TFNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheUVsZW1lbnQpOgorICAgICAgICAgICAgQSBuZXcgc3Vi
Y2xhc3Mgb2YgSFRNTERpdkVsZW1lbnQgdGhhdCBpcyB0aGUgc25hcHNob3Qtb3ZlcmxheS4gVGhl
IG9ubHkKKyAgICAgICAgICAgIGNoYW5nZSBpcyB0aGUgZmFjdCB0aGF0IGl0IHByb2R1Y2VzIGEg
Y3VzdG9tIHJlbmRlcmVyLiBJdCBzdGlsbCBhcHBlYXJzCisgICAgICAgICAgICBpbiB0aGUgdHJl
ZSBhcyBhIDxkaXY+LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNuYXBzaG90dGVkUGx1Z0luT3Zl
cmxheUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU25hcHNob3R0ZWRQ
bHVnSW5PdmVybGF5RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBSZXR1cm4gYQorICAgICAgICAg
ICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5PdmVybGF5LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6IE1ha2Ugc3Vy
ZSB0aGUgb3ZlcmxheQorICAgICAgICAgICAgZGl2IGVsZW1lbnQgaXMgY3JlYXRlZCBieSBIVE1M
U25hcHNob3R0ZWRQbHVnSW5PdmVybGF5RWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTbmFwc2hvdHRlZFBsdWdJ
bk92ZXJsYXlFbGVtZW50OjpwbHVnSW5JbWFnZUVsZW1lbnQpOiBSZXR1cm4gYSByZWZlcmVuY2UK
KyAgICAgICAgICAgIHRvIG91ciBwbHVnaW4sIGFsbG93aW5nIHVzIGFjY2VzcyB0byB0aGUgc25h
cHNob3QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnSW5PdmVybGF5KTogTmV3IGN1c3RvbQorICAgICAgICAgICAgcmVuZGVy
ZXIgZm9yIHRoZSBzcGVjaWFsIG92ZXJsYXkgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheTo6flJlbmRlclNuYXBzaG90dGVkUGx1Z0luT3Zl
cmxheSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXk6
OnBhaW50KTogV2hlbiBpdCBjb21lcyB0aW1lIHRvIHBhaW50IHRoZSBzcGVjaWFsCisgICAgICAg
ICAgICBlbGVtZW50LCBsb29rIGF0IHRoZSBwbHVnaW4gdG8gc2VlIGlmIHRoZXJlIGlzIGEgc25h
cHNob3QuIFRoZW4gd29yayBvdXQgd2hlcmUgd2UKKyAgICAgICAgICAgIGFyZSBpbiByZWxhdGlv
biB0byB0aGUgcm9vdCBvZiB0aGUgcGx1Z2luICh0YWtpbmcgYW55IGNvbXBvc2l0aW5nIGludG8g
YWNjb3VudCkgYW5kCisgICAgICAgICAgICB0aGVuIGRyYXcgdGhlIHNuYXBzaG90IGludG8gb3Vy
c2VsdmVzIGF0IHRoZSByaWdodCBwbGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpwYWludCk6IFJlbW92ZWQgc29tZSBvbGQgbG9naWMgdGhhdCB3YXMgcHJl
Ymx1cnJpbmcKKyAgICAgICAgICAgIGFuIEltYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QpOiBNZXJnZWQgdHdvIG1ldGhvZHMgc2lu
Y2UgdGhlIGxvZ2ljCisgICAgICAgICAgICBpcyBhIGxvdCBtb3JlIHNpbXBsZSBub3cuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXk6OnJlbmRlck5hbWUpOiBHaXZlIHRo
ZSByZW5kZXJlciBhIHVuaXF1ZSBuYW1lLgorCiAyMDEzLTAzLTA1ICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNvbWUgY3Jhc2hlcyBpbiByZW5kZXIgc2xp
ZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
aW5kZXggMDcxOGRmMDFlMjZkZTQ5N2JlMWNmYmEwODU2NDMxNTUxYmJhMmE3Mi4uMjMwYTZlNmUy
OTNjZTViZjczNjkwZjJiMmQ0OTM1NmZiNmI5MDcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC02Miw2ICs2MiwyMiBAQCBzdGF0aWMg
Y29uc3QgZmxvYXQgc2l6aW5nRnVsbFBhZ2VBcmVhUmF0aW9UaHJlc2hvbGQgPSAwLjk2OwogLy8g
VGhpcyBkZWxheSBzaG91bGQgbm90IGV4Y2VlZCB0aGUgc25hcHNob3QgZGVsYXkgaW4gUGx1Z2lu
Vmlldy5jcHAKIHN0YXRpYyBjb25zdCBkb3VibGUgc2ltdWxhdGVkTW91c2VDbGlja1RpbWVyRGVs
YXkgPSAuNzU7CiAKK0hUTUxTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXlFbGVtZW50OjpIVE1MU25h
cHNob3R0ZWRQbHVnSW5PdmVybGF5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIG93bmVyRWxlbWVu
dCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgICwgbV9wbHVn
SW5JbWFnZUVsZW1lbnQob3duZXJFbGVtZW50KQoreworfQorCitQYXNzUmVmUHRyPEhUTUxTbmFw
c2hvdHRlZFBsdWdJbk92ZXJsYXlFbGVtZW50PiBIVE1MU25hcHNob3R0ZWRQbHVnSW5PdmVybGF5
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCogb3duZXJFbGVtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNuYXBzaG90
dGVkUGx1Z0luT3ZlcmxheUVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCwgb3duZXJFbGVtZW50KSk7
Cit9CisKK1JlbmRlck9iamVjdCogSFRNTFNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheUVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQoreworICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXkodGhpcyk7
Cit9CisKIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0
ZWRCeVBhcnNlciwgUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbiBwcmVmZXJQbHVnSW5zRm9y
SW1hZ2VzT3B0aW9uKQogICAgIDogSFRNTFBsdWdJbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
CiAgICAgLy8gbV9uZWVkc1dpZGdldFVwZGF0ZSghY3JlYXRlZEJ5UGFyc2VyKSBhbGxvd3MgSFRN
TE9iamVjdEVsZW1lbnQgdG8gZGVsYXkKQEAgLTMzOCw3ICszNTQsNyBAQCB2b2lkIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9v
dCkKICAgICBSZWZQdHI8RWxlbWVudD4gY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2MpOwogICAgIGNvbnRhaW5lci0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXRvbWljU3Ry
aW5nKCJzbmFwc2hvdC1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gb3ZlcmxheSA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gb3ZlcmxheSA9IEhUTUxTbmFwc2hvdHRl
ZFBsdWdJbk92ZXJsYXlFbGVtZW50OjpjcmVhdGUoZG9jLCB0aGlzKTsKICAgICBvdmVybGF5LT5z
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBdG9taWNTdHJpbmcoInNuYXBzaG90LW92ZXJsYXkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29udGFpbmVyLT5hcHBl
bmRDaGlsZChvdmVybGF5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBmODViM2YyMjljYTc4NzYzNGQx
NzljZjJhMWQ1YWNjNGI2ZGY4YjhlLi5kY2E5NzQ3OWE3MWYzMDc4NDE5ZDQzNzdjNmI4MWJkMGEz
NTU5OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aApAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50X2gKICNk
ZWZpbmUgSFRNTFBsdWdJbkltYWdlRWxlbWVudF9oCiAKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAKICNpbmNsdWRlICJSZW5kZXJT
dHlsZS5oIgpAQCAtMTI0LDYgKzEyNSwxOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJbWFnZT4g
bV9zbmFwc2hvdEltYWdlOwogfTsKIAorY2xhc3MgSFRNTFNuYXBzaG90dGVkUGx1Z0luT3Zlcmxh
eUVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXlFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQqLCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kik7CisKKyAgICBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50KiBwbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3BsdWdJbkltYWdl
RWxlbWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIEhUTUxTbmFwc2hvdHRlZFBsdWdJbk92
ZXJsYXlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworCisgICAgUmVmUHRyPEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ+IG1fcGx1Z0luSW1hZ2VFbGVtZW50OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gSFRNTFBsdWdJbkltYWdlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCBk
YWRiYjkyNDBhN2MzNGUwY2JiNzRjOWZkN2FlMTViNTBiY2ZjMjdjLi4wYWNlOWYwYWVjZDNhMTEx
OWEzYmE2NjE1Y2Y1NzE1MzkyZWZlMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTI5LDE5ICsyOSwxOSBAQAog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkN1cnNvci5oIgotI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgiCiAjaW5jbHVkZSAiRmlsdGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWludEluZm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU291cmNlR3JhcGhpYy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDU0ICs0OSw3MyBAQCBzdGF0aWMgY29uc3Qg
aW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRXaWR0aCA9IDE7CiBzdGF0aWMgY29uc3Qg
aW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRIZWlnaHQgPSAxOwogc3RhdGljIGNvbnN0
IGRvdWJsZSBzaG93TGFiZWxBZnRlck1vdXNlT3ZlckRlbGF5ID0gMTsKIHN0YXRpYyBjb25zdCBk
b3VibGUgc2hvd0xhYmVsQXV0b21hdGljYWxseURlbGF5ID0gMzsKLXN0YXRpYyBjb25zdCBpbnQg
c25hcHNob3RMYWJlbEJsdXJSYWRpdXMgPSA1OwotCi0jaWYgRU5BQkxFKEZJTFRFUlMpCi1jbGFz
cyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIgOiBwdWJsaWMgRmlsdGVyIHsKLSAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI+IGNyZWF0ZShpbnQgcmFkaXVzKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bkJsdXJGaWx0ZXIocmFkaXVzKSk7Ci0gICAgfQotCi0gICAgdm9pZCBzZXRTb3VyY2VJbWFnZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByKQotICAgIHsKLSAgICAgICAgbV9zb3VyY2VJbWFnZVJlY3Qg
PSByOwotICAgICAgICBtX2ZpbHRlclJlZ2lvbiA9IHI7Ci0gICAgICAgIG1fc291cmNlR3JhcGhp
Yy0+c2V0TWF4RWZmZWN0UmVjdChyKTsKLSAgICAgICAgbV9ibHVyLT5zZXRNYXhFZmZlY3RSZWN0
KHIpOwotICAgIH0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZUltYWdlUmVjdDsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZp
bHRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9Ci0KLSAgICB2b2lk
IGFwcGx5KCk7Ci0gICAgSW1hZ2VCdWZmZXIqIG91dHB1dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmx1
ci0+YXNJbWFnZUJ1ZmZlcigpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW5CbHVyRmlsdGVyKGludCByYWRpdXMpOwogCi0gICAgRmxvYXRSZWN0IG1fc291cmNlSW1h
Z2VSZWN0OwotICAgIEZsb2F0UmVjdCBtX2ZpbHRlclJlZ2lvbjsKLSAgICBSZWZQdHI8U291cmNl
R3JhcGhpYz4gbV9zb3VyY2VHcmFwaGljOwotICAgIFJlZlB0cjxGRUdhdXNzaWFuQmx1cj4gbV9i
bHVyOwotfTsKK1JlbmRlclNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW5PdmVybGF5KEhUTUxTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXlFbGVtZW50KiBlbGVt
ZW50KQorICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK3sKK30KIAotUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW5CbHVyRmlsdGVyOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIoaW50
IHJhZGl1cykKK1JlbmRlclNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheTo6flJlbmRlclNuYXBzaG90
dGVkUGx1Z0luT3ZlcmxheSgpCiB7Ci0gICAgc2V0RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUo
MSwgMSkpOwotICAgIG1fc291cmNlR3JhcGhpYyA9IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZSh0aGlz
KTsKLSAgICBtX2JsdXIgPSBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlKHRoaXMsIHJhZGl1cywgcmFk
aXVzKTsKLSAgICBtX2JsdXItPmlucHV0RWZmZWN0cygpLmFwcGVuZChtX3NvdXJjZUdyYXBoaWMp
OwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcjo6YXBwbHkoKQor
dm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXk6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAgbV9zb3VyY2VH
cmFwaGljLT5jbGVhclJlc3VsdCgpOwotICAgIG1fYmx1ci0+Y2xlYXJSZXN1bHQoKTsKLSAgICBt
X2JsdXItPmFwcGx5KCk7CisgICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlQmxv
Y2tCYWNrZ3JvdW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBMYXlvdXRVbml0IGNXaWR0aCA9
IGNvbnRlbnRXaWR0aCgpOworICAgIExheW91dFVuaXQgY0hlaWdodCA9IGNvbnRlbnRIZWlnaHQo
KTsKKyAgICBpZiAoIWNXaWR0aCB8fCAhY0hlaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7CisKKyAgICBMYXlv
dXRTaXplIGNvbnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29u
dGVudExvY2F0aW9uID0gbG9jYXRpb24oKSArIHBhaW50T2Zmc2V0OworICAgIGNvbnRlbnRMb2Nh
dGlvbi5tb3ZlKGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFk
ZGluZ1RvcCgpKTsKKworICAgIExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24sIGNvbnRl
bnRTaXplKTsKKyAgICBJbnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChy
ZWN0KTsKKyAgICBpZiAoYWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0Lmhl
aWdodCgpIDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIG5lZWQgdG8gZ2V0IHRo
ZSBzbmFwc2hvdCBpbWFnZSBmcm9tIHRoZSBwbHVnaW4gZWxlbWVudCwgd2hpY2ggc2hvdWxkIGJl
IGF2YWlsYWJsZQorICAgIC8vIGZyb20gb3VyIG5vZGUuCisgICAgSFRNTFNuYXBzaG90dGVkUGx1
Z0luT3ZlcmxheUVsZW1lbnQqIHBsdWdJbk92ZXJsYXkgPSBzdGF0aWNfY2FzdDxIVE1MU25hcHNo
b3R0ZWRQbHVnSW5PdmVybGF5RWxlbWVudCo+KG5vZGUoKSk7CisgICAgSFRNTFBsdWdJbkltYWdl
RWxlbWVudCogcGx1Z0luSW1hZ2VFbGVtZW50ID0gcGx1Z0luT3ZlcmxheS0+cGx1Z0luSW1hZ2VF
bGVtZW50KCk7CisgICAgaWYgKCFwbHVnSW5JbWFnZUVsZW1lbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEltYWdlKiBzbmFwc2hvdCA9IHBsdWdJbkltYWdlRWxlbWVudC0+c25hcHNob3RJbWFn
ZSgpOworICAgIGlmICghc25hcHNob3QpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luKiBwbHVnSW5SZW5kZXJlciA9IHRvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4ocGx1Z0luSW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICBGbG9hdFBvaW50IHNuYXBz
aG90QWJzUG9zID0gcGx1Z0luUmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgpOworICAgIHNuYXBz
aG90QWJzUG9zLm1vdmUocGx1Z0luUmVuZGVyZXItPmJvcmRlckxlZnQoKSArIHBsdWdJblJlbmRl
cmVyLT5wYWRkaW5nTGVmdCgpLCBwbHVnSW5SZW5kZXJlci0+Ym9yZGVyVG9wKCkgKyBwbHVnSW5S
ZW5kZXJlci0+cGFkZGluZ1RvcCgpKTsKKworICAgIC8vIFdlIGNvdWxkIGRyYXcgdGhlIHNuYXBz
aG90IHdpdGggdGhhdCBjb29yZGluYXRlcywgYnV0IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZXJl
CisgICAgLy8gaXNuJ3QgYSBjb21wb3NpdGVkIGxheWVyIGJldHdlZW4gdXMgYW5kIHRoZSBwbHVn
SW5SZW5kZXJlci4KKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHN0YXRpY19jYXN0PFJlbmRl
ckJveCo+KHRoaXMpOworICAgIHdoaWxlIChyZW5kZXJCb3ggIT0gcGx1Z0luUmVuZGVyZXIpIHsK
KyAgICAgICAgaWYgKHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiByZW5kZXJCb3gtPmxheWVyKCkg
JiYgcmVuZGVyQm94LT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgc25h
cHNob3RBYnNQb3MgPSAtcmVuZGVyQm94LT5sb2NhdGlvbigpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgcmVuZGVyQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVyQm94Kj4o
cmVuZGVyQm94LT5wYXJlbnRCb3goKSk7CisgICAgfQorCisgICAgTGF5b3V0U2l6ZSBwbHVnaW5T
aXplKHBsdWdJblJlbmRlcmVyLT5jb250ZW50V2lkdGgoKSwgcGx1Z0luUmVuZGVyZXItPmNvbnRl
bnRIZWlnaHQoKSk7CisgICAgTGF5b3V0UmVjdCBwbHVnaW5SZWN0KHNuYXBzaG90QWJzUG9zLCBw
bHVnaW5TaXplKTsKKyAgICBJbnRSZWN0IGFsaWduZWRQbHVnaW5SZWN0ID0gcGl4ZWxTbmFwcGVk
SW50UmVjdChwbHVnaW5SZWN0KTsKKworICAgIGlmIChhbGlnbmVkUGx1Z2luUmVjdC53aWR0aCgp
IDw9IDAgfHwgYWxpZ25lZFBsdWdpblJlY3QuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFs
aXR5KGNvbnRleHQsIHNuYXBzaG90LCBzbmFwc2hvdCwgYWxpZ25lZFBsdWdpblJlY3Quc2l6ZSgp
KTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2Uoc25hcHNob3QsIHN0eWxlKCktPmNvbG9yU3BhY2Uo
KSwgYWxpZ25lZFBsdWdpblJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKIH0KLSNlbmRpZgogCiBS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCkBAIC0x
NjAsMTcgKzE3OSwxOCBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFw
c2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiB7CiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlQmxvY2tCYWNr
Z3JvdW5kICYmIHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVn
SW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7Ci0gICAgICAgIGlmICht
X3Nob3VsZFNob3dMYWJlbCkKLSAgICAgICAgICAgIHBhaW50U25hcHNob3RXaXRoTGFiZWwocGFp
bnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhaW50U25h
cHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHBhaW50U25hcHNob3QocGFp
bnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAgfQogCiAgICAgUmVuZGVyQmxvY2s6OnBhaW50KHBh
aW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpwYWludFNuYXBzaG90SW1hZ2UoSW1hZ2UqIGltYWdlLCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6cGFpbnRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2V0KQogeworICAgIEltYWdlKiBpbWFnZSA9IG1fc25hcHNob3RSZXNvdXJj
ZS0+aW1hZ2UoKS5nZXQoKTsKKyAgICBpZiAoIWltYWdlIHx8IGltYWdlLT5pc051bGwoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0VW5pdCBjV2lkdGggPSBjb250ZW50V2lkdGgoKTsK
ICAgICBMYXlvdXRVbml0IGNIZWlnaHQgPSBjb250ZW50SGVpZ2h0KCk7CiAgICAgaWYgKCFjV2lk
dGggfHwgIWNIZWlnaHQpCkBAIC0xOTUsNjUgKzIxNSw2IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnBhaW50U25hcHNob3RJbWFnZShJbWFnZSogaW1hZ2UsIFBhaW50SW5mbyYgcGFp
bnRJCiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCks
IGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9z
bmFwc2hvdFJlc291cmNlLT5pbWFnZSgpOwotICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVs
bCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWludFNuYXBzaG90SW1hZ2UoaW1hZ2UuZ2V0
KCksIHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwotfQotCi0jaWYgRU5BQkxFKEZJTFRFUlMpCi1z
dGF0aWMgUGFzc1JlZlB0cjxJbWFnZT4gc25hcHNob3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlz
cGxheShQYXNzUmVmUHRyPEltYWdlPiBzbmFwc2hvdCwgY29uc3QgTGF5b3V0UmVjdCYgYmx1clJl
Z2lvbikKLXsKLSAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90QnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzbmFwc2hvdC0+c2l6ZSgpKTsKLSAgICBzbmFwc2hvdEJ1ZmZlci0+Y29u
dGV4dCgpLT5kcmF3SW1hZ2Uoc25hcHNob3QuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIElu
dFBvaW50KDAsIDApKTsKLQotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYmx1ckJ1ZmZlciA9IElt
YWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZEludFNpemUoYmx1clJlZ2lvbi5zaXplKCkpKTsKLSAg
ICBibHVyQnVmZmVyLT5jb250ZXh0KCktPmRyYXdJbWFnZShzbmFwc2hvdC5nZXQoKSwgQ29sb3JT
cGFjZURldmljZVJHQiwgSW50UG9pbnQoLWJsdXJSZWdpb24ueCgpLCAtYmx1clJlZ2lvbi55KCkp
KTsKLQotICAgIFJlZlB0cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI+IGJsdXJG
aWx0ZXIgPSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmNyZWF0ZShzbmFwc2hv
dExhYmVsQmx1clJhZGl1cyk7Ci0gICAgYmx1ckZpbHRlci0+c2V0U291cmNlSW1hZ2UoYmx1ckJ1
ZmZlci5yZWxlYXNlKCkpOwotICAgIGJsdXJGaWx0ZXItPnNldFNvdXJjZUltYWdlUmVjdChGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBibHVyUmVnaW9uLnNpemUoKSkpOwotICAgIGJsdXJGaWx0ZXIt
PmFwcGx5KCk7Ci0KLSAgICBzbmFwc2hvdEJ1ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2VCdWZm
ZXIoYmx1ckZpbHRlci0+b3V0cHV0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQ
b2ludChibHVyUmVnaW9uLmxvY2F0aW9uKCkpKTsKLSAgICByZXR1cm4gc25hcHNob3RCdWZmZXIt
PmNvcHlJbWFnZSgpOwotfQotI2VuZGlmCi0KLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OnBhaW50U25hcHNob3RXaXRoTGFiZWwoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAgICBpZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhv
dmVyZWQoKSAmJiBtX3Nob3dSZWFzb24gPT0gVXNlck1vdXNlZE92ZXIpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fc2hvd2VkTGFiZWxPbmNlID0gdHJ1ZTsKLSAgICBMYXlvdXRSZWN0IGxhYmVs
UmVjdDsKLQotICAgIFJlZlB0cjxJbWFnZT4gc25hcHNob3RJbWFnZSA9IG1fc25hcHNob3RSZXNv
dXJjZS0+aW1hZ2UoKTsKLSAgICBpZiAoIXNuYXBzaG90SW1hZ2UgfHwgc25hcHNob3RJbWFnZS0+
aXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQotI2lmIEVOQUJMRShGSUxURVJTKQotICAgIC8v
IEZJWE1FOiBUZW1wb3JhcmlseSBkaXNhYmxpbmcgdGhlIGJsdXIgYmVoaW5kIHRoZSBsYWJlbC4K
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4Ci0g
ICAgaWYgKCFsYWJlbFJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxJbWFnZT4gYmx1
cnJlZFNuYXBzaG90SW1hZ2UgPSBtX3NuYXBzaG90UmVzb3VyY2VGb3JMYWJlbC0+aW1hZ2UoKTsK
LSAgICAgICAgaWYgKCFibHVycmVkU25hcHNob3RJbWFnZSB8fCBibHVycmVkU25hcHNob3RJbWFn
ZS0+aXNOdWxsKCkpIHsKLSAgICAgICAgICAgIGJsdXJyZWRTbmFwc2hvdEltYWdlID0gc25hcHNo
b3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlzcGxheShzbmFwc2hvdEltYWdlLCBsYWJlbFJlY3Qp
OwotICAgICAgICAgICAgbV9zbmFwc2hvdFJlc291cmNlRm9yTGFiZWwtPnNldENhY2hlZEltYWdl
KG5ldyBDYWNoZWRJbWFnZShibHVycmVkU25hcHNob3RJbWFnZS5nZXQoKSkpOwotICAgICAgICB9
Ci0gICAgICAgIHNuYXBzaG90SW1hZ2UgPSBibHVycmVkU25hcHNob3RJbWFnZTsKLSAgICB9Ci0j
ZW5kaWYKLQotICAgIHBhaW50U25hcHNob3RJbWFnZShzbmFwc2hvdEltYWdlLmdldCgpLCBwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKLX0KLQogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6
cmVwYWludExhYmVsKCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmZvcnR1bmF0ZS4gV2Ug
c2hvdWxkIGp1c3QgcmVwYWludCB0aGUgbGFiZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IDRhYjNjMmI0MmZlYWY5ZWFk
Yjk3NjUzZTUzMzRiODBhNGVkODUxZjcuLmFlMTllMzk1ZDIzYjM2MmNhYjg5NGYwMjU5M2ZhMjkx
NTdiZGM3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCkBAIC0zMiw4ICszMiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIEhUTUxTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXlFbGVtZW50OwogY2xhc3MgSFRN
TFBsdWdJbkltYWdlRWxlbWVudDsKIAorY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5PdmVy
bGF5IDogcHVibGljIFJlbmRlckJsb2NrIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbk92ZXJsYXkoSFRNTFNuYXBzaG90dGVkUGx1Z0luT3ZlcmxheUVsZW1l
bnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbk92ZXJsYXkoKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJl
dHVybiAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5PdmVybGF5IjsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOworfTsKKwog
Y2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQqKTsKQEAgLTU1LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKIAogICAgIHZv
aWQgcGFpbnRTbmFwc2hvdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIHZv
aWQgcGFpbnRTbmFwc2hvdFdpdGhMYWJlbChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OwotICAgIHZvaWQgcGFpbnRTbmFwc2hvdEltYWdlKEltYWdlKiwgUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKICAgICB2b2lkIHJlcGFpbnRMYWJlbCgpOwogCiAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192123</attachid>
            <date>2013-03-07 18:32:53 -0800</date>
            <delta_ts>2013-03-07 19:14:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108368-20130308132855.patch</filename>
            <type>text/plain</type>
            <size>20636</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyZTA3MWVhODM1YWM0
NTI5YzgwZTU2Mjk0NGNjMDFiZTU5Y2MyNi4uYzFmZDMwNDk5NjE0YjkxMzg1OWExODk2MGE2YjUy
MGYwZjQxYzM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBjdXN0b20g
YXBwZWFyYW5jZSBmb3IgdGhlIHNuYXBzaG90dGVkIHBsdWdpbiBiYWNrZ3JvdW5kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgzNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mjg0IChyMTQyNTA3KSwgYQorICAgICAg
ICBzbmFwc2hvdHRlZCBwbHVnaW4gd2FzIG5vIGxvbmdlciBkcmF3aW5nIHRoZSBiYWNrZ3JvdW5k
IG9mIHRoZQorICAgICAgICBsYWJlbCBibHVycmVkLiBTaW5jZSB0aGUgc25hcHNob3QgY29udGVu
dCB3YXMgbm93IGEgc2hhZG93IHRyZWUsCisgICAgICAgIGl0IHdhc24ndCBmZWFzaWJsZSB0byBw
cmUtYmx1ciBhIHJlZ2lvbiBvZiB0aGUgc25hcHNob3Q6IHRoZSBsYWJlbAorICAgICAgICBjb3Vs
ZCBiZSBhbnkgc2l6ZSBhbmQgaW4gYW55IGxvY2F0aW9uLCB3aXRoIHBvcnRzIGJlaW5nIGFibGUg
dG8KKyAgICAgICAgb3ZlcnJpZGUgdGhlIGFwcGVhcmFuY2UgdGhyb3VnaCB0aGVpciBVQSBzdHls
ZSBzaGVldC4KKworICAgICAgICBJbnN0ZWFkIHdlIG5vdyB1c2Ugb25lIG9mIHRoZSBlbGVtZW50
cyBpbiB0aGUgdHJlZSwgdGhlIHNuYXBzaG90LW92ZXJsYXksCisgICAgICAgIGFzIGEgaG9vayB3
aGVyZSBwb3J0cyBjYW4gYWRkIGFueSBlZmZlY3QgdGhleSB3YW50LiBUaGlzIGNvdWxkIGJlIHNp
bXBseQorICAgICAgICBhIGJvcmRlciwgb3IgYSB0cmFuc3BhcmVudCBtYXNrLCBvciBldmVuIGEg
Q1NTIGZpbHRlci4gV2UgaW50cm9kdWNlIGEgY3VzdG9tCisgICAgICAgIENTUyBhcHBlYXJhbmNl
ICJzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheSIsIHdoaWNoIGNvdWxkIGJlIGFkZGVkIHRvIHRo
ZQorICAgICAgICBlbGVtZW50IGluIHRoZSBpbmplY3RlZCBVQSBzdHlsZXNoZWV0LiBUaGlzIGNh
bGxzIGludG8gUmVuZGVyVGhlbWUgaW4KKyAgICAgICAgdGhlIHNhbWUgd2F5IHRoYXQgY3VzdG9t
IGNvbnRyb2xzIGRvLgorCisgICAgICAgIE1lYW53aGlsZSwgaW4gUmVuZGVyVGhlbWVNYWMsIHdl
IGltcGxlbWVudCB0aGUgYXBwZWFyYW5jZSBieSBkcmF3aW5nIHRoZQorICAgICAgICBjb250ZW50
IG9mIHRoZSBwbHVnaW4gc25hcHNob3QgaW50byB0aGUgYmFja2dyb3VuZCBvZiB0aGUgZWxlbWVu
dC4gVGhhdAorICAgICAgICB3YXkgd2UgY2FuIGFkZCBlZmZlY3RzIGluIENTUy4KKworICAgICAg
ICBUZXN0OiBwbHVnaW5zL3NuYXBzaG90LWFwcGVhcmFuY2UuaHRtbAorCisgICAgICAgICogY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6IEhhbmRsZSBTbmFwc2hvdHRlZFBsdWdpbk92
ZXJsYXlQYXJ0LgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBOZXcgYXBwZWFy
YW5jZSB2YWx1ZSBzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9UaGVtZVR5cGVzLmg6IE5ldyB2YWx1ZSBTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXlQYXJ0Lgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6IFJlbW92ZSB0
aGUgY29kZSBmb3IgaGFuZGxpbmcKKyAgICAgICAgICAgIHRoZSBibHVyIGRpcmVjdGx5IGluIHRo
ZSByZW5kZXJlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludCk6IFNpbXBsaWZ5IHRoZSBwYWludCBsb2dpYyBzaW5jZSB3ZSdyZQorICAgICAgICAgICAg
bm8gbG9uZ2VyIHRyeWluZyB0byBibHVyIGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6IERpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBSZW1vdmUgdGhlIG1ldGhvZHMgdGhhdCB3
ZXJlIHRyeWluZworICAgICAgICAgICAgdG8gYmx1ciB0aGUgaW1hZ2UgZGlyZWN0bHkuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludCk6IENhbGwgcGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkpOiBOZXcgdmlydHVhbCBtZXRob2Qg
d2l0aCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZU1hY1NoYXJlZC5oOgorICAgICAgICAoUmVuZGVyVGhlbWVNYWNTaGFyZWQpOiBPdmVycmlk
ZSBwYWludFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWNTaGFyZWQubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hY1No
YXJlZDo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkpOiBJbXBsZW1lbnQgYSBjdXN0b20g
cmVuZGVyIHBhdGgKKyAgICAgICAgICAgIHRoYXQgdGFrZXMgdGhlIHNuYXBzaG90IGltYWdlIGZy
b20gdGhlIG5vZGUncyBwYXJlbnQsIGFuZCBkcmF3cyBpdCBpbnRvIHRoZSBiYWNrZ3JvdW5kLgor
ICAgICAgICAgICAgQWxvbmcgdGhlIHdheSBtYWtlIHN1cmUgd2UncmUgYWN0dWFsbHkgdXNpbmcg
dGhlIHJpZ2h0IHR5cGUgb2YgZWxlbWVudCAoYW4gSFRNTFBsdWdJbkltYWdlRWxlbWVudCkuCisK
IDIwMTMtMDMtMDUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBG
aXggc29tZSBjcmFzaGVzIGluIHJlbmRlciBzbGlkZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCA1MzJlOTljMjdmZTdkODM3ZTgzNjA0
Y2NiYmEwYmFhZWZkY2M1Zjk2Li5jYzhhYTc4MzRlMjM1YzFlMjg1ZjVmZjJlMTI5NWQ3OTVlOTYz
NGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKQEAgLTU0Niw2ICs1NDYsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBTZWFyY2hG
aWVsZENhbmNlbEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVTZWFyY2hmaWVsZENhbmNlbEJ1dHRvbjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBUZXh0RmllbGRQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVGV4dGZpZWxkOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDc1OTI2ZjYyN2EzN2YyMDZmMTE0ZjE2YTc3NzI5
ZThmZDkzNmU4MGIuLmMwNzU0MWQ0NWQyZDVhODY4M2JmYjljNDdkNWQ2NDAxMjVjMGQ5NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC02ODAsNiArNjgwLDcgQEAg
c2VhcmNoZmllbGQtZGVjb3JhdGlvbgogc2VhcmNoZmllbGQtcmVzdWx0cy1kZWNvcmF0aW9uCiBz
ZWFyY2hmaWVsZC1yZXN1bHRzLWJ1dHRvbgogc2VhcmNoZmllbGQtY2FuY2VsLWJ1dHRvbgorc25h
cHNob3R0ZWQtcGx1Z2luLW92ZXJsYXkKIHRleHRmaWVsZAogcmVsZXZhbmN5LWxldmVsLWluZGlj
YXRvcgogY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RoZW1lVHlwZXMuaAppbmRleCA4ZWY2YjIzNzU0ZmUwYjFhNjM0N2Q1YmM4MmM0NzcyZjEx
ODU5OGUzLi40NDIxYzUxMWEyYWY0ZDNhNjNhMGQ0ZTEzMjNjOGNmMDc0MjcxNWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCkBAIC01Niw3ICs1Niw3IEBAIGVudW0gQ29udHJv
bFBhcnQgewogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNs
aWRlclRodW1iSG9yaXpvbnRhbFBhcnQsCiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENh
cmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAg
IFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b25QYXJ0LAotICAgIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uUGFydCwgVGV4dEZpZWxkUGFydCwK
KyAgICBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblBhcnQsIFNuYXBzaG90dGVkUGx1Z2luT3Zlcmxh
eVBhcnQsIFRleHRGaWVsZFBhcnQsCiAgICAgUmVsZXZhbmN5TGV2ZWxJbmRpY2F0b3JQYXJ0LCBD
b250aW51b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQsIERpc2NyZXRlQ2FwYWNpdHlMZXZl
bEluZGljYXRvclBhcnQsIFJhdGluZ0xldmVsSW5kaWNhdG9yUGFydCwKICAgICBUZXh0QXJlYVBh
cnQsIENhcHNMb2NrSW5kaWNhdG9yUGFydAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IGRhZGJiOTI0MGE3YzM0
ZTBjYmI3NGM5ZmQ3YWUxNWI1MGJjZmMyN2MuLjYyODQzODIwZTJlZGNmNzhjNzNlNTJhN2FiZTgz
YWQwYTYxODBhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNocm9t
ZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgotI2lu
Y2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQxLDYyICs0
MCwxMSBAQAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU291cmNlR3JhcGhpYy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVz
aG9sZFdpZHRoID0gMTsKLXN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVz
aG9sZEhlaWdodCA9IDE7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNob3dMYWJlbEFmdGVyTW91c2VP
dmVyRGVsYXkgPSAxOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzaG93TGFiZWxBdXRvbWF0aWNhbGx5
RGVsYXkgPSAzOwotc3RhdGljIGNvbnN0IGludCBzbmFwc2hvdExhYmVsQmx1clJhZGl1cyA9IDU7
Ci0KLSNpZiBFTkFCTEUoRklMVEVSUykKLWNsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1
ckZpbHRlciA6IHB1YmxpYyBGaWx0ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1
ckZpbHRlcj4gY3JlYXRlKGludCByYWRpdXMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcihyYWRpdXMpKTsKLSAgICB9
Ci0KLSAgICB2b2lkIHNldFNvdXJjZUltYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCi0gICAg
ewotICAgICAgICBtX3NvdXJjZUltYWdlUmVjdCA9IHI7Ci0gICAgICAgIG1fZmlsdGVyUmVnaW9u
ID0gcjsKLSAgICAgICAgbV9zb3VyY2VHcmFwaGljLT5zZXRNYXhFZmZlY3RSZWN0KHIpOwotICAg
ICAgICBtX2JsdXItPnNldE1heEVmZmVjdFJlY3Qocik7Ci0gICAgfQotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHNvdXJjZUltYWdlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0
OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgeyByZXR1cm4g
bV9maWx0ZXJSZWdpb247IH0KLQotICAgIHZvaWQgYXBwbHkoKTsKLSAgICBJbWFnZUJ1ZmZlciog
b3V0cHV0KCkgY29uc3QgeyByZXR1cm4gbV9ibHVyLT5hc0ltYWdlQnVmZmVyKCk7IH0KLQotcHJp
dmF0ZToKLSAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIoaW50IHJhZGl1cyk7
Ci0KLSAgICBGbG9hdFJlY3QgbV9zb3VyY2VJbWFnZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IG1fZmls
dGVyUmVnaW9uOwotICAgIFJlZlB0cjxTb3VyY2VHcmFwaGljPiBtX3NvdXJjZUdyYXBoaWM7Ci0g
ICAgUmVmUHRyPEZFR2F1c3NpYW5CbHVyPiBtX2JsdXI7Ci19OwotCi1SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbkJsdXJGaWx0ZXI6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcihpbnQg
cmFkaXVzKQotewotICAgIHNldEZpbHRlclJlc29sdXRpb24oRmxvYXRTaXplKDEsIDEpKTsKLSAg
ICBtX3NvdXJjZUdyYXBoaWMgPSBTb3VyY2VHcmFwaGljOjpjcmVhdGUodGhpcyk7Ci0gICAgbV9i
bHVyID0gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSh0aGlzLCByYWRpdXMsIHJhZGl1cyk7Ci0gICAg
bV9ibHVyLT5pbnB1dEVmZmVjdHMoKS5hcHBlbmQobV9zb3VyY2VHcmFwaGljKTsKLX0KLQotdm9p
ZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmFwcGx5KCkKLXsKLSAgICBtX3Nv
dXJjZUdyYXBoaWMtPmNsZWFyUmVzdWx0KCk7Ci0gICAgbV9ibHVyLT5jbGVhclJlc3VsdCgpOwot
ICAgIG1fYmx1ci0+YXBwbHkoKTsKLX0KLSNlbmRpZgogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVu
dCkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCkBAIC0xNjAsMTcgKzEwOCwxOCBAQCB2b2lk
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdl
PiBpbWFnZSkKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHBh
aW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kICYmIHBsdWdJbkltYWdl
RWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nV2l0
aFBlbmRpbmdNb3VzZUNsaWNrKSB7Ci0gICAgICAgIGlmIChtX3Nob3VsZFNob3dMYWJlbCkKLSAg
ICAgICAgICAgIHBhaW50U25hcHNob3RXaXRoTGFiZWwocGFpbnRJbmZvLCBwYWludE9mZnNldCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWlu
dE9mZnNldCk7CisgICAgICAgIHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7
CiAgICAgfQogCiAgICAgUmVuZGVyQmxvY2s6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQp
OwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFNuYXBzaG90SW1hZ2Uo
SW1hZ2UqIGltYWdlLCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0KQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewor
ICAgIEltYWdlKiBpbWFnZSA9IG1fc25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKTsKKyAg
ICBpZiAoIWltYWdlIHx8IGltYWdlLT5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
TGF5b3V0VW5pdCBjV2lkdGggPSBjb250ZW50V2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGNIZWln
aHQgPSBjb250ZW50SGVpZ2h0KCk7CiAgICAgaWYgKCFjV2lkdGggfHwgIWNIZWlnaHQpCkBAIC0x
OTUsNjUgKzE0NCw2IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNo
b3RJbWFnZShJbWFnZSogaW1hZ2UsIFBhaW50SW5mbyYgcGFpbnRJCiAgICAgY29udGV4dC0+ZHJh
d0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3Np
dGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFs
aXR5U2NhbGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25h
cHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCkKLXsKLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFn
ZSgpOwotICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBwYWludFNuYXBzaG90SW1hZ2UoaW1hZ2UuZ2V0KCksIHBhaW50SW5mbywgcGFpbnRP
ZmZzZXQpOwotfQotCi0jaWYgRU5BQkxFKEZJTFRFUlMpCi1zdGF0aWMgUGFzc1JlZlB0cjxJbWFn
ZT4gc25hcHNob3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlzcGxheShQYXNzUmVmUHRyPEltYWdl
PiBzbmFwc2hvdCwgY29uc3QgTGF5b3V0UmVjdCYgYmx1clJlZ2lvbikKLXsKLSAgICBPd25QdHI8
SW1hZ2VCdWZmZXI+IHNuYXBzaG90QnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzbmFwc2hv
dC0+c2l6ZSgpKTsKLSAgICBzbmFwc2hvdEJ1ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2Uoc25h
cHNob3QuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KDAsIDApKTsKLQotICAg
IE93blB0cjxJbWFnZUJ1ZmZlcj4gYmx1ckJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocm91
bmRlZEludFNpemUoYmx1clJlZ2lvbi5zaXplKCkpKTsKLSAgICBibHVyQnVmZmVyLT5jb250ZXh0
KCktPmRyYXdJbWFnZShzbmFwc2hvdC5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9p
bnQoLWJsdXJSZWdpb24ueCgpLCAtYmx1clJlZ2lvbi55KCkpKTsKLQotICAgIFJlZlB0cjxSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI+IGJsdXJGaWx0ZXIgPSBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmNyZWF0ZShzbmFwc2hvdExhYmVsQmx1clJhZGl1cyk7Ci0g
ICAgYmx1ckZpbHRlci0+c2V0U291cmNlSW1hZ2UoYmx1ckJ1ZmZlci5yZWxlYXNlKCkpOwotICAg
IGJsdXJGaWx0ZXItPnNldFNvdXJjZUltYWdlUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBi
bHVyUmVnaW9uLnNpemUoKSkpOwotICAgIGJsdXJGaWx0ZXItPmFwcGx5KCk7Ci0KLSAgICBzbmFw
c2hvdEJ1ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2VCdWZmZXIoYmx1ckZpbHRlci0+b3V0cHV0
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChibHVyUmVnaW9uLmxvY2F0
aW9uKCkpKTsKLSAgICByZXR1cm4gc25hcHNob3RCdWZmZXItPmNvcHlJbWFnZSgpOwotfQotI2Vu
ZGlmCi0KLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3RXaXRoTGFi
ZWwoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
LXsKLSAgICBpZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSAmJiBtX3Nob3dSZWFz
b24gPT0gVXNlck1vdXNlZE92ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2hvd2VkTGFi
ZWxPbmNlID0gdHJ1ZTsKLSAgICBMYXlvdXRSZWN0IGxhYmVsUmVjdDsKLQotICAgIFJlZlB0cjxJ
bWFnZT4gc25hcHNob3RJbWFnZSA9IG1fc25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKTsKLSAgICBp
ZiAoIXNuYXBzaG90SW1hZ2UgfHwgc25hcHNob3RJbWFnZS0+aXNOdWxsKCkpCi0gICAgICAgIHJl
dHVybjsKLQotI2lmIEVOQUJMRShGSUxURVJTKQotICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBk
aXNhYmxpbmcgdGhlIGJsdXIgYmVoaW5kIHRoZSBsYWJlbC4KLSAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4Ci0gICAgaWYgKCFsYWJlbFJlY3QuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxJbWFnZT4gYmx1cnJlZFNuYXBzaG90SW1hZ2UgPSBt
X3NuYXBzaG90UmVzb3VyY2VGb3JMYWJlbC0+aW1hZ2UoKTsKLSAgICAgICAgaWYgKCFibHVycmVk
U25hcHNob3RJbWFnZSB8fCBibHVycmVkU25hcHNob3RJbWFnZS0+aXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIGJsdXJyZWRTbmFwc2hvdEltYWdlID0gc25hcHNob3R0ZWRQbHVnaW5JbWFnZUZvckxh
YmVsRGlzcGxheShzbmFwc2hvdEltYWdlLCBsYWJlbFJlY3QpOwotICAgICAgICAgICAgbV9zbmFw
c2hvdFJlc291cmNlRm9yTGFiZWwtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShibHVy
cmVkU25hcHNob3RJbWFnZS5nZXQoKSkpOwotICAgICAgICB9Ci0gICAgICAgIHNuYXBzaG90SW1h
Z2UgPSBibHVycmVkU25hcHNob3RJbWFnZTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHBhaW50U25h
cHNob3RJbWFnZShzbmFwc2hvdEltYWdlLmdldCgpLCBwYWludEluZm8sIHBhaW50T2Zmc2V0KTsK
LX0KLQogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludExhYmVsKCkKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBpcyB1bmZvcnR1bmF0ZS4gV2Ugc2hvdWxkIGp1c3QgcmVwYWludCB0
aGUgbGFiZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oCmluZGV4IDRhYjNjMmI0MmZlYWY5ZWFkYjk3NjUzZTUzMzRiODBhNGVkODUx
ZjcuLmZjZTZkZWE3MjM5YTk0MDUwYzk5ZDM4ZGQ5ODI0YjU5NDk2Mjk4ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC01
NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CiAKICAgICB2b2lkIHBhaW50U25hcHNob3Qo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50U25hcHNob3RX
aXRoTGFiZWwoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50
U25hcHNob3RJbWFnZShJbWFnZSosIFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAg
ICAgdm9pZCByZXBhaW50TGFiZWwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGEzNTgx
YTRiYjk3MWM4YzRjMmJmZGYxZDI0NjNjOWY0MjgzOGE1NGMuLjE4MWI3M2MxMjNjMDdjNmYxMDUy
NTkzODc4ZDM1ZjgzZjhlNWViZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcApAQCAtMzgwLDYgKzM4MCw4IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRl
ck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlCiAgICAg
ICAgIHJldHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24obywgcGFpbnRJbmZv
LCByKTsKICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgIHJl
dHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihvLCBwYWludEluZm8sIHIpOworICAg
IGNhc2UgU25hcHNob3R0ZWRQbHVnaW5PdmVybGF5UGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50
U25hcHNob3R0ZWRQbHVnaW5PdmVybGF5KG8sIHBhaW50SW5mbywgcik7CiAjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKICAgICBjYXNlIElucHV0U3BlZWNoQnV0dG9uUGFydDoKICAgICAgICAgcmV0
dXJuIHBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihvLCBwYWludEluZm8sIHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBjMDAyOTg1MzBjNDE4ODI0YTNiMjA0
MWFlYzdjZGRjNDNkMzcwMDFkLi4wNzU2ZGM2MTM2YzliOTU5NDZlMjlkODA0ZTlkZDMyZDRhZGRh
Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMzQ1LDYgKzM0
NSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxTY3JlZW5W
b2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVs
bFNjcmVlblZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKwogcHVibGljOgogICAgIC8vIE1l
dGhvZHMgZm9yIHN0YXRlIHF1ZXJ5aW5nCiAgICAgQ29udHJvbFN0YXRlcyBjb250cm9sU3RhdGVz
Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hY1NoYXJlZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLmgKaW5kZXggNTI4M2NiOGRiYjll
MThiYjg5OTcyYTU5YTRmMjE0ZDVkNzQxZTM4Yi4uNTNhM2NlMWExMTIwYmI5MzE3YzM1ZjAzOWI3
YjliN2UwNzgyYzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjU2hhcmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjU2hhcmVkLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU2hvd1BsYWNlaG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdDsKIAorICAg
IHZpcnR1YWwgYm9vbCBwYWludFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheShSZW5kZXJPYmplY3Qq
LCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBG
b250JiwgaW50IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBPVkVSUklE
RTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
U2hhcmVkLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVk
Lm1tCmluZGV4IGFjMTljOTNmYjIyODYxYjQ1YWM5ZDliODA2Y2Y3ZWEzZDFjZjg5YTQuLjlkMDE1
NDEwYjYyMzkxN2FkYTJmM2Q5M2MzNDRjNjg2ZmI1YmI1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hY1NoYXJlZC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWNTaGFyZWQubW0KQEAgLTMyLDEyICszMiwxNCBA
QAogI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVu
dC5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmgiCiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBv
cnQgIkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9jYWxpemVkU3Ry
aW5ncy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbXBvcnQgIlBhaW50
SW5mby5oIgorI2ltcG9ydCAiUmVuZGVyTGF5ZXIuaCIKICNpbXBvcnQgIlJlbmRlck1lZGlhLmgi
CiAjaW1wb3J0ICJSZW5kZXJNZWRpYUNvbnRyb2xzLmgiCiAjaW1wb3J0ICJSZW5kZXJTbGlkZXIu
aCIKQEAgLTE3MDIsNiArMTcwNCw4MyBAQCBib29sIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpwYWlu
dFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitib29sIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpwYWludFNuYXBzaG90
dGVkUGx1Z2luT3ZlcmxheShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50
UGhhc2VCbG9ja0JhY2tncm91bmQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFv
LT5pc1JlbmRlckJsb2NrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVuZGVyQmxv
Y2sqIHJlbmRlckJsb2NrID0gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihvKTsKKworICAgIExh
eW91dFVuaXQgY1dpZHRoID0gcmVuZGVyQmxvY2stPmNvbnRlbnRXaWR0aCgpOworICAgIExheW91
dFVuaXQgY0hlaWdodCA9IHJlbmRlckJsb2NrLT5jb250ZW50SGVpZ2h0KCk7CisgICAgaWYgKCFj
V2lkdGggfHwgIWNIZWlnaHQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7CisKKyAgICBMYXlvdXRTaXplIGNv
bnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0
aW9uID0gcmVuZGVyQmxvY2stPmxvY2F0aW9uKCk7CisgICAgY29udGVudExvY2F0aW9uLm1vdmUo
cmVuZGVyQmxvY2stPmJvcmRlckxlZnQoKSArIHJlbmRlckJsb2NrLT5wYWRkaW5nTGVmdCgpLCBy
ZW5kZXJCbG9jay0+Ym9yZGVyVG9wKCkgKyByZW5kZXJCbG9jay0+cGFkZGluZ1RvcCgpKTsKKwor
ICAgIExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24sIGNvbnRlbnRTaXplKTsKKyAgICBJ
bnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KTsKKyAgICBpZiAo
YWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdodCgpIDw9IDApCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gV2UgbmVlZCB0byBnZXQgdGhlIHNuYXBzaG90
IGltYWdlIGZyb20gdGhlIHBsdWdpbiBlbGVtZW50LCB3aGljaCBzaG91bGQgYmUgYXZhaWxhYmxl
CisgICAgLy8gZnJvbSBvdXIgbm9kZS4gQXNzdW1pbmcgdGhpcyBub2RlIGlzIHRoZSBwbHVnaW4g
b3ZlcmxheSBlbGVtZW50LCB3ZSBzaG91bGQgZ2V0IHRvIHRoZQorICAgIC8vIHBsdWdpbiBpdHNl
bGYgYnkgYXNraW5nIGZvciB0aGUgc2hhZG93IHJvb3QgcGFyZW50LCBhbmQgdGhlbiBpdHMgcGFy
ZW50LgorCisgICAgaWYgKCFyZW5kZXJCbG9jay0+bm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgSFRNTEVsZW1lbnQqIHBsdWdJbk92ZXJsYXkgPSBz
dGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KHJlbmRlckJsb2NrLT5ub2RlKCkpOworICAgIEVsZW1l
bnQqIHBhcmVudCA9IHBsdWdJbk92ZXJsYXktPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsK
KyAgICB3aGlsZSAocGFyZW50ICYmICFwYXJlbnQtPmlzUGx1Z2luRWxlbWVudCgpKQorICAgICAg
ICBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsKKworICAgIGlm
ICghcGFyZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEhUTUxQbHVnSW5FbGVtZW50
KiBwbHVnSW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkVsZW1lbnQqPihwYXJlbnQp
OworICAgIGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5JbWFn
ZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4ocGx1Z0luRWxl
bWVudCk7CisKKyAgICBJbWFnZSogc25hcHNob3QgPSBwbHVnSW5JbWFnZUVsZW1lbnQtPnNuYXBz
aG90SW1hZ2UoKTsKKyAgICBpZiAoIXNuYXBzaG90KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiBwbHVnSW5SZW5kZXJlciA9IHRvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4ocGx1Z0luSW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICBGbG9h
dFBvaW50IHNuYXBzaG90QWJzUG9zID0gcGx1Z0luUmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgp
OworICAgIHNuYXBzaG90QWJzUG9zLm1vdmUocGx1Z0luUmVuZGVyZXItPmJvcmRlckxlZnQoKSAr
IHBsdWdJblJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLCBwbHVnSW5SZW5kZXJlci0+Ym9yZGVyVG9w
KCkgKyBwbHVnSW5SZW5kZXJlci0+cGFkZGluZ1RvcCgpKTsKKworICAgIC8vIFdlIGNvdWxkIGRy
YXcgdGhlIHNuYXBzaG90IHdpdGggdGhhdCBjb29yZGluYXRlcywgYnV0IHdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoZXJlCisgICAgLy8gaXNuJ3QgYSBjb21wb3NpdGVkIGxheWVyIGJldHdlZW4gdXMg
YW5kIHRoZSBwbHVnSW5SZW5kZXJlci4KKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHN0YXRp
Y19jYXN0PFJlbmRlckJveCo+KHJlbmRlckJsb2NrKTsKKyAgICB3aGlsZSAocmVuZGVyQm94ICE9
IHBsdWdJblJlbmRlcmVyKSB7CisgICAgICAgIGlmIChyZW5kZXJCb3gtPmhhc0xheWVyKCkgJiYg
cmVuZGVyQm94LT5sYXllcigpICYmIHJlbmRlckJveC0+bGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkp
IHsKKyAgICAgICAgICAgIHNuYXBzaG90QWJzUG9zID0gLXJlbmRlckJveC0+bG9jYXRpb24oKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJlbmRlckJveCA9IHN0YXRp
Y19jYXN0PFJlbmRlckJveCo+KHJlbmRlckJveC0+cGFyZW50Qm94KCkpOworICAgIH0KKworICAg
IExheW91dFNpemUgcGx1Z2luU2l6ZShwbHVnSW5SZW5kZXJlci0+Y29udGVudFdpZHRoKCksIHBs
dWdJblJlbmRlcmVyLT5jb250ZW50SGVpZ2h0KCkpOworICAgIExheW91dFJlY3QgcGx1Z2luUmVj
dChzbmFwc2hvdEFic1BvcywgcGx1Z2luU2l6ZSk7CisgICAgSW50UmVjdCBhbGlnbmVkUGx1Z2lu
UmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocGx1Z2luUmVjdCk7CisKKyAgICBpZiAoYWxpZ25l
ZFBsdWdpblJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRQbHVnaW5SZWN0LmhlaWdodCgpIDw9
IDApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY29udGV4dC0+ZHJhd0ltYWdlKHNuYXBz
aG90LCBwbHVnSW5SZW5kZXJlci0+c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUGx1Z2lu
UmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBJbnRTaXplIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpz
bGlkZXJUaWNrU2l6ZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDk4Njg1ZGVmYzI1MWRlZWY3ZDI2MTBh
NTM1YTcyNGYzNTU5NmFjNy4uNDFmZGE3MjIzMzJjZTM0YTBkNTFjMDIzMDU3ODM3OWE3MDJkYzI3
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTA3ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBjdXN0b20gYXBwZWFyYW5jZSBmb3Ig
dGhlIHNuYXBzaG90dGVkIHBsdWdpbiBiYWNrZ3JvdW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgzNjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUb2dnbGVzIG91ciBuZXcgc25hcHNob3R0ZWQtcGx1
Z2luLW92ZXJsYXkgYXBwZWFyYW5jZSwgdG8gbWFrZSBzdXJlIGl0CisgICAgICAgIGlzbid0IGdl
dHRpbmcgYXBwbGllZCB0byBub24tcGx1Z2lucy4KKworICAgICAgICAqIHBsdWdpbnMvc25hcHNo
b3QtYXBwZWFyYW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3Nu
YXBzaG90LWFwcGVhcmFuY2UuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDUgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggc29tZSBjcmFzaGVzIGluIHJlbmRl
ciBzbGlkZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90LWFwcGVh
cmFuY2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25hcHNob3QtYXBwZWFy
YW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5Njc3Y2UzOGYxYzllNTc1MzIyYTdjY2Jk
OGY5Yjg1MWVjMjNiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL3Nu
YXBzaG90LWFwcGVhcmFuY2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxzdHlsZT4K
K2RpdiB7CisgICAgd2lkdGg6IDUwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0ibm9ybWFsIj48L2Rpdj4KKzxk
aXYgaWQ9Im5vcm1hbCI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3Nu
YXBzaG90LWFwcGVhcmFuY2UuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25hcHNob3QtYXBw
ZWFyYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ODgwOWJiYTgxMDQyYWFhYTI3NmM2NDE3YjE1NWE5
M2Q5OTQzYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90
LWFwcGVhcmFuY2UuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IS0tIFNpbmNlIHdlJ3JlIG5vdCBh
IHNuYXBzaG90dGVkIHBsdWdpbiwgdGhpcyB0ZXN0IHNob3VsZCBkbyBub3RoaW5nIChhbmQgbm90
IGNyYXNoKSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgd2lkdGg6IDUwcHg7CisgICAgaGVpZ2h0
OiA1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNzbmFwc2hvdCB7Cisg
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheTsKK30KKzwv
c3R5bGU+Cis8ZGl2IGlkPSJub3JtYWwiPjwvZGl2PgorPGRpdiBpZD0ic25hcHNob3QiPjwvZGl2
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192130</attachid>
            <date>2013-03-07 19:15:01 -0800</date>
            <delta_ts>2013-03-07 19:32:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108368-20130308141103.patch</filename>
            <type>text/plain</type>
            <size>22964</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyZTA3MWVhODM1YWM0
NTI5YzgwZTU2Mjk0NGNjMDFiZTU5Y2MyNi4uMjg0ZWM4OTU1NTdhNGEwNTExMmNlZWMyNjIyOWNh
MDQ4YzgwMWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBjdXN0b20g
YXBwZWFyYW5jZSBmb3IgdGhlIHNuYXBzaG90dGVkIHBsdWdpbiBiYWNrZ3JvdW5kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgzNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFmdGVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgyODQgKHIxNDI1MDcpLCBhCisgICAgICAgIHNu
YXBzaG90dGVkIHBsdWdpbiB3YXMgbm8gbG9uZ2VyIGRyYXdpbmcgdGhlIGJhY2tncm91bmQgb2Yg
dGhlCisgICAgICAgIGxhYmVsIGJsdXJyZWQuIFNpbmNlIHRoZSBzbmFwc2hvdCBjb250ZW50IHdh
cyBub3cgYSBzaGFkb3cgdHJlZSwKKyAgICAgICAgaXQgd2Fzbid0IGZlYXNpYmxlIHRvIHByZS1i
bHVyIGEgcmVnaW9uIG9mIHRoZSBzbmFwc2hvdDogdGhlIGxhYmVsCisgICAgICAgIGNvdWxkIGJl
IGFueSBzaXplIGFuZCBpbiBhbnkgbG9jYXRpb24sIHdpdGggcG9ydHMgYmVpbmcgYWJsZSB0bwor
ICAgICAgICBvdmVycmlkZSB0aGUgYXBwZWFyYW5jZSB0aHJvdWdoIHRoZWlyIFVBIHN0eWxlIHNo
ZWV0LgorCisgICAgICAgIEluc3RlYWQgd2Ugbm93IHVzZSBvbmUgb2YgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0cmVlLCB0aGUgc25hcHNob3Qtb3ZlcmxheSwKKyAgICAgICAgYXMgYSBob29rIHdoZXJl
IHBvcnRzIGNhbiBhZGQgYW55IGVmZmVjdCB0aGV5IHdhbnQuIFRoaXMgY291bGQgYmUgc2ltcGx5
CisgICAgICAgIGEgYm9yZGVyLCBvciBhIHRyYW5zcGFyZW50IG1hc2ssIG9yIGV2ZW4gYSBDU1Mg
ZmlsdGVyLiBXZSBpbnRyb2R1Y2UgYSBjdXN0b20KKyAgICAgICAgQ1NTIGFwcGVhcmFuY2UgInNu
YXBzaG90dGVkLXBsdWdpbi1vdmVybGF5Iiwgd2hpY2ggY291bGQgYmUgYWRkZWQgdG8gdGhlCisg
ICAgICAgIGVsZW1lbnQgaW4gdGhlIGluamVjdGVkIFVBIHN0eWxlc2hlZXQuIFRoaXMgY2FsbHMg
aW50byBSZW5kZXJUaGVtZSBpbgorICAgICAgICB0aGUgc2FtZSB3YXkgdGhhdCBjdXN0b20gY29u
dHJvbHMgZG8uCisKKyAgICAgICAgTWVhbndoaWxlLCBpbiBSZW5kZXJUaGVtZU1hYywgd2UgaW1w
bGVtZW50IHRoZSBhcHBlYXJhbmNlIGJ5IGRyYXdpbmcgdGhlCisgICAgICAgIGNvbnRlbnQgb2Yg
dGhlIHBsdWdpbiBzbmFwc2hvdCBpbnRvIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBlbGVtZW50LiBU
aGF0CisgICAgICAgIHdheSB3ZSBjYW4gYWRkIGVmZmVjdHMgaW4gQ1NTLgorCisgICAgICAgIFRl
c3Q6IHBsdWdpbnMvc25hcHNob3QtYXBwZWFyYW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogSGFuZGxlIFNuYXBzaG90dGVkUGx1Z2luT3Zlcmxh
eVBhcnQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IE5ldyBhcHBlYXJhbmNl
IHZhbHVlIHNuYXBzaG90dGVkLXBsdWdpbi1vdmVybGF5LgorICAgICAgICAqIHBsYXRmb3JtL1Ro
ZW1lVHlwZXMuaDogTmV3IHZhbHVlIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQuCisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1M
UGx1Z0luRWxlbWVudCk6IEFkZCBzYWZlciBjYXN0aW5nIGhlbHBlcnMuCisgICAgICAgICogaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uY3BwOiBSZW1vdmUgdGhlIGNvZGUgZm9yIGhhbmRsaW5nCisgICAgICAgICAg
ICB0aGUgYmx1ciBkaXJlY3RseSBpbiB0aGUgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnQpOiBTaW1wbGlmeSB0aGUgcGFpbnQgbG9naWMg
c2luY2Ugd2UncmUKKyAgICAgICAgICAgIG5vIGxvbmdlciB0cnlpbmcgdG8gYmx1ciBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3Qp
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDog
UmVtb3ZlIHRoZSBtZXRob2RzIHRoYXQgd2VyZSB0cnlpbmcKKyAgICAgICAgICAgIHRvIGJsdXIg
dGhlIGltYWdlIGRpcmVjdGx5LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBDYWxsIHBhaW50U25hcHNo
b3R0ZWRQbHVnaW5PdmVybGF5LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVy
bGF5KTogTmV3IHZpcnR1YWwgbWV0aG9kIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWNTaGFyZWQuaDoKKyAgICAgICAgKFJlbmRl
clRoZW1lTWFjU2hhcmVkKTogT3ZlcnJpZGUgcGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXku
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWNTaGFyZWQ6OnBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVy
bGF5KTogSW1wbGVtZW50IGEgY3VzdG9tIHJlbmRlciBwYXRoCisgICAgICAgICAgICB0aGF0IHRh
a2VzIHRoZSBzbmFwc2hvdCBpbWFnZSBmcm9tIHRoZSBub2RlJ3MgcGFyZW50LCBhbmQgZHJhd3Mg
aXQgaW50byB0aGUgYmFja2dyb3VuZC4KKyAgICAgICAgICAgIEFsb25nIHRoZSB3YXkgbWFrZSBz
dXJlIHdlJ3JlIGFjdHVhbGx5IHVzaW5nIHRoZSByaWdodCB0eXBlIG9mIGVsZW1lbnQgKGFuIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQpLgorCiAyMDEzLTAzLTA1ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNvbWUgY3Jhc2hlcyBpbiByZW5kZXIgc2xpZGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggNTMyZTk5YzI3ZmU3ZDgzN2U4MzYwNGNjYmJhMGJhYWVmZGNjNWY5Ni4uY2M4YWE3ODM0ZTIz
NWMxZTI4NWY1ZmYyZTEyOTVkNzk1ZTk2MzRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC01NDYsNiArNTQ2LDkgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRyb2xQYXJ0
IGUpCiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25QYXJ0OgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b247CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXlQYXJ0
OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU25hcHNob3R0ZWRQbHVnaW5P
dmVybGF5OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVGV4dEZpZWxkUGFydDoK
ICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRmaWVsZDsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NTky
NmY2MjdhMzdmMjA2ZjExNGYxNmE3NzcyOWU4ZmQ5MzZlODBiLi5jMDc1NDFkNDVkMmQ1YTg2ODNi
ZmI5YzQ3ZDVkNjQwMTI1YzBkOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgpAQCAtNjgwLDYgKzY4MCw3IEBAIHNlYXJjaGZpZWxkLWRlY29yYXRpb24KIHNlYXJjaGZp
ZWxkLXJlc3VsdHMtZGVjb3JhdGlvbgogc2VhcmNoZmllbGQtcmVzdWx0cy1idXR0b24KIHNlYXJj
aGZpZWxkLWNhbmNlbC1idXR0b24KK3NuYXBzaG90dGVkLXBsdWdpbi1vdmVybGF5CiB0ZXh0Zmll
bGQKIHJlbGV2YW5jeS1sZXZlbC1pbmRpY2F0b3IKIGNvbnRpbnVvdXMtY2FwYWNpdHktbGV2ZWwt
aW5kaWNhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggYTc1
NTlhODViM2FiZjFiMGY4MmI3MmJlNjFhNmIxZDRiMDYzN2QwMS4uYjMyMGYzN2IwMTZkZmE2NmQz
ZmNkMDM5ZjViYTE5ZDNiNGMyMGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaApAQCAtMTExLDYgKzExMSwyMSBAQCBwcml2YXRlOgogICAgIERpc3BsYXlTdGF0ZSBt
X2Rpc3BsYXlTdGF0ZTsKIH07CiAKK2lubGluZSBIVE1MUGx1Z0luRWxlbWVudCogdG9IVE1MUGx1
Z0luRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFub2RlIHx8IG5vZGUtPmlzUGx1Z2luRWxlbWVudCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFBsdWdJbkVsZW1lbnQqPihub2RlKTsKK30KKworaW5saW5lIGNvbnN0IEhU
TUxQbHVnSW5FbGVtZW50KiB0b0hUTUxQbHVnSW5FbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9kZS0+aXNQ
bHVnaW5FbGVtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MUGx1Z0lu
RWxlbWVudCo+KG5vZGUpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvSFRNTFBsdWdJbkVsZW1lbnQoY29uc3QgSFRNTFBs
dWdJbkVsZW1lbnQqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRN
TFBsdWdJbkVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaAppbmRleCBmODViM2YyMjljYTc4NzYzNGQxNzljZjJhMWQ1YWNjNGI2ZGY4YjhlLi5k
NmZlNWM0MWI0NDkzOTc3YTA3NjkxNDE0M2UzMTNjN2UxZDhhMDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtMTI0LDYgKzEyNCwyNSBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxJbWFnZT4gbV9zbmFwc2hvdEltYWdlOwogfTsKIAoraW5saW5l
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChOb2RlKiBu
b2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5v
ZGUtPmlzUGx1Z2luRWxlbWVudCgpKTsKKyAgICBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4obm9kZSk7CisgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVs
ZW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQq
Pihub2RlKTsKK30KKworaW5saW5lIGNvbnN0IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHRvSFRN
TFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmlzUGx1Z2luRWxlbWVudCgpKTsK
KyAgICBjb25zdCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHN0YXRpY19jYXN0
PGNvbnN0IEhUTUxQbHVnSW5FbGVtZW50Kj4obm9kZSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04ocGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihub2Rl
KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBj
YXN0Lgordm9pZCB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgSFRNTFBsdWdJbkltYWdl
RWxlbWVudCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
ZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAppbmRleCA4
ZWY2YjIzNzU0ZmUwYjFhNjM0N2Q1YmM4MmM0NzcyZjExODU5OGUzLi40NDIxYzUxMWEyYWY0ZDNh
NjNhMGQ0ZTEzMjNjOGNmMDc0MjcxNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBl
cy5oCkBAIC01Niw3ICs1Niw3IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIFNsaWRlckhvcml6
b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQs
CiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0
LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAgIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29y
YXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0LAotICAgIFNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uUGFydCwgVGV4dEZpZWxkUGFydCwKKyAgICBTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvblBhcnQsIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQsIFRleHRGaWVsZFBhcnQsCiAg
ICAgUmVsZXZhbmN5TGV2ZWxJbmRpY2F0b3JQYXJ0LCBDb250aW51b3VzQ2FwYWNpdHlMZXZlbElu
ZGljYXRvclBhcnQsIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQsIFJhdGluZ0xl
dmVsSW5kaWNhdG9yUGFydCwKICAgICBUZXh0QXJlYVBhcnQsIENhcHNMb2NrSW5kaWNhdG9yUGFy
dAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwCmluZGV4IGRhZGJiOTI0MGE3YzM0ZTBjYmI3NGM5ZmQ3YWUxNWI1MGJjZmMy
N2MuLjYyODQzODIwZTJlZGNmNzhjNzNlNTJhN2FiZTgzYWQwYTYxODBhMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApA
QCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgotI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgi
CiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQxLDYyICs0MCwxMSBAQAogI2luY2x1ZGUgIlBhaW50
SW5mby5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5j
bHVkZSAiU291cmNlR3JhcGhpYy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZFdpZHRoID0gMTsKLXN0YXRpYyBj
b25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhlaWdodCA9IDE7CiBzdGF0aWMg
Y29uc3QgZG91YmxlIHNob3dMYWJlbEFmdGVyTW91c2VPdmVyRGVsYXkgPSAxOwogc3RhdGljIGNv
bnN0IGRvdWJsZSBzaG93TGFiZWxBdXRvbWF0aWNhbGx5RGVsYXkgPSAzOwotc3RhdGljIGNvbnN0
IGludCBzbmFwc2hvdExhYmVsQmx1clJhZGl1cyA9IDU7Ci0KLSNpZiBFTkFCTEUoRklMVEVSUykK
LWNsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlciA6IHB1YmxpYyBGaWx0ZXIg
ewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcj4gY3JlYXRlKGludCByYWRp
dXMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luQmx1ckZpbHRlcihyYWRpdXMpKTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldFNvdXJjZUlt
YWdlUmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCi0gICAgewotICAgICAgICBtX3NvdXJjZUltYWdl
UmVjdCA9IHI7Ci0gICAgICAgIG1fZmlsdGVyUmVnaW9uID0gcjsKLSAgICAgICAgbV9zb3VyY2VH
cmFwaGljLT5zZXRNYXhFZmZlY3RSZWN0KHIpOwotICAgICAgICBtX2JsdXItPnNldE1heEVmZmVj
dFJlY3Qocik7Ci0gICAgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNvdXJjZUltYWdlUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJl
Y3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJSZWdpb247IH0KLQotICAg
IHZvaWQgYXBwbHkoKTsKLSAgICBJbWFnZUJ1ZmZlciogb3V0cHV0KCkgY29uc3QgeyByZXR1cm4g
bV9ibHVyLT5hc0ltYWdlQnVmZmVyKCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbkJsdXJGaWx0ZXIoaW50IHJhZGl1cyk7Ci0KLSAgICBGbG9hdFJlY3QgbV9zb3Vy
Y2VJbWFnZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IG1fZmlsdGVyUmVnaW9uOwotICAgIFJlZlB0cjxT
b3VyY2VHcmFwaGljPiBtX3NvdXJjZUdyYXBoaWM7Ci0gICAgUmVmUHRyPEZFR2F1c3NpYW5CbHVy
PiBtX2JsdXI7Ci19OwotCi1SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcihpbnQgcmFkaXVzKQotewotICAgIHNldEZpbHRl
clJlc29sdXRpb24oRmxvYXRTaXplKDEsIDEpKTsKLSAgICBtX3NvdXJjZUdyYXBoaWMgPSBTb3Vy
Y2VHcmFwaGljOjpjcmVhdGUodGhpcyk7Ci0gICAgbV9ibHVyID0gRkVHYXVzc2lhbkJsdXI6OmNy
ZWF0ZSh0aGlzLCByYWRpdXMsIHJhZGl1cyk7Ci0gICAgbV9ibHVyLT5pbnB1dEVmZmVjdHMoKS5h
cHBlbmQobV9zb3VyY2VHcmFwaGljKTsKLX0KLQotdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bkJsdXJGaWx0ZXI6OmFwcGx5KCkKLXsKLSAgICBtX3NvdXJjZUdyYXBoaWMtPmNsZWFyUmVzdWx0
KCk7Ci0gICAgbV9ibHVyLT5jbGVhclJlc3VsdCgpOwotICAgIG1fYmx1ci0+YXBwbHkoKTsKLX0K
LSNlbmRpZgogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckJsb2NrKGVs
ZW1lbnQpCkBAIC0xNjAsMTcgKzEwOCwxOCBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIHZvaWQgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBo
YXNlQmxvY2tCYWNrZ3JvdW5kICYmIHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUo
KSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7Ci0g
ICAgICAgIGlmIChtX3Nob3VsZFNob3dMYWJlbCkKLSAgICAgICAgICAgIHBhaW50U25hcHNob3RX
aXRoTGFiZWwocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHBhaW50
U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAgfQogCiAgICAgUmVuZGVyQmxv
Y2s6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCi12b2lkIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpwYWludFNuYXBzaG90SW1hZ2UoSW1hZ2UqIGltYWdlLCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQordm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogeworICAgIEltYWdlKiBpbWFnZSA9IG1fc25h
cHNob3RSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKTsKKyAgICBpZiAoIWltYWdlIHx8IGltYWdlLT5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0VW5pdCBjV2lkdGggPSBjb250
ZW50V2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGNIZWlnaHQgPSBjb250ZW50SGVpZ2h0KCk7CiAg
ICAgaWYgKCFjV2lkdGggfHwgIWNIZWlnaHQpCkBAIC0xOTUsNjUgKzE0NCw2IEBAIHZvaWQgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3RJbWFnZShJbWFnZSogaW1hZ2UsIFBh
aW50SW5mbyYgcGFpbnRJCiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5j
b2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKLXZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAgICBSZWZQdHI8SW1hZ2U+
IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFnZSgpOwotICAgIGlmICghaW1hZ2UgfHwg
aW1hZ2UtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWludFNuYXBzaG90SW1h
Z2UoaW1hZ2UuZ2V0KCksIHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwotfQotCi0jaWYgRU5BQkxF
KEZJTFRFUlMpCi1zdGF0aWMgUGFzc1JlZlB0cjxJbWFnZT4gc25hcHNob3R0ZWRQbHVnaW5JbWFn
ZUZvckxhYmVsRGlzcGxheShQYXNzUmVmUHRyPEltYWdlPiBzbmFwc2hvdCwgY29uc3QgTGF5b3V0
UmVjdCYgYmx1clJlZ2lvbikKLXsKLSAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90QnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzbmFwc2hvdC0+c2l6ZSgpKTsKLSAgICBzbmFwc2hv
dEJ1ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2Uoc25hcHNob3QuZ2V0KCksIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIEludFBvaW50KDAsIDApKTsKLQotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYmx1
ckJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZEludFNpemUoYmx1clJlZ2lvbi5z
aXplKCkpKTsKLSAgICBibHVyQnVmZmVyLT5jb250ZXh0KCktPmRyYXdJbWFnZShzbmFwc2hvdC5n
ZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoLWJsdXJSZWdpb24ueCgpLCAtYmx1
clJlZ2lvbi55KCkpKTsKLQotICAgIFJlZlB0cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJG
aWx0ZXI+IGJsdXJGaWx0ZXIgPSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmNy
ZWF0ZShzbmFwc2hvdExhYmVsQmx1clJhZGl1cyk7Ci0gICAgYmx1ckZpbHRlci0+c2V0U291cmNl
SW1hZ2UoYmx1ckJ1ZmZlci5yZWxlYXNlKCkpOwotICAgIGJsdXJGaWx0ZXItPnNldFNvdXJjZUlt
YWdlUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBibHVyUmVnaW9uLnNpemUoKSkpOwotICAg
IGJsdXJGaWx0ZXItPmFwcGx5KCk7Ci0KLSAgICBzbmFwc2hvdEJ1ZmZlci0+Y29udGV4dCgpLT5k
cmF3SW1hZ2VCdWZmZXIoYmx1ckZpbHRlci0+b3V0cHV0KCksIENvbG9yU3BhY2VEZXZpY2VSR0Is
IHJvdW5kZWRJbnRQb2ludChibHVyUmVnaW9uLmxvY2F0aW9uKCkpKTsKLSAgICByZXR1cm4gc25h
cHNob3RCdWZmZXItPmNvcHlJbWFnZSgpOwotfQotI2VuZGlmCi0KLXZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3RXaXRoTGFiZWwoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAgICBpZiAoY29udGVudEJveFJl
Y3QoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcGx1Z0luSW1hZ2VF
bGVtZW50KCktPmhvdmVyZWQoKSAmJiBtX3Nob3dSZWFzb24gPT0gVXNlck1vdXNlZE92ZXIpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fc2hvd2VkTGFiZWxPbmNlID0gdHJ1ZTsKLSAgICBMYXlv
dXRSZWN0IGxhYmVsUmVjdDsKLQotICAgIFJlZlB0cjxJbWFnZT4gc25hcHNob3RJbWFnZSA9IG1f
c25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKTsKLSAgICBpZiAoIXNuYXBzaG90SW1hZ2UgfHwgc25h
cHNob3RJbWFnZS0+aXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQotI2lmIEVOQUJMRShGSUxU
RVJTKQotICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBkaXNhYmxpbmcgdGhlIGJsdXIgYmVoaW5k
IHRoZSBsYWJlbC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4MzY4Ci0gICAgaWYgKCFsYWJlbFJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0
cjxJbWFnZT4gYmx1cnJlZFNuYXBzaG90SW1hZ2UgPSBtX3NuYXBzaG90UmVzb3VyY2VGb3JMYWJl
bC0+aW1hZ2UoKTsKLSAgICAgICAgaWYgKCFibHVycmVkU25hcHNob3RJbWFnZSB8fCBibHVycmVk
U25hcHNob3RJbWFnZS0+aXNOdWxsKCkpIHsKLSAgICAgICAgICAgIGJsdXJyZWRTbmFwc2hvdElt
YWdlID0gc25hcHNob3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlzcGxheShzbmFwc2hvdEltYWdl
LCBsYWJlbFJlY3QpOwotICAgICAgICAgICAgbV9zbmFwc2hvdFJlc291cmNlRm9yTGFiZWwtPnNl
dENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShibHVycmVkU25hcHNob3RJbWFnZS5nZXQoKSkp
OwotICAgICAgICB9Ci0gICAgICAgIHNuYXBzaG90SW1hZ2UgPSBibHVycmVkU25hcHNob3RJbWFn
ZTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHBhaW50U25hcHNob3RJbWFnZShzbmFwc2hvdEltYWdl
LmdldCgpLCBwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKLX0KLQogdm9pZCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cmVwYWludExhYmVsKCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmZv
cnR1bmF0ZS4gV2Ugc2hvdWxkIGp1c3QgcmVwYWludCB0aGUgbGFiZWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IDRhYjNj
MmI0MmZlYWY5ZWFkYjk3NjUzZTUzMzRiODBhNGVkODUxZjcuLmZjZTZkZWE3MjM5YTk0MDUwYzk5
ZDM4ZGQ5ODI0YjU5NDk2Mjk4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZF
UlJJREU7CiAKICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50U25hcHNob3RXaXRoTGFiZWwoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50U25hcHNob3RJbWFnZShJbWFnZSosIFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdm9pZCByZXBhaW50TGFiZWwoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGEzNTgxYTRiYjk3MWM4YzRjMmJmZGYxZDI0NjNj
OWY0MjgzOGE1NGMuLjE4MWI3M2MxMjNjMDdjNmYxMDUyNTkzODc4ZDM1ZjgzZjhlNWViZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMzgwLDYgKzM4MCw4
IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlCiAgICAgICAgIHJldHVybiBwYWludFNlYXJjaEZp
ZWxkUmVzdWx0c0RlY29yYXRpb24obywgcGFpbnRJbmZvLCByKTsKICAgICBjYXNlIFNlYXJjaEZp
ZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgIHJldHVybiBwYWludFNlYXJjaEZpZWxkUmVz
dWx0c0J1dHRvbihvLCBwYWludEluZm8sIHIpOworICAgIGNhc2UgU25hcHNob3R0ZWRQbHVnaW5P
dmVybGF5UGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVybGF5
KG8sIHBhaW50SW5mbywgcik7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBjYXNlIElu
cHV0U3BlZWNoQnV0dG9uUGFydDoKICAgICAgICAgcmV0dXJuIHBhaW50SW5wdXRGaWVsZFNwZWVj
aEJ1dHRvbihvLCBwYWludEluZm8sIHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAppbmRleCBjMDAyOTg1MzBjNDE4ODI0YTNiMjA0MWFlYzdjZGRjNDNkMzcwMDFkLi4wNzU2
ZGM2MTM2YzliOTU5NDZlMjlkODA0ZTlkZDMyZDRhZGRhY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMzQ1LDYgKzM0NSw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJP
YmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1i
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVy
biB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJs
YXkoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0
dXJuIHRydWU7IH0KKwogcHVibGljOgogICAgIC8vIE1ldGhvZHMgZm9yIHN0YXRlIHF1ZXJ5aW5n
CiAgICAgQ29udHJvbFN0YXRlcyBjb250cm9sU3RhdGVzRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0KiBvKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hY1NoYXJlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjU2hhcmVkLmgKaW5kZXggNTI4M2NiOGRiYjllMThiYjg5OTcyYTU5YTRmMjE0ZDVkNzQx
ZTM4Yi4uNTNhM2NlMWExMTIwYmI5MzE3YzM1ZjAzOWI3YjliN2UwNzgyYzkzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLmgKQEAgLTE0OSw2
ICsxNDksOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1BsYWNl
aG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBwYWludFNuYXBz
aG90dGVkUGx1Z2luT3ZlcmxheShSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1l
Rm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250JiwgaW50IHdpZHRoLCBib29sIG11
bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLm1tIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLm1tCmluZGV4IGFjMTljOTNmYjIyODYx
YjQ1YWM5ZDliODA2Y2Y3ZWEzZDFjZjg5YTQuLmEzNGJkZmY4ZWY3NjczYjQ4NmM1ZDdkNGZjYWU0
NmI3ZThjZTUzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hY1NoYXJlZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWNTaGFyZWQubW0KQEAgLTMyLDEyICszMiwxNCBAQAogI2ltcG9ydCAiSFRNTElucHV0RWxl
bWVudC5oIgogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE5hbWVz
LmgiCisjaW1wb3J0ICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgiCiAjaW1wb3J0ICJJbWFnZS5o
IgogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCAiTWVkaWFD
b250cm9sRWxlbWVudHMuaCIKICNpbXBvcnQgIlBhaW50SW5mby5oIgorI2ltcG9ydCAiUmVuZGVy
TGF5ZXIuaCIKICNpbXBvcnQgIlJlbmRlck1lZGlhLmgiCiAjaW1wb3J0ICJSZW5kZXJNZWRpYUNv
bnRyb2xzLmgiCiAjaW1wb3J0ICJSZW5kZXJTbGlkZXIuaCIKQEAgLTE3MDIsNiArMTcwNCw4MyBA
QCBib29sIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRv
bihSZW5kZXJPYmplY3QqIG8sIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFJl
bmRlclRoZW1lTWFjU2hhcmVkOjpwYWludFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheShSZW5kZXJP
YmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JikKK3sK
KyAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFvLT5pc1JlbmRlckJsb2NrKCkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgUmVuZGVyQmxvY2sqIHJlbmRlckJsb2NrID0gdG9SZW5k
ZXJCbG9jayhvKTsKKworICAgIExheW91dFVuaXQgY1dpZHRoID0gcmVuZGVyQmxvY2stPmNvbnRl
bnRXaWR0aCgpOworICAgIExheW91dFVuaXQgY0hlaWdodCA9IHJlbmRlckJsb2NrLT5jb250ZW50
SGVpZ2h0KCk7CisgICAgaWYgKCFjV2lkdGggfHwgIWNIZWlnaHQpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7
CisKKyAgICBMYXlvdXRTaXplIGNvbnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5
b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcmVuZGVyQmxvY2stPmxvY2F0aW9uKCk7CisgICAg
Y29udGVudExvY2F0aW9uLm1vdmUocmVuZGVyQmxvY2stPmJvcmRlckxlZnQoKSArIHJlbmRlckJs
b2NrLT5wYWRkaW5nTGVmdCgpLCByZW5kZXJCbG9jay0+Ym9yZGVyVG9wKCkgKyByZW5kZXJCbG9j
ay0+cGFkZGluZ1RvcCgpKTsKKworICAgIExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24s
IGNvbnRlbnRTaXplKTsKKyAgICBJbnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50
UmVjdChyZWN0KTsKKyAgICBpZiAoYWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRS
ZWN0LmhlaWdodCgpIDw9IDApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gV2UgbmVl
ZCB0byBnZXQgdGhlIHNuYXBzaG90IGltYWdlIGZyb20gdGhlIHBsdWdpbiBlbGVtZW50LCB3aGlj
aCBzaG91bGQgYmUgYXZhaWxhYmxlCisgICAgLy8gZnJvbSBvdXIgbm9kZS4gQXNzdW1pbmcgdGhp
cyBub2RlIGlzIHRoZSBwbHVnaW4gb3ZlcmxheSBlbGVtZW50LCB3ZSBzaG91bGQgZ2V0IHRvIHRo
ZQorICAgIC8vIHBsdWdpbiBpdHNlbGYgYnkgYXNraW5nIGZvciB0aGUgc2hhZG93IHJvb3QgcGFy
ZW50LCBhbmQgdGhlbiBpdHMgcGFyZW50LgorCisgICAgaWYgKCFyZW5kZXJCbG9jay0+bm9kZSgp
LT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSFRNTEVsZW1l
bnQqIHBsdWdJbk92ZXJsYXkgPSB0b0hUTUxFbGVtZW50KHJlbmRlckJsb2NrLT5ub2RlKCkpOwor
ICAgIEVsZW1lbnQqIHBhcmVudCA9IHBsdWdJbk92ZXJsYXktPnBhcmVudE9yU2hhZG93SG9zdEVs
ZW1lbnQoKTsKKyAgICB3aGlsZSAocGFyZW50ICYmICFwYXJlbnQtPmlzUGx1Z2luRWxlbWVudCgp
KQorICAgICAgICBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsK
KworICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEhUTUxQbHVn
SW5FbGVtZW50KiBwbHVnSW5FbGVtZW50ID0gdG9IVE1MUGx1Z0luRWxlbWVudChwYXJlbnQpOwor
ICAgIGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5JbWFnZUVs
ZW1lbnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQocGx1Z0luRWxlbWVudCk7CisKKyAgICBJ
bWFnZSogc25hcHNob3QgPSBwbHVnSW5JbWFnZUVsZW1lbnQtPnNuYXBzaG90SW1hZ2UoKTsKKyAg
ICBpZiAoIXNuYXBzaG90KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luKiBwbHVnSW5SZW5kZXJlciA9IHRvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4o
cGx1Z0luSW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICBGbG9hdFBvaW50IHNuYXBzaG90
QWJzUG9zID0gcGx1Z0luUmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgpOworICAgIHNuYXBzaG90
QWJzUG9zLm1vdmUocGx1Z0luUmVuZGVyZXItPmJvcmRlckxlZnQoKSArIHBsdWdJblJlbmRlcmVy
LT5wYWRkaW5nTGVmdCgpLCBwbHVnSW5SZW5kZXJlci0+Ym9yZGVyVG9wKCkgKyBwbHVnSW5SZW5k
ZXJlci0+cGFkZGluZ1RvcCgpKTsKKworICAgIC8vIFdlIGNvdWxkIGRyYXcgdGhlIHNuYXBzaG90
IHdpdGggdGhhdCBjb29yZGluYXRlcywgYnV0IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZXJlCisg
ICAgLy8gaXNuJ3QgYSBjb21wb3NpdGVkIGxheWVyIGJldHdlZW4gdXMgYW5kIHRoZSBwbHVnSW5S
ZW5kZXJlci4KKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVuZGVyQm94KG8pOworICAg
IHdoaWxlIChyZW5kZXJCb3ggIT0gcGx1Z0luUmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKHJlbmRl
ckJveC0+aGFzTGF5ZXIoKSAmJiByZW5kZXJCb3gtPmxheWVyKCkgJiYgcmVuZGVyQm94LT5sYXll
cigpLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgc25hcHNob3RBYnNQb3MgPSAtcmVu
ZGVyQm94LT5sb2NhdGlvbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgcmVuZGVyQm94ID0gcmVuZGVyQm94LT5wYXJlbnRCb3goKTsKKyAgICB9CisKKyAgICBMYXlv
dXRTaXplIHBsdWdpblNpemUocGx1Z0luUmVuZGVyZXItPmNvbnRlbnRXaWR0aCgpLCBwbHVnSW5S
ZW5kZXJlci0+Y29udGVudEhlaWdodCgpKTsKKyAgICBMYXlvdXRSZWN0IHBsdWdpblJlY3Qoc25h
cHNob3RBYnNQb3MsIHBsdWdpblNpemUpOworICAgIEludFJlY3QgYWxpZ25lZFBsdWdpblJlY3Qg
PSBwaXhlbFNuYXBwZWRJbnRSZWN0KHBsdWdpblJlY3QpOworCisgICAgaWYgKGFsaWduZWRQbHVn
aW5SZWN0LndpZHRoKCkgPD0gMCB8fCBhbGlnbmVkUGx1Z2luUmVjdC5oZWlnaHQoKSA8PSAwKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNvbnRleHQtPmRyYXdJbWFnZShzbmFwc2hvdCwg
cGx1Z0luUmVuZGVyZXItPnN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFBsdWdpblJlY3Qs
IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogI2lmIEVOQUJM
RShEQVRBTElTVF9FTEVNRU5UKQogSW50U2l6ZSBSZW5kZXJUaGVtZU1hY1NoYXJlZDo6c2xpZGVy
VGlja1NpemUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5ODY4NWRlZmMyNTFkZWVmN2QyNjEwYTUzNWE3
MjRmMzU1OTZhYzcuLjMyNDIwZTg3ZTY5MDBjY2QyMzE1YjBkNmE5OTgzMWYyNWUxMTY1M2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0wNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIGFwcGVhcmFuY2UgZm9yIHRoZSBz
bmFwc2hvdHRlZCBwbHVnaW4gYmFja2dyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhv
cnRvbi4KKworICAgICAgICBUb2dnbGVzIG91ciBuZXcgc25hcHNob3R0ZWQtcGx1Z2luLW92ZXJs
YXkgYXBwZWFyYW5jZSwgdG8gbWFrZSBzdXJlIGl0CisgICAgICAgIGlzbid0IGdldHRpbmcgYXBw
bGllZCB0byBub24tcGx1Z2lucy4KKworICAgICAgICAqIHBsdWdpbnMvc25hcHNob3QtYXBwZWFy
YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3NuYXBzaG90LWFw
cGVhcmFuY2UuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDUgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBGaXggc29tZSBjcmFzaGVzIGluIHJlbmRlciBzbGlkZXJz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90LWFwcGVhcmFuY2UtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25hcHNob3QtYXBwZWFyYW5jZS1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5Njc3Y2UzOGYxYzllNTc1MzIyYTdjY2JkOGY5Yjg1MWVj
MjNiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90LWFw
cGVhcmFuY2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxzdHlsZT4KK2RpdiB7Cisg
ICAgd2lkdGg6IDUwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0ibm9ybWFsIj48L2Rpdj4KKzxkaXYgaWQ9Im5v
cm1hbCI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90LWFw
cGVhcmFuY2UuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25hcHNob3QtYXBwZWFyYW5jZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE5ODgwOWJiYTgxMDQyYWFhYTI3NmM2NDE3YjE1NWE5M2Q5OTQzYTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBzaG90LWFwcGVhcmFu
Y2UuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IS0tIFNpbmNlIHdlJ3JlIG5vdCBhIHNuYXBzaG90
dGVkIHBsdWdpbiwgdGhpcyB0ZXN0IHNob3VsZCBkbyBub3RoaW5nIChhbmQgbm90IGNyYXNoKSAt
LT4KKzxzdHlsZT4KK2RpdiB7CisgICAgd2lkdGg6IDUwcHg7CisgICAgaGVpZ2h0OiA1MHB4Owor
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNzbmFwc2hvdCB7CisgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheTsKK30KKzwvc3R5bGU+Cis8
ZGl2IGlkPSJub3JtYWwiPjwvZGl2PgorPGRpdiBpZD0ic25hcHNob3QiPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192132</attachid>
            <date>2013-03-07 19:32:44 -0800</date>
            <delta_ts>2013-03-07 19:33:10 -0800</delta_ts>
            <desc>Another Patch for Landing</desc>
            <filename>bug-108368-20130308142847.patch</filename>
            <type>text/plain</type>
            <size>22982</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyZTA3MWVhODM1YWM0
NTI5YzgwZTU2Mjk0NGNjMDFiZTU5Y2MyNi4uMjg0ZWM4OTU1NTdhNGEwNTExMmNlZWMyNjIyOWNh
MDQ4YzgwMWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBjdXN0b20g
YXBwZWFyYW5jZSBmb3IgdGhlIHNuYXBzaG90dGVkIHBsdWdpbiBiYWNrZ3JvdW5kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgzNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFmdGVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgyODQgKHIxNDI1MDcpLCBhCisgICAgICAgIHNu
YXBzaG90dGVkIHBsdWdpbiB3YXMgbm8gbG9uZ2VyIGRyYXdpbmcgdGhlIGJhY2tncm91bmQgb2Yg
dGhlCisgICAgICAgIGxhYmVsIGJsdXJyZWQuIFNpbmNlIHRoZSBzbmFwc2hvdCBjb250ZW50IHdh
cyBub3cgYSBzaGFkb3cgdHJlZSwKKyAgICAgICAgaXQgd2Fzbid0IGZlYXNpYmxlIHRvIHByZS1i
bHVyIGEgcmVnaW9uIG9mIHRoZSBzbmFwc2hvdDogdGhlIGxhYmVsCisgICAgICAgIGNvdWxkIGJl
IGFueSBzaXplIGFuZCBpbiBhbnkgbG9jYXRpb24sIHdpdGggcG9ydHMgYmVpbmcgYWJsZSB0bwor
ICAgICAgICBvdmVycmlkZSB0aGUgYXBwZWFyYW5jZSB0aHJvdWdoIHRoZWlyIFVBIHN0eWxlIHNo
ZWV0LgorCisgICAgICAgIEluc3RlYWQgd2Ugbm93IHVzZSBvbmUgb2YgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0cmVlLCB0aGUgc25hcHNob3Qtb3ZlcmxheSwKKyAgICAgICAgYXMgYSBob29rIHdoZXJl
IHBvcnRzIGNhbiBhZGQgYW55IGVmZmVjdCB0aGV5IHdhbnQuIFRoaXMgY291bGQgYmUgc2ltcGx5
CisgICAgICAgIGEgYm9yZGVyLCBvciBhIHRyYW5zcGFyZW50IG1hc2ssIG9yIGV2ZW4gYSBDU1Mg
ZmlsdGVyLiBXZSBpbnRyb2R1Y2UgYSBjdXN0b20KKyAgICAgICAgQ1NTIGFwcGVhcmFuY2UgInNu
YXBzaG90dGVkLXBsdWdpbi1vdmVybGF5Iiwgd2hpY2ggY291bGQgYmUgYWRkZWQgdG8gdGhlCisg
ICAgICAgIGVsZW1lbnQgaW4gdGhlIGluamVjdGVkIFVBIHN0eWxlc2hlZXQuIFRoaXMgY2FsbHMg
aW50byBSZW5kZXJUaGVtZSBpbgorICAgICAgICB0aGUgc2FtZSB3YXkgdGhhdCBjdXN0b20gY29u
dHJvbHMgZG8uCisKKyAgICAgICAgTWVhbndoaWxlLCBpbiBSZW5kZXJUaGVtZU1hYywgd2UgaW1w
bGVtZW50IHRoZSBhcHBlYXJhbmNlIGJ5IGRyYXdpbmcgdGhlCisgICAgICAgIGNvbnRlbnQgb2Yg
dGhlIHBsdWdpbiBzbmFwc2hvdCBpbnRvIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBlbGVtZW50LiBU
aGF0CisgICAgICAgIHdheSB3ZSBjYW4gYWRkIGVmZmVjdHMgaW4gQ1NTLgorCisgICAgICAgIFRl
c3Q6IHBsdWdpbnMvc25hcHNob3QtYXBwZWFyYW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogSGFuZGxlIFNuYXBzaG90dGVkUGx1Z2luT3Zlcmxh
eVBhcnQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IE5ldyBhcHBlYXJhbmNl
IHZhbHVlIHNuYXBzaG90dGVkLXBsdWdpbi1vdmVybGF5LgorICAgICAgICAqIHBsYXRmb3JtL1Ro
ZW1lVHlwZXMuaDogTmV3IHZhbHVlIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQuCisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1M
UGx1Z0luRWxlbWVudCk6IEFkZCBzYWZlciBjYXN0aW5nIGhlbHBlcnMuCisgICAgICAgICogaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uY3BwOiBSZW1vdmUgdGhlIGNvZGUgZm9yIGhhbmRsaW5nCisgICAgICAgICAg
ICB0aGUgYmx1ciBkaXJlY3RseSBpbiB0aGUgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnQpOiBTaW1wbGlmeSB0aGUgcGFpbnQgbG9naWMg
c2luY2Ugd2UncmUKKyAgICAgICAgICAgIG5vIGxvbmdlciB0cnlpbmcgdG8gYmx1ciBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3Qp
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDog
UmVtb3ZlIHRoZSBtZXRob2RzIHRoYXQgd2VyZSB0cnlpbmcKKyAgICAgICAgICAgIHRvIGJsdXIg
dGhlIGltYWdlIGRpcmVjdGx5LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBDYWxsIHBhaW50U25hcHNo
b3R0ZWRQbHVnaW5PdmVybGF5LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVy
bGF5KTogTmV3IHZpcnR1YWwgbWV0aG9kIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWNTaGFyZWQuaDoKKyAgICAgICAgKFJlbmRl
clRoZW1lTWFjU2hhcmVkKTogT3ZlcnJpZGUgcGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXku
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWNTaGFyZWQ6OnBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVy
bGF5KTogSW1wbGVtZW50IGEgY3VzdG9tIHJlbmRlciBwYXRoCisgICAgICAgICAgICB0aGF0IHRh
a2VzIHRoZSBzbmFwc2hvdCBpbWFnZSBmcm9tIHRoZSBub2RlJ3MgcGFyZW50LCBhbmQgZHJhd3Mg
aXQgaW50byB0aGUgYmFja2dyb3VuZC4KKyAgICAgICAgICAgIEFsb25nIHRoZSB3YXkgbWFrZSBz
dXJlIHdlJ3JlIGFjdHVhbGx5IHVzaW5nIHRoZSByaWdodCB0eXBlIG9mIGVsZW1lbnQgKGFuIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQpLgorCiAyMDEzLTAzLTA1ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNvbWUgY3Jhc2hlcyBpbiByZW5kZXIgc2xpZGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggNTMyZTk5YzI3ZmU3ZDgzN2U4MzYwNGNjYmJhMGJhYWVmZGNjNWY5Ni4uY2M4YWE3ODM0ZTIz
NWMxZTI4NWY1ZmYyZTEyOTVkNzk1ZTk2MzRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC01NDYsNiArNTQ2LDkgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRyb2xQYXJ0
IGUpCiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25QYXJ0OgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b247CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXlQYXJ0
OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU25hcHNob3R0ZWRQbHVnaW5P
dmVybGF5OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVGV4dEZpZWxkUGFydDoK
ICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRmaWVsZDsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NTky
NmY2MjdhMzdmMjA2ZjExNGYxNmE3NzcyOWU4ZmQ5MzZlODBiLi5jMDc1NDFkNDVkMmQ1YTg2ODNi
ZmI5YzQ3ZDVkNjQwMTI1YzBkOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgpAQCAtNjgwLDYgKzY4MCw3IEBAIHNlYXJjaGZpZWxkLWRlY29yYXRpb24KIHNlYXJjaGZp
ZWxkLXJlc3VsdHMtZGVjb3JhdGlvbgogc2VhcmNoZmllbGQtcmVzdWx0cy1idXR0b24KIHNlYXJj
aGZpZWxkLWNhbmNlbC1idXR0b24KK3NuYXBzaG90dGVkLXBsdWdpbi1vdmVybGF5CiB0ZXh0Zmll
bGQKIHJlbGV2YW5jeS1sZXZlbC1pbmRpY2F0b3IKIGNvbnRpbnVvdXMtY2FwYWNpdHktbGV2ZWwt
aW5kaWNhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggYTc1
NTlhODViM2FiZjFiMGY4MmI3MmJlNjFhNmIxZDRiMDYzN2QwMS4uYjMyMGYzN2IwMTZkZmE2NmQz
ZmNkMDM5ZjViYTE5ZDNiNGMyMGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaApAQCAtMTExLDYgKzExMSwyMSBAQCBwcml2YXRlOgogICAgIERpc3BsYXlTdGF0ZSBt
X2Rpc3BsYXlTdGF0ZTsKIH07CiAKK2lubGluZSBIVE1MUGx1Z0luRWxlbWVudCogdG9IVE1MUGx1
Z0luRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFub2RlIHx8IG5vZGUtPmlzUGx1Z2luRWxlbWVudCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFBsdWdJbkVsZW1lbnQqPihub2RlKTsKK30KKworaW5saW5lIGNvbnN0IEhU
TUxQbHVnSW5FbGVtZW50KiB0b0hUTUxQbHVnSW5FbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9kZS0+aXNQ
bHVnaW5FbGVtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MUGx1Z0lu
RWxlbWVudCo+KG5vZGUpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvSFRNTFBsdWdJbkVsZW1lbnQoY29uc3QgSFRNTFBs
dWdJbkVsZW1lbnQqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRN
TFBsdWdJbkVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaAppbmRleCBmODViM2YyMjljYTc4NzYzNGQxNzljZjJhMWQ1YWNjNGI2ZGY4YjhlLi5i
NTBkNTNhODNjNDMzNjk4YzY2OGVkOTU2NWI0NjFhMDYyOWZlNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtMTI0LDYgKzEyNCwyNSBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxJbWFnZT4gbV9zbmFwc2hvdEltYWdlOwogfTsKIAoraW5saW5l
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChOb2RlKiBu
b2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5v
ZGUtPmlzUGx1Z2luRWxlbWVudCgpKTsKKyAgICBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4obm9kZSk7CisgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVs
ZW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQq
PihwbHVnSW5FbGVtZW50KTsKK30KKworaW5saW5lIGNvbnN0IEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQqIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmlzUGx1Z2luRWxl
bWVudCgpKTsKKyAgICBjb25zdCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHN0
YXRpY19jYXN0PGNvbnN0IEhUTUxQbHVnSW5FbGVtZW50Kj4obm9kZSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1l
bnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQqPihwbHVnSW5FbGVtZW50KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2lu
ZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29u
c3QgSFRNTFBsdWdJbkltYWdlRWxlbWVudCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
ZW1lVHlwZXMuaAppbmRleCA4ZWY2YjIzNzU0ZmUwYjFhNjM0N2Q1YmM4MmM0NzcyZjExODU5OGUz
Li40NDIxYzUxMWEyYWY0ZDNhNjNhMGQ0ZTEzMjNjOGNmMDc0MjcxNWVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhlbWVUeXBlcy5oCkBAIC01Niw3ICs1Niw3IEBAIGVudW0gQ29udHJvbFBhcnQg
ewogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNsaWRlclRo
dW1iSG9yaXpvbnRhbFBhcnQsCiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENhcmV0UGFy
dCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAgIFNlYXJj
aEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0
LAotICAgIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uUGFydCwgVGV4dEZpZWxkUGFydCwKKyAgICBT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvblBhcnQsIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQs
IFRleHRGaWVsZFBhcnQsCiAgICAgUmVsZXZhbmN5TGV2ZWxJbmRpY2F0b3JQYXJ0LCBDb250aW51
b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQsIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGlj
YXRvclBhcnQsIFJhdGluZ0xldmVsSW5kaWNhdG9yUGFydCwKICAgICBUZXh0QXJlYVBhcnQsIENh
cHNMb2NrSW5kaWNhdG9yUGFydAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IGRhZGJiOTI0MGE3YzM0ZTBjYmI3
NGM5ZmQ3YWUxNWI1MGJjZmMyN2MuLjYyODQzODIwZTJlZGNmNzhjNzNlNTJhN2FiZTgzYWQwYTYx
ODBhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgog
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgotI2luY2x1ZGUg
IkZFR2F1c3NpYW5CbHVyLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQxLDYyICs0MCwxMSBA
QAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU291cmNlR3JhcGhpYy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZFdp
ZHRoID0gMTsKLXN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhl
aWdodCA9IDE7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNob3dMYWJlbEFmdGVyTW91c2VPdmVyRGVs
YXkgPSAxOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzaG93TGFiZWxBdXRvbWF0aWNhbGx5RGVsYXkg
PSAzOwotc3RhdGljIGNvbnN0IGludCBzbmFwc2hvdExhYmVsQmx1clJhZGl1cyA9IDU7Ci0KLSNp
ZiBFTkFCTEUoRklMVEVSUykKLWNsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRl
ciA6IHB1YmxpYyBGaWx0ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRl
cj4gY3JlYXRlKGludCByYWRpdXMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcihyYWRpdXMpKTsKLSAgICB9Ci0KLSAg
ICB2b2lkIHNldFNvdXJjZUltYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCi0gICAgewotICAg
ICAgICBtX3NvdXJjZUltYWdlUmVjdCA9IHI7Ci0gICAgICAgIG1fZmlsdGVyUmVnaW9uID0gcjsK
LSAgICAgICAgbV9zb3VyY2VHcmFwaGljLT5zZXRNYXhFZmZlY3RSZWN0KHIpOwotICAgICAgICBt
X2JsdXItPnNldE1heEVmZmVjdFJlY3Qocik7Ci0gICAgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0
IHNvdXJjZUltYWdlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9Ci0g
ICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9maWx0
ZXJSZWdpb247IH0KLQotICAgIHZvaWQgYXBwbHkoKTsKLSAgICBJbWFnZUJ1ZmZlciogb3V0cHV0
KCkgY29uc3QgeyByZXR1cm4gbV9ibHVyLT5hc0ltYWdlQnVmZmVyKCk7IH0KLQotcHJpdmF0ZToK
LSAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIoaW50IHJhZGl1cyk7Ci0KLSAg
ICBGbG9hdFJlY3QgbV9zb3VyY2VJbWFnZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IG1fZmlsdGVyUmVn
aW9uOwotICAgIFJlZlB0cjxTb3VyY2VHcmFwaGljPiBtX3NvdXJjZUdyYXBoaWM7Ci0gICAgUmVm
UHRyPEZFR2F1c3NpYW5CbHVyPiBtX2JsdXI7Ci19OwotCi1SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bkJsdXJGaWx0ZXI6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcihpbnQgcmFkaXVz
KQotewotICAgIHNldEZpbHRlclJlc29sdXRpb24oRmxvYXRTaXplKDEsIDEpKTsKLSAgICBtX3Nv
dXJjZUdyYXBoaWMgPSBTb3VyY2VHcmFwaGljOjpjcmVhdGUodGhpcyk7Ci0gICAgbV9ibHVyID0g
RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSh0aGlzLCByYWRpdXMsIHJhZGl1cyk7Ci0gICAgbV9ibHVy
LT5pbnB1dEVmZmVjdHMoKS5hcHBlbmQobV9zb3VyY2VHcmFwaGljKTsKLX0KLQotdm9pZCBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmFwcGx5KCkKLXsKLSAgICBtX3NvdXJjZUdy
YXBoaWMtPmNsZWFyUmVzdWx0KCk7Ci0gICAgbV9ibHVyLT5jbGVhclJlc3VsdCgpOwotICAgIG1f
Ymx1ci0+YXBwbHkoKTsKLX0KLSNlbmRpZgogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAg
ICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCkBAIC0xNjAsMTcgKzEwOCwxOCBAQCB2b2lkIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFn
ZSkKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kICYmIHBsdWdJbkltYWdlRWxlbWVu
dCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRp
bmdNb3VzZUNsaWNrKSB7Ci0gICAgICAgIGlmIChtX3Nob3VsZFNob3dMYWJlbCkKLSAgICAgICAg
ICAgIHBhaW50U25hcHNob3RXaXRoTGFiZWwocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNl
dCk7CisgICAgICAgIHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAg
fQogCiAgICAgUmVuZGVyQmxvY2s6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQog
Ci12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFNuYXBzaG90SW1hZ2UoSW1hZ2Uq
IGltYWdlLCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0KQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogeworICAgIElt
YWdlKiBpbWFnZSA9IG1fc25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKTsKKyAgICBpZiAo
IWltYWdlIHx8IGltYWdlLT5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0
VW5pdCBjV2lkdGggPSBjb250ZW50V2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGNIZWlnaHQgPSBj
b250ZW50SGVpZ2h0KCk7CiAgICAgaWYgKCFjV2lkdGggfHwgIWNIZWlnaHQpCkBAIC0xOTUsNjUg
KzE0NCw2IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3RJbWFn
ZShJbWFnZSogaW1hZ2UsIFBhaW50SW5mbyYgcGFpbnRJCiAgICAgY29udGV4dC0+ZHJhd0ltYWdl
KGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2Nh
bGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3Qo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKLXsK
LSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFnZSgpOwot
ICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBwYWludFNuYXBzaG90SW1hZ2UoaW1hZ2UuZ2V0KCksIHBhaW50SW5mbywgcGFpbnRPZmZzZXQp
OwotfQotCi0jaWYgRU5BQkxFKEZJTFRFUlMpCi1zdGF0aWMgUGFzc1JlZlB0cjxJbWFnZT4gc25h
cHNob3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlzcGxheShQYXNzUmVmUHRyPEltYWdlPiBzbmFw
c2hvdCwgY29uc3QgTGF5b3V0UmVjdCYgYmx1clJlZ2lvbikKLXsKLSAgICBPd25QdHI8SW1hZ2VC
dWZmZXI+IHNuYXBzaG90QnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzbmFwc2hvdC0+c2l6
ZSgpKTsKLSAgICBzbmFwc2hvdEJ1ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2Uoc25hcHNob3Qu
Z2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KDAsIDApKTsKLQotICAgIE93blB0
cjxJbWFnZUJ1ZmZlcj4gYmx1ckJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZElu
dFNpemUoYmx1clJlZ2lvbi5zaXplKCkpKTsKLSAgICBibHVyQnVmZmVyLT5jb250ZXh0KCktPmRy
YXdJbWFnZShzbmFwc2hvdC5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoLWJs
dXJSZWdpb24ueCgpLCAtYmx1clJlZ2lvbi55KCkpKTsKLQotICAgIFJlZlB0cjxSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI+IGJsdXJGaWx0ZXIgPSBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbkJsdXJGaWx0ZXI6OmNyZWF0ZShzbmFwc2hvdExhYmVsQmx1clJhZGl1cyk7Ci0gICAgYmx1
ckZpbHRlci0+c2V0U291cmNlSW1hZ2UoYmx1ckJ1ZmZlci5yZWxlYXNlKCkpOwotICAgIGJsdXJG
aWx0ZXItPnNldFNvdXJjZUltYWdlUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBibHVyUmVn
aW9uLnNpemUoKSkpOwotICAgIGJsdXJGaWx0ZXItPmFwcGx5KCk7Ci0KLSAgICBzbmFwc2hvdEJ1
ZmZlci0+Y29udGV4dCgpLT5kcmF3SW1hZ2VCdWZmZXIoYmx1ckZpbHRlci0+b3V0cHV0KCksIENv
bG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChibHVyUmVnaW9uLmxvY2F0aW9uKCkp
KTsKLSAgICByZXR1cm4gc25hcHNob3RCdWZmZXItPmNvcHlJbWFnZSgpOwotfQotI2VuZGlmCi0K
LXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3RXaXRoTGFiZWwoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAg
ICBpZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSAmJiBtX3Nob3dSZWFzb24gPT0g
VXNlck1vdXNlZE92ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2hvd2VkTGFiZWxPbmNl
ID0gdHJ1ZTsKLSAgICBMYXlvdXRSZWN0IGxhYmVsUmVjdDsKLQotICAgIFJlZlB0cjxJbWFnZT4g
c25hcHNob3RJbWFnZSA9IG1fc25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKTsKLSAgICBpZiAoIXNu
YXBzaG90SW1hZ2UgfHwgc25hcHNob3RJbWFnZS0+aXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsK
LQotI2lmIEVOQUJMRShGSUxURVJTKQotICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBkaXNhYmxp
bmcgdGhlIGJsdXIgYmVoaW5kIHRoZSBsYWJlbC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4Ci0gICAgaWYgKCFsYWJlbFJlY3QuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFJlZlB0cjxJbWFnZT4gYmx1cnJlZFNuYXBzaG90SW1hZ2UgPSBtX3NuYXBz
aG90UmVzb3VyY2VGb3JMYWJlbC0+aW1hZ2UoKTsKLSAgICAgICAgaWYgKCFibHVycmVkU25hcHNo
b3RJbWFnZSB8fCBibHVycmVkU25hcHNob3RJbWFnZS0+aXNOdWxsKCkpIHsKLSAgICAgICAgICAg
IGJsdXJyZWRTbmFwc2hvdEltYWdlID0gc25hcHNob3R0ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlz
cGxheShzbmFwc2hvdEltYWdlLCBsYWJlbFJlY3QpOwotICAgICAgICAgICAgbV9zbmFwc2hvdFJl
c291cmNlRm9yTGFiZWwtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShibHVycmVkU25h
cHNob3RJbWFnZS5nZXQoKSkpOwotICAgICAgICB9Ci0gICAgICAgIHNuYXBzaG90SW1hZ2UgPSBi
bHVycmVkU25hcHNob3RJbWFnZTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHBhaW50U25hcHNob3RJ
bWFnZShzbmFwc2hvdEltYWdlLmdldCgpLCBwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKLX0KLQog
dm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludExhYmVsKCkKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBpcyB1bmZvcnR1bmF0ZS4gV2Ugc2hvdWxkIGp1c3QgcmVwYWludCB0aGUgbGFi
ZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbi5oCmluZGV4IDRhYjNjMmI0MmZlYWY5ZWFkYjk3NjUzZTUzMzRiODBhNGVkODUxZjcuLmZj
ZTZkZWE3MjM5YTk0MDUwYzk5ZDM4ZGQ5ODI0YjU5NDk2Mjk4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC01NSw4ICs1
NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50JikgT1ZFUlJJREU7CiAKICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50U25hcHNob3RXaXRoTGFi
ZWwoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHBhaW50U25hcHNo
b3RJbWFnZShJbWFnZSosIFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdm9p
ZCByZXBhaW50TGFiZWwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGEzNTgxYTRiYjk3
MWM4YzRjMmJmZGYxZDI0NjNjOWY0MjgzOGE1NGMuLjE4MWI3M2MxMjNjMDdjNmYxMDUyNTkzODc4
ZDM1ZjgzZjhlNWViZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cApAQCAtMzgwLDYgKzM4MCw4IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVj
dCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlCiAgICAgICAgIHJl
dHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24obywgcGFpbnRJbmZvLCByKTsK
ICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgIHJldHVybiBw
YWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihvLCBwYWludEluZm8sIHIpOworICAgIGNhc2Ug
U25hcHNob3R0ZWRQbHVnaW5PdmVybGF5UGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50U25hcHNo
b3R0ZWRQbHVnaW5PdmVybGF5KG8sIHBhaW50SW5mbywgcik7CiAjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKICAgICBjYXNlIElucHV0U3BlZWNoQnV0dG9uUGFydDoKICAgICAgICAgcmV0dXJuIHBh
aW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihvLCBwYWludEluZm8sIHIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBjMDAyOTg1MzBjNDE4ODI0YTNiMjA0MWFlYzdj
ZGRjNDNkMzcwMDFkLi4wNzU2ZGM2MTM2YzliOTU5NDZlMjlkODA0ZTlkZDMyZDRhZGRhY2YxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMzQ1LDYgKzM0NSw4IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbmFw
c2hvdHRlZFBsdWdpbk92ZXJsYXkoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKwogcHVibGljOgogICAgIC8vIE1ldGhvZHMg
Zm9yIHN0YXRlIHF1ZXJ5aW5nCiAgICAgQ29udHJvbFN0YXRlcyBjb250cm9sU3RhdGVzRm9yUmVu
ZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hY1NoYXJlZC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLmgKaW5kZXggNTI4M2NiOGRiYjllMThiYjg5
OTcyYTU5YTRmMjE0ZDVkNzQxZTM4Yi4uNTNhM2NlMWExMTIwYmI5MzE3YzM1ZjAzOWI3YjliN2Uw
NzgyYzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjU2hhcmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
U2hhcmVkLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU2hvd1BsYWNlaG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdDsKIAorICAgIHZpcnR1
YWwgYm9vbCBwYWludFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheShSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBT
dHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250Jiwg
aW50IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBPVkVSUklERTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVk
Lm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjU2hhcmVkLm1tCmlu
ZGV4IGFjMTljOTNmYjIyODYxYjQ1YWM5ZDliODA2Y2Y3ZWEzZDFjZjg5YTQuLmEzNGJkZmY4ZWY3
NjczYjQ4NmM1ZDdkNGZjYWU0NmI3ZThjZTUzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hY1NoYXJlZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWNTaGFyZWQubW0KQEAgLTMyLDEyICszMiwxNCBAQAogI2lt
cG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmgi
CiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5o
IgogI2ltcG9ydCAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbXBvcnQgIlBhaW50SW5mby5o
IgorI2ltcG9ydCAiUmVuZGVyTGF5ZXIuaCIKICNpbXBvcnQgIlJlbmRlck1lZGlhLmgiCiAjaW1w
b3J0ICJSZW5kZXJNZWRpYUNvbnRyb2xzLmgiCiAjaW1wb3J0ICJSZW5kZXJTbGlkZXIuaCIKQEAg
LTE3MDIsNiArMTcwNCw4MyBAQCBib29sIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpwYWludFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFJlbmRlclRoZW1lTWFjU2hhcmVkOjpwYWludFNuYXBzaG90dGVkUGx1
Z2luT3ZlcmxheShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JikKK3sKKyAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VC
bG9ja0JhY2tncm91bmQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFvLT5pc1Jl
bmRlckJsb2NrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVuZGVyQmxvY2sqIHJl
bmRlckJsb2NrID0gdG9SZW5kZXJCbG9jayhvKTsKKworICAgIExheW91dFVuaXQgY1dpZHRoID0g
cmVuZGVyQmxvY2stPmNvbnRlbnRXaWR0aCgpOworICAgIExheW91dFVuaXQgY0hlaWdodCA9IHJl
bmRlckJsb2NrLT5jb250ZW50SGVpZ2h0KCk7CisgICAgaWYgKCFjV2lkdGggfHwgIWNIZWlnaHQp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0g
cGFpbnRJbmZvLmNvbnRleHQ7CisKKyAgICBMYXlvdXRTaXplIGNvbnRlbnRTaXplKGNXaWR0aCwg
Y0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcmVuZGVyQmxvY2st
PmxvY2F0aW9uKCk7CisgICAgY29udGVudExvY2F0aW9uLm1vdmUocmVuZGVyQmxvY2stPmJvcmRl
ckxlZnQoKSArIHJlbmRlckJsb2NrLT5wYWRkaW5nTGVmdCgpLCByZW5kZXJCbG9jay0+Ym9yZGVy
VG9wKCkgKyByZW5kZXJCbG9jay0+cGFkZGluZ1RvcCgpKTsKKworICAgIExheW91dFJlY3QgcmVj
dChjb250ZW50TG9jYXRpb24sIGNvbnRlbnRTaXplKTsKKyAgICBJbnRSZWN0IGFsaWduZWRSZWN0
ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KTsKKyAgICBpZiAoYWxpZ25lZFJlY3Qud2lkdGgo
KSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdodCgpIDw9IDApCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgLy8gV2UgbmVlZCB0byBnZXQgdGhlIHNuYXBzaG90IGltYWdlIGZyb20gdGhlIHBs
dWdpbiBlbGVtZW50LCB3aGljaCBzaG91bGQgYmUgYXZhaWxhYmxlCisgICAgLy8gZnJvbSBvdXIg
bm9kZS4gQXNzdW1pbmcgdGhpcyBub2RlIGlzIHRoZSBwbHVnaW4gb3ZlcmxheSBlbGVtZW50LCB3
ZSBzaG91bGQgZ2V0IHRvIHRoZQorICAgIC8vIHBsdWdpbiBpdHNlbGYgYnkgYXNraW5nIGZvciB0
aGUgc2hhZG93IHJvb3QgcGFyZW50LCBhbmQgdGhlbiBpdHMgcGFyZW50LgorCisgICAgaWYgKCFy
ZW5kZXJCbG9jay0+bm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgSFRNTEVsZW1lbnQqIHBsdWdJbk92ZXJsYXkgPSB0b0hUTUxFbGVtZW50KHJlbmRl
ckJsb2NrLT5ub2RlKCkpOworICAgIEVsZW1lbnQqIHBhcmVudCA9IHBsdWdJbk92ZXJsYXktPnBh
cmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsKKyAgICB3aGlsZSAocGFyZW50ICYmICFwYXJlbnQt
PmlzUGx1Z2luRWxlbWVudCgpKQorICAgICAgICBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9yU2hh
ZG93SG9zdEVsZW1lbnQoKTsKKworICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnSW5FbGVtZW50ID0gdG9IVE1MUGx1Z0lu
RWxlbWVudChwYXJlbnQpOworICAgIGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KiBwbHVnSW5JbWFnZUVsZW1lbnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQocGx1Z0lu
RWxlbWVudCk7CisKKyAgICBJbWFnZSogc25hcHNob3QgPSBwbHVnSW5JbWFnZUVsZW1lbnQtPnNu
YXBzaG90SW1hZ2UoKTsKKyAgICBpZiAoIXNuYXBzaG90KQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiBwbHVnSW5SZW5kZXJlciA9IHRvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4ocGx1Z0luSW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICBG
bG9hdFBvaW50IHNuYXBzaG90QWJzUG9zID0gcGx1Z0luUmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0
ZSgpOworICAgIHNuYXBzaG90QWJzUG9zLm1vdmUocGx1Z0luUmVuZGVyZXItPmJvcmRlckxlZnQo
KSArIHBsdWdJblJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLCBwbHVnSW5SZW5kZXJlci0+Ym9yZGVy
VG9wKCkgKyBwbHVnSW5SZW5kZXJlci0+cGFkZGluZ1RvcCgpKTsKKworICAgIC8vIFdlIGNvdWxk
IGRyYXcgdGhlIHNuYXBzaG90IHdpdGggdGhhdCBjb29yZGluYXRlcywgYnV0IHdlIG5lZWQgdG8g
bWFrZSBzdXJlIHRoZXJlCisgICAgLy8gaXNuJ3QgYSBjb21wb3NpdGVkIGxheWVyIGJldHdlZW4g
dXMgYW5kIHRoZSBwbHVnSW5SZW5kZXJlci4KKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRv
UmVuZGVyQm94KG8pOworICAgIHdoaWxlIChyZW5kZXJCb3ggIT0gcGx1Z0luUmVuZGVyZXIpIHsK
KyAgICAgICAgaWYgKHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiByZW5kZXJCb3gtPmxheWVyKCkg
JiYgcmVuZGVyQm94LT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgc25h
cHNob3RBYnNQb3MgPSAtcmVuZGVyQm94LT5sb2NhdGlvbigpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgcmVuZGVyQm94ID0gcmVuZGVyQm94LT5wYXJlbnRCb3goKTsK
KyAgICB9CisKKyAgICBMYXlvdXRTaXplIHBsdWdpblNpemUocGx1Z0luUmVuZGVyZXItPmNvbnRl
bnRXaWR0aCgpLCBwbHVnSW5SZW5kZXJlci0+Y29udGVudEhlaWdodCgpKTsKKyAgICBMYXlvdXRS
ZWN0IHBsdWdpblJlY3Qoc25hcHNob3RBYnNQb3MsIHBsdWdpblNpemUpOworICAgIEludFJlY3Qg
YWxpZ25lZFBsdWdpblJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHBsdWdpblJlY3QpOworCisg
ICAgaWYgKGFsaWduZWRQbHVnaW5SZWN0LndpZHRoKCkgPD0gMCB8fCBhbGlnbmVkUGx1Z2luUmVj
dC5oZWlnaHQoKSA8PSAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNvbnRleHQtPmRy
YXdJbWFnZShzbmFwc2hvdCwgcGx1Z0luUmVuZGVyZXItPnN0eWxlKCktPmNvbG9yU3BhY2UoKSwg
YWxpZ25lZFBsdWdpblJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogSW50U2l6ZSBSZW5kZXJUaGVt
ZU1hY1NoYXJlZDo6c2xpZGVyVGlja1NpemUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5ODY4NWRlZmMy
NTFkZWVmN2QyNjEwYTUzNWE3MjRmMzU1OTZhYzcuLjMyNDIwZTg3ZTY5MDBjY2QyMzE1YjBkNmE5
OTgzMWYyNWUxMTY1M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0wNyAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIGFw
cGVhcmFuY2UgZm9yIHRoZSBzbmFwc2hvdHRlZCBwbHVnaW4gYmFja2dyb3VuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzY4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUb2dnbGVzIG91ciBuZXcgc25hcHNo
b3R0ZWQtcGx1Z2luLW92ZXJsYXkgYXBwZWFyYW5jZSwgdG8gbWFrZSBzdXJlIGl0CisgICAgICAg
IGlzbid0IGdldHRpbmcgYXBwbGllZCB0byBub24tcGx1Z2lucy4KKworICAgICAgICAqIHBsdWdp
bnMvc25hcHNob3QtYXBwZWFyYW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bHVnaW5zL3NuYXBzaG90LWFwcGVhcmFuY2UuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDUgIFRv
bnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggc29tZSBjcmFzaGVz
IGluIHJlbmRlciBzbGlkZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3NuYXBz
aG90LWFwcGVhcmFuY2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25hcHNo
b3QtYXBwZWFyYW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5Njc3Y2UzOGYxYzllNTc1
MzIyYTdjY2JkOGY5Yjg1MWVjMjNiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bHVnaW5zL3NuYXBzaG90LWFwcGVhcmFuY2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAK
KzxzdHlsZT4KK2RpdiB7CisgICAgd2lkdGg6IDUwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0ibm9ybWFsIj48
L2Rpdj4KKzxkaXYgaWQ9Im5vcm1hbCI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bHVnaW5zL3NuYXBzaG90LWFwcGVhcmFuY2UuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvc25h
cHNob3QtYXBwZWFyYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ODgwOWJiYTgxMDQyYWFhYTI3NmM2
NDE3YjE1NWE5M2Q5OTQzYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5z
L3NuYXBzaG90LWFwcGVhcmFuY2UuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IS0tIFNpbmNlIHdl
J3JlIG5vdCBhIHNuYXBzaG90dGVkIHBsdWdpbiwgdGhpcyB0ZXN0IHNob3VsZCBkbyBub3RoaW5n
IChhbmQgbm90IGNyYXNoKSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgd2lkdGg6IDUwcHg7Cisg
ICAgaGVpZ2h0OiA1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKyNzbmFw
c2hvdCB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBzbmFwc2hvdHRlZC1wbHVnaW4tb3Zlcmxh
eTsKK30KKzwvc3R5bGU+Cis8ZGl2IGlkPSJub3JtYWwiPjwvZGl2PgorPGRpdiBpZD0ic25hcHNo
b3QiPjwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>