<?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>101108</bug_id>
          
          <creation_ts>2012-11-02 15:00:08 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Support outside-shape value on shape-inside</short_desc>
          <delta_ts>2012-11-20 14:40:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
    
    <blocked>102571</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757640</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-02 15:00:08 -0700</bug_when>
    <thetext>Make sure values outside-shape and auto work properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769685</commentid>
    <comment_count>1</comment_count>
      <attachid>174764</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-16 14:43:37 -0800</bug_when>
    <thetext>Created attachment 174764
Initial patch

Patch adding CSS support for the &apos;outside-shape&apos; value of shape-inside. Layout support to follow in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769873</commentid>
    <comment_count>2</comment_count>
      <attachid>174764</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-16 20:41:05 -0800</bug_when>
    <thetext>Comment on attachment 174764
Initial patch

Attachment 174764 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14872382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770876</commentid>
    <comment_count>3</comment_count>
      <attachid>175009</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-19 11:16:47 -0800</bug_when>
    <thetext>Created attachment 175009
Fixing windows build failure

Changing ExclusionShapeValue to not conditionally compile, as RenderStyle::shapeInside/Outside must return a value regardless of whether CSS Exclusions are enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771070</commentid>
    <comment_count>4</comment_count>
      <attachid>175009</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-19 15:04:58 -0800</bug_when>
    <thetext>Comment on attachment 175009
Fixing windows build failure

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

I think OutsideExclusionShapeValue does not make any sense. It is adding a new class without any sense IMO.

&gt; Source/WebCore/ChangeLog:11
&gt; +        auto (null), basic shape, or outside-shape. Eventually there will be a url

Well, it is &lt;shape&gt; (a Basic Shape), &apos;outside-shape&apos; and &apos;auto&apos;. It should be more clear here.

&gt; Source/WebCore/css/CSSValueKeywords.in:917
&gt;  // -webkit-wrap-shape

this is not called wrap-shape anymore, is it? Can you update this comment please?

&gt; Source/WebCore/css/StyleBuilder.cpp:1734
&gt; +                setValue(styleResolver-&gt;style(), OutsideExclusionShapeValue::create());

There should be an FIXME here, with a link to a bug report.

&gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:155
&gt; +    const BasicShape* fromShape = static_cast&lt;ShapeExclusionShapeValue*&gt;(from)-&gt;shape();
&gt; +    const BasicShape* toShape = static_cast&lt;ShapeExclusionShapeValue*&gt;(to)-&gt;shape();
&gt; +
&gt; +    if (!fromShape-&gt;canBlend(toShape))
&gt; +        return to;

You may want to blend with outside shape in the future. Please add an FIXME here.

&gt; Source/WebCore/rendering/RenderBlock.h:525
&gt; +    void updateExclusionShapeInsideInfoAfterStyleChange(const ExclusionShapeValue*, const ExclusionShapeValue* oldWrapShape);

Can you rename it to oldExclusionShape?

&gt; Source/WebCore/rendering/style/ExclusionShapeValue.h:69
&gt; +    : ExclusionShapeValue(SHAPE)
&gt; +    , m_shape(shape)

indentation looks wrong here.

&gt; Source/WebCore/rendering/style/ExclusionShapeValue.h:83
&gt; +class OutsideExclusionShapeValue : public ExclusionShapeValue {
&gt; +public:
&gt; +    static PassRefPtr&lt;OutsideExclusionShapeValue&gt; create()
&gt; +    {
&gt; +        return adoptRef(new OutsideExclusionShapeValue());
&gt; +    }
&gt; +
&gt; +private:
&gt; +    OutsideExclusionShapeValue() : ExclusionShapeValue(OUTSIDE) { }
&gt; +};

I don&apos;t think that you need to create this class at this point. It doesn&apos;t have any information. Just use ExclusionShapeValue for everything and remove OutsideExclusionShapeValue and ShapeExclusionShapeValue for now. Then we don&apos;t have unnecessary vtables and inheritance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771192</commentid>
    <comment_count>5</comment_count>
      <attachid>175074</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-19 16:41:22 -0800</bug_when>
    <thetext>Created attachment 175074
Incorporating Dirk&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772031</commentid>
    <comment_count>6</comment_count>
      <attachid>175249</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-20 11:14:30 -0800</bug_when>
    <thetext>Created attachment 175249
Updating patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772156</commentid>
    <comment_count>7</comment_count>
      <attachid>175249</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-20 14:08:13 -0800</bug_when>
    <thetext>Comment on attachment 175249
Updating patch

LGTM. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772184</commentid>
    <comment_count>8</comment_count>
      <attachid>175249</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-20 14:40:20 -0800</bug_when>
    <thetext>Comment on attachment 175249
Updating patch

Clearing flags on attachment: 175249

Committed r135314: &lt;http://trac.webkit.org/changeset/135314&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772185</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-20 14:40:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174764</attachid>
            <date>2012-11-16 14:43:37 -0800</date>
            <delta_ts>2012-11-19 11:16:45 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-101108-20121116144132.patch</filename>
            <type>text/plain</type>
            <size>34710</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMxODc1MjQ5OGFjZjQw
