<?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>154576</bug_id>
          
          <creation_ts>2016-02-23 01:01:39 -0800</creation_ts>
          <short_desc>&lt;g&gt; wrapping &lt;symbol&gt; causes display of hidden &lt;symbol&gt;</short_desc>
          <delta_ts>2019-05-02 16:18:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>iOS 9.2</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Craig Mandsager">craigmandsager</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>ashwinkumar9944</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167330</commentid>
    <comment_count>0</comment_count>
      <attachid>271994</attachid>
    <who name="Craig Mandsager">craigmandsager</who>
    <bug_when>2016-02-23 01:01:39 -0800</bug_when>
    <thetext>Created attachment 271994
&lt;g&gt; wrapping &lt;symbol&gt; causes display of hidden &lt;symbol&gt;

A &lt;symbol&gt; should never be directly displayed. Yet &lt;g&gt; wrapping &lt;symbol&gt; causes display of hidden &lt;symbol&gt; if the &lt;g&gt; is referenced by another &lt;use&gt;. In the test file, the expected image should be two red rectangles aligned on a diagonal (displays correctly in Firefox), the black (unfilled) rectangle should never be visible (is visible in Safari).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167944</commentid>
    <comment_count>1</comment_count>
      <attachid>272154</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-24 15:12:10 -0800</bug_when>
    <thetext>Created attachment 272154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167945</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-02-24 15:14:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/24825162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168512</commentid>
    <comment_count>3</comment_count>
      <attachid>272154</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-02-26 08:47:14 -0800</bug_when>
    <thetext>Comment on attachment 272154
Patch

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

&gt; Source/WebCore/svg/SVGUseElement.cpp:313
&gt; +static inline void removeChildrenFromParent(const Vector&lt;Element*&gt;&amp; children)

This function has a bit of a peculiar name. It removes children from their multiple parents, plural, not from one parent, singular, and also it does the other work that is specific to removing disallowed elements from a cloned subtree. I’d like to see a different name.

&gt; Source/WebCore/svg/SVGUseElement.cpp:349
&gt; +    for (auto &amp;&amp;descendant : descendantsOfType&lt;SVGSymbolElement&gt;(subtree))

This should be:

    for (auto&amp; descendant : descendantsOfType&lt;SVGSymbolElement&gt;(subtree))

No reason to write &quot;auto&amp;&amp;&quot; and certainly no reason to format it as &quot;auto &amp;&amp;descendant&quot;.

&gt; Source/WebCore/svg/SVGUseElement.cpp:427
&gt; +    // The SVGSymbolElement is allowed only in the subtree if it&apos;s the cloned subtree root

It’s inelegant to have a long comment about one line of this function, but not about any of the others. We should find a way to explain this that is not so focused on this most recent change alone. Maybe it’s as simple as putting this comment on the removeSymbolElementsFromSubtree function rather than in the middle of the flow of this function.

Here’s my attempt at rewriting the comment:

    // Symbol elements inside the subtree should not be cloned for two reasons: 1) They are invisible and
    // don&apos;t need to be cloned to get correct rendering. 2) expandSymbolElementsInShadowTree will turn them
    // into use elements, which is correct for symbol elements directly referenced by use elements, but
    // incorrect for ones that just happen to be in a subtree.

&gt; Source/WebCore/svg/SVGUseElement.cpp:428
&gt; +    // element. Any descendant SVGSymbolElement should be removed from the sub tree because

&quot;subtree&quot; is one word, not two</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168535</commentid>
    <comment_count>4</comment_count>
      <attachid>272330</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-26 09:48:02 -0800</bug_when>
    <thetext>Created attachment 272330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168585</commentid>
    <comment_count>5</comment_count>
      <attachid>272343</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-26 11:06:17 -0800</bug_when>
    <thetext>Created attachment 272343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168591</commentid>
    <comment_count>6</comment_count>
      <attachid>272154</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-26 11:12:00 -0800</bug_when>
    <thetext>Comment on attachment 272154
Patch

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

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:313
&gt;&gt; +static inline void removeChildrenFromParent(const Vector&lt;Element*&gt;&amp; children)
&gt; 
&gt; This function has a bit of a peculiar name. It removes children from their multiple parents, plural, not from one parent, singular, and also it does the other work that is specific to removing disallowed elements from a cloned subtree. I’d like to see a different name.

Done. I renamed it to disassociateAndRemoveClones() because it takes a vector of clones, dissociates their decedents from their originals and then delete the clones form their parents.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:349
&gt;&gt; +    for (auto &amp;&amp;descendant : descendantsOfType&lt;SVGSymbolElement&gt;(subtree))
&gt; 
&gt; This should be:
&gt; 
&gt;     for (auto&amp; descendant : descendantsOfType&lt;SVGSymbolElement&gt;(subtree))
&gt; 
&gt; No reason to write &quot;auto&amp;&amp;&quot; and certainly no reason to format it as &quot;auto &amp;&amp;descendant&quot;.

Done.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:427
&gt;&gt; +    // The SVGSymbolElement is allowed only in the subtree if it&apos;s the cloned subtree root
&gt; 
&gt; It’s inelegant to have a long comment about one line of this function, but not about any of the others. We should find a way to explain this that is not so focused on this most recent change alone. Maybe it’s as simple as putting this comment on the removeSymbolElementsFromSubtree function rather than in the middle of the flow of this function.
&gt; 
&gt; Here’s my attempt at rewriting the comment:
&gt; 
&gt;     // Symbol elements inside the subtree should not be cloned for two reasons: 1) They are invisible and
&gt;     // don&apos;t need to be cloned to get correct rendering. 2) expandSymbolElementsInShadowTree will turn them
&gt;     // into use elements, which is correct for symbol elements directly referenced by use elements, but
&gt;     // incorrect for ones that just happen to be in a subtree.

Done. Comment was removed from here and added to removeSymbolElementsFromSubtree(). I only changed &quot;2) expandSymbolElementsInShadowTree will turn them into use elements&quot; to &quot;2) expandSymbolElementsInShadowTree will turn them into &lt;svg&gt; elements&quot;.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:428
&gt;&gt; +    // element. Any descendant SVGSymbolElement should be removed from the sub tree because
&gt; 
&gt; &quot;subtree&quot; is one word, not two

Done. The whole comment was moved and changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168592</commentid>
    <comment_count>7</comment_count>
      <attachid>272347</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-26 11:13:16 -0800</bug_when>
    <thetext>Created attachment 272347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168638</commentid>
    <comment_count>8</comment_count>
      <attachid>272347</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 12:58:26 -0800</bug_when>
    <thetext>Comment on attachment 272347
Patch

Clearing flags on attachment: 272347

Committed r197194: &lt;http://trac.webkit.org/changeset/197194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168639</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 12:58:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>271994</attachid>
            <date>2016-02-23 01:01:39 -0800</date>
            <delta_ts>2016-02-23 01:01:39 -0800</delta_ts>
            <desc>&lt;g&gt; wrapping &lt;symbol&gt; causes display of hidden &lt;symbol&gt;</desc>
            <filename>g_wrap_symbol_bug.svg</filename>
            <type>image/svg+xml</type>
            <size>532</size>
            <attacher name="Craig Mandsager">craigmandsager</attacher>
            
              <data encoding="base64">PHN2ZyB2ZXJzaW9uPSIxLjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1s
bnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPGcgaWQ9InJlY3Rncm91
cCI+DQo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iYmxhY2tfcmVjdCI+IA0KCTwhLS0g
dGhpcyByZWN0YW5nbGUgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgLS0+DQoJPHJlY3Qgd2lkdGg9
IjMwIiBoZWlnaHQ9IjIwIiB4PSI1IiB5PSI1IiBpZD0ic2hhcGVfOWFvYV8xIj48L3JlY3Q+DQo8
L3N5bWJvbD4gDQo8IS0tIGNoYW5nZSBibGFjayByZWN0IHRvIHJlZCAtLT4NCjx1c2UgeGxpbms6
aHJlZj0iI2JsYWNrX3JlY3QiIGZpbGw9IiM5MDAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwLDMw
KSwgcm90YXRlKDQ1KSI+PC91c2U+DQo8L2c+IA0KPCEtLSByZS11c2Ugd2hvbGUgZ3JvdXAgLS0+
DQo8dXNlIHhsaW5rOmhyZWY9IiNyZWN0Z3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLDUw
KSI+PC91c2U+DQo8L3N2Zz4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272154</attachid>
            <date>2016-02-24 15:12:10 -0800</date>
            <delta_ts>2016-02-26 09:48:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154576-20160224151152.patch</filename>
            <type>text/plain</type>
            <size>16629</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTAyLTI0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgPGc+IHdyYXBw
