<?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>140763</bug_id>
          
          <creation_ts>2015-01-22 03:41:15 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Invalid initialization of track sizes with non spanning grid items</short_desc>
          <delta_ts>2015-02-16 04:00:34 -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>
          <dependson>140540</dependson>
    
    <dependson>141525</dependson>
    
    <dependson>141562</dependson>
          <blocked>60731</blocked>
    
    <blocked>140883</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ossy</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063339</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-22 03:41:15 -0800</bug_when>
    <thetext>The track sizing algorithm describes in section &quot;11.5. Resolve Intrinsic Track Sizes&quot; how to size content sized functions. The first step consists of sizing the tracks to fit non-spanning grid items, i.e, items with span == 1 on the given direction (rows or columns).

We instead, were not treating those non-spanning grid items differently. Consequently track sizes were not properly computed in some scenarios (mainly because infinite growth limits were not resolved to absolute lengths before using the spanning items to size the tracks).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064155</commentid>
    <comment_count>1</comment_count>
      <attachid>245349</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-26 06:54:29 -0800</bug_when>
    <thetext>Created attachment 245349
Patch

Not expected to build as it depends on 140540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067819</commentid>
    <comment_count>2</comment_count>
      <attachid>246271</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-09 07:01:01 -0800</bug_when>
    <thetext>Created attachment 246271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067833</commentid>
    <comment_count>3</comment_count>
      <attachid>246271</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-09 09:22:21 -0800</bug_when>
    <thetext>Comment on attachment 246271
Patch

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

&gt; Source/WebCore/rendering/RenderGrid.cpp:587
&gt; +#if ENABLE(ASSERT)

ENABLE(ASSERT) -&gt; !ASSERT_DISABLED

There isn&apos;t ENABLE_ASSERT defined, but ASSERT_DISABLED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068019</commentid>
    <comment_count>4</comment_count>
      <attachid>246318</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-10 03:26:48 -0800</bug_when>
    <thetext>Created attachment 246318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068587</commentid>
    <comment_count>5</comment_count>
      <attachid>246318</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-12 06:16:59 -0800</bug_when>
    <thetext>Comment on attachment 246318
Patch

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

&gt; Source/WebCore/rendering/style/GridTrackSize.h:51
&gt;      GridTrackSize(LengthType type = Undefined)
&gt; -        : m_type(LengthTrackSizing)
&gt; -        , m_minTrackBreadth(type)
&gt; -        , m_maxTrackBreadth(type)
&gt;      {
&gt; +        setLength(GridLength(Length(type)));
&gt;      }

This constructor leaves the cache uninitialised.

&gt; Source/WebCore/rendering/style/GridTrackSize.h:123
&gt; +    void cacheMinMaxTrackBreadthTypes()
&gt; +    {
&gt; +        m_minTrackBreadthIsMinContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMinContent();
&gt; +        m_minTrackBreadthIsMaxContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMaxContent();
&gt; +        m_maxTrackBreadthIsMaxContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMaxContent();
&gt; +        m_maxTrackBreadthIsMinContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMinContent();
&gt; +    }

Is this cache really valuable? Those looks like cheap checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068588</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-12 06:20:29 -0800</bug_when>
    <thetext>&gt; This constructor leaves the cache uninitialised.

Actually it doesn&apos;t, it is done in setLength. nm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068593</commentid>
    <comment_count>7</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-12 06:37:57 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 246318 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=246318&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/GridTrackSize.h:51
&gt; &gt;      GridTrackSize(LengthType type = Undefined)
&gt; &gt; -        : m_type(LengthTrackSizing)
&gt; &gt; -        , m_minTrackBreadth(type)
&gt; &gt; -        , m_maxTrackBreadth(type)
&gt; &gt;      {
&gt; &gt; +        setLength(GridLength(Length(type)));
&gt; &gt;      }
&gt; 
&gt; This constructor leaves the cache uninitialised.
&gt; 
&gt; &gt; Source/WebCore/rendering/style/GridTrackSize.h:123
&gt; &gt; +    void cacheMinMaxTrackBreadthTypes()
&gt; &gt; +    {
&gt; &gt; +        m_minTrackBreadthIsMinContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMinContent();
&gt; &gt; +        m_minTrackBreadthIsMaxContent = minTrackBreadth().isLength() &amp;&amp; minTrackBreadth().length().isMaxContent();
&gt; &gt; +        m_maxTrackBreadthIsMaxContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMaxContent();
&gt; &gt; +        m_maxTrackBreadthIsMinContent = maxTrackBreadth().isLength() &amp;&amp; maxTrackBreadth().length().isMinContent();
&gt; &gt; +    }
&gt; 
&gt; Is this cache really valuable? Those looks like cheap checks.

As I mentioned it looks like it is. I was also a bit surprised due to the nature of the checks, but as I mention in the ChangeLog their impact in the total amount of time goes down from 1% to 0.3%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068618</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-12 08:14:29 -0800</bug_when>
    <thetext>Committed r179987: &lt;http://trac.webkit.org/changeset/179987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068657</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-12 10:19:47 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r179987: &lt;http://trac.webkit.org/changeset/179987&gt;

It made many tests crash/assert on the debug bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068692</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-12 11:56:31 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 141525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068885</commentid>
    <comment_count>11</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-13 04:09:31 -0800</bug_when>
    <thetext>I noticed that I missed to include in the patch lo land this condition:

!minTrackBreadth().length().isUndefined() (for min track breadths)

!maxTrackBreadth().length().isUndefined() (for max track breadths)

in chacheMinMaxTrackBreadthTypes(). I&apos;ll reland with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068908</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-13 07:17:37 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I noticed that I missed to include in the patch lo land this condition:
&gt; 
&gt; !minTrackBreadth().length().isUndefined() (for min track breadths)
&gt; 
&gt; !maxTrackBreadth().length().isUndefined() (for max track breadths)
&gt; 
&gt; in chacheMinMaxTrackBreadthTypes(). I&apos;ll reland with it.

Actually I think it&apos;d be better to completely remove the undefined case, and call always the constructor with the valid length. I&apos;ll do it in a different patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069402</commentid>
    <comment_count>13</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-16 04:00:34 -0800</bug_when>
    <thetext>Committed r180142: &lt;http://trac.webkit.org/changeset/180142&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245349</attachid>
            <date>2015-01-26 06:54:29 -0800</date>
            <delta_ts>2015-02-09 07:00:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140763-20150126155430.patch</filename>
            <type>text/plain</type>
            <size>24350</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAzNzhlZWE2NTRhNjJm
