<?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>63897</bug_id>
          
          <creation_ts>2011-07-04 03:57:25 -0700</creation_ts>
          <short_desc>[CSSRegions] Parse -webkit-content-order property</short_desc>
          <delta_ts>2011-07-13 17:30:12 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>431875</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-04 03:57:25 -0700</bug_when>
    <thetext>Add support for content-order property: http://dev.w3.org/csswg/css3-regions/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431957</commentid>
    <comment_count>1</comment_count>
      <attachid>99636</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-04 09:17:58 -0700</bug_when>
    <thetext>Created attachment 99636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432519</commentid>
    <comment_count>2</comment_count>
      <attachid>99636</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-05 18:12:53 -0700</bug_when>
    <thetext>Comment on attachment 99636
Patch

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

Seems reasonable, but I&apos;d like tony/luke to comment.

&gt; LayoutTests/fast/regions/webkit-content-order-parsing-expected.txt:12
&gt; +PASS testCSSText(&quot;-webkit-content-order: 1&quot;) is &quot;1&quot;
&gt; +PASS testCSSText(&quot;-webkit-content-order: 0&quot;) is &quot;0&quot;
&gt; +PASS testCSSText(&quot;-webkit-content-order: -1&quot;) is &quot;-1&quot;
&gt; +PASS testCSSText(&quot;-webkit-content-order: 12.5&quot;) is &quot;&quot;

Do we need to test boundaries?  Like INT_MAX?

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1663
&gt; +            return primitiveValueCache-&gt;createValue(style-&gt;regionIndex(), CSSPrimitiveValue::CSS_NUMBER);

I thought Tony Chang recently added some wrappers for accessing the primativeValueCache?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4883
&gt; +    case CSSPropertyWebkitContentOrder:
&gt; +        if (isInitial) {
&gt; +            HANDLE_INITIAL_COND(CSSPropertyWebkitContentOrder, RegionIndex);
&gt; +            return;
&gt; +        }
&gt; +        if (isInherit) {
&gt; +            m_style-&gt;setRegionIndex(RenderStyle::initialRegionIndex());
&gt; +            return;
&gt; +        }
&gt; +        if (primitiveValue)
&gt; +            m_style-&gt;setRegionIndex(primitiveValue-&gt;getIntValue());

Luke should comment if this is the correct modern syntax.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:348
&gt; +        if (rareNonInheritedData-&gt;m_regionIndex != other-&gt;rareNonInheritedData-&gt;m_regionIndex)
&gt; +            return StyleDifferenceLayout;

You might have put this in the if above.  Not sure it really matters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432520</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-05 18:13:26 -0700</bug_when>
    <thetext>I know simon also likes seeing some of these CSS patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433047</commentid>
    <comment_count>4</comment_count>
      <attachid>99636</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-06 14:41:42 -0700</bug_when>
    <thetext>Comment on attachment 99636
Patch

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

Minor nits.

&gt; LayoutTests/ChangeLog:13
&gt; +        ():
&gt; +        (testComputedStyle):
&gt; +        (testNotInherited):

Not sure why the changelog did this, but you can just remove these lines.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4882
&gt; +        if (primitiveValue)

Confused why HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE can&apos;t be used here.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1099
&gt; +    void setRegionIndex(int i) { SET_VAR(rareNonInheritedData, m_regionIndex, i); }

Change &quot;i&quot; to &quot;index&quot; please. We don&apos;t like single-letter variable names for parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434833</commentid>
    <comment_count>5</comment_count>
      <attachid>100290</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-11 06:35:31 -0700</bug_when>
    <thetext>Created attachment 100290
Patch 2

Second version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436546</commentid>
    <comment_count>6</comment_count>
      <attachid>100290</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-13 11:28:03 -0700</bug_when>
    <thetext>Comment on attachment 100290
Patch 2

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

Looks good, although I&apos;d like to see a large index test and the added clamping, since this is so similar to z-index. I want to make sure we have the same clamping protection in place.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4897
&gt; +    case CSSPropertyWebkitContentOrder:
&gt; +        HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(regionIndex, RegionIndex);
&gt; +        return;

I think since this is so similar to z-index, we&apos;ll need to worry about people using ridiculously large content-order values. You should take a look at the z-index handling in CSSStyleSelector.cpp and mimic it. In particular I think you need a clampToInteger call.