aW5nIDxzeW1ib2w+IGNhdXNlcyBkaXNwbGF5IG9mIGhpZGRlbiA8c3ltYm9sPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGUgU1ZHU3lt
Ym9sRWxlbWVudCBpcyBhbGxvd2VkIGluIHRoZSBzaGFkb3cgdHJlZSBvZiBhbiBTVkdVc2VFbGVt
ZW50CisgICAgICAgIG9ubHkgaWYgaXQgc3VidHJlZSByb290IGVsZW1lbnQuIEFueSBkZXNjZW5k
YW50IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkCisgICAgICAgIGJlIHJlbW92ZWQgZnJvbSB0aGUg
c3VidHJlZSBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGNvbnRhaW5lci4gSWYgdGhlIGNsb25lZAor
ICAgICAgICBzdWJ0cmVlIGluY2x1ZGVzIGFuIFNWR1VzZUVsZW1lbnQgd2hpY2ggcmVmZXJlbmNl
cyBhbiBTVkdTeW1ib2xFbGVtZW50LAorICAgICAgICB0aGUgc2FtZSBydWxlIHdpbGwgYmUgYXBw
bGllZCB0byB0aGUgZGVzY2VuZGFudCBTVkdVc2VFbGVtZW50LiBUaGUgZ29hbAorICAgICAgICBp
cyB0byByZW1vdmUgYWxsIHRoZSBkZXNjZW5kYW50IFNWR1N5bWJvbEVsZW1lbnRzIGZyb20gdGhl
IGNsb25lZCB0YXJnZXQKKyAgICAgICAgYmVjYXVzZSB0aGVzZSBTVkdTeW1ib2xFbGVtZW50cyB3
aWxsIGJlIGV4cGFuZGVkIHRvIFNWR1NWR0VsZW1lbnRzIGFuZAorICAgICAgICBoZW5jZSBiZWNv
bWUgdmlzaWJsZS4KKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlbW92ZUNoaWxkcmVuRnJvbVBhcmVudCk6IEEgaGVscGVyIGZ1bmN0aW9uIHdo
aWNoIHJlbW92ZXMKKyAgICAgICAgY2hpbGRyZW4gU1ZHRWxlbWVudHMgZnJvbSB0aGVpciBwYXJl
bnQuIEl0cyBjb2RlIGlzIHJlZmFjdG9yZWQgZnJvbQorICAgICAgICByZW1vdmVEaXNhbGxvd2Vk
RWxlbWVudHNGcm9tU3VidHJlZSgpLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92
ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKTogVXNlIHJlbW92ZUNoaWxkcmVuRnJvbVBh
cmVudCgpLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVN5bWJvbEVsZW1lbnRz
RnJvbVN1YnRyZWUpOiBSZW1vdmVzIGFsbCB0aGUgZGVzY2VuZGFudAorICAgICAgICBTVkdTeW1i
b2xFbGVtZW50cyBmcm9tIHRoZSBjbG9uZWQgc3VidHJlZS4gSXQgZG9lcyBub3QgcmVtb3ZlIHRo
ZSByb290CisgICAgICAgIGVsZW1lbnQgaXRzZWxmIGlmIGl0IGlzIGFuIFNWR1N5bWJvbEVsZW1l
bnQgYmVjYXVzZSB0aGlzIG9uZSB3aWxsIGJlCisgICAgICAgIGV4cGFuZGVkIHRvIGFuIFNWR1NW
R0VsZW1lbnQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQuCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQpOiBDYWxsIHJlbW92ZVN5bWJv
bEVsZW1lbnRzRnJvbVN1YnRyZWUoKQorICAgICAgICB0byByZW1vdmUgdGhlIGRlc2NlbmRhbnQg
U1ZHU3ltYm9sRWxlbWVudHMgZnJvbSB0aGUgY2xvbmVkIHN1YnRyZWUgYmVmb3JlCisgICAgICAg
IGFwcGVuZGluZyBpdCB0byB0aGUgY29udGFpbmVyIHNoYWRvdyByb290LgorCiAyMDE2LTAyLTI0
ICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVyaWNzc29uLmNvbT4KIAogICAgICAg
ICBXZWJSVEM6IEFkZCBNZWRpYUVuZHBvaW50IGludGVyZmFjZSAoV2ViUlRDIGJhY2tlbmQgYWJz
dHJhY3Rpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxOTcwMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxMCw2ICszMTAsMTUgQEAgUmVuZGVyRWxlbWVudCogU1ZHVXNlRWxlbWVu
dDo6cmVuZGVyZXJDbAogICAgIHJldHVybiB0YXJnZXRDbG9uZS0+cmVuZGVyZXIoKTsKIH0KIAor
c3RhdGljIGlubGluZSB2b2lkIHJlbW92ZUNoaWxkcmVuRnJvbVBhcmVudChjb25zdCBWZWN0b3I8
RWxlbWVudCo+JiBjaGlsZHJlbikKK3sKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4p
IHsKKyAgICAgICAgZm9yIChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZH
RWxlbWVudD4oKmNoaWxkKSkKKyAgICAgICAgICAgIGRlc2NlbmRhbnQuc2V0Q29ycmVzcG9uZGlu
Z0VsZW1lbnQobnVsbHB0cik7CisgICAgICAgIGNoaWxkLT5wYXJlbnROb2RlKCktPnJlbW92ZUNo
aWxkKCpjaGlsZCk7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxl
bWVudHNGcm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogewogICAgIC8vIFJlbW92ZSBk
aXNhbGxvd2VkIGVsZW1lbnRzIGFmdGVyIHRoZSBmYWN0IHJhdGhlciB0aGFuIG5vdCBjbG9uaW5n
IHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlLgpAQCAtMzMwLDExICszMzksMTYgQEAgc3RhdGljIHZv
aWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbQogICAgICAgICB9CiAgICAgICAgICsraXQ7
CiAgICAgfQotICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgewot
ICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVt
ZW50PigqZWxlbWVudCkpCi0gICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJlc3BvbmRpbmdF
bGVtZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNo
aWxkKCplbGVtZW50KTsKLSAgICB9CisKKyAgICByZW1vdmVDaGlsZHJlbkZyb21QYXJlbnQoZGlz
YWxsb3dlZEVsZW1lbnRzKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlU3ltYm9sRWxlbWVudHNG
cm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQoreworICAgIFZlY3RvcjxFbGVtZW50Kj4g
aGlkZGVuRWxlbWVudHM7CisgICAgZm9yIChhdXRvICYmZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRz
T2ZUeXBlPFNWR1N5bWJvbEVsZW1lbnQ+KHN1YnRyZWUpKQorICAgICAgICBoaWRkZW5FbGVtZW50
cy5hcHBlbmQoJmRlc2NlbmRhbnQpOworICAgIHJlbW92ZUNoaWxkcmVuRnJvbVBhcmVudChoaWRk
ZW5FbGVtZW50cyk7CiB9CiAKIHN0YXRpYyB2b2lkIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5h
bHMoU1ZHRWxlbWVudCYgY2xvbmUsIFNWR0VsZW1lbnQmIG9yaWdpbmFsKQpAQCAtNDA5LDYgKzQy
MywxNCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmNsb25lVGFyZ2V0KENvbnRhaW5lCiAgICAgUmVm
PFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCY+KHRhcmdl
dC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkuZ2V0KCkpOwogICAgIGFzc29j
aWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0Q2xvbmUuZ2V0KCksIHRhcmdldCk7CiAgICAg
cmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xvbmUuZ2V0KCkpOwor
CisgICAgLy8gVGhlIFNWR1N5bWJvbEVsZW1lbnQgaXMgYWxsb3dlZCBvbmx5IGluIHRoZSBzdWJ0
cmVlIGlmIGl0J3MgdGhlIGNsb25lZCBzdWJ0cmVlIHJvb3QKKyAgICAvLyBlbGVtZW50LiBBbnkg
ZGVzY2VuZGFudCBTVkdTeW1ib2xFbGVtZW50IHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIHN1
YiB0cmVlIGJlY2F1c2UKKyAgICAvLyBpdCBpcyBhIGhpZGRlbiBjb250YWluZXIuIElmIHRoZSBj
bG9uZWQgc3VidHJlZSBpbmNsdWRlcyBhbiBTVkdVc2VFbGVtZW50IHdoaWNoIHJlZmVyZW5jZXMK
KyAgICAvLyBhbiBTVkdTeW1ib2xFbGVtZW50LCB0aGUgc2FtZSBydWxlIHdpbGwgYmUgYXBwbGll
ZCB0byB0aGUgZGVzY2VuZGFudCBTVkdVc2VFbGVtZW50LgorICAgIC8vIFRoZSBnb2FsIGlzIHRv
IHJlbW92ZSBhbGwgdGhlIGRlc2NlbmRhbnQgU1ZHU3ltYm9sRWxlbWVudHMgZnJvbSB0aGUgY2xv
bmVkIHRhcmdldCBiZWNhdXNlCisgICAgLy8gdGhlc2UgU1ZHU3ltYm9sRWxlbWVudHMgd2lsbCBi
ZSBleHBhbmRlZCB0byBTVkdTVkdFbGVtZW50cyBhbmQgaGVuY2UgYmVjb21lIHZpc2libGUuCisg
ICAgcmVtb3ZlU3ltYm9sRWxlbWVudHNGcm9tU3VidHJlZSh0YXJnZXRDbG9uZS5nZXQoKSk7CiAg
ICAgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUodGFyZ2V0Q2xvbmUuZ2V0KCkp
OwogICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChXVEZNb3ZlKHRhcmdldENsb25lKSk7CiB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxOTcwMzkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxNi0wMi0yNCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIDxnPiB3cmFwcGluZyA8c3ltYm9s
PiBjYXVzZXMgZGlzcGxheSBvZiBoaWRkZW4gPHN5bWJvbD4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGUgPHN5bWJvbD4gZWxlbWVudCBp
cyBub3QgZGlzcGxheWVkIHdoZW4gaXQncyB3cmFwcGVkIGluIGEgPGc+CisgICAgICAgIGVsZW1l
bnQgYW5kIHRoaXMgPGc+IGVsZW1lbnQgaXMgcmVmZXJlbmNlZCBieSBhIDx1c2U+IGVsZW1lbnQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5n
LXN5bWJvbC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2
Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNv
bnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJv
bC1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLW9uLWctY29u
dGFpbmluZy1zeW1ib2wuc3ZnOgorICAgICAgICBUaGUgb3JpZ2luYWwgdGVzdCB3YXMgd3Jvbmcu
IEl0IGhhZCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb246CisgICAgICAgICAgICAiPGcgaWQ9J3N5
bWJvbCc+PHN5bWJvbD4uLi48L3N5bWJvbD48L2c+IgorICAgICAgICBBbmQgaXQgd2FzIGV4cGVj
dGluZyB0byBoYXZlIHRoZSBzeW1ib2wgZHJhd24gaWYgdGhlIDxnPiBlbGVtZW50IHdhcworICAg
ICAgICByZWZlcmVuY2VkIGxpa2UgdGhhdAorICAgICAgICAgICAgIjx1c2UgeGxpbms6aHJlZj0n
I3N5bWJvbCcvPiIKKyAgICAgICAgRmlyZUZveCBkb2VzIG5vdCByZW5kZXIgYW55dGhpbmcgZm9y
IHRoaXMgPHVzZT4gZWxlbWVudCB3aGljaCBpcyBjb3JyZWN0LgorICAgICAgICBXaXRoIHRoaXMg
cGF0Y2gsIHRoaXMgdGVzdCBmYWlsZWQgc28gaXQgaGFkIHRvIGJlIG1vZGlmaWVkIHRvIHRlc3Qg
dGhlIHJpZ2h0CisgICAgICAgIGJlaGF2aW9yLiBBbHNvIGl0IGlzIG5vdyBjb252ZXJ0ZWQgdG8g
YSByZWYgdGVzdC4KKwogMjAxNi0wMi0yNCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgQ1NQOiBFbmFibGUgcGx1Z2luLXR5cGVzIGRpcmVjdGl2ZSBieSBkZWZh
dWx0CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxOTcwMzkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3Zn
L2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUpIHNpemUgNDg4eDgyCi0gICAgUmVu
ZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5k
ZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hl
aWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDUsNDUpIHNpemUg
MTMweDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEyNS4wMCwy
NS4wMCl9XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4
MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUu
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0gYXQgKDEwLDQ1KSBzaXplIDI0NHgxOSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICBSZW5k
ZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDR4MTgKLSAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
Mzggd2lkdGggMjQ0LjAwOiAiVGhlIHR3byBvYmplY3RzIHNob3VsZCBsb29rIGlkZW50aWNhbC4i
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUuMDAsMjUuMDApfV0KLSAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAg
ICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMw
Ci0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBd
IFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTk3MDM5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9zdmcv
Y3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwxNyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMCw0NSkgc2l6ZSA0ODl4ODIKLSAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclNWR0hp
ZGRlbkNvbnRhaW5lciB7c3ltYm9sfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgIFJlbmRl
clNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMTI1eDI1IFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVp
Z2h0PTEwLjAwXQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0NSw0NSkgc2l6ZSAx
MzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTI1LjAwLDI1
LjAwKX1dCi0gICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgz
MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAu
MDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMTAsNDUpIHNpemUgMjQ1eDE5IGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgIFJlbmRl
clNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0NXgxOAotICAgICAgICBjaHVu
ayAxIHRleHQgcnVuIDEgYXQgKDEwLjAwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAz
OCB3aWR0aCAyNDQuNDA6ICJUaGUgdHdvIG9iamVjdHMgc2hvdWxkIGxvb2sgaWRlbnRpY2FsLiIK
LSAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNS4wMCwyNS4wMCl9XQotICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwCi0gICAgICAg
IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAK
LSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0g
W3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1vbi1n
LWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk3MDM5KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1i
b2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICswLDAgQEAKLWxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAot
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDIw
LDQ1KSBzaXplIDQ4OXg4MwotICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQg
KDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6
ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgwLDAp
IHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAx
MjV4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRo
PTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBb
eT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgxMjUuMDAsMjUuMDApfV0KLSAgICAgIFJlbmRlclNWR1JlY3Qge3Jl
Y3R9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAw
XQotICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCw0NSkgc2l6ZSAyNDV4MTkgY29udGFp
bnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjQ1eDE5Ci0gICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsNjAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM4IHdpZHRoIDI0NC40MDogIlRoZSB0d28gb2JqZWN0
cyBzaG91bGQgbG9vayBpZGVudGljYWwuIgotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBh
dCAoNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0
NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2
Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9
IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWlu
aW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxOTcwMzkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vc3ZnL2N1c3Rv
bS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAg
UmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUpIHNpemUgNDg4eDgzCi0gICAgUmVuZGVyU1ZH
SGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0x
MC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMw
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEyNS4wMCwyNS4wMCl9
XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KDEwLDQ1KSBzaXplIDI0NHgxOSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDR4MTkKLSAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMzggd2lk
dGggMjQ0LjAwOiAiVGhlIHR3byBvYmplY3RzIHNob3VsZCBsb29rIGlkZW50aWNhbC4iCi0gICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUuMDAsMjUuMDApfV0KLSAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAgICBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwCi0gICAg
ICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0
aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNl
LW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQuc3Zn
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWlu
aW5nLXN5bWJvbC1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACis8
c3ZnIHZlcnNpb249IjEuMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxu
czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CisgICAgPHN5bWJvbCBpZD0i
cmVjdC1zeW1ib2wiPiAKKyAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgPC9zeW1ib2w+IAorICAgIDx1c2UgeGxpbms6
aHJlZj0iI3JlY3Qtc3ltYm9sIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMCwxMCkiLz4KKyAgICA8
dXNlIHhsaW5rOmhyZWY9IiNyZWN0LXN5bWJvbCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLDEw
KSIvPgorICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlY3Qtc3ltYm9sIiB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgyMzAsMTApIi8+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmct
c3ltYm9sLnN2ZwkocmV2aXNpb24gMTk3MDM5KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91
c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEs
MTAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KLTwhRE9DVFlQRSBz
dmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dy
YXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Ci08c3ZnIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIiB2aWV3Qm94PSIwIDAgNDAwIDMwMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs
aW5rIj4KLTxkZWZzPgotICAgIDxnIGlkPSJzeW1ib2wiPgotICAgICAgICA8c3ltYm9sIG92ZXJm
bG93PSJ2aXNpYmxlIj4KLSAgICAgICAgICAgIDxyZWN0IHN0cm9rZS13aWR0aD0iNXB4IiBmaWxs
PSJyZWQiIHN0cm9rZT0ibmF2eSIgd2lkdGg9IjYwIiBoZWlnaHQ9IjEwIi8+Cis8c3ZnIHZlcnNp
b249IjEuMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CisgICAgPHVzZSB4bGluazpocmVmPSIjcmVj
dC1ncm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwLCAwKSI+PC91c2U+CisgICAgPGcgaWQ9
InJlY3QtZ3JvdXAiPgorICAgICAgICA8c3ltYm9sIGlkPSJyZWN0LXN5bWJvbCI+IAorICAgICAg
ICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImN1
cnJlbnRDb2xvciIvPgogICAgICAgICA8L3N5bWJvbD4KKyAgICAgICAgPHVzZSB4bGluazpocmVm
PSIjcmVjdC1zeW1ib2wiIGNvbG9yPSJncmVlbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMTAp
Ii8+CiAgICAgPC9nPgotPC9kZWZzPgotCi08ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjUgMjUp
Ij4KLSAgICA8cmVjdCBzdHJva2Utd2lkdGg9IjVweCIgZmlsbD0icmVkIiBzdHJva2U9Im5hdnki
IHdpZHRoPSI2MCIgaGVpZ2h0PSIxMCIvPgotPC9nPgotCi08dGV4dCB4PSIxMCIgeT0iNjAiPlRo
ZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwuPC90ZXh0PgotPHVzZSB4PSIyNSIg
eT0iMjUiIHhsaW5rOmhyZWY9IiNzeW1ib2wiLz4KKyAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWN0
LWdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjAsIDApIi8+CiA8L3N2Zz4KLQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1z
eW1ib2wtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2Vk
IGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJv
bC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272330</attachid>
            <date>2016-02-26 09:48:02 -0800</date>
            <delta_ts>2016-02-26 11:06:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154576-20160226094745.patch</filename>
            <type>text/plain</type>
            <size>16308</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE2LTAyLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgPGc+IHdyYXBw