M2RjMzBhMDYyNWExMmY3ZmJlOTdiNGQ5My4uODhkYTFlMWQ1YmVmYWM5ZTUzY2U5Y2RjYWYwMGY2
YjcyMmI0ZjAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTAxLTIzICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludmFsaWQgaW5pdGlhbGl6YXRpb24gb2YgdHJhY2sgc2l6ZXMgd2l0aCBub24g
c3Bhbm5pbmcgZ3JpZCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQwNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29udGVudCBzaXplZCB0cmFja3Mgd2l0aCBub24tc3Bhbm5pbmcgZ3JpZCBp
dGVtcyB3ZXJlIG5vdAorICAgICAgICBwcm9wZXJseSBzaXplZCBiZWNhdXNlIHRoZSBncm93dGgg
bGltaXQgd2FzIHNvbWV0aW1lcyBpbmZpbml0eQorICAgICAgICAoLTEpIGFmdGVyIGNhbGxpbmcg
cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKCkgd2hlbgorICAgICAgICBp
dCBzaG91bGQgbm90LiBUaGlzIHBhdGNoIGFkZHMgYW4gc3BlY2lhbCBpbml0aWFsaXphdGlvbiBw
aGFzZSBmb3IKKyAgICAgICAgbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMgYXMgdGhlIG5ldyB0cmFj
ayBzaXppbmcgYWxnb3JpdGhtCisgICAgICAgIGRlc2NyaWJlcy4KKworICAgICAgICBHcmFudGVk
LCB0aGF0IHdhcyBoYW5kbGVkIGluIHRoZSBvbGQgYWxnb3JpdGhtIGluCisgICAgICAgIGRpc3Ry
aWJ1dGVTcGFjZVRvVHJhY2tzKCkgYXMgYSBzcGVjaWFsIGNhc2UuIFRoZSBwcm9ibGVtIGlzIHRo
YXQKKyAgICAgICAgaXQgcmVncmVzc2VkIGFmdGVyIHRoZSBvcHRpbWl6YXRpb24gYWRkZWQgaW4g
cjE3Mzg2OCBiZWNhdXNlIHRoYXQKKyAgICAgICAgbWV0aG9kIGlzIG5vIGxvbmdlciBjYWxsZWQg
d2hlbiB0aGUgc3BhY2UgdG8gZGlzdHJpYnV0ZSBpcyAwLgorCisgICAgICAgIFRoYXQncyB3aHkg
d2UgY291bGQgZml4IHRoaXMgYnkgYWxsb3dpbmcgY2FsbHMgdG8KKyAgICAgICAgZGlzdHJpYnV0
ZVNwYWNlVG9UcmFja3MoKSB3aXRoIHNwYWNlVG9EaXN0cmlidXRlPj0wIGJ1dCBieSBmaXhpbmcK
KyAgICAgICAgaXQgd2l0aCBhbiBleHBsaWNpdCBpbml0aWFsaXphdGlvbiBvdXIgaW1wbGVtZW50
YXRpb24gYmVjb21lcworICAgICAgICBjbG9zZXIgdG8gdGhlIG5ldyBhbGdvcml0aG0gYW5kIHRo
ZSBpbml0aWFsaXphdGlvbiBpcyBub3cgZXhwbGljaXQKKyAgICAgICAgaW4gdGhlIGNvZGUgaW5z
dGVhZCBvZiBhIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcKKyAgICAgICAgZGlzdHJpYnV0ZVNwYWNl
VG9UcmFja3MoKSB3aXRoIG5vIHNwYWNlIHRvIGJlIGRpc3RyaWJ1dGVkLiBJdCBhbHNvCisgICAg
ICAgIGJyaW5ncyBhIHNsaWdodCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBhcyB3ZSBzYXZlIHNv
cnRzIGFuZCBoYXNoCisgICAgICAgIGxvb2t1cHMuCisKKyAgICAgICAgSSBhbHNvIHRvb2sgdGhl
IGNoYW5nZSB0byBhZGQgY2FjaGluZyB0byBzZXZlcmFsIEdyaWRUcmFja1NpemUKKyAgICAgICAg
bWV0aG9kcyB0aGF0IHdlcmUgaG90IG9uIHRoZSBwcm9maWxlciAoZWFjaCBvbmUgYWNjb3VudGVk
IGZvciB+MSUKKyAgICAgICAgb2YgdGhlIHRvdGFsIHRpbWUsIG5vdyB0aGV5IGFjY291bnQgZm9y
IH4wLjMlIGVhY2gpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkSXRlbVdpdGhTcGFuOjpzcGFuKTog
TmV3IGhlbHBlciBtZXRob2QgZm9yIEFTU0VSVHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMpOgorICAgICAgICBF
eGNsdWRlIG5vbiBzcGFubmluZyBncmlkIGl0ZW1zIGZyb20gdGhlIGNhbGxzIHRvCisgICAgICAg
IHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdG
dW5jdGlvbnNGb3JOb25TcGFubmluZ0l0ZW1zKToKKyAgICAgICAgTmV3IG1ldGhvZCB0byByZXNv
bHZlIHRyYWNrIHNpemVzIG9ubHkgdXNpbmcgbm9uLXNwYW5uaW5nIGdyaWQKKyAgICAgICAgaXRl
bXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJh
Y2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyk6CisgICAgICAgIEVuc3VyZSB0aGF0IGl0IGlzbid0
IGNhbGxlZCBmb3Igbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6R3JpZFRyYWNrU2l6ZSk6IENhY2hl
IHJldHVybiB2YWx1ZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpzZXRMZW5n
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6OnNldE1pbk1heCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6Y2FjaGVNaW5NYXhUcmFj
a0JyZWFkdGhUeXBlcyk6IE5ldyBtZXRob2QKKyAgICAgICAgdGhhdCBjYWNoZXMgdGhlIHJldHVy
biB2YWx1ZXMgZm9yIGhhc1hYWFRyYWNrQnJlYWR0aCgpIG1ldGhvZHMuCisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBV
c2UKKyAgICAgICAgdGhlIGNhY2hlZCByZXR1cm4gdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpH
cmlkVHJhY2tTaXplOjpoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Db250ZW50TWF4VHJhY2tCcmVhZHRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENv
bnRlbnRNYXhUcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFj
a1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgpOgorICAgICAgICBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKToKKyAgICAgICAgRGl0dG8uCisK
IDIwMTUtMDEtMjIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gVHJhY2tzJyBncm93dGggbGltaXRzIG11c3QgYmUg
Pj0gYmFzZSBzaXplcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4
IDMzNTNmMzJkZjliZGY2OTk0YzcyZjQxYzZmYTE4NTBhZDhkY2NmNTEuLjFlNTkxMmQyOTIwMmFi
OGQ5MWJhMzc0NTFmNDhjYTM0NDdiN2YxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKQEAgLTU4OCw2ICs1ODgsOSBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJCb3gm
IGdyaWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9ncmlkSXRlbTsgfQogICAgIEdyaWRDb29yZGlu
YXRlIGNvb3JkaW5hdGUoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGU7IH0KKyNpZiBFTkFC
TEUoQVNTRVJUKQorICAgIHNpemVfdCBzcGFuKCkgY29uc3QgeyByZXR1cm4gbV9zcGFuOyB9Cisj
ZW5kaWYKIAogICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEdyaWRJdGVtV2l0aFNwYW4gb3RoZXIp
IGNvbnN0CiAgICAgewpAQCAtNjIzLDEyICs2MjYsMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXNv
bHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW8KICAgICBIYXNoU2V0PFJlbmRlckJveCo+IGl0ZW1zU2V0OwogICAgIGZvciAoYXV0byB0cmFj
a0luZGV4IDogc2l6aW5nRGF0YS5jb250ZW50U2l6ZWRUcmFja3NJbmRleCkgewogICAgICAgICBH
cmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBkaXJlY3Rpb24sIHRyYWNrSW5kZXgpOworICAg
ICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemlu
Z0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXhdIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJh
Y2tJbmRleF07CiAKICAgICAgICAgd2hpbGUgKFJlbmRlckJveCogZ3JpZEl0ZW0gPSBpdGVyYXRv
ci5uZXh0R3JpZEl0ZW0oKSkgewogICAgICAgICAgICAgaWYgKGl0ZW1zU2V0LmFkZChncmlkSXRl
bSkuaXNOZXdFbnRyeSkgewogICAgICAgICAgICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBj
b29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoKmdyaWRJdGVtKTsKLSAgICAgICAgICAg
ICAgICAvLyBXZSBzaG91bGQgbm90IGluY2x1ZGUgaXRlbXMgc3Bhbm5pbmcgbW9yZSB0aGFuIG9u
ZSB0cmFjayB0aGF0IHNwYW4gdHJhY2tzIHdpdGggZmxleGlibGUgc2l6aW5nIGZ1bmN0aW9ucy4K
LSAgICAgICAgICAgICAgICBpZiAoaW50ZWdlclNwYW5Gb3JEaXJlY3Rpb24oY29vcmRpbmF0ZSwg
ZGlyZWN0aW9uKSA9PSAxIHx8ICFzcGFubmluZ0l0ZW1Dcm9zc2VzRmxleGlibGVTaXplZFRyYWNr
cyhjb29yZGluYXRlLCBkaXJlY3Rpb24pKQorICAgICAgICAgICAgICAgIGlmIChpbnRlZ2VyU3Bh
bkZvckRpcmVjdGlvbihjb29yZGluYXRlLCBkaXJlY3Rpb24pID09IDEpCisgICAgICAgICAgICAg
ICAgICAgIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvck5vblNwYW5u
aW5nSXRlbXMoZGlyZWN0aW9uLCBjb29yZGluYXRlLCAqZ3JpZEl0ZW0sIHRyYWNrLCBzaXppbmdE
YXRhLmNvbHVtblRyYWNrcyk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXNwYW5uaW5nSXRl
bUNyb3NzZXNGbGV4aWJsZVNpemVkVHJhY2tzKGNvb3JkaW5hdGUsIGRpcmVjdGlvbikpCiAgICAg
ICAgICAgICAgICAgICAgIHNpemluZ0RhdGEuaXRlbXNTb3J0ZWRCeUluY3JlYXNpbmdTcGFuLmFw
cGVuZChHcmlkSXRlbVdpdGhTcGFuKCpncmlkSXRlbSwgY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTY0OSw4ICs2NTQsMjUgQEAgdm9pZCBSZW5k
ZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW8KICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9yTm9uU3Bhbm5pbmdJdGVtcyhHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0
ZSwgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrJiB0cmFjaywgVmVjdG9yPEdyaWRUcmFj
az4mIGNvbHVtblRyYWNrcykKK3sKKyAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFj
a1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1u
cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRp
YWxQb3NpdGlvbjsKKyAgICBHcmlkVHJhY2tTaXplIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUo
ZGlyZWN0aW9uLCB0cmFja1Bvc2l0aW9uLnRvSW50KCkpOworCisgICAgaWYgKHRyYWNrU2l6ZS5o
YXNNaW5Db250ZW50TWluVHJhY2tCcmVhZHRoKCkpCisgICAgICAgIHRyYWNrLnNldEJhc2VTaXpl
KHN0ZDo6bWF4KHRyYWNrLmJhc2VTaXplKCksIG1pbkNvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwg
ZGlyZWN0aW9uLCBjb2x1bW5UcmFja3MpKSk7CisgICAgZWxzZSBpZiAodHJhY2tTaXplLmhhc01h
eENvbnRlbnRNaW5UcmFja0JyZWFkdGgoKSkKKyAgICAgICAgdHJhY2suc2V0QmFzZVNpemUoc3Rk
OjptYXgodHJhY2suYmFzZVNpemUoKSwgbWF4Q29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJl
Y3Rpb24sIGNvbHVtblRyYWNrcykpKTsKKworICAgIGlmICh0cmFja1NpemUuaGFzTWluQ29udGVu
dE1heFRyYWNrQnJlYWR0aCgpKQorICAgICAgICB0cmFjay5zZXRHcm93dGhMaW1pdChzdGQ6Om1h
eCh0cmFjay5ncm93dGhMaW1pdCgpLCBtaW5Db250ZW50Rm9yQ2hpbGQoZ3JpZEl0ZW0sIGRpcmVj
dGlvbiwgY29sdW1uVHJhY2tzKSkpOworICAgIGVsc2UgaWYgKHRyYWNrU2l6ZS5oYXNNYXhDb250
ZW50TWF4VHJhY2tCcmVhZHRoKCkpCisgICAgICAgIHRyYWNrLnNldEdyb3d0aExpbWl0KHN0ZDo6
bWF4KHRyYWNrLmdyb3d0aExpbWl0KCksIG1heENvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwgZGly
ZWN0aW9uLCBjb2x1bW5UcmFja3MpKSk7Cit9CisKIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNv
bnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uIGRpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmIHNpemluZ0RhdGEsIEdyaWRJdGVtV2l0
aFNwYW4mIGdyaWRJdGVtV2l0aFNwYW4sIEZpbHRlckZ1bmN0aW9uIGZpbHRlckZ1bmN0aW9uLCBT
aXppbmdGdW5jdGlvbiBzaXppbmdGdW5jdGlvbiwgQWNjdW11bGF0b3JHZXR0ZXIgdHJhY2tHZXR0
ZXIsIEFjY3VtdWxhdG9yR3Jvd0Z1bmN0aW9uIHRyYWNrR3Jvd3RoRnVuY3Rpb24sIEZpbHRlckZ1
bmN0aW9uIGdyb3dBYm92ZU1heEJyZWFkdGhGaWx0ZXJGdW5jdGlvbikKIHsKKyAgICBBU1NFUlQo
Z3JpZEl0ZW1XaXRoU3Bhbi5zcGFuKCkgPiAxKTsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYg
Y29vcmRpbmF0ZSA9IGdyaWRJdGVtV2l0aFNwYW4uY29vcmRpbmF0ZSgpOwogICAgIGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBG
b3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA6
IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKICAgICBjb25zdCBHcmlk
UmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNv
bHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbiA6IGNvb3Jk
aW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaAppbmRleCBkODg2YzcyYzg4YzdkNDNiYmU4NjMxMGVjNTU3M2FmNjIxYzBjNjg3
Li4xMWU0ZjEyNmUwZjBjNzg3YzEzMjAzMzk1OGQ2NTFlYWM5OTA2ZDEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICB0
eXBlZGVmIGNvbnN0IExheW91dFVuaXQmIChHcmlkVHJhY2s6OiogQWNjdW11bGF0b3JHZXR0ZXIp
KCkgY29uc3Q7CiAgICAgdHlwZWRlZiB2b2lkIChHcmlkVHJhY2s6OiogQWNjdW11bGF0b3JHcm93
RnVuY3Rpb24pKExheW91dFVuaXQpOwogICAgIHR5cGVkZWYgYm9vbCAoR3JpZFRyYWNrU2l6ZTo6
KiBGaWx0ZXJGdW5jdGlvbikoKSBjb25zdDsKKyAgICB2b2lkIHJlc29sdmVDb250ZW50QmFzZWRU
cmFja1NpemluZ0Z1bmN0aW9uc0Zvck5vblNwYW5uaW5nSXRlbXMoR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYsIFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRU
cmFjayYsIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpOwogICAgIHZvaWQgcmVzb2x2
ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYsIEdyaWRJdGVtV2l0aFNwYW4mLCBGaWx0ZXJGdW5j
dGlvbiwgU2l6aW5nRnVuY3Rpb24sIEFjY3VtdWxhdG9yR2V0dGVyLCBBY2N1bXVsYXRvckdyb3dG
dW5jdGlvbiwgRmlsdGVyRnVuY3Rpb24gZ3Jvd0Fib3ZlTWF4QnJlYWR0aEZpbHRlckZ1bmN0aW9u
ID0gbnVsbHB0cik7CiAgICAgdm9pZCBkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyhWZWN0b3I8R3Jp
ZFRyYWNrKj4mLCBWZWN0b3I8dW5zaWduZWQ+KiBncm93QWJvdmVNYXhCcmVhZHRoVHJhY2tJbmRl
eGVzLCBBY2N1bXVsYXRvckdldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24sIEdyaWRTaXpp
bmdEYXRhJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKaW5kZXggM2UzMzUyNDgw
YzU3MmNiYTIxYmFmZDJkNzhhZDM0NDNhYzU5YThmZC4uZGRmZjZjYzYyZjczYzk5ZDAyYzY5OGUz
ZGU2ZTY2MjRiZDYyYWE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRUcmFja1NpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
R3JpZFRyYWNrU2l6ZS5oCkBAIC00NiwxNSArNDYsMTYgQEAgZW51bSBHcmlkVHJhY2tTaXplVHlw
ZSB7CiBjbGFzcyBHcmlkVHJhY2tTaXplIHsKIHB1YmxpYzoKICAgICBHcmlkVHJhY2tTaXplKExl
bmd0aFR5cGUgdHlwZSA9IFVuZGVmaW5lZCkKLSAgICAgICAgOiBtX3R5cGUoTGVuZ3RoVHJhY2tT
aXppbmcpCi0gICAgICAgICwgbV9taW5UcmFja0JyZWFkdGgodHlwZSkKLSAgICAgICAgLCBtX21h
eFRyYWNrQnJlYWR0aCh0eXBlKQogICAgIHsKKyAgICAgICAgc2V0TGVuZ3RoKEdyaWRMZW5ndGgo
TGVuZ3RoKHR5cGUpKSk7CiAgICAgfQogCiAgICAgR3JpZFRyYWNrU2l6ZShjb25zdCBHcmlkTGVu
Z3RoJiBtaW5UcmFja0JyZWFkdGgsIGNvbnN0IEdyaWRMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCkK
KyAgICAgICAgOiBtX3R5cGUoTWluTWF4VHJhY2tTaXppbmcpCisgICAgICAgICwgbV9taW5UcmFj
a0JyZWFkdGgobWluVHJhY2tCcmVhZHRoKQorICAgICAgICAsIG1fbWF4VHJhY2tCcmVhZHRoKG1h
eFRyYWNrQnJlYWR0aCkKICAgICB7Ci0gICAgICAgIHNldE1pbk1heChtaW5UcmFja0JyZWFkdGgs
IG1heFRyYWNrQnJlYWR0aCk7CisgICAgICAgIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlwZXMo
KTsKICAgICB9CiAKICAgICBjb25zdCBHcmlkTGVuZ3RoJiBsZW5ndGgoKSBjb25zdApAQCAtNzEs
NiArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fdHlwZSA9IExlbmd0aFRyYWNrU2l6aW5nOwog
ICAgICAgICBtX21pblRyYWNrQnJlYWR0aCA9IGxlbmd0aDsKICAgICAgICAgbV9tYXhUcmFja0Jy
ZWFkdGggPSBsZW5ndGg7CisgICAgICAgIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlwZXMoKTsK
ICAgICB9CiAKICAgICBjb25zdCBHcmlkTGVuZ3RoJiBtaW5UcmFja0JyZWFkdGgoKSBjb25zdApA
QCAtOTgsNiArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBtX3R5cGUgPSBNaW5NYXhUcmFja1Np
emluZzsKICAgICAgICAgbV9taW5UcmFja0JyZWFkdGggPSBtaW5UcmFja0JyZWFkdGg7CiAgICAg
ICAgIG1fbWF4VHJhY2tCcmVhZHRoID0gbWF4VHJhY2tCcmVhZHRoOworICAgICAgICBjYWNoZU1p
bk1heFRyYWNrQnJlYWR0aFR5cGVzKCk7CiAgICAgfQogCiAgICAgR3JpZFRyYWNrU2l6ZVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtMTExLDE4ICsxMTQsMzEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gbV90eXBlID09IG90aGVyLm1fdHlwZSAmJiBtX21pblRyYWNr
QnJlYWR0aCA9PSBvdGhlci5tX21pblRyYWNrQnJlYWR0aCAmJiBtX21heFRyYWNrQnJlYWR0aCA9
PSBvdGhlci5tX21heFRyYWNrQnJlYWR0aDsKICAgICB9CiAKLSAgICBib29sIGhhc01pbk9yTWF4
Q29udGVudE1pblRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1pblRyYWNrQnJlYWR0aCgp
LmlzTGVuZ3RoKCkgJiYgKG1pblRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgp
IHx8IG1pblRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWF4Q29udGVudCgpKTsgfQotICAgIGJv
b2wgaGFzTWF4Q29udGVudE1pblRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1pblRyYWNr
QnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWluVHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhD
b250ZW50KCk7IH0KLSAgICBib29sIGhhc01pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1heFRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgKG1heFRyYWNr
QnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpIHx8IG1heFRyYWNrQnJlYWR0aCgpLmxl
bmd0aCgpLmlzTWF4Q29udGVudCgpKTsgfQotICAgIGJvb2wgaGFzTWF4Q29udGVudE1heFRyYWNr
QnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1heFRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYg
bWF4VHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhDb250ZW50KCk7IH0KLSAgICBib29sIGhh
c01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFk
dGgoKSBjb25zdCB7IHJldHVybiBtaW5UcmFja0JyZWFkdGgoKS5pc0xlbmd0aCgpICYmIG1pblRy
YWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpICYmIGhhc01pbk9yTWF4Q29udGVu
dE1heFRyYWNrQnJlYWR0aCgpOyB9Ci0gICAgYm9vbCBoYXNNYXhDb250ZW50TWluVHJhY2tCcmVh
ZHRoQW5kTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIGhhc01heENv
bnRlbnRNaW5UcmFja0JyZWFkdGgoKSAmJiBoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCk7
IH0KKyAgICB2b2lkIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlwZXMoKQorICAgIHsKKyAgICAg
ICAgbV9taW5UcmFja0JyZWFkdGhJc01pbkNvbnRlbnQgPSBtaW5UcmFja0JyZWFkdGgoKS5pc0xl
bmd0aCgpICYmIG1pblRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpOworICAg
ICAgICBtX21pblRyYWNrQnJlYWR0aElzTWF4Q29udGVudCA9IG1pblRyYWNrQnJlYWR0aCgpLmlz
TGVuZ3RoKCkgJiYgbWluVHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhDb250ZW50KCk7Cisg
ICAgICAgIG1fbWF4VHJhY2tCcmVhZHRoSXNNYXhDb250ZW50ID0gbWF4VHJhY2tCcmVhZHRoKCku
aXNMZW5ndGgoKSAmJiBtYXhUcmFja0JyZWFkdGgoKS5sZW5ndGgoKS5pc01heENvbnRlbnQoKTsK
KyAgICAgICAgbV9tYXhUcmFja0JyZWFkdGhJc01pbkNvbnRlbnQgPSBtYXhUcmFja0JyZWFkdGgo
KS5pc0xlbmd0aCgpICYmIG1heFRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgp
OworICAgIH0KIAorICAgIGJvb2wgaGFzTWluT3JNYXhDb250ZW50TWluVHJhY2tCcmVhZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV9taW5UcmFja0JyZWFkdGhJc01heENvbnRlbnQgfHwgbV9taW5UcmFj
a0JyZWFkdGhJc01pbkNvbnRlbnQ7IH0KKyAgICBib29sIGhhc01heENvbnRlbnRNYXhUcmFja0Jy
ZWFkdGgoKSBjb25zdCB7IHJldHVybiBtX21heFRyYWNrQnJlYWR0aElzTWF4Q29udGVudDsgfQor
ICAgIGJvb2wgaGFzTWluQ29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4VHJhY2tCcmVhZHRoSXNNaW5Db250ZW50OyB9CisgICAgYm9vbCBoYXNNaW5Pck1heENvbnRl
bnRNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBtX21heFRyYWNrQnJlYWR0aElzTWF4
Q29udGVudCB8fCBtX21heFRyYWNrQnJlYWR0aElzTWluQ29udGVudDsgfQorICAgIGJvb2wgaGFz
TWF4Q29udGVudE1pblRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluVHJhY2tCcmVh
ZHRoSXNNYXhDb250ZW50OyB9CisgICAgYm9vbCBoYXNNaW5Db250ZW50TWluVHJhY2tCcmVhZHRo
KCkgY29uc3QgeyByZXR1cm4gbV9taW5UcmFja0JyZWFkdGhJc01pbkNvbnRlbnQ7IH0KKyAgICBi
b29sIGhhc01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFj
a0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBtX21pblRyYWNrQnJlYWR0aElzTWluQ29udGVudCAm
JiBoYXNNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKTsgfQorICAgIGJvb2wgaGFzTWF4
Q29udGVudE1pblRyYWNrQnJlYWR0aEFuZE1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBjb25z
dCB7IHJldHVybiBtX21pblRyYWNrQnJlYWR0aElzTWF4Q29udGVudCAmJiBtX21heFRyYWNrQnJl
YWR0aElzTWF4Q29udGVudDsgfQogCiBwcml2YXRlOgogICAgIEdyaWRUcmFja1NpemVUeXBlIG1f
dHlwZTsKICAgICBHcmlkTGVuZ3RoIG1fbWluVHJhY2tCcmVhZHRoOwogICAgIEdyaWRMZW5ndGgg
bV9tYXhUcmFja0JyZWFkdGg7CisgICAgYm9vbCBtX21pblRyYWNrQnJlYWR0aElzTWF4Q29udGVu
dDsKKyAgICBib29sIG1fbWluVHJhY2tCcmVhZHRoSXNNaW5Db250ZW50OworICAgIGJvb2wgbV9t
YXhUcmFja0JyZWFkdGhJc01heENvbnRlbnQ7CisgICAgYm9vbCBtX21heFRyYWNrQnJlYWR0aElz
TWluQ29udGVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNDgxMjY3
NWRmNmFmYTZiMzlkNzI1ODkzM2Q0YmIwMDNlZDc3MGUwLi5jMGY0NDA2M2QwNGIzOTU1NjU3ZGYy
NGJiYTMxMGYwY2Q0ZWRlY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDEtMjMgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NTUyBH
cmlkIExheW91dF0gSW52YWxpZCBpbml0aWFsaXphdGlvbiBvZiB0cmFjayBzaXplcyB3aXRoIG5v
biBzcGFubmluZyBncmlkIGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDA3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1j
b2x1bW5zLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29sdXRpb24uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUtaXRlbXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWluaXRpYWxpemUtc3Bhbi1vbmUtaXRlbXMuaHRtbDogQWRkZWQuCisKIDIwMTUtMDEtMjIgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBH
cmlkIExheW91dF0gVHJhY2tzJyBncm93dGggbGltaXRzIG11c3QgYmUgPj0gYmFzZSBzaXplcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250ZW50
LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0aW9uLWV4
cGVjdGVkLnR4dAppbmRleCA4YTVmYTU5NDBhN2VmZDFiN2E1ZTU0ZWVjZDUyMzk4NjBhOGVmNGRj
Li41NjA3MjQ1NjQ5ZDdmMzVmM2MyOTI1NzI1MWUwODZhNGI5MGQ1NDRiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1u
cy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhD
b250ZW50QW5kTWF4Q29udGVudEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYQogCiBDaGVjayB0aGF0
IGl0ZW1zIGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNwYW4gdG8gY29tcHV0ZSB0cmFjayBi
cmVhZHRocyBmb3JiaWRkaW5nIGV4dHJhIHNwYWNlIGRpc3RyaWJ1dGlvbi4KIFBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRGaXhlZEFuZEF1dG9VbnNvcnRlZENvbnN0
cmFpbmVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVt
bnMnKSBpcyAiMHB4IDQwcHgiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRv
QW5kQXV0b1Vuc29ydGVkQ29uc3RyYWluZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICI1cHggMzVweCIKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZ3JpZEF1dG9BbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjEwcHggMzBw
eCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRBbmRNaW5Db250
ZW50Rml4ZWRVbnNvcnRlZENvbnN0cmFpbmVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMHB4IDQwcHgiCiBQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGdyaWRNYXhDb250ZW50QW5kTWluQ29udGVudFVuc29ydGVkQ29uc3RyYWlu
ZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycp
IGlzICIwcHggNzBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEZpeGVkTWlu
Q29udGVudEFuZE1heENvbnRlbnRVbnNvcnRlZENvbnN0cmFpbmVkLCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA3MHB4IgpAQCAt
MjcsNyArMjcsNyBAQCBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhDb250ZW50
QW5kTWF4Q29udGVudEZpeGVkVW5zb3J0ZWRDb25zdHJhaW5lZAogCiBDaGVjayB0aGF0IGl0ZW1z
IGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNwYW4gdG8gY29tcHV0ZSB0cmFjayBicmVhZHRo
cyBhbGxvd2luZyBleHRyYSBzcGFjZSBkaXN0cmlidXRpb24uCiBQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGdyaWRNaW5Db250ZW50Rml4ZWRBbmRBdXRvVW5zb3J0ZWQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIxNXB4IDkwcHgi
Ci1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvQW5kQXV0b1Vuc29ydGVkLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAi
MzBweCA2MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0FuZEF1dG9V
bnNvcnRlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zJykgaXMgIjYwcHggMzBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1p
bkNvbnRlbnRBbmRNaW5Db250ZW50Rml4ZWRVbnNvcnRlZCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjBweCA0MHB4IgogUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWF4Q29udGVudEFuZE1pbkNvbnRlbnRVbnNvcnRlZCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMg
IjBweCA3MHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkRml4ZWRNaW5Db250
ZW50QW5kTWF4Q29udGVudFVuc29ydGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA3MHB4IgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250ZW50LXNpemVkLWNvbHVtbnMtcmVz
b2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250
ZW50LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi5odG1sCmluZGV4IGFiZDY2NTlhMzg5OWQzZGVl
MDYxMzkzM2UzYmVmYjA3ZWU1NDNhNWQuLmFmZjQyOTU1Nzk5ZDYwYzhmOTY4MDRhZWI4YTk2ZTE2
MzRhYTUzNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0
aW9uLmh0bWwKQEAgLTMxNiw3ICszMTYsNyBAQCB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRN
YXhDb250ZW50QW5kTWF4Q29udGVudEZpeGVkIiwgIjU1cHggMzVweCIpOwogZGVidWcoIiIpOwog
ZGVidWcoIkNoZWNrIHRoYXQgaXRlbXMgYXJlIHByb2Nlc3NlZCBieSBhc2NlbmRpbmcgc3BhbiB0
byBjb21wdXRlIHRyYWNrIGJyZWFkdGhzIGZvcmJpZGRpbmcgZXh0cmEgc3BhY2UgZGlzdHJpYnV0
aW9uLiIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWluQ29udGVudEZpeGVkQW5kQXV0
b1Vuc29ydGVkQ29uc3RyYWluZWQiLCAiMHB4IDQwcHgiKTsKLXRlc3RHcmlkQ29sdW1uc1ZhbHVl
cygiZ3JpZEF1dG9BbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCIsICI1cHggMzVweCIpOwordGVz
dEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkQXV0b0FuZEF1dG9VbnNvcnRlZENvbnN0cmFpbmVkIiwg
IjEwcHggMzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWluQ29udGVudEFuZE1p
bkNvbnRlbnRGaXhlZFVuc29ydGVkQ29uc3RyYWluZWQiLCAiMHB4IDQwcHgiKTsKIHRlc3RHcmlk
Q29sdW1uc1ZhbHVlcygiZ3JpZE1heENvbnRlbnRBbmRNaW5Db250ZW50VW5zb3J0ZWRDb25zdHJh
aW5lZCIsICIwcHggNzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkRml4ZWRNaW5D
b250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkQ29uc3RyYWluZWQiLCAiMTBweCA3MHB4Iik7CkBA
IC0zMzEsNyArMzMxLDcgQEAgdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVudEFu
ZE1heENvbnRlbnRGaXhlZFVuc29ydGVkQ29uc3RyYWluZWQiLCAiNDAKIGRlYnVnKCIiKTsKIGRl
YnVnKCJDaGVjayB0aGF0IGl0ZW1zIGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNwYW4gdG8g
Y29tcHV0ZSB0cmFjayBicmVhZHRocyBhbGxvd2luZyBleHRyYSBzcGFjZSBkaXN0cmlidXRpb24u
Iik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNaW5Db250ZW50Rml4ZWRBbmRBdXRvVW5z
b3J0ZWQiLCAiMTVweCA5MHB4Iik7Ci10ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRBdXRvQW5k
QXV0b1Vuc29ydGVkIiwgIjMwcHggNjBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlk
QXV0b0FuZEF1dG9VbnNvcnRlZCIsICI2MHB4IDMwcHgiKTsKIHRlc3RHcmlkQ29sdW1uc1ZhbHVl
cygiZ3JpZE1pbkNvbnRlbnRBbmRNaW5Db250ZW50Rml4ZWRVbnNvcnRlZCIsICIwcHggNDBweCIp
OwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVudEFuZE1pbkNvbnRlbnRVbnNv
cnRlZCIsICIwcHggNzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkRml4ZWRNaW5D
b250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkIiwgIjEwcHggNzBweCIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pbml0aWFsaXplLXNwYW4tb25l
LWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtaW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZl
MWM2OTZmZWUzYmJhOTc2ZjkxZDMxYjBiMDE4ZDIwOTNlNzExZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1zcGFuLW9u
ZS1pdGVtcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IGNvbnRlbnQgc2l6ZWQgdHJhY2tzIGFyZSBpbml0aWFsaXplZCB1c2luZyBub24tc3Bhbm5p
bmcgZ3JpZCBpdGVtcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9BbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA5MHB4IgorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0FuZEF1dG9SZXZlcnNlZCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjkwcHggMTBw
eCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEZpeGVkTWluQ29udGVudEZpeGVk
TWF4Q29udGVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zJykgaXMgIjUwcHggNTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3Jp
ZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudFR3b0VtcHR5Q2hpbGRyZW4sICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICI1MHB4IDUw
cHgiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRGaXhlZE1pbkNvbnRlbnRGaXhl
ZE1heENvbnRlbnRGaXhlZFNpemVDaGlsZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjYwcHggNDBweCIKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZ3JpZE1heENvbnRlbnRBbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiODBweCAyMHB4IgorUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWF4Q29udGVudEFuZEF1dG9SZXZlcnNlZCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjkwcHgg
MTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRBbmRBdXRv
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBp
cyAiMTBweCA5MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWluQ29udGVu
dEFuZEF1dG9SZXZlcnNlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zJykgaXMgIjIwcHggODBweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorWAorWFhYIFhYIFhYWAorWAorWFhYIFhYIFhYWAorWFhY
IFhYIFhYWAorWFhYIFhYIFhYWAorWFhYWFhYCitYWFggWFggWFhYCitYCitYWFggWFggWFhYCitY
CitYWFggWFggWFhYCitYCitYWFggWFggWFhYCitYCitYWFggWFggWFhYCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUt
aXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlh
bGl6ZS1zcGFuLW9uZS1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYjQwZDYwMjA5ZThiZmY2Yjg1
Y2Y2NmY5OTQyNzhhMjE3ZTU4YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUtaXRlbXMuaHRtbApAQCAt
MCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPGxpbmsgaHJlZj0icmVzb3Vy
Y2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiLz4KKzxzdHlsZT4KKyAuZ3JpZCB7CisgICAg
IGZvbnQ6IDEwcHgvMSBBaGVtOworIH0KKyAuZ3JpZEF1dG9BbmRBdXRvIHsKKyAgICAgLXdlYmtp
dC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKKyB9CisgLmdyaWRGaXhlZE1pbkNv
bnRlbnRGaXhlZE1heENvbnRlbnQgeworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiBtaW5tYXgoNTBweCwgLXdlYmtpdC1taW4tY29udGVudCkgbWlubWF4KDQwcHgsIC13ZWJraXQt
bWF4LWNvbnRlbnQpOworIH0KKyAuZ3JpZE1heENvbnRlbnRBbmRBdXRvIHsKKyAgICAgLXdlYmtp
dC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC13ZWJraXQtbWF4LWNvbnRlbnQgYXV0bzsKKyB9Cisg
LmdyaWRNaW5Db250ZW50QW5kQXV0byB7CisgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zOiAtd2Via2l0LW1pbi1jb250ZW50IGF1dG87CisgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9BbmRBdXRvIiBpZD0iZ3JpZEF1dG9BbmRBdXRvIj4K
KyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKworPGRp
diBjbGFzcz0iZ3JpZCBncmlkQXV0b0FuZEF1dG8iIGlkPSJncmlkQXV0b0FuZEF1dG9SZXZlcnNl
ZCI+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlg8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnQiIGlk
PSJncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50Ij4KKyAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEgZmlyc3RSb3dGaXJzdENvbHVtbiI+PC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBj
bGFzcz0iZ3JpZCBncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50IiBpZD0iZ3JpZEZp
eGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudFR3b0VtcHR5Q2hpbGRyZW4iPgorICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4iPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+WFhYIFhYIFhYWDwvZGl2PgorPC9k
aXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVu
dCIgaWQ9ImdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnRGaXhlZFNpemVDaGlsZCI+
CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiI+WFhYWFhYPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4K
KworPGRpdiBjbGFzcz0iZ3JpZCBncmlkTWF4Q29udGVudEFuZEF1dG8iIGlkPSJncmlkTWF4Q29u
dGVudEFuZEF1dG8iPgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW4iPlg8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4K
KzwvZGl2PgorCis8ZGl2IGNsYXNzPSJncmlkIGdyaWRNYXhDb250ZW50QW5kQXV0byIgaWQ9Imdy
aWRNYXhDb250ZW50QW5kQXV0b1JldmVyc2VkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd1Nl
Y29uZENvbHVtbiI+WDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+
WFhYIFhYIFhYWDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZE1pbkNvbnRl
bnRBbmRBdXRvIiBpZD0iZ3JpZE1pbkNvbnRlbnRBbmRBdXRvIj4KKyAgICA8ZGl2IGNsYXNzPSJm
aXJzdFJvd0ZpcnN0Q29sdW1uIj5YPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dCb3Ro
Q29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3JpZCBncmlk
TWluQ29udGVudEFuZEF1dG8iIGlkPSJncmlkTWluQ29udGVudEFuZEF1dG9SZXZlcnNlZCI+Cisg
ICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlg8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2PgorCis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdEdyaWRDb2x1bW5zVmFsdWVzKGlkLCBjb21wdXRlZENvbHVtblZh
bHVlKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5
bGUoIiArIGlkICsgIiwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zJykiLCBjb21wdXRlZENvbHVtblZhbHVlKTsKK30KKworZGVzY3JpcHRpb24oJ1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCBjb250ZW50IHNpemVkIHRyYWNrcyBhcmUgaW5pdGlhbGl6ZWQg
dXNpbmcgbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMuJyk7CisKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVl
cygiZ3JpZEF1dG9BbmRBdXRvIiwgIjEwcHggOTBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVz
KCJncmlkQXV0b0FuZEF1dG9SZXZlcnNlZCIsICI5MHB4IDEwcHgiKTsKK3Rlc3RHcmlkQ29sdW1u
c1ZhbHVlcygiZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudCIsICI1MHB4IDUwcHgi
KTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29u
dGVudFR3b0VtcHR5Q2hpbGRyZW4iLCAiNTBweCA1MHB4Iik7Cit0ZXN0R3JpZENvbHVtbnNWYWx1
ZXMoImdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnRGaXhlZFNpemVDaGlsZCIsICI2
MHB4IDQwcHgiKTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZE1heENvbnRlbnRBbmRBdXRv
IiwgIjgwcHggMjBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVudEFu
ZEF1dG9SZXZlcnNlZCIsICI5MHB4IDEwcHgiKTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3Jp
ZE1pbkNvbnRlbnRBbmRBdXRvIiwgIjEwcHggOTBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVz
KCJncmlkTWluQ29udGVudEFuZEF1dG9SZXZlcnNlZCIsICIyMHB4IDgwcHgiKTsKKzwvc2NyaXB0
PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246271</attachid>
            <date>2015-02-09 07:01:01 -0800</date>
            <delta_ts>2015-02-10 03:26:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140763-20150209160101.patch</filename>
            <type>text/plain</type>
            <size>24356</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzlhOGU3NzZiOTVhMzNk
