<?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>102846</bug_id>
          
          <creation_ts>2012-11-20 15:14:58 -0800</creation_ts>
          <short_desc>[CSS Shapes] Use the float height to determine position in shape-inside</short_desc>
          <delta_ts>2013-09-19 09:56:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/csswg/css3-exclusions/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
    
    <blocked>119274</blocked>
    
    <blocked>121615</blocked>
    
    <blocked>121616</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>commit-queue</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>772206</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-20 15:14:58 -0800</bug_when>
    <thetext>The height of the float should be used to determine the longest segment offset over it&apos;s height, and that should be used to position it. Otherwise, in the case of a shape that gets narrower as it goes down, the float will be positioned so that it&apos;s edge is outside of the shape.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913015</commentid>
    <comment_count>1</comment_count>
      <attachid>207764</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-07-30 14:03:23 -0700</bug_when>
    <thetext>Created attachment 207764
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930270</commentid>
    <comment_count>2</comment_count>
      <attachid>211916</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-09-17 09:45:49 -0700</bug_when>
    <thetext>Created attachment 211916
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930299</commentid>
    <comment_count>3</comment_count>
      <attachid>211916</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-17 10:44:18 -0700</bug_when>
    <thetext>Comment on attachment 211916
proposed patch

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

&gt; Source/WebCore/rendering/LineWidth.cpp:210
&gt; +void LineWidth::updateCurrentLineSegment()
&gt; +{
&gt; +    if (ShapeInsideInfo* shapeInsideInfo = m_block.layoutShapeInsideInfo())
&gt; +        m_segment = shapeInsideInfo-&gt;currentSegment();
&gt; +}

Does this need to go inside #if ENABLE(CSS_SHAPES)?

&gt; Source/WebCore/rendering/RenderBlock.cpp:3387
&gt; +        // FIXME Bug 102949: Add support for shapes with multipe segments.

multiple rather than multipe

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2580
&gt; +    bool lineOverlapsWithFloat = lastFloatFromPreviousLine-&gt;y() &lt; (block-&gt;logicalHeight() + lineLogicalHeight) &amp;&amp; (block-&gt;logicalHeight() &lt; lastFloatFromPreviousLine-&gt;maxY());

Parentheses here make this expression confusing. I, at least, would be able to read it bette without those parens. If you really do want parens, I would suggest one more set around the expression before the &amp;&amp;.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2587
&gt; +    if ((block-&gt;width() - lastFloatFromPreviousLine-&gt;maxX()) &lt; minWidth)

Again, I find the parentheses make it harder to read this expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930307</commentid>
    <comment_count>4</comment_count>
      <attachid>211916</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-09-17 10:58:35 -0700</bug_when>
    <thetext>Comment on attachment 211916
proposed patch

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

Here&apos;s the feedback we talked about in person.

&gt; LayoutTests/fast/shapes/shape-inside/shape-inside-left-float-in-lower-left-triangle-inline-content-expected.html:1
&gt; +&lt;html&gt;

You should put &lt;!DOCTYPE html&gt; at the top of all of your test files, unless you have a good reason not to. (Same feedback on all of the test files)

&gt; Source/WebCore/rendering/LineWidth.cpp:206
&gt; +void LineWidth::updateCurrentLineSegment()

I think that updateCurrentShapeSegment would be a clearer name.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2574
&gt; +static void adjustLineTopAndBlockLogicalHeightForShapeInsideWithFloats(RenderBlock* block, const FloatingObject* lastFloatFromPreviousLine, const WordMeasurements&amp; wordMeasurements, LineWidth&amp; width, bool isFirstLine)

This name makes me think that this method is trying to do too many things. Maybe there&apos;s a way to break it up into multiple methiods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930343</commentid>
    <comment_count>5</comment_count>
      <attachid>211916</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-17 12:14:11 -0700</bug_when>
    <thetext>Comment on attachment 211916
proposed patch

Attachment 211916 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/1877799</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930360</commentid>
    <comment_count>6</comment_count>
      <attachid>211932</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-09-17 13:18:02 -0700</bug_when>
    <thetext>Created attachment 211932
incorporating comments