aW5nIDxzeW1ib2w+IGNhdXNlcyBkaXNwbGF5IG9mIGhpZGRlbiA8c3ltYm9sPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisgICAgICAgIAorICAgICAgICBUaGUgU1ZHU3ltYm9s
RWxlbWVudCBpcyBhbGxvd2VkIGluIHRoZSBzaGFkb3cgdHJlZSBvZiBhbiBTVkdVc2VFbGVtZW50
CisgICAgICAgIG9ubHkgaWYgaXQgc3VidHJlZSByb290IGVsZW1lbnQuIEFueSBkZXNjZW5kYW50
IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkCisgICAgICAgIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3Vi
dHJlZSBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGNvbnRhaW5lci4gSWYgdGhlIGNsb25lZAorICAg
ICAgICBzdWJ0cmVlIGluY2x1ZGVzIGFuIFNWR1VzZUVsZW1lbnQgd2hpY2ggcmVmZXJlbmNlcyBh
biBTVkdTeW1ib2xFbGVtZW50LAorICAgICAgICB0aGUgc2FtZSBydWxlIHdpbGwgYmUgYXBwbGll
ZCB0byB0aGUgZGVzY2VuZGFudCBTVkdVc2VFbGVtZW50LiBUaGUgZ29hbAorICAgICAgICBpcyB0
byByZW1vdmUgYWxsIHRoZSBkZXNjZW5kYW50IFNWR1N5bWJvbEVsZW1lbnRzIGZyb20gdGhlIGNs
b25lZCB0YXJnZXQKKyAgICAgICAgYmVjYXVzZSB0aGVzZSBTVkdTeW1ib2xFbGVtZW50cyB3aWxs
IGJlIGV4cGFuZGVkIHRvIFNWR1NWR0VsZW1lbnRzIGFuZAorICAgICAgICBoZW5jZSBiZWNvbWUg
dmlzaWJsZS4KKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlbW92ZUNsb25lc0Zyb21TdWJ0cmVlKTogQSBoZWxwZXIgZnVuY3Rpb24gd2hpY2gg
cmVtb3ZlcworICAgICAgICBjbG9uZWQgU1ZHRWxlbWVudHMgZnJvbSB0aGVpciBwYXJlbnRzLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21T
dWJ0cmVlKTogVXNlIHJlbW92ZUNsb25lc0Zyb21TdWJ0cmVlKCkuCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlU3ltYm9sRWxlbWVudHNGcm9tU3VidHJlZSk6IFJlbW92ZXMgYWxs
IHRoZSBkZXNjZW5kYW50CisgICAgICAgIFNWR1N5bWJvbEVsZW1lbnRzIGZyb20gdGhlIGNsb25l
ZCBzdWJ0cmVlLiBJdCBkb2VzIG5vdCByZW1vdmUgdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudCBp
dHNlbGYgaWYgaXQgaXMgYW4gU1ZHU3ltYm9sRWxlbWVudCBiZWNhdXNlIHRoaXMgb25lIHdpbGwg
YmUKKyAgICAgICAgZXhwYW5kZWQgdG8gYW4gU1ZHU1ZHRWxlbWVudCB3aGljaCBpcyBleGFjdGx5
IHdoYXQgd2UgbmVlZC4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50
OjpjbG9uZVRhcmdldCk6IENhbGwgcmVtb3ZlU3ltYm9sRWxlbWVudHNGcm9tU3VidHJlZSgpCisg
ICAgICAgIHRvIHJlbW92ZSB0aGUgZGVzY2VuZGFudCBTVkdTeW1ib2xFbGVtZW50cyBmcm9tIHRo
ZSBjbG9uZWQgc3VidHJlZSBiZWZvcmUKKyAgICAgICAgYXBwZW5kaW5nIGl0IHRvIHRoZSBjb250
YWluZXIgc2hhZG93IHJvb3QuCisKIDIwMTYtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA6OnNsb3R0ZWQgcHNldWRvIGVsZW1lbnQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE5NzE2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEwLDYgKzMxMCwxNSBAQCBSZW5kZXJFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpyZW5kZXJl
ckNsCiAgICAgcmV0dXJuIHRhcmdldENsb25lLT5yZW5kZXJlcigpOwogfQogCitzdGF0aWMgaW5s
aW5lIHZvaWQgcmVtb3ZlQ2xvbmVzRnJvbVN1YnRyZWUoY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYg
Y2xvbmVzKQoreworICAgIGZvciAoYXV0byYgY2xvbmUgOiBjbG9uZXMpIHsKKyAgICAgICAgZm9y
IChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZHRWxlbWVudD4oKmNsb25l
KSkKKyAgICAgICAgICAgIGRlc2NlbmRhbnQuc2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQobnVsbHB0
cik7CisgICAgICAgIGNsb25lLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCpjbG9uZSk7Cisg
ICAgfQorfQorCiBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJl
ZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogewogICAgIC8vIFJlbW92ZSBkaXNhbGxvd2VkIGVsZW1l
bnRzIGFmdGVyIHRoZSBmYWN0IHJhdGhlciB0aGFuIG5vdCBjbG9uaW5nIHRoZW0gaW4gdGhlIGZp
cnN0IHBsYWNlLgpAQCAtMzMwLDExICszMzksMjAgQEAgc3RhdGljIHZvaWQgcmVtb3ZlRGlzYWxs
b3dlZEVsZW1lbnRzRnJvbQogICAgICAgICB9CiAgICAgICAgICsraXQ7CiAgICAgfQotICAgIGZv
ciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgewotICAgICAgICBmb3IgKGF1
dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkp
Ci0gICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIp
OwotICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVtZW50KTsK
LSAgICB9CisKKyAgICByZW1vdmVDbG9uZXNGcm9tU3VidHJlZShkaXNhbGxvd2VkRWxlbWVudHMp
OworfQorCitzdGF0aWMgdm9pZCByZW1vdmVTeW1ib2xFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0Vs
ZW1lbnQmIHN1YnRyZWUpCit7CisgICAgLy8gU3ltYm9sIGVsZW1lbnRzIGluc2lkZSB0aGUgc3Vi
dHJlZSBzaG91bGQgbm90IGJlIGNsb25lZCBmb3IgdHdvIHJlYXNvbnM6IDEpIFRoZXkgYXJlIGlu
dmlzaWJsZSBhbmQKKyAgICAvLyBkb24ndCBuZWVkIHRvIGJlIGNsb25lZCB0byBnZXQgY29ycmVj
dCByZW5kZXJpbmcuIDIpIGV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlIHdpbGwgdHVy
biB0aGVtCisgICAgLy8gaW50byBTVkdTVkdFbGVtZW50IGVsZW1lbnRzLCB3aGljaCBpcyBjb3Jy
ZWN0IGZvciBzeW1ib2wgZWxlbWVudHMgZGlyZWN0bHkgcmVmZXJlbmNlZCBieSB1c2UgZWxlbWVu
dHMsCisgICAgLy8gYnV0IGluY29ycmVjdCBmb3Igb25lcyB0aGF0IGp1c3QgaGFwcGVuIHRvIGJl
IGluIGEgc3VidHJlZS4KKyAgICBWZWN0b3I8RWxlbWVudCo+IHN5bWJvbEVsZW1lbnRzOworICAg
IGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR1N5bWJvbEVsZW1l
bnQ+KHN1YnRyZWUpKQorICAgICAgICBzeW1ib2xFbGVtZW50cy5hcHBlbmQoJmRlc2NlbmRhbnQp
OworICAgIHJlbW92ZUNsb25lc0Zyb21TdWJ0cmVlKHN5bWJvbEVsZW1lbnRzKTsKIH0KIAogc3Rh
dGljIHZvaWQgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiBjbG9uZSwg
U1ZHRWxlbWVudCYgb3JpZ2luYWwpCkBAIC00MDksNiArNDI3LDcgQEAgdm9pZCBTVkdVc2VFbGVt
ZW50OjpjbG9uZVRhcmdldChDb250YWluZQogICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9u
ZSA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxk
cmVuKGRvY3VtZW50KCkpLmdldCgpKTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxz
KHRhcmdldENsb25lLmdldCgpLCB0YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50
c0Zyb21TdWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsKKyAgICByZW1vdmVTeW1ib2xFbGVtZW50
c0Zyb21TdWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1
dGVzVG9UYXJnZXRDbG9uZSh0YXJnZXRDbG9uZS5nZXQoKSk7CiAgICAgY29udGFpbmVyLmFwcGVu
ZENoaWxkKFdURk1vdmUodGFyZ2V0Q2xvbmUpKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzE2
NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMw
IEBACisyMDE2LTAyLTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgPGc+IHdyYXBwaW5nIDxzeW1ib2w+IGNhdXNlcyBkaXNwbGF5IG9mIGhp
ZGRlbiA8c3ltYm9sPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgRW5zdXJlIHRoZSA8c3ltYm9sPiBlbGVtZW50IGlzIG5vdCBkaXNwbGF5ZWQgd2hlbiBpdCdz
IHdyYXBwZWQgaW4gYSA8Zz4KKyAgICAgICAgZWxlbWVudCBhbmQgdGhpcyA8Zz4gZWxlbWVudCBp
cyByZWZlcmVuY2VkIGJ5IGEgPHVzZT4gZWxlbWVudC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnBuZzogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWlu
aW5nLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9z
LXNpbXVsYXRvci9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Utb24t
Zy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9zdmcvY3VzdG9tL3VzZS1vbi1n
LWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnN2ZzogQWRkZWQuCisg
ICAgICAgICogc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC5zdmc6CisgICAg
ICAgIFRoZSBvcmlnaW5hbCB0ZXN0IHdhcyB3cm9uZy4gSXQgaGFkIHRoZSBmb2xsb3dpbmcgZGVm
aW5pdGlvbjoKKyAgICAgICAgICAgICI8ZyBpZD0nc3ltYm9sJz48c3ltYm9sPi4uLjwvc3ltYm9s
PjwvZz4iCisgICAgICAgIEFuZCBpdCB3YXMgZXhwZWN0aW5nIHRvIGhhdmUgdGhlIHN5bWJvbCBk
cmF3biBpZiB0aGUgPGc+IGVsZW1lbnQgd2FzCisgICAgICAgIHJlZmVyZW5jZWQgbGlrZSB0aGF0
CisgICAgICAgICAgICAiPHVzZSB4bGluazpocmVmPScjc3ltYm9sJy8+IgorICAgICAgICBGaXJl
Rm94IGRvZXMgbm90IHJlbmRlciBhbnl0aGluZyBmb3IgdGhpcyA8dXNlPiBlbGVtZW50IHdoaWNo
IGlzIGNvcnJlY3QuCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgdGhpcyB0ZXN0IGZhaWxlZCBz
byBpdCBoYWQgdG8gYmUgbW9kaWZpZWQgdG8gdGVzdCB0aGUgcmlnaHQKKyAgICAgICAgYmVoYXZp
b3IuIEFsc28gaXQgaXMgbm93IGNvbnZlcnRlZCB0byBhIHJlZiB0ZXN0LgorCiAyMDE2LTAyLTI2
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQg
OjpzbG90dGVkIHBzZXVkbyBlbGVtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
c3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29u
dGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTcxNjYpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUp
IHNpemUgNDg4eDgyCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4
MAotICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6
ZSAweDAKLSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgy
NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAu
MDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDEyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0g
YXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0g
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDQ1KSBzaXplIDI0NHgxOSBjb250YWlucyAx
IGNodW5rKHMpCi0gICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyNDR4MTgKLSAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3Rh
cnRPZmZzZXQgMCBlbmRPZmZzZXQgMzggd2lkdGggMjQ0LjAwOiAiVGhlIHR3byBvYmplY3RzIHNo
b3VsZCBsb29rIGlkZW50aWNhbC4iCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0
NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oMjUuMDAsMjUuMDApfV0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1
KSBzaXplIDEzMHgzMAotICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBh
dCAoNDUsNDUpIHNpemUgMTMweDMwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQg
KDQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBd
IFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3lt
Ym9sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk3MTY2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMCw0NSkg
c2l6ZSA0ODl4ODIKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDAp
IHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgw
Ci0gICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7c3ltYm9sfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMTI1eDI1
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4w
MF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMTI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBh
dCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
ODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYw
MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAg
ICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNDUpIHNpemUgMjQ1eDE5IGNvbnRhaW5zIDEg
Y2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDI0NXgxOAotICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDEwLjAwLDYwLjAwKSBzdGFy
dE9mZnNldCAwIGVuZE9mZnNldCAzOCB3aWR0aCAyNDQuNDA6ICJUaGUgdHdvIG9iamVjdHMgc2hv
dWxkIGxvb2sgaWRlbnRpY2FsLiIKLSAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDQ1
LDQ1KSBzaXplIDEzMHgzMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDUsNDUp
IHNpemUgMTMweDMwCi0gICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0
ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAo
NDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0g
W3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBd
fV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1z
eW1ib2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTk3MTY2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNl
LW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE3ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDIwLDQ1KSBzaXplIDQ4OXg4MwotICAgIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7
cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMjV4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBd
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMjUuMDAsMjUuMDApfV0KLSAg
ICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRo
PTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCw0
NSkgc2l6ZSAyNDV4MTkgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQ1eDE5Ci0gICAgICAgIGNodW5rIDEgdGV4dCBy
dW4gMSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM4IHdpZHRoIDI0
NC40MDogIlRoZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwuIgotICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAgICAg
IFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAu
MDBdIFtoZWlnaHQ9MTAuMDBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vc3ZnL2N1
c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTcxNjYpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUpIHNpemUg
NDg4eDgzCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAg
ICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAK
LSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgyNSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3
aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgyNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI0
NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBb
c3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19
XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDQ1KSBzaXplIDI0NHgxOSBjb250YWlucyAxIGNodW5r
KHMpCi0gICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDR4
MTkKLSAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMzggd2lkdGggMjQ0LjAwOiAiVGhlIHR3byBvYmplY3RzIHNob3VsZCBs
b29rIGlkZW50aWNhbC4iCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0NSw0NSkg
c2l6ZSAxMzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUu
MDAsMjUuMDApfV0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1KSBzaXpl
IDEzMHgzMAotICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDUs
NDUpIHNpemUgMTMweDMwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDQ1LDQ1
KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJv
a2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4IEBACis8c3ZnIHZlcnNpb249IjEuMiIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu
ayI+CisgICAgPHN5bWJvbCBpZD0icmVjdC1zeW1ib2wiPiAKKyAgICAgICAgPHJlY3QgeD0iMCIg
eT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgPC9zeW1i
b2w+IAorICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlY3Qtc3ltYm9sIiB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgxMCwxMCkiLz4KKyAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWN0LXN5bWJvbCIgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMTIwLDEwKSIvPgorICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlY3Qtc3lt
Ym9sIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzAsMTApIi8+Cis8L3N2Zz4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNv
bnRhaW5pbmctc3ltYm9sLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLnN2ZwkocmV2aXNpb24gMTk3MTY2KQorKysgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTkgKzEsMTAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9u
ZT0ibm8iPz4KLTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Ci08c3Zn
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiB2aWV3Qm94PSIwIDAgNDAwIDMwMCIgdmVyc2lvbj0i
MS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KLTxkZWZzPgotICAgIDxnIGlkPSJzeW1ib2wiPgot
ICAgICAgICA8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIj4KLSAgICAgICAgICAgIDxyZWN0IHN0
cm9rZS13aWR0aD0iNXB4IiBmaWxsPSJyZWQiIHN0cm9rZT0ibmF2eSIgd2lkdGg9IjYwIiBoZWln
aHQ9IjEwIi8+Cis8c3ZnIHZlcnNpb249IjEuMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CisgICAg
PHVzZSB4bGluazpocmVmPSIjcmVjdC1ncm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwLCAw
KSI+PC91c2U+CisgICAgPGcgaWQ9InJlY3QtZ3JvdXAiPgorICAgICAgICA8c3ltYm9sIGlkPSJy
ZWN0LXN5bWJvbCI+IAorICAgICAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIg
aGVpZ2h0PSIxMDAiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogICAgICAgICA8L3N5bWJvbD4KKyAg
ICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVjdC1zeW1ib2wiIGNvbG9yPSJncmVlbiIgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMTAsMTApIi8+CiAgICAgPC9nPgotPC9kZWZzPgotCi08ZyB0cmFuc2Zv
cm09InRyYW5zbGF0ZSgxMjUgMjUpIj4KLSAgICA8cmVjdCBzdHJva2Utd2lkdGg9IjVweCIgZmls
bD0icmVkIiBzdHJva2U9Im5hdnkiIHdpZHRoPSI2MCIgaGVpZ2h0PSIxMCIvPgotPC9nPgotCi08
dGV4dCB4PSIxMCIgeT0iNjAiPlRoZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwu
PC90ZXh0PgotPHVzZSB4PSIyNSIgeT0iMjUiIHhsaW5rOmhyZWY9IiNzeW1ib2wiLz4KKyAgICA8
dXNlIHhsaW5rOmhyZWY9IiNyZWN0LWdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjAsIDAp
Ii8+CiA8L3N2Zz4KLQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20v
dXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90
IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBp
bWFnZS9wbmcKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Ut
b24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlz
cGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdl
L3BuZwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272343</attachid>
            <date>2016-02-26 11:06:17 -0800</date>
            <delta_ts>2016-02-26 11:13:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154576-20160226110600.patch</filename>
            <type>text/plain</type>
            <size>16399</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTAyLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgPGc+IHdyYXBw