NmU2YmVhNzI4ODUzMjViMWM0NzI0MWIyNS4uZDMzZmQ4NmU2YTk3ZGM0NGUzZjNhNWZiZjAyNjdl
YTAyM2Y3MmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTAxLTIzICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludmFsaWQgaW5pdGlhbGl6YXRpb24gb2YgdHJhY2sgc2l6ZXMgd2l0aCBub24g
c3Bhbm5pbmcgZ3JpZCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQwNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29udGVudCBzaXplZCB0cmFja3Mgd2l0aCBub24tc3Bhbm5pbmcgZ3JpZCBp
dGVtcyB3ZXJlIG5vdAorICAgICAgICBwcm9wZXJseSBzaXplZCBiZWNhdXNlIHRoZSBncm93dGgg
bGltaXQgd2FzIHNvbWV0aW1lcyBpbmZpbml0eQorICAgICAgICAoLTEpIGFmdGVyIGNhbGxpbmcg
cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKCkgd2hlbgorICAgICAgICBp
dCBzaG91bGQgbm90LiBUaGlzIHBhdGNoIGFkZHMgYW4gc3BlY2lhbCBpbml0aWFsaXphdGlvbiBw
aGFzZSBmb3IKKyAgICAgICAgbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMgYXMgdGhlIG5ldyB0cmFj
ayBzaXppbmcgYWxnb3JpdGhtCisgICAgICAgIGRlc2NyaWJlcy4KKworICAgICAgICBHcmFudGVk
LCB0aGF0IHdhcyBoYW5kbGVkIGluIHRoZSBvbGQgYWxnb3JpdGhtIGluCisgICAgICAgIGRpc3Ry
aWJ1dGVTcGFjZVRvVHJhY2tzKCkgYXMgYSBzcGVjaWFsIGNhc2UuIFRoZSBwcm9ibGVtIGlzIHRo
YXQKKyAgICAgICAgaXQgcmVncmVzc2VkIGFmdGVyIHRoZSBvcHRpbWl6YXRpb24gYWRkZWQgaW4g
cjE3Mzg2OCBiZWNhdXNlIHRoYXQKKyAgICAgICAgbWV0aG9kIGlzIG5vIGxvbmdlciBjYWxsZWQg
d2hlbiB0aGUgc3BhY2UgdG8gZGlzdHJpYnV0ZSBpcyAwLgorCisgICAgICAgIFRoYXQncyB3aHkg
d2UgY291bGQgZml4IHRoaXMgYnkgYWxsb3dpbmcgY2FsbHMgdG8KKyAgICAgICAgZGlzdHJpYnV0
ZVNwYWNlVG9UcmFja3MoKSB3aXRoIHNwYWNlVG9EaXN0cmlidXRlPj0wIGJ1dCBieSBmaXhpbmcK
KyAgICAgICAgaXQgd2l0aCBhbiBleHBsaWNpdCBpbml0aWFsaXphdGlvbiBvdXIgaW1wbGVtZW50
YXRpb24gYmVjb21lcworICAgICAgICBjbG9zZXIgdG8gdGhlIG5ldyBhbGdvcml0aG0gYW5kIHRo
ZSBpbml0aWFsaXphdGlvbiBpcyBub3cgZXhwbGljaXQKKyAgICAgICAgaW4gdGhlIGNvZGUgaW5z
dGVhZCBvZiBhIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcKKyAgICAgICAgZGlzdHJpYnV0ZVNwYWNl
VG9UcmFja3MoKSB3aXRoIG5vIHNwYWNlIHRvIGJlIGRpc3RyaWJ1dGVkLiBJdCBhbHNvCisgICAg
ICAgIGJyaW5ncyBhIHNsaWdodCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBhcyB3ZSBzYXZlIHNv
cnRzIGFuZCBoYXNoCisgICAgICAgIGxvb2t1cHMuCisKKyAgICAgICAgSSBhbHNvIHRvb2sgdGhl
IGNoYW5nZSB0byBhZGQgY2FjaGluZyB0byBzZXZlcmFsIEdyaWRUcmFja1NpemUKKyAgICAgICAg
bWV0aG9kcyB0aGF0IHdlcmUgaG90IG9uIHRoZSBwcm9maWxlciAoZWFjaCBvbmUgYWNjb3VudGVk
IGZvciB+MSUKKyAgICAgICAgb2YgdGhlIHRvdGFsIHRpbWUsIG5vdyB0aGV5IGFjY291bnQgZm9y
IH4wLjMlIGVhY2gpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkSXRlbVdpdGhTcGFuOjpzcGFuKTog
TmV3IGhlbHBlciBtZXRob2QgZm9yIEFTU0VSVHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMpOgorICAgICAgICBF
eGNsdWRlIG5vbiBzcGFubmluZyBncmlkIGl0ZW1zIGZyb20gdGhlIGNhbGxzIHRvCisgICAgICAg
IHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdG
dW5jdGlvbnNGb3JOb25TcGFubmluZ0l0ZW1zKToKKyAgICAgICAgTmV3IG1ldGhvZCB0byByZXNv
bHZlIHRyYWNrIHNpemVzIG9ubHkgdXNpbmcgbm9uLXNwYW5uaW5nIGdyaWQKKyAgICAgICAgaXRl
bXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJh
Y2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyk6CisgICAgICAgIEVuc3VyZSB0aGF0IGl0IGlzbid0
IGNhbGxlZCBmb3Igbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6R3JpZFRyYWNrU2l6ZSk6IENhY2hl
IHJldHVybiB2YWx1ZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpzZXRMZW5n
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6OnNldE1pbk1heCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6Y2FjaGVNaW5NYXhUcmFj
a0JyZWFkdGhUeXBlcyk6IE5ldyBtZXRob2QKKyAgICAgICAgdGhhdCBjYWNoZXMgdGhlIHJldHVy
biB2YWx1ZXMgZm9yIGhhc1hYWFRyYWNrQnJlYWR0aCgpIG1ldGhvZHMuCisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBV
c2UKKyAgICAgICAgdGhlIGNhY2hlZCByZXR1cm4gdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpH
cmlkVHJhY2tTaXplOjpoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Db250ZW50TWF4VHJhY2tCcmVhZHRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENv
bnRlbnRNYXhUcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFj
a1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgpOgorICAgICAgICBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKToKKyAgICAgICAgRGl0dG8uCisK
IDIwMTUtMDItMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPD0gcmVz
b2x2ZWRGaW5hbFBvc2l0aW9uIGluIFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3BhbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDViOTNmMzM2MjA2NzJkMzA2YTJh
ZTM4OWJhZTIxZWY4MTAxNTc4MTkuLjYyNWNlYmRjZDE1OTdiNmNkMzdmOTAwZDI5MDFkMzVkZWU3
MWMyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTU4NCw2
ICs1ODQsOSBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJCb3gmIGdyaWRJdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV9ncmlkSXRlbTsgfQogICAgIEdyaWRDb29yZGluYXRlIGNvb3JkaW5hdGUoKSBjb25z
dCB7IHJldHVybiBtX2Nvb3JkaW5hdGU7IH0KKyNpZiBFTkFCTEUoQVNTRVJUKQorICAgIHNpemVf
dCBzcGFuKCkgY29uc3QgeyByZXR1cm4gbV9zcGFuOyB9CisjZW5kaWYKIAogICAgIGJvb2wgb3Bl
cmF0b3I8KGNvbnN0IEdyaWRJdGVtV2l0aFNwYW4gb3RoZXIpIGNvbnN0CiAgICAgewpAQCAtNjE5
LDEyICs2MjIsMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tT
aXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW8KICAgICBIYXNoU2V0PFJlbmRl
ckJveCo+IGl0ZW1zU2V0OwogICAgIGZvciAoYXV0byB0cmFja0luZGV4IDogc2l6aW5nRGF0YS5j
b250ZW50U2l6ZWRUcmFja3NJbmRleCkgewogICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3Io
bV9ncmlkLCBkaXJlY3Rpb24sIHRyYWNrSW5kZXgpOworICAgICAgICBHcmlkVHJhY2smIHRyYWNr
ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3Ry
YWNrSW5kZXhdIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRleF07CiAKICAgICAgICAg
d2hpbGUgKFJlbmRlckJveCogZ3JpZEl0ZW0gPSBpdGVyYXRvci5uZXh0R3JpZEl0ZW0oKSkgewog
ICAgICAgICAgICAgaWYgKGl0ZW1zU2V0LmFkZChncmlkSXRlbSkuaXNOZXdFbnRyeSkgewogICAg
ICAgICAgICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gY2FjaGVkR3Jp
ZENvb3JkaW5hdGUoKmdyaWRJdGVtKTsKLSAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGQgbm90
IGluY2x1ZGUgaXRlbXMgc3Bhbm5pbmcgbW9yZSB0aGFuIG9uZSB0cmFjayB0aGF0IHNwYW4gdHJh
Y2tzIHdpdGggZmxleGlibGUgc2l6aW5nIGZ1bmN0aW9ucy4KLSAgICAgICAgICAgICAgICBpZiAo
aW50ZWdlclNwYW5Gb3JEaXJlY3Rpb24oY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSA9PSAxIHx8ICFz
cGFubmluZ0l0ZW1Dcm9zc2VzRmxleGlibGVTaXplZFRyYWNrcyhjb29yZGluYXRlLCBkaXJlY3Rp
b24pKQorICAgICAgICAgICAgICAgIGlmIChpbnRlZ2VyU3BhbkZvckRpcmVjdGlvbihjb29yZGlu
YXRlLCBkaXJlY3Rpb24pID09IDEpCisgICAgICAgICAgICAgICAgICAgIHJlc29sdmVDb250ZW50
QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvck5vblNwYW5uaW5nSXRlbXMoZGlyZWN0aW9uLCBj
b29yZGluYXRlLCAqZ3JpZEl0ZW0sIHRyYWNrLCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcyk7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoIXNwYW5uaW5nSXRlbUNyb3NzZXNGbGV4aWJsZVNpemVk
VHJhY2tzKGNvb3JkaW5hdGUsIGRpcmVjdGlvbikpCiAgICAgICAgICAgICAgICAgICAgIHNpemlu
Z0RhdGEuaXRlbXNTb3J0ZWRCeUluY3JlYXNpbmdTcGFuLmFwcGVuZChHcmlkSXRlbVdpdGhTcGFu
KCpncmlkSXRlbSwgY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KQEAgLTY0NSw4ICs2NTAsMjUgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVu
dEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW8KICAgICB9
CiB9CiAKK3ZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVu
Y3Rpb25zRm9yTm9uU3Bhbm5pbmdJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0
aW9uLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSwgUmVuZGVyQm94JiBncmlkSXRl
bSwgR3JpZFRyYWNrJiB0cmFjaywgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcykKK3sK
KyAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja1Bvc2l0aW9uID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBHcmlk
VHJhY2tTaXplIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja1Bvc2l0
aW9uLnRvSW50KCkpOworCisgICAgaWYgKHRyYWNrU2l6ZS5oYXNNaW5Db250ZW50TWluVHJhY2tC
cmVhZHRoKCkpCisgICAgICAgIHRyYWNrLnNldEJhc2VTaXplKHN0ZDo6bWF4KHRyYWNrLmJhc2VT
aXplKCksIG1pbkNvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwgZGlyZWN0aW9uLCBjb2x1bW5UcmFj
a3MpKSk7CisgICAgZWxzZSBpZiAodHJhY2tTaXplLmhhc01heENvbnRlbnRNaW5UcmFja0JyZWFk
dGgoKSkKKyAgICAgICAgdHJhY2suc2V0QmFzZVNpemUoc3RkOjptYXgodHJhY2suYmFzZVNpemUo
KSwgbWF4Q29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJlY3Rpb24sIGNvbHVtblRyYWNrcykp
KTsKKworICAgIGlmICh0cmFja1NpemUuaGFzTWluQ29udGVudE1heFRyYWNrQnJlYWR0aCgpKQor
ICAgICAgICB0cmFjay5zZXRHcm93dGhMaW1pdChzdGQ6Om1heCh0cmFjay5ncm93dGhMaW1pdCgp
LCBtaW5Db250ZW50Rm9yQ2hpbGQoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgY29sdW1uVHJhY2tzKSkp
OworICAgIGVsc2UgaWYgKHRyYWNrU2l6ZS5oYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCkp
CisgICAgICAgIHRyYWNrLnNldEdyb3d0aExpbWl0KHN0ZDo6bWF4KHRyYWNrLmdyb3d0aExpbWl0
KCksIG1heENvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwgZGlyZWN0aW9uLCBjb2x1bW5UcmFja3Mp
KSk7Cit9CisKIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5n
RnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgR3Jp
ZFNpemluZ0RhdGEmIHNpemluZ0RhdGEsIEdyaWRJdGVtV2l0aFNwYW4mIGdyaWRJdGVtV2l0aFNw
YW4sIEZpbHRlckZ1bmN0aW9uIGZpbHRlckZ1bmN0aW9uLCBTaXppbmdGdW5jdGlvbiBzaXppbmdG
dW5jdGlvbiwgQWNjdW11bGF0b3JHZXR0ZXIgdHJhY2tHZXR0ZXIsIEFjY3VtdWxhdG9yR3Jvd0Z1
bmN0aW9uIHRyYWNrR3Jvd3RoRnVuY3Rpb24sIEZpbHRlckZ1bmN0aW9uIGdyb3dBYm92ZU1heEJy
ZWFkdGhGaWx0ZXJGdW5jdGlvbikKIHsKKyAgICBBU1NFUlQoZ3JpZEl0ZW1XaXRoU3Bhbi5zcGFu
KCkgPiAxKTsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGdyaWRJdGVt
V2l0aFNwYW4uY29vcmRpbmF0ZSgpOwogICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGlu
aXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5h
dGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbjsKICAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBmaW5h
bFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5j
b2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZp
bmFsUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBkODg2
YzcyYzg4YzdkNDNiYmU4NjMxMGVjNTU3M2FmNjIxYzBjNjg3Li4xMWU0ZjEyNmUwZjBjNzg3YzEz
MjAzMzk1OGQ2NTFlYWM5OTA2ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIGNvbnN0IExheW91dFVu
aXQmIChHcmlkVHJhY2s6OiogQWNjdW11bGF0b3JHZXR0ZXIpKCkgY29uc3Q7CiAgICAgdHlwZWRl
ZiB2b2lkIChHcmlkVHJhY2s6OiogQWNjdW11bGF0b3JHcm93RnVuY3Rpb24pKExheW91dFVuaXQp
OwogICAgIHR5cGVkZWYgYm9vbCAoR3JpZFRyYWNrU2l6ZTo6KiBGaWx0ZXJGdW5jdGlvbikoKSBj
b25zdDsKKyAgICB2b2lkIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zv
ck5vblNwYW5uaW5nSXRlbXMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkQ29v
cmRpbmF0ZSYsIFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFjayYsIFZlY3RvcjxHcmlkVHJh
Y2s+JiBjb2x1bW5UcmFja3MpOwogICAgIHZvaWQgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6
aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBHcmlkU2l6aW5n
RGF0YSYsIEdyaWRJdGVtV2l0aFNwYW4mLCBGaWx0ZXJGdW5jdGlvbiwgU2l6aW5nRnVuY3Rpb24s
IEFjY3VtdWxhdG9yR2V0dGVyLCBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbiwgRmlsdGVyRnVuY3Rp
b24gZ3Jvd0Fib3ZlTWF4QnJlYWR0aEZpbHRlckZ1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgdm9p
ZCBkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyhWZWN0b3I8R3JpZFRyYWNrKj4mLCBWZWN0b3I8dW5z
aWduZWQ+KiBncm93QWJvdmVNYXhCcmVhZHRoVHJhY2tJbmRleGVzLCBBY2N1bXVsYXRvckdldHRl
ciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24sIEdyaWRTaXppbmdEYXRhJiwgTGF5b3V0VW5pdCYg
YXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkVHJhY2tTaXplLmgKaW5kZXggM2UzMzUyNDgwYzU3MmNiYTIxYmFmZDJkNzhhZDM0
NDNhYzU5YThmZC4uZGRmZjZjYzYyZjczYzk5ZDAyYzY5OGUzZGU2ZTY2MjRiZDYyYWE2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCkBAIC00
NiwxNSArNDYsMTYgQEAgZW51bSBHcmlkVHJhY2tTaXplVHlwZSB7CiBjbGFzcyBHcmlkVHJhY2tT
aXplIHsKIHB1YmxpYzoKICAgICBHcmlkVHJhY2tTaXplKExlbmd0aFR5cGUgdHlwZSA9IFVuZGVm
aW5lZCkKLSAgICAgICAgOiBtX3R5cGUoTGVuZ3RoVHJhY2tTaXppbmcpCi0gICAgICAgICwgbV9t
aW5UcmFja0JyZWFkdGgodHlwZSkKLSAgICAgICAgLCBtX21heFRyYWNrQnJlYWR0aCh0eXBlKQog
ICAgIHsKKyAgICAgICAgc2V0TGVuZ3RoKEdyaWRMZW5ndGgoTGVuZ3RoKHR5cGUpKSk7CiAgICAg
fQogCiAgICAgR3JpZFRyYWNrU2l6ZShjb25zdCBHcmlkTGVuZ3RoJiBtaW5UcmFja0JyZWFkdGgs
IGNvbnN0IEdyaWRMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCkKKyAgICAgICAgOiBtX3R5cGUoTWlu
TWF4VHJhY2tTaXppbmcpCisgICAgICAgICwgbV9taW5UcmFja0JyZWFkdGgobWluVHJhY2tCcmVh
ZHRoKQorICAgICAgICAsIG1fbWF4VHJhY2tCcmVhZHRoKG1heFRyYWNrQnJlYWR0aCkKICAgICB7
Ci0gICAgICAgIHNldE1pbk1heChtaW5UcmFja0JyZWFkdGgsIG1heFRyYWNrQnJlYWR0aCk7Cisg
ICAgICAgIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlwZXMoKTsKICAgICB9CiAKICAgICBjb25z
dCBHcmlkTGVuZ3RoJiBsZW5ndGgoKSBjb25zdApAQCAtNzEsNiArNzIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fdHlwZSA9IExlbmd0aFRyYWNrU2l6aW5nOwogICAgICAgICBtX21pblRyYWNrQnJl
YWR0aCA9IGxlbmd0aDsKICAgICAgICAgbV9tYXhUcmFja0JyZWFkdGggPSBsZW5ndGg7CisgICAg
ICAgIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlwZXMoKTsKICAgICB9CiAKICAgICBjb25zdCBH
cmlkTGVuZ3RoJiBtaW5UcmFja0JyZWFkdGgoKSBjb25zdApAQCAtOTgsNiArMTAwLDcgQEAgcHVi
bGljOgogICAgICAgICBtX3R5cGUgPSBNaW5NYXhUcmFja1NpemluZzsKICAgICAgICAgbV9taW5U
cmFja0JyZWFkdGggPSBtaW5UcmFja0JyZWFkdGg7CiAgICAgICAgIG1fbWF4VHJhY2tCcmVhZHRo
ID0gbWF4VHJhY2tCcmVhZHRoOworICAgICAgICBjYWNoZU1pbk1heFRyYWNrQnJlYWR0aFR5cGVz
KCk7CiAgICAgfQogCiAgICAgR3JpZFRyYWNrU2l6ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQpAQCAtMTExLDE4ICsxMTQsMzEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV90eXBlID09IG90aGVyLm1fdHlwZSAmJiBtX21pblRyYWNrQnJlYWR0aCA9PSBvdGhlci5tX21p
blRyYWNrQnJlYWR0aCAmJiBtX21heFRyYWNrQnJlYWR0aCA9PSBvdGhlci5tX21heFRyYWNrQnJl
YWR0aDsKICAgICB9CiAKLSAgICBib29sIGhhc01pbk9yTWF4Q29udGVudE1pblRyYWNrQnJlYWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1pblRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgKG1pblRy
YWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpIHx8IG1pblRyYWNrQnJlYWR0aCgp
Lmxlbmd0aCgpLmlzTWF4Q29udGVudCgpKTsgfQotICAgIGJvb2wgaGFzTWF4Q29udGVudE1pblRy
YWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1pblRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkg
JiYgbWluVHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhDb250ZW50KCk7IH0KLSAgICBib29s
IGhhc01pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1heFRy
YWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgKG1heFRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlz
TWluQ29udGVudCgpIHx8IG1heFRyYWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWF4Q29udGVudCgp
KTsgfQotICAgIGJvb2wgaGFzTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1heFRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWF4VHJhY2tCcmVhZHRoKCkubGVu
Z3RoKCkuaXNNYXhDb250ZW50KCk7IH0KLSAgICBib29sIGhhc01pbkNvbnRlbnRNaW5UcmFja0Jy
ZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBt
aW5UcmFja0JyZWFkdGgoKS5pc0xlbmd0aCgpICYmIG1pblRyYWNrQnJlYWR0aCgpLmxlbmd0aCgp
LmlzTWluQ29udGVudCgpICYmIGhhc01pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpOyB9
Ci0gICAgYm9vbCBoYXNNYXhDb250ZW50TWluVHJhY2tCcmVhZHRoQW5kTWF4Q29udGVudE1heFRy
YWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIGhhc01heENvbnRlbnRNaW5UcmFja0JyZWFkdGgo
KSAmJiBoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCk7IH0KKyAgICB2b2lkIGNhY2hlTWlu
TWF4VHJhY2tCcmVhZHRoVHlwZXMoKQorICAgIHsKKyAgICAgICAgbV9taW5UcmFja0JyZWFkdGhJ
c01pbkNvbnRlbnQgPSBtaW5UcmFja0JyZWFkdGgoKS5pc0xlbmd0aCgpICYmIG1pblRyYWNrQnJl
YWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpOworICAgICAgICBtX21pblRyYWNrQnJlYWR0
aElzTWF4Q29udGVudCA9IG1pblRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWluVHJhY2tC
cmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhDb250ZW50KCk7CisgICAgICAgIG1fbWF4VHJhY2tCcmVh
ZHRoSXNNYXhDb250ZW50ID0gbWF4VHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgoKSAmJiBtYXhUcmFj
a0JyZWFkdGgoKS5sZW5ndGgoKS5pc01heENvbnRlbnQoKTsKKyAgICAgICAgbV9tYXhUcmFja0Jy
ZWFkdGhJc01pbkNvbnRlbnQgPSBtYXhUcmFja0JyZWFkdGgoKS5pc0xlbmd0aCgpICYmIG1heFRy
YWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWluQ29udGVudCgpOworICAgIH0KIAorICAgIGJvb2wg
aGFzTWluT3JNYXhDb250ZW50TWluVHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbV9taW5U
cmFja0JyZWFkdGhJc01heENvbnRlbnQgfHwgbV9taW5UcmFja0JyZWFkdGhJc01pbkNvbnRlbnQ7
IH0KKyAgICBib29sIGhhc01heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVy
biBtX21heFRyYWNrQnJlYWR0aElzTWF4Q29udGVudDsgfQorICAgIGJvb2wgaGFzTWluQ29udGVu
dE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VHJhY2tCcmVhZHRoSXNNaW5D
b250ZW50OyB9CisgICAgYm9vbCBoYXNNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBj
b25zdCB7IHJldHVybiBtX21heFRyYWNrQnJlYWR0aElzTWF4Q29udGVudCB8fCBtX21heFRyYWNr
QnJlYWR0aElzTWluQ29udGVudDsgfQorICAgIGJvb2wgaGFzTWF4Q29udGVudE1pblRyYWNrQnJl
YWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoSXNNYXhDb250ZW50OyB9Cisg
ICAgYm9vbCBoYXNNaW5Db250ZW50TWluVHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbV9t
aW5UcmFja0JyZWFkdGhJc01pbkNvbnRlbnQ7IH0KKyAgICBib29sIGhhc01pbkNvbnRlbnRNaW5U
cmFja0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7IHJl
dHVybiBtX21pblRyYWNrQnJlYWR0aElzTWluQ29udGVudCAmJiBoYXNNaW5Pck1heENvbnRlbnRN
YXhUcmFja0JyZWFkdGgoKTsgfQorICAgIGJvb2wgaGFzTWF4Q29udGVudE1pblRyYWNrQnJlYWR0
aEFuZE1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBtX21pblRyYWNr
QnJlYWR0aElzTWF4Q29udGVudCAmJiBtX21heFRyYWNrQnJlYWR0aElzTWF4Q29udGVudDsgfQog
CiBwcml2YXRlOgogICAgIEdyaWRUcmFja1NpemVUeXBlIG1fdHlwZTsKICAgICBHcmlkTGVuZ3Ro
IG1fbWluVHJhY2tCcmVhZHRoOwogICAgIEdyaWRMZW5ndGggbV9tYXhUcmFja0JyZWFkdGg7Cisg
ICAgYm9vbCBtX21pblRyYWNrQnJlYWR0aElzTWF4Q29udGVudDsKKyAgICBib29sIG1fbWluVHJh
Y2tCcmVhZHRoSXNNaW5Db250ZW50OworICAgIGJvb2wgbV9tYXhUcmFja0JyZWFkdGhJc01heENv
bnRlbnQ7CisgICAgYm9vbCBtX21heFRyYWNrQnJlYWR0aElzTWluQ29udGVudDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMTFjNGM4ZjY4YzNjM2JiMmUwZWUwZTkzOWI2
OTZjZTM1YTZkZTk0Li4xYWZjOGNkNzJjNzkwNjExNmE2YzI3Y2VjYjMxZDVjZDIzZDRkN2E3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDEtMjMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NTUyBHcmlkIExheW91dF0gSW52YWxpZCBp
bml0aWFsaXphdGlvbiBvZiB0cmFjayBzaXplcyB3aXRoIG5vbiBzcGFubmluZyBncmlkIGl0ZW1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29sdXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1z
aXplZC1jb2x1bW5zLXJlc29sdXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUtaXRlbXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUt
aXRlbXMuaHRtbDogQWRkZWQuCisKIDIwMTUtMDItMDkgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBl
cmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgR2FyZGVu
aW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1j
b250ZW50LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4YTVmYTU5NDBhN2VmZDFiN2E1ZTU0ZWVjZDUyMzk4NjBh
OGVmNGRjLi41NjA3MjQ1NjQ5ZDdmMzVmM2MyOTI1NzI1MWUwODZhNGI5MGQ1NDRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQt
Y29sdW1ucy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdy
aWRNYXhDb250ZW50QW5kTWF4Q29udGVudEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYQogCiBDaGVj
ayB0aGF0IGl0ZW1zIGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNwYW4gdG8gY29tcHV0ZSB0
cmFjayBicmVhZHRocyBmb3JiaWRkaW5nIGV4dHJhIHNwYWNlIGRpc3RyaWJ1dGlvbi4KIFBBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRGaXhlZEFuZEF1dG9VbnNvcnRl
ZENvbnN0cmFpbmVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRl
LWNvbHVtbnMnKSBpcyAiMHB4IDQwcHgiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdy
aWRBdXRvQW5kQXV0b1Vuc29ydGVkQ29uc3RyYWluZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICI1cHggMzVweCIKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9BbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjEw
cHggMzBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRBbmRN
aW5Db250ZW50Rml4ZWRVbnNvcnRlZENvbnN0cmFpbmVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMHB4IDQwcHgiCiBQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhDb250ZW50QW5kTWluQ29udGVudFVuc29ydGVkQ29u
c3RyYWluZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29s
dW1ucycpIGlzICIwcHggNzBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEZp
eGVkTWluQ29udGVudEFuZE1heENvbnRlbnRVbnNvcnRlZENvbnN0cmFpbmVkLCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA3MHB4
IgpAQCAtMjcsNyArMjcsNyBAQCBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhD
b250ZW50QW5kTWF4Q29udGVudEZpeGVkVW5zb3J0ZWRDb25zdHJhaW5lZAogCiBDaGVjayB0aGF0
IGl0ZW1zIGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNwYW4gdG8gY29tcHV0ZSB0cmFjayBi
cmVhZHRocyBhbGxvd2luZyBleHRyYSBzcGFjZSBkaXN0cmlidXRpb24uCiBQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGdyaWRNaW5Db250ZW50Rml4ZWRBbmRBdXRvVW5zb3J0ZWQsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIxNXB4
IDkwcHgiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvQW5kQXV0b1Vuc29y
dGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMn
KSBpcyAiMzBweCA2MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Fu
ZEF1dG9VbnNvcnRlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zJykgaXMgIjYwcHggMzBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZE1pbkNvbnRlbnRBbmRNaW5Db250ZW50Rml4ZWRVbnNvcnRlZCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjBweCA0MHB4IgogUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWF4Q29udGVudEFuZE1pbkNvbnRlbnRVbnNv
cnRlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
JykgaXMgIjBweCA3MHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkRml4ZWRN
aW5Db250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA3MHB4IgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250ZW50LXNpemVkLWNvbHVt
bnMtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1jb250ZW50LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi5odG1sCmluZGV4IGFiZDY2NTlhMzg5
OWQzZGVlMDYxMzkzM2UzYmVmYjA3ZWU1NDNhNWQuLmFmZjQyOTU1Nzk5ZDYwYzhmOTY4MDRhZWI4
YTk2ZTE2MzRhYTUzNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1y
ZXNvbHV0aW9uLmh0bWwKQEAgLTMxNiw3ICszMTYsNyBAQCB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMo
ImdyaWRNYXhDb250ZW50QW5kTWF4Q29udGVudEZpeGVkIiwgIjU1cHggMzVweCIpOwogZGVidWco
IiIpOwogZGVidWcoIkNoZWNrIHRoYXQgaXRlbXMgYXJlIHByb2Nlc3NlZCBieSBhc2NlbmRpbmcg
c3BhbiB0byBjb21wdXRlIHRyYWNrIGJyZWFkdGhzIGZvcmJpZGRpbmcgZXh0cmEgc3BhY2UgZGlz
dHJpYnV0aW9uLiIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWluQ29udGVudEZpeGVk
QW5kQXV0b1Vuc29ydGVkQ29uc3RyYWluZWQiLCAiMHB4IDQwcHgiKTsKLXRlc3RHcmlkQ29sdW1u
c1ZhbHVlcygiZ3JpZEF1dG9BbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCIsICI1cHggMzVweCIp
OwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkQXV0b0FuZEF1dG9VbnNvcnRlZENvbnN0cmFp
bmVkIiwgIjEwcHggMzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWluQ29udGVu
dEFuZE1pbkNvbnRlbnRGaXhlZFVuc29ydGVkQ29uc3RyYWluZWQiLCAiMHB4IDQwcHgiKTsKIHRl
c3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZE1heENvbnRlbnRBbmRNaW5Db250ZW50VW5zb3J0ZWRD
b25zdHJhaW5lZCIsICIwcHggNzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkRml4
ZWRNaW5Db250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkQ29uc3RyYWluZWQiLCAiMTBweCA3MHB4
Iik7CkBAIC0zMzEsNyArMzMxLDcgQEAgdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29u
dGVudEFuZE1heENvbnRlbnRGaXhlZFVuc29ydGVkQ29uc3RyYWluZWQiLCAiNDAKIGRlYnVnKCIi
KTsKIGRlYnVnKCJDaGVjayB0aGF0IGl0ZW1zIGFyZSBwcm9jZXNzZWQgYnkgYXNjZW5kaW5nIHNw
YW4gdG8gY29tcHV0ZSB0cmFjayBicmVhZHRocyBhbGxvd2luZyBleHRyYSBzcGFjZSBkaXN0cmli
dXRpb24uIik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNaW5Db250ZW50Rml4ZWRBbmRB
dXRvVW5zb3J0ZWQiLCAiMTVweCA5MHB4Iik7Ci10ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRB
dXRvQW5kQXV0b1Vuc29ydGVkIiwgIjMwcHggNjBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVz
KCJncmlkQXV0b0FuZEF1dG9VbnNvcnRlZCIsICI2MHB4IDMwcHgiKTsKIHRlc3RHcmlkQ29sdW1u
c1ZhbHVlcygiZ3JpZE1pbkNvbnRlbnRBbmRNaW5Db250ZW50Rml4ZWRVbnNvcnRlZCIsICIwcHgg
NDBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVudEFuZE1pbkNvbnRl
bnRVbnNvcnRlZCIsICIwcHggNzBweCIpOwogdGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkRml4
ZWRNaW5Db250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkIiwgIjEwcHggNzBweCIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pbml0aWFsaXplLXNw
YW4tb25lLWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtaW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWZlMWM2OTZmZWUzYmJhOTc2ZjkxZDMxYjBiMDE4ZDIwOTNlNzExZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1z
cGFuLW9uZS1pdGVtcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IGNvbnRlbnQgc2l6ZWQgdHJhY2tzIGFyZSBpbml0aWFsaXplZCB1c2luZyBub24t
c3Bhbm5pbmcgZ3JpZCBpdGVtcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9BbmRBdXRvLCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMTBweCA5MHB4Igor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0FuZEF1dG9SZXZlcnNlZCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjkw
cHggMTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEZpeGVkTWluQ29udGVu
dEZpeGVkTWF4Q29udGVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zJykgaXMgIjUwcHggNTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudFR3b0VtcHR5Q2hpbGRyZW4sICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICI1
MHB4IDUwcHgiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRGaXhlZE1pbkNvbnRl
bnRGaXhlZE1heENvbnRlbnRGaXhlZFNpemVDaGlsZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjYwcHggNDBweCIKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1heENvbnRlbnRBbmRBdXRvLCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiODBweCAyMHB4IgorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWF4Q29udGVudEFuZEF1dG9SZXZlcnNlZCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMg
IjkwcHggMTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRB
bmRBdXRvLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVt
bnMnKSBpcyAiMTBweCA5MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWlu
Q29udGVudEFuZEF1dG9SZXZlcnNlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjIwcHggODBweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorWAorWFhYIFhYIFhYWAorWAorWFhYIFhYIFhY
WAorWFhYIFhYIFhYWAorWFhYIFhYIFhYWAorWFhYWFhYCitYWFggWFggWFhYCitYCitYWFggWFgg
WFhYCitYCitYWFggWFggWFhYCitYCitYWFggWFggWFhYCitYCitYWFggWFggWFhYCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bh
bi1vbmUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYjQwZDYwMjA5ZThi
ZmY2Yjg1Y2Y2NmY5OTQyNzhhMjE3ZTU4YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUtc3Bhbi1vbmUtaXRlbXMuaHRt
bApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPGxpbmsgaHJlZj0i
cmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiLz4KKzxzdHlsZT4KKyAuZ3JpZCB7
CisgICAgIGZvbnQ6IDEwcHgvMSBBaGVtOworIH0KKyAuZ3JpZEF1dG9BbmRBdXRvIHsKKyAgICAg
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKKyB9CisgLmdyaWRGaXhl
ZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnQgeworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zOiBtaW5tYXgoNTBweCwgLXdlYmtpdC1taW4tY29udGVudCkgbWlubWF4KDQwcHgsIC13
ZWJraXQtbWF4LWNvbnRlbnQpOworIH0KKyAuZ3JpZE1heENvbnRlbnRBbmRBdXRvIHsKKyAgICAg
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC13ZWJraXQtbWF4LWNvbnRlbnQgYXV0bzsK
KyB9CisgLmdyaWRNaW5Db250ZW50QW5kQXV0byB7CisgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zOiAtd2Via2l0LW1pbi1jb250ZW50IGF1dG87CisgfQorPC9zdHlsZT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9BbmRBdXRvIiBpZD0iZ3JpZEF1dG9BbmRB
dXRvIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4K
KworPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0FuZEF1dG8iIGlkPSJncmlkQXV0b0FuZEF1dG9S
ZXZlcnNlZCI+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlg8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwv
ZGl2PgorCis8ZGl2IGNsYXNzPSJncmlkIGdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRl
bnQiIGlkPSJncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50Ij4KKyAgICA8ZGl2IGNs
YXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dGaXJzdENvbHVtbiI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBjbGFzcz0iZ3JpZCBncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50IiBpZD0i
Z3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudFR3b0VtcHR5Q2hpbGRyZW4iPgorICAg
IDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIj48L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RSb3dTZWNvbmRDb2x1bW4iPjwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+WFhYIFhYIFhYWDwvZGl2
PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4
Q29udGVudCIgaWQ9ImdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnRGaXhlZFNpemVD
aGlsZCI+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiI+WFhYWFhYPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8
L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3JpZCBncmlkTWF4Q29udGVudEFuZEF1dG8iIGlkPSJncmlk
TWF4Q29udGVudEFuZEF1dG8iPgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW4i
Plg8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJncmlkIGdyaWRNYXhDb250ZW50QW5kQXV0byIg
aWQ9ImdyaWRNYXhDb250ZW50QW5kQXV0b1JldmVyc2VkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJz
dFJvd1NlY29uZENvbHVtbiI+WDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENv
bHVtbiI+WFhYIFhYIFhYWDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZE1p
bkNvbnRlbnRBbmRBdXRvIiBpZD0iZ3JpZE1pbkNvbnRlbnRBbmRBdXRvIj4KKyAgICA8ZGl2IGNs
YXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RS
b3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3Jp
ZCBncmlkTWluQ29udGVudEFuZEF1dG8iIGlkPSJncmlkTWluQ29udGVudEFuZEF1dG9SZXZlcnNl
ZCI+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iPlg8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2Pgor
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEdyaWRDb2x1bW5zVmFsdWVzKGlkLCBjb21wdXRlZENv
bHVtblZhbHVlKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1
dGVkU3R5bGUoIiArIGlkICsgIiwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zJykiLCBjb21wdXRlZENvbHVtblZhbHVlKTsKK30KKworZGVzY3JpcHRp
b24oJ1RoaXMgdGVzdCBjaGVja3MgdGhhdCBjb250ZW50IHNpemVkIHRyYWNrcyBhcmUgaW5pdGlh
bGl6ZWQgdXNpbmcgbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMuJyk7CisKK3Rlc3RHcmlkQ29sdW1u
c1ZhbHVlcygiZ3JpZEF1dG9BbmRBdXRvIiwgIjEwcHggOTBweCIpOwordGVzdEdyaWRDb2x1bW5z
VmFsdWVzKCJncmlkQXV0b0FuZEF1dG9SZXZlcnNlZCIsICI5MHB4IDEwcHgiKTsKK3Rlc3RHcmlk
Q29sdW1uc1ZhbHVlcygiZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudCIsICI1MHB4
IDUwcHgiKTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZEZpeGVkTWluQ29udGVudEZpeGVk
TWF4Q29udGVudFR3b0VtcHR5Q2hpbGRyZW4iLCAiNTBweCA1MHB4Iik7Cit0ZXN0R3JpZENvbHVt
bnNWYWx1ZXMoImdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnRGaXhlZFNpemVDaGls
ZCIsICI2MHB4IDQwcHgiKTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZE1heENvbnRlbnRB
bmRBdXRvIiwgIjgwcHggMjBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29u
dGVudEFuZEF1dG9SZXZlcnNlZCIsICI5MHB4IDEwcHgiKTsKK3Rlc3RHcmlkQ29sdW1uc1ZhbHVl
cygiZ3JpZE1pbkNvbnRlbnRBbmRBdXRvIiwgIjEwcHggOTBweCIpOwordGVzdEdyaWRDb2x1bW5z
VmFsdWVzKCJncmlkTWluQ29udGVudEFuZEF1dG9SZXZlcnNlZCIsICIyMHB4IDgwcHgiKTsKKzwv
c2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246318</attachid>
            <date>2015-02-10 03:26:48 -0800</date>
            <delta_ts>2015-02-12 06:16:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140763-20150210122649.patch</filename>
            <type>text/plain</type>
            <size>24358</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzlhOGU3NzZiOTVhMzNk