m_style-&gt;setZIndex(clampToInteger(primitiveValue-&gt;getDoubleValue()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436648</commentid>
    <comment_count>7</comment_count>
      <attachid>100710</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-13 14:22:35 -0700</bug_when>
    <thetext>Created attachment 100710
Patch 3

Reworked patch, add clamping and large values in test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436682</commentid>
    <comment_count>8</comment_count>
      <attachid>100710</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-13 14:51:41 -0700</bug_when>
    <thetext>Comment on attachment 100710
Patch 3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436782</commentid>
    <comment_count>9</comment_count>
      <attachid>100710</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 17:30:08 -0700</bug_when>
    <thetext>Comment on attachment 100710
Patch 3

Clearing flags on attachment: 100710

Committed r90966: &lt;http://trac.webkit.org/changeset/90966&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436783</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 17:30:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99636</attachid>
            <date>2011-07-04 09:17:58 -0700</date>
            <delta_ts>2011-07-11 06:35:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>63897.patch</filename>
            <type>text/plain</type>
            <size>15163</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMjQwYjc0Li40ZWY0ZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDct
MDQgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgUGFyc2Ug
d2Via2l0LWNvbnRlbnQtb3JkZXIKKworICAgICAgICBbQ1NTUmVnaW9uc11QYXJzZSAoLXdlYmtp
dC0pY29udGVudC1vcmRlciBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0LWNvbnRl
bnQtb3JkZXItcGFyc2luZy5qczogQWRkZWQuCisgICAgICAgICgpOgorICAgICAgICAodGVzdENv
bXB1dGVkU3R5bGUpOgorICAgICAgICAodGVzdE5vdEluaGVyaXRlZCk6CisgICAgICAgICogZmFz
dC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5o
dG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNCAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWJhc2VsaW5lIGZvbGxvd2luZyByOTAzMzgK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0
LWNvbnRlbnQtb3JkZXItcGFyc2luZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zY3Jp
cHQtdGVzdHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45ZDI3MjUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3NjcmlwdC10ZXN0cy93ZWJraXQtY29udGVudC1vcmRlci1wYXJzaW5n
LmpzCkBAIC0wLDAgKzEsNjEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBwYXJzaW5nIG9mIHdlYmtp
dC1jb250ZW50LW9yZGVyIHByb3BlcnR5Jyk7CisKK3ZhciB3ZWJraXRDb250ZW50T3JkZXJQcm9w
ZXJ0eSA9ICItd2Via2l0LWNvbnRlbnQtb3JkZXIiOworCitmdW5jdGlvbiB0ZXN0Q1NTVGV4dChk
ZWNsYXJhdGlvbikgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICBkaXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGRlY2xhcmF0aW9uKTsKKyAgICByZXR1
cm4gZGl2LnN0eWxlLndlYmtpdENvbnRlbnRPcmRlcjsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1
dGVkU3R5bGUoZGVjbGFyYXRpb24pIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRp
di5zdHlsZS5zZXRQcm9wZXJ0eSh3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgZGVjbGFyYXRp
b24pOworCisgICAgdmFyIGNvbnRlbnRDb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShk
aXYpLmdldFByb3BlcnR5VmFsdWUod2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkpOworICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICByZXR1cm4gY29udGVudENvbXB1dGVk
VmFsdWU7Cit9CisKK2Z1bmN0aW9uIHRlc3ROb3RJbmhlcml0ZWQocGFyZW50VmFsdWUsIGNoaWxk
VmFsdWUpIHsKKyAgICB2YXIgcGFyZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnREaXYpOworICAgIHBhcmVu
dERpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgcGFyZW50
VmFsdWUpOworCisgICAgdmFyIGNoaWxkRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgcGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTsKKyAgICBjaGlsZERpdi5z
dHlsZS5zZXRQcm9wZXJ0eSh3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgY2hpbGRWYWx1ZSk7
CisKKyAgICB2YXIgY2hpbGRXZWJLaXRGbG93Q29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5
bGUoY2hpbGREaXYpLmdldFByb3BlcnR5VmFsdWUod2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkp
OworCisgICAgcGFyZW50RGl2LnJlbW92ZUNoaWxkKGNoaWxkRGl2KTsKKyAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHBhcmVudERpdik7CisKKyAgICByZXR1cm4gY2hpbGRXZWJLaXRGbG93
Q29tcHV0ZWRWYWx1ZTsKK30KKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgi
JyArIHdlYmtpdENvbnRlbnRPcmRlclByb3BlcnR5ICsgJzogYXV0byIpJywgIiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgiJyArIHdlYmtpdENvbnRlbnRPcmRlclByb3Bl
cnR5ICsgJzogaW5pdGlhbCIpJywgImluaXRpYWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IGluaGVyaXQi
KScsICJpbmhlcml0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCInICsg
d2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkgKyAnOiAxIiknLCAiMSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgiJyArIHdlYmtpdENvbnRlbnRPcmRlclByb3BlcnR5ICsg
JzogMCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3
ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IC0xIiknLCAiLTEiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSAr
ICc6IDEyLjUiKScsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicg
KyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IDFweCIpJywgIiIpOworCitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCJhdXRvIiknLCAiMCIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiaW5pdGlhbCIpJywgIjAiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoImluaGVyaXQiKScsICIwIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCIxIiknLCAiMSIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiMCIpJywgIjAiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoIi0xIiknLCAiLTEiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoIjEyLjUiKScsICIwIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCIxcHgiKScsICIwIik7CisK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiMCIsICIwIiknLCAiMCIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCIwIiwgIjEiKScsICIx
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoIjEiLCAiMCIpJywg
IjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiMSIsICIyIikn
LCAiMiIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZGRj
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWNv
bnRlbnQtb3JkZXItcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorVGVzdHMg
cGFyc2luZyBvZiB3ZWJraXQtY29udGVudC1vcmRlciBwcm9wZXJ0eQorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50LW9yZGVy
OiBhdXRvIikgaXMgIiIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1vcmRlcjog
aW5pdGlhbCIpIGlzICJpbml0aWFsIgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50
LW9yZGVyOiBpbmhlcml0IikgaXMgImluaGVyaXQiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0
LWNvbnRlbnQtb3JkZXI6IDEiKSBpcyAiMSIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29u
dGVudC1vcmRlcjogMCIpIGlzICIwIgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50
LW9yZGVyOiAtMSIpIGlzICItMSIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1v
cmRlcjogMTIuNSIpIGlzICIiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRlbnQtb3Jk
ZXI6IDFweCIpIGlzICIiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJhdXRvIikgaXMgIjAiCitQ
QVNTIHRlc3RDb21wdXRlZFN0eWxlKCJpbml0aWFsIikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRl
ZFN0eWxlKCJpbmhlcml0IikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCIxIikgaXMg
IjEiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCIwIikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRl
ZFN0eWxlKCItMSIpIGlzICItMSIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjEyLjUiKSBpcyAi
MCIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjFweCIpIGlzICIwIgorUEFTUyB0ZXN0Tm90SW5o
ZXJpdGVkKCIwIiwgIjAiKSBpcyAiMCIKK1BBU1MgdGVzdE5vdEluaGVyaXRlZCgiMCIsICIxIikg
aXMgIjEiCitQQVNTIHRlc3ROb3RJbmhlcml0ZWQoIjEiLCAiMCIpIGlzICIwIgorUEFTUyB0ZXN0
Tm90SW5oZXJpdGVkKCIxIiwgIjIiKSBpcyAiMiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmIyZjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmcuaHRtbApAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy93ZWJraXQtY29udGVudC1vcmRlci1wYXJzaW5nLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU4MjNh
ZmQuLjQ0NTY5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNy0wNCAgTWlo
bmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVnaW9uc11Q
YXJzZSAoLXdlYmtpdC0pY29udGVudC1vcmRlciBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L3JlZ2lvbnMvd2Via2l0LWNv
bnRlbnQtb3JkZXItcGFyc2luZy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6cmVnaW9uSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFJlZ2lvbkluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbml0aWFsUmVnaW9uSW5kZXgpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaDoKKwogMjAxMS0wNy0wNCAgRGFuaWxvIENlc2FyIExlbWVzIGRlIFBh
dWxhICA8ZGFuaWxvLmNlc2FyQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBbUXRdIEZpeGlu
ZyBidWlsZCB3aXRoIC0tbWVkaWEtc3RyZWFtIGZsYWcgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2MmY0ZWE2
Li42M2M3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcApAQCAtMjQ2LDcgKzI0Niw5IEBAIHN0YXRpYyBjb25zdCBpbnQgY29t
cHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LAog
ICAgIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdFdy
aXRpbmdNb2RlCi0KKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgLCBDU1NQcm9wZXJ0eVdl
YmtpdENvbnRlbnRPcmRlcgorI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAsCiAgICAgQ1NT
UHJvcGVydHlDbGlwUGF0aCwKQEAgLTE2NTYsNyArMTY1OCwxMCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50
IHByb3BlcgogICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgp
LCBwcm9wZXJ0eUlELCBwcmltaXRpdmVWYWx1ZUNhY2hlKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUNvdW50ZXJSZXNldDoKICAgICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShz
dHlsZS5nZXQoKSwgcHJvcGVydHlJRCwgcHJpbWl0aXZlVmFsdWVDYWNoZSk7Ci0gICAgICAgIAor
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENv
bnRlbnRPcmRlcjoKKyAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVh
dGVWYWx1ZShzdHlsZS0+cmVnaW9uSW5kZXgoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1C
RVIpOworI2VuZGlmCiAgICAgICAgIC8qIFNob3J0aGFuZCBwcm9wZXJ0aWVzLCBjdXJyZW50bHkg
bm90IHN1cHBvcnRlZCBzZWUgYnVnIDEzNjU4Ki8KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJh
Y2tncm91bmQ6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXI6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IGZmNDNhMmQuLjNiMDA1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCkBAIC0xNTg3LDYgKzE1ODcsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50
IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZh
bGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdlciB8IEZOb25OZWcsIG1fc3RyaWN0KTsKICAg
ICAgICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdENvbnRlbnRPcmRlcjoKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2
YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOworI2Vu
ZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8
IGVsZW1lbnQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1
ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVFbGVtZW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA3NzQ3
ZDQ5Li5hMjk4YjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAt
MzI2LDMgKzMyNiw2IEBAIHotaW5kZXgKIC13ZWJraXQtdXNlci1kcmFnCiAtd2Via2l0LXVzZXIt
bW9kaWZ5CiAtd2Via2l0LXVzZXItc2VsZWN0CisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX1JFR0lP
TlMpICYmIEVOQUJMRV9DU1NfUkVHSU9OUworLXdlYmtpdC1jb250ZW50LW9yZGVyCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAxYzFlOTMxLi45MjJi
MDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00ODY5LDYg
KzQ4NjksMjAgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICNlbmRpZgorI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29udGVudE9y
ZGVyOgorICAgICAgICBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgICAgICBIQU5ETEVfSU5JVElB
TF9DT05EKENTU1Byb3BlcnR5V2Via2l0Q29udGVudE9yZGVyLCBSZWdpb25JbmRleCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0UmVnaW9uSW5kZXgoUmVuZGVyU3R5bGU6OmluaXRpYWxSZWdp
b25JbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUpCisgICAgICAgICAgICBtX3N0eWxlLT5zZXRSZWdpb25JbmRleChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOgogICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1
ZWVEaXJlY3Rpb24pCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGMzMDRjMWMuLjYxZDE2MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMzQzLDcg
KzM0MywxMCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgfHwgcmFyZU5v
bkluaGVyaXRlZERhdGEtPmxpbmVDbGFtcCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
PmxpbmVDbGFtcAogICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPnRleHRPdmVy
ZmxvdyAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPnRleHRPdmVyZmxvdykKICAgICAg
ICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7Ci0KKyNpZiBFTkFCTEUoQ1NTX1JF
R0lPTlMpCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25JbmRleCAh
PSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uSW5kZXgpCisgICAgICAgICAg
ICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OworI2VuZGlmCiAgICAgICAgIGlmIChyYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkgIT0gb3RoZXIt
PnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC5nZXQoKQogICAg
ICAgICAgICAgJiYgKnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJv
eC5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4
aWJsZUJveC5nZXQoKSkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGJk
YThjYTYuLmE4ZGM1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC03NDMsNiArNzQzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RleHRD
b21iaW5lKCkgY29uc3QgeyByZXR1cm4gdGV4dENvbWJpbmUoKSAhPSBUZXh0Q29tYmluZU5vbmU7
IH0KICAgICAvLyBFbmQgQ1NTMyBHZXR0ZXJzCiAKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisg
ICAgaW50IHJlZ2lvbkluZGV4KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fcmVnaW9uSW5kZXg7IH0KKyNlbmRpZgorCiAgICAgLy8gQXBwbGUtc3BlY2lmaWMgcHJvcGVy
dHkgZ2V0dGVyIG1ldGhvZHMKICAgICBFUG9pbnRlckV2ZW50cyBwb2ludGVyRXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVBvaW50ZXJFdmVudHM+KGluaGVyaXRlZF9mbGFncy5f
cG9pbnRlckV2ZW50cyk7IH0KICAgICBjb25zdCBBbmltYXRpb25MaXN0KiBhbmltYXRpb25zKCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYW5pbWF0aW9ucy5nZXQoKTsg
fQpAQCAtMTA5MSw2ICsxMDk1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRFbXBoYXNp
c1Bvc2l0aW9uKFRleHRFbXBoYXNpc1Bvc2l0aW9uIHBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZUlu
aGVyaXRlZERhdGEsIHRleHRFbXBoYXNpc1Bvc2l0aW9uLCBwb3NpdGlvbik7IH0KICAgICAvLyBF
bmQgQ1NTMyBTZXR0ZXJzCiAKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgdm9pZCBzZXRS
ZWdpb25JbmRleChpbnQgaSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3JlZ2lv
bkluZGV4LCBpKTsgfQorI2VuZGlmCisKICAgICAvLyBBcHBsZS1zcGVjaWZpYyBwcm9wZXJ0eSBz
ZXR0ZXJzCiAgICAgdm9pZCBzZXRQb2ludGVyRXZlbnRzKEVQb2ludGVyRXZlbnRzIHApIHsgaW5o
ZXJpdGVkX2ZsYWdzLl9wb2ludGVyRXZlbnRzID0gcDsgfQogCkBAIC0xMzIwLDYgKzEzMjgsMTAg
QEAgcHVibGljOgogICAgIHN0YXRpYyBMaW5lQm94Q29udGFpbiBpbml0aWFsTGluZUJveENvbnRh
aW4oKSB7IHJldHVybiBMaW5lQm94Q29udGFpbkJsb2NrIHwgTGluZUJveENvbnRhaW5JbmxpbmUg
fCBMaW5lQm94Q29udGFpblJlcGxhY2VkOyB9CiAgICAgc3RhdGljIEVJbWFnZVJlbmRlcmluZyBp
bml0aWFsSW1hZ2VSZW5kZXJpbmcoKSB7IHJldHVybiBJbWFnZVJlbmRlcmluZ0F1dG87IH0KIAor
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICBzdGF0aWMgaW50IGluaXRpYWxSZWdpb25JbmRl
eCgpIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgorCiAgICAgLy8gS2VlcCB0aGVzZSBhdCB0aGUgZW5k
LgogICAgIHN0YXRpYyBMaW5lQ2xhbXBWYWx1ZSBpbml0aWFsTGluZUNsYW1wKCkgeyByZXR1cm4g
TGluZUNsYW1wVmFsdWUoKTsgfQogICAgIHN0YXRpYyBib29sIGluaXRpYWxUZXh0U2l6ZUFkanVz
dCgpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA4MTA2NzA3
Li43M2UxYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC01NSw2ICs1NSw5IEBAIFN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAg
ICwgbV9wZXJzcGVjdGl2ZU9yaWdpblkoUmVuZGVyU3R5bGU6OmluaXRpYWxQZXJzcGVjdGl2ZU9y
aWdpblkoKSkKICAgICAsIG1fcGFnZVNpemUoKQogICAgICwgbV9wYWdlU2l6ZVR5cGUoUEFHRV9T
SVpFX0FVVE8pCisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorICAgICwgbV9yZWdpb25JbmRleChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFJlZ2lvbkluZGV4KCkpCisjZW5kaWYKIHsKIH0KIApAQCAtOTQs
NiArOTcsOSBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICwgbV9wZXJzcGVjdGl2ZU9y
aWdpblkoby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAsIG1fcGFnZVNpemUoby5tX3BhZ2VT
aXplKQogICAgICwgbV9wYWdlU2l6ZVR5cGUoby5tX3BhZ2VTaXplVHlwZSkKKyNpZiBFTkFCTEUo
Q1NTX1JFR0lPTlMpCisgICAgLCBtX3JlZ2lvbkluZGV4KG8ubV9yZWdpb25JbmRleCkKKyNlbmRp
ZgogewogfQogCkBAIC0xNDAsNiArMTQ2LDkgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAg
ICAgICAgJiYgKG1fcGVyc3BlY3RpdmVPcmlnaW5ZID09IG8ubV9wZXJzcGVjdGl2ZU9yaWdpblkp
CiAgICAgICAgICYmIChtX3BhZ2VTaXplID09IG8ubV9wYWdlU2l6ZSkKICAgICAgICAgJiYgKG1f
cGFnZVNpemVUeXBlID09IG8ubV9wYWdlU2l6ZVR5cGUpCisjaWYgRU5BQkxFKENTU19SRUdJT05T
KQorICAgICAgICAmJiAobV9yZWdpb25JbmRleCA9PSBvLm1fcmVnaW9uSW5kZXgpCisjZW5kaWYK
ICAgICAgICAgOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA2ODQ3YTZlLi4zYzE1NDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEzMSw2ICsxMzEsMTAgQEAgcHVibGljOgogICAg
IExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKICAgICBQYWdlU2l6ZVR5cGUgbV9wYWdlU2l6ZVR5cGU7
CiAKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgaW50IG1fcmVnaW9uSW5kZXg7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCk7CiAgICAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJik7
Cg==
</data>
<flag name="review"
          id="94155"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="94156"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100290</attachid>
            <date>2011-07-11 06:35:31 -0700</date>
            <delta_ts>2011-07-13 14:22:35 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>63897-2.patch</filename>
            <type>text/plain</type>
            <size>14978</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmY2YxMjc3Li41ZmE5NWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTEgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdIFBhcnNlIC13ZWJraXQtY29udGVudC1vcmRlciBwcm9wZXJ0eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9zY3JpcHQt
dGVzdHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2lu
Zy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXBkYXRlIHdpbi9saW51eCBwaXhlbCBl
eHBlY3RhdGlvbnMgZm9yIHI5MDcwMSAocGFydCA5Lz8/KS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2lu
Zy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0LWNvbnRl
bnQtb3JkZXItcGFyc2luZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
ZDI3MjUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Njcmlw
dC10ZXN0cy93ZWJraXQtY29udGVudC1vcmRlci1wYXJzaW5nLmpzCkBAIC0wLDAgKzEsNjEgQEAK
K2Rlc2NyaXB0aW9uKCdUZXN0cyBwYXJzaW5nIG9mIHdlYmtpdC1jb250ZW50LW9yZGVyIHByb3Bl
cnR5Jyk7CisKK3ZhciB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSA9ICItd2Via2l0LWNvbnRl
bnQtb3JkZXIiOworCitmdW5jdGlvbiB0ZXN0Q1NTVGV4dChkZWNsYXJhdGlvbikgeworICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc2V0QXR0cmli
dXRlKCJzdHlsZSIsIGRlY2xhcmF0aW9uKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLndlYmtpdENv
bnRlbnRPcmRlcjsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5bGUoZGVjbGFyYXRpb24p
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3
ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgZGVjbGFyYXRpb24pOworCisgICAgdmFyIGNvbnRl
bnRDb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUo
d2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZGl2KTsKKyAgICByZXR1cm4gY29udGVudENvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9u
IHRlc3ROb3RJbmhlcml0ZWQocGFyZW50VmFsdWUsIGNoaWxkVmFsdWUpIHsKKyAgICB2YXIgcGFy
ZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChwYXJlbnREaXYpOworICAgIHBhcmVudERpdi5zdHlsZS5zZXRQcm9wZXJ0
eSh3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgcGFyZW50VmFsdWUpOworCisgICAgdmFyIGNo
aWxkRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyZW50RGl2LmFw
cGVuZENoaWxkKGNoaWxkRGl2KTsKKyAgICBjaGlsZERpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3ZWJr
aXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgY2hpbGRWYWx1ZSk7CisKKyAgICB2YXIgY2hpbGRXZWJL
aXRGbG93Q29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoY2hpbGREaXYpLmdldFByb3Bl
cnR5VmFsdWUod2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkpOworCisgICAgcGFyZW50RGl2LnJl
bW92ZUNoaWxkKGNoaWxkRGl2KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBhcmVu
dERpdik7CisKKyAgICByZXR1cm4gY2hpbGRXZWJLaXRGbG93Q29tcHV0ZWRWYWx1ZTsKK30KKwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgiJyArIHdlYmtpdENvbnRlbnRPcmRl
clByb3BlcnR5ICsgJzogYXV0byIpJywgIiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
Q1NTVGV4dCgiJyArIHdlYmtpdENvbnRlbnRPcmRlclByb3BlcnR5ICsgJzogaW5pdGlhbCIpJywg
ImluaXRpYWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJr
aXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IGluaGVyaXQiKScsICJpbmhlcml0Iik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCInICsgd2Via2l0Q29udGVudE9yZGVyUHJv
cGVydHkgKyAnOiAxIiknLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4
dCgiJyArIHdlYmtpdENvbnRlbnRPcmRlclByb3BlcnR5ICsgJzogMCIpJywgIjAiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9w
ZXJ0eSArICc6IC0xIiknLCAiLTEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1Rl
eHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IDEyLjUiKScsICIiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQ
cm9wZXJ0eSArICc6IDFweCIpJywgIiIpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RD
b21wdXRlZFN0eWxlKCJhdXRvIiknLCAiMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
Q29tcHV0ZWRTdHlsZSgiaW5pdGlhbCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdENvbXB1dGVkU3R5bGUoImluaGVyaXQiKScsICIwIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCIxIiknLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0Q29tcHV0ZWRTdHlsZSgiMCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdENvbXB1dGVkU3R5bGUoIi0xIiknLCAiLTEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdENvbXB1dGVkU3R5bGUoIjEyLjUiKScsICIwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3Rlc3RDb21wdXRlZFN0eWxlKCIxcHgiKScsICIwIik7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGVzdE5vdEluaGVyaXRlZCgiMCIsICIwIiknLCAiMCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCIwIiwgIjEiKScsICIxIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoIjEiLCAiMCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiMSIsICIyIiknLCAiMiIpOworCitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dl
YmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMGM5OTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMgcGFyc2luZyBvZiB3ZWJraXQtY29u
dGVudC1vcmRlciBwcm9wZXJ0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50LW9yZGVyOiBhdXRvIikgaXMgIiIKK1BBU1Mg
dGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1vcmRlcjogaW5pdGlhbCIpIGlzICJpbml0aWFs
IgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50LW9yZGVyOiBpbmhlcml0IikgaXMg
ImluaGVyaXQiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRlbnQtb3JkZXI6IDEiKSBp
cyAiMSIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1vcmRlcjogMCIpIGlzICIw
IgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50LW9yZGVyOiAtMSIpIGlzICItMSIK
K1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1vcmRlcjogMTIuNSIpIGlzICIiCitQ
QVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRlbnQtb3JkZXI6IDFweCIpIGlzICIiCitQQVNT
IHRlc3RDb21wdXRlZFN0eWxlKCJhdXRvIikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxl
KCJpbml0aWFsIikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJpbmhlcml0IikgaXMg
IjAiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCIxIikgaXMgIjEiCitQQVNTIHRlc3RDb21wdXRl
ZFN0eWxlKCIwIikgaXMgIjAiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCItMSIpIGlzICItMSIK
K1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjEyLjUiKSBpcyAiMCIKK1BBU1MgdGVzdENvbXB1dGVk
U3R5bGUoIjFweCIpIGlzICIwIgorUEFTUyB0ZXN0Tm90SW5oZXJpdGVkKCIwIiwgIjAiKSBpcyAi
MCIKK1BBU1MgdGVzdE5vdEluaGVyaXRlZCgiMCIsICIxIikgaXMgIjEiCitQQVNTIHRlc3ROb3RJ
bmhlcml0ZWQoIjEiLCAiMCIpIGlzICIwIgorUEFTUyB0ZXN0Tm90SW5oZXJpdGVkKCIxIiwgIjIi
KSBpcyAiMiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9y
ZGVyLXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtY29udGVu
dC1vcmRlci1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MDZiMmYwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtY29udGVudC1vcmRlci1wYXJzaW5nLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWQxNTEzLi43YjY0YjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDctMTEgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBh
ZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdIFBhcnNlIC13ZWJraXQtY29udGVudC1v
cmRlciBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjM4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5odG1s
CisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NW
YWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IGludCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRl
ZEZsYWdzOjpyZWdpb25JbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
c2V0UmVnaW9uSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRp
YWxSZWdpb25JbmRleCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorCiAyMDExLTA3LTA4ICBNaWtoYWls
IE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogW0Nocm9taXVtXSBHZXQgcmlkIG9mIGZsaWNrZXJpbmcgIlBsZWFzZSB3YWl0IiBtZXNzYWdl
IGluIEhlYXAgcHJvZmlsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDIyMjgwZTEuLmUwNDNhMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0y
NDgsNiArMjQ4LDcgQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsK
ICAgICBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlCiAjaWYgRU5BQkxFKENTU19SRUdJT05T
KQogICAgICwgQ1NTUHJvcGVydHlXZWJraXRGbG93CisgICAgLCBDU1NQcm9wZXJ0eVdlYmtpdENv
bnRlbnRPcmRlcgogI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAsCkBAIC0xNjY3LDYgKzE2
NjgsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICAgICAgaWYgKHN0eWxlLT5m
bG93VGhyZWFkKCkuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZh
bHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZVZhbHVlKHN0eWxlLT5mbG93VGhy
ZWFkKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdENvbnRlbnRPcmRlcjoKKyAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVW
YWx1ZUNhY2hlLT5jcmVhdGVWYWx1ZShzdHlsZS0+cmVnaW9uSW5kZXgoKSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpOwogI2VuZGlmCiAgICAgICAgIC8qIFNob3J0aGFuZCBwcm9wZXJ0
aWVzLCBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBzZWUgYnVnIDEzNjU4Ki8KICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDE5
Y2RjMDIuLjc0M2UxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xNTkwLDYgKzE1
OTAsOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEZsb3c6CiAgICAgICAgIHJldHVybiBwYXJzZUZsb3dUaHJlYWQocHJvcElkLCBpbXBvcnRhbnQp
OworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb250ZW50T3JkZXI6CisgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciwgbV9zdHJpY3QpOworICAgICAg
ICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8g
YXV0byB8IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwg
aWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDQ3ZjJmMGMuLmJm
ZjgzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaApAQCAtNjMsNiArNjMsMjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIHNob3J0KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGludCBpKQorICAg
IDogbV90eXBlKENTU19OVU1CRVIpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCit7
CisgICAgbV92YWx1ZS5udW0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KGkpOworfQorCit0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgaW50KCkgY29uc3QKK3sKKyAg
ICBpZiAobV90eXBlID09IENTU19OVU1CRVIpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KG1fdmFsdWUubnVtKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAwOworfQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRUJvcmRlclN0eWxlIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQogICAgICwg
bV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgppbmRleCAyODIzMDAwLi5lMzQ0NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbgpAQCAtMzI4LDQgKzMyOCw1IEBAIHotaW5kZXgKIC13ZWJraXQtdXNlci1zZWxl
Y3QKICNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykgJiYgRU5BQkxFX0NTU19SRUdJT05T
CiAtd2Via2l0LWZsb3cKKy13ZWJraXQtY29udGVudC1vcmRlcgogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggYzNmOThiZi4uOGQ4MDRlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDg5Miw2ICs0ODkyLDkgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZh
bHVlKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRGbG93VGhyZWFkKHBy
aW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRDb250ZW50T3JkZXI6CisgICAgICAgIEhBTkRMRV9JTkhFUklU
X0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUocmVnaW9uSW5kZXgsIFJlZ2lvbkluZGV4KTsKKyAg
ICAgICAgcmV0dXJuOwogI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVE
aXJlY3Rpb246CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJ
VkUobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURpcmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDNjMDMyNWMuLjZiZWQwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtMzQ2LDcgKzM0Niw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25z
dCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAKICNpZiBFTkFCTEUo
Q1NTX1JFR0lPTlMpCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhy
ZWFkICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkCi0gICAgICAg
ICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25UaHJlYWQgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvblRocmVhZCkKKyAgICAgICAgICAgIHx8IHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvblRocmVhZCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fcmVnaW9uVGhyZWFkCisgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9yZWdpb25JbmRleCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9u
SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OwogI2VuZGlm
CiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVC
b3guZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4
aWJsZUJveC5nZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAppbmRleCAzYmVkMzA1Li42Nzk0ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzQ2LDYgKzc0Niw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmbG93VGhyZWFkKCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxvd1RocmVhZDsgfQogICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgcmVnaW9uVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhyZWFkOyB9CisgICAgaW50IHJlZ2lvbkluZGV4KCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uSW5kZXg7IH0KICNl
bmRpZgogCiAgICAgLy8gQXBwbGUtc3BlY2lmaWMgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZHMKQEAg
LTEwOTksNiArMTEwMCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
dm9pZCBzZXRGbG93VGhyZWFkKGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd1RocmVhZCkgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2Zsb3dUaHJlYWQsIGZsb3dUaHJlYWQpOyB9CiAg
ICAgdm9pZCBzZXRSZWdpb25UaHJlYWQoY29uc3QgQXRvbWljU3RyaW5nJiByZWdpb25UaHJlYWQp
IHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9yZWdpb25UaHJlYWQsIHJlZ2lvblRo
cmVhZCk7IH0KKyAgICB2b2lkIHNldFJlZ2lvbkluZGV4KGludCByZWdpb25JbmRleCkgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3JlZ2lvbkluZGV4LCByZWdpb25JbmRleCk7IH0K
ICNlbmRpZgogCiAgICAgLy8gQXBwbGUtc3BlY2lmaWMgcHJvcGVydHkgc2V0dGVycwpAQCAtMTMz
Myw2ICsxMzM1LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWFsRmxvd1RocmVhZCgpIHsgcmV0dXJuIG51bGxB
dG9tOyB9CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhbFJlZ2lvblRocmVh
ZCgpIHsgcmV0dXJuIG51bGxBdG9tOyB9CisgICAgc3RhdGljIGludCBpbml0aWFsUmVnaW9uSW5k
ZXgoKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAogICAgIC8vIEtlZXAgdGhlc2UgYXQgdGhlIGVu
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA5ZmQzMTBlLi5lYTE0NzkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCkBAIC01OCw2ICs1OCw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogI2lmIEVOQUJMRShDU1NfUkVHSU9O
UykKICAgICAsIG1fZmxvd1RocmVhZChSZW5kZXJTdHlsZTo6aW5pdGlhbEZsb3dUaHJlYWQoKSkK
ICAgICAsIG1fcmVnaW9uVGhyZWFkKFJlbmRlclN0eWxlOjppbml0aWFsUmVnaW9uVGhyZWFkKCkp
CisgICAgLCBtX3JlZ2lvbkluZGV4KFJlbmRlclN0eWxlOjppbml0aWFsUmVnaW9uSW5kZXgoKSkK
ICNlbmRpZgogewogfQpAQCAtMTAxLDYgKzEwMiw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
CiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9mbG93VGhyZWFkKG8ubV9mbG93VGhy
ZWFkKQogICAgICwgbV9yZWdpb25UaHJlYWQoby5tX3JlZ2lvblRocmVhZCkKKyAgICAsIG1fcmVn
aW9uSW5kZXgoby5tX3JlZ2lvbkluZGV4KQogI2VuZGlmCiB7CiB9CkBAIC0xNTEsNiArMTUzLDcg
QEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
ICAgICYmIChtX2Zsb3dUaHJlYWQgPT0gby5tX2Zsb3dUaHJlYWQpCiAgICAgICAgICYmIChtX3Jl
Z2lvblRocmVhZCA9PSBvLm1fcmVnaW9uVGhyZWFkKQorICAgICAgICAmJiAobV9yZWdpb25JbmRl
eCA9PSBvLm1fcmVnaW9uSW5kZXgpCiAjZW5kaWYKICAgICAgICAgOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgKaW5kZXggMTAwOTRhYi4uMDY2Yjk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0x
MzQsNiArMTM0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBBdG9t
aWNTdHJpbmcgbV9mbG93VGhyZWFkOwogICAgIEF0b21pY1N0cmluZyBtX3JlZ2lvblRocmVhZDsK
KyAgICBpbnQgbV9yZWdpb25JbmRleDsKICNlbmRpZgogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="94946"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="94947"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100710</attachid>
            <date>2011-07-13 14:22:35 -0700</date>
            <delta_ts>2011-07-13 17:30:07 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>63897-3.patch</filename>
            <type>text/plain</type>
            <size>15494</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODNjY2M3Li5lNTY5OTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTMgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdIFBhcnNlIC13ZWJraXQtY29udGVudC1vcmRlciBwcm9wZXJ0eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9zY3JpcHQt
dGVzdHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2lu
Zy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xMyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFRlc3RzIHRoYXQgd2UgZG8gbm90IGNyYXNoIHdoZW4gZnJh
bWUgaXMgYmxvd24gYXdheSBpbiBhIGJlZm9yZWxvYWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMvd2Via2l0LWNvbnRlbnQt
b3JkZXItcGFyc2luZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2Ew
NDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NjcmlwdC10
ZXN0cy93ZWJraXQtY29udGVudC1vcmRlci1wYXJzaW5nLmpzCkBAIC0wLDAgKzEsNjggQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyBwYXJzaW5nIG9mIHdlYmtpdC1jb250ZW50LW9yZGVyIHByb3BlcnR5
Jyk7CisKK3ZhciB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSA9ICItd2Via2l0LWNvbnRlbnQt
b3JkZXIiOworCitmdW5jdGlvbiB0ZXN0Q1NTVGV4dChkZWNsYXJhdGlvbikgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc2V0QXR0cmlidXRl
KCJzdHlsZSIsIGRlY2xhcmF0aW9uKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLndlYmtpdENvbnRl
bnRPcmRlcjsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5bGUoZGVjbGFyYXRpb24pIHsK
KyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3ZWJr
aXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgZGVjbGFyYXRpb24pOworCisgICAgdmFyIGNvbnRlbnRD
b21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUod2Vi
a2l0Q29udGVudE9yZGVyUHJvcGVydHkpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZGl2KTsKKyAgICByZXR1cm4gY29udGVudENvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIHRl
c3ROb3RJbmhlcml0ZWQocGFyZW50VmFsdWUsIGNoaWxkVmFsdWUpIHsKKyAgICB2YXIgcGFyZW50
RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChwYXJlbnREaXYpOworICAgIHBhcmVudERpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3
ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSwgcGFyZW50VmFsdWUpOworCisgICAgdmFyIGNoaWxk
RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyZW50RGl2LmFwcGVu
ZENoaWxkKGNoaWxkRGl2KTsKKyAgICBjaGlsZERpdi5zdHlsZS5zZXRQcm9wZXJ0eSh3ZWJraXRD
b250ZW50T3JkZXJQcm9wZXJ0eSwgY2hpbGRWYWx1ZSk7CisKKyAgICB2YXIgY2hpbGRXZWJLaXRG
bG93Q29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoY2hpbGREaXYpLmdldFByb3BlcnR5
VmFsdWUod2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkpOworCisgICAgcGFyZW50RGl2LnJlbW92
ZUNoaWxkKGNoaWxkRGl2KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBhcmVudERp
dik7CisKKyAgICByZXR1cm4gY2hpbGRXZWJLaXRGbG93Q29tcHV0ZWRWYWx1ZTsKK30KK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9w
ZXJ0eSArICc6IGF1dG8iKScsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1Rl
eHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IGluaXRpYWwiKScsICJpbml0
aWFsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCInICsgd2Via2l0Q29u
dGVudE9yZGVyUHJvcGVydHkgKyAnOiBpbmhlcml0IiknLCAiaW5oZXJpdCIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgiJyArIHdlYmtpdENvbnRlbnRPcmRlclByb3BlcnR5
ICsgJzogMSIpJywgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicg
KyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IDAiKScsICIwIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCInICsgd2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkg
KyAnOiAtMSIpJywgIi0xIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCIn
ICsgd2Via2l0Q29udGVudE9yZGVyUHJvcGVydHkgKyAnOiAyMTQ3NDgzNjQ3IiknLCAiMjE0NzQ4
MzY0NyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgiJyArIHdlYmtpdENv
bnRlbnRPcmRlclByb3BlcnR5ICsgJzogMjE0NzQ4MzY0OCIpJywgIjIxNDc0ODM2NDgiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQ
cm9wZXJ0eSArICc6IC0yMTQ3NDgzNjQ4IiknLCAiLTIxNDc0ODM2NDgiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSAr
ICc6IC0yMTQ3NDgzNjQ5IiknLCAiLTIxNDc0ODM2NDkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRDb250ZW50T3JkZXJQcm9wZXJ0eSArICc6IDEyLjUi
KScsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoIicgKyB3ZWJraXRD
b250ZW50T3JkZXJQcm9wZXJ0eSArICc6IDFweCIpJywgIiIpOworCitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCJhdXRvIiknLCAiMCIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiaW5pdGlhbCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoImluaGVyaXQiKScsICIwIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCIxIiknLCAiMSIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiMCIpJywgIjAiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoIi0xIiknLCAiLTEiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoIjIxNDc0ODM2NDciKScsICIyMTQ3NDgzNjQ3
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCIyMTQ3NDgzNjQ4
IiknLCAiMjE0NzQ4MzY0NyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRT
dHlsZSgiLTIxNDc0ODM2NDgiKScsICItMjE0NzQ4MzY0OCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiLTIxNDc0ODM2NDkiKScsICItMjE0NzQ4MzY0OCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiMTIuNSIpJywgIjAiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoIjFweCIpJywgIjAiKTsK
Kworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCIwIiwgIjAiKScsICIw
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoIjAiLCAiMSIpJywg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiMSIsICIwIikn
LCAiMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCIxIiwgIjIi
KScsICIyIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFy
c2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMy
NDk1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
Y29udGVudC1vcmRlci1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACitUZXN0
cyBwYXJzaW5nIG9mIHdlYmtpdC1jb250ZW50LW9yZGVyIHByb3BlcnR5CisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRlbnQtb3Jk
ZXI6IGF1dG8iKSBpcyAiIgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50LW9yZGVy
OiBpbml0aWFsIikgaXMgImluaXRpYWwiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRl
bnQtb3JkZXI6IGluaGVyaXQiKSBpcyAiaW5oZXJpdCIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJr
aXQtY29udGVudC1vcmRlcjogMSIpIGlzICIxIgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1j
b250ZW50LW9yZGVyOiAwIikgaXMgIjAiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRl
bnQtb3JkZXI6IC0xIikgaXMgIi0xIgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250ZW50
LW9yZGVyOiAyMTQ3NDgzNjQ3IikgaXMgIjIxNDc0ODM2NDciCitQQVNTIHRlc3RDU1NUZXh0KCIt
d2Via2l0LWNvbnRlbnQtb3JkZXI6IDIxNDc0ODM2NDgiKSBpcyAiMjE0NzQ4MzY0OCIKK1BBU1Mg
dGVzdENTU1RleHQoIi13ZWJraXQtY29udGVudC1vcmRlcjogLTIxNDc0ODM2NDgiKSBpcyAiLTIx
NDc0ODM2NDgiCitQQVNTIHRlc3RDU1NUZXh0KCItd2Via2l0LWNvbnRlbnQtb3JkZXI6IC0yMTQ3
NDgzNjQ5IikgaXMgIi0yMTQ3NDgzNjQ5IgorUEFTUyB0ZXN0Q1NTVGV4dCgiLXdlYmtpdC1jb250
ZW50LW9yZGVyOiAxMi41IikgaXMgIiIKK1BBU1MgdGVzdENTU1RleHQoIi13ZWJraXQtY29udGVu
dC1vcmRlcjogMXB4IikgaXMgIiIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoImF1dG8iKSBpcyAi
MCIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoImluaXRpYWwiKSBpcyAiMCIKK1BBU1MgdGVzdENv
bXB1dGVkU3R5bGUoImluaGVyaXQiKSBpcyAiMCIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjEi
KSBpcyAiMSIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjAiKSBpcyAiMCIKK1BBU1MgdGVzdENv
bXB1dGVkU3R5bGUoIi0xIikgaXMgIi0xIgorUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiMjE0NzQ4
MzY0NyIpIGlzICIyMTQ3NDgzNjQ3IgorUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiMjE0NzQ4MzY0
OCIpIGlzICIyMTQ3NDgzNjQ3IgorUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiLTIxNDc0ODM2NDgi
KSBpcyAiLTIxNDc0ODM2NDgiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCItMjE0NzQ4MzY0OSIp
IGlzICItMjE0NzQ4MzY0OCIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjEyLjUiKSBpcyAiMCIK
K1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIjFweCIpIGlzICIwIgorUEFTUyB0ZXN0Tm90SW5oZXJp
dGVkKCIwIiwgIjAiKSBpcyAiMCIKK1BBU1MgdGVzdE5vdEluaGVyaXRlZCgiMCIsICIxIikgaXMg
IjEiCitQQVNTIHRlc3ROb3RJbmhlcml0ZWQoIjEiLCAiMCIpIGlzICIwIgorUEFTUyB0ZXN0Tm90
SW5oZXJpdGVkKCIxIiwgIjIiKSBpcyAiMiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvd2Via2l0LWNvbnRlbnQtb3JkZXItcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wNmIyZjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1jb250ZW50LW9yZGVyLXBhcnNpbmcuaHRtbApAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy93ZWJraXQtY29udGVudC1vcmRlci1wYXJzaW5nLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4NWMwMGQu
LjJjMmM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNy0xMyAgTWlobmVh
IE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVnaW9uc10gUGFy
c2UgLXdlYmtpdC1jb250ZW50LW9yZGVyIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9ucy93ZWJraXQtY29udGVu
dC1vcmRlci1wYXJzaW5nLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpyZWdpb25JbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0UmVnaW9uSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxSZWdpb25JbmRleCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oOgorCiAyMDExLTA3LTEzICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYzk4
ZThmMi4uYjc3OTc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI0OCw2ICsyNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50
IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01v
ZGUKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgLCBDU1NQcm9wZXJ0eVdlYmtpdEZsb3cK
KyAgICAsIENTU1Byb3BlcnR5V2Via2l0Q29udGVudE9yZGVyCiAjZW5kaWYKICNpZiBFTkFCTEUo
U1ZHKQogICAgICwKQEAgLTE2NjcsNiArMTY2OCw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVy
CiAgICAgICAgICAgICBpZiAoc3R5bGUtPmZsb3dUaHJlYWQoKS5pc051bGwoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+
Y3JlYXRlVmFsdWUoc3R5bGUtPmZsb3dUaHJlYWQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29udGVudE9yZGVyOgorICAg
ICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZVZhbHVlKHN0eWxlLT5y
ZWdpb25JbmRleCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAjZW5kaWYKICAg
ICAgICAgLyogU2hvcnRoYW5kIHByb3BlcnRpZXMsIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIHNl
ZSBidWcgMTM2NTgqLwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTA4NTMxMS4uMTljOWIyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTE1OTQsNiArMTU5NCw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZh
bHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxvdzoKICAgICAgICAgcmV0dXJuIHBhcnNlRmxv
d1RocmVhZChwcm9wSWQsIGltcG9ydGFudCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENv
bnRlbnRPcmRlcjoKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJ
bnRlZ2VyLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8IGVsZW1lbnQKICAgICAgICAg
aWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NT
VmFsdWVFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBl
ZTc3MWRmLi5jMTRjYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpA
QCAtMzI4LDYgKzMyOCw3IEBAIHotaW5kZXgKIC13ZWJraXQtdXNlci1zZWxlY3QKICNpZiBkZWZp
bmVkKEVOQUJMRV9DU1NfUkVHSU9OUykgJiYgRU5BQkxFX0NTU19SRUdJT05TCiAtd2Via2l0LWZs
b3cKKy13ZWJraXQtY29udGVudC1vcmRlcgogI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfQ1NT
X0VYQ0xVU0lPTlMpICYmIEVOQUJMRV9DU1NfRVhDTFVTSU9OUwogLXdlYmtpdC13cmFwLXNoYXBl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggZDBjZGZhYi4uZTNm
YjRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDg5Miw2
ICs0ODkyLDEwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQs
IENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0
Rmxvd1RocmVhZChwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29udGVudE9yZGVyOgorICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChyZWdpb25JbmRleCwgUmVnaW9uSW5kZXgpOworICAg
ICAgICBtX3N0eWxlLT5zZXRSZWdpb25JbmRleChjbGFtcFRvSW50ZWdlcihwcmltaXRpdmVWYWx1
ZS0+Z2V0RG91YmxlVmFsdWUoKSkpOworICAgICAgICByZXR1cm47CiAjZW5kaWYKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFycXVlZURpcmVjdGlvbjoKICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUxfQU5EX1BSSU1JVElWRShtYXJxdWVlRGlyZWN0aW9uLCBNYXJxdWVlRGly
ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggMmQ3NGUxMS4uYjNhZDY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0zNTAsNyArMzUwLDggQEAgU3R5bGVEaWZmZXJl
bmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQm
IGNoYW5nZWRDb24KIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgaWYgKHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX2Zsb3dUaHJlYWQgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2Zsb3dUaHJlYWQKLSAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3JlZ2lvblRocmVhZCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhy
ZWFkKQorICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhyZWFk
ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25UaHJlYWQKKyAgICAgICAg
ICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvbkluZGV4ICE9IG90aGVyLT5yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25JbmRleCkKICAgICAgICAgICAgIHJldHVybiBTdHls
ZURpZmZlcmVuY2VMYXlvdXQ7CiAjZW5kaWYKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQwYmUyZDUuLjY5OTc4ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03NDYs
NiArNzQ2LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9mbG93VGhyZWFkOyB9CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByZWdpb25UaHJl
YWQoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25UaHJlYWQ7
IH0KKyAgICBpbnQgcmVnaW9uSW5kZXgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9yZWdpb25JbmRleDsgfQogI2VuZGlmCiAKICAgICAvLyBBcHBsZS1zcGVjaWZpYyBw
cm9wZXJ0eSBnZXR0ZXIgbWV0aG9kcwpAQCAtMTA5OSw2ICsxMTAwLDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKICAgICB2b2lkIHNldEZsb3dUaHJlYWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBmbG93VGhyZWFkKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fZmxv
d1RocmVhZCwgZmxvd1RocmVhZCk7IH0KICAgICB2b2lkIHNldFJlZ2lvblRocmVhZChjb25zdCBB
dG9taWNTdHJpbmcmIHJlZ2lvblRocmVhZCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3JlZ2lvblRocmVhZCwgcmVnaW9uVGhyZWFkKTsgfQorICAgIHZvaWQgc2V0UmVnaW9uSW5k
ZXgoaW50IHJlZ2lvbkluZGV4KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcmVn
aW9uSW5kZXgsIHJlZ2lvbkluZGV4KTsgfQogI2VuZGlmCiAKICAgICAvLyBBcHBsZS1zcGVjaWZp
YyBwcm9wZXJ0eSBzZXR0ZXJzCkBAIC0xMzQzLDYgKzEzNDUsNyBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKENTU19SRUdJT05TKQogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxG
bG93VGhyZWFkKCkgeyByZXR1cm4gbnVsbEF0b207IH0KICAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0aWFsUmVnaW9uVGhyZWFkKCkgeyByZXR1cm4gbnVsbEF0b207IH0KKyAgICBz
dGF0aWMgaW50IGluaXRpYWxSZWdpb25JbmRleCgpIHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCiAg
ICAgLy8gS2VlcCB0aGVzZSBhdCB0aGUgZW5kLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4
IGE3NDI4ZjguLmFlZWMwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU4LDYgKzU4
LDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YSgpCiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9mbG93VGhyZWFkKFJlbmRlclN0
eWxlOjppbml0aWFsRmxvd1RocmVhZCgpKQogICAgICwgbV9yZWdpb25UaHJlYWQoUmVuZGVyU3R5
bGU6OmluaXRpYWxSZWdpb25UaHJlYWQoKSkKKyAgICAsIG1fcmVnaW9uSW5kZXgoUmVuZGVyU3R5
bGU6OmluaXRpYWxSZWdpb25JbmRleCgpKQogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgICwgbV93cmFwU2hhcGUoUmVuZGVyU3R5bGU6OmluaXRpYWxXcmFwU2hhcGUoKSkK
QEAgLTEwNCw2ICsxMDUsNyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogI2lmIEVOQUJMRShD
U1NfUkVHSU9OUykKICAgICAsIG1fZmxvd1RocmVhZChvLm1fZmxvd1RocmVhZCkKICAgICAsIG1f
cmVnaW9uVGhyZWFkKG8ubV9yZWdpb25UaHJlYWQpCisgICAgLCBtX3JlZ2lvbkluZGV4KG8ubV9y
ZWdpb25JbmRleCkKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAsIG1f
d3JhcFNoYXBlKG8ubV93cmFwU2hhcGUpCkBAIC0xNTcsNiArMTU5LDcgQEAgYm9vbCBTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEmIG8pIGMKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgICYmIChtX2Zsb3dU
aHJlYWQgPT0gby5tX2Zsb3dUaHJlYWQpCiAgICAgICAgICYmIChtX3JlZ2lvblRocmVhZCA9PSBv
Lm1fcmVnaW9uVGhyZWFkKQorICAgICAgICAmJiAobV9yZWdpb25JbmRleCA9PSBvLm1fcmVnaW9u
SW5kZXgpCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgICYmICht
X3dyYXBTaGFwZSA9PSBvLm1fd3JhcFNoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZDdi
ZTMxYS4uZTI4OTRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMzgsNiArMTM4LDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBBdG9taWNTdHJpbmcgbV9mbG93
VGhyZWFkOwogICAgIEF0b21pY1N0cmluZyBtX3JlZ2lvblRocmVhZDsKKyAgICBpbnQgbV9yZWdp
b25JbmRleDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>