(In reply to comment #3)
&gt; (From update of attachment 211916 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211916&amp;action=review
&gt; Does this need to go inside #if ENABLE(CSS_SHAPES)?

You&apos;re right! I added the missing guard to the patch.
 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3387
&gt; &gt; +        // FIXME Bug 102949: Add support for shapes with multipe segments.
&gt; 
&gt; multiple rather than multipe

Fixed.

&gt; &gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2580
&gt; &gt; +    bool lineOverlapsWithFloat = lastFloatFromPreviousLine-&gt;y() &lt; (block-&gt;logicalHeight() + lineLogicalHeight) &amp;&amp; (block-&gt;logicalHeight() &lt; lastFloatFromPreviousLine-&gt;maxY());
&gt; 
&gt; Parentheses here make this expression confusing. I, at least, would be able to read it bette without those parens. If you really do want parens, I would suggest one more set around the expression before the &amp;&amp;.

Fixed.

&gt; &gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2587
&gt; &gt; +    if ((block-&gt;width() - lastFloatFromPreviousLine-&gt;maxX()) &lt; minWidth)
&gt; 
&gt; Again, I find the parentheses make it harder to read this expression.

Fixed too.

(In reply to comment #4)
&gt; (From update of attachment 211916 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211916&amp;action=review
&gt; 
&gt; You should put &lt;!DOCTYPE html&gt; at the top of all of your test files, unless you have a good reason not to. (Same feedback on all of the test files)

Done.

&gt; &gt; Source/WebCore/rendering/LineWidth.cpp:206
&gt; &gt; +void LineWidth::updateCurrentLineSegment()
&gt; 
&gt; I think that updateCurrentShapeSegment would be a clearer name.

I updated the function name.

&gt; &gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:2574
&gt; &gt; +static void adjustLineTopAndBlockLogicalHeightForShapeInsideWithFloats(RenderBlock* block, const FloatingObject* lastFloatFromPreviousLine, const WordMeasurements&amp; wordMeasurements, LineWidth&amp; width, bool isFirstLine)
&gt; 
&gt; This name makes me think that this method is trying to do too many things. Maybe there&apos;s a way to break it up into multiple methiods?

I renamed the function. I&apos;ll probably split the method up in one of the following floats-shape-inside patches.

Thank you guys to look at the patch. I&apos;m giving it to the EWS now, then land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930495</commentid>
    <comment_count>7</comment_count>
      <attachid>211932</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-17 20:26:29 -0700</bug_when>
    <thetext>Comment on attachment 211932
incorporating comments

Clearing flags on attachment: 211932

Committed r156022: &lt;http://trac.webkit.org/changeset/156022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930496</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-17 20:26:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207764</attachid>
            <date>2013-07-30 14:03:23 -0700</date>
            <delta_ts>2013-09-17 09:45:49 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>floatleftfix.patch</filename>
            <type>text/plain</type>
            <size>6049</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YWE1YThhLi5kOTg5MGFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDct
MzAgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIFVzZSB0aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFw
ZS1pbnNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZsb2F0cyBpbiBhIHNoYXBlLWluc2lkZSBzaG91bGQgYmUgcG9zaXRpb25lZCBiYXNlZCBvbiB0
aGVpciBoZWlnaHQgbm90IG9uIHRoZSBsaW5lJ3MgaGVpZ2h0LiBUaGlzIHBhdGNoIGZpeGVzIHRo
ZSBiZWhhdmlvcgorICAgICAgICBhbmQgYWRkIHRlc3RzIGZvciBmbG9hdDogbGVmdCwgYnV0IGRv
ZXNuJ3QgaW5jbHVkZSBmaXggZm9yIGZsb2F0OiByaWdodC4gUmlnaHQgZmxvYXQgY2FzZXMgcmVx
dWlyZSBhZGRpdGlvbmFsIGNoYW5nZXMsIHNvCisgICAgICAgIEkgb3BlbmVkIGEgc2VwYXJhdGUg
YnVnIGZvciBpdDogaHR0cDovL3dlYmtpdC5vcmcvYi8xMTkyNzQKKworICAgICAgICAqIGZhc3Qv
c2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi10cmlhbmdsZS1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tdHJpYW5nbGUuaHRtbDogQWRkZWQuCisKIDIwMTMt
MDctMzAgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFBhc3MgY29sdW1uIGFzIDR0aCBhcmd1bWVudCB0byBXb3JrZXJHbG9iYWxTY29wZS5v
bmVycm9yIGFuZCBXaW5kb3cub25lcnJvciBoYW5kbGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXRy
aWFuZ2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tdHJpYW5nbGUtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTkzNzQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0
LWZsb2F0LWluLXRyaWFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5z
aWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0
b3A6IDBweDsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAg
ICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4OworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCAyMDAsMCAyMDAsMjAw
IiBmaWxsPSIjNjM2MzYzIj48L3BvbHlnb24+CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hh
cGUtaW5zaWRlIj4KKyAgICA8L2Rpdj4KKworICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyMDBw
eDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVk
IGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNv
bnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91
bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5n
bGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4KKyAgICA8L3A+CisgICAgPHA+QnVnIDxhIGhy
ZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvMTAyODQ2Ij4xMDI4NDY8L2E+OiBbQ1NTIFNoYXBlc10g
VXNlIHRoZSBmbG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBvc2l0aW9uIGluIHNoYXBlLWluc2lk
ZTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
cGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi10cmlhbmdsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0
LWZsb2F0LWluLXRyaWFuZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjE2MjA3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi10cmlhbmdsZS5odG1sCkBAIC0w
LDAgKzEsMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3BvbHlnb24tc2hhcGUt
aW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICAgICNzaGFw
ZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5
Z29uKDBweCAwcHgsIDIwMHB4IDBweCwgMjAwcHggMjAwcHgpOworICAgIH0KKyAgICAjZmxvYXQg
eworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBm
bG9hdDogbGVmdDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgIH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9p
bnRzPSIwLDAgMjAwLDAgMjAwLDIwMCIgZmlsbD0iIzYzNjM2MyI+PC9wb2x5Z29uPgorICAgIDwv
c3ZnPgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxkaXYgaWQ9ImZsb2F0
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjAwcHg7Ij4K
KyAgICAgIFRoZXJlIGlzIGEgdHJpYW5nbGUgc2hhcGUtaW5zaWRlIChyZXByZXNlbnRlZCBieSB0
aGUgbWF0Y2hpbmcgZmlsbGVkIFNWRyBwb2x5Z29uKSwgdGhlIHNoYXBlLWluc2lkZSBjb250YWlu
cyBhIDUweDUwcHggeWVsbG93IGZsb2F0IGxlZnQsCisgICAgICB0aGUgZmxvYXQgc2hvdWxkIGJl
IGF0IHRoZSB2ZXJ5IGxlZnQgYW5kIHRvcCBwb3NpdGlvbiBpbnNpZGUgdGhlIHRyaWFuZ2xlIHNo
YXBlIHdoZXJlIGl0IGZpdHMgZmlyc3QuCisgICAgPC9wPgorICAgIDxwPkJ1ZyA8YSBocmVmPSJo
dHRwOi8vd2Via2l0Lm9yZy9iLzEwMjg0NiI+MTAyODQ2PC9hPjogW0NTUyBTaGFwZXNdIFVzZSB0
aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFwZS1pbnNpZGU8L3A+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE5M2UwNS4uN2U5YmQyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA3LTMwICBab2x0YW4gSG9ydmF0aCAgPHpvbHRh
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdo
dCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI4NDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGbG9hdHMgaW4gYSBzaGFwZS1pbnNpZGUg
c2hvdWxkIGJlIHBvc2l0aW9uZWQgYmFzZWQgb24gdGhlaXIgaGVpZ2h0IG5vdCBvbiB0aGUgbGlu
ZSdzIGhlaWdodC4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgYmVoYXZpb3IKKyAgICAgICAgYW5kIGFk
ZCB0ZXN0cyBmb3IgZmxvYXQ6IGxlZnQsIGJ1dCBkb2Vzbid0IGluY2x1ZGUgZml4IGZvciBmbG9h
dDogcmlnaHQuIFJpZ2h0IGZsb2F0IGNhc2VzIHJlcXVpcmUgYWRkaXRpb25hbCBjaGFuZ2VzLCBz
bworICAgICAgICBJIG9wZW5lZCBhIHNlcGFyYXRlIGJ1ZyBmb3IgaXQ6IGh0dHA6Ly93ZWJraXQu
b3JnL2IvMTE5Mjc0CisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXRyaWFuZ2xlLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KTogUmVjb21wdXRlIHNlZ21lbnRzIGJhc2VkIG9u
IHRoZSBmbG9hdCdzIGhlaWdodC4KKwogMjAxMy0wNy0zMCAgUGF0cmljayBHYW5zdGVyZXIgIDxw
YXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0lOXSBSZW1vdmUgZGVwZW5kZW5jeSBvbiBD
b3JlRm91bmRhdGlvbiBmcm9tIERvd25sb2FkQnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAppbmRleCA1M2YyNTlhLi42OTIzMTg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTQxMzksOCArNDEzOSw4IEBAIExheW91dFBv
aW50IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQoY29uc3QgRmxv
YXRpbmdPYmplY3QqIGZsCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgLy8gRklYTUUgQnVn
IDEwMjk0ODogVGhpcyBvbmx5IHdvcmtzIGZvciBzaGFwZSBvdXRzaWRlIGRpcmVjdGx5IHNldCBv
biB0aGlzIGJsb2NrLgogICAgIFNoYXBlSW5zaWRlSW5mbyogc2hhcGVJbnNpZGVJbmZvID0gdGhp
cy0+c2hhcGVJbnNpZGVJbmZvKCk7Ci0gICAgLy8gRklYTUUgQnVnIDEwMjg0NjogVGFrZSBpbnRv
IGFjY291bnQgdGhlIGhlaWdodCBvZiB0aGUgY29udGVudC4gVGhlIG9mZnNldCBzaG91bGQgYmUK
LSAgICAvLyBlcXVhbCB0byB0aGUgbWF4aW11bSBzZWdtZW50IGxlbmd0aC4KKyAgICBpZiAoc2hh
cGVJbnNpZGVJbmZvKQorICAgICAgICBzaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0Zv
ckxpbmUobG9naWNhbFRvcE9mZnNldCwgY2hpbGRCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CiAgICAg
aWYgKHNoYXBlSW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkgJiYg
c2hhcGVJbnNpZGVJbmZvLT5zZWdtZW50cygpLnNpemUoKSA9PSAxKSB7CiAgICAgICAgIC8vIEZJ
WE1FIEJ1ZyAxMDI5NDk6IEFkZCBzdXBwb3J0IGZvciBzaGFwZXMgd2l0aCBtdWx0aXBlIHNlZ21l
bnRzLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211916</attachid>
            <date>2013-09-17 09:45:49 -0700</date>
            <delta_ts>2013-09-17 13:18:02 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>floatsleft.patch</filename>
            <type>text/plain</type>
            <size>38714</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMGZiZGJiLi45YjhmMDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDkt
MTYgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIFVzZSB0aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFw
ZS1pbnNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZsb2F0IHBvc2l0aW9uaW5nIGluc2lkZSBzaGFwZS1pbnNpZGUgaGFzIGJlZW4gd29ya2luZyBv
bmx5IGZvciBzaW1wbGUgY2FzZXMgd2hlbiB0aGUgZmxvYXQgYm91bmRhcmllcyBkaWRuJ3Qgb3Zl
cmxhcCB3aXRoIHRoZSBzaGFwZS4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgYmVoYXZp
b3IgZm9yIGxlZnQgZmxvYXRzIGFuZCBzaGFwZXMgd2l0aCBpbmxpbmUgY29udGVudC4gSSB3YW50
IHRvIGFkZCB0aGlzIHdvcmsgc3RlcCBieSBzdGVwLCB0aGVyZWZvcmUgdGhlIG5leHQKKyAgICAg
ICAgc3RlcCB3b3VsZCBiZSB0byBhZGQgc3VwcG9ydCBmb3IgYmxvY2sgY29udGVudCB3aXRoIGlu
bGluZSBjb250ZW50IChlLmcuIHBhcmFncmFwaHMpIHRoZW4gY292ZXIgY2FzZXMgd2l0aCByaWdo
dCBmbG9hdHMuCisKKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItbGVmdC10cmlhbmdsZS1pbmxpbmUtY29udGVudC1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItbGVmdC10cmlhbmdsZS1pbmxpbmUtY29udGVu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQt
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1j
b250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250
ZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGlu
ZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUt
Y29udGVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tdXBwZXItcmlnaHQtdHJpYW5nbGUt
aW5saW5lLWNvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDktMTYgIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc21pbC1sZWFr
LSouc3ZnIHRlc3RzIGFyZSBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFw
ZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJp
YW5nbGUtaW5saW5lLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hh
cGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi1sb3dlci1sZWZ0LXRy
aWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZmViZjkzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi1sb3dlci1s
ZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2NSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1zdmctc2hhcGUgeworICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9w
OiAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwgc2Fucy1z
ZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgcGFk
ZGluZy10b3A6IDIwcHg7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAg
d2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7
CisgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHll
bGxvdzsKKyAgICB9CisgICAgI3NpZGUtb2YtZmxvYXQgeworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIHRvcDogNzBweDsKKyAgICAgICAgbGVmdDogNTBweDsKKyAgICAgICAg
d2lkdGg6IDIwcHg7CisgICAgfQorICAgICNiZWxvdy1mbG9hdCB7CisgICAgICAgIHdpZHRoOiAy
MDBweDsKKyAgICAgICAgbWFyZ2luLXRvcDogNzBweDsKKworICAgIH0KKyAgICAjb3ZlcmZsb3cg
eworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CisgICAg
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNo
YXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdv
biBwb2ludHM9IjAsMCAyMDAsMjAwIDAsMjAwIiBmaWxsPSIjNjM2MzYzIj48L3BvbHlnb24+Cisg
ICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgWAorICAgICAg
ICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InNpZGUtb2YtZmxvYXQi
PlggWDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJiZWxvdy1mbG9hdCI+WCBYIFggPGJyLz4gWCBY
IFggPGJyLz4gWCBYIFggWCA8YnIvPiBYIFggWCBYPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Im92
ZXJmbG93Ij5YIFggWCBYIFggWDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHAgc3R5bGU9Im1h
cmdpbi10b3A6IDI1MHB4OyI+CisgICAgICBUaGVyZSBpcyBhIHRyaWFuZ2xlIHNoYXBlLWluc2lk
ZSAocmVwcmVzZW50ZWQgYnkgdGhlIG1hdGNoaW5nIGZpbGxlZCBTVkcgcG9seWdvbiksIHRoZSBz
aGFwZS1pbnNpZGUgY29udGFpbnMgYSA1MHg1MHB4IHllbGxvdyBmbG9hdCBsZWZ0LAorICAgICAg
dGhlIGZsb2F0IHNob3VsZCBiZSBhdCB0aGUgdmVyeSBsZWZ0IGFuZCB0b3AgcG9zaXRpb24gaW5z
aWRlIHRoZSB0cmlhbmdsZSBzaGFwZSB3aGVyZSBpdCBmaXRzIGZpcnN0LiBUaGUgaW5saW5lIGNv
bnRlbnQgc2hvdWxkIHN0YXJ0IGJlZm9yZSB0aGUKKyAgICAgIHllbGxvdyByZWN0YW5nbGUgYW5k
IHRoZW4gd3JhcCBhcm91bmQgaXQuIFRoZSBvdmVyZmxvdyBzaG91bGQgYmUgcHVzaGVkIHVuZGVy
IHRoZSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUuCisgICAgPC9wPgorICAgIDxwPkJ1ZyA8YSBocmVm
PSJodHRwOi8vd2Via2l0Lm9yZy9iLzEwMjg0NiI+MTAyODQ2PC9hPjogW0NTUyBTaGFwZXNdIFVz
ZSB0aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFwZS1pbnNpZGU8
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBl
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItbGVmdC10cmlh
bmdsZS1pbmxpbmUtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5nbGUtaW5s
aW5lLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTFi
MmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5nbGUtaW5saW5l
LWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
ICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4
OworICAgIH0KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMjBweCBBaGVtLCBz
YW5zLXNlcmlmOworICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKKyAgICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIC13ZWJraXQt
c2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBweCAwcHgsIDIwMHB4IDIwMHB4LCAwcHggMjAwcHgpOwor
ICAgIH0KKyAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0
OiA1MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
eWVsbG93OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c3ZnIGlkPSJw
b2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAg
ICAgICAgPHBvbHlnb24gcG9pbnRzPSIwLDAgMjAwLDIwMCAwLDIwMCIgZmlsbD0iIzYzNjM2MyI+
PC9wb2x5Z29uPgorICAgIDwvc3ZnPgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+QQorICAg
ICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+WCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFgg
WCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBw
eDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVk
IGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNv
bnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91
bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5n
bGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlubGluZSBjb250ZW50IHNob3VsZCBz
dGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJv
dW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUg
c2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtp
dC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhl
aWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1j
b250ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQtdHJpYW5nbGUtaW5saW5l
LWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wMmIwZTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xl
LWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9CisgICAgI3No
YXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAg
ICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgdGV4dC1hbGlnbjogcmln
aHQ7CisgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OworICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHdpZHRo
OiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAg
ICAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93
OworICAgIH0KKyAgICAjb3ZlcmZsb3cgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
IHRleHQtYWxpZ246IGxlZnQ7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwMCwwIDIwMCwyMDAgMCwyMDAiIGZp
bGw9IiM2MzYzNjMiPjwvcG9seWdvbj4KKyAgICA8L3N2Zz4KKyAgICA8ZGl2IGlkPSJzaGFwZS1p
bnNpZGUiPgorICAgICAgICBYPGJyLz4KKyAgICAgICAgPGRpdiBpZD0iZmxvYXQiPjwvZGl2Pgor
ICAgICAgICA8YnIvPjxici8+PGJyLz5YIFggWDxici8+CisgICAgICAgIFggWCBYJm5ic3A7PGJy
Lz4KKyAgICAgICAgWCBYIFggWDxici8+CisgICAgICAgIFggWCBYIFgmbmJzcDs8YnIvPgorICAg
ICAgICBYIFggWCBYIFg8YnIvPgorICAgICAgICA8ZGl2IGlkPSJvdmVyZmxvdyI+WCBYIFggWCBY
IFg8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsi
PgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5
IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRh
aW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91bGQg
YmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUg
c2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlubGluZSBjb250ZW50IHNob3VsZCBzdGFy
dCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5k
IGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hh
cGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5v
cmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdo
dCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2IwNWVkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwK
QEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1z
aGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisgICAg
I3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwgc2Fucy1zZXJpZjsKKyAg
ICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0
OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTog
cG9seWdvbigyMDBweCAwcHgsIDIwMHB4IDIwMHB4LCAwcHggMjAwcHgpOworICAgIH0KKyAgICAj
ZmxvYXQgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
ICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1z
aGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHln
b24gcG9pbnRzPSIyMDAsMCAyMDAsMjAwIDAsMjAwIiBmaWxsPSIjNjM2MzYzIj48L3BvbHlnb24+
CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBp
ZD0iZmxvYXQiPjwvZGl2PlggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBY
IFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsi
PgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5
IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRh
aW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91bGQg
YmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUg
c2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlubGluZSBjb250ZW50IHNob3VsZCBzdGFy
dCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5k
IGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hh
cGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5v
cmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdo
dCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXVwcGVyLWxlZnQtdHJpYW5nbGUtaW5saW5lLWNvbnRl
bnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250
ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZh
YjBmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGlu
ZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgICAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9CisgICAgI3NoYXBlLWlu
c2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGlu
ZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVm
dDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisgICAgI2Zsb2F0IHsKKyAgICAgICAg
d2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICB9CisgICAgI292ZXJmbG93
IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1z
aGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHln
b24gcG9pbnRzPSIwLDAgMjAwLDAgMCwyMDAiIGZpbGw9IiM2MzYzNjMiPjwvcG9seWdvbj4KKyAg
ICA8L3N2Zz4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJm
bG9hdCI+PC9kaXY+CisgICAgICAgIFggWCBYPGJyLz4KKyAgICAgICAgWCBYIFg8YnIvPgorICAg
ICAgICBYIFg8YnIvPgorICAgICAgICBYIFggWDxici8+CisgICAgICAgIFggWCBYPGJyLz4KKyAg
ICAgICAgWCBYPGJyLz4KKyAgICAgICAgWCBYPGJyLz4KKyAgICAgICAgWDxici8+CisgICAgICAg
IFg8YnIvPgorICAgICAgICA8ZGl2IGlkPSJvdmVyZmxvdyI+WCBYIFggWCBYIFg8L2Rpdj4KKyAg
ICA8L2Rpdj4KKworICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhl
cmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGlu
ZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBw
eCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZl
cnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUg
aXQgZml0cyBmaXJzdC4gVGhlIGlubGluZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhl
CisgICAgICB5ZWxsb3cgcmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3Zl
cmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgor
ICAgIDwvcD4KKyAgICA8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYi
PjEwMjg0NjwvYT46IFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1p
bmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1s
ZWZ0LWZsb2F0LWluLXVwcGVyLWxlZnQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9h
dC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3ZTFlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1p
bi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw0MSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNw
b2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
bGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7
CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWln
aHQ6IDIwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAg
IHRvcDogMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHggMHB4
LCAyMDBweCAwcHgsIDBweCAyMDBweCk7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHdp
ZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGZsb2F0OiBsZWZ0Owor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCAyMDAs
MCAwLDIwMCIgZmlsbD0iIzYzNjM2MyI+PC9wb2x5Z29uPgorICAgIDwvc3ZnPgorICAgIDxkaXYg
aWQ9InNoYXBlLWluc2lkZSI+QQorICAgICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+IFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFgKKyAgICA8L2Rpdj4K
KyAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjUwcHg7Ij4KKyAgICAgIFRoZXJlIGlzIGEgdHJp
YW5nbGUgc2hhcGUtaW5zaWRlIChyZXByZXNlbnRlZCBieSB0aGUgbWF0Y2hpbmcgZmlsbGVkIFNW
RyBwb2x5Z29uKSwgdGhlIHNoYXBlLWluc2lkZSBjb250YWlucyBhIDUweDUwcHggeWVsbG93IGZs
b2F0IGxlZnQsCisgICAgICB0aGUgZmxvYXQgc2hvdWxkIGJlIGF0IHRoZSB2ZXJ5IGxlZnQgYW5k
IHRvcCBwb3NpdGlvbiBpbnNpZGUgdGhlIHRyaWFuZ2xlIHNoYXBlIHdoZXJlIGl0IGZpdHMgZmly
c3QuIFRoZSBpbmxpbmUgY29udGVudCBzaG91bGQgc3RhcnQgYmVmb3JlIHRoZQorICAgICAgeWVs
bG93IHJlY3RhbmdsZSBhbmQgdGhlbiB3cmFwIGFyb3VuZCBpdC4gVGhlIG92ZXJmbG93IHNob3Vs
ZCBiZSBwdXNoZWQgdW5kZXIgdGhlIHRyaWFuZ2xlIHNoYXBlLWluc2lkZS4KKyAgICA8L3A+Cisg
ICAgPHA+QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvMTAyODQ2Ij4xMDI4NDY8L2E+
OiBbQ1NTIFNoYXBlc10gVXNlIHRoZSBmbG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBvc2l0aW9u
IGluIHNoYXBlLWluc2lkZTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1p
bi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0
LWluLXVwcGVyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc5ZDUxZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVm
dC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3BvbHln
b24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0
OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
IGhlaWdodDogMjAwcHg7CisgICAgfQorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBmb250
OiAyMHB4IEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAg
ICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHRl
eHQtYWxpZ246IHJpZ2h0OworICAgIH0KKyAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogNTBw
eDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAg
bWFyZ2luLWxlZnQ6IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAg
ICB9CisgICAgI292ZXJmbG93IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBtYXJn
aW4tdG9wOiAyMHB4OworICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIw
LDAgMjAwLDAgMjAwLDIwMCIgZmlsbD0iIzYzNjM2MyI+PC9wb2x5Z29uPgorICAgIDwvc3ZnPgor
ICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxkaXYgaWQ9ImZsb2F0Ij48L2Rp
dj4KKyAgICAgICAgWCBYIFg8YnIvPgorICAgICAgICBYIFggWDxici8+CisgICAgICAgIFggWCBY
PGJyLz4KKyAgICAgICAgWCBYIFgmbmJzcDs8YnIvPgorICAgICAgICBYIFggWDxici8+CisgICAg
ICAgIFggWCZuYnNwOzxici8+CisgICAgICAgIFggWDxici8+CisgICAgICAgIFgmbmJzcDs8YnIv
PgorICAgICAgICBYPGJyLz4KKyAgICAgICAgPGRpdiBpZD0ib3ZlcmZsb3ciPlggWCBYIFggWCBY
PC9kaXY+CisgICAgPC9kaXY+CisKKyAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjUwcHg7Ij4K
KyAgICAgIFRoZXJlIGlzIGEgdHJpYW5nbGUgc2hhcGUtaW5zaWRlIChyZXByZXNlbnRlZCBieSB0
aGUgbWF0Y2hpbmcgZmlsbGVkIFNWRyBwb2x5Z29uKSwgdGhlIHNoYXBlLWluc2lkZSBjb250YWlu
cyBhIDUweDUwcHggeWVsbG93IGZsb2F0IGxlZnQsCisgICAgICB0aGUgZmxvYXQgc2hvdWxkIGJl
IGF0IHRoZSB2ZXJ5IGxlZnQgYW5kIHRvcCBwb3NpdGlvbiBpbnNpZGUgdGhlIHRyaWFuZ2xlIHNo
YXBlIHdoZXJlIGl0IGZpdHMgZmlyc3QuIFRoZSBpbmxpbmUgY29udGVudCBzaG91bGQgc3RhcnQg
YmVmb3JlIHRoZQorICAgICAgeWVsbG93IHJlY3RhbmdsZSBhbmQgdGhlbiB3cmFwIGFyb3VuZCBp
dC4gVGhlIG92ZXJmbG93IHNob3VsZCBiZSBwdXNoZWQgdW5kZXIgdGhlIHRyaWFuZ2xlIHNoYXBl
LWluc2lkZS4KKyAgICA8L3A+CisgICAgPHA+QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3Jn
L2IvMTAyODQ2Ij4xMDI4NDY8L2E+OiBbQ1NTIFNoYXBlc10gVXNlIHRoZSBmbG9hdCBoZWlnaHQg
dG8gZGV0ZXJtaW5lIHBvc2l0aW9uIGluIHNoYXBlLWluc2lkZTwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1sZWZ0LWZsb2F0LWluLXVwcGVyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YjI0YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
bGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sCkBA
IC0wLDAgKzEsNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3BvbHlnb24tc2hh
cGUtaW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICAgICNz
aGFwZS1pbnNpZGUgeworICAgICAgICBmb250OiAyMHB4IEFoZW0sIHNhbnMtc2VyaWY7CisgICAg
ICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisgICAgICAgIGxpbmUtaGVpZ2h0OiAy
MHB4OworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6
IDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHBvbHlnb24oMHB4IDBweCwgMjAw
cHggMHB4LCAyMDBweCAyMDBweCk7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHdpZHRo
OiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGZsb2F0OiBsZWZ0OworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCAyMDAsMCAy
MDAsMjAwIiBmaWxsPSIjNjM2MzYzIj48L3BvbHlnb24+CisgICAgPC9zdmc+CisgICAgPGRpdiBp
ZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iZmxvYXQiPjwvZGl2PiBYIFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2
PgorICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0
cmlhbmdsZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQg
U1ZHIHBvbHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cg
ZmxvYXQgbGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBh
bmQgdG9wIHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBm
aXJzdC4gVGhlIGlubGluZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5
ZWxsb3cgcmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hv
dWxkIGJlIHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4K
KyAgICA8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0Njwv
YT46IFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRp
b24gaW4gc2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYz
MjI0ZjQuLjAwZGFmOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMy0wOS0xNiAg
Wm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIFNoYXBl
c10gVXNlIHRoZSBmbG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBvc2l0aW9uIGluIHNoYXBlLWlu
c2lkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
ODQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmxv
YXQgcG9zaXRpb25pbmcgaW5zaWRlIHNoYXBlLWluc2lkZSBoYXMgYmVlbiB3b3JraW5nIG9ubHkg
Zm9yIHNpbXBsZSBjYXNlcyB3aGVuIHRoZSBmbG9hdCBib3VuZGFyaWVzIGRpZG4ndCBvdmVybGFw
IHdpdGggdGhlIHNoYXBlLgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBiZWhhdmlvciBm
b3IgbGVmdCBmbG9hdHMgYW5kIHNoYXBlcyB3aXRoIGlubGluZSBjb250ZW50LiBJIHdhbnQgdG8g
YWRkIHRoaXMgd29yayBzdGVwIGJ5IHN0ZXAsIHRoZXJlZm9yZSB0aGUgbmV4dAorICAgICAgICBz
dGVwIHdvdWxkIGJlIHRvIGFkZCBzdXBwb3J0IGZvciBibG9jayBjb250ZW50IHdpdGggaW5saW5l
IGNvbnRlbnQgKGUuZy4gcGFyYWdyYXBocykgdGhlbiBjb3ZlciBjYXNlcyB3aXRoIHJpZ2h0IGZs
b2F0cy4KKworICAgICAgICBUZXN0czogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1s
ZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1m
bG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1p
bi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvTGluZVdpZHRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGlu
ZVdpZHRoKTogVXNlIHRoZSBuZXcgdXBkYXRlQ3VycmVudExpbmVTZWdtZW50IG1lbWJlciBmdW5j
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6dXBkYXRlQ3VycmVudExpbmVTZWdt
ZW50KTogV2UgbmVlZCBhIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgY3VycmVudCBsaW5lIHNlZ21l
bnQncyByZWZlcmVuY2UsIHNpbmNlIHdlIHVzZSBpdCBtdWx0aXBsZSBwbGFjZXMuCisgICAgICAg
ICogcmVuZGVyaW5nL0xpbmVXaWR0aC5oOiBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbi4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9hdCk6IEZpeCBwb3NpdGlvbmluZyBv
ZiBhIGZsb2F0aW5nIGVsZW1lbnQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVB
bmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIHVwZGF0ZVNlZ21lbnRzRm9yTGluZSBpbnN0
ZWFkIG9mIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lSW5GbG93VGhyZWFkKTog
VXNlIHVwZGF0ZVNlZ21lbnRzRm9yTGluZSBpbnN0ZWFkIG9mIGNvbXB1dGVTZWdtZW50c0Zvckxp
bmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRqdXN0TG9naWNhbExpbmVUb3BB
bmRMb2dpY2FsSGVpZ2h0SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0TGluZVRv
cEFuZEJsb2NrTG9naWNhbEhlaWdodEZvclNoYXBlSW5zaWRlV2l0aEZsb2F0cyk6IEFmdGVyIG91
ciBmbG9hdCBpcyBwb3NpdGlvbmVkLCB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgY3VycmVudCBsaW5l
VG9wIGFuZAorICAgICAgICB1cGRhdGUgdGhlIGxvZ2ljYWwgaGVpZ2h0IHRvIGJlIGFibGUgdG8g
d3JhcCBhcm91bmQgdGhlIGZsb2F0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Okxp
bmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKTogSWYgd2UgaGF2ZSBhIGZsb2F0IGluIG91ciBs
aW5lIHdlIG1pZ2h0IG5lZWQgdG8gYWRqdXN0IG91ciBsaW5lVG9wIGFuZCBsb2dpY2FsSGVpZ2h0
LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IEFkZCBuZXcgY29uc3QgZnVuY3Rpb24g
dG8gY29tcHV0ZSB0aGUgc2VnbWVudHMuIEknZCBsaWtlIG1ha2UgdGhpcyBmdW5jdGlvbiBzdGF0
aWMgbGF0ZXIgaWYgcG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjo6OnVwZGF0ZVNlZ21lbnRz
Rm9yTGluZSk6IE9sZCBjb21wdXRlU2VnbWVudHNGb3JMaW5lLCBjaGFuZ2UgbmFtZSB0byBpbmRp
Y2F0ZSB0aGF0IGl0IGlzIGFjdHVhbGx5IGNoYW5naW5nIHRoaW5ncy4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oOiBVcGRhdGUgZnVuY3Rpb24gbmFtZXMsIGFkZCBkZWNs
YXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y2xlYXJTZWdtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OmxvZ2ljYWxMaW5lQm90dG9tKToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXBlSW5mbzo6bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdCk6IENvbXB1
dGUgdGhlIGZpcnN0IGZpdCBwb3NpdGlvbiBiZWxvdyB0aGUgY3VycmVudCBsaW5lIHBvc2l0aW9u
IGluc2lkZSBzaGFwZXMuIEkgY2FsbGVkIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgdGhpcyB3YXks
IGJlY2F1c2UgY3VycmVudGx5IHdlIHVzZSBpdCBvbmx5IGZvciBzaGFwZXMuCisgICAgICAgICog
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaDogVXBkYXRlIGZ1bmN0aW9uIG5hbWVz
LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6IFVwZGF0
ZSBmdW5jdGlvbiBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlT3V0c2lkZUluZm86OmNv
bXB1dGVTZWdtZW50c0ZvckNvbnRhaW5pbmdCbG9ja0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcGVPdXRzaWRlSW5mbzo6dXBkYXRlU2VnbWVudHNGb3JMaW5lKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaDogVXBkYXRlIGZ1bmN0aW9uIG5hbWVzLgor
CiAyMDEzLTA5LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWVzc2FnZVF1ZXVlIHNob3VsZCB1c2UgYSBEZXF1ZSBvZiBPd25QdHJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGluZVdpZHRoLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCmluZGV4IGNjNGZlZmIuLmMxYTU1MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCkBAIC00OSw4ICs0OSw3IEBAIExpbmVX
aWR0aDo6TGluZVdpZHRoKFJlbmRlckJsb2NrJiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSwgSW5k
ZW50VGV4dE9yTm90IHNob3VsCiAgICAgLCBtX3Nob3VsZEluZGVudFRleHQoc2hvdWxkSW5kZW50
VGV4dCkKIHsKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICBpZiAoU2hhcGVJbnNpZGVJbmZv
KiBzaGFwZUluc2lkZUluZm8gPSBtX2Jsb2NrLmxheW91dFNoYXBlSW5zaWRlSW5mbygpKQotICAg
ICAgICBtX3NlZ21lbnQgPSBzaGFwZUluc2lkZUluZm8tPmN1cnJlbnRTZWdtZW50KCk7CisgICAg
dXBkYXRlQ3VycmVudExpbmVTZWdtZW50KCk7CiAjZW5kaWYKICAgICB1cGRhdGVBdmFpbGFibGVX
aWR0aCgpOwogfQpAQCAtMjA0LDYgKzIwMywxMiBAQCB2b2lkIExpbmVXaWR0aDo6c2V0VHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgoZmxvYXQgY29sbGFwc2VkV2hpdGVzcGFjZSwgZmxvYXQgYm9yZAog
ICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSBjb2xsYXBzZWRXaGl0ZXNwYWNlICsgYm9y
ZGVyUGFkZGluZ01hcmdpbjsKIH0KIAordm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUN1cnJlbnRMaW5l
U2VnbWVudCgpCit7CisgICAgaWYgKFNoYXBlSW5zaWRlSW5mbyogc2hhcGVJbnNpZGVJbmZvID0g
bV9ibG9jay5sYXlvdXRTaGFwZUluc2lkZUluZm8oKSkKKyAgICAgICAgbV9zZWdtZW50ID0gc2hh
cGVJbnNpZGVJbmZvLT5jdXJyZW50U2VnbWVudCgpOworfQorCiB2b2lkIExpbmVXaWR0aDo6Y29t
cHV0ZUF2YWlsYWJsZVdpZHRoRnJvbUxlZnRBbmRSaWdodCgpCiB7CiAgICAgbV9hdmFpbGFibGVX
aWR0aCA9IG1heCgwLjBmLCBtX3JpZ2h0IC0gbV9sZWZ0KSArIG1fb3ZlcmhhbmdXaWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguaAppbmRleCA0YmFmZWNmLi5hZTllMzNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGluZVdpZHRoLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xpbmVXaWR0aC5oCkBAIC03MCw2ICs3MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGZpdEJlbG93RmxvYXRzKCk7CiAgICAgdm9pZCBzZXRUcmFpbGluZ1doaXRlc3Bh
Y2VXaWR0aChmbG9hdCBjb2xsYXBzZWRXaGl0ZXNwYWNlLCBmbG9hdCBib3JkZXJQYWRkaW5nTWFy
Z2luID0gMCk7CiAKKyAgICB2b2lkIHVwZGF0ZUN1cnJlbnRMaW5lU2VnbWVudCgpOworCiAgICAg
Ym9vbCBzaG91bGRJbmRlbnRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRJbmRlbnRUZXh0
ID09IEluZGVudFRleHQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IDAwOTFiNDMuLjNlZGIwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzM3NiwxNCArMzM3NiwyMCBAQCBMYXlvdXRQb2lu
dCBSZW5kZXJCbG9jazo6Y29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KGNvbnN0IEZsb2F0
aW5nT2JqZWN0KiBmbAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIC8vIEZJWE1FIEJ1ZyAx
MDI5NDg6IFRoaXMgb25seSB3b3JrcyBmb3Igc2hhcGUgb3V0c2lkZSBkaXJlY3RseSBzZXQgb24g
dGhpcyBibG9jay4KICAgICBTaGFwZUluc2lkZUluZm8qIHNoYXBlSW5zaWRlSW5mbyA9IHRoaXMt
PnNoYXBlSW5zaWRlSW5mbygpOwotICAgIC8vIEZJWE1FIEJ1ZyAxMDI4NDY6IFRha2UgaW50byBh
Y2NvdW50IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQuIFRoZSBvZmZzZXQgc2hvdWxkIGJlCi0g
ICAgLy8gZXF1YWwgdG8gdGhlIG1heGltdW0gc2VnbWVudCBsZW5ndGguCi0gICAgaWYgKHNoYXBl
SW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkgJiYgc2hhcGVJbnNp
ZGVJbmZvLT5zZWdtZW50cygpLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgIC8vIEZJWE1FIEJ1ZyAx
MDI5NDk6IEFkZCBzdXBwb3J0IGZvciBzaGFwZXMgd2l0aCBtdWx0aXBlIHNlZ21lbnRzLgorICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgYmVoYXZpb3IgZm9yIHJpZ2h0IGZsb2F0cy4KKyAgICBpZiAo
c2hhcGVJbnNpZGVJbmZvKSB7CisgICAgICAgIC8vIEZJWE1FOiBJZiB0aGUgZmxvYXQgZG9lc24n
dCBmaXQgaW4gdGhlIHNoYXBlIHdlIHNob3VsZCBwdXNoIGl0IHVuZGVyIHRoZSBjb250ZW50IGJv
eAorICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0ID0gc2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlRmly
c3RGaXRQb3NpdGlvbkZvckZsb2F0KExheW91dFNpemUoZmxvYXRpbmdPYmplY3QtPndpZHRoKCks
IGZsb2F0aW5nT2JqZWN0LT5oZWlnaHQoKSkpOworICAgICAgICBpZiAobG9naWNhbEhlaWdodCgp
ID4gbG9naWNhbFRvcE9mZnNldCkKKyAgICAgICAgICAgIGxvZ2ljYWxUb3BPZmZzZXQgPSBsb2dp
Y2FsSGVpZ2h0KCk7CiAKLSAgICAgICAgLy8gVGhlIHNlZ21lbnQgb2Zmc2V0cyBhcmUgcmVsYXRp
dmUgdG8gdGhlIGNvbnRlbnQgYm94LgotICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgPSBsb2dp
Y2FsTGVmdE9mZnNldCArIHNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmln
aHQ7Ci0gICAgICAgIGxvZ2ljYWxMZWZ0T2Zmc2V0ICs9IHNoYXBlSW5zaWRlSW5mby0+c2VnbWVu
dHMoKVswXS5sb2dpY2FsTGVmdDsKKyAgICAgICAgU2VnbWVudExpc3Qgc2VnbWVudHMgPSBzaGFw
ZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobG9naWNhbFRvcE9mZnNldCwgY2hp
bGRCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDI5NDk6IEFk
ZCBzdXBwb3J0IGZvciBzaGFwZXMgd2l0aCBtdWx0aXBlIHNlZ21lbnRzLgorICAgICAgICBpZiAo
c2VnbWVudHMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgICAgIC8vIFRoZSBzZWdtZW50IG9mZnNl
dHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjb250ZW50IGJveC4KKyAgICAgICAgICAgIGxvZ2ljYWxS
aWdodE9mZnNldCA9IGxvZ2ljYWxMZWZ0T2Zmc2V0ICsgc2VnbWVudHNbMF0ubG9naWNhbFJpZ2h0
OworICAgICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gc2VnbWVudHNbMF0ubG9naWNhbExl
ZnQ7CisgICAgICAgIH0KICAgICB9IGVsc2UKICNlbmRpZgogICAgICAgICBsb2dpY2FsUmlnaHRP
ZmZzZXQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KGxvZ2ljYWxUb3BPZmZzZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAppbmRleCA2YTlkZDU0Li5hZjRlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBl
SW5zaWRlSW5mbyomIHNoYXBlSW4KICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQgPSB0aGlzLT5s
aW5lSGVpZ2h0KGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNGaXJzdExpbmUoKSwgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlv
bk9mSW50ZXJpb3JMaW5lQm94ZXMpOwogCiAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTogSXQgaXMg
cG9zc2libGUgZm9yIGEgbGluZSB0byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3aGljaCBj
YXNlIHRoZXNlIHNlZ21lbnRzIG1heSBiZSBpbmNvcnJlY3QuCi0gICAgc2hhcGVJbnNpZGVJbmZv
LT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFNpemUobGluZUxlZnQsIGxpbmVUb3ApLCBs
aW5lSGVpZ2h0KTsKKyAgICBzaGFwZUluc2lkZUluZm8tPnVwZGF0ZVNlZ21lbnRzRm9yTGluZShM
YXlvdXRTaXplKGxpbmVMZWZ0LCBsaW5lVG9wKSwgbGluZUhlaWdodCk7CiAKICAgICBwdXNoU2hh
cGVDb250ZW50T3ZlcmZsb3dCZWxvd1RoZUNvbnRlbnRCb3godGhpcywgc2hhcGVJbnNpZGVJbmZv
LCBsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKIH0KQEAgLTE0MjAsNyArMTQyMCw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVh
ZChTaGFwZUluc2lkZUluCiAgICAgTGF5b3V0VW5pdCBsaW5lVG9wID0gbG9naWNhbExpbmVUb3BJ
bkZsb3dUaHJlYWQgLSBjdXJyZW50UmVnaW9uLT5sb2dpY2FsVG9wRm9yRmxvd1RocmVhZENvbnRl
bnQoKSArIGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKIAogICAgIC8v
IEZJWE1FOiAxMTg1NzEgLSBTaGFwZSBpbnNpZGUgb24gYSByZWdpb24gZG9lcyBub3QgeWV0IHRh
a2UgaW50byBhY2NvdW50IGl0cyBwYWRkaW5nIGZvciBuZXN0ZWQgZmxvdyBibG9ja3MKLSAgICBz
aGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZSgwLCBsaW5l
VG9wKSwgbGluZUhlaWdodCk7CisgICAgc2hhcGVJbnNpZGVJbmZvLT51cGRhdGVTZWdtZW50c0Zv
ckxpbmUoTGF5b3V0U2l6ZSgwLCBsaW5lVG9wKSwgbGluZUhlaWdodCk7CiAKICAgICBpZiAoY3Vy
cmVudFJlZ2lvbi0+aXNMYXN0UmVnaW9uKCkpCiAgICAgICAgIHB1c2hTaGFwZUNvbnRlbnRPdmVy
Zmxvd0JlbG93VGhlQ29udGVudEJveCh0aGlzLCBzaGFwZUluc2lkZUluZm8sIGxpbmVUb3AsIGxp
bmVIZWlnaHQpOwpAQCAtMTQzOSw3ICsxNDM5LDYgQEAgYm9vbCBSZW5kZXJCbG9jazo6YWRqdXN0
TG9naWNhbExpbmVUb3BBbmRMb2dpY2FsSGVpZ2h0SWZOZWVkZWQoU2hhcGVJbnNpZGVJbmZvKgog
ICAgICAgICBuZXdMb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwogICAgIH0KIAotCiAg
ICAgZW5kID0gcmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQo
KSwgbmV3TG9naWNhbEhlaWdodCwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgcmVzb2x2ZXIs
IGVuZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNTcyLDYgKzI1NzEsMzIgQEAgc3RhdGlj
IGJvb2wgY2FuQnJlYWtBdFRoaXNQb3NpdGlvbihib29sIGF1dG9XcmFwLCBMaW5lV2lkdGgmIHdp
ZHRoLCBJbmxpbmVJdGVyYXQKICAgICByZXR1cm4gY2FuQnJlYWtIZXJlOwogfQogCitzdGF0aWMg
dm9pZCBhZGp1c3RMaW5lVG9wQW5kQmxvY2tMb2dpY2FsSGVpZ2h0Rm9yU2hhcGVJbnNpZGVXaXRo
RmxvYXRzKFJlbmRlckJsb2NrKiBibG9jaywgY29uc3QgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9h
dEZyb21QcmV2aW91c0xpbmUsIGNvbnN0IFdvcmRNZWFzdXJlbWVudHMmIHdvcmRNZWFzdXJlbWVu
dHMsIExpbmVXaWR0aCYgd2lkdGgsIGJvb2wgaXNGaXJzdExpbmUpCit7CisgICAgQVNTRVJUKGxh
c3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOworCisgICAgU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUlu
c2lkZUluZm8gPSBibG9jay0+bGF5b3V0U2hhcGVJbnNpZGVJbmZvKCk7CisgICAgTGF5b3V0VW5p
dCBsaW5lTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHRGb3JMaW5lKGJsb2NrLCBpc0ZpcnN0
TGluZSk7CisgICAgYm9vbCBsaW5lT3ZlcmxhcHNXaXRoRmxvYXQgPSBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lLT55KCkgPCAoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSArIGxpbmVMb2dpY2FsSGVp
Z2h0KSAmJiAoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSA8IGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUtPm1heFkoKSk7CisKKyAgICBpZiAoIXNoYXBlSW5zaWRlSW5mbyB8fCAhbGluZU92ZXJsYXBz
V2l0aEZsb2F0KQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9hdCBtaW5XaWR0aCA9IGZpcnN0
UG9zaXRpdmVXaWR0aCh3b3JkTWVhc3VyZW1lbnRzKTsKKworICAgIGlmICgoYmxvY2stPndpZHRo
KCkgLSBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLT5tYXhYKCkpIDwgbWluV2lkdGgpCisgICAg
ICAgIGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUtPm1h
eFkoKSk7CisKKyAgICBpZiAoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSA8IGxhc3RGbG9hdEZyb21Q
cmV2aW91c0xpbmUtPnkoKSkgeworICAgICAgICBzaGFwZUluc2lkZUluZm8tPmFkanVzdExvZ2lj
YWxMaW5lVG9wKG1pbldpZHRoICsgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZS0+d2lkdGgoKSk7
CisgICAgICAgIGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KHNoYXBlSW5zaWRlSW5mby0+bG9naWNh
bExpbmVUb3AoKSk7CisgICAgfQorCisgICAgc2hhcGVJbnNpZGVJbmZvLT51cGRhdGVTZWdtZW50
c0ZvckxpbmUoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgbGluZUxvZ2ljYWxIZWlnaHQpOworICAg
IHdpZHRoLnVwZGF0ZUN1cnJlbnRMaW5lU2VnbWVudCgpOworICAgIHdpZHRoLnVwZGF0ZUF2YWls
YWJsZVdpZHRoKCk7Cit9CisKIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtl
cjo6bmV4dFNlZ21lbnRCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBMaW5lSW5m
byYgbGluZUluZm8sIFJlbmRlclRleHRJbmZvJiByZW5kZXJUZXh0SW5mbywgRmxvYXRpbmdPYmpl
Y3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHVuc2lnbmVkIGNvbnNlY3V0aXZlSHlwaGVu
YXRlZExpbmVzLCBXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3VyZW1lbnRzKQogewogICAgIHJl
c2V0KCk7CkBAIC0yOTEwLDcgKzI5MzUsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6
TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZQogICAg
ICAgICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQucmVuZGVyZXIgPSB0OwogICAgICAgICAg
ICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQuZW5kT2Zmc2V0ID0gY3VycmVudC5tX3BvczsKICAg
ICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0ID0gbGFzdFNwYWNl
OwotICAgICAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgICAgICBmbG9hdCBhZGRp
dGlvbmFsVGVtcFdpZHRoOwogICAgICAgICAgICAgICAgICAgICBpZiAod29yZFRyYWlsaW5nU3Bh
Y2VXaWR0aCAmJiBjID09ICcgJykKICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxU
ZW1wV2lkdGggPSB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zICsgMSAtIGxh
c3RTcGFjZSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VX
aGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91dCkgLSB3
b3JkVHJhaWxpbmdTcGFjZVdpZHRoOwpAQCAtMjkzMyw2ICsyOTU4LDkgQEAgSW5saW5lSXRlcmF0
b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlS
ZXNvbHZlciYgcmUKICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRTdGFydFdpZHRoID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgICAgIGlmIChs
YXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0
TGluZVRvcEFuZEJsb2NrTG9naWNhbEhlaWdodEZvclNoYXBlSW5zaWRlV2l0aEZsb2F0cyhtX2Js
b2NrLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCB3b3JkTWVhc3VyZW1lbnRzLCB3aWR0aCwg
bGluZUluZm8uaXNGaXJzdExpbmUoKSk7CisKICAgICAgICAgICAgICAgICAgICAgYXBwbHlXb3Jk
U3BhY2luZyA9IHdvcmRTcGFjaW5nICYmIGN1cnJlbnRDaGFyYWN0ZXJJc1NwYWNlOwogCiAgICAg
ICAgICAgICAgICAgICAgIGlmICghd2lkdGguY29tbWl0dGVkV2lkdGgoKSAmJiBhdXRvV3JhcCAm
JiAhd2lkdGguZml0c09uTGluZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZUluZm8uY3BwCmluZGV4IGE5Y2ZlYjUuLmU3YmI1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKQEAgLTY5LDcgKzY5LDIzIEBAIGNv
bnN0IFNoYXBlKiBTaGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVkU2hhcGUoKSBjb25zdAog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBSZW5kZXJUeXBlPgotYm9vbCBTaGFwZUluZm88UmVuZGVyVHlw
ZT46OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0
IGxpbmVIZWlnaHQpCitTZWdtZW50TGlzdCBTaGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVT
ZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQp
IGNvbnN0Cit7CisgICAgQVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7CisgICAgU2VnbWVudExpc3Qg
c2VnbWVudHM7CisKKyAgICBnZXRJbnRlcnZhbHMoKGxpbmVUb3AgLSBsb2dpY2FsVG9wT2Zmc2V0
KCkpLCBzdGQ6Om1pbihsaW5lSGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3Ap
LCBzZWdtZW50cyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNlZ21lbnRzLnNpemUo
KTsgaSsrKSB7CisgICAgICAgIHNlZ21lbnRzW2ldLmxvZ2ljYWxMZWZ0ICs9IGxvZ2ljYWxMZWZ0
T2Zmc2V0KCk7CisgICAgICAgIHNlZ21lbnRzW2ldLmxvZ2ljYWxSaWdodCArPSBsb2dpY2FsTGVm
dE9mZnNldCgpOworICAgIH0KKworICAgIHJldHVybiBzZWdtZW50czsKK30KKwordGVtcGxhdGU8
Y2xhc3MgUmVuZGVyVHlwZT4KK2Jvb2wgU2hhcGVJbmZvPFJlbmRlclR5cGU+Ojp1cGRhdGVTZWdt
ZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCiB7
CiAgICAgQVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7CiAgICAgbV9zaGFwZUxpbmVUb3AgPSBsaW5l
VG9wIC0gbG9naWNhbFRvcE9mZnNldCgpOwpAQCAtNzcsMTMgKzkzLDcgQEAgYm9vbCBTaGFwZUlu
Zm88UmVuZGVyVHlwZT46OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9w
LCBMYXlvdXRVbmkKICAgICBtX3NlZ21lbnRzLmNsZWFyKCk7CiAKICAgICBpZiAobGluZU92ZXJs
YXBzU2hhcGVCb3VuZHMoKSkKLSAgICAgICAgZ2V0SW50ZXJ2YWxzKG1fc2hhcGVMaW5lVG9wLCBz
dGQ6Om1pbihtX2xpbmVIZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGluZVRvcCksIG1f
c2VnbWVudHMpOwotCi0gICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldCA9IHRoaXMtPmxv
Z2ljYWxMZWZ0T2Zmc2V0KCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRz
LnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbExlZnQgKz0gbG9n
aWNhbExlZnRPZmZzZXQ7Ci0gICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0ICs9IGxv
Z2ljYWxMZWZ0T2Zmc2V0OwotICAgIH0KKyAgICAgICAgbV9zZWdtZW50cyA9IGNvbXB1dGVTZWdt
ZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodCk7CiAKICAgICByZXR1cm4gbV9zZWdtZW50
cy5zaXplKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8u
aAppbmRleCBlMjExOTE2Li45NmFmMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGVJbmZvLmgKQEAgLTgzLDcgKzgzLDggQEAgcHVibGljOgogICAgICAgICBtX3No
YXBlTG9naWNhbFNpemUgPSBuZXdMb2dpY2FsU2l6ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCk7CisgICAgU2VnbWVudExpc3QgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlv
dXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIHVwZGF0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVu
aXQgbGluZUhlaWdodCk7CiAgICAgdm9pZCBjbGVhclNlZ21lbnRzKCkgeyBtX3NlZ21lbnRzLmNs
ZWFyKCk7IH0KIAogICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1
cm4gY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKSArIGxvZ2ljYWxUb3BPZmZz
ZXQoKTsgfQpAQCAtOTUsMTAgKzk2LDEyIEBAIHB1YmxpYzoKIAogICAgIExheW91dFVuaXQgbG9n
aWNhbExpbmVUb3AoKSBjb25zdCB7IHJldHVybiBtX3NoYXBlTGluZVRvcCArIGxvZ2ljYWxUb3BP
ZmZzZXQoKTsgfQogICAgIExheW91dFVuaXQgbG9naWNhbExpbmVCb3R0b20oKSBjb25zdCB7IHJl
dHVybiBtX3NoYXBlTGluZVRvcCArIG1fbGluZUhlaWdodCArIGxvZ2ljYWxUb3BPZmZzZXQoKTsg
fQorICAgIExheW91dFVuaXQgbG9naWNhbExpbmVCb3R0b20oTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KSBjb25zdCB7IHJldHVybiBtX3NoYXBlTGluZVRvcCArIGxpbmVIZWlnaHQgKyBsb2dpY2FsVG9w
T2Zmc2V0KCk7IH0KIAogICAgIExheW91dFVuaXQgc2hhcGVDb250YWluaW5nQmxvY2tMb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gKG1fcmVuZGVyZXItPnN0eWxlKCktPmJveFNpemluZygp
ID09IENPTlRFTlRfQk9YKSA/IChtX3NoYXBlTG9naWNhbFNpemUuaGVpZ2h0KCkgKyBtX3JlbmRl
cmVyLT5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpKSA6IG1fc2hhcGVMb2dpY2FsU2l6
ZS5oZWlnaHQoKTsgfQogCiAgICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0
IHsgcmV0dXJuIGxvZ2ljYWxMaW5lVG9wKCkgPCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAmJiBzaGFw
ZUxvZ2ljYWxUb3AoKSA8PSBsb2dpY2FsTGluZUJvdHRvbSgpOyB9CisgICAgYm9vbCBsaW5lT3Zl
cmxhcHNTaGFwZUJvdW5kcyhMYXlvdXRVbml0IGxpbmVIZWlnaHQpIGNvbnN0IHsgcmV0dXJuIGxv
Z2ljYWxMaW5lVG9wKCkgPCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAmJiBzaGFwZUxvZ2ljYWxUb3Ao
KSA8PSBsb2dpY2FsTGluZUJvdHRvbShsaW5lSGVpZ2h0KTsgfQogCiAgICAgdm9pZCBkaXJ0eVNo
YXBlU2l6ZSgpIHsgbV9zaGFwZS5jbGVhcigpOyB9CiAgICAgYm9vbCBzaGFwZVNpemVEaXJ0eSgp
IHsgcmV0dXJuICFtX3NoYXBlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAKaW5kZXggY2JlZjk0Yy4uYjhjYmVmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUlu
Zm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJ
bmZvLmNwcApAQCAtODEsNSArODEsMTcgQEAgU2hhcGVWYWx1ZSogU2hhcGVJbnNpZGVJbmZvOjpz
aGFwZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2
ZWRTaGFwZUluc2lkZSgpOwogfQogCitMYXlvdXRVbml0IFNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0
ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdChjb25zdCBMYXlvdXRTaXplIGZsb2F0U2l6ZSkgY29u
c3QKK3sKKyAgICBpZiAoIWNvbXB1dGVkU2hhcGUoKSB8fCAhZmxvYXRTaXplLndpZHRoKCkgfHwg
c2hhcGVMb2dpY2FsQm90dG9tKCkgPCBsb2dpY2FsTGluZVRvcCgpKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIExheW91dFVuaXQgZmlyc3RGaXRQb3NpdGlvbiA9IDA7CisgICAgaWYgKGNvbXB1
dGVkU2hhcGUoKS0+Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX3NoYXBlTGluZVRv
cCwgZmxvYXRTaXplLCBmaXJzdEZpdFBvc2l0aW9uKSAmJiAobV9zaGFwZUxpbmVUb3AgPD0gZmly
c3RGaXRQb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmaXJzdEZpdFBvc2l0aW9uOworCisgICAg
cmV0dXJuIDA7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggYzljMjcyMC4uNDM1N2ZlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCkBA
IC02OCwxMCArNjgsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkRm9y
KGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcik7CiAKLSAgICBib29sIGNvbXB1dGVTZWdtZW50
c0ZvckxpbmUoTGF5b3V0U2l6ZSBsaW5lT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCisg
ICAgYm9vbCB1cGRhdGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZSBsaW5lT2Zmc2V0LCBMYXlv
dXRVbml0IGxpbmVIZWlnaHQpCiAgICAgewogICAgICAgICBtX3NlZ21lbnRSYW5nZXMuY2xlYXIo
KTsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBTaGFwZUluZm88UmVuZGVyQmxvY2s+Ojpjb21wdXRl
U2VnbWVudHNGb3JMaW5lKGxpbmVPZmZzZXQuaGVpZ2h0KCksIGxpbmVIZWlnaHQpOworICAgICAg
ICBib29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaz46OnVwZGF0ZVNlZ21lbnRzRm9y
TGluZShsaW5lT2Zmc2V0LmhlaWdodCgpLCBsaW5lSGVpZ2h0KTsKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICBtX3Nl
Z21lbnRzW2ldLmxvZ2ljYWxMZWZ0IC09IGxpbmVPZmZzZXQud2lkdGgoKTsKICAgICAgICAgICAg
IG1fc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0IC09IGxpbmVPZmZzZXQud2lkdGgoKTsKQEAgLTc5
LDEwICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9w
LCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpIE9WRVJSSURFCisgICAgdmlydHVhbCBib29sIHVwZGF0
ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdo
dCkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwotICAg
ICAgICByZXR1cm4gU2hhcGVJbmZvPFJlbmRlckJsb2NrPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIFNoYXBlSW5mbzxSZW5kZXJC
bG9jaz46OnVwZGF0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKICAgICB9
CiAKICAgICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3QKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiAmbV9zZWdtZW50c1ttX3NlZ21lbnRSYW5nZXMuc2l6ZSgpXTsK
ICAgICB9CiAgICAgYm9vbCBhZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lk
dGgpOworICAgIExheW91dFVuaXQgY29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdChjb25z
dCBMYXlvdXRTaXplKSBjb25zdDsKIAogICAgIHZvaWQgc2V0TmVlZHNMYXlvdXQoYm9vbCB2YWx1
ZSkgeyBtX25lZWRzTGF5b3V0ID0gdmFsdWU7IH0KICAgICBib29sIG5lZWRzTGF5b3V0KCkgeyBy
ZXR1cm4gbV9uZWVkc0xheW91dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggZWMwZDNlYy4uNjA4MGQ3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUlu
Zm8uY3BwCkBAIC01NSwxMyArNTUsMTMgQEAgYm9vbCBTaGFwZU91dHNpZGVJbmZvOjppc0VuYWJs
ZWRGb3IoY29uc3QgUmVuZGVyQm94KiBib3gpCiBib29sIFNoYXBlT3V0c2lkZUluZm86OmNvbXB1
dGVTZWdtZW50c0ZvckNvbnRhaW5pbmdCbG9ja0xpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlv
dXRVbml0IGZsb2F0VG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5p
dCBsaW5lVG9wSW5TaGFwZUNvb3JkaW5hdGVzID0gbGluZVRvcCAtIGZsb2F0VG9wICsgbG9naWNh
bFRvcE9mZnNldCgpOwotICAgIHJldHVybiBjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3BJ
blNoYXBlQ29vcmRpbmF0ZXMsIGxpbmVIZWlnaHQpOworICAgIHJldHVybiB1cGRhdGVTZWdtZW50
c0ZvckxpbmUobGluZVRvcEluU2hhcGVDb29yZGluYXRlcywgbGluZUhlaWdodCk7CiB9CiAKLWJv
b2wgU2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKK2Jvb2wgU2hhcGVPdXRzaWRlSW5mbzo6dXBk
YXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KQogewogICAgIGlmIChzaGFwZVNpemVEaXJ0eSgpIHx8IG1fbGluZVRvcCAhPSBsaW5lVG9w
IHx8IG1fbGluZUhlaWdodCAhPSBsaW5lSGVpZ2h0KSB7Ci0gICAgICAgIGlmIChTaGFwZUluZm88
UmVuZGVyQm94Pjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KSkg
eworICAgICAgICBpZiAoU2hhcGVJbmZvPFJlbmRlckJveD46OnVwZGF0ZVNlZ21lbnRzRm9yTGlu
ZShsaW5lVG9wLCBsaW5lSGVpZ2h0KSkgewogICAgICAgICAgICAgbV9sZWZ0U2VnbWVudE1hcmdp
bkJveERlbHRhID0gbV9zZWdtZW50c1swXS5sb2dpY2FsTGVmdCArIG1fcmVuZGVyZXItPm1hcmdp
blN0YXJ0KCk7CiAgICAgICAgICAgICBtX3JpZ2h0U2VnbWVudE1hcmdpbkJveERlbHRhID0gbV9z
ZWdtZW50c1ttX3NlZ21lbnRzLnNpemUoKS0xXS5sb2dpY2FsUmlnaHQgLSBtX3JlbmRlcmVyLT5s
b2dpY2FsV2lkdGgoKSAtIG1fcmVuZGVyZXItPm1hcmdpbkVuZCgpOwogICAgICAgICB9IGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNp
ZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUlu
Zm8uaAppbmRleCA3NmIyMjBlLi5lMmFkNjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaApAQCAtNDUsNyArNDUsNyBAQCBwdWJs
aWM6CiAgICAgTGF5b3V0VW5pdCByaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmlnaHRTZWdtZW50TWFyZ2luQm94RGVsdGE7IH0KIAogICAgIGJvb2wgY29tcHV0
ZVNlZ21lbnRzRm9yQ29udGFpbmluZ0Jsb2NrTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91
dFVuaXQgZmxvYXRUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCk7Ci0gICAgdmlydHVhbCBib29s
IGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxp
bmVIZWlnaHQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVTZWdtZW50c0Zvckxp
bmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpIE9WRVJSSURFOwog
CiAgICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGVPdXRzaWRlSW5mbz4gY3JlYXRlSW5mbyhjb25z
dCBSZW5kZXJCb3gqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU2hhcGVPdXRzaWRl
SW5mbyhyZW5kZXJlcikpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkRm9yKGNvbnN0IFJl
bmRlckJveCopOwo=
</data>
<flag name="review"
          id="234060"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="234069"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211932</attachid>
            <date>2013-09-17 13:18:02 -0700</date>
            <delta_ts>2013-09-17 20:26:29 -0700</delta_ts>
            <desc>incorporating comments</desc>
            <filename>floatsleft2.patch</filename>
            <type>text/plain</type>
            <size>38887</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMGZiZGJiLi5kZjYxMmIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDkt
MTYgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIFVzZSB0aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFw
ZS1pbnNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEZs
b2F0IHBvc2l0aW9uaW5nIGluc2lkZSBzaGFwZS1pbnNpZGUgaGFzIGJlZW4gd29ya2luZyBvbmx5
IGZvciBzaW1wbGUgY2FzZXMgd2hlbiB0aGUgZmxvYXQgYm91bmRhcmllcyBkaWRuJ3Qgb3Zlcmxh
cCB3aXRoIHRoZSBzaGFwZS4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgYmVoYXZpb3Ig
Zm9yIGxlZnQgZmxvYXRzIGFuZCBzaGFwZXMgd2l0aCBpbmxpbmUgY29udGVudC4gSSB3YW50IHRv
IGFkZCB0aGlzIHdvcmsgc3RlcCBieSBzdGVwLCB0aGVyZWZvcmUgdGhlIG5leHQKKyAgICAgICAg
c3RlcCB3b3VsZCBiZSB0byBhZGQgc3VwcG9ydCBmb3IgYmxvY2sgY29udGVudCB3aXRoIGlubGlu
ZSBjb250ZW50IChlLmcuIHBhcmFncmFwaHMpIHRoZW4gY292ZXIgY2FzZXMgd2l0aCByaWdodCBm
bG9hdHMuCisKKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LWxlZnQtZmxvYXQtaW4tbG93ZXItbGVmdC10cmlhbmdsZS1pbmxpbmUtY29udGVudC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItbGVmdC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250
ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1j
b250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29u
dGVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tdXBwZXItcmlnaHQtdHJpYW5nbGUtaW5s
aW5lLWNvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDktMTYgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc21pbC1sZWFrLSou
c3ZnIHRlc3RzIGFyZSBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5n
bGUtaW5saW5lLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVz
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi1sb3dlci1sZWZ0LXRyaWFu
Z2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2VmNjc5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi1sb3dlci1sZWZ0
LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1zdmctc2hhcGUg
eworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAg
ICAgdG9wOiAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBw
eDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhlbSwg
c2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAg
ICAgcGFkZGluZy10b3A6IDIwcHg7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAg
ICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgZmxvYXQ6
IGxlZnQ7CisgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHllbGxvdzsKKyAgICB9CisgICAgI3NpZGUtb2YtZmxvYXQgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogNzBweDsKKyAgICAgICAgbGVmdDogNTBweDsKKyAg
ICAgICAgd2lkdGg6IDIwcHg7CisgICAgfQorICAgICNiZWxvdy1mbG9hdCB7CisgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgbWFyZ2luLXRvcDogNzBweDsKKworICAgIH0KKyAgICAjb3Zl
cmZsb3cgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7
CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzdmcgaWQ9InBvbHlnb24t
c3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICA8
cG9seWdvbiBwb2ludHM9IjAsMCAyMDAsMjAwIDAsMjAwIiBmaWxsPSIjNjM2MzYzIj48L3BvbHln
b24+CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgWAor
ICAgICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InNpZGUtb2Yt
ZmxvYXQiPlggWDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJiZWxvdy1mbG9hdCI+WCBYIFggPGJy
Lz4gWCBYIFggPGJyLz4gWCBYIFggWCA8YnIvPiBYIFggWCBYPC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9Im92ZXJmbG93Ij5YIFggWCBYIFggWDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHAgc3R5
bGU9Im1hcmdpbi10b3A6IDI1MHB4OyI+CisgICAgICBUaGVyZSBpcyBhIHRyaWFuZ2xlIHNoYXBl
LWluc2lkZSAocmVwcmVzZW50ZWQgYnkgdGhlIG1hdGNoaW5nIGZpbGxlZCBTVkcgcG9seWdvbiks
IHRoZSBzaGFwZS1pbnNpZGUgY29udGFpbnMgYSA1MHg1MHB4IHllbGxvdyBmbG9hdCBsZWZ0LAor
ICAgICAgdGhlIGZsb2F0IHNob3VsZCBiZSBhdCB0aGUgdmVyeSBsZWZ0IGFuZCB0b3AgcG9zaXRp
b24gaW5zaWRlIHRoZSB0cmlhbmdsZSBzaGFwZSB3aGVyZSBpdCBmaXRzIGZpcnN0LiBUaGUgaW5s
aW5lIGNvbnRlbnQgc2hvdWxkIHN0YXJ0IGJlZm9yZSB0aGUKKyAgICAgIHllbGxvdyByZWN0YW5n
bGUgYW5kIHRoZW4gd3JhcCBhcm91bmQgaXQuIFRoZSBvdmVyZmxvdyBzaG91bGQgYmUgcHVzaGVk
IHVuZGVyIHRoZSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUuCisgICAgPC9wPgorICAgIDxwPkJ1ZyA8
YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEwMjg0NiI+MTAyODQ2PC9hPjogW0NTUyBTaGFw
ZXNdIFVzZSB0aGUgZmxvYXQgaGVpZ2h0IHRvIGRldGVybWluZSBwb3NpdGlvbiBpbiBzaGFwZS1p
bnNpZGU8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItbGVm
dC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5n
bGUtaW5saW5lLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iZmM4NjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5nbGUt
aW5saW5lLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNo
YXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7Cisg
ICAgICAgIHRvcDogMHB4OworICAgIH0KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9u
dDogMjBweCBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKKyAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7Cisg
ICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBweCAwcHgsIDIwMHB4IDIwMHB4
LCAwcHggMjAwcHgpOworICAgIH0KKyAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogNTBweDsK
KyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIwLDAgMjAwLDIwMCAwLDIwMCIg
ZmlsbD0iIzYzNjM2MyI+PC9wb2x5Z29uPgorICAgIDwvc3ZnPgorICAgIDxkaXYgaWQ9InNoYXBl
LWluc2lkZSI+QQorICAgICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+WCBYIFggWCBYIFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxwIHN0eWxlPSJt
YXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNp
ZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0aGUg
c2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAgICAg
IHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9uIGlu
c2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlubGluZSBj
b250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFuZ2xlIGFu
ZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1bmRl
ciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcgPGEgaHJl
Zj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hhcGVzXSBV
c2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRl
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFw
ZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRy
aWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQt
dHJpYW5nbGUtaW5saW5lLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kOTgzNGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2Vy
LXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1zdmct
c2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsK
KyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHgg
QWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CisgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4Owor
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgfQorICAg
ICNmbG9hdCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7Cisg
ICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgIH0KKyAgICAjb3ZlcmZsb3cgeworICAgICAg
ICB3aWR0aDogMjAwcHg7CisgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9
IjIwMCwwIDIwMCwyMDAgMCwyMDAiIGZpbGw9IiM2MzYzNjMiPjwvcG9seWdvbj4KKyAgICA8L3N2
Zz4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICBYPGJyLz4KKyAgICAgICAg
PGRpdiBpZD0iZmxvYXQiPjwvZGl2PgorICAgICAgICA8YnIvPjxici8+PGJyLz5YIFggWDxici8+
CisgICAgICAgIFggWCBYJm5ic3A7PGJyLz4KKyAgICAgICAgWCBYIFggWDxici8+CisgICAgICAg
IFggWCBYIFgmbmJzcDs8YnIvPgorICAgICAgICBYIFggWCBYIFg8YnIvPgorICAgICAgICA8ZGl2
IGlkPSJvdmVyZmxvdyI+WCBYIFggWCBYIFg8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxwIHN0
eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFw
ZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24p
LCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwK
KyAgICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0
aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlu
bGluZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFu
Z2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hl
ZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcg
PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hh
cGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUt
aW5zaWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJp
Z2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBl
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWxlZnQtZmxvYXQtaW4tbG93ZXItcmlnaHQtdHJp
YW5nbGUtaW5saW5lLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iM2IwNWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLWxvd2VyLXJpZ2h0LXRyaWFu
Z2xlLWlubGluZS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAg
ICB0b3A6IDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIw
cHggQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAg
ICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigyMDBweCAwcHgsIDIwMHB4IDIwMHB4LCAw
cHggMjAwcHgpOworICAgIH0KKyAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogeWVsbG93OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMDAsMCAyMDAsMjAwIDAsMjAwIiBm
aWxsPSIjNjM2MzYzIj48L3BvbHlnb24+CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hhcGUt
aW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iZmxvYXQiPjwvZGl2PlggWCBYIFggWCBYIFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxwIHN0
eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFw
ZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24p
LCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwK
KyAgICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0
aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlu
bGluZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFu
Z2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hl
ZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcg
PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hh
cGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUt
aW5zaWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXVwcGVyLWxl
ZnQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1s
ZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYWJiYThhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11
cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjcG9seWdvbi1z
dmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVp
Z2h0OiAyMDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIw
cHggQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBw
eDsKKyAgICB9CisgICAgI2Zsb2F0IHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHllbGxvdzsKKyAgICB9CisgICAgI292ZXJmbG93IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIwLDAgMjAwLDAgMCwy
MDAiIGZpbGw9IiM2MzYzNjMiPjwvcG9seWdvbj4KKyAgICA8L3N2Zz4KKyAgICA8ZGl2IGlkPSJz
aGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+CisgICAgICAgIFgg
WCBYPGJyLz4KKyAgICAgICAgWCBYIFg8YnIvPgorICAgICAgICBYIFg8YnIvPgorICAgICAgICBY
IFggWDxici8+CisgICAgICAgIFggWCBYPGJyLz4KKyAgICAgICAgWCBYPGJyLz4KKyAgICAgICAg
WCBYPGJyLz4KKyAgICAgICAgWDxici8+CisgICAgICAgIFg8YnIvPgorICAgICAgICA8ZGl2IGlk
PSJvdmVyZmxvdyI+WCBYIFggWCBYIFg8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxwIHN0eWxl
PSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1p
bnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBvbHlnb24pLCB0
aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQgbGVmdCwKKyAg
ICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9wIHBvc2l0aW9u
IGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4gVGhlIGlubGlu
ZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cgcmVjdGFuZ2xl
IGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHB1c2hlZCB1
bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8cD5CdWcgPGEg
aHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtDU1MgU2hhcGVz
XSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5z
aWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
aGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXVwcGVyLWxlZnQt
dHJpYW5nbGUtaW5saW5lLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xl
LWlubGluZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MmY3ZTFlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1sZWZ0LXRyaWFuZ2xlLWlu
bGluZS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6
IDBweDsKKyAgICB9CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDIwcHggQWhl
bSwgc2Fucy1zZXJpZjsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CisgICAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICAtd2Vi
a2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHggMHB4LCAyMDBweCAwcHgsIDBweCAyMDBweCk7
CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWln
aHQ6IDUwcHg7CisgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB5ZWxsb3c7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzdmcgaWQ9
InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCAyMDAsMCAwLDIwMCIgZmlsbD0iIzYzNjM2MyI+
PC9wb2x5Z29uPgorICAgIDwvc3ZnPgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+QQorICAg
ICAgICA8ZGl2IGlkPSJmbG9hdCI+PC9kaXY+IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8cCBzdHlsZT0ibWFyZ2luLXRv
cDogMjUwcHg7Ij4KKyAgICAgIFRoZXJlIGlzIGEgdHJpYW5nbGUgc2hhcGUtaW5zaWRlIChyZXBy
ZXNlbnRlZCBieSB0aGUgbWF0Y2hpbmcgZmlsbGVkIFNWRyBwb2x5Z29uKSwgdGhlIHNoYXBlLWlu
c2lkZSBjb250YWlucyBhIDUweDUwcHggeWVsbG93IGZsb2F0IGxlZnQsCisgICAgICB0aGUgZmxv
YXQgc2hvdWxkIGJlIGF0IHRoZSB2ZXJ5IGxlZnQgYW5kIHRvcCBwb3NpdGlvbiBpbnNpZGUgdGhl
IHRyaWFuZ2xlIHNoYXBlIHdoZXJlIGl0IGZpdHMgZmlyc3QuIFRoZSBpbmxpbmUgY29udGVudCBz
aG91bGQgc3RhcnQgYmVmb3JlIHRoZQorICAgICAgeWVsbG93IHJlY3RhbmdsZSBhbmQgdGhlbiB3
cmFwIGFyb3VuZCBpdC4gVGhlIG92ZXJmbG93IHNob3VsZCBiZSBwdXNoZWQgdW5kZXIgdGhlIHRy
aWFuZ2xlIHNoYXBlLWluc2lkZS4KKyAgICA8L3A+CisgICAgPHA+QnVnIDxhIGhyZWY9Imh0dHA6
Ly93ZWJraXQub3JnL2IvMTAyODQ2Ij4xMDI4NDY8L2E+OiBbQ1NTIFNoYXBlc10gVXNlIHRoZSBm
bG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBvc2l0aW9uIGluIHNoYXBlLWluc2lkZTwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1p
bmxpbmUtY29udGVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWluLXVwcGVyLXJpZ2h0LXRyaWFuZ2xl
LWlubGluZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2IxYzlhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hh
cGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1yaWdodC10
cmlhbmdsZS1pbmxpbmUtY29udGVudC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3BvbHlnb24tc3ZnLXNoYXBlIHsK
KyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAg
IHRvcDogMHB4OworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgfQorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBmb250OiAyMHB4IEFoZW0sIHNh
bnMtc2VyaWY7CisgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAgICAgICAtd2Via2l0LWZv
bnQtc21vb3RoaW5nOiBub25lOworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
IGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0
OworICAgIH0KKyAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVp
Z2h0OiA1MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgbWFyZ2luLWxlZnQ6IDUw
cHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICB9CisgICAgI292ZXJm
bG93IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBtYXJnaW4tdG9wOiAyMHB4Owor
ICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIwLDAgMjAwLDAgMjAwLDIw
MCIgZmlsbD0iIzYzNjM2MyI+PC9wb2x5Z29uPgorICAgIDwvc3ZnPgorICAgIDxkaXYgaWQ9InNo
YXBlLWluc2lkZSI+CisgICAgICAgIDxkaXYgaWQ9ImZsb2F0Ij48L2Rpdj4KKyAgICAgICAgWCBY
IFg8YnIvPgorICAgICAgICBYIFggWDxici8+CisgICAgICAgIFggWCBYPGJyLz4KKyAgICAgICAg
WCBYIFgmbmJzcDs8YnIvPgorICAgICAgICBYIFggWDxici8+CisgICAgICAgIFggWCZuYnNwOzxi
ci8+CisgICAgICAgIFggWDxici8+CisgICAgICAgIFgmbmJzcDs8YnIvPgorICAgICAgICBYPGJy
Lz4KKyAgICAgICAgPGRpdiBpZD0ib3ZlcmZsb3ciPlggWCBYIFggWCBYPC9kaXY+CisgICAgPC9k
aXY+CisKKyAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMjUwcHg7Ij4KKyAgICAgIFRoZXJlIGlz
IGEgdHJpYW5nbGUgc2hhcGUtaW5zaWRlIChyZXByZXNlbnRlZCBieSB0aGUgbWF0Y2hpbmcgZmls
bGVkIFNWRyBwb2x5Z29uKSwgdGhlIHNoYXBlLWluc2lkZSBjb250YWlucyBhIDUweDUwcHggeWVs
bG93IGZsb2F0IGxlZnQsCisgICAgICB0aGUgZmxvYXQgc2hvdWxkIGJlIGF0IHRoZSB2ZXJ5IGxl
ZnQgYW5kIHRvcCBwb3NpdGlvbiBpbnNpZGUgdGhlIHRyaWFuZ2xlIHNoYXBlIHdoZXJlIGl0IGZp
dHMgZmlyc3QuIFRoZSBpbmxpbmUgY29udGVudCBzaG91bGQgc3RhcnQgYmVmb3JlIHRoZQorICAg
ICAgeWVsbG93IHJlY3RhbmdsZSBhbmQgdGhlbiB3cmFwIGFyb3VuZCBpdC4gVGhlIG92ZXJmbG93
IHNob3VsZCBiZSBwdXNoZWQgdW5kZXIgdGhlIHRyaWFuZ2xlIHNoYXBlLWluc2lkZS4KKyAgICA8
L3A+CisgICAgPHA+QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvMTAyODQ2Ij4xMDI4
NDY8L2E+OiBbQ1NTIFNoYXBlc10gVXNlIHRoZSBmbG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBv
c2l0aW9uIGluIHNoYXBlLWluc2lkZTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1m
bG9hdC1pbi11cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0LWlu
LXVwcGVyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYTgxODFlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11
cHBlci1yaWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sCkBAIC0wLDAgKzEsNDIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3BvbHlnb24tc2hhcGUtaW5z
aWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICAgICNzaGFwZS1p
bnNpZGUgeworICAgICAgICBmb250OiAyMHB4IEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIC13
ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4Owor
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHBvbHlnb24oMHB4IDBweCwgMjAwcHggMHB4
LCAyMDBweCAyMDBweCk7CisgICAgfQorICAgICNmbG9hdCB7CisgICAgICAgIHdpZHRoOiA1MHB4
OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCAyMDAsMCAyMDAsMjAw
IiBmaWxsPSIjNjM2MzYzIj48L3BvbHlnb24+CisgICAgPC9zdmc+CisgICAgPGRpdiBpZD0ic2hh
cGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iZmxvYXQiPjwvZGl2PiBYIFggWCBYIFggWCBY
IFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAg
IDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAyNTBweDsiPgorICAgICAgVGhlcmUgaXMgYSB0cmlhbmds
ZSBzaGFwZS1pbnNpZGUgKHJlcHJlc2VudGVkIGJ5IHRoZSBtYXRjaGluZyBmaWxsZWQgU1ZHIHBv
bHlnb24pLCB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5zIGEgNTB4NTBweCB5ZWxsb3cgZmxvYXQg
bGVmdCwKKyAgICAgIHRoZSBmbG9hdCBzaG91bGQgYmUgYXQgdGhlIHZlcnkgbGVmdCBhbmQgdG9w
IHBvc2l0aW9uIGluc2lkZSB0aGUgdHJpYW5nbGUgc2hhcGUgd2hlcmUgaXQgZml0cyBmaXJzdC4g
VGhlIGlubGluZSBjb250ZW50IHNob3VsZCBzdGFydCBiZWZvcmUgdGhlCisgICAgICB5ZWxsb3cg
cmVjdGFuZ2xlIGFuZCB0aGVuIHdyYXAgYXJvdW5kIGl0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJl
IHB1c2hlZCB1bmRlciB0aGUgdHJpYW5nbGUgc2hhcGUtaW5zaWRlLgorICAgIDwvcD4KKyAgICA8
cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMDI4NDYiPjEwMjg0NjwvYT46IFtD
U1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4g
c2hhcGUtaW5zaWRlPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzMjI0ZjQu
LjdlMmZiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wOS0xNiAgWm9sdGFu
IEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIFNoYXBlc10gVXNl
IHRoZSBmbG9hdCBoZWlnaHQgdG8gZGV0ZXJtaW5lIHBvc2l0aW9uIGluIHNoYXBlLWluc2lkZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRmxvYXQgcG9zaXRp
b25pbmcgaW5zaWRlIHNoYXBlLWluc2lkZSBoYXMgYmVlbiB3b3JraW5nIG9ubHkgZm9yIHNpbXBs
ZSBjYXNlcyB3aGVuIHRoZSBmbG9hdCBib3VuZGFyaWVzIGRpZG4ndCBvdmVybGFwIHdpdGggdGhl
IHNoYXBlLgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBiZWhhdmlvciBmb3IgbGVmdCBm
bG9hdHMgYW5kIHNoYXBlcyB3aXRoIGlubGluZSBjb250ZW50LiBJIHdhbnQgdG8gYWRkIHRoaXMg
d29yayBzdGVwIGJ5IHN0ZXAsIHRoZXJlZm9yZSB0aGUgbmV4dAorICAgICAgICBzdGVwIHdvdWxk
IGJlIHRvIGFkZCBzdXBwb3J0IGZvciBibG9jayBjb250ZW50IHdpdGggaW5saW5lIGNvbnRlbnQg
KGUuZy4gcGFyYWdyYXBocykgdGhlbiBjb3ZlciBjYXNlcyB3aXRoIHJpZ2h0IGZsb2F0cy4KKwor
ICAgICAgICBUZXN0czogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0
LWZsb2F0LWluLWxvd2VyLWxlZnQtdHJpYW5nbGUtaW5saW5lLWNvbnRlbnQuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1sZWZ0LWZsb2F0
LWluLWxvd2VyLXJpZ2h0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11
cHBlci1sZWZ0LXRyaWFuZ2xlLWlubGluZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbGVmdC1mbG9hdC1pbi11cHBlci1y
aWdodC10cmlhbmdsZS1pbmxpbmUtY29udGVudC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
TGluZVdpZHRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdpZHRoKTog
VXNlIHRoZSBuZXcgdXBkYXRlQ3VycmVudFNoYXBlU2VnbWVudCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OnVwZGF0ZUN1cnJlbnRTaGFwZVNlZ21lbnQpOiBX
ZSBuZWVkIGEgZnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjdXJyZW50IGxpbmUgc2VnbWVudCdzIHJl
ZmVyZW5jZSwgc2luY2Ugd2UgdXNlIGl0IG11bHRpcGxlIHBsYWNlcy4KKyAgICAgICAgKiByZW5k
ZXJpbmcvTGluZVdpZHRoLmg6IEFkZCBuZXcgbWVtYmVyIGZ1bmN0aW9uLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KTogRml4IHBvc2l0aW9uaW5nIG9mIGEgZmxv
YXRpbmcgZWxlbWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZUFuZFNlZ21l
bnRzRm9yQ3VycmVudExpbmUpOiBVc2UgdXBkYXRlU2VnbWVudHNGb3JMaW5lIGluc3RlYWQgb2Yg
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1
cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQpOiBVc2UgdXBk
YXRlU2VnbWVudHNGb3JMaW5lIGluc3RlYWQgb2YgY29tcHV0ZVNlZ21lbnRzRm9yTGluZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2lj
YWxIZWlnaHRJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWdtZW50c0ZvclNo
YXBlcyk6IEFmdGVyIG91ciBmbG9hdCBpcyBwb3NpdGlvbmVkLCB3ZSBuZWVkIHRvIGFkanVzdCB0
aGUgY3VycmVudCBsaW5lVG9wIGFuZCB1cGRhdGUgdGhlIGxvZ2ljYWwgaGVpZ2h0IHRvIGJlIGFi
bGUgdG8gd3JhcCBhcm91bmQgdGhlIGZsb2F0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKTogSWYgd2UgaGF2ZSBhIGZsb2F0IGlu
IG91ciBsaW5lIHdlIG1pZ2h0IG5lZWQgdG8gYWRqdXN0IG91ciBsaW5lVG9wIGFuZCBsb2dpY2Fs
SGVpZ2h0LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IEFkZCBuZXcgY29uc3QgZnVu
Y3Rpb24gdG8gY29tcHV0ZSB0aGUgc2VnbWVudHMuIEknZCBsaWtlIG1ha2UgdGhpcyBmdW5jdGlv
biBzdGF0aWMgbGF0ZXIgaWYgcG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjo6OnVwZGF0ZVNl
Z21lbnRzRm9yTGluZSk6IE9sZCBjb21wdXRlU2VnbWVudHNGb3JMaW5lLCBjaGFuZ2UgbmFtZSB0
byBpbmRpY2F0ZSB0aGF0IGl0IGlzIGFjdHVhbGx5IGNoYW5naW5nIHRoaW5ncy4KKyAgICAgICAg
KiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oOiBVcGRhdGUgZnVuY3Rpb24gbmFtZXMsIGFk
ZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y2xlYXJTZWdtZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OmxvZ2ljYWxMaW5lQm90dG9tKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdCk6
IENvbXB1dGUgdGhlIGZpcnN0IGZpdCBwb3NpdGlvbiBiZWxvdyB0aGUgY3VycmVudCBsaW5lIHBv
c2l0aW9uIGluc2lkZSBzaGFwZXMuIEkgY2FsbGVkIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgdGhp
cyB3YXksIGJlY2F1c2UgY3VycmVudGx5IHdlIHVzZSBpdCBvbmx5IGZvciBzaGFwZXMuCisgICAg
ICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaDogVXBkYXRlIGZ1bmN0aW9u
IG5hbWVzLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6
IFVwZGF0ZSBmdW5jdGlvbiBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlT3V0c2lkZUlu
Zm86OmNvbXB1dGVTZWdtZW50c0ZvckNvbnRhaW5pbmdCbG9ja0xpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhcGVPdXRzaWRlSW5mbzo6dXBkYXRlU2VnbWVudHNGb3JMaW5lKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaDogVXBkYXRlIGZ1bmN0aW9uIG5h
bWVzLgorCiAyMDEzLTA5LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgTWVzc2FnZVF1ZXVlIHNob3VsZCB1c2UgYSBEZXF1ZSBvZiBPd25QdHJzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGluZVdpZHRoLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCmluZGV4IGNjNGZlZmIuLmM4MGFmYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MaW5lV2lkdGguY3BwCkBAIC00OSw4ICs0OSw3IEBA
IExpbmVXaWR0aDo6TGluZVdpZHRoKFJlbmRlckJsb2NrJiBibG9jaywgYm9vbCBpc0ZpcnN0TGlu
ZSwgSW5kZW50VGV4dE9yTm90IHNob3VsCiAgICAgLCBtX3Nob3VsZEluZGVudFRleHQoc2hvdWxk
SW5kZW50VGV4dCkKIHsKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICBpZiAoU2hhcGVJbnNp
ZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBtX2Jsb2NrLmxheW91dFNoYXBlSW5zaWRlSW5mbygp
KQotICAgICAgICBtX3NlZ21lbnQgPSBzaGFwZUluc2lkZUluZm8tPmN1cnJlbnRTZWdtZW50KCk7
CisgICAgdXBkYXRlQ3VycmVudFNoYXBlU2VnbWVudCgpOwogI2VuZGlmCiAgICAgdXBkYXRlQXZh
aWxhYmxlV2lkdGgoKTsKIH0KQEAgLTIwNCw2ICsyMDMsMTQgQEAgdm9pZCBMaW5lV2lkdGg6OnNl
dFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGZsb2F0IGNvbGxhcHNlZFdoaXRlc3BhY2UsIGZsb2F0
IGJvcmQKICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gY29sbGFwc2VkV2hpdGVzcGFj
ZSArIGJvcmRlclBhZGRpbmdNYXJnaW47CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKK3Zv
aWQgTGluZVdpZHRoOjp1cGRhdGVDdXJyZW50U2hhcGVTZWdtZW50KCkKK3sKKyAgICBpZiAoU2hh
cGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBtX2Jsb2NrLmxheW91dFNoYXBlSW5zaWRl
SW5mbygpKQorICAgICAgICBtX3NlZ21lbnQgPSBzaGFwZUluc2lkZUluZm8tPmN1cnJlbnRTZWdt
ZW50KCk7Cit9CisjZW5kaWYKKwogdm9pZCBMaW5lV2lkdGg6OmNvbXB1dGVBdmFpbGFibGVXaWR0
aEZyb21MZWZ0QW5kUmlnaHQoKQogewogICAgIG1fYXZhaWxhYmxlV2lkdGggPSBtYXgoMC4wZiwg
bV9yaWdodCAtIG1fbGVmdCkgKyBtX292ZXJoYW5nV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGluZVdpZHRoLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGluZVdpZHRoLmgKaW5kZXggNGJhZmVjZi4uOGUxZDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xpbmVXaWR0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MaW5lV2lkdGguaApAQCAtNzAsNiArNzAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZml0QmVs
b3dGbG9hdHMoKTsKICAgICB2b2lkIHNldFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGZsb2F0IGNv
bGxhcHNlZFdoaXRlc3BhY2UsIGZsb2F0IGJvcmRlclBhZGRpbmdNYXJnaW4gPSAwKTsKIAorI2lm
IEVOQUJMRShDU1NfU0hBUEVTKQorICAgIHZvaWQgdXBkYXRlQ3VycmVudFNoYXBlU2VnbWVudCgp
OworI2VuZGlmCisKICAgICBib29sIHNob3VsZEluZGVudFRleHQoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZEluZGVudFRleHQgPT0gSW5kZW50VGV4dDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggMDA5MWI0My4uYTc5N2FiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zMzc2LDE0ICszMzc2
LDIwIEBAIExheW91dFBvaW50IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9y
RmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGZsCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAg
ICAgLy8gRklYTUUgQnVnIDEwMjk0ODogVGhpcyBvbmx5IHdvcmtzIGZvciBzaGFwZSBvdXRzaWRl
IGRpcmVjdGx5IHNldCBvbiB0aGlzIGJsb2NrLgogICAgIFNoYXBlSW5zaWRlSW5mbyogc2hhcGVJ
bnNpZGVJbmZvID0gdGhpcy0+c2hhcGVJbnNpZGVJbmZvKCk7Ci0gICAgLy8gRklYTUUgQnVnIDEw
Mjg0NjogVGFrZSBpbnRvIGFjY291bnQgdGhlIGhlaWdodCBvZiB0aGUgY29udGVudC4gVGhlIG9m
ZnNldCBzaG91bGQgYmUKLSAgICAvLyBlcXVhbCB0byB0aGUgbWF4aW11bSBzZWdtZW50IGxlbmd0
aC4KLSAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICYmIHNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVu
dHMoKSAmJiBzaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKCkuc2l6ZSgpID09IDEpIHsKLSAgICAg
ICAgLy8gRklYTUUgQnVnIDEwMjk0OTogQWRkIHN1cHBvcnQgZm9yIHNoYXBlcyB3aXRoIG11bHRp
cGUgc2VnbWVudHMuCi0KLSAgICAgICAgLy8gVGhlIHNlZ21lbnQgb2Zmc2V0cyBhcmUgcmVsYXRp
dmUgdG8gdGhlIGNvbnRlbnQgYm94LgotICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgPSBsb2dp
Y2FsTGVmdE9mZnNldCArIHNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmln
aHQ7Ci0gICAgICAgIGxvZ2ljYWxMZWZ0T2Zmc2V0ICs9IHNoYXBlSW5zaWRlSW5mby0+c2VnbWVu
dHMoKVswXS5sb2dpY2FsTGVmdDsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGJlaGF2aW9yIGZv
ciByaWdodCBmbG9hdHMuCisgICAgaWYgKHNoYXBlSW5zaWRlSW5mbykgeworICAgICAgICAvLyBG
SVhNRTogSWYgdGhlIGZsb2F0IGRvZXNuJ3QgZml0IGluIHRoZSBzaGFwZSB3ZSBzaG91bGQgcHVz
aCBpdCB1bmRlciB0aGUgY29udGVudCBib3gKKyAgICAgICAgbG9naWNhbFRvcE9mZnNldCA9IHNo
YXBlSW5zaWRlSW5mby0+Y29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdChMYXlvdXRTaXpl
KGZsb2F0aW5nT2JqZWN0LT53aWR0aCgpLCBmbG9hdGluZ09iamVjdC0+aGVpZ2h0KCkpKTsKKyAg
ICAgICAgaWYgKGxvZ2ljYWxIZWlnaHQoKSA+IGxvZ2ljYWxUb3BPZmZzZXQpCisgICAgICAgICAg
ICBsb2dpY2FsVG9wT2Zmc2V0ID0gbG9naWNhbEhlaWdodCgpOworCisgICAgICAgIFNlZ21lbnRM
aXN0IHNlZ21lbnRzID0gc2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxv
Z2ljYWxUb3BPZmZzZXQsIGNoaWxkQm94LT5sb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAvLyBG
SVhNRSBCdWcgMTAyOTQ5OiBBZGQgc3VwcG9ydCBmb3Igc2hhcGVzIHdpdGggbXVsdGlwbGUgc2Vn
bWVudHMuCisgICAgICAgIGlmIChzZWdtZW50cy5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAg
Ly8gVGhlIHNlZ21lbnQgb2Zmc2V0cyBhcmUgcmVsYXRpdmUgdG8gdGhlIGNvbnRlbnQgYm94Lgor
ICAgICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ID0gbG9naWNhbExlZnRPZmZzZXQgKyBzZWdt
ZW50c1swXS5sb2dpY2FsUmlnaHQ7CisgICAgICAgICAgICBsb2dpY2FsTGVmdE9mZnNldCArPSBz
ZWdtZW50c1swXS5sb2dpY2FsTGVmdDsKKyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAg
ICAgICAgIGxvZ2ljYWxSaWdodE9mZnNldCA9IGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQo
bG9naWNhbFRvcE9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDZhOWRkNTQuLjAzMTAzODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0x
MzQ3LDcgKzEzNDcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZUFuZFNlZ21lbnRz
Rm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYgc2hhcGVJbgogICAgIExheW91dFVuaXQg
bGluZUhlaWdodCA9IHRoaXMtPmxpbmVIZWlnaHQobGF5b3V0U3RhdGUubGluZUluZm8oKS5pc0Zp
cnN0TGluZSgpLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBW
ZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CiAKICAgICAvLyBGSVhN
RTogQnVnIDk1MzYxOiBJdCBpcyBwb3NzaWJsZSBmb3IgYSBsaW5lIHRvIGdyb3cgYmV5b25kIGxp
bmVIZWlnaHQsIGluIHdoaWNoIGNhc2UgdGhlc2Ugc2VnbWVudHMgbWF5IGJlIGluY29ycmVjdC4K
LSAgICBzaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZShs
aW5lTGVmdCwgbGluZVRvcCksIGxpbmVIZWlnaHQpOworICAgIHNoYXBlSW5zaWRlSW5mby0+dXBk
YXRlU2VnbWVudHNGb3JMaW5lKExheW91dFNpemUobGluZUxlZnQsIGxpbmVUb3ApLCBsaW5lSGVp
Z2h0KTsKIAogICAgIHB1c2hTaGFwZUNvbnRlbnRPdmVyZmxvd0JlbG93VGhlQ29udGVudEJveCh0
aGlzLCBzaGFwZUluc2lkZUluZm8sIGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogfQpAQCAtMTQyMCw3
ICsxNDIwLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1
cnJlbnRMaW5lSW5GbG93VGhyZWFkKFNoYXBlSW5zaWRlSW4KICAgICBMYXlvdXRVbml0IGxpbmVU
b3AgPSBsb2dpY2FsTGluZVRvcEluRmxvd1RocmVhZCAtIGN1cnJlbnRSZWdpb24tPmxvZ2ljYWxU
b3BGb3JGbG93VGhyZWFkQ29udGVudCgpICsgY3VycmVudFJlZ2lvbi0+Ym9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpOwogCiAgICAgLy8gRklYTUU6IDExODU3MSAtIFNoYXBlIGluc2lkZSBvbiBhIHJl
Z2lvbiBkb2VzIG5vdCB5ZXQgdGFrZSBpbnRvIGFjY291bnQgaXRzIHBhZGRpbmcgZm9yIG5lc3Rl
ZCBmbG93IGJsb2NrcwotICAgIHNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShMYXlvdXRTaXplKDAsIGxpbmVUb3ApLCBsaW5lSGVpZ2h0KTsKKyAgICBzaGFwZUluc2lkZUlu
Zm8tPnVwZGF0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplKDAsIGxpbmVUb3ApLCBsaW5lSGVp
Z2h0KTsKIAogICAgIGlmIChjdXJyZW50UmVnaW9uLT5pc0xhc3RSZWdpb24oKSkKICAgICAgICAg
cHVzaFNoYXBlQ29udGVudE92ZXJmbG93QmVsb3dUaGVDb250ZW50Qm94KHRoaXMsIHNoYXBlSW5z
aWRlSW5mbywgbGluZVRvcCwgbGluZUhlaWdodCk7CkBAIC0xNDM5LDcgKzE0MzksNiBAQCBib29s
IFJlbmRlckJsb2NrOjphZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5lZWRl
ZChTaGFwZUluc2lkZUluZm8qCiAgICAgICAgIG5ld0xvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVp
Z2h0KCk7CiAgICAgfQogCi0KICAgICBlbmQgPSByZXN0YXJ0TGF5b3V0UnVuc0FuZEZsb2F0c0lu
UmFuZ2UobG9naWNhbEhlaWdodCgpLCBuZXdMb2dpY2FsSGVpZ2h0LCBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lLCByZXNvbHZlciwgZW5kKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI1NzIs
NiArMjU3MSwzNiBAQCBzdGF0aWMgYm9vbCBjYW5CcmVha0F0VGhpc1Bvc2l0aW9uKGJvb2wgYXV0
b1dyYXAsIExpbmVXaWR0aCYgd2lkdGgsIElubGluZUl0ZXJhdAogICAgIHJldHVybiBjYW5CcmVh
a0hlcmU7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKK3N0YXRpYyB2b2lkIHVwZGF0ZVNl
Z21lbnRzRm9yU2hhcGVzKFJlbmRlckJsb2NrKiBibG9jaywgY29uc3QgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnN0IFdvcmRNZWFzdXJlbWVudHMmIHdvcmRN
ZWFzdXJlbWVudHMsIExpbmVXaWR0aCYgd2lkdGgsIGJvb2wgaXNGaXJzdExpbmUpCit7CisgICAg
QVNTRVJUKGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOworCisgICAgU2hhcGVJbnNpZGVJbmZv
KiBzaGFwZUluc2lkZUluZm8gPSBibG9jay0+bGF5b3V0U2hhcGVJbnNpZGVJbmZvKCk7CisgICAg
TGF5b3V0VW5pdCBsaW5lTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHRGb3JMaW5lKGJsb2Nr
LCBpc0ZpcnN0TGluZSk7CisgICAgTGF5b3V0VW5pdCBsaW5lTG9naWNhbEJvdHRvbSA9IGJsb2Nr
LT5sb2dpY2FsSGVpZ2h0KCkgKyBsaW5lTG9naWNhbEhlaWdodDsKKyAgICBib29sIGxpbmVPdmVy
bGFwc1dpdGhGbG9hdCA9IChsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLT55KCkgPCBsaW5lTG9n
aWNhbEJvdHRvbSkgJiYgKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCkgPCBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lLT5tYXhZKCkpOworCisgICAgaWYgKCFzaGFwZUluc2lkZUluZm8gfHwgIWxpbmVP
dmVybGFwc1dpdGhGbG9hdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQgbWluV2lkdGgg
PSBmaXJzdFBvc2l0aXZlV2lkdGgod29yZE1lYXN1cmVtZW50cyk7CisKKyAgICBMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoID0gYmxvY2stPndpZHRoKCkgLSBsYXN0RmxvYXRGcm9tUHJldmlvdXNM
aW5lLT5tYXhYKCk7CisgICAgaWYgKGF2YWlsYWJsZVdpZHRoIDwgbWluV2lkdGgpCisgICAgICAg
IGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUtPm1heFko
KSk7CisKKyAgICBpZiAoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSA8IGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUtPnkoKSkgeworICAgICAgICBzaGFwZUluc2lkZUluZm8tPmFkanVzdExvZ2ljYWxM
aW5lVG9wKG1pbldpZHRoICsgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZS0+d2lkdGgoKSk7Cisg
ICAgICAgIGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KHNoYXBlSW5zaWRlSW5mby0+bG9naWNhbExp
bmVUb3AoKSk7CisgICAgfQorCisgICAgc2hhcGVJbnNpZGVJbmZvLT51cGRhdGVTZWdtZW50c0Zv
ckxpbmUoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgbGluZUxvZ2ljYWxIZWlnaHQpOworICAgIHdp
ZHRoLnVwZGF0ZUN1cnJlbnRTaGFwZVNlZ21lbnQoKTsKKyAgICB3aWR0aC51cGRhdGVBdmFpbGFi
bGVXaWR0aCgpOworfQorI2VuZGlmCisKIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5l
QnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBM
aW5lSW5mbyYgbGluZUluZm8sIFJlbmRlclRleHRJbmZvJiByZW5kZXJUZXh0SW5mbywgRmxvYXRp
bmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHVuc2lnbmVkIGNvbnNlY3V0aXZl
SHlwaGVuYXRlZExpbmVzLCBXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3VyZW1lbnRzKQogewog
ICAgIHJlc2V0KCk7CkBAIC0yOTEwLDcgKzI5MzksNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJC
bG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiBy
ZQogICAgICAgICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQucmVuZGVyZXIgPSB0OwogICAg
ICAgICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQuZW5kT2Zmc2V0ID0gY3VycmVudC5tX3Bv
czsKICAgICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0ID0gbGFz
dFNwYWNlOwotICAgICAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgICAgICBmbG9h
dCBhZGRpdGlvbmFsVGVtcFdpZHRoOwogICAgICAgICAgICAgICAgICAgICBpZiAod29yZFRyYWls
aW5nU3BhY2VXaWR0aCAmJiBjID09ICcgJykKICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0
aW9uYWxUZW1wV2lkdGggPSB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zICsg
MSAtIGxhc3RTcGFjZSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgY29s
bGFwc2VXaGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91
dCkgLSB3b3JkVHJhaWxpbmdTcGFjZVdpZHRoOwpAQCAtMjkzMyw2ICsyOTYyLDEwIEBAIElubGlu
ZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJbmxp
bmVCaWRpUmVzb2x2ZXImIHJlCiAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWVkU3RhcnRX
aWR0aCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KIAorI2lmIEVOQUJMRShDU1NfU0hB
UEVTKQorICAgICAgICAgICAgICAgICAgICBpZiAobGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNlZ21lbnRzRm9yU2hhcGVzKG1fYmxvY2ss
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHdvcmRNZWFzdXJlbWVudHMsIHdpZHRoLCBsaW5l
SW5mby5pc0ZpcnN0TGluZSgpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgICBhcHBseVdv
cmRTcGFjaW5nID0gd29yZFNwYWNpbmcgJiYgY3VycmVudENoYXJhY3RlcklzU3BhY2U7CiAKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCF3aWR0aC5jb21taXR0ZWRXaWR0aCgpICYmIGF1dG9XcmFw
ICYmICF3aWR0aC5maXRzT25MaW5lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlSW5mby5jcHAKaW5kZXggYTljZmViNS4uZTdiYjU1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtNjksNyArNjksMjMgQEAg
Y29uc3QgU2hhcGUqIFNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0ZWRTaGFwZSgpIGNvbnN0
CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGU+Ci1ib29sIFNoYXBlSW5mbzxSZW5kZXJU
eXBlPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVu
aXQgbGluZUhlaWdodCkKK1NlZ21lbnRMaXN0IFNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0
ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdo
dCkgY29uc3QKK3sKKyAgICBBU1NFUlQobGluZUhlaWdodCA+PSAwKTsKKyAgICBTZWdtZW50TGlz
dCBzZWdtZW50czsKKworICAgIGdldEludGVydmFscygobGluZVRvcCAtIGxvZ2ljYWxUb3BPZmZz
ZXQoKSksIHN0ZDo6bWluKGxpbmVIZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGluZVRv
cCksIHNlZ21lbnRzKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2VnbWVudHMuc2l6
ZSgpOyBpKyspIHsKKyAgICAgICAgc2VnbWVudHNbaV0ubG9naWNhbExlZnQgKz0gbG9naWNhbExl
ZnRPZmZzZXQoKTsKKyAgICAgICAgc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0ICs9IGxvZ2ljYWxM
ZWZ0T2Zmc2V0KCk7CisgICAgfQorCisgICAgcmV0dXJuIHNlZ21lbnRzOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBSZW5kZXJUeXBlPgorYm9vbCBTaGFwZUluZm88UmVuZGVyVHlwZT46OnVwZGF0ZVNl
Z21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkK
IHsKICAgICBBU1NFUlQobGluZUhlaWdodCA+PSAwKTsKICAgICBtX3NoYXBlTGluZVRvcCA9IGxp
bmVUb3AgLSBsb2dpY2FsVG9wT2Zmc2V0KCk7CkBAIC03NywxMyArOTMsNyBAQCBib29sIFNoYXBl
SW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVU
b3AsIExheW91dFVuaQogICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKIAogICAgIGlmIChsaW5lT3Zl
cmxhcHNTaGFwZUJvdW5kcygpKQotICAgICAgICBnZXRJbnRlcnZhbHMobV9zaGFwZUxpbmVUb3As
IHN0ZDo6bWluKG1fbGluZUhlaWdodCwgc2hhcGVMb2dpY2FsQm90dG9tKCkgLSBsaW5lVG9wKSwg
bV9zZWdtZW50cyk7Ci0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0ID0gdGhpcy0+
bG9naWNhbExlZnRPZmZzZXQoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2VnbWVu
dHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgbV9zZWdtZW50c1tpXS5sb2dpY2FsTGVmdCArPSBs
b2dpY2FsTGVmdE9mZnNldDsKLSAgICAgICAgbV9zZWdtZW50c1tpXS5sb2dpY2FsUmlnaHQgKz0g
bG9naWNhbExlZnRPZmZzZXQ7Ci0gICAgfQorICAgICAgICBtX3NlZ21lbnRzID0gY29tcHV0ZVNl
Z21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKIAogICAgIHJldHVybiBtX3NlZ21l
bnRzLnNpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5m
by5oCmluZGV4IGUyMTE5MTYuLjk2YWYwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZUluZm8uaApAQCAtODMsNyArODMsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1f
c2hhcGVMb2dpY2FsU2l6ZSA9IG5ld0xvZ2ljYWxTaXplOwogICAgIH0KIAotICAgIHZpcnR1YWwg
Ym9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5p
dCBsaW5lSGVpZ2h0KTsKKyAgICBTZWdtZW50TGlzdCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExh
eW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgdXBkYXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KTsKICAgICB2b2lkIGNsZWFyU2VnbWVudHMoKSB7IG1fc2VnbWVudHMu
Y2xlYXIoKTsgfQogCiAgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxUb3AoKSBjb25zdCB7IHJl
dHVybiBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpICsgbG9naWNhbFRvcE9m
ZnNldCgpOyB9CkBAIC05NSwxMCArOTYsMTIgQEAgcHVibGljOgogCiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGluZVRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGVMaW5lVG9wICsgbG9naWNhbFRv
cE9mZnNldCgpOyB9CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZUJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhcGVMaW5lVG9wICsgbV9saW5lSGVpZ2h0ICsgbG9naWNhbFRvcE9mZnNldCgp
OyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZUJvdHRvbShMYXlvdXRVbml0IGxpbmVIZWln
aHQpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGVMaW5lVG9wICsgbGluZUhlaWdodCArIGxvZ2ljYWxU
b3BPZmZzZXQoKTsgfQogCiAgICAgTGF5b3V0VW5pdCBzaGFwZUNvbnRhaW5pbmdCbG9ja0xvZ2lj
YWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiAobV9yZW5kZXJlci0+c3R5bGUoKS0+Ym94U2l6aW5n
KCkgPT0gQ09OVEVOVF9CT1gpID8gKG1fc2hhcGVMb2dpY2FsU2l6ZS5oZWlnaHQoKSArIG1fcmVu
ZGVyZXItPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpIDogbV9zaGFwZUxvZ2ljYWxT
aXplLmhlaWdodCgpOyB9CiAKICAgICBib29sIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29u
c3QgeyByZXR1cm4gbG9naWNhbExpbmVUb3AoKSA8IHNoYXBlTG9naWNhbEJvdHRvbSgpICYmIHNo
YXBlTG9naWNhbFRvcCgpIDw9IGxvZ2ljYWxMaW5lQm90dG9tKCk7IH0KKyAgICBib29sIGxpbmVP
dmVybGFwc1NoYXBlQm91bmRzKExheW91dFVuaXQgbGluZUhlaWdodCkgY29uc3QgeyByZXR1cm4g
bG9naWNhbExpbmVUb3AoKSA8IHNoYXBlTG9naWNhbEJvdHRvbSgpICYmIHNoYXBlTG9naWNhbFRv
cCgpIDw9IGxvZ2ljYWxMaW5lQm90dG9tKGxpbmVIZWlnaHQpOyB9CiAKICAgICB2b2lkIGRpcnR5
U2hhcGVTaXplKCkgeyBtX3NoYXBlLmNsZWFyKCk7IH0KICAgICBib29sIHNoYXBlU2l6ZURpcnR5
KCkgeyByZXR1cm4gIW1fc2hhcGUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBjYmVmOTRjLi5iOGNiZWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRl
SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lk
ZUluZm8uY3BwCkBAIC04MSw1ICs4MSwxNyBAQCBTaGFwZVZhbHVlKiBTaGFwZUluc2lkZUluZm86
OnNoYXBlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmVyLT5zdHlsZSgpLT5yZXNv
bHZlZFNoYXBlSW5zaWRlKCk7CiB9CiAKK0xheW91dFVuaXQgU2hhcGVJbnNpZGVJbmZvOjpjb21w
dXRlRmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IExheW91dFNpemUgZmxvYXRTaXplKSBj
b25zdAoreworICAgIGlmICghY29tcHV0ZWRTaGFwZSgpIHx8ICFmbG9hdFNpemUud2lkdGgoKSB8
fCBzaGFwZUxvZ2ljYWxCb3R0b20oKSA8IGxvZ2ljYWxMaW5lVG9wKCkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgTGF5b3V0VW5pdCBmaXJzdEZpdFBvc2l0aW9uID0gMDsKKyAgICBpZiAoY29t
cHV0ZWRTaGFwZSgpLT5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1fc2hhcGVMaW5l
VG9wLCBmbG9hdFNpemUsIGZpcnN0Rml0UG9zaXRpb24pICYmIChtX3NoYXBlTGluZVRvcCA8PSBm
aXJzdEZpdFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZpcnN0Rml0UG9zaXRpb247CisKKyAg
ICByZXR1cm4gMDsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAppbmRleCBjOWMyNzIwLi40MzU3ZmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgK
QEAgLTY4LDEwICs2OCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWRG
b3IoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKTsKIAotICAgIGJvb2wgY29tcHV0ZVNlZ21l
bnRzRm9yTGluZShMYXlvdXRTaXplIGxpbmVPZmZzZXQsIExheW91dFVuaXQgbGluZUhlaWdodCkK
KyAgICBib29sIHVwZGF0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplIGxpbmVPZmZzZXQsIExh
eW91dFVuaXQgbGluZUhlaWdodCkKICAgICB7CiAgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVh
cigpOwotICAgICAgICBib29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaz46OmNvbXB1
dGVTZWdtZW50c0ZvckxpbmUobGluZU9mZnNldC5oZWlnaHQoKSwgbGluZUhlaWdodCk7CisgICAg
ICAgIGJvb2wgcmVzdWx0ID0gU2hhcGVJbmZvPFJlbmRlckJsb2NrPjo6dXBkYXRlU2VnbWVudHNG
b3JMaW5lKGxpbmVPZmZzZXQuaGVpZ2h0KCksIGxpbmVIZWlnaHQpOwogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgIG1f
c2VnbWVudHNbaV0ubG9naWNhbExlZnQgLT0gbGluZU9mZnNldC53aWR0aCgpOwogICAgICAgICAg
ICAgbV9zZWdtZW50c1tpXS5sb2dpY2FsUmlnaHQgLT0gbGluZU9mZnNldC53aWR0aCgpOwpAQCAt
NzksMTAgKzc5LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVU
b3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KSBPVkVSUklERQogICAgIHsKICAgICAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiBTaGFwZUluZm88UmVuZGVyQmxvY2s+Ojpjb21wdXRlU2VnbWVudHNGb3JM
aW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOworICAgICAgICByZXR1cm4gU2hhcGVJbmZvPFJlbmRl
ckJsb2NrPjo6dXBkYXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogICAg
IH0KIAogICAgIGJvb2wgaGFzU2VnbWVudHMoKSBjb25zdApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuICZtX3NlZ21lbnRzW21fc2VnbWVudFJhbmdlcy5zaXplKCld
OwogICAgIH0KICAgICBib29sIGFkanVzdExvZ2ljYWxMaW5lVG9wKGZsb2F0IG1pblNlZ21lbnRX
aWR0aCk7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlRmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KGNv
bnN0IExheW91dFNpemUpIGNvbnN0OwogCiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZh
bHVlKSB7IG1fbmVlZHNMYXlvdXQgPSB2YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7
IHJldHVybiBtX25lZWRzTGF5b3V0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCBlYzBkM2VjLi42MDgwZDdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUlu
Zm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRl
SW5mby5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBib29sIFNoYXBlT3V0c2lkZUluZm86OmlzRW5h
YmxlZEZvcihjb25zdCBSZW5kZXJCb3gqIGJveCkKIGJvb2wgU2hhcGVPdXRzaWRlSW5mbzo6Y29t
cHV0ZVNlZ21lbnRzRm9yQ29udGFpbmluZ0Jsb2NrTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExh
eW91dFVuaXQgZmxvYXRUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKIHsKICAgICBMYXlvdXRV
bml0IGxpbmVUb3BJblNoYXBlQ29vcmRpbmF0ZXMgPSBsaW5lVG9wIC0gZmxvYXRUb3AgKyBsb2dp
Y2FsVG9wT2Zmc2V0KCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRv
cEluU2hhcGVDb29yZGluYXRlcywgbGluZUhlaWdodCk7CisgICAgcmV0dXJuIHVwZGF0ZVNlZ21l
bnRzRm9yTGluZShsaW5lVG9wSW5TaGFwZUNvb3JkaW5hdGVzLCBsaW5lSGVpZ2h0KTsKIH0KIAot
Ym9vbCBTaGFwZU91dHNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQg
bGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQorYm9vbCBTaGFwZU91dHNpZGVJbmZvOjp1
cGRhdGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVI
ZWlnaHQpCiB7CiAgICAgaWYgKHNoYXBlU2l6ZURpcnR5KCkgfHwgbV9saW5lVG9wICE9IGxpbmVU
b3AgfHwgbV9saW5lSGVpZ2h0ICE9IGxpbmVIZWlnaHQpIHsKLSAgICAgICAgaWYgKFNoYXBlSW5m
bzxSZW5kZXJCb3g+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQp
KSB7CisgICAgICAgIGlmIChTaGFwZUluZm88UmVuZGVyQm94Pjo6dXBkYXRlU2VnbWVudHNGb3JM
aW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpKSB7CiAgICAgICAgICAgICBtX2xlZnRTZWdtZW50TWFy
Z2luQm94RGVsdGEgPSBtX3NlZ21lbnRzWzBdLmxvZ2ljYWxMZWZ0ICsgbV9yZW5kZXJlci0+bWFy
Z2luU3RhcnQoKTsKICAgICAgICAgICAgIG1fcmlnaHRTZWdtZW50TWFyZ2luQm94RGVsdGEgPSBt
X3NlZ21lbnRzW21fc2VnbWVudHMuc2l6ZSgpLTFdLmxvZ2ljYWxSaWdodCAtIG1fcmVuZGVyZXIt
PmxvZ2ljYWxXaWR0aCgpIC0gbV9yZW5kZXJlci0+bWFyZ2luRW5kKCk7CiAgICAgICAgIH0gZWxz
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0
c2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRl
SW5mby5oCmluZGV4IDc2YjIyMGUuLmUyYWQ2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCkBAIC00NSw3ICs0NSw3IEBAIHB1
YmxpYzoKICAgICBMYXlvdXRVbml0IHJpZ2h0U2VnbWVudE1hcmdpbkJveERlbHRhKCkgY29uc3Qg
eyByZXR1cm4gbV9yaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YTsgfQogCiAgICAgYm9vbCBjb21w
dXRlU2VnbWVudHNGb3JDb250YWluaW5nQmxvY2tMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5
b3V0VW5pdCBmbG9hdFRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KTsKLSAgICB2aXJ0dWFsIGJv
b2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZVNlZ21lbnRzRm9y
TGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgT1ZFUlJJREU7
CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxTaGFwZU91dHNpZGVJbmZvPiBjcmVhdGVJbmZvKGNv
bnN0IFJlbmRlckJveCogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBTaGFwZU91dHNp
ZGVJbmZvKHJlbmRlcmVyKSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWRGb3IoY29uc3Qg
UmVuZGVyQm94Kik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>