NmU2YmVhNzI4ODUzMjViMWM0NzI0MWIyNS4uZDMzZmQ4NmU2YTk3ZGM0NGUzZjNhNWZiZjAyNjdl
YTAyM2Y3MmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTAxLTIzICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludmFsaWQgaW5pdGlhbGl6YXRpb24gb2YgdHJhY2sgc2l6ZXMgd2l0aCBub24g
c3Bhbm5pbmcgZ3JpZCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQwNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29udGVudCBzaXplZCB0cmFja3Mgd2l0aCBub24tc3Bhbm5pbmcgZ3JpZCBp
dGVtcyB3ZXJlIG5vdAorICAgICAgICBwcm9wZXJseSBzaXplZCBiZWNhdXNlIHRoZSBncm93dGgg
bGltaXQgd2FzIHNvbWV0aW1lcyBpbmZpbml0eQorICAgICAgICAoLTEpIGFmdGVyIGNhbGxpbmcg
cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKCkgd2hlbgorICAgICAgICBp
dCBzaG91bGQgbm90LiBUaGlzIHBhdGNoIGFkZHMgYW4gc3BlY2lhbCBpbml0aWFsaXphdGlvbiBw
aGFzZSBmb3IKKyAgICAgICAgbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMgYXMgdGhlIG5ldyB0cmFj
ayBzaXppbmcgYWxnb3JpdGhtCisgICAgICAgIGRlc2NyaWJlcy4KKworICAgICAgICBHcmFudGVk
LCB0aGF0IHdhcyBoYW5kbGVkIGluIHRoZSBvbGQgYWxnb3JpdGhtIGluCisgICAgICAgIGRpc3Ry
aWJ1dGVTcGFjZVRvVHJhY2tzKCkgYXMgYSBzcGVjaWFsIGNhc2UuIFRoZSBwcm9ibGVtIGlzIHRo
YXQKKyAgICAgICAgaXQgcmVncmVzc2VkIGFmdGVyIHRoZSBvcHRpbWl6YXRpb24gYWRkZWQgaW4g
cjE3Mzg2OCBiZWNhdXNlIHRoYXQKKyAgICAgICAgbWV0aG9kIGlzIG5vIGxvbmdlciBjYWxsZWQg
d2hlbiB0aGUgc3BhY2UgdG8gZGlzdHJpYnV0ZSBpcyAwLgorCisgICAgICAgIFRoYXQncyB3aHkg
d2UgY291bGQgZml4IHRoaXMgYnkgYWxsb3dpbmcgY2FsbHMgdG8KKyAgICAgICAgZGlzdHJpYnV0
ZVNwYWNlVG9UcmFja3MoKSB3aXRoIHNwYWNlVG9EaXN0cmlidXRlPj0wIGJ1dCBieSBmaXhpbmcK
KyAgICAgICAgaXQgd2l0aCBhbiBleHBsaWNpdCBpbml0aWFsaXphdGlvbiBvdXIgaW1wbGVtZW50
YXRpb24gYmVjb21lcworICAgICAgICBjbG9zZXIgdG8gdGhlIG5ldyBhbGdvcml0aG0gYW5kIHRo
ZSBpbml0aWFsaXphdGlvbiBpcyBub3cgZXhwbGljaXQKKyAgICAgICAgaW4gdGhlIGNvZGUgaW5z
dGVhZCBvZiBhIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcKKyAgICAgICAgZGlzdHJpYnV0ZVNwYWNl
VG9UcmFja3MoKSB3aXRoIG5vIHNwYWNlIHRvIGJlIGRpc3RyaWJ1dGVkLiBJdCBhbHNvCisgICAg
ICAgIGJyaW5ncyBhIHNsaWdodCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBhcyB3ZSBzYXZlIHNv
cnRzIGFuZCBoYXNoCisgICAgICAgIGxvb2t1cHMuCisKKyAgICAgICAgSSBhbHNvIHRvb2sgdGhl
IGNoYW5nZSB0byBhZGQgY2FjaGluZyB0byBzZXZlcmFsIEdyaWRUcmFja1NpemUKKyAgICAgICAg
bWV0aG9kcyB0aGF0IHdlcmUgaG90IG9uIHRoZSBwcm9maWxlciAoZWFjaCBvbmUgYWNjb3VudGVk
IGZvciB+MSUKKyAgICAgICAgb2YgdGhlIHRvdGFsIHRpbWUsIG5vdyB0aGV5IGFjY291bnQgZm9y
IH4wLjMlIGVhY2gpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkSXRlbVdpdGhTcGFuOjpzcGFuKTog
TmV3IGhlbHBlciBtZXRob2QgZm9yIEFTU0VSVHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMpOgorICAgICAgICBF
eGNsdWRlIG5vbiBzcGFubmluZyBncmlkIGl0ZW1zIGZyb20gdGhlIGNhbGxzIHRvCisgICAgICAg
IHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdG
dW5jdGlvbnNGb3JOb25TcGFubmluZ0l0ZW1zKToKKyAgICAgICAgTmV3IG1ldGhvZCB0byByZXNv
bHZlIHRyYWNrIHNpemVzIG9ubHkgdXNpbmcgbm9uLXNwYW5uaW5nIGdyaWQKKyAgICAgICAgaXRl
bXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJh
Y2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyk6CisgICAgICAgIEVuc3VyZSB0aGF0IGl0IGlzbid0
IGNhbGxlZCBmb3Igbm9uLXNwYW5uaW5nIGdyaWQgaXRlbXMuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6R3JpZFRyYWNrU2l6ZSk6IENhY2hl
IHJldHVybiB2YWx1ZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpzZXRMZW5n
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6OnNldE1pbk1heCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6Y2FjaGVNaW5NYXhUcmFj
a0JyZWFkdGhUeXBlcyk6IE5ldyBtZXRob2QKKyAgICAgICAgdGhhdCBjYWNoZXMgdGhlIHJldHVy
biB2YWx1ZXMgZm9yIGhhc1hYWFRyYWNrQnJlYWR0aCgpIG1ldGhvZHMuCisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBV
c2UKKyAgICAgICAgdGhlIGNhY2hlZCByZXR1cm4gdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpH
cmlkVHJhY2tTaXplOjpoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Db250ZW50TWF4VHJhY2tCcmVhZHRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENv
bnRlbnRNYXhUcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFj
a1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGgpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01pbkNvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNaW5Pck1heENvbnRlbnRNYXhUcmFja0JyZWFkdGgpOgorICAgICAgICBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Omhhc01heENvbnRlbnRNaW5UcmFj
a0JyZWFkdGhBbmRNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKToKKyAgICAgICAgRGl0dG8uCisK
IDIwMTUtMDItMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPD0gcmVz
b2x2ZWRGaW5hbFBvc2l0aW9uIGluIFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3BhbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDViOTNmMzM2MjA2NzJkMzA2YTJh
ZTM4OWJhZTIxZWY4MTAxNTc4MTkuLjU2ZTc4YjdiYjQ2NzgzOTZkYmVlZWEyZGIyNWYxMjY1ZmJj
OTk4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTU4NCw2
ICs1ODQsOSBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJCb3gmIGdyaWRJdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV9ncmlkSXRlbTsgfQogICAgIEdyaWRDb29yZGluYXRlIGNvb3JkaW5hdGUoKSBjb25z
dCB7IHJldHVybiBtX2Nvb3JkaW5hdGU7IH0KKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgc2l6
ZV90IHNwYW4oKSBjb25zdCB7IHJldHVybiBtX3NwYW47IH0KKyNlbmRpZgogCiAgICAgYm9vbCBv
cGVyYXRvcjwoY29uc3QgR3JpZEl0ZW1XaXRoU3BhbiBvdGhlcikgY29uc3QKICAgICB7CkBAIC02
MTksMTIgKzYyMiwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFj
a1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3RpbwogICAgIEhhc2hTZXQ8UmVu
ZGVyQm94Kj4gaXRlbXNTZXQ7CiAgICAgZm9yIChhdXRvIHRyYWNrSW5kZXggOiBzaXppbmdEYXRh
LmNvbnRlbnRTaXplZFRyYWNrc0luZGV4KSB7CiAgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGRpcmVjdGlvbiwgdHJhY2tJbmRleCk7CisgICAgICAgIEdyaWRUcmFjayYgdHJh
Y2sgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Nb
dHJhY2tJbmRleF0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4XTsKIAogICAgICAg
ICB3aGlsZSAoUmVuZGVyQm94KiBncmlkSXRlbSA9IGl0ZXJhdG9yLm5leHRHcmlkSXRlbSgpKSB7
CiAgICAgICAgICAgICBpZiAoaXRlbXNTZXQuYWRkKGdyaWRJdGVtKS5pc05ld0VudHJ5KSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRH
cmlkQ29vcmRpbmF0ZSgqZ3JpZEl0ZW0pOwotICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBu
b3QgaW5jbHVkZSBpdGVtcyBzcGFubmluZyBtb3JlIHRoYW4gb25lIHRyYWNrIHRoYXQgc3BhbiB0
cmFja3Mgd2l0aCBmbGV4aWJsZSBzaXppbmcgZnVuY3Rpb25zLgotICAgICAgICAgICAgICAgIGlm
IChpbnRlZ2VyU3BhbkZvckRpcmVjdGlvbihjb29yZGluYXRlLCBkaXJlY3Rpb24pID09IDEgfHwg
IXNwYW5uaW5nSXRlbUNyb3NzZXNGbGV4aWJsZVNpemVkVHJhY2tzKGNvb3JkaW5hdGUsIGRpcmVj
dGlvbikpCisgICAgICAgICAgICAgICAgaWYgKGludGVnZXJTcGFuRm9yRGlyZWN0aW9uKGNvb3Jk
aW5hdGUsIGRpcmVjdGlvbikgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9yTm9uU3Bhbm5pbmdJdGVtcyhkaXJlY3Rpb24s
IGNvb3JkaW5hdGUsICpncmlkSXRlbSwgdHJhY2ssIHNpemluZ0RhdGEuY29sdW1uVHJhY2tzKTsK
KyAgICAgICAgICAgICAgICBlbHNlIGlmICghc3Bhbm5pbmdJdGVtQ3Jvc3Nlc0ZsZXhpYmxlU2l6
ZWRUcmFja3MoY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgc2l6
aW5nRGF0YS5pdGVtc1NvcnRlZEJ5SW5jcmVhc2luZ1NwYW4uYXBwZW5kKEdyaWRJdGVtV2l0aFNw
YW4oKmdyaWRJdGVtLCBjb29yZGluYXRlLCBkaXJlY3Rpb24pKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtNjQ1LDggKzY1MCwyNSBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250
ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3RpbwogICAg
IH0KIH0KIAordm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdG
dW5jdGlvbnNGb3JOb25TcGFubmluZ0l0ZW1zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlLCBSZW5kZXJCb3gmIGdyaWRJ
dGVtLCBHcmlkVHJhY2smIHRyYWNrLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKQor
eworICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb24gPSAoZGlyZWN0
aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uIDogY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgIEdy
aWRUcmFja1NpemUgdHJhY2tTaXplID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHRyYWNrUG9z
aXRpb24udG9JbnQoKSk7CisKKyAgICBpZiAodHJhY2tTaXplLmhhc01pbkNvbnRlbnRNaW5UcmFj
a0JyZWFkdGgoKSkKKyAgICAgICAgdHJhY2suc2V0QmFzZVNpemUoc3RkOjptYXgodHJhY2suYmFz
ZVNpemUoKSwgbWluQ29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJlY3Rpb24sIGNvbHVtblRy
YWNrcykpKTsKKyAgICBlbHNlIGlmICh0cmFja1NpemUuaGFzTWF4Q29udGVudE1pblRyYWNrQnJl
YWR0aCgpKQorICAgICAgICB0cmFjay5zZXRCYXNlU2l6ZShzdGQ6Om1heCh0cmFjay5iYXNlU2l6
ZSgpLCBtYXhDb250ZW50Rm9yQ2hpbGQoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgY29sdW1uVHJhY2tz
KSkpOworCisgICAgaWYgKHRyYWNrU2l6ZS5oYXNNaW5Db250ZW50TWF4VHJhY2tCcmVhZHRoKCkp
CisgICAgICAgIHRyYWNrLnNldEdyb3d0aExpbWl0KHN0ZDo6bWF4KHRyYWNrLmdyb3d0aExpbWl0
KCksIG1pbkNvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwgZGlyZWN0aW9uLCBjb2x1bW5UcmFja3Mp
KSk7CisgICAgZWxzZSBpZiAodHJhY2tTaXplLmhhc01heENvbnRlbnRNYXhUcmFja0JyZWFkdGgo
KSkKKyAgICAgICAgdHJhY2suc2V0R3Jvd3RoTGltaXQoc3RkOjptYXgodHJhY2suZ3Jvd3RoTGlt
aXQoKSwgbWF4Q29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJlY3Rpb24sIGNvbHVtblRyYWNr
cykpKTsKK30KKwogdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXpp
bmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBH
cmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSwgR3JpZEl0ZW1XaXRoU3BhbiYgZ3JpZEl0ZW1XaXRo
U3BhbiwgRmlsdGVyRnVuY3Rpb24gZmlsdGVyRnVuY3Rpb24sIFNpemluZ0Z1bmN0aW9uIHNpemlu
Z0Z1bmN0aW9uLCBBY2N1bXVsYXRvckdldHRlciB0cmFja0dldHRlciwgQWNjdW11bGF0b3JHcm93
RnVuY3Rpb24gdHJhY2tHcm93dGhGdW5jdGlvbiwgRmlsdGVyRnVuY3Rpb24gZ3Jvd0Fib3ZlTWF4
QnJlYWR0aEZpbHRlckZ1bmN0aW9uKQogeworICAgIEFTU0VSVChncmlkSXRlbVdpdGhTcGFuLnNw
YW4oKSA+IDEpOwogICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gZ3JpZEl0
ZW1XaXRoU3Bhbi5jb29yZGluYXRlKCk7CiAgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24g
aW5pdGlhbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRp
bmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDogY29vcmRpbmF0ZS5yb3dzLnJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uOwogICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGZp
bmFsVHJhY2tQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRl
LmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDogY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVk
RmluYWxQb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IGQ4
ODZjNzJjODhjN2Q0M2JiZTg2MzEwZWM1NTczYWY2MjFjMGM2ODcuLjExZTRmMTI2ZTBmMGM3ODdj
MTMyMDMzOTU4ZDY1MWVhYzk5MDZkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaApAQCAtOTEsNiArOTEsNyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgY29uc3QgTGF5b3V0
VW5pdCYgKEdyaWRUcmFjazo6KiBBY2N1bXVsYXRvckdldHRlcikoKSBjb25zdDsKICAgICB0eXBl
ZGVmIHZvaWQgKEdyaWRUcmFjazo6KiBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbikoTGF5b3V0VW5p
dCk7CiAgICAgdHlwZWRlZiBib29sIChHcmlkVHJhY2tTaXplOjoqIEZpbHRlckZ1bmN0aW9uKSgp
IGNvbnN0OworICAgIHZvaWQgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25z
Rm9yTm9uU3Bhbm5pbmdJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWRD
b29yZGluYXRlJiwgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrJiwgVmVjdG9yPEdyaWRU
cmFjaz4mIGNvbHVtblRyYWNrcyk7CiAgICAgdm9pZCByZXNvbHZlQ29udGVudEJhc2VkVHJhY2tT
aXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRTaXpp
bmdEYXRhJiwgR3JpZEl0ZW1XaXRoU3BhbiYsIEZpbHRlckZ1bmN0aW9uLCBTaXppbmdGdW5jdGlv
biwgQWNjdW11bGF0b3JHZXR0ZXIsIEFjY3VtdWxhdG9yR3Jvd0Z1bmN0aW9uLCBGaWx0ZXJGdW5j
dGlvbiBncm93QWJvdmVNYXhCcmVhZHRoRmlsdGVyRnVuY3Rpb24gPSBudWxscHRyKTsKICAgICB2
b2lkIGRpc3RyaWJ1dGVTcGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlkVHJhY2sqPiYsIFZlY3Rvcjx1
bnNpZ25lZD4qIGdyb3dBYm92ZU1heEJyZWFkdGhUcmFja0luZGV4ZXMsIEFjY3VtdWxhdG9yR2V0
dGVyLCBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbiwgR3JpZFNpemluZ0RhdGEmLCBMYXlvdXRVbml0
JiBhdmFpbGFibGVMb2dpY2FsU3BhY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRUcmFja1NpemUuaAppbmRleCAzZTMzNTI0ODBjNTcyY2JhMjFiYWZkMmQ3OGFk
MzQ0M2FjNTlhOGZkLi5kZGZmNmNjNjJmNzNjOTlkMDJjNjk4ZTNkZTZlNjYyNGJkNjJhYTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKQEAg
LTQ2LDE1ICs0NiwxNiBAQCBlbnVtIEdyaWRUcmFja1NpemVUeXBlIHsKIGNsYXNzIEdyaWRUcmFj
a1NpemUgewogcHVibGljOgogICAgIEdyaWRUcmFja1NpemUoTGVuZ3RoVHlwZSB0eXBlID0gVW5k
ZWZpbmVkKQotICAgICAgICA6IG1fdHlwZShMZW5ndGhUcmFja1NpemluZykKLSAgICAgICAgLCBt
X21pblRyYWNrQnJlYWR0aCh0eXBlKQotICAgICAgICAsIG1fbWF4VHJhY2tCcmVhZHRoKHR5cGUp
CiAgICAgeworICAgICAgICBzZXRMZW5ndGgoR3JpZExlbmd0aChMZW5ndGgodHlwZSkpKTsKICAg
ICB9CiAKICAgICBHcmlkVHJhY2tTaXplKGNvbnN0IEdyaWRMZW5ndGgmIG1pblRyYWNrQnJlYWR0
aCwgY29uc3QgR3JpZExlbmd0aCYgbWF4VHJhY2tCcmVhZHRoKQorICAgICAgICA6IG1fdHlwZShN
aW5NYXhUcmFja1NpemluZykKKyAgICAgICAgLCBtX21pblRyYWNrQnJlYWR0aChtaW5UcmFja0Jy
ZWFkdGgpCisgICAgICAgICwgbV9tYXhUcmFja0JyZWFkdGgobWF4VHJhY2tCcmVhZHRoKQogICAg
IHsKLSAgICAgICAgc2V0TWluTWF4KG1pblRyYWNrQnJlYWR0aCwgbWF4VHJhY2tCcmVhZHRoKTsK
KyAgICAgICAgY2FjaGVNaW5NYXhUcmFja0JyZWFkdGhUeXBlcygpOwogICAgIH0KIAogICAgIGNv
bnN0IEdyaWRMZW5ndGgmIGxlbmd0aCgpIGNvbnN0CkBAIC03MSw2ICs3Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgbV90eXBlID0gTGVuZ3RoVHJhY2tTaXppbmc7CiAgICAgICAgIG1fbWluVHJhY2tC
cmVhZHRoID0gbGVuZ3RoOwogICAgICAgICBtX21heFRyYWNrQnJlYWR0aCA9IGxlbmd0aDsKKyAg
ICAgICAgY2FjaGVNaW5NYXhUcmFja0JyZWFkdGhUeXBlcygpOwogICAgIH0KIAogICAgIGNvbnN0
IEdyaWRMZW5ndGgmIG1pblRyYWNrQnJlYWR0aCgpIGNvbnN0CkBAIC05OCw2ICsxMDAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fdHlwZSA9IE1pbk1heFRyYWNrU2l6aW5nOwogICAgICAgICBtX21p
blRyYWNrQnJlYWR0aCA9IG1pblRyYWNrQnJlYWR0aDsKICAgICAgICAgbV9tYXhUcmFja0JyZWFk
dGggPSBtYXhUcmFja0JyZWFkdGg7CisgICAgICAgIGNhY2hlTWluTWF4VHJhY2tCcmVhZHRoVHlw
ZXMoKTsKICAgICB9CiAKICAgICBHcmlkVHJhY2tTaXplVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CkBAIC0xMTEsMTggKzExNCwzMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX3R5cGUgPT0gb3RoZXIubV90eXBlICYmIG1fbWluVHJhY2tCcmVhZHRoID09IG90aGVyLm1f
bWluVHJhY2tCcmVhZHRoICYmIG1fbWF4VHJhY2tCcmVhZHRoID09IG90aGVyLm1fbWF4VHJhY2tC
cmVhZHRoOwogICAgIH0KIAotICAgIGJvb2wgaGFzTWluT3JNYXhDb250ZW50TWluVHJhY2tCcmVh
ZHRoKCkgY29uc3QgeyByZXR1cm4gbWluVHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgoKSAmJiAobWlu
VHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNaW5Db250ZW50KCkgfHwgbWluVHJhY2tCcmVhZHRo
KCkubGVuZ3RoKCkuaXNNYXhDb250ZW50KCkpOyB9Ci0gICAgYm9vbCBoYXNNYXhDb250ZW50TWlu
VHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbWluVHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgo
KSAmJiBtaW5UcmFja0JyZWFkdGgoKS5sZW5ndGgoKS5pc01heENvbnRlbnQoKTsgfQotICAgIGJv
b2wgaGFzTWluT3JNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbWF4
VHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgoKSAmJiAobWF4VHJhY2tCcmVhZHRoKCkubGVuZ3RoKCku
aXNNaW5Db250ZW50KCkgfHwgbWF4VHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNYXhDb250ZW50
KCkpOyB9Ci0gICAgYm9vbCBoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbWF4VHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgoKSAmJiBtYXhUcmFja0JyZWFkdGgoKS5s
ZW5ndGgoKS5pc01heENvbnRlbnQoKTsgfQotICAgIGJvb2wgaGFzTWluQ29udGVudE1pblRyYWNr
QnJlYWR0aEFuZE1pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1pblRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWluVHJhY2tCcmVhZHRoKCkubGVuZ3Ro
KCkuaXNNaW5Db250ZW50KCkgJiYgaGFzTWluT3JNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoKCk7
IH0KLSAgICBib29sIGhhc01heENvbnRlbnRNaW5UcmFja0JyZWFkdGhBbmRNYXhDb250ZW50TWF4
VHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gaGFzTWF4Q29udGVudE1pblRyYWNrQnJlYWR0
aCgpICYmIGhhc01heENvbnRlbnRNYXhUcmFja0JyZWFkdGgoKTsgfQorICAgIHZvaWQgY2FjaGVN
aW5NYXhUcmFja0JyZWFkdGhUeXBlcygpCisgICAgeworICAgICAgICBtX21pblRyYWNrQnJlYWR0
aElzTWluQ29udGVudCA9IG1pblRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWluVHJhY2tC
cmVhZHRoKCkubGVuZ3RoKCkuaXNNaW5Db250ZW50KCk7CisgICAgICAgIG1fbWluVHJhY2tCcmVh
ZHRoSXNNYXhDb250ZW50ID0gbWluVHJhY2tCcmVhZHRoKCkuaXNMZW5ndGgoKSAmJiBtaW5UcmFj
a0JyZWFkdGgoKS5sZW5ndGgoKS5pc01heENvbnRlbnQoKTsKKyAgICAgICAgbV9tYXhUcmFja0Jy
ZWFkdGhJc01heENvbnRlbnQgPSBtYXhUcmFja0JyZWFkdGgoKS5pc0xlbmd0aCgpICYmIG1heFRy
YWNrQnJlYWR0aCgpLmxlbmd0aCgpLmlzTWF4Q29udGVudCgpOworICAgICAgICBtX21heFRyYWNr
QnJlYWR0aElzTWluQ29udGVudCA9IG1heFRyYWNrQnJlYWR0aCgpLmlzTGVuZ3RoKCkgJiYgbWF4
VHJhY2tCcmVhZHRoKCkubGVuZ3RoKCkuaXNNaW5Db250ZW50KCk7CisgICAgfQogCisgICAgYm9v
bCBoYXNNaW5Pck1heENvbnRlbnRNaW5UcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBtX21p
blRyYWNrQnJlYWR0aElzTWF4Q29udGVudCB8fCBtX21pblRyYWNrQnJlYWR0aElzTWluQ29udGVu
dDsgfQorICAgIGJvb2wgaGFzTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWF4VHJhY2tCcmVhZHRoSXNNYXhDb250ZW50OyB9CisgICAgYm9vbCBoYXNNaW5Db250
ZW50TWF4VHJhY2tCcmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbV9tYXhUcmFja0JyZWFkdGhJc01p
bkNvbnRlbnQ7IH0KKyAgICBib29sIGhhc01pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4VHJhY2tCcmVhZHRoSXNNYXhDb250ZW50IHx8IG1fbWF4VHJh
Y2tCcmVhZHRoSXNNaW5Db250ZW50OyB9CisgICAgYm9vbCBoYXNNYXhDb250ZW50TWluVHJhY2tC
cmVhZHRoKCkgY29uc3QgeyByZXR1cm4gbV9taW5UcmFja0JyZWFkdGhJc01heENvbnRlbnQ7IH0K
KyAgICBib29sIGhhc01pbkNvbnRlbnRNaW5UcmFja0JyZWFkdGgoKSBjb25zdCB7IHJldHVybiBt
X21pblRyYWNrQnJlYWR0aElzTWluQ29udGVudDsgfQorICAgIGJvb2wgaGFzTWluQ29udGVudE1p
blRyYWNrQnJlYWR0aEFuZE1pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoSXNNaW5Db250ZW50ICYmIGhhc01pbk9yTWF4Q29udGVu
dE1heFRyYWNrQnJlYWR0aCgpOyB9CisgICAgYm9vbCBoYXNNYXhDb250ZW50TWluVHJhY2tCcmVh
ZHRoQW5kTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluVHJh
Y2tCcmVhZHRoSXNNYXhDb250ZW50ICYmIG1fbWF4VHJhY2tCcmVhZHRoSXNNYXhDb250ZW50OyB9
CiAKIHByaXZhdGU6CiAgICAgR3JpZFRyYWNrU2l6ZVR5cGUgbV90eXBlOwogICAgIEdyaWRMZW5n
dGggbV9taW5UcmFja0JyZWFkdGg7CiAgICAgR3JpZExlbmd0aCBtX21heFRyYWNrQnJlYWR0aDsK
KyAgICBib29sIG1fbWluVHJhY2tCcmVhZHRoSXNNYXhDb250ZW50OworICAgIGJvb2wgbV9taW5U
cmFja0JyZWFkdGhJc01pbkNvbnRlbnQ7CisgICAgYm9vbCBtX21heFRyYWNrQnJlYWR0aElzTWF4
Q29udGVudDsKKyAgICBib29sIG1fbWF4VHJhY2tCcmVhZHRoSXNNaW5Db250ZW50OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMxMWM0YzhmNjhjM2MzYmIyZTBlZTBlOTM5
YjY5NmNlMzVhNmRlOTQuLjFhZmM4Y2Q3MmM3OTA2MTE2YTZjMjdjZWNiMzFkNWNkMjNkNGQ3YTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0wMS0yMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBJbnZhbGlk
IGluaXRpYWxpemF0aW9uIG9mIHRyYWNrIHNpemVzIHdpdGggbm9uIHNwYW5uaW5nIGdyaWQgaXRl
bXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDc2
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250ZW50LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250ZW50
LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1zcGFuLW9u
ZS1pdGVtcy5odG1sOiBBZGRlZC4KKwogMjAxNS0wMi0wOSAgQ2FybG9zIEFsYmVydG8gTG9wZXog
UGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBHYXJk
ZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDhhNWZhNTk0MGE3ZWZkMWI3YTVlNTRlZWNkNTIzOTg2
MGE4ZWY0ZGMuLjU2MDcyNDU2NDlkN2YzNWYzYzI5MjU3MjUxZTA4NmE0YjkwZDU0NGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXpl
ZC1jb2x1bW5zLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5zLXJlc29sdXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw3IEBAIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZE1heENvbnRlbnRBbmRNYXhDb250ZW50Rml4ZWQsICcnKS5nZXRQcm9wZXJ0eVZhCiAKIENo
ZWNrIHRoYXQgaXRlbXMgYXJlIHByb2Nlc3NlZCBieSBhc2NlbmRpbmcgc3BhbiB0byBjb21wdXRl
IHRyYWNrIGJyZWFkdGhzIGZvcmJpZGRpbmcgZXh0cmEgc3BhY2UgZGlzdHJpYnV0aW9uLgogUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWluQ29udGVudEZpeGVkQW5kQXV0b1Vuc29y
dGVkQ29uc3RyYWluZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxh
dGUtY29sdW1ucycpIGlzICIwcHggNDBweCIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZEF1dG9BbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjVweCAzNXB4IgorUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0FuZEF1dG9VbnNvcnRlZENvbnN0cmFpbmVkLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAi
MTBweCAzMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWluQ29udGVudEFu
ZE1pbkNvbnRlbnRGaXhlZFVuc29ydGVkQ29uc3RyYWluZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIwcHggNDBweCIKIFBBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1heENvbnRlbnRBbmRNaW5Db250ZW50VW5zb3J0ZWRD
b25zdHJhaW5lZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zJykgaXMgIjBweCA3MHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlk
Rml4ZWRNaW5Db250ZW50QW5kTWF4Q29udGVudFVuc29ydGVkQ29uc3RyYWluZWQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIxMHB4IDcw
cHgiCkBAIC0yNyw3ICsyNyw3IEBAIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1h
eENvbnRlbnRBbmRNYXhDb250ZW50Rml4ZWRVbnNvcnRlZENvbnN0cmFpbmVkCiAKIENoZWNrIHRo
YXQgaXRlbXMgYXJlIHByb2Nlc3NlZCBieSBhc2NlbmRpbmcgc3BhbiB0byBjb21wdXRlIHRyYWNr
IGJyZWFkdGhzIGFsbG93aW5nIGV4dHJhIHNwYWNlIGRpc3RyaWJ1dGlvbi4KIFBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZ3JpZE1pbkNvbnRlbnRGaXhlZEFuZEF1dG9VbnNvcnRlZCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIjE1
cHggOTBweCIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9BbmRBdXRvVW5z
b3J0ZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1u
cycpIGlzICIzMHB4IDYwcHgiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRv
QW5kQXV0b1Vuc29ydGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBs
YXRlLWNvbHVtbnMnKSBpcyAiNjBweCAzMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShncmlkTWluQ29udGVudEFuZE1pbkNvbnRlbnRGaXhlZFVuc29ydGVkLCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMHB4IDQwcHgiCiBQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhDb250ZW50QW5kTWluQ29udGVudFVu
c29ydGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVt
bnMnKSBpcyAiMHB4IDcwcHgiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRGaXhl
ZE1pbkNvbnRlbnRBbmRNYXhDb250ZW50VW5zb3J0ZWQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIxMHB4IDcwcHgiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRlbnQtc2l6ZWQtY29s
dW1ucy1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWNvbnRlbnQtc2l6ZWQtY29sdW1ucy1yZXNvbHV0aW9uLmh0bWwKaW5kZXggYWJkNjY1OWEz
ODk5ZDNkZWUwNjEzOTMzZTNiZWZiMDdlZTU0M2E1ZC4uYWZmNDI5NTU3OTlkNjBjOGY5NjgwNGFl
YjhhOTZlMTYzNGFhNTM2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1jb250ZW50LXNpemVkLWNvbHVtbnMtcmVzb2x1dGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGVudC1zaXplZC1jb2x1bW5z
LXJlc29sdXRpb24uaHRtbApAQCAtMzE2LDcgKzMxNiw3IEBAIHRlc3RHcmlkQ29sdW1uc1ZhbHVl
cygiZ3JpZE1heENvbnRlbnRBbmRNYXhDb250ZW50Rml4ZWQiLCAiNTVweCAzNXB4Iik7CiBkZWJ1
ZygiIik7CiBkZWJ1ZygiQ2hlY2sgdGhhdCBpdGVtcyBhcmUgcHJvY2Vzc2VkIGJ5IGFzY2VuZGlu
ZyBzcGFuIHRvIGNvbXB1dGUgdHJhY2sgYnJlYWR0aHMgZm9yYmlkZGluZyBleHRyYSBzcGFjZSBk
aXN0cmlidXRpb24uIik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNaW5Db250ZW50Rml4
ZWRBbmRBdXRvVW5zb3J0ZWRDb25zdHJhaW5lZCIsICIwcHggNDBweCIpOwotdGVzdEdyaWRDb2x1
bW5zVmFsdWVzKCJncmlkQXV0b0FuZEF1dG9VbnNvcnRlZENvbnN0cmFpbmVkIiwgIjVweCAzNXB4
Iik7Cit0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRBdXRvQW5kQXV0b1Vuc29ydGVkQ29uc3Ry
YWluZWQiLCAiMTBweCAzMHB4Iik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNaW5Db250
ZW50QW5kTWluQ29udGVudEZpeGVkVW5zb3J0ZWRDb25zdHJhaW5lZCIsICIwcHggNDBweCIpOwog
dGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVudEFuZE1pbkNvbnRlbnRVbnNvcnRl
ZENvbnN0cmFpbmVkIiwgIjBweCA3MHB4Iik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRG
aXhlZE1pbkNvbnRlbnRBbmRNYXhDb250ZW50VW5zb3J0ZWRDb25zdHJhaW5lZCIsICIxMHB4IDcw
cHgiKTsKQEAgLTMzMSw3ICszMzEsNyBAQCB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNYXhD
b250ZW50QW5kTWF4Q29udGVudEZpeGVkVW5zb3J0ZWRDb25zdHJhaW5lZCIsICI0MAogZGVidWco
IiIpOwogZGVidWcoIkNoZWNrIHRoYXQgaXRlbXMgYXJlIHByb2Nlc3NlZCBieSBhc2NlbmRpbmcg
c3BhbiB0byBjb21wdXRlIHRyYWNrIGJyZWFkdGhzIGFsbG93aW5nIGV4dHJhIHNwYWNlIGRpc3Ry
aWJ1dGlvbi4iKTsKIHRlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3JpZE1pbkNvbnRlbnRGaXhlZEFu
ZEF1dG9VbnNvcnRlZCIsICIxNXB4IDkwcHgiKTsKLXRlc3RHcmlkQ29sdW1uc1ZhbHVlcygiZ3Jp
ZEF1dG9BbmRBdXRvVW5zb3J0ZWQiLCAiMzBweCA2MHB4Iik7Cit0ZXN0R3JpZENvbHVtbnNWYWx1
ZXMoImdyaWRBdXRvQW5kQXV0b1Vuc29ydGVkIiwgIjYwcHggMzBweCIpOwogdGVzdEdyaWRDb2x1
bW5zVmFsdWVzKCJncmlkTWluQ29udGVudEFuZE1pbkNvbnRlbnRGaXhlZFVuc29ydGVkIiwgIjBw
eCA0MHB4Iik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNYXhDb250ZW50QW5kTWluQ29u
dGVudFVuc29ydGVkIiwgIjBweCA3MHB4Iik7CiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRG
aXhlZE1pbkNvbnRlbnRBbmRNYXhDb250ZW50VW5zb3J0ZWQiLCAiMTBweCA3MHB4Iik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWluaXRpYWxpemUt
c3Bhbi1vbmUtaXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1pbml0aWFsaXplLXNwYW4tb25lLWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZmUxYzY5NmZlZTNiYmE5NzZmOTFkMzFiMGIwMThkMjA5M2U3MTFlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pbml0aWFsaXpl
LXNwYW4tb25lLWl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitUaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgY29udGVudCBzaXplZCB0cmFja3MgYXJlIGluaXRpYWxpemVkIHVzaW5nIG5v
bi1zcGFubmluZyBncmlkIGl0ZW1zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0FuZEF1dG8sICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICIxMHB4IDkwcHgi
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvQW5kQXV0b1JldmVyc2VkLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAi
OTBweCAxMHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkRml4ZWRNaW5Db250
ZW50Rml4ZWRNYXhDb250ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRl
bXBsYXRlLWNvbHVtbnMnKSBpcyAiNTBweCA1MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50VHdvRW1wdHlDaGlsZHJlbiwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMg
IjUwcHggNTBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEZpeGVkTWluQ29u
dGVudEZpeGVkTWF4Q29udGVudEZpeGVkU2l6ZUNoaWxkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiNjBweCA0MHB4IgorUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWF4Q29udGVudEFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICI4MHB4IDIwcHgiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRNYXhDb250ZW50QW5kQXV0b1JldmVyc2Vk
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBp
cyAiOTBweCAxMHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkTWluQ29udGVu
dEFuZEF1dG8sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29s
dW1ucycpIGlzICIxMHB4IDkwcHgiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRN
aW5Db250ZW50QW5kQXV0b1JldmVyc2VkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiMjBweCA4MHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitYCitYWFggWFggWFhYCitYCitYWFggWFgg
WFhYCitYWFggWFggWFhYCitYWFggWFggWFhYCitYWFhYWFgKK1hYWCBYWCBYWFgKK1gKK1hYWCBY
WCBYWFgKK1gKK1hYWCBYWCBYWFgKK1gKK1hYWCBYWCBYWFgKK1gKK1hYWCBYWCBYWFgKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1z
cGFuLW9uZS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pbml0aWFsaXplLXNwYW4tb25lLWl0ZW1zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJiNDBkNjAyMDll
OGJmZjZiODVjZjY2Zjk5NDI3OGEyMTdlNThiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaW5pdGlhbGl6ZS1zcGFuLW9uZS1pdGVtcy5o
dG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8bGluayBocmVm
PSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCIvPgorPHN0eWxlPgorIC5ncmlk
IHsKKyAgICAgZm9udDogMTBweC8xIEFoZW07CisgfQorIC5ncmlkQXV0b0FuZEF1dG8geworICAg
ICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOworIH0KKyAuZ3JpZEZp
eGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudCB7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IG1pbm1heCg1MHB4LCAtd2Via2l0LW1pbi1jb250ZW50KSBtaW5tYXgoNDBweCwg
LXdlYmtpdC1tYXgtY29udGVudCk7CisgfQorIC5ncmlkTWF4Q29udGVudEFuZEF1dG8geworICAg
ICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogLXdlYmtpdC1tYXgtY29udGVudCBhdXRv
OworIH0KKyAuZ3JpZE1pbkNvbnRlbnRBbmRBdXRvIHsKKyAgICAgLXdlYmtpdC1ncmlkLXRlbXBs
YXRlLWNvbHVtbnM6IC13ZWJraXQtbWluLWNvbnRlbnQgYXV0bzsKKyB9Cis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0FuZEF1dG8iIGlkPSJncmlkQXV0b0Fu
ZEF1dG8iPgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW4iPlg8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2
PgorCis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvQW5kQXV0byIgaWQ9ImdyaWRBdXRvQW5kQXV0
b1JldmVyc2VkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd1NlY29uZENvbHVtbiI+WDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+WFhYIFhYIFhYWDwvZGl2Pgor
PC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29u
dGVudCIgaWQ9ImdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnQiPgorICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29sdW1uIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRGaXhlZE1pbkNvbnRlbnRGaXhlZE1heENvbnRlbnQiIGlk
PSJncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50VHdvRW1wdHlDaGlsZHJlbiI+Cisg
ICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93Rmlyc3RDb2x1bW4iPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd1NlY29uZENvbHVtbiI+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dCb3RoQ29sdW1uIj5YWFggWFggWFhYPC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3JpZCBncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRN
YXhDb250ZW50IiBpZD0iZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudEZpeGVkU2l6
ZUNoaWxkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIj5YWFhYWFg8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4K
KzwvZGl2PgorCis8ZGl2IGNsYXNzPSJncmlkIGdyaWRNYXhDb250ZW50QW5kQXV0byIgaWQ9Imdy
aWRNYXhDb250ZW50QW5kQXV0byI+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVt
biI+WDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+WFhYIFhYIFhY
WDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZE1heENvbnRlbnRBbmRBdXRv
IiBpZD0iZ3JpZE1heENvbnRlbnRBbmRBdXRvUmV2ZXJzZWQiPgorICAgIDxkaXYgY2xhc3M9ImZp
cnN0Um93U2Vjb25kQ29sdW1uIj5YPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dCb3Ro
Q29sdW1uIj5YWFggWFggWFhYPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3JpZCBncmlk
TWluQ29udGVudEFuZEF1dG8iIGlkPSJncmlkTWluQ29udGVudEFuZEF1dG8iPgorICAgIDxkaXYg
Y2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW4iPlg8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJz
dFJvd0JvdGhDb2x1bW4iPlhYWCBYWCBYWFg8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJn
cmlkIGdyaWRNaW5Db250ZW50QW5kQXV0byIgaWQ9ImdyaWRNaW5Db250ZW50QW5kQXV0b1JldmVy
c2VkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd1NlY29uZENvbHVtbiI+WDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImZpcnN0Um93Qm90aENvbHVtbiI+WFhYIFhYIFhYWDwvZGl2PgorPC9kaXY+
CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoaWQsIGNvbXB1dGVk
Q29sdW1uVmFsdWUpCit7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZSgiICsgaWQgKyAiLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXRlbXBsYXRlLWNvbHVtbnMnKSIsIGNvbXB1dGVkQ29sdW1uVmFsdWUpOworfQorCitkZXNjcmlw
dGlvbignVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGNvbnRlbnQgc2l6ZWQgdHJhY2tzIGFyZSBpbml0
aWFsaXplZCB1c2luZyBub24tc3Bhbm5pbmcgZ3JpZCBpdGVtcy4nKTsKKwordGVzdEdyaWRDb2x1
bW5zVmFsdWVzKCJncmlkQXV0b0FuZEF1dG8iLCAiMTBweCA5MHB4Iik7Cit0ZXN0R3JpZENvbHVt
bnNWYWx1ZXMoImdyaWRBdXRvQW5kQXV0b1JldmVyc2VkIiwgIjkwcHggMTBweCIpOwordGVzdEdy
aWRDb2x1bW5zVmFsdWVzKCJncmlkRml4ZWRNaW5Db250ZW50Rml4ZWRNYXhDb250ZW50IiwgIjUw
cHggNTBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkRml4ZWRNaW5Db250ZW50Rml4
ZWRNYXhDb250ZW50VHdvRW1wdHlDaGlsZHJlbiIsICI1MHB4IDUwcHgiKTsKK3Rlc3RHcmlkQ29s
dW1uc1ZhbHVlcygiZ3JpZEZpeGVkTWluQ29udGVudEZpeGVkTWF4Q29udGVudEZpeGVkU2l6ZUNo
aWxkIiwgIjYwcHggNDBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFsdWVzKCJncmlkTWF4Q29udGVu
dEFuZEF1dG8iLCAiODBweCAyMHB4Iik7Cit0ZXN0R3JpZENvbHVtbnNWYWx1ZXMoImdyaWRNYXhD
b250ZW50QW5kQXV0b1JldmVyc2VkIiwgIjkwcHggMTBweCIpOwordGVzdEdyaWRDb2x1bW5zVmFs
dWVzKCJncmlkTWluQ29udGVudEFuZEF1dG8iLCAiMTBweCA5MHB4Iik7Cit0ZXN0R3JpZENvbHVt
bnNWYWx1ZXMoImdyaWRNaW5Db250ZW50QW5kQXV0b1JldmVyc2VkIiwgIjIwcHggODBweCIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>
<flag name="review"
          id="271256"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>