aW5nIDxzeW1ib2w+IGNhdXNlcyBkaXNwbGF5IG9mIGhpZGRlbiA8c3ltYm9sPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisgICAgICAgIAorICAgICAgICBUaGUgU1ZHU3ltYm9s
RWxlbWVudCBpcyBhbGxvd2VkIGluIHRoZSBzaGFkb3cgdHJlZSBvZiBhbiBTVkdVc2VFbGVtZW50
CisgICAgICAgIG9ubHkgaWYgaXQgc3VidHJlZSByb290IGVsZW1lbnQuIEFueSBkZXNjZW5kYW50
IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkCisgICAgICAgIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3Vi
dHJlZSBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGNvbnRhaW5lci4gSWYgdGhlIGNsb25lZAorICAg
ICAgICBzdWJ0cmVlIGluY2x1ZGVzIGFuIFNWR1VzZUVsZW1lbnQgd2hpY2ggcmVmZXJlbmNlcyBh
biBTVkdTeW1ib2xFbGVtZW50LAorICAgICAgICB0aGUgc2FtZSBydWxlIHdpbGwgYmUgYXBwbGll
ZCB0byB0aGUgZGVzY2VuZGFudCBTVkdVc2VFbGVtZW50LiBUaGUgZ29hbAorICAgICAgICBpcyB0
byByZW1vdmUgYWxsIHRoZSBkZXNjZW5kYW50IFNWR1N5bWJvbEVsZW1lbnRzIGZyb20gdGhlIGNs
b25lZCB0YXJnZXQKKyAgICAgICAgYmVjYXVzZSB0aGVzZSBTVkdTeW1ib2xFbGVtZW50cyB3aWxs
IGJlIGV4cGFuZGVkIHRvIFNWR1NWR0VsZW1lbnRzIGFuZAorICAgICAgICBoZW5jZSBiZWNvbWUg
dmlzaWJsZS4KKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25lcyk6IEEgaGVscGVyIGZ1bmN0aW9uIHdo
aWNoIHJlbW92ZXMKKyAgICAgICAgY2xvbmVkIFNWR0VsZW1lbnRzIGFuZCB0aGVpciBzdWJ0cmVl
cyBmcm9tIHRoZWlyIHBhcmVudHMgYW5kIGRpc2Fzc29jaWF0ZQorICAgICAgICB0aGVtIGZyb20g
dGhlaXIgb3JpZ2luYWxzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2Fs
bG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKTogVXNlIGRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25l
cygpLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVN5bWJvbEVsZW1lbnRzRnJv
bVN1YnRyZWUpOiBSZW1vdmVzIGFsbCB0aGUgZGVzY2VuZGFudAorICAgICAgICBTVkdTeW1ib2xF
bGVtZW50cyBmcm9tIHRoZSBjbG9uZWQgc3VidHJlZS4gSXQgZG9lcyBub3QgcmVtb3ZlIHRoZSBy
b290CisgICAgICAgIGVsZW1lbnQgaXRzZWxmIGlmIGl0IGlzIGFuIFNWR1N5bWJvbEVsZW1lbnQg
YmVjYXVzZSB0aGlzIG9uZSB3aWxsIGJlCisgICAgICAgIGV4cGFuZGVkIHRvIGFuIFNWR1NWR0Vs
ZW1lbnQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQpOiBDYWxsIHJlbW92ZVN5bWJvbEVs
ZW1lbnRzRnJvbVN1YnRyZWUoKQorICAgICAgICB0byByZW1vdmUgdGhlIGRlc2NlbmRhbnQgU1ZH
U3ltYm9sRWxlbWVudHMgZnJvbSB0aGUgY2xvbmVkIHN1YnRyZWUgYmVmb3JlCisgICAgICAgIGFw
cGVuZGluZyBpdCB0byB0aGUgY29udGFpbmVyIHNoYWRvdyByb290LgorCiAyMDE2LTAyLTI1ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgOjpz
bG90dGVkIHBzZXVkbyBlbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxOTcxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMCw2ICszMTAsMTUgQEAgUmVuZGVyRWxlbWVudCog
U1ZHVXNlRWxlbWVudDo6cmVuZGVyZXJDbAogICAgIHJldHVybiB0YXJnZXRDbG9uZS0+cmVuZGVy
ZXIoKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIGRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25l
cyhjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBjbG9uZXMpCit7CisgICAgZm9yIChhdXRvJiBjbG9u
ZSA6IGNsb25lcykgeworICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50
c09mVHlwZTxTVkdFbGVtZW50PigqY2xvbmUpKQorICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRD
b3JyZXNwb25kaW5nRWxlbWVudChudWxscHRyKTsKKyAgICAgICAgY2xvbmUtPnBhcmVudE5vZGUo
KS0+cmVtb3ZlQ2hpbGQoKmNsb25lKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIHJlbW92ZURp
c2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCiB7CiAgICAg
Ly8gUmVtb3ZlIGRpc2FsbG93ZWQgZWxlbWVudHMgYWZ0ZXIgdGhlIGZhY3QgcmF0aGVyIHRoYW4g
bm90IGNsb25pbmcgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UuCkBAIC0zMzAsMTEgKzMzOSwyMCBA
QCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAgICAgICAgIH0KICAg
ICAgICAgKytpdDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDogZGlzYWxsb3dlZEVs
ZW1lbnRzKSB7Ci0gICAgICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZU
eXBlPFNWR0VsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgICAgIGRlc2NlbmRhbnQuc2V0Q29y
cmVzcG9uZGluZ0VsZW1lbnQobnVsbHB0cik7Ci0gICAgICAgIGVsZW1lbnQtPnBhcmVudE5vZGUo
KS0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQpOwotICAgIH0KKworICAgIGRpc2Fzc29jaWF0ZUFuZFJl
bW92ZUNsb25lcyhkaXNhbGxvd2VkRWxlbWVudHMpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVT
eW1ib2xFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCit7CisgICAgLy8g
U3ltYm9sIGVsZW1lbnRzIGluc2lkZSB0aGUgc3VidHJlZSBzaG91bGQgbm90IGJlIGNsb25lZCBm
b3IgdHdvIHJlYXNvbnM6IDEpIFRoZXkgYXJlIGludmlzaWJsZSBhbmQKKyAgICAvLyBkb24ndCBu
ZWVkIHRvIGJlIGNsb25lZCB0byBnZXQgY29ycmVjdCByZW5kZXJpbmcuIDIpIGV4cGFuZFN5bWJv
bEVsZW1lbnRzSW5TaGFkb3dUcmVlIHdpbGwgdHVybiB0aGVtCisgICAgLy8gaW50byBTVkdTVkdF
bGVtZW50IGVsZW1lbnRzLCB3aGljaCBpcyBjb3JyZWN0IGZvciBzeW1ib2wgZWxlbWVudHMgZGly
ZWN0bHkgcmVmZXJlbmNlZCBieSB1c2UgZWxlbWVudHMsCisgICAgLy8gYnV0IGluY29ycmVjdCBm
b3Igb25lcyB0aGF0IGp1c3QgaGFwcGVuIHRvIGJlIGluIGEgc3VidHJlZS4KKyAgICBWZWN0b3I8
RWxlbWVudCo+IHN5bWJvbEVsZW1lbnRzOworICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRl
c2NlbmRhbnRzT2ZUeXBlPFNWR1N5bWJvbEVsZW1lbnQ+KHN1YnRyZWUpKQorICAgICAgICBzeW1i
b2xFbGVtZW50cy5hcHBlbmQoJmRlc2NlbmRhbnQpOworICAgIGRpc2Fzc29jaWF0ZUFuZFJlbW92
ZUNsb25lcyhzeW1ib2xFbGVtZW50cyk7CiB9CiAKIHN0YXRpYyB2b2lkIGFzc29jaWF0ZUNsb25l
c1dpdGhPcmlnaW5hbHMoU1ZHRWxlbWVudCYgY2xvbmUsIFNWR0VsZW1lbnQmIG9yaWdpbmFsKQpA
QCAtNDA5LDYgKzQyNyw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFp
bmUKICAgICBSZWY8U1ZHRWxlbWVudD4gdGFyZ2V0Q2xvbmUgPSBzdGF0aWNfY2FzdDxTVkdFbGVt
ZW50Jj4odGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihkb2N1bWVudCgpKS5nZXQoKSk7
CiAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyh0YXJnZXRDbG9uZS5nZXQoKSwgdGFy
Z2V0KTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZSh0YXJnZXRDbG9u
ZS5nZXQoKSk7CisgICAgcmVtb3ZlU3ltYm9sRWxlbWVudHNGcm9tU3VidHJlZSh0YXJnZXRDbG9u
ZS5nZXQoKSk7CiAgICAgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUodGFyZ2V0
Q2xvbmUuZ2V0KCkpOwogICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChXVEZNb3ZlKHRhcmdldENs
b25lKSk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTcxNjYpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxNi0wMi0yNiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIDxnPiB3cmFw
cGluZyA8c3ltYm9sPiBjYXVzZXMgZGlzcGxheSBvZiBoaWRkZW4gPHN5bWJvbD4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU3NgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEVuc3VyZSB0aGUgPHN5bWJvbD4g
ZWxlbWVudCBpcyBub3QgZGlzcGxheWVkIHdoZW4gaXQncyB3cmFwcGVkIGluIGEgPGc+CisgICAg
ICAgIGVsZW1lbnQgYW5kIHRoaXMgPGc+IGVsZW1lbnQgaXMgcmVmZXJlbmNlZCBieSBhIDx1c2U+
IGVsZW1lbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS91
c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhw
ZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Vz
ZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWlu
aW5nLXN5bWJvbC1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNl
LW9uLWctY29udGFpbmluZy1zeW1ib2wuc3ZnOgorICAgICAgICBUaGUgb3JpZ2luYWwgdGVzdCB3
YXMgd3JvbmcuIEl0IGhhZCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb246CisgICAgICAgICAgICAi
PGcgaWQ9J3N5bWJvbCc+PHN5bWJvbD4uLi48L3N5bWJvbD48L2c+IgorICAgICAgICBBbmQgaXQg
d2FzIGV4cGVjdGluZyB0byBoYXZlIHRoZSBzeW1ib2wgZHJhd24gaWYgdGhlIDxnPiBlbGVtZW50
IHdhcworICAgICAgICByZWZlcmVuY2VkIGxpa2UgdGhhdAorICAgICAgICAgICAgIjx1c2UgeGxp
bms6aHJlZj0nI3N5bWJvbCcvPiIKKyAgICAgICAgRmlyZUZveCBkb2VzIG5vdCByZW5kZXIgYW55
dGhpbmcgZm9yIHRoaXMgPHVzZT4gZWxlbWVudCB3aGljaCBpcyBjb3JyZWN0LgorICAgICAgICBX
aXRoIHRoaXMgcGF0Y2gsIHRoaXMgdGVzdCBmYWlsZWQgc28gaXQgaGFkIHRvIGJlIG1vZGlmaWVk
IHRvIHRlc3QgdGhlIHJpZ2h0CisgICAgICAgIGJlaGF2aW9yLiBBbHNvIGl0IGlzIG5vdyBjb252
ZXJ0ZWQgdG8gYSByZWYgdGVzdC4KKwogMjAxNi0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IDo6c2xvdHRlZCBwc2V1ZG8gZWxlbWVu
dApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29u
dGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTk3MTY2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9j
dXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE3ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDIwLDQ1KSBzaXplIDQ4OHg4MgotICAgIFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMjV4MjUgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWln
aHQ9MTAuMDBdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQ1LDQ1KSBzaXplIDEz
MHgzMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMjUuMDAsMjUu
MDApfV0KLSAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4w
MF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR1RleHQge3RleHR9
IGF0ICgxMCw0NSkgc2l6ZSAyNDR4MTkgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVy
U1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQ0eDE4Ci0gICAgICAgIGNodW5r
IDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM4
IHdpZHRoIDI0NC4wMDogIlRoZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwuIgot
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1LjAwLDI1LjAwKX1dCi0gICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAg
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAot
ICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
c3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE5NzE2NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1
c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUpIHNpemUgNDg5eDgyCi0gICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJTVkdIaWRk
ZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5kZXJT
VkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdo
dD0xMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDUsNDUpIHNpemUgMTMw
eDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEyNS4wMCwyNS4w
MCl9XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAw
XSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0g
YXQgKDEwLDQ1KSBzaXplIDI0NXgxOSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDV4MTgKLSAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMzgg
d2lkdGggMjQ0LjQwOiAiVGhlIHR3byBvYmplY3RzIHNob3VsZCBsb29rIGlkZW50aWNhbC4iCi0g
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUuMDAsMjUuMDApfV0KLSAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAgICBS
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwCi0g
ICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3
aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NzE2NikKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9s
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMCw0
NSkgc2l6ZSA0ODl4ODMKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUg
MHgwCi0gICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7c3ltYm9sfSBhdCAoMCwwKSBz
aXplIDB4MAotICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMTI1
eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01
LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9
MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMTI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0
fSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0K
LSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNDUpIHNpemUgMjQ1eDE5IGNvbnRhaW5z
IDEgY2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDI0NXgxOQotICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDEwLjAwLDYwLjAwKSBz
dGFydE9mZnNldCAwIGVuZE9mZnNldCAzOCB3aWR0aCAyNDQuNDA6ICJUaGUgdHdvIG9iamVjdHMg
c2hvdWxkIGxvb2sgaWRlbnRpY2FsLiIKLSAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDUs
NDUpIHNpemUgMTMweDMwCi0gICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9
IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBh
dCAoNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4
MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTk3MTY2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20v
dXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDE3ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDIwLDQ1KSBzaXplIDQ4OHg4MwotICAgIFJlbmRlclNWR0hp
ZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMjV4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAu
MDBdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMjUuMDAsMjUuMDApfV0K
LSAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMwIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dp
ZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgx
MCw0NSkgc2l6ZSAyNDR4MTkgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQ0eDE5Ci0gICAgICAgIGNodW5rIDEgdGV4
dCBydW4gMSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM4IHdpZHRo
IDI0NC4wMDogIlRoZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwuIgotICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgUmVuZGVy
U1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAg
ICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9
NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1v
bi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnN2Zwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorPHN2
ZyB2ZXJzaW9uPSIxLjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6
eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgorICAgIDxzeW1ib2wgaWQ9InJl
Y3Qtc3ltYm9sIj4gCisgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTAwIiBmaWxsPSJncmVlbiIvPgorICAgIDwvc3ltYm9sPiAKKyAgICA8dXNlIHhsaW5rOmhy
ZWY9IiNyZWN0LXN5bWJvbCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMTApIi8+CisgICAgPHVz
ZSB4bGluazpocmVmPSIjcmVjdC1zeW1ib2wiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwxMCki
Lz4KKyAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWN0LXN5bWJvbCIgdHJhbnNmb3JtPSJ0cmFuc2xh
dGUoMjMwLDEwKSIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC5zdmcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5
bWJvbC5zdmcJKHJldmlzaW9uIDE5NzE2NikKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNl
LW9uLWctY29udGFpbmluZy1zeW1ib2wuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICsxLDEw
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Ci08IURPQ1RZUEUgc3Zn
IFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFw
aGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgotPHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCIgdmlld0JveD0iMCAwIDQwMCAzMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu
ayI+Ci08ZGVmcz4KLSAgICA8ZyBpZD0ic3ltYm9sIj4KLSAgICAgICAgPHN5bWJvbCBvdmVyZmxv
dz0idmlzaWJsZSI+Ci0gICAgICAgICAgICA8cmVjdCBzdHJva2Utd2lkdGg9IjVweCIgZmlsbD0i
cmVkIiBzdHJva2U9Im5hdnkiIHdpZHRoPSI2MCIgaGVpZ2h0PSIxMCIvPgorPHN2ZyB2ZXJzaW9u
PSIxLjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgorICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlY3Qt
Z3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMCwgMCkiPjwvdXNlPgorICAgIDxnIGlkPSJy
ZWN0LWdyb3VwIj4KKyAgICAgICAgPHN5bWJvbCBpZD0icmVjdC1zeW1ib2wiPiAKKyAgICAgICAg
ICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJjdXJy
ZW50Q29sb3IiLz4KICAgICAgICAgPC9zeW1ib2w+CisgICAgICAgIDx1c2UgeGxpbms6aHJlZj0i
I3JlY3Qtc3ltYm9sIiBjb2xvcj0iZ3JlZW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLDEwKSIv
PgogICAgIDwvZz4KLTwvZGVmcz4KLQotPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTI1IDI1KSI+
Ci0gICAgPHJlY3Qgc3Ryb2tlLXdpZHRoPSI1cHgiIGZpbGw9InJlZCIgc3Ryb2tlPSJuYXZ5IiB3
aWR0aD0iNjAiIGhlaWdodD0iMTAiLz4KLTwvZz4KLQotPHRleHQgeD0iMTAiIHk9IjYwIj5UaGUg
dHdvIG9iamVjdHMgc2hvdWxkIGxvb2sgaWRlbnRpY2FsLjwvdGV4dD4KLTx1c2UgeD0iMjUiIHk9
IjI1IiB4bGluazpocmVmPSIjc3ltYm9sIi8+CisgICAgPHVzZSB4bGluazpocmVmPSIjcmVjdC1n
cm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjIwLCAwKSIvPgogPC9zdmc+Ci0KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3lt
Ym9sLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272347</attachid>
            <date>2016-02-26 11:13:16 -0800</date>
            <delta_ts>2016-02-26 12:58:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154576-20160226111259.patch</filename>
            <type>text/plain</type>
            <size>16391</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTAyLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgPGc+IHdyYXBw