ZTE1YWQzZWIxYjJiNjk3YmI4YmY2ZDZhMC4uYzZlMzdlMDc5MTI4ODNlMTJmZDMwZDhhZjU1YzQ0
Y2Y2ZDgzZGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTExLTE2ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFN1cHBvcnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciB0
aGUgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvZiBzaGFwZS1pbnNpZGUuIFRoaXMgaW5pdGlhbCBwYXRj
aCBqdXN0CisgICAgICAgIGFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBwYXJzaW5nIGFuZCBz
dG9yaW5nIHRoZSB2YWx1ZSwgd2l0aG91dCBhY3R1YWxseSBkb2luZworICAgICAgICBsYXlvdXQu
IEl0IGludHJvZHVjZXMgdGhlIGNsYXNzIEV4Y2x1c2lvblNoYXBlVmFsdWUsIHdoaWNoIG1heSB0
YWtlIG9uIHRocmVlIHZhbHVlcywKKyAgICAgICAgYXV0byAobnVsbCksIGJhc2ljIHNoYXBlLCBv
ciBvdXRzaWRlLXNoYXBlLiBFdmVudHVhbGx5IHRoZXJlIHdpbGwgYmUgYSB1cmwKKyAgICAgICAg
RXhjbHVzaW9uU2hhcGVWYWx1ZSBhcyB3ZWxsLgorCisgICAgICAgIE1vZGlmeWluZyBleGlzdGlu
ZyB0ZXN0czoKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3Jh
cC1zaGFwZS1pbnNpZGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogQWRkaW5nIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCB0byB0aGUgYnVpbGQgZmlsZXMu
CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQ
cm9wZXJ0eUNTU1ZhbHVlKTogTW9kaWZ5aW5nIGNvZGUgdG8gdXNlCisgICAgICAgIEV4Y2x1c2lv
blNoYXBlVmFsdWUqIHJhdGhlciB0aGFuIHRoZSBwcmV2aW91cyBCYXNpY1NoYXBlKiB2YWx1ZXMu
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUpOiBIYW5kbGUgdGhlIG91dHNpZGUtc2hhcGUgdmFsdWUuCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZGluZyBvdXRzaWRlLXNoYXBlIHZhbHVlLgor
ICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGU6OnNldFZhbHVlKTogTW9k
aWZ5IGNvZGUgdG8gdXNlCisgICAgICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHJhdGhlciB0aGFu
IEJhc2ljU2hhcGUqLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNo
YXBlOjphcHBseVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
RXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUhhbmRsZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6YmxlbmRGdW5jKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdyYXBwZXJF
eGNsdXNpb25TaGFwZTo6UHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uOjplbnN1cmVQcm9wZXJ0eU1hcCk6
IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayk6CisgICAgICAgIERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVT
aXplKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9B
ZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0V4
Y2x1c2lvblNoYXBlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEV4Y2x1c2lvblNoYXBlVmFsdWUpOiBOZXcgdHlwZSB0byByZXByZXNlbnQgdGhlIHBvc3NpYmxl
IHZhbHVlcyBvZiBzaGFwZS1pbnNpZGUKKyAgICAgICAgYW5kIHNoYXBlLW91dHNpZGUuIE9ubHkg
c2hhcGUtaW5zaWRlIGNhbiBoYXZlIGEgdmFsdWUgb2YgT3V0c2lkZUV4Y2x1c2lvblNoYXBlVmFs
dWUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp+RXhjbHVzaW9uU2hh
cGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp0eXBlKTog
UmV0dXJucyB0aGUgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBl
VmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVWYWx1
ZTo6RXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChTaGFwZUV4Y2x1c2lvblNoYXBlVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlOjpjcmVhdGUp
OiBDcmVhdGUgYW4gU2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1ZTo6c2hhcGUpOiBUaGUgQmFzaWNTaGFw
ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlRXhj
bHVzaW9uU2hhcGVWYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUV4
Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChP
dXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpPdXRzaWRlRXhj
bHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlKTogQ3JlYXRlIGFuIE91dHNpZGVFeGNsdXNpb25TaGFw
ZVZhbHVlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6Ok91dHNpZGVFeGNsdXNpb25TaGFw
ZVZhbHVlOjpPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEp
OgorCiAyMDEyLTExLTE1ICBYaW5nbmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgog
CiAgICAgICAgIE9wdGltaXplIHRoZSBtdWx0aXBseS1hZGQgaW4gQmlxdWFkLmNwcDo6cHJvY2Vz
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjM0NDMzNjJkMWU3ZjhlODVlNjY5
Zjc4ODdiZTJlYjFiNjg4MzdkOC4uYWViYWVmMDc1MzYxZjNkNTI2NjMyNTRhYjdhNmM2NjhmZmU2
YjUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NDI1LDYgKzQ0MjUsNyBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9D
dXJzb3JEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDc2NGNiZTk3NTU2MGRi
Yzg5MmY5MGZkYzNmYWQ2MGM0Y2E2YzllZmYuLmUxODAxYjdlNjRkY2U3ODhmMTAwNGIzYTAxYWU2
ZWZiNjFjMjEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMjQzNSw2ICsyNDM1LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9DdXJzb3JEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0
LmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmggXAogICAgIHJl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1l
TGlzdC5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggZjFkMzA3YTYzNTBjOTRiYjRmODZkNDdlNTM0NjE5ZTMzODg3MTkzYi4uZWMy
NTAzNWE2OTkzMjdhNmMwNDA0NzVjNzY4YzkwOWMwYWE0MzJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNTk2LDYgKzU5Niw3IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0N1cnNvckRh
dGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0RhdGFSZWYuaCcsCisgICAgICAgICAgICAncmVuZGVy
aW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTGluZUNs
YW1wVmFsdWUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdl
LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCA0ZjAzNGU3MDZmYjhiOTRmNDhmMjM2MGU0MTJhNzNlNGI0MDdmMmI1Li42NjliZDA2Mzk2OWQ2
OWYwYTAxZjk3ZDJkOWFkZTljZmVlMWE0YzEwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDUzNTUsNiArNDUzNTUsMTAgQEAKIAkJCQkJPgog
CQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCSAgICBSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xzdHlsZVxFeGNsdXNpb25TaGFwZVZhbHVlLmgiCisJCQkJICAgID4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVy
LmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlY2I3NzkxZWMwOWI4
MGM4MTZhNGNlMzUwOWZjYTU4YmVmNGI1Zjk5Li5iZjIzYTUwMGI2YTU0YWMyYjhiNGJjMjdhZjVj
ZTNhMDkwZTMxMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02MzcyLDYgKzYzNzIsNyBAQAogCQlGRDA2REZBNTEzNEE0REVG
MDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDZERkEzMTM0QTRERUYwMDZGNUQ3
RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovOyB9OwogCQlGRDA2REZBNjEz
NEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDA2REZBNDEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggKi87IH07CiAJCUZEMTY2MEE1
MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDE2NjBBNDEzNzg3QzZEMDAxRkZBN0IgLyog
RGVub3JtYWxEaXNhYmxlci5oICovOyB9OworCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0RjcgLyog
RXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQxQUYxNEUxNjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
RDIzQTEyNTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyM0Ex
MjMxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAq
LzsgfTsKIAkJRkQyM0ExMjYxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDIzQTEyNDEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuaCAqLzsgfTsKIAkJRkQyREJGMTIxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQyREJGMEUxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovOyB9OwpA
QCAtMTM4NDQsNiArMTM4NDUsNyBAQAogCQlGRDA2REZBMzEzNEE0REVGMDA2RjVEN0QgLyogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZEMDZERkE0MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZE
MTY2MEE0MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlbm9ybWFsRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkQxQUYxNEUxNjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBl
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRXhjbHVzaW9uU2hhcGVW
YWx1ZS5oOyBwYXRoID0gc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDIzQTEyMzEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRDIzQTEyNDEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQy
REJGMEUxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBBY2NlbGVyYXRlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwpAQCAtMjA1ODYsNiArMjA1ODgsNyBAQAogCQkJCUJDMjI3MkExMEU4MkU4N0MwMEU3Rjk3NSAv
KiBDdXJzb3JEYXRhLmggKi8sCiAJCQkJQkMyMjcyQUMwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNv
ckxpc3QuaCAqLywKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oICov
LAorCQkJCUZEMUFGMTRFMTY1NkYxMjEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmgg
Ki8sCiAJCQkJQkM1RUI2OUMwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJ
CQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUJDNUVC
QTBFMEU4MjNFNDcwMEIyNTk2NSAvKiBLZXlmcmFtZUxpc3QuY3BwICovLApAQCAtMjI0MTAsNiAr
MjI0MTMsNyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJRkQxQUYxNTAxNjU2RjE1MTAw
QzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0ZB
NjIxMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MTM2OURBMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFmYjAwZDEzMmI2NGIxZjMzMDNiZTAw
OGFmM2I1MGVhMTJkNTdjZWUuLmFmNDQ3NjRlZTI4YjVhOGI2OTJkNmRmYTU4YmE2ZmUxZDZjODJi
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCkBAIC02NCw2ICs2NCwxMCBAQAogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlO
YW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZVZhbHVlLmgiCisjZW5k
aWYKKwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJBcnJh
eVBhcmFtZXRlci5oIgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5oIgpA
QCAtMjUwNSwxMSArMjUwOSwxNSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGU6CiAgICAgICAgICAgICBpZiAoIXN0eWxl
LT5zaGFwZUluc2lkZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5j
cmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPnNoYXBlSW5zaWRlKCkpOworICAgICAgICAgICAgZWxz
ZSBpZiAoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVl
OjpPVVRTSURFKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVPdXRzaWRlU2hhcGUpOworICAgICAgICAgICAgQVNTRVJU
KHN0eWxlLT5zaGFwZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hB
UEUpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdGF0aWNfY2FzdDxT
aGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUqPihzdHlsZS0+c2hhcGVJbnNpZGUoKSktPnNoYXBlKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAgICAgICAg
ICAgaWYgKCFzdHlsZS0+c2hhcGVPdXRzaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwotICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+c2hhcGVPdXRzaWRlKCkpOwor
ICAgICAgICAgICAgQVNTRVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09IEV4Y2x1
c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2lj
U2hhcGUoc3RhdGljX2Nhc3Q8U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlKj4oc3R5bGUtPnNoYXBl
T3V0c2lkZSgpKS0+c2hhcGUoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFw
VGhyb3VnaDoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShz
dHlsZS0+d3JhcFRocm91Z2goKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggMDZlZjU0Mzg1YTdlZGU3NGNlYWJhNmIwNzgxMmJiYTVmYTgyMTIzNC4uZjg2MDk2M2Q1Y2E4
ODM2ZTJjMTNlMjBjNjVmOTU5ODJmODU0MjBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTI3MzAsNiArMjczMCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAocHJvcElkID09IENTU1Byb3BlcnR5V2Via2l0
U2hhcGVJbnNpZGUgJiYgaWQgPT0gQ1NTVmFsdWVPdXRzaWRlU2hhcGUpCisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENT
U1BhcnNlclZhbHVlOjpGdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hh
cGUocHJvcElkLCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNGI5Y2M2ZWE2ZmJiZmU4Zjc0NTU1ZGFkNDc1OTgyYzVi
MzkxOWNhYy4uOTAxYTNkNDk4YzhjNTEyMzNlNGNjZTE0MTQ4NjNjYTc5MmE5MmZmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTkxNyw2ICs5MTcsNyBAQCBvcHRp
bWl6ZVF1YWxpdHkKIC8vIC13ZWJraXQtd3JhcC1zaGFwZQogbm9uemVybwogZXZlbm9kZAorb3V0
c2lkZS1zaGFwZQogCiAvLyAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwogLy8gYXV0bwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBlZDg4NjQwYTQ4YWUzNzQ5YmE2NjFhNTg3MzI2
ZTBlMGIzY2U0ZDlkLi5iNzE4YTVhNmYzNDFhMjlkOWEwMTJkYjA2N2ZhZDkwNTQxNGQ5YWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtNDcsNiArNDcsMTAgQEAKICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAK
KyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1
ZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTE3MTYsMjUgKzE3MjAsMjcgQEAgcHVibGljOgogfTsKIAogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKLXRlbXBsYXRlIDxCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJG
dW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFz
c1JlZlB0cjxCYXNpY1NoYXBlPiksIEJhc2ljU2hhcGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgor
dGVtcGxhdGUgPEV4Y2x1c2lvblNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0
aW9uKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlckZ1bmN0aW9uKShQYXNzUmVm
UHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+KSwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKCppbml0aWFs
RnVuY3Rpb24pKCk+CiBjbGFzcyBBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGUgewogcHVibGlj
OgotICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9
CisgICAgc3RhdGljIHZvaWQgc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBQYXNzUmVmUHRy
PEV4Y2x1c2lvblNoYXBlVmFsdWU+IHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1bmN0aW9uKSh2
YWx1ZSk7IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxl
UmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAg
IGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKICAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUF1dG8pCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5
bGUoKSwgMCk7CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZU91dHNpZGVTaGFwZSkKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLCBPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlKCkp
OwogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzU2hhcGUoKSkgewotICAg
ICAgICAgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSA9IGJhc2ljU2hhcGVGb3JWYWx1
ZShzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gc2hhcGUgPSBTaGFwZUV4Y2x1
c2lvblNoYXBlVmFsdWU6OmNyZWF0ZShiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwg
cHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIHNldFZh
bHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHNoYXBlLnJlbGVhc2UoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVI
YW5kbGVyKCkKICAgICB7Ci0gICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQ
cm9wZXJ0eURlZmF1bHRCYXNlPEJhc2ljU2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiwgc2V0dGVyRnVuY3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rp
b24+OjpjcmVhdGVIYW5kbGVyKCk7CisgICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0g
QXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBnZXR0ZXJGdW5j
dGlvbiwgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiwgc2V0dGVyRnVuY3Rpb24sIEV4
Y2x1c2lvblNoYXBlVmFsdWUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7CiAg
ICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwg
aGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwogICAgIH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAKaW5kZXggYjc2M2I1NjY1OWJiM2IxY2YyMjYwNTY2ZjJkNGU5NGNhYzZiMzNlZC4uNjk4
ZjhhYzhhOTJiNTJhZDc4ZDZjMjIyMjVlZjdiYWY3ZjZkZTg4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
MTQzLDEyICsxNDMsMTggQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0
aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXAKIH0KIAogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBi
bGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIEJhc2ljU2hhcGUqIGZyb20sIEJhc2ljU2hh
cGUqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8RXhjbHVz
aW9uU2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBFeGNsdXNpb25T
aGFwZVZhbHVlKiBmcm9tLCBFeGNsdXNpb25TaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNz
KQogewotICAgIGlmICghZnJvbS0+Y2FuQmxlbmQodG8pKQorICAgIGlmIChmcm9tLT50eXBlKCkg
IT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUgfHwgdG8tPnR5cGUoKSAhPSBFeGNsdXNpb25T
aGFwZVZhbHVlOjpTSEFQRSkKICAgICAgICAgcmV0dXJuIHRvOwogCi0gICAgcmV0dXJuIHRvLT5i
bGVuZChmcm9tLCBwcm9ncmVzcyk7CisgICAgY29uc3QgQmFzaWNTaGFwZSogZnJvbVNoYXBlID0g
c3RhdGljX2Nhc3Q8U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlKj4oZnJvbSktPnNoYXBlKCk7Cisg
ICAgY29uc3QgQmFzaWNTaGFwZSogdG9TaGFwZSA9IHN0YXRpY19jYXN0PFNoYXBlRXhjbHVzaW9u
U2hhcGVWYWx1ZSo+KHRvKS0+c2hhcGUoKTsKKworICAgIGlmICghZnJvbVNoYXBlLT5jYW5CbGVu
ZCh0b1NoYXBlKSkKKyAgICAgICAgcmV0dXJuIHRvOworCisgICAgcmV0dXJuIFNoYXBlRXhjbHVz
aW9uU2hhcGVWYWx1ZTo6Y3JlYXRlKHRvU2hhcGUtPmJsZW5kKGZyb21TaGFwZSwgcHJvZ3Jlc3Mp
KTsKIH0KICNlbmRpZgogCkBAIC00MDQsMTAgKzQxMCwxMCBAQCBwdWJsaWM6CiB9OwogCiAjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQotY2xhc3MgUHJvcGVydHlXcmFwcGVyQmFzaWNTaGFwZSA6
IHB1YmxpYyBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEJhc2ljU2hhcGU+IHsKK2NsYXNzIFBy
b3BlcnR5V3JhcHBlckV4Y2x1c2lvblNoYXBlIDogcHVibGljIFJlZkNvdW50ZWRQcm9wZXJ0eVdy
YXBwZXI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gewogcHVibGljOgotICAgIFByb3BlcnR5V3JhcHBl
ckJhc2ljU2hhcGUoQ1NTUHJvcGVydHlJRCBwcm9wLCBCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6
OipnZXR0ZXIpKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyKShQYXNzUmVmUHRy
PEJhc2ljU2hhcGU+KSkKLSAgICAgICAgOiBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEJhc2lj
U2hhcGU+KHByb3AsIGdldHRlciwgc2V0dGVyKQorICAgIFByb3BlcnR5V3JhcHBlckV4Y2x1c2lv
blNoYXBlKENTU1Byb3BlcnR5SUQgcHJvcCwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKFJlbmRlclN0
eWxlOjoqZ2V0dGVyKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlcikoUGFzc1Jl
ZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPikpCisgICAgICAgIDogUmVmQ291bnRlZFByb3BlcnR5
V3JhcHBlcjxFeGNsdXNpb25TaGFwZVZhbHVlPihwcm9wLCBnZXR0ZXIsIHNldHRlcikKICAgICB7
CiAgICAgfQogfTsKQEAgLTExNjIsNyArMTE2OCw3IEBAIHZvaWQgQ1NTUHJvcGVydHlBbmltYXRp
b246OmVuc3VyZVByb3BlcnR5TWFwKCkKICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5l
dyBQcm9wZXJ0eVdyYXBwZXJDbGlwUGF0aChDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoLCAmUmVu
ZGVyU3R5bGU6OmNsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OnNldENsaXBQYXRoKSk7CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcg
UHJvcGVydHlXcmFwcGVyQmFzaWNTaGFwZShDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlLCAm
UmVuZGVyU3R5bGU6OnNoYXBlSW5zaWRlLCAmUmVuZGVyU3R5bGU6OnNldFNoYXBlSW5zaWRlKSk7
CisgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyRXhjbHVz
aW9uU2hhcGUoQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZSwgJlJlbmRlclN0eWxlOjpzaGFw
ZUluc2lkZSwgJlJlbmRlclN0eWxlOjpzZXRTaGFwZUluc2lkZSkpOwogI2VuZGlmCiAKICAgICBn
UHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJWaXNpdGVkQWZmZWN0
ZWRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVDb2xvciwgTWF5YmVJbnZhbGlkQ29s
b3IsICZSZW5kZXJTdHlsZTo6Y29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbHVt
blJ1bGVDb2xvciwgJlJlbmRlclN0eWxlOjp2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvciwgJlJl
bmRlclN0eWxlOjpzZXRWaXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRl
eCBiNzgzMGYxMGVmNmJlNGMzOTIzMDc4MzUzYzRkMDk4N2Q3NzFhMGRmLi44YTM4NzNhYmVkNGY0
MGU4NDhkYjMzYzZiYmQxMWIzODFhZGNjZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtNzIsNyArNzIsOSBA
QCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUgogYm9vbCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OmlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJl
bmRlckJsb2NrKiBibG9jaykKIHsKICAgICAvLyBGSVhNRTogQnVnIDg5NzA3OiBFbmFibGUgc2hh
cGUgaW5zaWRlIGZvciBub24tcmVjdGFuZ3VsYXIgc2hhcGVzCi0gICAgQmFzaWNTaGFwZSogc2hh
cGUgPSBibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNsdXNpb25TaGFwZVZh
bHVlKiBzaGFwZVZhbHVlID0gYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCk7CisgICAgQmFz
aWNTaGFwZSogc2hhcGUgPSAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhj
bHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpID8KKyAgICAgICAgc3RhdGljX2Nhc3Q8U2hhcGVFeGNs
dXNpb25TaGFwZVZhbHVlKj4oc2hhcGVWYWx1ZSktPnNoYXBlKCkgOiAwOwogICAgIHJldHVybiBz
aGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5H
TEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsK
IH0KIApAQCAtOTMsNyArOTUsMTAgQEAgdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNv
bXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFUKICAgICBtX2xv
Z2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OwogCiAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5Mzog
VGhlIHdyYXAgc2hhcGUgbWF5IGNvbWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAotICAgIEJhc2lj
U2hhcGUqIHNoYXBlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNs
dXNpb25TaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNp
ZGUoKTsKKyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUt
PnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPworICAgICAgICBzdGF0aWNf
Y2FzdDxTaGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUqPihzaGFwZVZhbHVlKS0+c2hhcGUoKSA6IDA7
CisKICAgICBBU1NFUlQoc2hhcGUpOwogCiAgICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpj
cmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0LCBt
X2Jsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDRhNWU4OTMzZDBhMGFmZjk0YWM3MzY0OTc0YmRjNDA5NjUw
MzI0MzQuLjg0ZjdiM2M2MWJjOTJiNTdlNjY1YTNhZjQ3YzQyZWZiNzNkZjQ1NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTM5OCw3ICsxMzk4LDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKLXZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVy
U3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwZSogc2hhcGVJbnNpZGUsIGNvbnN0IEJhc2ljU2hh
cGUqIG9sZFNoYXBlSW5zaWRlKQordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBz
aGFwZUluc2lkZSwgY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSogb2xkU2hhcGVJbnNpZGUpCiB7
CiAgICAgLy8gRklYTUU6IEEgZnV0dXJlIG9wdGltaXphdGlvbiB3b3VsZCBkbyBhIGRlZXAgY29t
cGFyaXNvbiBmb3IgZXF1YWxpdHkuCiAgICAgaWYgKHNoYXBlSW5zaWRlID09IG9sZFNoYXBlSW5z
aWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA1NWEwMDFmNjFj
NGNiM2ExMjJlYWU5ZGE3OGNmZmEyMGM5Njc0MjI3Li5lMTg4YWQwZjM5ZDA4N2EwMjBlMzU0M2U2
MTE4Yzc3MmUzYWI3N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApA
QCAtMzYsNiArMzYsNyBAQAogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogI2luY2x1ZGUg
IkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFs
dWUuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MjEsNyArNTIyLDcgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdm9p
ZCBjb21wdXRlRXhjbHVzaW9uU2hhcGVTaXplKCk7Ci0gICAgdm9pZCB1cGRhdGVFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBC
YXNpY1NoYXBlKiBvbGRXcmFwU2hhcGUpOworICAgIHZvaWQgdXBkYXRlRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiwgY29u
c3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSogb2xkV3JhcFNoYXBlKTsKICNlbmRpZgogICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGls
ZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1
YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUxYWVjY2NmODBhZGRlOGU5OWJmY2NhYmJiMjgzNmFkNjg4ODI1ZTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1
ZS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
CisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBFeGNsdXNpb25TaGFwZVZhbHVlX2gKKyNkZWZpbmUgRXhjbHVzaW9uU2hhcGVWYWx1ZV9oCisK
KyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRXhjbHVzaW9uU2hhcGVWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEV4Y2x1c2lvblNoYXBl
VmFsdWU+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIHsKKyAg
ICAgICAgLy8gVGhlIEFVVE8gdmFsdWUgaXMgZGVmaW5lZCBieSBhIG51bGwgRXhjbHVzaW9uU2hh
cGVWYWx1ZSoKKyAgICAgICAgU0hBUEUsCisgICAgICAgIE9VVFNJREUKKyAgICB9OworCisgICAg
dmlydHVhbCB+RXhjbHVzaW9uU2hhcGVWYWx1ZSgpIHsgfQorCisgICAgRXhjbHVzaW9uU2hhcGVW
YWx1ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiB0eXBlKCkgPT0gb3RoZXIudHlwZSgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBFeGNsdXNp
b25TaGFwZVZhbHVlKEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIHR5cGUpIDogbV90eXBlKHR5cGUp
IHsgfQorCitwcml2YXRlOgorICAgIEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIG1fdHlwZTsKK307
CisKK2NsYXNzIFNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1ZSA6IHB1YmxpYyBFeGNsdXNpb25TaGFw
ZVZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFwZUV4Y2x1c2lvblNo
YXBlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUoc2hhcGUp
KTsKKyAgICB9CisgICAgQmFzaWNTaGFwZSogc2hhcGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXBl
LmdldCgpOyB9CisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXhjbHVzaW9uU2hh
cGVWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBvdGhlci50eXBlKCkgJiYg
c2hhcGUoKSA9PSBzdGF0aWNfY2FzdDxjb25zdCBTaGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUmPihv
dGhlcikuc2hhcGUoKTsgfQorCitwcml2YXRlOgorICAgIFNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1
ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQorICAgIDogRXhjbHVzaW9uU2hhcGVWYWx1
ZShTSEFQRSkKKyAgICAsIG1fc2hhcGUoc2hhcGUpCisgICAgeyB9CisgICAgUmVmUHRyPEJhc2lj
U2hhcGU+IG1fc2hhcGU7Cit9OworCitjbGFzcyBPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSA6
IHB1YmxpYyBFeGNsdXNpb25TaGFwZVZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgT3V0c2lkZUV4Y2x1c2lvblNoYXBlVmFsdWUoKSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIE91dHNpZGVFeGNsdXNpb25TaGFwZVZhbHVlKCkgOiBFeGNsdXNp
b25TaGFwZVZhbHVlKE9VVFNJREUpIHsgfQorfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDFkZWI2
Zjc4N2U0ZDIwZGM0NzViNDMyMzVkZWNjNGFlY2EwNTQ2YzIuLmNlNjgwNDZmMTI5OTdjODBhNDEx
ZGFjYmViM2ZlNmI5NzUxNzdhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC03Myw2ICs3MywxMCBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgorI2VuZGlmCisKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaW5jbHVkZSAiU3R5bGVGaWx0ZXJEYXRhLmgiCiAjZW5kaWYK
QEAgLTE0NTUsMjIgKzE0NTksMjQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0S2VybmluZyhTVkdM
ZW5ndGggaykgeyBhY2Nlc3NTVkdTdHlsZSgpLT5zZXRLZXJuaW5nKGspOyB9CiAjZW5kaWYKIAot
ICAgIHZvaWQgc2V0U2hhcGVJbnNpZGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKKyAg
ICB2b2lkIHNldFNoYXBlSW5zaWRlKFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gdmFs
dWUpCiAgICAgewotICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hhcGVJbnNp
ZGUgIT0gc2hhcGUpCi0gICAgICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
bV9zaGFwZUluc2lkZSA9IHNoYXBlOworICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fc2hhcGVJbnNpZGUgPT0gdmFsdWUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJh
cmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3NoYXBlSW5zaWRlID0gdmFsdWU7CiAgICAg
fQotICAgIEJhc2ljU2hhcGUqIHNoYXBlSW5zaWRlKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fc2hhcGVJbnNpZGUuZ2V0KCk7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZh
bHVlKiBzaGFwZUluc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3NoYXBlSW5zaWRlLmdldCgpOyB9CiAKLSAgICB2b2lkIHNldFNoYXBlT3V0c2lkZShQYXNzUmVm
UHRyPEJhc2ljU2hhcGU+IHNoYXBlKQorICAgIHZvaWQgc2V0U2hhcGVPdXRzaWRlKFBhc3NSZWZQ
dHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gdmFsdWUpCiAgICAgewotICAgICAgICBpZiAocmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fc2hhcGVPdXRzaWRlICE9IHNoYXBlKQotICAgICAgICAgICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fc2hhcGVPdXRzaWRlID0gc2hhcGU7CisgICAg
ICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUgPT0gdmFsdWUpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5tX3NoYXBlT3V0c2lkZSA9IHZhbHVlOwogICAgIH0KLSAgICBCYXNpY1NoYXBlKiBzaGFwZU91
dHNpZGUoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNp
ZGUuZ2V0KCk7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZU91dHNpZGUoKSBjb25z
dCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUuZ2V0KCk7IH0K
IAotICAgIHN0YXRpYyBCYXNpY1NoYXBlKiBpbml0aWFsU2hhcGVJbnNpZGUoKSB7IHJldHVybiAw
OyB9Ci0gICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRpYWxTaGFwZU91dHNpZGUoKSB7IHJldHVy
biAwOyB9CisgICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlVmFsdWUqIGluaXRpYWxTaGFwZUluc2lk
ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVWYWx1ZSogaW5pdGlh
bFNoYXBlT3V0c2lkZSgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZvaWQgc2V0Q2xpcFBhdGgoUGFz
c1JlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gb3BlcmF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCmluZGV4IDQxODZiYjE5ZjZhOTM2MzI3ZTMwMTE4NGIxNDE0NDIzZDlkY2U3OWIuLmQ5
OGQxOTE4NzFkMjJlYTY2YzQzYjc5MTc5NjRiYTViZDVkMjFkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyNpbmNs
dWRlICJFeGNsdXNpb25TaGFwZVZhbHVlLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBbmltYXRpb25MaXN0OwpAQCAtMTM3LDggKzE0MSw4IEBAIHB1YmxpYzoKIAog
ICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKIAotICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3No
YXBlSW5zaWRlOwotICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3NoYXBlT3V0c2lkZTsKKyAgICBS
ZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gbV9zaGFwZUluc2lkZTsKKyAgICBSZWZQdHI8RXhj
bHVzaW9uU2hhcGVWYWx1ZT4gbV9zaGFwZU91dHNpZGU7CiAgICAgTGVuZ3RoIG1fc2hhcGVNYXJn
aW47CiAgICAgTGVuZ3RoIG1fc2hhcGVQYWRkaW5nOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjM0OWRlMGIwMmQyYWY2
ZTEyOGY5NzI5NDFiN2IwNWIyZDE2NjE3ZS4uMGRhMmZhNGZjMjliOTk0ZTg1NzI4ZWEyNjQyYjQ1
MTkyZDdkNzU3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTE2ICBCZWFyIFRyYXZp
cyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFN1cHBv
cnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0ZXN0cyB0byBtYWtlIHN1cmUg
dGhlICdvdXRzaWRlLXNoYXBlJyB2YWx1ZSBwcm9wZXJseSBhcHBsaWVzIG9ubHkgdG8gdGhlCisg
ICAgICAgIHNoYXBlLWluc2lkZSBwcm9wZXJ0eS4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWlu
c2lkZS5qczoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmct
d3JhcC1zaGFwZS1vdXRzaWRlLmpzOgorCiAyMDEyLTExLTE1ICBLZW5pY2hpIElzaGliYXNoaSAg
PGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UgY29tcGxleCBwYXRoIGZvciB0aGUg
cmVmZXJlbmNlIHRleHQgaW4gZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29tYmluaW5nLW1hcmtz
LXBvc2l0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9w
YXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dAppbmRleCA3
YzQyZWM1M2UzZjkyOWZlOTFlZGRkYWZmZTNjMmQxYzExMDc3NTY5Li5iYzhlNjc0NmQ3NThjZGM4
YzQ1NGM4NGFjYTgyODgxZmY3MmIyYTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0
ZWQudHh0CkBAIC01LDYgKzUsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIHRl
c3RDU1NUZXh0KCJhdXRvIikgaXMgImF1dG8iCiBQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJhdXRv
IikgaXMgImF1dG8iCitQQVNTIHRlc3RDU1NUZXh0KCJvdXRzaWRlLXNoYXBlIikgaXMgIm91dHNp
ZGUtc2hhcGUiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJvdXRzaWRlLXNoYXBlIikgaXMgIm91
dHNpZGUtc2hhcGUiCiBQQVNTIHRlc3RDU1NUZXh0KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgogUEFTUyB0
ZXN0Q29tcHV0ZWRTdHlsZSgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMg
InJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVzdENTU1RleHQoInJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIikgaXMgInJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIgpAQCAtMjIsNiArMjQsNyBAQCBQQVNTIHRlc3RDb21w
dXRlZFN0eWxlKCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUw
cHgpIikgaXMgIgogUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgs
IDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwg
MzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9seWdvbihu
b256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5v
bnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Tm90SW5o
ZXJpdGVkKCJhdXRvIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlzICJw
YXJlbnQ6IGF1dG8sIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCitQ
QVNTIHRlc3ROb3RJbmhlcml0ZWQoIm91dHNpZGUtc2hhcGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgpIikgaXMgInBhcmVudDogb3V0c2lkZS1zaGFwZSwgY2hpbGQ6IHJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwiKSBpcyAicGFyZW50OiBy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIgogUEFTUyB0ZXN0
Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiIikgaXMg
InBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogYXV0byIK
IFBBU1MgdGVzdE5vdEluaGVyaXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
IiwgImluaGVyaXQiKSBpcyAicGFyZW50OiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBw
eCksIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1z
aGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dAppbmRleCAzMDFhNWQ5NjkwYjRlMzFiZjAwZTY4OTJh
Y2Y1ZGU1ZWFhMzk3YmJjLi42YzViNTVlZDM4M2VmMmI3NWNjNzdjNGVmZDE4MWY1OTVhMDg4MmQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNo
YXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQKQEAgLTMxLDYgKzMxLDgg
QEAgUEFTUyB0ZXN0Q1NTVGV4dCgiY2FsYygpIikgaXMgIiIKIFBBU1MgdGVzdENvbXB1dGVkU3R5
bGUoImNhbGMoKSIpIGlzICJhdXRvIgogUEFTUyB0ZXN0Q1NTVGV4dCgibm9uZSIpIGlzICIiCiBQ
QVNTIHRlc3RDb21wdXRlZFN0eWxlKCJub25lIikgaXMgImF1dG8iCitQQVNTIHRlc3RDU1NUZXh0
KCJvdXRzaWRlLXNoYXBlIikgaXMgIiIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoIm91dHNpZGUt
c2hhcGUiKSBpcyAiYXV0byIKIFBBU1MgdGVzdENTU1RleHQoInJlY3RhbmdsZSgpIikgaXMgIiIK
IFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInJlY3RhbmdsZSgpIikgaXMgImF1dG8iCiBQQVNTIHRl
c3RDU1NUZXh0KCJyZWN0YW5nbGUoMTBweCkiKSBpcyAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRl
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdy
YXAtc2hhcGUtaW5zaWRlLmpzCmluZGV4IDljNWQzMDFmZDgxMmViMWFkMDY2MGQ5Y2Q0MWRmNTY3
MmNhOGM5NjQuLjQzOTI4ZmViZGExYzJjYzA1NjMwN2I3MmNiODBlZWZhNDhhZjE3YWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13
cmFwLXNoYXBlLWluc2lkZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2Ny
aXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMKQEAgLTU4LDYgKzU4LDcgQEAg
ZnVuY3Rpb24gbmVnYXRpdmVfdGVzdCh2YWx1ZSkgewogLy8gcG9zaXRpdmUgdGVzdHMKIAogdGVz
dCgiYXV0byIsICJhdXRvIik7Cit0ZXN0KCJvdXRzaWRlLXNoYXBlIiwgIm91dHNpZGUtc2hhcGUi
KTsKIHRlc3QoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICJyZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiKTsKIHRlc3QoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4LCA1cHgpIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgp
Iik7CiB0ZXN0KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4LCAxMHB4KSIs
ICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4LCAxMHB4KSIpOwpAQCAtNzEs
NiArNzIsNyBAQCB0ZXN0KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0
MHB4IDUwcHgpIiwgInBvbHlnb24oZXZlbm9kZCwgMTBweAogdGVzdCgicG9seWdvbihub256ZXJv
LCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIsICJwb2x5Z29uKG5vbnplcm8sIDEw
cHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIik7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCkiKScsICJwYXJlbnQ6IGF1dG8sIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgib3V0
c2lkZS1zaGFwZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKScsICJwYXJl
bnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBw
eCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgicmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwiKScsICJwYXJlbnQ6IHJlY3Rhbmds
ZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iKTsKIHNob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgpIiwgIiIpJywgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBj
aGlsZDogYXV0byIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiaW5oZXJpdCIpJywgInBhcmVudDog
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0
c2lkZS5qcwppbmRleCA1YjFkNjdlM2UyOTEwOTQyYjhiOTgwYzA5ZGRjYjg2ODZlZmJiODUwLi4x
NjJjZDZkMmJiYTJkOGE4MTc3N2VjZDJlYWEyZmQ0NmYxMzI3NDc3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1v
dXRzaWRlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMv
cGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMKQEAgLTgxLDYgKzgxLDcgQEAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJhdXRvIiwgImluaGVyaXQiKScsICJwYXJl
bnQ6IGF1dG8sIGNoaWwKIAogbmVnYXRpdmVfdGVzdCgiY2FsYygpIik7CiBuZWdhdGl2ZV90ZXN0
KCJub25lIik7CituZWdhdGl2ZV90ZXN0KCJvdXRzaWRlLXNoYXBlIik7CiAKIG5lZ2F0aXZlX3Rl
c3QoInJlY3RhbmdsZSgpIik7CiBuZWdhdGl2ZV90ZXN0KCJyZWN0YW5nbGUoMTBweCkiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175009</attachid>
            <date>2012-11-19 11:16:47 -0800</date>
            <delta_ts>2012-11-19 16:41:20 -0800</delta_ts>
            <desc>Fixing windows build failure</desc>
            <filename>bug-101108-20121119111437.patch</filename>
            <type>text/plain</type>
            <size>34742</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMyMWIwMjdjZjQxNDFi
OTZlY2EyMjg1M2Q0YmRkMjE3YzU3MWNjYi4uZWU0MjlhZjU3YjNkNzY0NjlmZWQ5ZTg1Y2JjMDkx
ZjZhZjE4NTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTExLTE5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFN1cHBvcnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciB0
aGUgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvZiBzaGFwZS1pbnNpZGUuIFRoaXMgaW5pdGlhbCBwYXRj
aCBqdXN0CisgICAgICAgIGFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBwYXJzaW5nIGFuZCBz
dG9yaW5nIHRoZSB2YWx1ZSwgd2l0aG91dCBhY3R1YWxseSBkb2luZworICAgICAgICBsYXlvdXQu
IEl0IGludHJvZHVjZXMgdGhlIGNsYXNzIEV4Y2x1c2lvblNoYXBlVmFsdWUsIHdoaWNoIG1heSB0
YWtlIG9uIHRocmVlIHZhbHVlcywKKyAgICAgICAgYXV0byAobnVsbCksIGJhc2ljIHNoYXBlLCBv
ciBvdXRzaWRlLXNoYXBlLiBFdmVudHVhbGx5IHRoZXJlIHdpbGwgYmUgYSB1cmwKKyAgICAgICAg
RXhjbHVzaW9uU2hhcGVWYWx1ZSBhcyB3ZWxsLgorCisgICAgICAgIE1vZGlmeWluZyBleGlzdGlu
ZyB0ZXN0czoKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3Jh
cC1zaGFwZS1pbnNpZGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogQWRkaW5nIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCB0byB0aGUgYnVpbGQgZmlsZXMu
CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQ
cm9wZXJ0eUNTU1ZhbHVlKTogTW9kaWZ5aW5nIGNvZGUgdG8gdXNlCisgICAgICAgIEV4Y2x1c2lv
blNoYXBlVmFsdWUqIHJhdGhlciB0aGFuIHRoZSBwcmV2aW91cyBCYXNpY1NoYXBlKiB2YWx1ZXMu
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUpOiBIYW5kbGUgdGhlIG91dHNpZGUtc2hhcGUgdmFsdWUuCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZGluZyBvdXRzaWRlLXNoYXBlIHZhbHVlLgor
ICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGU6OnNldFZhbHVlKTogTW9k
aWZ5IGNvZGUgdG8gdXNlCisgICAgICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHJhdGhlciB0aGFu
IEJhc2ljU2hhcGUqLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNo
YXBlOjphcHBseVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
RXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUhhbmRsZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6YmxlbmRGdW5jKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdyYXBwZXJF
eGNsdXNpb25TaGFwZTo6UHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uOjplbnN1cmVQcm9wZXJ0eU1hcCk6
IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayk6CisgICAgICAgIERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVT
aXplKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9B
ZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0V4
Y2x1c2lvblNoYXBlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEV4Y2x1c2lvblNoYXBlVmFsdWUpOiBOZXcgdHlwZSB0byByZXByZXNlbnQgdGhlIHBvc3NpYmxl
IHZhbHVlcyBvZiBzaGFwZS1pbnNpZGUKKyAgICAgICAgYW5kIHNoYXBlLW91dHNpZGUuIE9ubHkg
c2hhcGUtaW5zaWRlIGNhbiBoYXZlIGEgdmFsdWUgb2YgT3V0c2lkZUV4Y2x1c2lvblNoYXBlVmFs
dWUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp+RXhjbHVzaW9uU2hh
cGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp0eXBlKTog
UmV0dXJucyB0aGUgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBl
VmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVWYWx1
ZTo6RXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChTaGFwZUV4Y2x1c2lvblNoYXBlVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlOjpjcmVhdGUp
OiBDcmVhdGUgYW4gU2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1ZTo6c2hhcGUpOiBUaGUgQmFzaWNTaGFw
ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlRXhj
bHVzaW9uU2hhcGVWYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUV4
Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChP
dXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpPdXRzaWRlRXhj
bHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlKTogQ3JlYXRlIGFuIE91dHNpZGVFeGNsdXNpb25TaGFw
ZVZhbHVlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6Ok91dHNpZGVFeGNsdXNpb25TaGFw
ZVZhbHVlOjpPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEp
OgorCiAyMDEyLTExLTE5ICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZA
aW50ZWwuY29tPgogCiAgICAgICAgIEltcHJvdmUgQ29udGVudFR5cGVQYXJzZXIsIHNvIHRoYXQg
aXQgY291bGQgYmUgdXNlZCB0byB2YWxpZGF0ZSBtaW1lIHR5cGUgYWNjb3JkaW5nIHRvIFJGQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmVhN2VmYzliNTJmYjIzZTE1YTM0NTIx
ZWRiMzQzY2Y3ZDE5MDE3Yy4uMWU3YWMxZDViY2NiZTUzOGYzMGYxYWNkNjIwZGQ5YzhjYzJjZDFm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NDM3LDYgKzQ0MzcsNyBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJz
b3JEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUG9zaXRpb24uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkZTEwZTFjMzlmMTE1Y2UwYzY0
MjBmMDFiMGExZDMwYzI0OWE5NGYxLi5mNjY5MTgwODZlMTNhYzVjNjVhMWJlOWFjMjBjNjMyMWY1
ZTY5NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTI0NDYsNiArMjQ0Niw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oIFwKICAgICByZW5kZXJpbmcv
c3R5bGUvQ3Vyc29yRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIFwK
KyAgICByZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIFwKICAgICByZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3Qu
aCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGFjYmM1OTBiMTdmZWViZGUxZjVmNTBhMDQ4MjdlNTU1YjQwNTljZTIuLjk0ODlkYzg1
ZjVjNTU1M2E3ZTBhMGZiNjU0M2M1YzJjYzc4NWNiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU5
Nyw2ICs1OTcsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9DdXJzb3JEYXRhLmgn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0LmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9z
dHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9GaWxsTGF5ZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bi5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTGluZUNsYW1wVmFsdWUuaCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQwMTg3
ODlmY2IxMTQ5NjdhNDBkYzVhODlmZjgyZGQ0ODlmY2JkYTYuLmUwMDQ4NDAzZGMzZTkyMmNjZWE4
MjM5MTU5YWY1NjExZmJjZjcxY2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC00NTQ0Myw2ICs0NTQ0MywxMCBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCisJCQkJICAgIFJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxl
XEV4Y2x1c2lvblNoYXBlVmFsdWUuaCIKKwkJCQkgICAgPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWxsTGF5ZXIuY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBhYTEyNWM0Zjg5MTljNjIxNjA0
YmRiNjI4MTZlZDdmN2M4YWYxNjEuLmM3YmZmZWEwMjM5NmZiYzkzZWZhMWMxNWRjNGVlMDEwZmUz
NmMyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYzODcsNiArNjM4Nyw3IEBACiAJCUZEMDZERkE1MTM0QTRERUYwMDZGNUQ3
RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQwNkRGQTMxMzRBNERFRjAwNkY1RDdEIC8qIERl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgKi87IH07CiAJCUZEMDZERkE2MTM0QTRERUYw
MDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDZERkE0MTM0QTRERUYwMDZGNUQ3RCAv
KiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLzsgfTsKIAkJRkQxNjYwQTUxMzc4N0M2
RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMTY2MEE0MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1h
bERpc2FibGVyLmggKi87IH07CisJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBFeGNsdXNp
b25TaGFwZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDFBRjE0RTE2NTZGMTIxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZEMjNBMTI1
MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDIzQTEyMzEzRjVG
QTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICovOyB9Owog
CQlGRDIzQTEyNjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMjNB
MTI0MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oICov
OyB9OwogCQlGRDJEQkYxMjEyQjA0OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDJEQkYw
RTEyQjA0OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsgKi87IH07CkBAIC0xMzg3
NSw2ICsxMzg3Niw3IEBACiAJCUZEMDZERkEzMTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkQwNkRGQTQxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQxNjYwQTQx
Mzc4N0M2RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGVub3JtYWxEaXNhYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGRDFBRjE0RTE2NTZGMTIxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFeGNsdXNpb25TaGFwZVZhbHVlLmg7
IHBhdGggPSBzdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZEMjNBMTIzMTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlv
U291cmNlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUZEMjNBMTI0MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDJEQkYwRTEy
QjA0OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IEFjY2VsZXJhdGUuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QWNjZWxlcmF0ZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC0y
MDYzMCw2ICsyMDYzMiw3IEBACiAJCQkJQkMyMjcyQTEwRTgyRTg3QzAwRTdGOTc1IC8qIEN1cnNv
ckRhdGEuaCAqLywKIAkJCQlCQzIyNzJBQzBFODJFOEYzMDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5o
ICovLAogCQkJCUJDMjI3NDZFMEU4MzY2NDUwMEU3Rjk3NSAvKiBEYXRhUmVmLmggKi8sCisJCQkJ
RkQxQUYxNEUxNjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCAqLywKIAkJ
CQlCQzVFQjY5QzBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmNwcCAqLywKIAkJCQlCQzVF
QjY5RDBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmggKi8sCiAJCQkJQTEyNzA1QzIxNjU2
QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oICovLApAQCAtMjI0NTcsNiArMjI0NjAsNyBA
QAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJRkQxQUYxNTAxNjU2RjE1MTAwQzZENEY3IC8q
IEV4Y2x1c2lvblNoYXBlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0ZBNjIxMEQxRjBD
QkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2
OURBMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGYzMGQ5MTdlMDAzYTc3YWY3MzlhZWQ1MjNlOTI4YWNl
MjkyNzA5Y2YuLjIyYzk1OTA3MzBiMTVjMmYxNzNkZjRjNTI3YmEwNzAzNzdhMWUwYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC02NCw2ICs2NCwxMCBAQAogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZVZhbHVlLmgiCisjZW5kaWYKKwogI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJBcnJheVBhcmFtZXRl
ci5oIgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5oIgpAQCAtMjUwNCwx
MSArMjUwOCwxNSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0U2hhcGVJbnNpZGU6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT5zaGFwZUlu
c2lkZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJh
c2ljU2hhcGUoc3R5bGUtPnNoYXBlSW5zaWRlKCkpOworICAgICAgICAgICAgZWxzZSBpZiAoc3R5
bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpPVVRTSURF
KQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVPdXRzaWRlU2hhcGUpOworICAgICAgICAgICAgQVNTRVJUKHN0eWxlLT5z
aGFwZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpOworICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdGF0aWNfY2FzdDxTaGFwZUV4Y2x1
c2lvblNoYXBlVmFsdWUqPihzdHlsZS0+c2hhcGVJbnNpZGUoKSktPnNoYXBlKCkpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAgICAgICAgICAgaWYgKCFz
dHlsZS0+c2hhcGVPdXRzaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+c2hhcGVPdXRzaWRlKCkpOworICAgICAgICAg
ICAgQVNTRVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBl
VmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3Rh
dGljX2Nhc3Q8U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlKj4oc3R5bGUtPnNoYXBlT3V0c2lkZSgp
KS0+c2hhcGUoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwVGhyb3VnaDoK
ICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+d3Jh
cFRocm91Z2goKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggOWIyZjcw
ODU3MTFiNmZhNDk2N2NiYmVmOGM0NmU1MzYyZTVjMTFhZS4uZDU4YzU3YjdiZjE3YTA3YmFiODg2
ODFiYjI0YWY0OGVjOGRlOTRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI3MzUs
NiArMjczNSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
aWYgKGlkID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgZWxzZSBpZiAocHJvcElkID09IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNp
ZGUgJiYgaWQgPT0gQ1NTVmFsdWVPdXRzaWRlU2hhcGUpCisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZh
bHVlOjpGdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGUocHJvcElk
LCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KaW5kZXggNGI5Y2M2ZWE2ZmJiZmU4Zjc0NTU1ZGFkNDc1OTgyYzViMzkxOWNhYy4u
OTAxYTNkNDk4YzhjNTEyMzNlNGNjZTE0MTQ4NjNjYTc5MmE5MmZmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTkxNyw2ICs5MTcsNyBAQCBvcHRpbWl6ZVF1YWxp
dHkKIC8vIC13ZWJraXQtd3JhcC1zaGFwZQogbm9uemVybwogZXZlbm9kZAorb3V0c2lkZS1zaGFw
ZQogCiAvLyAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwogLy8gYXV0bwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVCdWlsZGVyLmNwcAppbmRleCBlZDg4NjQwYTQ4YWUzNzQ5YmE2NjFhNTg3MzI2ZTBlMGIzY2U0
ZDlkLi5iNzE4YTVhNmYzNDFhMjlkOWEwMTJkYjA2N2ZhZDkwNTQxNGQ5YWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtNDcsNiArNDcsMTAgQEAKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKKyNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgorI2Vu
ZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3
MTYsMjUgKzE3MjAsMjcgQEAgcHVibGljOgogfTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKLXRlbXBsYXRlIDxCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbiko
KSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiksIEJhc2ljU2hhcGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgordGVtcGxhdGUg
PEV4Y2x1c2lvblNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0aW9uKSgpIGNv
bnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEV4Y2x1
c2lvblNoYXBlVmFsdWU+KSwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKCppbml0aWFsRnVuY3Rpb24p
KCk+CiBjbGFzcyBBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGUgewogcHVibGljOgotICAgIHN0
YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxCYXNpY1No
YXBlPiB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CisgICAgc3Rh
dGljIHZvaWQgc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBQYXNzUmVmUHRyPEV4Y2x1c2lv
blNoYXBlVmFsdWU+IHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1bmN0aW9uKSh2YWx1ZSk7IH0K
ICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIq
IHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsK
ICAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1
dG8pCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgMCk7
CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZU91dHNpZGVTaGFwZSkKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLCBPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlKCkpOwogICAgICAg
ICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzU2hhcGUoKSkgewotICAgICAgICAgICAg
ICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSA9IGJhc2ljU2hhcGVGb3JWYWx1ZShzdHlsZVJl
c29sdmVyLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAg
ICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gc2hhcGUgPSBTaGFwZUV4Y2x1c2lvblNoYXBl
VmFsdWU6OmNyZWF0ZShiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZl
VmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCksIHNoYXBlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkK
ICAgICB7Ci0gICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURl
ZmF1bHRCYXNlPEJhc2ljU2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1No
YXBlPiwgc2V0dGVyRnVuY3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVh
dGVIYW5kbGVyKCk7CisgICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9w
ZXJ0eURlZmF1bHRCYXNlPEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFz
c1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiwgc2V0dGVyRnVuY3Rpb24sIEV4Y2x1c2lvblNo
YXBlVmFsdWUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7CiAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5p
bml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5k
ZXggYjc2M2I1NjY1OWJiM2IxY2YyMjYwNTY2ZjJkNGU5NGNhYzZiMzNlZC4uNjk4ZjhhYzhhOTJi
NTJhZDc4ZDZjMjIyMjVlZjdiYWY3ZjZkZTg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTQzLDEyICsx
NDMsMTggQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXAKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZEZ1bmMo
Y29uc3QgQW5pbWF0aW9uQmFzZSosIEJhc2ljU2hhcGUqIGZyb20sIEJhc2ljU2hhcGUqIHRvLCBk
b3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVW
YWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBFeGNsdXNpb25TaGFwZVZhbHVl
KiBmcm9tLCBFeGNsdXNpb25TaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewotICAg
IGlmICghZnJvbS0+Y2FuQmxlbmQodG8pKQorICAgIGlmIChmcm9tLT50eXBlKCkgIT0gRXhjbHVz
aW9uU2hhcGVWYWx1ZTo6U0hBUEUgfHwgdG8tPnR5cGUoKSAhPSBFeGNsdXNpb25TaGFwZVZhbHVl
OjpTSEFQRSkKICAgICAgICAgcmV0dXJuIHRvOwogCi0gICAgcmV0dXJuIHRvLT5ibGVuZChmcm9t
LCBwcm9ncmVzcyk7CisgICAgY29uc3QgQmFzaWNTaGFwZSogZnJvbVNoYXBlID0gc3RhdGljX2Nh
c3Q8U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlKj4oZnJvbSktPnNoYXBlKCk7CisgICAgY29uc3Qg
QmFzaWNTaGFwZSogdG9TaGFwZSA9IHN0YXRpY19jYXN0PFNoYXBlRXhjbHVzaW9uU2hhcGVWYWx1
ZSo+KHRvKS0+c2hhcGUoKTsKKworICAgIGlmICghZnJvbVNoYXBlLT5jYW5CbGVuZCh0b1NoYXBl
KSkKKyAgICAgICAgcmV0dXJuIHRvOworCisgICAgcmV0dXJuIFNoYXBlRXhjbHVzaW9uU2hhcGVW
YWx1ZTo6Y3JlYXRlKHRvU2hhcGUtPmJsZW5kKGZyb21TaGFwZSwgcHJvZ3Jlc3MpKTsKIH0KICNl
bmRpZgogCkBAIC00MDQsMTAgKzQxMCwxMCBAQCBwdWJsaWM6CiB9OwogCiAjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQotY2xhc3MgUHJvcGVydHlXcmFwcGVyQmFzaWNTaGFwZSA6IHB1YmxpYyBS
ZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEJhc2ljU2hhcGU+IHsKK2NsYXNzIFByb3BlcnR5V3Jh
cHBlckV4Y2x1c2lvblNoYXBlIDogcHVibGljIFJlZkNvdW50ZWRQcm9wZXJ0eVdyYXBwZXI8RXhj
bHVzaW9uU2hhcGVWYWx1ZT4gewogcHVibGljOgotICAgIFByb3BlcnR5V3JhcHBlckJhc2ljU2hh
cGUoQ1NTUHJvcGVydHlJRCBwcm9wLCBCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXIp
KCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyKShQYXNzUmVmUHRyPEJhc2ljU2hh
cGU+KSkKLSAgICAgICAgOiBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEJhc2ljU2hhcGU+KHBy
b3AsIGdldHRlciwgc2V0dGVyKQorICAgIFByb3BlcnR5V3JhcHBlckV4Y2x1c2lvblNoYXBlKENT
U1Byb3BlcnR5SUQgcHJvcCwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKFJlbmRlclN0eWxlOjoqZ2V0
dGVyKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlcikoUGFzc1JlZlB0cjxFeGNs
dXNpb25TaGFwZVZhbHVlPikpCisgICAgICAgIDogUmVmQ291bnRlZFByb3BlcnR5V3JhcHBlcjxF
eGNsdXNpb25TaGFwZVZhbHVlPihwcm9wLCBnZXR0ZXIsIHNldHRlcikKICAgICB7CiAgICAgfQog
fTsKQEAgLTExNjIsNyArMTE2OCw3IEBAIHZvaWQgQ1NTUHJvcGVydHlBbmltYXRpb246OmVuc3Vy
ZVByb3BlcnR5TWFwKCkKICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0
eVdyYXBwZXJDbGlwUGF0aChDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoLCAmUmVuZGVyU3R5bGU6
OmNsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OnNldENsaXBQYXRoKSk7CiAKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0gICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlX
cmFwcGVyQmFzaWNTaGFwZShDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlLCAmUmVuZGVyU3R5
bGU6OnNoYXBlSW5zaWRlLCAmUmVuZGVyU3R5bGU6OnNldFNoYXBlSW5zaWRlKSk7CisgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUo
Q1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZSwgJlJlbmRlclN0eWxlOjpzaGFwZUluc2lkZSwg
JlJlbmRlclN0eWxlOjpzZXRTaGFwZUluc2lkZSkpOwogI2VuZGlmCiAKICAgICBnUHJvcGVydHlX
cmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJWaXNpdGVkQWZmZWN0ZWRDb2xvcihD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVDb2xvciwgTWF5YmVJbnZhbGlkQ29sb3IsICZSZW5k
ZXJTdHlsZTo6Y29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xv
ciwgJlJlbmRlclN0eWxlOjp2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvciwgJlJlbmRlclN0eWxl
OjpzZXRWaXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBiNzgzMGYx
MGVmNmJlNGMzOTIzMDc4MzUzYzRkMDk4N2Q3NzFhMGRmLi44YTM4NzNhYmVkNGY0MGU4NDhkYjMz
YzZiYmQxMWIzODFhZGNjZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtNzIsNyArNzIsOSBAQCBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvRm9yUgogYm9vbCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
KiBibG9jaykKIHsKICAgICAvLyBGSVhNRTogQnVnIDg5NzA3OiBFbmFibGUgc2hhcGUgaW5zaWRl
IGZvciBub24tcmVjdGFuZ3VsYXIgc2hhcGVzCi0gICAgQmFzaWNTaGFwZSogc2hhcGUgPSBibG9j
ay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFw
ZVZhbHVlID0gYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCk7CisgICAgQmFzaWNTaGFwZSog
c2hhcGUgPSAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hh
cGVWYWx1ZTo6U0hBUEUpID8KKyAgICAgICAgc3RhdGljX2Nhc3Q8U2hhcGVFeGNsdXNpb25TaGFw
ZVZhbHVlKj4oc2hhcGVWYWx1ZSktPnNoYXBlKCkgOiAwOwogICAgIHJldHVybiBzaGFwZSAmJiAo
c2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hh
cGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKIH0KIApAQCAt
OTMsNyArOTUsMTAgQEAgdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTaGFw
ZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFUKICAgICBtX2xvZ2ljYWxIZWln
aHQgPSBsb2dpY2FsSGVpZ2h0OwogCiAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogVGhlIHdyYXAg
c2hhcGUgbWF5IGNvbWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAotICAgIEJhc2ljU2hhcGUqIHNo
YXBlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNsdXNpb25TaGFw
ZVZhbHVlKiBzaGFwZVZhbHVlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAg
ICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9
PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPworICAgICAgICBzdGF0aWNfY2FzdDxTaGFw
ZUV4Y2x1c2lvblNoYXBlVmFsdWUqPihzaGFwZVZhbHVlKS0+c2hhcGUoKSA6IDA7CisKICAgICBB
U1NFUlQoc2hhcGUpOwogCiAgICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNs
dXNpb25TaGFwZShzaGFwZSwgbG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0LCBtX2Jsb2NrLT5z
dHlsZSgpLT53cml0aW5nTW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCmluZGV4IDRhNWU4OTMzZDBhMGFmZjk0YWM3MzY0OTc0YmRjNDA5NjUwMzI0MzQuLjg0
ZjdiM2M2MWJjOTJiNTdlNjY1YTNhZjQ3YzQyZWZiNzNkZjQ1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLXZvaWQg
UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFu
Z2UoY29uc3QgQmFzaWNTaGFwZSogc2hhcGVJbnNpZGUsIGNvbnN0IEJhc2ljU2hhcGUqIG9sZFNo
YXBlSW5zaWRlKQordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZUluc2lk
ZSwgY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSogb2xkU2hhcGVJbnNpZGUpCiB7CiAgICAgLy8g
RklYTUU6IEEgZnV0dXJlIG9wdGltaXphdGlvbiB3b3VsZCBkbyBhIGRlZXAgY29tcGFyaXNvbiBm
b3IgZXF1YWxpdHkuCiAgICAgaWYgKHNoYXBlSW5zaWRlID09IG9sZFNoYXBlSW5zaWRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA1NWEwMDFmNjFjNGNiM2ExMjJl
YWU5ZGE3OGNmZmEyMGM5Njc0MjI3Li5lMTg4YWQwZjM5ZDA4N2EwMjBlMzU0M2U2MTE4Yzc3MmUz
YWI3N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtMzYsNiAr
MzYsNyBAQAogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogI2luY2x1ZGUgIkV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFsdWUuaCIKICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MjEsNyArNTIyLDcgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdm9pZCBjb21wdXRl
RXhjbHVzaW9uU2hhcGVTaXplKCk7Ci0gICAgdm9pZCB1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBCYXNpY1NoYXBl
KiBvbGRXcmFwU2hhcGUpOworICAgIHZvaWQgdXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
QWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiwgY29uc3QgRXhjbHVz
aW9uU2hhcGVWYWx1ZSogb2xkV3JhcFNoYXBlKTsKICNlbmRpZgogICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJl
bigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTFl
MDViOTVjN2NhZGM3NDBkY2RjOTY0M2JlOGJjZjBkN2E5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oCkBAIC0w
LDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNv
cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJF
CisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFeGNsdXNp
b25TaGFwZVZhbHVlX2gKKyNkZWZpbmUgRXhjbHVzaW9uU2hhcGVWYWx1ZV9oCisKKyNpbmNsdWRl
ICJCYXNpY1NoYXBlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV4Y2x1c2lv
blNoYXBlVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxFeGNsdXNpb25TaGFwZVZhbHVlPiB7Citw
dWJsaWM6CisgICAgZW51bSBFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSB7CisgICAgICAgIC8vIFRo
ZSBBVVRPIHZhbHVlIGlzIGRlZmluZWQgYnkgYSBudWxsIEV4Y2x1c2lvblNoYXBlVmFsdWUqCisg
ICAgICAgIFNIQVBFLAorICAgICAgICBPVVRTSURFCisgICAgfTsKKworICAgIHZpcnR1YWwgfkV4
Y2x1c2lvblNoYXBlVmFsdWUoKSB7IH0KKworICAgIEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gdHlwZSgp
ID09IG90aGVyLnR5cGUoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1
ZShFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSB0eXBlKSA6IG1fdHlwZSh0eXBlKSB7IH0KKworcHJp
dmF0ZToKKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSBtX3R5cGU7Cit9OworCitjbGFzcyBT
aGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUgOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVWYWx1ZSB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlPiBj
cmVhdGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlKHNoYXBlKSk7CisgICAgfQor
ICAgIEJhc2ljU2hhcGUqIHNoYXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZS5nZXQoKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUmIG90
aGVyKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gb3RoZXIudHlwZSgpICYmIHNoYXBlKCkgPT0g
c3RhdGljX2Nhc3Q8Y29uc3QgU2hhcGVFeGNsdXNpb25TaGFwZVZhbHVlJj4ob3RoZXIpLnNoYXBl
KCk7IH0KKworcHJpdmF0ZToKKyAgICBTaGFwZUV4Y2x1c2lvblNoYXBlVmFsdWUoUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiBzaGFwZSkKKyAgICA6IEV4Y2x1c2lvblNoYXBlVmFsdWUoU0hBUEUpCisg
ICAgLCBtX3NoYXBlKHNoYXBlKQorICAgIHsgfQorICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3No
YXBlOworfTsKKworY2xhc3MgT3V0c2lkZUV4Y2x1c2lvblNoYXBlVmFsdWUgOiBwdWJsaWMgRXhj
bHVzaW9uU2hhcGVWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8T3V0c2lk
ZUV4Y2x1c2lvblNoYXBlVmFsdWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE91dHNpZGVFeGNsdXNpb25TaGFwZVZhbHVlKCkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBPdXRzaWRlRXhjbHVzaW9uU2hhcGVWYWx1ZSgpIDogRXhjbHVzaW9uU2hhcGVWYWx1
ZShPVVRTSURFKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDQwYzMyZGRjY2E4M2U2OWQzZTI1OGI1ZjAz
NTcwOGYyNDMwNzNjZWQuLjMxOTk2ZmEwNWFiYjVjZDA1ODk0MTFhNTZmYWNmM2M3MDczYzVlYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkNvdW50ZXJE
aXJlY3RpdmVzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNo
YXBlVmFsdWUuaCIKICNpbmNsdWRlICJGb250QmFzZWxpbmUuaCIKICNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCkBAIC0xNDU1LDIyICsxNDU2
LDI0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEtlcm5pbmcoU1ZHTGVuZ3RoIGspIHsgYWNjZXNz
U1ZHU3R5bGUoKS0+c2V0S2VybmluZyhrKTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIHNldFNoYXBl
SW5zaWRlKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpCisgICAgdm9pZCBzZXRTaGFwZUlu
c2lkZShQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IHZhbHVlKQogICAgIHsKLSAgICAg
ICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlSW5zaWRlICE9IHNoYXBlKQotICAg
ICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fc2hhcGVJbnNpZGUgPSBz
aGFwZTsKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlSW5zaWRlID09
IHZhbHVlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9zaGFwZUluc2lkZSA9IHZhbHVlOwogICAgIH0KLSAgICBCYXNpY1NoYXBl
KiBzaGFwZUluc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3No
YXBlSW5zaWRlLmdldCgpOyB9CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVJbnNpZGUo
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZUluc2lkZS5nZXQo
KTsgfQogCi0gICAgdm9pZCBzZXRTaGFwZU91dHNpZGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBz
aGFwZSkKKyAgICB2b2lkIHNldFNoYXBlT3V0c2lkZShQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBl
VmFsdWU+IHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3NoYXBlT3V0c2lkZSAhPSBzaGFwZSkKLSAgICAgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX3NoYXBlT3V0c2lkZSA9IHNoYXBlOworICAgICAgICBpZiAocmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fc2hhcGVPdXRzaWRlID09IHZhbHVlKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9zaGFwZU91dHNpZGUg
PSB2YWx1ZTsKICAgICB9Ci0gICAgQmFzaWNTaGFwZSogc2hhcGVPdXRzaWRlKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hhcGVPdXRzaWRlLmdldCgpOyB9CisgICAg
RXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVPdXRzaWRlKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fc2hhcGVPdXRzaWRlLmdldCgpOyB9CiAKLSAgICBzdGF0aWMgQmFz
aWNTaGFwZSogaW5pdGlhbFNoYXBlSW5zaWRlKCkgeyByZXR1cm4gMDsgfQotICAgIHN0YXRpYyBC
YXNpY1NoYXBlKiBpbml0aWFsU2hhcGVPdXRzaWRlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRp
YyBFeGNsdXNpb25TaGFwZVZhbHVlKiBpbml0aWFsU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9
CisgICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlVmFsdWUqIGluaXRpYWxTaGFwZU91dHNpZGUoKSB7
IHJldHVybiAwOyB9CiAKICAgICB2b2lkIHNldENsaXBQYXRoKFBhc3NSZWZQdHI8Q2xpcFBhdGhP
cGVyYXRpb24+IG9wZXJhdGlvbikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA0MTg2
YmIxOWY2YTkzNjMyN2UzMDExODRiMTQxNDQyM2Q5ZGNlNzliLi5jNGFjMGY2ZjM4Zjg5MjExZWMw
ODQzOThkMTlmNTI4NzU1ZjBkZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0aXZlcy5oIgogI2luY2x1ZGUgIkN1cnNvckRh
dGEuaCIKICNpbmNsdWRlICJEYXRhUmVmLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1
ZS5oIgogI2luY2x1ZGUgIkZpbGxMYXllci5oIgogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgi
CiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKQEAgLTEzNyw4ICsxMzgsOCBAQCBwdWJsaWM6
CiAKICAgICBMZW5ndGhTaXplIG1fcGFnZVNpemU7CiAKLSAgICBSZWZQdHI8QmFzaWNTaGFwZT4g
bV9zaGFwZUluc2lkZTsKLSAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV9zaGFwZU91dHNpZGU7Cisg
ICAgUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IG1fc2hhcGVJbnNpZGU7CisgICAgUmVmUHRy
PEV4Y2x1c2lvblNoYXBlVmFsdWU+IG1fc2hhcGVPdXRzaWRlOwogICAgIExlbmd0aCBtX3NoYXBl
TWFyZ2luOwogICAgIExlbmd0aCBtX3NoYXBlUGFkZGluZzsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcwNTM2OGNmZDZj
OTI4YWY1MWYwMDVjOWVmZDgzOWY0YzA3ODM3OGUuLjA2YWU3ZTZhMTcxNWMyMzMzZTQ3YjMxNDQ5
MWY4OTQ1MTNhZjUyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMS0xOSAgQmVhciBU
cmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBT
dXBwb3J0IG91dHNpZGUtc2hhcGUgdmFsdWUgb24gc2hhcGUtaW5zaWRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGVzdHMgdG8gbWFrZSBz
dXJlIHRoZSAnb3V0c2lkZS1zaGFwZScgdmFsdWUgcHJvcGVybHkgYXBwbGllcyBvbmx5IHRvIHRo
ZQorICAgICAgICBzaGFwZS1pbnNpZGUgcHJvcGVydHkuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1
c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFw
ZS1pbnNpZGUuanM6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJz
aW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qczoKKwogMjAxMi0xMS0xOSAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcgaWQsIGNsYXNzTmFt
ZSwgb3IgYXR0cmlidXRlIHNob3VsZCBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1z
aGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0CmluZGV4IDdjNDJlYzUzZTNmOTI5ZmU5MWVkZGRhZmZl
M2MyZDFjMTEwNzc1NjkuLmJjOGU2NzQ2ZDc1OGNkYzhjNDU0Yzg0YWNhODI4ODFmZjcyYjJhOTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hh
cGUtaW5zaWRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw4IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgdGVzdENTU1RleHQoImF1dG8iKSBpcyAiYXV0
byIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoImF1dG8iKSBpcyAiYXV0byIKK1BBU1MgdGVzdENT
U1RleHQoIm91dHNpZGUtc2hhcGUiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgdGVzdENvbXB1
dGVkU3R5bGUoIm91dHNpZGUtc2hhcGUiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgdGVzdENT
U1RleHQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlzICJyZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiCiBQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJyZWN0YW5n
bGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgpIgogUEFTUyB0ZXN0Q1NTVGV4dCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgs
IDQwcHgsIDVweCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCki
CkBAIC0yMiw2ICsyNCw3IEBAIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBvbHlnb24oZXZlbm9k
ZCwgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAiCiBQQVNTIHRlc3RDU1NU
ZXh0KCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIikg
aXMgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiCiBQ
QVNTIHRlc3RDb21wdXRlZFN0eWxlKCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0
MHB4LCA0MHB4IDUwcHgpIikgaXMgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQw
cHgsIDQwcHggNTBweCkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoImF1dG8iLCAicmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMgInBhcmVudDogYXV0bywgY2hpbGQ6IHJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKK1BBU1MgdGVzdE5vdEluaGVyaXRlZCgib3V0
c2lkZS1zaGFwZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFy
ZW50OiBvdXRzaWRlLXNoYXBlLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgpIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCkiLCAiaW5pdGlhbCIpIGlzICJwYXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
LCA0MHB4KSwgY2hpbGQ6IGF1dG8iCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgx
MHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICIiKSBpcyAicGFyZW50OiByZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVkKCJy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiaW5oZXJpdCIpIGlzICJwYXJlbnQ6
IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IHJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4KSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0
CmluZGV4IDMwMWE1ZDk2OTBiNGUzMWJmMDBlNjg5MmFjZjVkZTVlYWEzOTdiYmMuLjZjNWI1NWVk
MzgzZWYyYjc1Y2M3N2M0ZWZkMTgxZjU5NWEwODgyZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRz
aWRlLWV4cGVjdGVkLnR4dApAQCAtMzEsNiArMzEsOCBAQCBQQVNTIHRlc3RDU1NUZXh0KCJjYWxj
KCkiKSBpcyAiIgogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiY2FsYygpIikgaXMgImF1dG8iCiBQ
QVNTIHRlc3RDU1NUZXh0KCJub25lIikgaXMgIiIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoIm5v
bmUiKSBpcyAiYXV0byIKK1BBU1MgdGVzdENTU1RleHQoIm91dHNpZGUtc2hhcGUiKSBpcyAiIgor
UEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgib3V0c2lkZS1zaGFwZSIpIGlzICJhdXRvIgogUEFTUyB0
ZXN0Q1NTVGV4dCgicmVjdGFuZ2xlKCkiKSBpcyAiIgogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgi
cmVjdGFuZ2xlKCkiKSBpcyAiYXV0byIKIFBBU1MgdGVzdENTU1RleHQoInJlY3RhbmdsZSgxMHB4
KSIpIGlzICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0
LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMKaW5kZXgg
OWM1ZDMwMWZkODEyZWIxYWQwNjYwZDljZDQxZGY1NjcyY2E4Yzk2NC4uNDM5MjhmZWJkYTFjMmNj
MDU2MzA3YjcyY2I4MGVlZmE0OGFmMTdhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNo
YXBlLWluc2lkZS5qcwpAQCAtNTgsNiArNTgsNyBAQCBmdW5jdGlvbiBuZWdhdGl2ZV90ZXN0KHZh
bHVlKSB7CiAvLyBwb3NpdGl2ZSB0ZXN0cwogCiB0ZXN0KCJhdXRvIiwgImF1dG8iKTsKK3Rlc3Qo
Im91dHNpZGUtc2hhcGUiLCAib3V0c2lkZS1zaGFwZSIpOwogdGVzdCgicmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgpIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIp
OwogdGVzdCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiLCAicmVjdGFu
Z2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiKTsKIHRlc3QoInJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4LCA1cHgsIDEwcHgpIik7CkBAIC03MSw2ICs3Miw3IEBAIHRlc3QoInBvbHlnb24o
ZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9seWdvbihldmVu
b2RkLCAxMHB4CiB0ZXN0KCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0
MHB4IDUwcHgpIiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHgg
NTBweCkiKTsKIAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJhdXRv
IiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpJywgInBhcmVudDogYXV0bywg
Y2hpbGQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJvdXRzaWRlLXNoYXBlIiwgInJlY3RhbmdsZSgx
MHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpJywgInBhcmVudDogb3V0c2lkZS1zaGFwZSwgY2hpbGQ6
IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCki
LCAiaW5pdGlhbCIpJywgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
LCBjaGlsZDogYXV0byIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVk
KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiIiknLCAicGFyZW50OiByZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
LCA0MHB4KSIsICJpbmhlcml0IiknLCAicGFyZW50OiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCksIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2lu
Zy13cmFwLXNoYXBlLW91dHNpZGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2Ny
aXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzCmluZGV4IDViMWQ2N2UzZTI5
MTA5NDJiOGI5ODBjMDlkZGNiODY4NmVmYmI4NTAuLjE2MmNkNmQyYmJhMmQ4YTgxNzc3ZWNkMmVh
YTJmZDQ2ZjEzMjc0NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
Y3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lk
ZS5qcwpAQCAtODEsNiArODEsNyBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhl
cml0ZWQoImF1dG8iLCAiaW5oZXJpdCIpJywgInBhcmVudDogYXV0bywgY2hpbAogCiBuZWdhdGl2
ZV90ZXN0KCJjYWxjKCkiKTsKIG5lZ2F0aXZlX3Rlc3QoIm5vbmUiKTsKK25lZ2F0aXZlX3Rlc3Qo
Im91dHNpZGUtc2hhcGUiKTsKIAogbmVnYXRpdmVfdGVzdCgicmVjdGFuZ2xlKCkiKTsKIG5lZ2F0
aXZlX3Rlc3QoInJlY3RhbmdsZSgxMHB4KSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175074</attachid>
            <date>2012-11-19 16:41:22 -0800</date>
            <delta_ts>2012-11-20 11:14:28 -0800</delta_ts>
            <desc>Incorporating Dirk&apos;s feedback</desc>
            <filename>bug-101108-20121119163912.patch</filename>
            <type>text/plain</type>
            <size>33955</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMyMWIwMjdjZjQxNDFi
OTZlY2EyMjg1M2Q0YmRkMjE3YzU3MWNjYi4uODA4MmUxMjBhM2FmNTQzOTkwZmQ1YWQ2YTg5YTNm
YjM0NzdkMDM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTExLTE5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFN1cHBvcnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNoYXBlLWluc2lkZSBjYW4gcG90
ZW50aWFsbHkgYmU6ICdhdXRvJyB8ICdvdXRzaWRlLXNoYXBlJyB8IDxzaGFwZT4gfCA8dXJsPi4K
KyAgICAgICAgV2Via2l0IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgdmFsdWUgJ2F1dG8nIChudWxs
KSBhbmQgPHNoYXBlPiAoYSBCYXNpY1NoYXBlKikuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBz
dXBwb3J0IGZvciB0aGUgdmFsdWUgJ291dHNpZGUtc2hhcGUnLCBhbmQgdGhlIEV4Y2x1c2lvblNo
YXBlVmFsdWUKKyAgICAgICAgY2xhc3MsIHdoaWNoIG1heSBiZSBhbnkgb2YgdGhlIHRocmVlIHZh
bHVlczogJ2F1dG8nLCAnb3V0c2lkZS1zaGFwZScsIG9yIDxzaGFwZT4uCisgICAgICAgIEJ1ZyAx
MDI3MzggdHJhY2tzIGFkZGluZyA8dXJsPiBzdXBwb3J0LgorCisgICAgICAgIE1vZGlmeWluZyBl
eGlzdGluZyB0ZXN0czoKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNp
bmctd3JhcC1zaGFwZS1pbnNpZGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuaHRtbAorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbTogQWRkaW5nIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCB0byB0aGUgYnVpbGQg
ZmlsZXMuCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5n
eXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
OjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogTW9kaWZ5aW5nIGNvZGUgdG8gdXNlCisgICAgICAgIEV4
Y2x1c2lvblNoYXBlVmFsdWUqIHJhdGhlciB0aGFuIHRoZSBwcmV2aW91cyBCYXNpY1NoYXBlKiB2
YWx1ZXMuCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBIYW5kbGUgdGhlIG91dHNpZGUtc2hhcGUgdmFsdWUuCisg
ICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZGluZyBvdXRzaWRlLXNoYXBlIHZh
bHVlLgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGU6OnNldFZhbHVl
KTogTW9kaWZ5IGNvZGUgdG8gdXNlCisgICAgICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHJhdGhl
ciB0aGFuIEJhc2ljU2hhcGUqLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUV4Y2x1
c2lvblNoYXBlOjphcHBseVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5RXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUhhbmRsZXIpOiBEaXR0by4KKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6YmxlbmRGdW5jKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdy
YXBwZXJFeGNsdXNpb25TaGFwZTo6UHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uOjplbnN1cmVQcm9wZXJ0
eU1hcCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayk6CisgICAgICAgIERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRl
U2hhcGVTaXplKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9BZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKEV4Y2x1c2lvblNoYXBlVmFsdWUpOiBOZXcgdHlwZSB0byByZXByZXNlbnQgdGhlIHBv
c3NpYmxlIHZhbHVlcyBvZiBzaGFwZS1pbnNpZGUKKyAgICAgICAgYW5kIHNoYXBlLW91dHNpZGUu
IE9ubHkgc2hhcGUtaW5zaWRlIGNhbiBoYXZlIGEgdmFsdWUgb2YgT3V0c2lkZUV4Y2x1c2lvblNo
YXBlVmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp+RXhjbHVz
aW9uU2hhcGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZVZhbHVlOjp0
eXBlKTogUmV0dXJucyB0aGUgdmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lv
blNoYXBlVmFsdWU6OnNoYXBlKTogUmV0dXJucyB0aGUgc2hhcGUgYXNzb2NpYXRlZCB3aXRoIGEg
d3JhcHBlZAorICAgICAgICBCYXNpY1NoYXBlKi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lv
blNoYXBlVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hh
cGVJbmZvOjpjcmVhdGVTaGFwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNo
YXBlSW5mbzo6Y3JlYXRlT3V0c2lkZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lv
blNoYXBlVmFsdWU6OkV4Y2x1c2lvblNoYXBlVmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToK
KwogMjAxMi0xMS0xOSAgQWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGlu
dGVsLmNvbT4KIAogICAgICAgICBJbXByb3ZlIENvbnRlbnRUeXBlUGFyc2VyLCBzbyB0aGF0IGl0
IGNvdWxkIGJlIHVzZWQgdG8gdmFsaWRhdGUgbWltZSB0eXBlIGFjY29yZGluZyB0byBSRkMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZlYTdlZmM5YjUyZmIyM2UxNWEzNDUyMWVk
YjM0M2NmN2QxOTAxN2MuLjFlN2FjMWQ1YmNjYmU1MzhmMzBmMWFjZDYyMGRkOWM4Y2MyY2QxZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDQzNyw2ICs0NDM3LDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29y
RGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRGF0YVJlZi5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFBvc2l0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZGUxMGUxYzM5ZjExNWNlMGM2NDIw
ZjAxYjBhMWQzMGMyNDlhOTRmMS4uZjY2OTE4MDg2ZTEzYWM1YzY1YTFiZTlhYzIwYzYzMjFmNWU2
OTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yNDQ2LDYgKzI0NDYsNyBAQCBIRUFERVJTICs9IFwKICAg
ICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuaCBcCiAgICAgcmVuZGVyaW5nL3N0
eWxlL0N1cnNvckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaCBcCisg
ICAgcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0Lmgg
XAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBhY2JjNTkwYjE3ZmVlYmRlMWY1ZjUwYTA0ODI3ZTU1NWI0MDU5Y2UyLi45NDg5ZGM4NWY1
YzU1NTNhN2UwYTBmYjY1NDNjNWMyY2M3ODVjYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcs
NiArNTk3LDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvRGF0YVJlZi5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24u
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0xpbmVDbGFtcFZhbHVlLmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBkMDE4Nzg5
ZmNiMTE0OTY3YTQwZGM1YTg5ZmY4MmRkNDg5ZmNiZGE2Li5lMDA0ODQwM2RjM2U5MjJjY2VhODIz
OTE1OWFmNTYxMWZiY2Y3MWNmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNDU0NDMsNiArNDU0NDMsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCSAgICBSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxF
eGNsdXNpb25TaGFwZVZhbHVlLmgiCisJCQkJICAgID4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYWExMjVjNGY4OTE5YzYyMTYwNGJk
YjYyODE2ZWQ3ZjdjOGFmMTYxLi5jN2JmZmVhMDIzOTZmYmM5M2VmYTFjMTVkYzRlZTAxMGZlMzZj
MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC02Mzg3LDYgKzYzODcsNyBAQAogCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0Qg
LyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDZERkEzMTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovOyB9OwogCQlGRDA2REZBNjEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDA2REZBNDEzNEE0REVGMDA2RjVEN0QgLyog
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggKi87IH07CiAJCUZEMTY2MEE1MTM3ODdDNkQw
MDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDE2NjBBNDEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxE
aXNhYmxlci5oICovOyB9OworCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0RjcgLyogRXhjbHVzaW9u
U2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkQxQUYxNEUxNjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDIzQTEyNTEz
RjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyM0ExMjMxM0Y1RkE1
OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLzsgfTsKIAkJ
RkQyM0ExMjYxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDIzQTEy
NDEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsg
fTsKIAkJRkQyREJGMTIxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyREJGMEUx
MkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovOyB9OwpAQCAtMTM4NzUs
NiArMTM4NzYsNyBAQAogCQlGRDA2REZBMzEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZEMDZERkE0MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEMTY2MEE0MTM3
ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERlbm9ybWFsRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRkQxQUYxNEUxNjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOyBw
YXRoID0gc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRDIzQTEyMzEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRp
YUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRDIzQTEyNDEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQyREJGMEUxMkIw
NDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBB
Y2NlbGVyYXRlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fj
Y2VsZXJhdGUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjA2
MzAsNiArMjA2MzIsNyBAQAogCQkJCUJDMjI3MkExMEU4MkU4N0MwMEU3Rjk3NSAvKiBDdXJzb3JE
YXRhLmggKi8sCiAJCQkJQkMyMjcyQUMwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3QuaCAq
LywKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oICovLAorCQkJCUZE
MUFGMTRFMTY1NkYxMjEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmggKi8sCiAJCQkJ
QkM1RUI2OUMwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2
OUQwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUExMjcwNUMyMTY1NkJE
NjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCAqLywKQEAgLTIyNDU3LDYgKzIyNDYwLDcgQEAK
IAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBF
eGNsdXNpb25TaGFwZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGQTYyMTBEMUYwQ0JE
MDBEQjIyQTkgLyogRHluYW1pY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlE
QTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVjdEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCBmMzBkOTE3ZTAwM2E3N2FmNzM5YWVkNTIzZTkyOGFjZTI5
MjcwOWNmLi5iMTI3YWE5NmE1ZmVjNjkyMmYyNTVmYTRlM2Y5NmM2M2Q4YTFjZTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtNjQsNiArNjQsMTAgQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgorI2VuZGlmCisKICNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIu
aCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCIKQEAgLTI1MDQsMTEg
KzI1MDgsMTUgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFNoYXBlSW5zaWRlOgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+c2hhcGVJbnNp
ZGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRp
ZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JCYXNp
Y1NoYXBlKHN0eWxlLT5zaGFwZUluc2lkZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHN0eWxl
LT5zaGFwZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6T1VUU0lERSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlT3V0c2lkZVNoYXBlKTsKKyAgICAgICAgICAgIEFTU0VSVChzdHlsZS0+c2hh
cGVJbnNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAg
ICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnNo
YXBlKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAg
ICAgICAgICAgaWYgKCFzdHlsZS0+c2hhcGVPdXRzaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwot
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+c2hhcGVPdXRzaWRl
KCkpOworICAgICAgICAgICAgQVNTRVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09
IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZv
ckJhc2ljU2hhcGUoc3R5bGUtPnNoYXBlT3V0c2lkZSgpLT5zaGFwZSgpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBUaHJvdWdoOgogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT53cmFwVGhyb3VnaCgpKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA5YjJmNzA4NTcxMWI2ZmE0OTY3Y2JiZWY4YzQ2ZTUz
NjJlNWMxMWFlLi5kNThjNTdiN2JmMTdhMDdiYWI4ODY4MWJiMjRhZjQ4ZWM4ZGU5NGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjczNSw2ICsyNzM1LDggQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQog
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChwcm9w
SWQgPT0gQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZSAmJiBpZCA9PSBDU1NWYWx1ZU91dHNp
ZGVTaGFwZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxz
ZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZShwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA0YjljYzZlYTZm
YmJmZThmNzQ1NTVkYWQ0NzU5ODJjNWIzOTE5Y2FjLi4xMGJhNmVhZTdiNTU4Y2YyYjNjMjQyMmM0
YWJiMmEzZTU3MmIzMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpA
QCAtOTE0LDkgKzkxNCwxMSBAQCBvZmYKIG9wdGltaXplUXVhbGl0eQogLXdlYmtpdC1vcHRpbWl6
ZS1jb250cmFzdAogCi0vLyAtd2Via2l0LXdyYXAtc2hhcGUKKy8vIC13ZWJraXQtc2hhcGUtaW5z
aWRlCisvLyAtd2Via2l0LXNoYXBlLW91dHNpZGUKIG5vbnplcm8KIGV2ZW5vZGQKK291dHNpZGUt
c2hhcGUKIAogLy8gLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3cKIC8vIGF1dG8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlci5jcHAKaW5kZXggZWQ4ODY0MGE0OGFlMzc0OWJhNjYxYTU4NzMyNmUwZTBi
M2NlNGQ5ZC4uOTY4Yjk2Zjg0NzZjNTk0MzE1NmQ3OTMzNzc1ZDczZDIwNzVhZjI5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTQ3LDYgKzQ3LDEwIEBACiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCisjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFsdWUuaCIK
KyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xNzE2LDI1ICsxNzIwLDI4IEBAIHB1YmxpYzoKIH07CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCi10ZW1wbGF0ZSA8QmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVuY3Rp
b24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKFBhc3NSZWZQ
dHI8QmFzaWNTaGFwZT4pLCBCYXNpY1NoYXBlKiAoKmluaXRpYWxGdW5jdGlvbikoKT4KK3RlbXBs
YXRlIDxFeGNsdXNpb25TaGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbiko
KSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxF
eGNsdXNpb25TaGFwZVZhbHVlPiksIEV4Y2x1c2lvblNoYXBlVmFsdWUqICgqaW5pdGlhbEZ1bmN0
aW9uKSgpPgogY2xhc3MgQXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNoYXBlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIFBhc3NSZWZQdHI8QmFz
aWNTaGFwZT4gdmFsdWUpIHsgKHN0eWxlLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQorICAg
IHN0YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxFeGNs
dXNpb25TaGFwZVZhbHVlPiB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUp
OyB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29s
dmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
dmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7CiAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVBdXRvKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCks
IDApOworICAgICAgICAgICAgLy8gRklYTUUgQnVnIDEwMjU3MTogTGF5b3V0IGZvciB0aGUgdmFs
dWUgJ291dHNpZGUtc2hhcGUnIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICAgICAgICAgIGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3V0c2lkZVNoYXBl
KQorICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIEV4Y2x1
c2lvblNoYXBlVmFsdWU6OmNyZWF0ZU91dHNpZGVWYWx1ZSgpKTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8
QmFzaWNTaGFwZT4gc2hhcGUgPSBiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJp
bWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPEV4
Y2x1c2lvblNoYXBlVmFsdWU+IHNoYXBlID0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlU2hh
cGVWYWx1ZShiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUt
PmdldFNoYXBlVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCksIHNoYXBlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKICAgICB7
Ci0gICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRC
YXNlPEJhc2ljU2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiwg
c2V0dGVyRnVuY3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5k
bGVyKCk7CisgICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURl
ZmF1bHRCYXNlPEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0
cjxFeGNsdXNpb25TaGFwZVZhbHVlPiwgc2V0dGVyRnVuY3Rpb24sIEV4Y2x1c2lvblNoYXBlVmFs
dWUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7CiAgICAgICAgIHJldHVybiBQ
cm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFs
RnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggYjc2
M2I1NjY1OWJiM2IxY2YyMjYwNTY2ZjJkNGU5NGNhYzZiMzNlZC4uMjUwNGRhNDA0MWQwMTVkZTU3
YmNiZDhhYmZjOTNmNDAyOTA0Mjc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTQzLDEyICsxNDMsMTkg
QEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMo
Y29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXAKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIEJhc2ljU2hhcGUqIGZyb20sIEJhc2ljU2hhcGUqIHRvLCBkb3VibGUg
cHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4g
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBFeGNsdXNpb25TaGFwZVZhbHVlKiBmcm9t
LCBFeGNsdXNpb25TaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewotICAgIGlmICgh
ZnJvbS0+Y2FuQmxlbmQodG8pKQorICAgIC8vIEZJWE1FIEJ1ZyAxMDI3MjM6IFNoYXBlLWluc2lk
ZSBzaG91bGQgYmUgYWJsZSB0byBhbmltYXRlIGEgdmFsdWUgb2YgJ291dHNpZGUtc2hhcGUnIHdo
ZW4gc2hhcGUtb3V0c2lkZSBpcyBzZXQgdG8gYSBCYXNpY1NoYXBlCisgICAgaWYgKGZyb20tPnR5
cGUoKSAhPSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSB8fCB0by0+dHlwZSgpICE9IEV4Y2x1
c2lvblNoYXBlVmFsdWU6OlNIQVBFKQogICAgICAgICByZXR1cm4gdG87CiAKLSAgICByZXR1cm4g
dG8tPmJsZW5kKGZyb20sIHByb2dyZXNzKTsKKyAgICBjb25zdCBCYXNpY1NoYXBlKiBmcm9tU2hh
cGUgPSBmcm9tLT5zaGFwZSgpOworICAgIGNvbnN0IEJhc2ljU2hhcGUqIHRvU2hhcGUgPSB0by0+
c2hhcGUoKTsKKworICAgIGlmICghZnJvbVNoYXBlLT5jYW5CbGVuZCh0b1NoYXBlKSkKKyAgICAg
ICAgcmV0dXJuIHRvOworCisgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBlVmFsdWU6OmNyZWF0ZVNo
YXBlVmFsdWUodG9TaGFwZS0+YmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogI2VuZGlm
CiAKQEAgLTQwNCwxMCArNDExLDEwIEBAIHB1YmxpYzoKIH07CiAKICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCi1jbGFzcyBQcm9wZXJ0eVdyYXBwZXJCYXNpY1NoYXBlIDogcHVibGljIFJlZkNv
dW50ZWRQcm9wZXJ0eVdyYXBwZXI8QmFzaWNTaGFwZT4geworY2xhc3MgUHJvcGVydHlXcmFwcGVy
RXhjbHVzaW9uU2hhcGUgOiBwdWJsaWMgUmVmQ291bnRlZFByb3BlcnR5V3JhcHBlcjxFeGNsdXNp
b25TaGFwZVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgUHJvcGVydHlXcmFwcGVyQmFzaWNTaGFwZShD
U1NQcm9wZXJ0eUlEIHByb3AsIEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6KmdldHRlcikoKSBj
b25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXIpKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4p
KQotICAgICAgICA6IFJlZkNvdW50ZWRQcm9wZXJ0eVdyYXBwZXI8QmFzaWNTaGFwZT4ocHJvcCwg
Z2V0dGVyLCBzZXR0ZXIpCisgICAgUHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUoQ1NTUHJv
cGVydHlJRCBwcm9wLCBFeGNsdXNpb25TaGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXIp
KCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyKShQYXNzUmVmUHRyPEV4Y2x1c2lv
blNoYXBlVmFsdWU+KSkKKyAgICAgICAgOiBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEV4Y2x1
c2lvblNoYXBlVmFsdWU+KHByb3AsIGdldHRlciwgc2V0dGVyKQogICAgIHsKICAgICB9CiB9OwpA
QCAtMTE2Miw3ICsxMTY5LDcgQEAgdm9pZCBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6ZW5zdXJlUHJv
cGVydHlNYXAoKQogICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3Jh
cHBlckNsaXBQYXRoKENTU1Byb3BlcnR5V2Via2l0Q2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6Y2xp
cFBhdGgsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcFBhdGgpKTsKIAogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLSAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBw
ZXJCYXNpY1NoYXBlKENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUsICZSZW5kZXJTdHlsZTo6
c2hhcGVJbnNpZGUsICZSZW5kZXJTdHlsZTo6c2V0U2hhcGVJbnNpZGUpKTsKKyAgICBnUHJvcGVy
dHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJFeGNsdXNpb25TaGFwZShDU1NQ
cm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlLCAmUmVuZGVyU3R5bGU6OnNoYXBlSW5zaWRlLCAmUmVu
ZGVyU3R5bGU6OnNldFNoYXBlSW5zaWRlKSk7CiAjZW5kaWYKIAogICAgIGdQcm9wZXJ0eVdyYXBw
ZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlclZpc2l0ZWRBZmZlY3RlZENvbG9yKENTU1By
b3BlcnR5V2Via2l0Q29sdW1uUnVsZUNvbG9yLCBNYXliZUludmFsaWRDb2xvciwgJlJlbmRlclN0
eWxlOjpjb2x1bW5SdWxlQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZUNvbG9yLCAm
UmVuZGVyU3R5bGU6OnZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNl
dFZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCmluZGV4IGI3ODMwZjEwZWY2
YmU0YzM5MjMwNzgzNTNjNGQwOTg3ZDc3MWEwZGYuLjkzNGUzZjI5OWY0MDNhNDEwZDZmNTg2OWI0
NjY3NGZhZWYzMzIyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCkBAIC03Miw3ICs3Miw4IEBAIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUlu
c2lkZUluZm9Gb3JSCiBib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJs
b2NrKQogewogICAgIC8vIEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9y
IG5vbi1yZWN0YW5ndWxhciBzaGFwZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5z
dHlsZSgpLT5zaGFwZUluc2lkZSgpOworICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFs
dWUgPSBibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBCYXNpY1NoYXBlKiBzaGFw
ZSA9IChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZh
bHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKICAgICByZXR1cm4gc2hhcGUg
JiYgKHNoYXBlLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFIHx8
IHNoYXBlLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUE9MWUdPTik7CiB9CiAK
QEAgLTkzLDcgKzk0LDkgQEAgdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVT
aGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFUKICAgICBtX2xvZ2ljYWxI
ZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OwogCiAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogVGhlIHdy
YXAgc2hhcGUgbWF5IGNvbWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAotICAgIEJhc2ljU2hhcGUq
IHNoYXBlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNsdXNpb25T
aGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsK
KyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUo
KSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVlLT5zaGFwZSgpIDog
MDsKKwogICAgIEFTU0VSVChzaGFwZSk7CiAKICAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6
OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQs
IG1fYmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggNGE1ZTg5MzNkMGEwYWZmOTRhYzczNjQ5NzRiZGM0MDk2
NTAzMjQzNC4uODRmN2IzYzYxYmM5MmI1N2U2NjVhM2FmNDdjNDJlZmI3M2RmNDU0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xMzk4LDcgKzEzOTgsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXQoKQogfQogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiBzaGFwZUluc2lkZSwgY29uc3QgQmFzaWNT
aGFwZSogb2xkU2hhcGVJbnNpZGUpCit2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUq
IHNoYXBlSW5zaWRlLCBjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBvbGRTaGFwZUluc2lkZSkK
IHsKICAgICAvLyBGSVhNRTogQSBmdXR1cmUgb3B0aW1pemF0aW9uIHdvdWxkIGRvIGEgZGVlcCBj
b21wYXJpc29uIGZvciBlcXVhbGl0eS4KICAgICBpZiAoc2hhcGVJbnNpZGUgPT0gb2xkU2hhcGVJ
bnNpZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDU1YTAwMWY2
MWM0Y2IzYTEyMmVhZTlkYTc4Y2ZmYTIwYzk2NzQyMjcuLmE1NTY2ZWQ3NzY2YjQ0NjFhNjRjMDdh
NTE2MmFjZGNiMjQwYzg0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
CkBAIC0zNiw2ICszNiw3IEBACiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAjaW5jbHVk
ZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVW
YWx1ZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyMSw3ICs1MjIsNyBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2
b2lkIGNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKTsKLSAgICB2b2lkIHVwZGF0ZUV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwZSosIGNvbnN0
IEJhc2ljU2hhcGUqIG9sZFdyYXBTaGFwZSk7CisgICAgdm9pZCB1cGRhdGVFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBj
b25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBvbGRFeGNsdXNpb25TaGFwZSk7CiAjZW5kaWYKICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1
cm4gY2hpbGRyZW4oKTsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJlbigpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZTYxYTA5NGNkMTE4ODFmNTg2MGE0YjYxODI3Y2QxNTZiYzk0ZTAzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNo
YXBlVmFsdWUuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFk
b2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgRXhjbHVzaW9uU2hhcGVWYWx1ZV9oCisjZGVmaW5lIEV4Y2x1c2lvblNoYXBlVmFs
dWVfaAorCisjaW5jbHVkZSAiQmFzaWNTaGFwZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBFeGNsdXNpb25TaGFwZVZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8RXhjbHVzaW9u
U2hhcGVWYWx1ZT4geworcHVibGljOgorICAgIGVudW0gRXhjbHVzaW9uU2hhcGVWYWx1ZVR5cGUg
eworICAgICAgICAvLyBUaGUgQVVUTyB2YWx1ZSBpcyBkZWZpbmVkIGJ5IGEgbnVsbCBFeGNsdXNp
b25TaGFwZVZhbHVlKgorICAgICAgICBTSEFQRSwKKyAgICAgICAgT1VUU0lERQorICAgIH07CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBjcmVhdGVTaGFwZVZh
bHVlKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEV4Y2x1c2lvblNoYXBlVmFsdWUoc2hhcGUpKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBjcmVhdGVPdXRzaWRlVmFsdWUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeGNsdXNpb25TaGFwZVZhbHVl
KE9VVFNJREUpKTsKKyAgICB9CisKKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgQmFzaWNTaGFwZSogc2hhcGUoKSBjb25zdCB7
IHJldHVybiBtX3NoYXBlLmdldCgpOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV4Y2x1
c2lvblNoYXBlVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gb3RoZXIudHlw
ZSgpOyB9CisKK3ByaXZhdGU6CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShQYXNzUmVmUHRyPEJh
c2ljU2hhcGU+IHNoYXBlKSA6IG1fdHlwZShTSEFQRSksIG1fc2hhcGUoc2hhcGUpIHsgfQorICAg
IEV4Y2x1c2lvblNoYXBlVmFsdWUoRXhjbHVzaW9uU2hhcGVWYWx1ZVR5cGUgdHlwZSkgOiBtX3R5
cGUodHlwZSkgeyB9CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZVR5cGUgbV90eXBlOworICAgIFJl
ZlB0cjxCYXNpY1NoYXBlPiBtX3NoYXBlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNDBjMzJkZGNjYTgzZTY5
ZDNlMjU4YjVmMDM1NzA4ZjI0MzA3M2NlZC4uMzE5OTZmYTA1YWJiNWNkMDU4OTQxMWE1NmZhY2Yz
YzcwNzNjNWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVk
ZSAiQ291bnRlckRpcmVjdGl2ZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmLmgiCisjaW5jbHVkZSAi
RXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRCYXNlbGluZS5oIgogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKQEAgLTE0
NTUsMjIgKzE0NTYsMjQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0S2VybmluZyhTVkdMZW5ndGgg
aykgeyBhY2Nlc3NTVkdTdHlsZSgpLT5zZXRLZXJuaW5nKGspOyB9CiAjZW5kaWYKIAotICAgIHZv
aWQgc2V0U2hhcGVJbnNpZGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKKyAgICB2b2lk
IHNldFNoYXBlSW5zaWRlKFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gdmFsdWUpCiAg
ICAgewotICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hhcGVJbnNpZGUgIT0g
c2hhcGUpCi0gICAgICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9zaGFw
ZUluc2lkZSA9IHNoYXBlOworICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hh
cGVJbnNpZGUgPT0gdmFsdWUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3NoYXBlSW5zaWRlID0gdmFsdWU7CiAgICAgfQotICAg
IEJhc2ljU2hhcGUqIHNoYXBlSW5zaWRlKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fc2hhcGVJbnNpZGUuZ2V0KCk7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBz
aGFwZUluc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBl
SW5zaWRlLmdldCgpOyB9CiAKLSAgICB2b2lkIHNldFNoYXBlT3V0c2lkZShQYXNzUmVmUHRyPEJh
c2ljU2hhcGU+IHNoYXBlKQorICAgIHZvaWQgc2V0U2hhcGVPdXRzaWRlKFBhc3NSZWZQdHI8RXhj
bHVzaW9uU2hhcGVWYWx1ZT4gdmFsdWUpCiAgICAgewotICAgICAgICBpZiAocmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fc2hhcGVPdXRzaWRlICE9IHNoYXBlKQotICAgICAgICAgICAgcmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fc2hhcGVPdXRzaWRlID0gc2hhcGU7CisgICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUgPT0gdmFsdWUpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3No
YXBlT3V0c2lkZSA9IHZhbHVlOwogICAgIH0KLSAgICBCYXNpY1NoYXBlKiBzaGFwZU91dHNpZGUo
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUuZ2V0
KCk7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZU91dHNpZGUoKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUuZ2V0KCk7IH0KIAotICAg
IHN0YXRpYyBCYXNpY1NoYXBlKiBpbml0aWFsU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9Ci0g
ICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRpYWxTaGFwZU91dHNpZGUoKSB7IHJldHVybiAwOyB9
CisgICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlVmFsdWUqIGluaXRpYWxTaGFwZUluc2lkZSgpIHsg
cmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVWYWx1ZSogaW5pdGlhbFNoYXBl
T3V0c2lkZSgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZvaWQgc2V0Q2xpcFBhdGgoUGFzc1JlZlB0
cjxDbGlwUGF0aE9wZXJhdGlvbj4gb3BlcmF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDQxODZiYjE5ZjZhOTM2MzI3ZTMwMTE4NGIxNDE0NDIzZDlkY2U3OWIuLmM0YWMwZjZm
MzhmODkyMTFlYzA4NDM5OGQxOWY1Mjg3NTVmMGRkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvdW50ZXJEaXJlY3RpdmVzLmgiCiAjaW5jbHVk
ZSAiQ3Vyc29yRGF0YS5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlICJFeGNsdXNp
b25TaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAiRmlsbExheWVyLmgiCiAjaW5jbHVkZSAiTGluZUNs
YW1wVmFsdWUuaCIKICNpbmNsdWRlICJOaW5lUGllY2VJbWFnZS5oIgpAQCAtMTM3LDggKzEzOCw4
IEBAIHB1YmxpYzoKIAogICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKIAotICAgIFJlZlB0cjxC
YXNpY1NoYXBlPiBtX3NoYXBlSW5zaWRlOwotICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3NoYXBl
T3V0c2lkZTsKKyAgICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gbV9zaGFwZUluc2lkZTsK
KyAgICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gbV9zaGFwZU91dHNpZGU7CiAgICAgTGVu
Z3RoIG1fc2hhcGVNYXJnaW47CiAgICAgTGVuZ3RoIG1fc2hhcGVQYWRkaW5nOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NzA1MzY4Y2ZkNmM5MjhhZjUxZjAwNWM5ZWZkODM5ZjRjMDc4Mzc4ZS4uMDZhZTdlNmExNzE1YzIz
MzNlNDdiMzE0NDkxZjg5NDUxM2FmNTI1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEx
LTE5ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4
Y2x1c2lvbnNdIFN1cHBvcnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0ZXN0
cyB0byBtYWtlIHN1cmUgdGhlICdvdXRzaWRlLXNoYXBlJyB2YWx1ZSBwcm9wZXJseSBhcHBsaWVz
IG9ubHkgdG8gdGhlCisgICAgICAgIHNoYXBlLWluc2lkZSBwcm9wZXJ0eS4KKworICAgICAgICAq
IGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2lu
Zy13cmFwLXNoYXBlLWluc2lkZS5qczoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0
LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzOgorCiAyMDEyLTExLTE5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaGFuZ2luZyBp
ZCwgY2xhc3NOYW1lLCBvciBhdHRyaWJ1dGUgc2hvdWxkIGludmFsaWRhdGUgZGlzdHJpYnV0aW9u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNo
YXBlLWluc2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKaW5kZXggN2M0MmVjNTNlM2Y5Mjlm
ZTkxZWRkZGFmZmUzYzJkMWMxMTA3NzU2OS4uYmM4ZTY3NDZkNzU4Y2RjOGM0NTRjODRhY2E4Mjg4
MWZmNzJiMmE5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNp
bmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dApAQCAtNSw2
ICs1LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyB0ZXN0Q1NTVGV4dCgiYXV0
byIpIGlzICJhdXRvIgogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiYXV0byIpIGlzICJhdXRvIgor
UEFTUyB0ZXN0Q1NTVGV4dCgib3V0c2lkZS1zaGFwZSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFT
UyB0ZXN0Q29tcHV0ZWRTdHlsZSgib3V0c2lkZS1zaGFwZSIpIGlzICJvdXRzaWRlLXNoYXBlIgog
UEFTUyB0ZXN0Q1NTVGV4dCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMg
InJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVzdENvbXB1dGVkU3R5
bGUoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlzICJyZWN0YW5nbGUoMTBw
eCwgMjBweCwgMzBweCwgNDBweCkiCiBQQVNTIHRlc3RDU1NUZXh0KCJyZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCwgNXB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCwgNXB4KSIKQEAgLTIyLDYgKzI0LDcgQEAgUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9s
eWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICIKIFBB
U1MgdGVzdENTU1RleHQoInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQw
cHggNTBweCkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBw
eCA1MHB4KSIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBvbHlnb24obm9uemVybywgMTBweCAy
MHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMHB4IDIw
cHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgiYXV0byIs
ICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50OiBhdXRvLCBj
aGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgorUEFTUyB0ZXN0Tm90SW5o
ZXJpdGVkKCJvdXRzaWRlLXNoYXBlIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4
KSIpIGlzICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBw
eCwgMzBweCwgNDBweCkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAy
MHB4LCAzMHB4LCA0MHB4KSIsICJpbml0aWFsIikgaXMgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogYXV0byIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgi
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgIiIpIGlzICJwYXJlbnQ6IHJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iCiBQQVNTIHRlc3ROb3RJ
bmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICJpbmhlcml0Iikg
aXMgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogcmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1l
eHBlY3RlZC50eHQKaW5kZXggMzAxYTVkOTY5MGI0ZTMxYmYwMGU2ODkyYWNmNWRlNWVhYTM5N2Ji
Yy4uNmM1YjU1ZWQzODNlZjJiNzVjYzc3YzRlZmQxODFmNTk1YTA4ODJkOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFw
LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSw4IEBAIFBBU1MgdGVzdENT
U1RleHQoImNhbGMoKSIpIGlzICIiCiBQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJjYWxjKCkiKSBp
cyAiYXV0byIKIFBBU1MgdGVzdENTU1RleHQoIm5vbmUiKSBpcyAiIgogUEFTUyB0ZXN0Q29tcHV0
ZWRTdHlsZSgibm9uZSIpIGlzICJhdXRvIgorUEFTUyB0ZXN0Q1NTVGV4dCgib3V0c2lkZS1zaGFw
ZSIpIGlzICIiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJvdXRzaWRlLXNoYXBlIikgaXMgImF1
dG8iCiBQQVNTIHRlc3RDU1NUZXh0KCJyZWN0YW5nbGUoKSIpIGlzICIiCiBQQVNTIHRlc3RDb21w
dXRlZFN0eWxlKCJyZWN0YW5nbGUoKSIpIGlzICJhdXRvIgogUEFTUyB0ZXN0Q1NTVGV4dCgicmVj
dGFuZ2xlKDEwcHgpIikgaXMgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lk
ZS5qcwppbmRleCA5YzVkMzAxZmQ4MTJlYjFhZDA2NjBkOWNkNDFkZjU2NzJjYThjOTY0Li40Mzky
OGZlYmRhMWMyY2MwNTYzMDdiNzJjYjgwZWVmYTQ4YWYxN2FhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNp
ZGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJz
aW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCkBAIC01OCw2ICs1OCw3IEBAIGZ1bmN0aW9uIG5lZ2F0
aXZlX3Rlc3QodmFsdWUpIHsKIC8vIHBvc2l0aXZlIHRlc3RzCiAKIHRlc3QoImF1dG8iLCAiYXV0
byIpOwordGVzdCgib3V0c2lkZS1zaGFwZSIsICJvdXRzaWRlLXNoYXBlIik7CiB0ZXN0KCJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgpIik7CiB0ZXN0KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4
KSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIpOwogdGVzdCgicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiLCAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKTsKQEAgLTcxLDYgKzcyLDcgQEAgdGVz
dCgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIsICJw
b2x5Z29uKGV2ZW5vZGQsIDEwcHgKIHRlc3QoInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAz
MHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHgg
NDBweCwgNDBweCA1MHB4KSIpOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhl
cml0ZWQoImF1dG8iLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiknLCAicGFy
ZW50OiBhdXRvLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoIm91dHNpZGUtc2hhcGUiLCAi
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiknLCAicGFyZW50OiBvdXRzaWRlLXNo
YXBlLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIik7CiBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4KSIsICJpbml0aWFsIiknLCAicGFyZW50OiByZWN0YW5nbGUoMTBweCwgMjBweCwg
MzBweCwgNDBweCksIGNoaWxkOiBhdXRvIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RO
b3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICIiKScsICJw
YXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iKTsK
IHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgicmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaGVyaXQiKScsICJwYXJlbnQ6IHJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0
MHB4KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10
ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMKaW5kZXgg
NWIxZDY3ZTNlMjkxMDk0MmI4Yjk4MGMwOWRkY2I4Njg2ZWZiYjg1MC4uMTYyY2Q2ZDJiYmEyZDhh
ODE3NzdlY2QyZWFhMmZkNDZmMTMyNzQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1z
aGFwZS1vdXRzaWRlLmpzCkBAIC04MSw2ICs4MSw3IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJpbmhlcml0IiknLCAicGFyZW50OiBhdXRvLCBjaGls
CiAKIG5lZ2F0aXZlX3Rlc3QoImNhbGMoKSIpOwogbmVnYXRpdmVfdGVzdCgibm9uZSIpOworbmVn
YXRpdmVfdGVzdCgib3V0c2lkZS1zaGFwZSIpOwogCiBuZWdhdGl2ZV90ZXN0KCJyZWN0YW5nbGUo
KSIpOwogbmVnYXRpdmVfdGVzdCgicmVjdGFuZ2xlKDEwcHgpIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175249</attachid>
            <date>2012-11-20 11:14:30 -0800</date>
            <delta_ts>2012-11-20 14:40:20 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-101108-20121120111219.patch</filename>
            <type>text/plain</type>
            <size>33910</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYwNTJhODNjYWRhZGYy
ZTliNzUwZjJlZTcwYjM4NzFjNTVlZDdmMS4uMDcyNTAyYmM4ZDJkYWJmYmI4MzM0ZTk2MDQyOWE0
OTFlNmZhYjcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTIwICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFN1cHBvcnQgb3V0c2lkZS1zaGFwZSB2YWx1ZSBvbiBzaGFwZS1pbnNpZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNoYXBlLWluc2lkZSBjYW4gcG90
ZW50aWFsbHkgYmU6ICdhdXRvJyB8ICdvdXRzaWRlLXNoYXBlJyB8IDxzaGFwZT4gfCA8dXJsPi4K
KyAgICAgICAgV2Via2l0IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgdmFsdWUgJ2F1dG8nIChudWxs
KSBhbmQgPHNoYXBlPiAoYSBCYXNpY1NoYXBlKikuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBz
dXBwb3J0IGZvciB0aGUgdmFsdWUgJ291dHNpZGUtc2hhcGUuJyBJdCBhZGRzIHRoZSBFeGNsdXNp
b25TaGFwZVZhbHVlCisgICAgICAgIGNsYXNzLCB3aGljaCBtYXkgYmUgYW55IG9mIHRoZSB0aHJl
ZSB2YWx1ZXM6ICdhdXRvJywgJ291dHNpZGUtc2hhcGUnLCBvciA8c2hhcGU+LgorICAgICAgICBC
dWcgMTAyNzM4IHRyYWNrcyBhZGRpbmcgPHVybD4gc3VwcG9ydC4KKworICAgICAgICBNb2RpZnlp
bmcgZXhpc3RpbmcgdGVzdHM6CisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9w
YXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmh0bWwKKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06IEFkZGluZyBFeGNsdXNpb25TaGFwZVZhbHVlLmggdG8gdGhlIGJ1
aWxkIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6IE1vZGlmeWluZyBjb2RlIHRvIHVzZQorICAgICAg
ICBFeGNsdXNpb25TaGFwZVZhbHVlKiByYXRoZXIgdGhhbiB0aGUgcHJldmlvdXMgQmFzaWNTaGFw
ZSogdmFsdWVzLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKTogSGFuZGxlIHRoZSBvdXRzaWRlLXNoYXBlIHZhbHVl
LgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGRpbmcgb3V0c2lkZS1zaGFw
ZSB2YWx1ZS4KKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNoYXBlOjpzZXRW
YWx1ZSk6IE1vZGlmeSBjb2RlIHRvIHVzZQorICAgICAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBy
YXRoZXIgdGhhbiBCYXNpY1NoYXBlKi4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlF
eGNsdXNpb25TaGFwZTo6YXBwbHlWYWx1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUV4Y2x1c2lvblNoYXBlOjpjcmVhdGVIYW5kbGVyKTogRGl0dG8uCisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVy
dHlXcmFwcGVyRXhjbHVzaW9uU2hhcGU6OlByb3BlcnR5V3JhcHBlckV4Y2x1c2lvblNoYXBlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6ZW5zdXJlUHJv
cGVydHlNYXApOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2spOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29t
cHV0ZVNoYXBlU2l6ZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChFeGNsdXNpb25TaGFwZVZhbHVlKTogTmV3IHR5cGUgdG8gcmVwcmVzZW50IHRo
ZSBwb3NzaWJsZSB2YWx1ZXMgb2Ygc2hhcGUtaW5zaWRlCisgICAgICAgIGFuZCBzaGFwZS1vdXRz
aWRlLiBPbmx5IHNoYXBlLWluc2lkZSBjYW4gaGF2ZSBhIHZhbHVlIG9mICdvdXRzaWRlLXNoYXBl
LicKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6On5FeGNsdXNpb25TaGFw
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6OnR5cGUpOiBS
ZXR1cm5zIHRoZSB2YWx1ZSB0eXBlLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVW
YWx1ZTo6c2hhcGUpOiBSZXR1cm5zIDxzaGFwZT4gdmFsdWUncyBCYXNpY1NoYXBlKi4KKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpjcmVhdGVTaGFwZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mbzo6Y3JlYXRlT3V0c2lkZVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6OkV4Y2x1c2lvblNoYXBlVmFsdWUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhKToKKwogMjAxMi0xMS0yMCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yOjpkZWNvZGVkU25pcHBldEZvckphdmFT
Y3JpcHQgc3RvcHBpbmcgd2hlbiBjb21tYSBlbmNvdW50ZXJlZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDZjNzI3MjdiNDViNzcxMzY2MWNkY2JjYjRkOGI4NjM4M2U5ODA5NmEu
LjZiODhmNGY2MzY5MDExMjZlNmNmNTJiNzhjNmUxZDU0ODJlOGRiZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNDQzOCw2ICs0NDM4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRGF0YVJlZi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9u
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggYWYxZTc4NWU1OThhNDc0MDYzYjFkNDhhYWRkMmYxM2MzMDBl
YWM3My4uYjMxZTVlZTc5MThiMjk2YmViZDc2NzBiZWIxNzMzMTAzYjAzMDJjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0yNDQ3LDYgKzI0NDcsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5
bGUvQ291bnRlckRpcmVjdGl2ZXMuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0N1cnNvckRhdGEu
aCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaCBcCisgICAgcmVuZGVyaW5nL3N0
eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXll
ci5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmggXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxNDNmMjZkNzIw
NzllNzBmMWI3MTgzYzQ2YmMzNzVhOTk2ZjA3MjIwLi5iN2U1NzZlYjIzMGRjODkyMDc3NjcxZDJk
ZmQyMzQwNjE3ZTY1NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcsNiArNTk3LDcgQEAKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvRGF0YVJlZi5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hh
cGVWYWx1ZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL3N0eWxlL0xpbmVDbGFtcFZhbHVlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBkODI4ZmIyZjBmNWY3N2MyZTViZjk5
MTI1Mzc1MWU2NDI3NDhjN2I4Li40NDUzOWMwYzVhZTZkZDM1MThlZGE2NzFmMTE3NDVlNmFlZTQ0
ZTExIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNDU0NDcsNiArNDU0NDcsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCSAgICBSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxFeGNsdXNpb25TaGFwZVZh
bHVlLmgiCisJCQkJICAgID4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmNwcCIKIAkJCQkJPgogCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYjE0Y2NiMDA5MDM4Y2I2Mzk3YTE4N2MxNDE3OGIzZjIwYTQ4
OTIyLi5jYjE4YzJjMzY3ZGZiNWFlZjkxZjM4MWRkNjQ4N2U3YTQ4NjIyYWM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzg4
LDYgKzYzODgsNyBAQAogCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZEMDZERkEzMTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwICovOyB9OwogCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDA2REZBNDEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggKi87IH07CiAJCUZEMTY2MEE1MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5v
cm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDE2NjBBNDEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oICovOyB9
OworCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQxQUYxNEUxNjU2
RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDIzQTEyNTEzRjVGQTU5MDBGNjcwMDEg
LyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyM0ExMjMxM0Y1RkE1OTAwRjY3MDAxIC8qIEpT
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLzsgfTsKIAkJRkQyM0ExMjYxM0Y1RkE1
OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDIzQTEyNDEzRjVGQTU5MDBGNjcw
MDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKIAkJRkQyREJGMTIx
MkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyREJGMEUxMkIwNDhBMzAwRUQ5OEM2
IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovOyB9OwpAQCAtMTM4NzYsNiArMTM4NzcsNyBAQAog
CQlGRDA2REZBMzEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEMDZERkE0
MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEMTY2MEE0MTM3ODdDNkQwMDFGRkE3QiAv
KiBEZW5vcm1hbERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
bm9ybWFsRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQxQUYxNEUx
NjU2RjEyMTAwQzZENEY3IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOyBwYXRoID0gc3R5bGUvRXhj
bHVzaW9uU2hhcGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDIzQTEy
MzEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDIzQTEyNDEzRjVG
QTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQyREJGMEUxMkIwNDhBMzAwRUQ5OEM2IC8q
IEFjY2VsZXJhdGUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBY2NlbGVyYXRlLmZyYW1l
d29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjA2MzEsNiArMjA2MzMsNyBA
QAogCQkJCUJDMjI3MkExMEU4MkU4N0MwMEU3Rjk3NSAvKiBDdXJzb3JEYXRhLmggKi8sCiAJCQkJ
QkMyMjcyQUMwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3QuaCAqLywKIAkJCQlCQzIyNzQ2
RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oICovLAorCQkJCUZEMUFGMTRFMTY1NkYxMjEw
MEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFF
QjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1
OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUExMjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBH
cmlkUG9zaXRpb24uaCAqLywKQEAgLTIyNDU5LDYgKzIyNDYyLDcgQEAKIAkJCWlzYSA9IFBCWEhl
YWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAorCQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogRHlu
YW1pY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEQTA5NzM3NEY2MDBENzQ0
NjMgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlE
ODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCBmMzBkOTE3ZTAwM2E3N2FmNzM5YWVkNTIzZTkyOGFjZTI5MjcwOWNmLi5iMTI3YWE5
NmE1ZmVjNjkyMmYyNTVmYTRlM2Y5NmM2M2Q4YTFjZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjQsNiArNjQsMTAg
QEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisjaW5jbHVk
ZSAiRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NIQURF
UlMpCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIuaCIKICNpbmNsdWRlICJD
dXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCIKQEAgLTI1MDQsMTEgKzI1MDgsMTUgQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0
eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBl
SW5zaWRlOgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+c2hhcGVJbnNpZGUoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQXV0byk7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JCYXNpY1NoYXBlKHN0eWxlLT5z
aGFwZUluc2lkZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHN0eWxlLT5zaGFwZUluc2lkZSgp
LT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6T1VUU0lERSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlT3V0
c2lkZVNoYXBlKTsKKyAgICAgICAgICAgIEFTU0VSVChzdHlsZS0+c2hhcGVJbnNpZGUoKS0+dHlw
ZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnNoYXBlKCkpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAgICAgICAgICAgaWYgKCFz
dHlsZS0+c2hhcGVPdXRzaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+c2hhcGVPdXRzaWRlKCkpOworICAgICAgICAg
ICAgQVNTRVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBl
VmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5
bGUtPnNoYXBlT3V0c2lkZSgpLT5zaGFwZSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFdyYXBUaHJvdWdoOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZVZhbHVlKHN0eWxlLT53cmFwVGhyb3VnaCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAppbmRleCA5YjJmNzA4NTcxMWI2ZmE0OTY3Y2JiZWY4YzQ2ZTUzNjJlNWMxMWFlLi5kNThj
NTdiN2JmMTdhMDdiYWI4ODY4MWJiMjRhZjQ4ZWM4ZGU5NGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcApAQCAtMjczNSw2ICsyNzM1LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChwcm9wSWQgPT0gQ1NTUHJvcGVy
dHlXZWJraXRTaGFwZUluc2lkZSAmJiBpZCA9PSBDU1NWYWx1ZU91dHNpZGVTaGFwZSkKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVu
aXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNl
QmFzaWNTaGFwZShwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA0YjljYzZlYTZmYmJmZThmNzQ1NTVkYWQ0
NzU5ODJjNWIzOTE5Y2FjLi4xMGJhNmVhZTdiNTU4Y2YyYjNjMjQyMmM0YWJiMmEzZTU3MmIzMjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtOTE0LDkgKzkxNCwx
MSBAQCBvZmYKIG9wdGltaXplUXVhbGl0eQogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdAogCi0v
LyAtd2Via2l0LXdyYXAtc2hhcGUKKy8vIC13ZWJraXQtc2hhcGUtaW5zaWRlCisvLyAtd2Via2l0
LXNoYXBlLW91dHNpZGUKIG5vbnplcm8KIGV2ZW5vZGQKK291dHNpZGUtc2hhcGUKIAogLy8gLXdl
YmtpdC1yZWdpb24tb3ZlcmZsb3cKIC8vIGF1dG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5j
cHAKaW5kZXggZWQ4ODY0MGE0OGFlMzc0OWJhNjYxYTU4NzMyNmUwZTBiM2NlNGQ5ZC4uOTY4Yjk2
Zjg0NzZjNTk0MzE1NmQ3OTMzNzc1ZDczZDIwNzVhZjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlci5jcHAKQEAgLTQ3LDYgKzQ3LDEwIEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCisjaWYgRU5BQkxFKENTU19FWENM
VVNJT05TKQorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFsdWUuaCIKKyNlbmRpZgorCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzE2LDI1ICsxNzIw
LDI4IEBAIHB1YmxpYzoKIH07CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi10ZW1wbGF0
ZSA8QmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVuY3Rpb24pKCkgY29uc3QsIHZv
aWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4p
LCBCYXNpY1NoYXBlKiAoKmluaXRpYWxGdW5jdGlvbikoKT4KK3RlbXBsYXRlIDxFeGNsdXNpb25T
aGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAo
UmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZh
bHVlPiksIEV4Y2x1c2lvblNoYXBlVmFsdWUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgogY2xhc3Mg
QXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNoYXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBz
ZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gdmFsdWUp
IHsgKHN0eWxlLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIHNl
dFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVl
PiB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CiAgICAgc3RhdGlj
IHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29s
dmVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgewogICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAgICAgICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAg
ICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIDApOworICAgICAgICAg
ICAgLy8gRklYTUUgQnVnIDEwMjU3MTogTGF5b3V0IGZvciB0aGUgdmFsdWUgJ291dHNpZGUtc2hh
cGUnIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3V0c2lkZVNoYXBlKQorICAgICAgICAgICAg
ICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIEV4Y2x1c2lvblNoYXBlVmFsdWU6
OmNyZWF0ZU91dHNpZGVWYWx1ZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5pc1NoYXBlKCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gc2hh
cGUgPSBiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUtPmdl
dFNoYXBlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFs
dWU+IHNoYXBlID0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlU2hhcGVWYWx1ZShiYXNpY1No
YXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHNo
YXBlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgc3Rh
dGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKICAgICB7Ci0gICAgICAgIFByb3Bl
cnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEJhc2ljU2hhcGUq
LCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiwgc2V0dGVyRnVuY3Rpb24s
IEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7CisgICAgICAg
IFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEV4Y2x1
c2lvblNoYXBlVmFsdWUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFw
ZVZhbHVlPiwgc2V0dGVyRnVuY3Rpb24sIEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBpbml0aWFsRnVu
Y3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIo
aGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFw
cGx5VmFsdWUpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggYjc2M2I1NjY1OWJiM2IxY2Yy
MjYwNTY2ZjJkNGU5NGNhYzZiMzNlZC4uMjUwNGRhNDA0MWQwMTVkZTU3YmNiZDhhYmZjOTNmNDAy
OTA0Mjc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTQzLDEyICsxNDMsMTkgQEAgc3RhdGljIGlubGlu
ZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSosIENsaXAKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLXN0YXRpYyBpbmxp
bmUgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSos
IEJhc2ljU2hhcGUqIGZyb20sIEJhc2ljU2hhcGUqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqLCBFeGNsdXNpb25TaGFwZVZhbHVlKiBmcm9tLCBFeGNsdXNpb25TaGFw
ZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewotICAgIGlmICghZnJvbS0+Y2FuQmxlbmQo
dG8pKQorICAgIC8vIEZJWE1FIEJ1ZyAxMDI3MjM6IFNoYXBlLWluc2lkZSBzaG91bGQgYmUgYWJs
ZSB0byBhbmltYXRlIGEgdmFsdWUgb2YgJ291dHNpZGUtc2hhcGUnIHdoZW4gc2hhcGUtb3V0c2lk
ZSBpcyBzZXQgdG8gYSBCYXNpY1NoYXBlCisgICAgaWYgKGZyb20tPnR5cGUoKSAhPSBFeGNsdXNp
b25TaGFwZVZhbHVlOjpTSEFQRSB8fCB0by0+dHlwZSgpICE9IEV4Y2x1c2lvblNoYXBlVmFsdWU6
OlNIQVBFKQogICAgICAgICByZXR1cm4gdG87CiAKLSAgICByZXR1cm4gdG8tPmJsZW5kKGZyb20s
IHByb2dyZXNzKTsKKyAgICBjb25zdCBCYXNpY1NoYXBlKiBmcm9tU2hhcGUgPSBmcm9tLT5zaGFw
ZSgpOworICAgIGNvbnN0IEJhc2ljU2hhcGUqIHRvU2hhcGUgPSB0by0+c2hhcGUoKTsKKworICAg
IGlmICghZnJvbVNoYXBlLT5jYW5CbGVuZCh0b1NoYXBlKSkKKyAgICAgICAgcmV0dXJuIHRvOwor
CisgICAgcmV0dXJuIEV4Y2x1c2lvblNoYXBlVmFsdWU6OmNyZWF0ZVNoYXBlVmFsdWUodG9TaGFw
ZS0+YmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogI2VuZGlmCiAKQEAgLTQwNCwxMCAr
NDExLDEwIEBAIHB1YmxpYzoKIH07CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi1jbGFz
cyBQcm9wZXJ0eVdyYXBwZXJCYXNpY1NoYXBlIDogcHVibGljIFJlZkNvdW50ZWRQcm9wZXJ0eVdy
YXBwZXI8QmFzaWNTaGFwZT4geworY2xhc3MgUHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUg
OiBwdWJsaWMgUmVmQ291bnRlZFByb3BlcnR5V3JhcHBlcjxFeGNsdXNpb25TaGFwZVZhbHVlPiB7
CiBwdWJsaWM6Ci0gICAgUHJvcGVydHlXcmFwcGVyQmFzaWNTaGFwZShDU1NQcm9wZXJ0eUlEIHBy
b3AsIEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6KmdldHRlcikoKSBjb25zdCwgdm9pZCAoUmVu
ZGVyU3R5bGU6OipzZXR0ZXIpKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4pKQotICAgICAgICA6IFJl
ZkNvdW50ZWRQcm9wZXJ0eVdyYXBwZXI8QmFzaWNTaGFwZT4ocHJvcCwgZ2V0dGVyLCBzZXR0ZXIp
CisgICAgUHJvcGVydHlXcmFwcGVyRXhjbHVzaW9uU2hhcGUoQ1NTUHJvcGVydHlJRCBwcm9wLCBF
eGNsdXNpb25TaGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXIpKCkgY29uc3QsIHZvaWQg
KFJlbmRlclN0eWxlOjoqc2V0dGVyKShQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+KSkK
KyAgICAgICAgOiBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPEV4Y2x1c2lvblNoYXBlVmFsdWU+
KHByb3AsIGdldHRlciwgc2V0dGVyKQogICAgIHsKICAgICB9CiB9OwpAQCAtMTE2Miw3ICsxMTY5
LDcgQEAgdm9pZCBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6ZW5zdXJlUHJvcGVydHlNYXAoKQogICAg
IGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlckNsaXBQYXRoKENT
U1Byb3BlcnR5V2Via2l0Q2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6Y2xpcFBhdGgsICZSZW5kZXJT
dHlsZTo6c2V0Q2xpcFBhdGgpKTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBn
UHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJCYXNpY1NoYXBlKENT
U1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUsICZSZW5kZXJTdHlsZTo6c2hhcGVJbnNpZGUsICZS
ZW5kZXJTdHlsZTo6c2V0U2hhcGVJbnNpZGUpKTsKKyAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBw
ZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJFeGNsdXNpb25TaGFwZShDU1NQcm9wZXJ0eVdlYmtpdFNo
YXBlSW5zaWRlLCAmUmVuZGVyU3R5bGU6OnNoYXBlSW5zaWRlLCAmUmVuZGVyU3R5bGU6OnNldFNo
YXBlSW5zaWRlKSk7CiAjZW5kaWYKIAogICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3
IFByb3BlcnR5V3JhcHBlclZpc2l0ZWRBZmZlY3RlZENvbG9yKENTU1Byb3BlcnR5V2Via2l0Q29s
dW1uUnVsZUNvbG9yLCBNYXliZUludmFsaWRDb2xvciwgJlJlbmRlclN0eWxlOjpjb2x1bW5SdWxl
Q29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnZp
c2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFZpc2l0ZWRMaW5rQ29s
dW1uUnVsZUNvbG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uY3BwCmluZGV4IGI3ODMwZjEwZWY2YmU0YzM5MjMwNzgzNTNj
NGQwOTg3ZDc3MWEwZGYuLjkzNGUzZjI5OWY0MDNhNDEwZDZmNTg2OWI0NjY3NGZhZWYzMzIyYTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uY3BwCkBAIC03Miw3ICs3Miw4IEBAIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyog
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSCiBi
b29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9F
bmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogewogICAgIC8v
IEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxh
ciBzaGFwZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT5zaGFwZUlu
c2lkZSgpOworICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBibG9jay0+c3R5
bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVl
ICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBz
aGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKICAgICByZXR1cm4gc2hhcGUgJiYgKHNoYXBlLT50eXBl
KCkgPT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFIHx8IHNoYXBlLT50eXBlKCkg
PT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUE9MWUdPTik7CiB9CiAKQEAgLTkzLDcgKzk0LDkg
QEAgdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFUKICAgICBtX2xvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0OwogCiAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogVGhlIHdyYXAgc2hhcGUgbWF5IGNv
bWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gbV9ibG9j
ay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFw
ZVZhbHVlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsKKyAgICBCYXNpY1NoYXBl
KiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25T
aGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKKwogICAgIEFTU0VS
VChzaGFwZSk7CiAKICAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lv
blNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIG1fYmxvY2stPnN0eWxl
KCktPndyaXRpbmdNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKaW5kZXggNGE1ZTg5MzNkMGEwYWZmOTRhYzczNjQ5NzRiZGM0MDk2NTAzMjQzNC4uODRmN2Iz
YzYxYmM5MmI1N2U2NjVhM2FmNDdjNDJlZmI3M2RmNDU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xMzk4LDcgKzEzOTgsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjpsYXlvdXQoKQogfQogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotdm9pZCBSZW5k
ZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShj
b25zdCBCYXNpY1NoYXBlKiBzaGFwZUluc2lkZSwgY29uc3QgQmFzaWNTaGFwZSogb2xkU2hhcGVJ
bnNpZGUpCit2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9B
ZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlSW5zaWRlLCBj
b25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBvbGRTaGFwZUluc2lkZSkKIHsKICAgICAvLyBGSVhN
RTogQSBmdXR1cmUgb3B0aW1pemF0aW9uIHdvdWxkIGRvIGEgZGVlcCBjb21wYXJpc29uIGZvciBl
cXVhbGl0eS4KICAgICBpZiAoc2hhcGVJbnNpZGUgPT0gb2xkU2hhcGVJbnNpZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDU1YTAwMWY2MWM0Y2IzYTEyMmVhZTlk
YTc4Y2ZmYTIwYzk2NzQyMjcuLmE1NTY2ZWQ3NzY2YjQ0NjFhNjRjMDdhNTE2MmFjZGNiMjQwYzg0
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zNiw2ICszNiw3
IEBACiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyMSw3ICs1MjIsNyBAQCBwcm90ZWN0ZWQ6CiBw
cml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIGNvbXB1dGVFeGNs
dXNpb25TaGFwZVNpemUoKTsKLSAgICB2b2lkIHVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwZSosIGNvbnN0IEJhc2ljU2hhcGUqIG9s
ZFdyYXBTaGFwZSk7CisgICAgdm9pZCB1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRl
clN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUqLCBjb25zdCBFeGNsdXNpb25T
aGFwZVZhbHVlKiBvbGRFeGNsdXNpb25TaGFwZSk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsg
fQogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRy
ZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTUz
M2FmOGZlNjNiNTlmYmExODAyZTRmOTBiZDFhMTVhZDVmOTZhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaApAQCAt
MCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5j
b3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBC
RQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXhjbHVz
aW9uU2hhcGVWYWx1ZV9oCisjZGVmaW5lIEV4Y2x1c2lvblNoYXBlVmFsdWVfaAorCisjaW5jbHVk
ZSAiQmFzaWNTaGFwZXMuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEV4Y2x1c2lvblNoYXBlVmFsdWUgOiBwdWJsaWMgUmVmQ291
bnRlZDxFeGNsdXNpb25TaGFwZVZhbHVlPiB7CitwdWJsaWM6CisgICAgZW51bSBFeGNsdXNpb25T
aGFwZVZhbHVlVHlwZSB7CisgICAgICAgIC8vIFRoZSBBVVRPIHZhbHVlIGlzIGRlZmluZWQgYnkg
YSBudWxsIEV4Y2x1c2lvblNoYXBlVmFsdWUqCisgICAgICAgIFNIQVBFLAorICAgICAgICBPVVRT
SURFCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+
IGNyZWF0ZVNoYXBlVmFsdWUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXhjbHVzaW9uU2hhcGVWYWx1ZShzaGFwZSkpOwor
ICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IGNyZWF0
ZU91dHNpZGVWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV4Y2x1
c2lvblNoYXBlVmFsdWUoT1VUU0lERSkpOworICAgIH0KKworICAgIEV4Y2x1c2lvblNoYXBlVmFs
dWVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBCYXNpY1NoYXBlKiBz
aGFwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUuZ2V0KCk7IH0KKyAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHR5cGUo
KSA9PSBvdGhlci50eXBlKCk7IH0KKworcHJpdmF0ZToKKyAgICBFeGNsdXNpb25TaGFwZVZhbHVl
KFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpIDogbV90eXBlKFNIQVBFKSwgbV9zaGFwZShz
aGFwZSkgeyB9CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShFeGNsdXNpb25TaGFwZVZhbHVlVHlw
ZSB0eXBlKSA6IG1fdHlwZSh0eXBlKSB7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSBt
X3R5cGU7CisgICAgUmVmUHRyPEJhc2ljU2hhcGU+IG1fc2hhcGU7Cit9OworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA0
MGMzMmRkY2NhODNlNjlkM2UyNThiNWYwMzU3MDhmMjQzMDczY2VkLi4zMTk5NmZhMDVhYmI1Y2Qw
NTg5NDExYTU2ZmFjZjNjNzA3M2M1ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNvbG9yU3Bh
Y2UuaCIKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0aXZlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWYu
aCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udEJhc2Vs
aW5lLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NU
eXBlcy5oIgpAQCAtMTQ1NSwyMiArMTQ1NiwyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRLZXJu
aW5nKFNWR0xlbmd0aCBrKSB7IGFjY2Vzc1NWR1N0eWxlKCktPnNldEtlcm5pbmcoayk7IH0KICNl
bmRpZgogCi0gICAgdm9pZCBzZXRTaGFwZUluc2lkZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNo
YXBlKQorICAgIHZvaWQgc2V0U2hhcGVJbnNpZGUoUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZh
bHVlPiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9z
aGFwZUluc2lkZSAhPSBzaGFwZSkKLSAgICAgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX3NoYXBlSW5zaWRlID0gc2hhcGU7CisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9zaGFwZUluc2lkZSA9PSB2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fc2hhcGVJbnNpZGUgPSB2YWx1
ZTsKICAgICB9Ci0gICAgQmFzaWNTaGFwZSogc2hhcGVJbnNpZGUoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZUluc2lkZS5nZXQoKTsgfQorICAgIEV4Y2x1c2lv
blNoYXBlVmFsdWUqIHNoYXBlSW5zaWRlKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fc2hhcGVJbnNpZGUuZ2V0KCk7IH0KIAotICAgIHZvaWQgc2V0U2hhcGVPdXRzaWRl
KFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpCisgICAgdm9pZCBzZXRTaGFwZU91dHNpZGUo
UGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUgIT0gc2hhcGUpCi0gICAgICAg
ICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9zaGFwZU91dHNpZGUgPSBzaGFw
ZTsKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlT3V0c2lkZSA9PSB2
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fc2hhcGVPdXRzaWRlID0gdmFsdWU7CiAgICAgfQotICAgIEJhc2ljU2hhcGUq
IHNoYXBlT3V0c2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3No
YXBlT3V0c2lkZS5nZXQoKTsgfQorICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlT3V0c2lk
ZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlT3V0c2lkZS5n
ZXQoKTsgfQogCi0gICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRpYWxTaGFwZUluc2lkZSgpIHsg
cmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgQmFzaWNTaGFwZSogaW5pdGlhbFNoYXBlT3V0c2lkZSgp
IHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVWYWx1ZSogaW5pdGlhbFNo
YXBlSW5zaWRlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBFeGNsdXNpb25TaGFwZVZhbHVl
KiBpbml0aWFsU2hhcGVPdXRzaWRlKCkgeyByZXR1cm4gMDsgfQogCiAgICAgdm9pZCBzZXRDbGlw
UGF0aChQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBvcGVyYXRpb24pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKaW5kZXggNDE4NmJiMTlmNmE5MzYzMjdlMzAxMTg0YjE0MTQ0MjNkOWRj
ZTc5Yi4uYzRhYzBmNmYzOGY4OTIxMWVjMDg0Mzk4ZDE5ZjUyODc1NWYwZGQ4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ291bnRlckRpcmVjdGl2
ZXMuaCIKICNpbmNsdWRlICJDdXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgorI2lu
Y2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJGaWxsTGF5ZXIuaCIKICNp
bmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIk5pbmVQaWVjZUltYWdlLmgiCkBA
IC0xMzcsOCArMTM4LDggQEAgcHVibGljOgogCiAgICAgTGVuZ3RoU2l6ZSBtX3BhZ2VTaXplOwog
Ci0gICAgUmVmUHRyPEJhc2ljU2hhcGU+IG1fc2hhcGVJbnNpZGU7Ci0gICAgUmVmUHRyPEJhc2lj
U2hhcGU+IG1fc2hhcGVPdXRzaWRlOworICAgIFJlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBt
X3NoYXBlSW5zaWRlOworICAgIFJlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBtX3NoYXBlT3V0
c2lkZTsKICAgICBMZW5ndGggbV9zaGFwZU1hcmdpbjsKICAgICBMZW5ndGggbV9zaGFwZVBhZGRp
bmc7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA1MDY2YzIyODNkYjZlZmNhMTQwYzY3MmMwNzgyNmRkYmE1NzEwZWMyLi43
M2U3MWUxZjkyNjUzMGY2NzM0ZmQxM2NmOTBhMDBmN2M2ZDY2MGZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTItMTEtMjAgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisg
ICAgICAgIFtDU1MgRXhjbHVzaW9uc10gU3VwcG9ydCBvdXRzaWRlLXNoYXBlIHZhbHVlIG9uIHNo
YXBlLWluc2lkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxMTA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkaW5nIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGUgJ291dHNpZGUtc2hhcGUnIHZhbHVlIHBy
b3Blcmx5IGFwcGxpZXMgb25seSB0byB0aGUKKyAgICAgICAgc2hhcGUtaW5zaWRlIHByb3BlcnR5
LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hh
cGUtb3V0c2lkZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3Njcmlw
dC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzOgorICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanM6CisKIDIw
MTItMTEtMjAgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgWFNT
QXVkaXRvcjo6ZGVjb2RlZFNuaXBwZXRGb3JKYXZhU2NyaXB0IHN0b3BwaW5nIHdoZW4gY29tbWEg
ZW5jb3VudGVyZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKaW5kZXggN2M0
MmVjNTNlM2Y5MjlmZTkxZWRkZGFmZmUzYzJkMWMxMTA3NzU2OS4uYmM4ZTY3NDZkNzU4Y2RjOGM0
NTRjODRhY2E4Mjg4MWZmNzJiMmE5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVk
LnR4dApAQCAtNSw2ICs1LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyB0ZXN0
Q1NTVGV4dCgiYXV0byIpIGlzICJhdXRvIgogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgiYXV0byIp
IGlzICJhdXRvIgorUEFTUyB0ZXN0Q1NTVGV4dCgib3V0c2lkZS1zaGFwZSIpIGlzICJvdXRzaWRl
LXNoYXBlIgorUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgib3V0c2lkZS1zaGFwZSIpIGlzICJvdXRz
aWRlLXNoYXBlIgogUEFTUyB0ZXN0Q1NTVGV4dCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgs
IDQwcHgpIikgaXMgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVz
dENvbXB1dGVkU3R5bGUoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlzICJy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCiBQQVNTIHRlc3RDU1NUZXh0KCJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCwgNXB4KSIKQEAgLTIyLDYgKzI0LDcgQEAgUEFTUyB0ZXN0Q29tcHV0
ZWRTdHlsZSgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4
KSIpIGlzICIKIFBBU1MgdGVzdENTU1RleHQoInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAz
MHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMw
cHggNDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBvbHlnb24obm9u
emVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihub256
ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdE5vdEluaGVy
aXRlZCgiYXV0byIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFy
ZW50OiBhdXRvLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgorUEFT
UyB0ZXN0Tm90SW5oZXJpdGVkKCJvdXRzaWRlLXNoYXBlIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4
LCAzMHB4LCA0MHB4KSIpIGlzICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5n
bGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICJpbml0aWFsIikgaXMgInBhcmVudDogcmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogYXV0byIKIFBBU1MgdGVzdE5v
dEluaGVyaXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgIiIpIGlzICJw
YXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iCiBQ
QVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIs
ICJpbmhlcml0IikgaXMgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
LCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hh
cGUtb3V0c2lkZS1leHBlY3RlZC50eHQKaW5kZXggMzAxYTVkOTY5MGI0ZTMxYmYwMGU2ODkyYWNm
NWRlNWVhYTM5N2JiYy4uNmM1YjU1ZWQzODNlZjJiNzVjYzc3YzRlZmQxODFmNTk1YTA4ODJkOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFw
ZS1vdXRzaWRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSw4IEBA
IFBBU1MgdGVzdENTU1RleHQoImNhbGMoKSIpIGlzICIiCiBQQVNTIHRlc3RDb21wdXRlZFN0eWxl
KCJjYWxjKCkiKSBpcyAiYXV0byIKIFBBU1MgdGVzdENTU1RleHQoIm5vbmUiKSBpcyAiIgogUEFT
UyB0ZXN0Q29tcHV0ZWRTdHlsZSgibm9uZSIpIGlzICJhdXRvIgorUEFTUyB0ZXN0Q1NTVGV4dCgi
b3V0c2lkZS1zaGFwZSIpIGlzICIiCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlKCJvdXRzaWRlLXNo
YXBlIikgaXMgImF1dG8iCiBQQVNTIHRlc3RDU1NUZXh0KCJyZWN0YW5nbGUoKSIpIGlzICIiCiBQ
QVNTIHRlc3RDb21wdXRlZFN0eWxlKCJyZWN0YW5nbGUoKSIpIGlzICJhdXRvIgogUEFTUyB0ZXN0
Q1NTVGV4dCgicmVjdGFuZ2xlKDEwcHgpIikgaXMgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFw
LXNoYXBlLWluc2lkZS5qcwppbmRleCA5YzVkMzAxZmQ4MTJlYjFhZDA2NjBkOWNkNDFkZjU2NzJj
YThjOTY0Li40MzkyOGZlYmRhMWMyY2MwNTYzMDdiNzJjYjgwZWVmYTQ4YWYxN2FhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3Jh
cC1zaGFwZS1pbnNpZGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Njcmlw
dC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCkBAIC01OCw2ICs1OCw3IEBAIGZ1
bmN0aW9uIG5lZ2F0aXZlX3Rlc3QodmFsdWUpIHsKIC8vIHBvc2l0aXZlIHRlc3RzCiAKIHRlc3Qo
ImF1dG8iLCAiYXV0byIpOwordGVzdCgib3V0c2lkZS1zaGFwZSIsICJvdXRzaWRlLXNoYXBlIik7
CiB0ZXN0KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgpIik7CiB0ZXN0KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCwgNXB4KSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIp
OwogdGVzdCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiLCAi
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKTsKQEAgLTcxLDYg
KzcyLDcgQEAgdGVzdCgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBw
eCA1MHB4KSIsICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHgKIHRlc3QoInBvbHlnb24obm9uemVybywg
MTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4
IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3Rlc3ROb3RJbmhlcml0ZWQoImF1dG8iLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgpIiknLCAicGFyZW50OiBhdXRvLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgs
IDQwcHgpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoIm91dHNp
ZGUtc2hhcGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiknLCAicGFyZW50
OiBvdXRzaWRlLXNoYXBlLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgx
MHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICJpbml0aWFsIiknLCAicGFyZW50OiByZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIik7CiBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4
KSIsICIiKScsICJwYXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hp
bGQ6IGF1dG8iKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaGVyaXQiKScsICJwYXJlbnQ6IHJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IHJlY3RhbmdsZSgxMHB4LCAy
MHB4LCAzMHB4LCA0MHB4KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNp
ZGUuanMKaW5kZXggNWIxZDY3ZTNlMjkxMDk0MmI4Yjk4MGMwOWRkY2I4Njg2ZWZiYjg1MC4uMTYy
Y2Q2ZDJiYmEyZDhhODE3NzdlY2QyZWFhMmZkNDZmMTMyNzQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0
c2lkZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3Bh
cnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzCkBAIC04MSw2ICs4MSw3IEBAIHNob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJpbmhlcml0IiknLCAicGFyZW50
OiBhdXRvLCBjaGlsCiAKIG5lZ2F0aXZlX3Rlc3QoImNhbGMoKSIpOwogbmVnYXRpdmVfdGVzdCgi
bm9uZSIpOworbmVnYXRpdmVfdGVzdCgib3V0c2lkZS1zaGFwZSIpOwogCiBuZWdhdGl2ZV90ZXN0
KCJyZWN0YW5nbGUoKSIpOwogbmVnYXRpdmVfdGVzdCgicmVjdGFuZ2xlKDEwcHgpIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>