aW5nIDxzeW1ib2w+IGNhdXNlcyBkaXNwbGF5IG9mIGhpZGRlbiA8c3ltYm9sPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisgICAgICAgIAorICAgICAgICBUaGUgU1ZHU3ltYm9s
RWxlbWVudCBpcyBhbGxvd2VkIGluIHRoZSBzaGFkb3cgdHJlZSBvZiBhbiBTVkdVc2VFbGVtZW50
CisgICAgICAgIG9ubHkgaWYgaXQgc3VidHJlZSByb290IGVsZW1lbnQuIEFueSBkZXNjZW5kYW50
IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkCisgICAgICAgIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3Vi
dHJlZSBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGNvbnRhaW5lci4gSWYgdGhlIGNsb25lZAorICAg
ICAgICBzdWJ0cmVlIGluY2x1ZGVzIGFuIFNWR1VzZUVsZW1lbnQgd2hpY2ggcmVmZXJlbmNlcyBh
biBTVkdTeW1ib2xFbGVtZW50LAorICAgICAgICB0aGUgc2FtZSBydWxlIHdpbGwgYmUgYXBwbGll
ZCB0byB0aGUgZGVzY2VuZGFudCBTVkdVc2VFbGVtZW50LiBUaGUgZ29hbAorICAgICAgICBpcyB0
byByZW1vdmUgYWxsIHRoZSBkZXNjZW5kYW50IFNWR1N5bWJvbEVsZW1lbnRzIGZyb20gdGhlIGNs
b25lZCB0YXJnZXQKKyAgICAgICAgYmVjYXVzZSB0aGVzZSBTVkdTeW1ib2xFbGVtZW50cyB3aWxs
IGJlIGV4cGFuZGVkIHRvIFNWR1NWR0VsZW1lbnRzIGFuZAorICAgICAgICBoZW5jZSBiZWNvbWUg
dmlzaWJsZS4KKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25lcyk6IEEgaGVscGVyIGZ1bmN0aW9uIHdo
aWNoIHJlbW92ZXMKKyAgICAgICAgY2xvbmVkIFNWR0VsZW1lbnRzIGFuZCB0aGVpciBzdWJ0cmVl
cyBmcm9tIHRoZWlyIHBhcmVudHMgYW5kIGRpc2Fzc29jaWF0ZQorICAgICAgICB0aGVtIGZyb20g
dGhlaXIgb3JpZ2luYWxzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2Fs
bG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKTogVXNlIGRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25l
cygpLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVN5bWJvbEVsZW1lbnRzRnJv
bVN1YnRyZWUpOiBSZW1vdmVzIGFsbCB0aGUgZGVzY2VuZGFudAorICAgICAgICBTVkdTeW1ib2xF
bGVtZW50cyBmcm9tIHRoZSBjbG9uZWQgc3VidHJlZS4gSXQgZG9lcyBub3QgcmVtb3ZlIHRoZSBy
b290CisgICAgICAgIGVsZW1lbnQgaXRzZWxmIGlmIGl0IGlzIGFuIFNWR1N5bWJvbEVsZW1lbnQg
YmVjYXVzZSB0aGlzIG9uZSB3aWxsIGJlCisgICAgICAgIGV4cGFuZGVkIHRvIGFuIFNWR1NWR0Vs
ZW1lbnQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQpOiBDYWxsIHJlbW92ZVN5bWJvbEVs
ZW1lbnRzRnJvbVN1YnRyZWUoKQorICAgICAgICB0byByZW1vdmUgdGhlIGRlc2NlbmRhbnQgU1ZH
U3ltYm9sRWxlbWVudHMgZnJvbSB0aGUgY2xvbmVkIHN1YnRyZWUgYmVmb3JlCisgICAgICAgIGFw
cGVuZGluZyBpdCB0byB0aGUgY29udGFpbmVyIHNoYWRvdyByb290LgorCiAyMDE2LTAyLTI1ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgOjpz
bG90dGVkIHBzZXVkbyBlbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxOTcxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMCw2ICszMTAsMTUgQEAgUmVuZGVyRWxlbWVudCog
U1ZHVXNlRWxlbWVudDo6cmVuZGVyZXJDbAogICAgIHJldHVybiB0YXJnZXRDbG9uZS0+cmVuZGVy
ZXIoKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIGRpc2Fzc29jaWF0ZUFuZFJlbW92ZUNsb25l
cyhjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBjbG9uZXMpCit7CisgICAgZm9yIChhdXRvJiBjbG9u
ZSA6IGNsb25lcykgeworICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50
c09mVHlwZTxTVkdFbGVtZW50PigqY2xvbmUpKQorICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRD
b3JyZXNwb25kaW5nRWxlbWVudChudWxscHRyKTsKKyAgICAgICAgY2xvbmUtPnBhcmVudE5vZGUo
KS0+cmVtb3ZlQ2hpbGQoKmNsb25lKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIHJlbW92ZURp
c2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCiB7CiAgICAg
Ly8gUmVtb3ZlIGRpc2FsbG93ZWQgZWxlbWVudHMgYWZ0ZXIgdGhlIGZhY3QgcmF0aGVyIHRoYW4g
bm90IGNsb25pbmcgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UuCkBAIC0zMzAsMTEgKzMzOSwyMCBA
QCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAgICAgICAgIH0KICAg
ICAgICAgKytpdDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDogZGlzYWxsb3dlZEVs
ZW1lbnRzKSB7Ci0gICAgICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZU
eXBlPFNWR0VsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgICAgIGRlc2NlbmRhbnQuc2V0Q29y
cmVzcG9uZGluZ0VsZW1lbnQobnVsbHB0cik7Ci0gICAgICAgIGVsZW1lbnQtPnBhcmVudE5vZGUo
KS0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQpOwotICAgIH0KKworICAgIGRpc2Fzc29jaWF0ZUFuZFJl
bW92ZUNsb25lcyhkaXNhbGxvd2VkRWxlbWVudHMpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVT
eW1ib2xFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCit7CisgICAgLy8g
U3ltYm9sIGVsZW1lbnRzIGluc2lkZSB0aGUgc3VidHJlZSBzaG91bGQgbm90IGJlIGNsb25lZCBm
b3IgdHdvIHJlYXNvbnM6IDEpIFRoZXkgYXJlIGludmlzaWJsZSBhbmQKKyAgICAvLyBkb24ndCBu
ZWVkIHRvIGJlIGNsb25lZCB0byBnZXQgY29ycmVjdCByZW5kZXJpbmcuIDIpIGV4cGFuZFN5bWJv
bEVsZW1lbnRzSW5TaGFkb3dUcmVlIHdpbGwgdHVybiB0aGVtCisgICAgLy8gaW50byA8c3ZnPiBl
bGVtZW50cywgd2hpY2ggaXMgY29ycmVjdCBmb3Igc3ltYm9sIGVsZW1lbnRzIGRpcmVjdGx5IHJl
ZmVyZW5jZWQgYnkgdXNlIGVsZW1lbnRzLAorICAgIC8vIGJ1dCBpbmNvcnJlY3QgZm9yIG9uZXMg
dGhhdCBqdXN0IGhhcHBlbiB0byBiZSBpbiBhIHN1YnRyZWUuCisgICAgVmVjdG9yPEVsZW1lbnQq
PiBzeW1ib2xFbGVtZW50czsKKyAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50
c09mVHlwZTxTVkdTeW1ib2xFbGVtZW50PihzdWJ0cmVlKSkKKyAgICAgICAgc3ltYm9sRWxlbWVu
dHMuYXBwZW5kKCZkZXNjZW5kYW50KTsKKyAgICBkaXNhc3NvY2lhdGVBbmRSZW1vdmVDbG9uZXMo
c3ltYm9sRWxlbWVudHMpOwogfQogCiBzdGF0aWMgdm9pZCBhc3NvY2lhdGVDbG9uZXNXaXRoT3Jp
Z2luYWxzKFNWR0VsZW1lbnQmIGNsb25lLCBTVkdFbGVtZW50JiBvcmlnaW5hbCkKQEAgLTQwOSw2
ICs0MjcsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmNsb25lVGFyZ2V0KENvbnRhaW5lCiAgICAg
UmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCY+KHRh
cmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkuZ2V0KCkpOwogICAgIGFz
c29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0Q2xvbmUuZ2V0KCksIHRhcmdldCk7CiAg
ICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xvbmUuZ2V0KCkp
OworICAgIHJlbW92ZVN5bWJvbEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xvbmUuZ2V0KCkp
OwogICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1RhcmdldENsb25lKHRhcmdldENsb25lLmdl
dCgpKTsKICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoV1RGTW92ZSh0YXJnZXRDbG9uZSkpOwog
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTk3MTY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTYtMDItMjYgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICA8Zz4gd3JhcHBpbmcgPHN5
bWJvbD4gY2F1c2VzIGRpc3BsYXkgb2YgaGlkZGVuIDxzeW1ib2w+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ1NzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBFbnN1cmUgdGhlIDxzeW1ib2w+IGVsZW1lbnQg
aXMgbm90IGRpc3BsYXllZCB3aGVuIGl0J3Mgd3JhcHBlZCBpbiBhIDxnPgorICAgICAgICBlbGVt
ZW50IGFuZCB0aGlzIDxnPiBlbGVtZW50IGlzIHJlZmVyZW5jZWQgYnkgYSA8dXNlPiBlbGVtZW50
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9z
dmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL3N2Zy9jdXN0b20vdXNlLW9uLWct
Y29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnBu
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Utb24tZy1j
b250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vd2luL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1i
b2wtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3VzZS1vbi1nLWNv
bnRhaW5pbmctc3ltYm9sLnN2ZzoKKyAgICAgICAgVGhlIG9yaWdpbmFsIHRlc3Qgd2FzIHdyb25n
LiBJdCBoYWQgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uOgorICAgICAgICAgICAgIjxnIGlkPSdz
eW1ib2wnPjxzeW1ib2w+Li4uPC9zeW1ib2w+PC9nPiIKKyAgICAgICAgQW5kIGl0IHdhcyBleHBl
Y3RpbmcgdG8gaGF2ZSB0aGUgc3ltYm9sIGRyYXduIGlmIHRoZSA8Zz4gZWxlbWVudCB3YXMKKyAg
ICAgICAgcmVmZXJlbmNlZCBsaWtlIHRoYXQKKyAgICAgICAgICAgICI8dXNlIHhsaW5rOmhyZWY9
JyNzeW1ib2wnLz4iCisgICAgICAgIEZpcmVGb3ggZG9lcyBub3QgcmVuZGVyIGFueXRoaW5nIGZv
ciB0aGlzIDx1c2U+IGVsZW1lbnQgd2hpY2ggaXMgY29ycmVjdC4KKyAgICAgICAgV2l0aCB0aGlz
IHBhdGNoLCB0aGlzIHRlc3QgZmFpbGVkIHNvIGl0IGhhZCB0byBiZSBtb2RpZmllZCB0byB0ZXN0
IHRoZSByaWdodAorICAgICAgICBiZWhhdmlvci4gQWxzbyBpdCBpcyBub3cgY29udmVydGVkIHRv
IGEgcmVmIHRlc3QuCisKIDIwMTYtMDItMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCA6OnNsb3R0ZWQgcHNldWRvIGVsZW1lbnQKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmct
c3ltYm9sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE5NzE2NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3Vz
ZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwxNyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICgyMCw0NSkgc2l6ZSA0ODh4ODIKLSAgICBSZW5kZXJTVkdIaWRk
ZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lciB7c3ltYm9sfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgIFJlbmRlclNWR1JlY3Qg
e3JlY3R9IGF0ICgwLDApIHNpemUgMTI1eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAw
XQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTI1LjAwLDI1LjAwKX1dCi0g
ICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0
aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAs
NDUpIHNpemUgMjQ0eDE5IGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0NHgxOAotICAgICAgICBjaHVuayAxIHRleHQg
cnVuIDEgYXQgKDEwLjAwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzOCB3aWR0aCAy
NDQuMDA6ICJUaGUgdHdvIG9iamVjdHMgc2hvdWxkIGxvb2sgaWRlbnRpY2FsLiIKLSAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwCi0gICAgICAgIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAg
ICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYw
LjAwXSBbaGVpZ2h0PTEwLjAwXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVs
YXRvci9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL3N2Zy9jdXN0
b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTcx
NjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL3N2Zy9jdXN0b20vdXNl
LW9uLWctY29udGFpbmluZy1zeW1ib2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE3ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDIwLDQ1KSBzaXplIDQ4OXg4MgotICAgIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7
cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMjV4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBd
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMjUuMDAsMjUuMDApfV0KLSAg
ICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRo
PTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCw0
NSkgc2l6ZSAyNDV4MTkgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQ1eDE4Ci0gICAgICAgIGNodW5rIDEgdGV4dCBy
dW4gMSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM4IHdpZHRoIDI0
NC40MDogIlRoZSB0d28gb2JqZWN0cyBzaG91bGQgbG9vayBpZGVudGljYWwuIgotICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1LjAwLDI1LjAwKX1dCi0gICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMAotICAgICAgICAg
IFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAu
MDBdIFtoZWlnaHQ9MTAuMDBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1
c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmlu
Zy1zeW1ib2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTcxNjYpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsNDUpIHNpemUg
NDg5eDgzCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAg
ICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAK
LSAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDEyNXgyNSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3
aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgyNDUsNDUpIHNpemUgMTMweDMwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI0
NSw0NSkgc2l6ZSAxMzB4MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDgwXSBb
c3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19
XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjAuMDBdIFtoZWlnaHQ9MTAuMDBdCi0gICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDQ1KSBzaXplIDI0NXgxOSBjb250YWlucyAxIGNodW5r
KHMpCi0gICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDV4
MTkKLSAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw2MC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMzggd2lkdGggMjQ0LjQwOiAiVGhlIHR3byBvYmplY3RzIHNob3VsZCBs
b29rIGlkZW50aWNhbC4iCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0NSw0NSkg
c2l6ZSAxMzB4MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUu
MDAsMjUuMDApfV0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ1LDQ1KSBzaXpl
IDEzMHgzMAotICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDUs
NDUpIHNpemUgMTMweDMwCi0gICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDQ1LDQ1
KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJv
a2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4wMF0gW2hlaWdodD0xMC4wMF0KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9s
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vc3Zn
L2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE5NzE2NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9zdmcvY3VzdG9tL3VzZS1vbi1n
LWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyAr
MCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdS
b290IHtzdmd9IGF0ICgyMCw0NSkgc2l6ZSA0ODh4ODMKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250
YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7
c3ltYm9sfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9
IGF0ICgwLDApIHNpemUgMTI1eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDA4
MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBbaGVpZ2h0PTEwLjAwXQotICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0NSw0NSkgc2l6ZSAxMzB4MzAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTI1LjAwLDI1LjAwKX1dCi0gICAgICBS
ZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjQ1LDQ1KSBzaXplIDEzMHgzMCBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwODBdIFtzdHJva2Ugd2lkdGg9NS4wMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02MC4w
MF0gW2hlaWdodD0xMC4wMF0KLSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNDUpIHNp
emUgMjQ0eDE5IGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0NHgxOQotICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEg
YXQgKDEwLjAwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzOCB3aWR0aCAyNDQuMDA6
ICJUaGUgdHdvIG9iamVjdHMgc2hvdWxkIGxvb2sgaWRlbnRpY2FsLiIKLSAgICBSZW5kZXJTVkdD
b250YWluZXIge3VzZX0gYXQgKDQ1LDQ1KSBzaXplIDEzMHgzMCBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNS4wMCwyNS4wMCl9XQotICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNDUsNDUpIHNpemUgMTMweDMwCi0gICAgICAgIFJlbmRlclNWR1ZpZXdw
b3J0Q29udGFpbmVyIHtzdmd9IGF0ICg0NSw0NSkgc2l6ZSAxMzB4MzAKLSAgICAgICAgICBSZW5k
ZXJTVkdSZWN0IHtyZWN0fSBhdCAoNDUsNDUpIHNpemUgMTMweDMwIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDA4MF0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTYwLjAwXSBb
aGVpZ2h0PTEwLjAwXQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250
YWluaW5nLXN5bWJvbC1leHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBlY3RlZC5zdmcJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9s
LWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKzxzdmcgdmVyc2lv
bj0iMS4yIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgICA8c3ltYm9sIGlkPSJyZWN0LXN5bWJv
bCI+IAorICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIg
ZmlsbD0iZ3JlZW4iLz4KKyAgICA8L3N5bWJvbD4gCisgICAgPHVzZSB4bGluazpocmVmPSIjcmVj
dC1zeW1ib2wiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLDEwKSIvPgorICAgIDx1c2UgeGxpbms6
aHJlZj0iI3JlY3Qtc3ltYm9sIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsMTApIi8+CisgICAg
PHVzZSB4bGluazpocmVmPSIjcmVjdC1zeW1ib2wiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzMCwx
MCkiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wuc3ZnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLW9uLWctY29udGFpbmluZy1zeW1ib2wuc3Zn
CShyZXZpc2lvbiAxOTcxNjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNv
bnRhaW5pbmctc3ltYm9sLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwxMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgotPCFET0NUWVBFIHN2ZyBQVUJMSUMg
Ii0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZH
LzEuMS9EVEQvc3ZnMTEuZHRkIj4KLTxzdmcgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIHZpZXdC
b3g9IjAgMCA0MDAgMzAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgotPGRl
ZnM+Ci0gICAgPGcgaWQ9InN5bWJvbCI+Ci0gICAgICAgIDxzeW1ib2wgb3ZlcmZsb3c9InZpc2li
bGUiPgotICAgICAgICAgICAgPHJlY3Qgc3Ryb2tlLXdpZHRoPSI1cHgiIGZpbGw9InJlZCIgc3Ry
b2tlPSJuYXZ5IiB3aWR0aD0iNjAiIGhlaWdodD0iMTAiLz4KKzxzdmcgdmVyc2lvbj0iMS4yIiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWN0LWdyb3VwIiB0
cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTAsIDApIj48L3VzZT4KKyAgICA8ZyBpZD0icmVjdC1ncm91
cCI+CisgICAgICAgIDxzeW1ib2wgaWQ9InJlY3Qtc3ltYm9sIj4gCisgICAgICAgICAgICA8cmVj
dCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iY3VycmVudENvbG9y
Ii8+CiAgICAgICAgIDwvc3ltYm9sPgorICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyZWN0LXN5
bWJvbCIgY29sb3I9ImdyZWVuIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMCwxMCkiLz4KICAgICA8
L2c+Ci08L2RlZnM+Ci0KLTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNSAyNSkiPgotICAgIDxy
ZWN0IHN0cm9rZS13aWR0aD0iNXB4IiBmaWxsPSJyZWQiIHN0cm9rZT0ibmF2eSIgd2lkdGg9IjYw
IiBoZWlnaHQ9IjEwIi8+Ci08L2c+Ci0KLTx0ZXh0IHg9IjEwIiB5PSI2MCI+VGhlIHR3byBvYmpl
Y3RzIHNob3VsZCBsb29rIGlkZW50aWNhbC48L3RleHQ+Ci08dXNlIHg9IjI1IiB5PSIyNSIgeGxp
bms6aHJlZj0iI3N5bWJvbCIvPgorICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlY3QtZ3JvdXAiIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDIyMCwgMCkiLz4KIDwvc3ZnPgotCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2Utb24tZy1jb250YWluaW5nLXN5bWJvbC1leHBl
Y3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5h
cnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1vbi1nLWNvbnRhaW5pbmctc3ltYm9sLWV4cGVjdGVk
LnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>