<?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>68610</bug_id>
          
          <creation_ts>2011-09-22 04:33:42 -0700</creation_ts>
          <short_desc>Microdata: Basic implementation of document.getItems() method</short_desc>
          <delta_ts>2011-10-14 09:45:33 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68609</blocked>
    
    <blocked>69839</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>ian</cc>
    
    <cc>joepeck</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>471487</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-22 04:33:42 -0700</bug_when>
    <thetext>Basic implementation of document.getItems() method:

1. Add Microdata compilation guards for Linux, Chromium and Windows.
2. Implement itemId, itemScope, itemType idl attributes.
3. Implement document.getItems([types]) method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471491</commentid>
    <comment_count>1</comment_count>
      <attachid>108313</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-22 04:45:26 -0700</bug_when>
    <thetext>Created attachment 108313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472147</commentid>
    <comment_count>2</comment_count>
      <attachid>108457</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-23 03:39:50 -0700</bug_when>
    <thetext>Created attachment 108457
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473069</commentid>
    <comment_count>3</comment_count>
      <attachid>108656</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-26 05:49:36 -0700</bug_when>
    <thetext>Created attachment 108656
Adding layout test

Layout test for Microdata document.getItems() DOM API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473218</commentid>
    <comment_count>4</comment_count>
      <attachid>108457</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-26 11:17:35 -0700</bug_when>
    <thetext>Comment on attachment 108457
Updated patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests. (OOPS!)

Clearly, we need a test for this feature.

&gt; Source/WebCore/dom/ItemNodeList.h:37
&gt; +class ItemNodeList : public DynamicNodeList {

I&apos;m not convinced that ItemNodeList is a good name for this class. It sounds too generic.

Now about MicroDataItemList?

&gt; Source/WebCore/dom/Node.cpp:1137
&gt; +void Node::removeCachedItemNodeList(ItemNodeList* list, const String&amp; typeName)

I&apos;d like this function name to include microData somewhere.

&gt; Source/WebCore/dom/Node.cpp:1733
&gt; +PassRefPtr&lt;NodeList&gt; Node::getItems(const String&amp; typeNames)

Why should this function live in Node instead of Document?

&gt; Source/WebCore/html/HTMLElement.cpp:986
&gt; +    dispatchSubtreeModifiedEvent();

I don&apos;t think we should be dispatching subtree modified here. As far as I understand it, this function is called in parseMappedAttribute, which means nothing in the DOM tree has changed. r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474558</commentid>
    <comment_count>5</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-28 00:14:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
Thanks for the review.

&gt; Clearly, we need a test for this feature.

Done! Combined test-cases and code changes in a single patch.

&gt; I&apos;m not convinced that ItemNodeList is a good name for this class. It sounds too generic.
&gt; 
&gt; Now about MicroDataItemList?

Yes you are right ItemNodeList is generic class name, Changed the class name to MicroDataItemList.

&gt; I&apos;d like this function name to include microData somewhere.

Done! removeCachedItemNodeList() medthod renamed to removeCachedMicroDataItemList().

&gt; Why should this function live in Node instead of Document?

I have placed getItems() method in Document so that they can use the caching mechanism already used by getElementsByClassName and getElementsByName. getElementsByClassName and getElementsByName were moved to Node some time back (https://bugs.webkit.org/show_bug.cgi?id=16511).

&gt; I don&apos;t think we should be dispatching subtree modified here. As far as I understand it, this function is called in parseMappedAttribute, which means nothing in the DOM tree has changed. r- because of this.

Agreed! Modified the code so that it will only invalidate the MicroDataItemList cache while itemType attribte changed by JavaScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474559</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 00:17:29 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Why should this function live in Node instead of Document?
&gt; 
&gt; I have placed getItems() method in Document so that they can use the caching mechanism already used by getElementsByClassName and getElementsByName. getElementsByClassName and getElementsByName were moved to Node some time back (https://bugs.webkit.org/show_bug.cgi?id=16511).

But Document inherits from Node?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474560</commentid>
    <comment_count>7</comment_count>
      <attachid>108977</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-28 00:18:40 -0700</bug_when>
    <thetext>Created attachment 108977
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474567</commentid>
    <comment_count>8</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-09-28 00:33:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; But Document inherits from Node?

Yes, you are right. But there were some reasons mentioned in bug (16511) because of which these functions were moved to Node. I have kept it in node to keep it inline with the existing code and also use the same caching mechanism. Please let me know your suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474818</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 10:29:35 -0700</bug_when>
    <thetext>Could you tell us which spec you&apos;re trying to implement?  Is it http://www.w3.org/TR/microdata/ ?

You should also add the link to change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474990</commentid>
    <comment_count>10</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-28 13:54:38 -0700</bug_when>
    <thetext>That spec is obsolete. You should reference:
http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html

(Microdata is just a part of HTML.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480911</commentid>
    <comment_count>11</comment_count>
      <attachid>110347</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-10 04:15:33 -0700</bug_when>
    <thetext>Created attachment 110347
Updated patch

Added specification URL &quot;http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html&quot; in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481752</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 11:23:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; 
&gt; &gt; But Document inherits from Node?
&gt; 
&gt; Yes, you are right. But there were some reasons mentioned in bug (16511) because of which these functions were moved to Node. I have kept it in node to keep it inline with the existing code and also use the same caching mechanism. Please let me know your suggestions.

I don&apos;t think that comment is applicable here. Please move it to Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481798</commentid>
    <comment_count>13</comment_count>
      <attachid>110347</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 12:05:38 -0700</bug_when>
    <thetext>Comment on attachment 110347
Updated patch

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

&gt; Source/WebCore/dom/MicroDataItemList.cpp:58
&gt; +    if (m_typeNames.contains(&quot;undefined&quot;) || !m_typeNames.size())

Are you trying to detect a case where the script didn&apos;t pass type? I don&apos;t think comparing it to the string &apos;undefined&apos; is the right approach.

&gt; Source/WebCore/dom/MicroDataItemList.h:49
&gt; +    virtual bool nodeMatches(Element*) const;

Please use OVERRIDE macro.

&gt; Source/WebCore/dom/NodeRareData.h:68
&gt; +#if ENABLE(MICRODATA)
&gt; +    typedef HashMap&lt;String, MicroDataItemList*&gt; MicroDataItemListCache;
&gt; +    MicroDataItemListCache m_microDataItemListCache;
&gt; +#endif

You also need to modify NodeListsNodeData::isEmpty.

&gt; Source/WebCore/html/HTMLElement.cpp:201
&gt; +#if ENABLE(MICRODATA)
&gt; +    } else if (attr-&gt;name() == itemtypeAttr) {
&gt; +        itemTypeAttributeChanged();
&gt; +#endif

Please modify invalidateCachesThatDependOnAttributes instead. m_classNodeListCache is a good one to mimic. r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481800</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 12:06:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 110347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110347&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/MicroDataItemList.cpp:58
&gt; &gt; +    if (m_typeNames.contains(&quot;undefined&quot;) || !m_typeNames.size())
&gt; 
&gt; Are you trying to detect a case where the script didn&apos;t pass type? I don&apos;t think comparing it to the string &apos;undefined&apos; is the right approach.

Sam, do you know a better way of doing this? We have a function that takes DOMString and we want to detect a case where the author omitted the argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481865</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-11 13:34:16 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 110347 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110347&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/MicroDataItemList.cpp:58
&gt; &gt; &gt; +    if (m_typeNames.contains(&quot;undefined&quot;) || !m_typeNames.size())
&gt; &gt; 
&gt; &gt; Are you trying to detect a case where the script didn&apos;t pass type? I don&apos;t think comparing it to the string &apos;undefined&apos; is the right approach.
&gt; 
&gt; Sam, do you know a better way of doing this? We have a function that takes DOMString and we want to detect a case where the author omitted the argument.

We usually handle this by adding a modifier to the string argument in the IDL which converts undefined to the null string [ConvertUndefinedOrNullToNullString].  If you need a different semantic, you either need to use [Optional] or [Custom].  Using the string &quot;undefined&quot; is clearly wrong, as you could pass that string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481868</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 13:39:14 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; We usually handle this by adding a modifier to the string argument in the IDL which converts undefined to the null string [ConvertUndefinedOrNullToNullString].  If you need a different semantic, you either need to use [Optional] or [Custom].  Using the string &quot;undefined&quot; is clearly wrong, as you could pass that string.

Yes! ConvertUndefinedOrNullToNullString is what I was looking for. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482275</commentid>
    <comment_count>17</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-12 00:44:38 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Are you trying to detect a case where the script didn&apos;t pass type? I don&apos;t think comparing it to the string &apos;undefined&apos; is the right approach.

Ok, we will use ConvertUndefinedOrNullToNullString which converts undefined to null string.
 
&gt; Please use OVERRIDE macro.
&gt; 
I am not aware of this macro. Could you please help me to understand this.

&gt; You also need to modify NodeListsNodeData::isEmpty.
&gt; 
Ok, we will modify this.

&gt; Please modify invalidateCachesThatDependOnAttributes instead. m_classNodeListCache is a good one to mimic. r- because of this.

In case of class attribute when classAttr changes it calls classAttributeChanged() from StyledElement::parseMappedAttribute().
Now classAttributeChanged() invokes dispatchSubtreeModifiedEvent() which internally calls invalidateCachesThatDependOnAttributes() to invalidate m_classNodeListCache.

Earlier I did the same for itemtype attribute change. We were calling dispatchSubtreeModifiedEvent() from itemTypeAttributeChanged()
which internally invoked invalidateCachesThatDependOnAttributes() to invalidate m_microDataItemListCache.

Now we modified the code so that it will only invalidate the m_microDataItemListCache when itemType attribute changes, it should not send the dispatchSubtreeModifiedEvent() as you suggested.
Do we need to follow the same as earlier case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482278</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-12 00:51:48 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; Please modify invalidateCachesThatDependOnAttributes instead. m_classNodeListCache is a good one to mimic. r- because of this.
&gt; 
&gt; In case of class attribute when classAttr changes it calls classAttributeChanged() from StyledElement::parseMappedAttribute().
&gt; Now classAttributeChanged() invokes dispatchSubtreeModifiedEvent() which internally calls invalidateCachesThatDependOnAttributes() to invalidate m_classNodeListCache.

I wasn&apos;t aware of this but that sounds wrong. I don&apos;t think we should be dispatching SubtreeModified when attributes change like that. Thanks for the clarification!

&gt; Now we modified the code so that it will only invalidate the m_microDataItemListCache when itemType attribute changes, it should not send the dispatchSubtreeModifiedEvent() as you suggested.
&gt; Do we need to follow the same as earlier case?

Probably not. I think your current approach is fine. We should probably fix other implementations not to fire SubtreeModified when attributes change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482416</commentid>
    <comment_count>19</comment_count>
      <attachid>110685</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-12 08:18:58 -0700</bug_when>
    <thetext>Created attachment 110685
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482795</commentid>
    <comment_count>20</comment_count>
      <attachid>110685</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-12 15:34:40 -0700</bug_when>
    <thetext>Comment on attachment 110685
Updated patch

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

I know there&apos;s some discussion about whether we should prefix this API but that can be added later if we strongly feel about. r=me provided you change UndefinedMicroDataItemType to some unique url under webkit.org.

&gt; Source/WebCore/dom/Document.cpp:5212
&gt; +    // Since documet.getItem() is allowed for microdata, typeNames will be null string.
&gt; +    // In this case we need to create an unique string identifier to map such request in the cache.
&gt; +    String localTypeNames = typeNames.isNull() ? String(&quot;UndefinedMicroDataItemType&quot;) : typeNames;

I don&apos;t think UndefinedMicroDataItemType is unique enough. Authors can certainly define UndefinedMicroDataItemType as a type, right?  If anything, I&apos;d suggest to use http://webkit.org/microdata/undefined since type can be an url.

&gt; Source/WebCore/dom/Node.cpp:2289
&gt; +    // We need to invalidate the microDataItemListCache when itemtype attribute changed

This comment repeats what the code says. Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482797</commentid>
    <comment_count>21</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-12 15:37:00 -0700</bug_when>
    <thetext>Apologies for the poor timing, but FYI, the spec just changed so that itemtype=&quot;&quot; is not a space-separated list of types rather than a single type. I hope that doesn&apos;t cause too many difficulties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482799</commentid>
    <comment_count>22</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-12 15:40:38 -0700</bug_when>
    <thetext>s/not/now/, sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482805</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-12 15:44:20 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Apologies for the poor timing, but FYI, the spec just changed so that itemtype=&quot;&quot; is now a space-separated list of types rather than a single type. I hope that doesn&apos;t cause too many difficulties.

That sounds like a easy change to adopt. We just need to update nodeMatches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482806</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-12 15:44:42 -0700</bug_when>
    <thetext>We can probably land this patch and follow up in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483051</commentid>
    <comment_count>25</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-13 01:35:01 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; 
&gt; I don&apos;t think UndefinedMicroDataItemType is unique enough. Authors can certainly define UndefinedMicroDataItemType as a type, right?  If anything, I&apos;d suggest to use http://webkit.org/microdata/undefined since type can be an url.
&gt;
Done!
 
&gt; &gt; Source/WebCore/dom/Node.cpp:2289
&gt; &gt; +    // We need to invalidate the microDataItemListCache when itemtype attribute changed
&gt; 
&gt; This comment repeats what the code says. Please remove.
Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483053</commentid>
    <comment_count>26</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-13 01:36:36 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #21)
&gt; &gt; Apologies for the poor timing, but FYI, the spec just changed so that itemtype=&quot;&quot; is now a space-separated list of types rather than a single type. I hope that doesn&apos;t cause too many difficulties.
&gt; 
&gt; That sounds like a easy change to adopt. We just need to update nodeMatches.
I will log a separate bug for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483057</commentid>
    <comment_count>27</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2011-10-13 01:42:35 -0700</bug_when>
    <thetext>Points of possible interest:

http://krijnhoetmer.nl/irc-logs/whatwg/20111013#l-938
http://www.w3.org/Bugs/Public/show_bug.cgi?id=14444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483063</commentid>
    <comment_count>28</comment_count>
      <attachid>110812</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-13 01:49:14 -0700</bug_when>
    <thetext>Created attachment 110812
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483072</commentid>
    <comment_count>29</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-13 02:09:16 -0700</bug_when>
    <thetext>Please can anyone help me to add the Microdata feature flag i.e, ENABLE(MICRODATA) and new files MicroDataItemList.cpp/h to xcode project?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483074</commentid>
    <comment_count>30</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-13 02:14:05 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Please can anyone help me to add the Microdata feature flag i.e, ENABLE(MICRODATA) and new files MicroDataItemList.cpp/h to xcode project?

I&apos;ll do that and land it manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483076</commentid>
    <comment_count>31</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-13 02:19:52 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; Please can anyone help me to add the Microdata feature flag i.e, ENABLE(MICRODATA) and new files MicroDataItemList.cpp/h to xcode project?
&gt; 
&gt; I&apos;ll do that and land it manually.

Thanks Ryosuke for the help. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484012</commentid>
    <comment_count>32</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-14 09:12:02 -0700</bug_when>
    <thetext>Committed r97471: &lt;http://trac.webkit.org/changeset/97471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484021</commentid>
    <comment_count>33</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-14 09:45:33 -0700</bug_when>
    <thetext>Skipped tests on Mac and WinCairo in http://trac.webkit.org/changeset/97472.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108313</attachid>
            <date>2011-09-22 04:45:26 -0700</date>
            <delta_ts>2011-09-23 03:39:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>30819</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1NzA2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDkt
MjIgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29uZmlndXJlLmFj
OgorCiAyMDExLTA5LTIxICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIENyYXNoIGluIFJlbmRlckJveDo6cGFpbnRNYXNrSW1hZ2VzIHdoZW4gR3Jh
cGhpY3NDb250ZXh0J3MgcGFpbnRpbmcgaXMgZGlzYWJsZWQKSW5kZXg6IGNvbmZpZ3VyZS5hYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJldmlzaW9uIDk1NzA2KQorKysgY29uZmlndXJl
LmFjCSh3b3JraW5nIGNvcHkpCkBAIC00NjIsNiArNDYyLDE0IEBAIEFDX0FSR19FTkFCTEUob2Zm
bGluZV93ZWJfYXBwbGljYXRpb25zLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX29mZmxpbmVf
d2ViX2FwcGxpY2F0aW9ucz0ieWVzIl0pCiBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX29mZmxpbmVf
d2ViX2FwcGxpY2F0aW9uc10pCiAKKyMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgSFRNTDUgTWlj
cm9kYXRhIHN1cHBvcnQKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgSFRNTDUg
TWljcm9kYXRhIHN1cHBvcnRdKQorQUNfQVJHX0VOQUJMRShtaWNyb2RhdGEsCisgICAgICAgICAg
ICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1taWNyb2RhdGFdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbZW5hYmxlIEhUTUw1IG1pY3JvZGF0YSBzdXBwb3J0IFtkZWZhdWx0PW5v
XV0pLAorICAgICAgICAgICAgICBbXSxbZW5hYmxlX21pY3JvZGF0YT0ibm8iXSkKK0FDX01TR19S
RVNVTFQoWyRlbmFibGVfbWljcm9kYXRhXSkKKwogIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBI
VE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBwZXJzaXRlbnQgc3RvcmFnZSBzdXBwb3J0CiBB
Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIEhUTUw1IGNsaWVudC1zaWRlIHNlc3Np
b24gYW5kIHBlcnNpc3RlbnQgc3RvcmFnZSBzdXBwb3J0XSkKIEFDX0FSR19FTkFCTEUoZG9tX3N0
b3JhZ2UsCkBAIC0xMTI4LDYgKzExMzYsNyBAQCBBTV9DT05ESVRJT05BTChbRU5BQkxFX1BST0dS
RVNTX1RBR10sW3RlCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HXSxb
dGVzdCAiJGVuYWJsZV9jaGFubmVsX21lc3NhZ2luZyIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05B
TChbRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVJdLFt0ZXN0ICIkZW5hYmxlX2phdmFzY3JpcHRf
ZGVidWdnZXIiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9PRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlNdLFt0ZXN0ICIkZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9ucyIgPSAi
eWVzIl0pCitBTV9DT05ESVRJT05BTChbRU5BQkxFX01JQ1JPREFUQV0sW3Rlc3QgIiRlbmFibGVf
bWljcm9kYXRhIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRF0sW3Rlc3QgIiRlbmFibGVfZGlyZWN0b3J5X3VwbG9hZCIgPSAieWVzIl0pCiBBTV9DT05E
SVRJT05BTChbRU5BQkxFX0RBVEFHUklEXSxbdGVzdCAiJGVuYWJsZV9kYXRhZ3JpZCIgPSAieWVz
Il0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVNdLFt0ZXN0ICIk
ZW5hYmxlX2RhdGFfdHJhbnNmZXJfaXRlbXMiID0gInllcyJdKQpAQCAtMTI0NSw2ICsxMjU0LDcg
QEAgRmVhdHVyZXM6CiAgSFRNTDUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb25zIHN1cHBvcnQgICAg
ICAgICAgICAgICAgICAgOiAkZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9ucwogIEhUTUw1
IGNoYW5uZWwgbWVzc2FnaW5nIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVu
YWJsZV9jaGFubmVsX21lc3NhZ2luZwogIEhUTUw1IG1ldGVyIGVsZW1lbnQgc3VwcG9ydCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9tZXRlcl90YWcKKyBIVE1MNSBtaWNy
b2RhdGEgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVf
bWljcm9kYXRhCiAgUGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiAkZW5hYmxlX3BhZ2VfdmlzaWJpbGl0eV9hcGkKICBIVE1MNSBwcm9ncmVz
cyBlbGVtZW50IHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfcHJv
Z3Jlc3NfdGFnCiAgSFRNTDUgY2xpZW50LXNpZGUgc2Vzc2lvbiBhbmQgcGVyc2lzdGVudCBzdG9y
YWdlIHN1cHBvcnQgOiAkZW5hYmxlX2RvbV9zdG9yYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biA5NTcwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDM5IEBACisyMDExLTA5LTIyICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4K
KworICAgICAgICBNaWNyb2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50Lmdl
dEl0ZW1zKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAgICAq
IGRvbS9JdGVtTm9kZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okl0ZW1Ob2Rl
TGlzdDo6SXRlbU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okl0ZW1Ob2RlTGlzdDo6fkl0
ZW1Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpJdGVtTm9kZUxpc3Q6Om5vZGVNYXRjaGVz
KToKKyAgICAgICAgKiBkb20vSXRlbU5vZGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SXRlbU5vZGVMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZEl0ZW1Ob2RlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpnZXRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2Rl
RGF0YTo6aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkpOgorICAgICAgICAqIGRvbS9Ob2Rl
Lmg6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAqIGZlYXR1cmVzLnBy
aToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1s
L0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXRlbVR5cGVB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisKIDIwMTEtMDktMjIgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
OTU2OTkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDk1NzA2
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtNzgzLDYgKzc4MywxMCBAQCBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX01FVEVSX1RBRywk
KEZFCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9NRVRFUl9UQUc9MQog
ZW5kaWYKIAoraWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9NSUNST0RBVEEsJChGRUFUVVJFX0RF
RklORVMpKSwgRU5BQkxFX01JQ1JPREFUQSkKKyAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFH
UykgRU5BQkxFX01JQ1JPREFUQT0xCitlbmRpZgorCiBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxF
X1BST0dSRVNTX1RBRywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfUFJPR1JFU1NfVEFHKQog
ICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JFU1NfVEFHPTEKIGVu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gOTU3MDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNTgyLDYgKzU4MiwxNCBA
QCB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX01IVE1MPTEKIGVuZGlmICAjIEVORCBFTkFC
TEVfTUhUTUwKIAogIyAtLS0KKyMgTWljcm9kYXRhIHN1cHBvcnQKKyMgLS0tCitpZiBFTkFCTEVf
TUlDUk9EQVRBCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX01JQ1JPREFUQT0xCit3ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX01JQ1JPREFUQT0xCitlbmRpZiAgIyBFTkQgRU5BQkxFX01J
Q1JPREFUQQorCisjIC0tLQogIyBSZWdpc3RlciBQcm90b2NvbCBIYW5kbGVyIHN1cHBvcnQKICMg
LS0tCiBpZiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUgpJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5NTcwNikKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExOTIsNiArMTE5Miw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWNvblVSTC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9JY29uVVJMLmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxp
c3QuY3BwIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9kb20vSXRlbU5vZGVMaXN0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0tl
eWJvYXJkRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk1NzA2KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01Mjg4LDYgKzUyODgsOCBAQAogICAgICAg
ICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0lnbm9yZURl
c3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgnLAogICAgICAgICAgICAgJ2RvbS9JY29u
VVJMLmNwcCcsCisgICAgICAgICAgICAnZG9tL0l0ZW1Ob2RlTGlzdC5jcHAnLAorICAgICAgICAg
ICAgJ2RvbS9JdGVtTm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL0ljb25VUkwuaCcsCiAg
ICAgICAgICAgICAnZG9tL0tleWJvYXJkRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vTG9j
YWxNZWRpYVN0cmVhbS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQkocmV2aXNpb24gOTU3MDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYg
Kzc1LDcgQEAgaXNFbXB0eShIQVZFX1FSQVdGT05UKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX0RFVEFJTFM9Lik6IERFRklORVMgKz0gRU5BQkxFX0RFVEFJTFM9MQogIWNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9NRVRFUl9UQUc9Lik6IERFRklORVMgKz0gRU5BQkxFX01FVEVSX1RBRz0x
CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01IVE1MPS4pOiBERUZJTkVTICs9IEVOQUJMRV9N
SFRNTD0wCishY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01JQ1JPREFUQT0uKTogREVGSU5FUyAr
PSBFTkFCTEVfTUlDUk9EQVRBPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1Nf
VEFHPS4pOiBERUZJTkVTICs9IEVOQUJMRV9QUk9HUkVTU19UQUc9MQogIWNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9CTE9CPS4pOiBERUZJTkVTICs9IEVOQUJMRV9CTE9CPTEKICFjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfTk9USUZJQ0FUSU9OUz0uKTogREVGSU5FUyArPSBFTkFCTEVfTk9USUZJ
Q0FUSU9OUz0xCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkocmV2aXNpb24gOTU3MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDYyNjIsNiArNDYyNjIsNjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEl0
ZW1Ob2RlTGlzdC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxJdGVtTm9kZUxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXElnbm9yZURlc3RydWN0aXZlV3Jp
dGVDb3VudEluY3JlbWVudGVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCShyZXZpc2lvbiA5NTcwNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsMTAgQEAgbW9kdWxlIGNvcmUg
ewogCiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAorI2lmIGRlZmluZWQo
RU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAgICAgICBOb2RlTGlzdCBn
ZXRJdGVtcyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBl
TmFtZXMpOworI2VuZGlmCisKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExv
Y2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSXRlbU5v
ZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSXRlbU5vZGVMaXN0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxpc3QuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEx
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
TU9UT1JPTEEgTU9CSUxJVFksIElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJJdGVtTm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJdGVtTm9kZUxpc3Q6Okl0ZW1Ob2RlTGlzdChQ
YXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKKyAgICA6
IER5bmFtaWNOb2RlTGlzdChyb290Tm9kZSkKKyAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywg
bV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgLCBtX29yaWdpbmFs
VHlwZU5hbWVzKHR5cGVOYW1lcykKK3sKK30KKworSXRlbU5vZGVMaXN0Ojp+SXRlbU5vZGVMaXN0
KCkKK3sKKyAgICBtX3Jvb3ROb2RlLT5yZW1vdmVDYWNoZWRJdGVtTm9kZUxpc3QodGhpcywgbV9v
cmlnaW5hbFR5cGVOYW1lcyk7Cit9CisKK2Jvb2wgSXRlbU5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhF
bGVtZW50KiB0ZXN0Tm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIXRlc3ROb2RlLT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEhUTUxFbGVtZW50KiB0ZXN0RWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4odGVzdE5vZGUpOworICAgIGlmICghdGVz
dEVsZW1lbnQtPmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW1zY29wZUF0dHIpIHx8IHRlc3RF
bGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppdGVtcHJvcEF0dHIpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV90eXBlTmFtZXMuY29udGFpbnMoInVuZGVmaW5lZCIp
IHx8ICFtX3R5cGVOYW1lcy5zaXplKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0
dXJuIG1fdHlwZU5hbWVzLmNvbnRhaW5zKHRlc3RFbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjppdGVtdHlwZUF0dHIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKKwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0l0ZW1O
b2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxpc3Qu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxpc3QuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgTU9CSUxJVFksIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMKKyAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9S
T0xBIE1PQklMSVRZLCBJTkMuIE9SIElUUworICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyAqIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSXRlbU5vZGVMaXN0X2gKKyNkZWZpbmUgSXRl
bU5vZGVMaXN0X2gKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJEeW5hbWlj
Tm9kZUxpc3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEl0ZW1Ob2RlTGlzdCA6IHB1Ymxp
YyBEeW5hbWljTm9kZUxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEl0ZW1O
b2RlTGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYg
dHlwZU5hbWVzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJdGVtTm9kZUxp
c3Qocm9vdE5vZGUsIHR5cGVOYW1lcykpOworICAgIH0KKworICAgIHZpcnR1YWwgfkl0ZW1Ob2Rl
TGlzdCgpOworCitwcml2YXRlOgorICAgIEl0ZW1Ob2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJv
b3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcyk7CisKKyAgICB2aXJ0dWFsIGJvb2wgbm9k
ZU1hdGNoZXMoRWxlbWVudCopIGNvbnN0OworCisgICAgU3BhY2VTcGxpdFN0cmluZyBtX3R5cGVO
YW1lczsKKyAgICBTdHJpbmcgbV9vcmlnaW5hbFR5cGVOYW1lczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisjZW5kaWYgLy8gSXRl
bU5vZGVMaXN0X2gKKwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gOTU3MDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkg
QEAKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorI2luY2x1ZGUgIkl0ZW1Ob2RlTGlzdC5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxhYmVsc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgpAQCAtMTEzMCw2ICsxMTMzLDE5IEBAIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVk
VGFnTm9kZUxpc3QoVGFnTm8KICAgICBkYXRhLT5tX3RhZ05vZGVMaXN0Q2FjaGVOUy5yZW1vdmUo
bmFtZS5pbXBsKCkpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3ZvaWQgTm9kZTo6cmVt
b3ZlQ2FjaGVkSXRlbU5vZGVMaXN0KEl0ZW1Ob2RlTGlzdCogbGlzdCwgY29uc3QgU3RyaW5nJiB0
eXBlTmFtZSkKK3sKKyAgICBBU1NFUlQocmFyZURhdGEoKSk7CisgICAgQVNTRVJUKHJhcmVEYXRh
KCktPm5vZGVMaXN0cygpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QtPmhhc093bkNh
Y2hlcygpKTsKKworICAgIE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gcmFyZURhdGEoKS0+bm9k
ZUxpc3RzKCk7CisgICAgQVNTRVJUX1VOVVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1faXRlbU5v
ZGVMaXN0Q2FjaGUuZ2V0KHR5cGVOYW1lKSk7CisgICAgZGF0YS0+bV9pdGVtTm9kZUxpc3RDYWNo
ZS5yZW1vdmUodHlwZU5hbWUpOworfQorI2VuZGlmCisKIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVk
TGFiZWxzTm9kZUxpc3QoRHluYW1pY05vZGVMaXN0KiBsaXN0KQogewogICAgIEFTU0VSVChyYXJl
RGF0YSgpKTsKQEAgLTE3MTMsNiArMTcyOSwyNSBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2Rl
OjpnZXRFbGVtZW50c0J5CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEl0ZW1zKGNvbnN0
IFN0cmluZyYgdHlwZU5hbWVzKQoreworICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJh
cmVEYXRhKCk7CisgICAgaWYgKCFkYXRhLT5ub2RlTGlzdHMoKSkgeworICAgICAgICBkYXRhLT5z
ZXROb2RlTGlzdHMoTm9kZUxpc3RzTm9kZURhdGE6OmNyZWF0ZSgpKTsKKyAgICAgICAgdHJlZVNj
b3BlKCktPmFkZE5vZGVMaXN0Q2FjaGUoKTsKKyAgICB9CisKKyAgICBwYWlyPE5vZGVMaXN0c05v
ZGVEYXRhOjpJdGVtTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IGRhdGEt
Pm5vZGVMaXN0cygpLT5tX2l0ZW1Ob2RlTGlzdENhY2hlLmFkZCh0eXBlTmFtZXMsIDApOworICAg
IGlmICghcmVzdWx0LnNlY29uZCkKKyAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+
KHJlc3VsdC5maXJzdC0+c2Vjb25kKTsKKworICAgIFJlZlB0cjxJdGVtTm9kZUxpc3Q+IGxpc3Qg
PSBJdGVtTm9kZUxpc3Q6OmNyZWF0ZSh0aGlzLCB0eXBlTmFtZXMpOworICAgIHJlc3VsdC5maXJz
dC0+c2Vjb25kID0gbGlzdC5nZXQoKTsKKyAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7Cit9Cisj
ZW5kaWYKKwogUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0RWxlbWVudHNCeUNsYXNzTmFt
ZShjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpCiB7CiAgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0g
ZW5zdXJlUmFyZURhdGEoKTsKQEAgLTI0MTQsNiArMjQ0OSwxMiBAQCB2b2lkIE5vZGVMaXN0c05v
ZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzCiAgICAgZm9yIChDbGFzc05vZGVMaXN0Q2FjaGU6Oml0
ZXJhdG9yIGl0ID0gbV9jbGFzc05vZGVMaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gY2xhc3NDYWNo
ZUVuZDsgKytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CiAKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIEl0ZW1Ob2RlTGlzdENhY2hlOjppdGVyYXRvciBpdGVt
Q2FjaGVFbmQgPSBtX2l0ZW1Ob2RlTGlzdENhY2hlLmVuZCgpOworICAgIGZvciAoSXRlbU5vZGVM
aXN0Q2FjaGU6Oml0ZXJhdG9yIGl0ID0gbV9pdGVtTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBpdCAh
PSBpdGVtQ2FjaGVFbmQ7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNo
ZSgpOworI2VuZGlmCisKICAgICBOYW1lTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IgbmFtZUNhY2hl
RW5kID0gbV9uYW1lTm9kZUxpc3RDYWNoZS5lbmQoKTsKICAgICBmb3IgKE5hbWVOb2RlTGlzdENh
Y2hlOjppdGVyYXRvciBpdCA9IG1fbmFtZU5vZGVMaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gbmFt
ZUNhY2hlRW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsK
QEAgLTI0MzcsNiArMjQ3OCwxMCBAQCBib29sIE5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghbV9uYW1lTm9kZUxpc3RDYWNo
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorICAgIGlmIChtX2l0ZW1Ob2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCiAKICAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDk1NzA2KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQCBj
bGFzcyBGbG9hdFBvaW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MSW5wdXRFbGVtZW50Owog
Y2xhc3MgSW50UmVjdDsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorY2xhc3MgSXRlbU5vZGVMaXN0
OworI2VuZGlmCiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTlNSZXNvbHZlcjsKIGNsYXNz
IE5hbWVkTm9kZU1hcDsKQEAgLTUxMyw2ICs1MTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3Rp
ZnlMb2NhbE5vZGVMaXN0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2b2lkIG5vdGlmeUxvY2Fs
Tm9kZUxpc3RzTGFiZWxDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRDbGFzc05vZGVM
aXN0KENsYXNzTm9kZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorICAgIHZvaWQgcmVtb3ZlQ2FjaGVkSXRlbU5vZGVMaXN0KEl0ZW1Ob2RlTGlzdCosIGNvbnN0
IFN0cmluZyYpOworI2VuZGlmCiAgICAgdm9pZCByZW1vdmVDYWNoZWROYW1lTm9kZUxpc3QoTmFt
ZU5vZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRUYWdOb2Rl
TGlzdChUYWdOb2RlTGlzdCosIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHZvaWQgcmVtb3Zl
Q2FjaGVkVGFnTm9kZUxpc3QoVGFnTm9kZUxpc3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CkBA
IC01MjMsNiArNTI5LDEwIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRF
bGVtZW50c0J5TmFtZShjb25zdCBTdHJpbmcmIGVsZW1lbnROYW1lKTsKICAgICBQYXNzUmVmUHRy
PE5vZGVMaXN0PiBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1l
cyk7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdl
dEl0ZW1zKGNvbnN0IFN0cmluZyYgdHlwZU5hbWVzKTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0
cjxFbGVtZW50PiBxdWVyeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gcXVlcnlTZWxlY3RvckFsbChjb25z
dCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSYXJlRGF0YS5oCShyZXZpc2lvbiA5NTcwNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsMTEgQEAKIAogI2luY2x1
ZGUgIkNsYXNzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSXRlbU5vZGVMaXN0LmgiCisjZW5kaWYKKwog
I2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNp
bmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtNTYsNyArNjEsMTIgQEAgcHVibGljOgogCiAgICAg
dHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbD4s
IFRhZ05vZGVMaXN0Kj4gVGFnTm9kZUxpc3RDYWNoZU5TOwogICAgIFRhZ05vZGVMaXN0Q2FjaGVO
UyBtX3RhZ05vZGVMaXN0Q2FjaGVOUzsKLSAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgSXRlbU5vZGVMaXN0Kj4gSXRlbU5vZGVMaXN0Q2FjaGU7
CisgICAgSXRlbU5vZGVMaXN0Q2FjaGUgbV9pdGVtTm9kZUxpc3RDYWNoZTsKKyNlbmRpZgorCiAg
ICAgTGFiZWxzTm9kZUxpc3QqIG1fbGFiZWxzTm9kZUxpc3RDYWNoZTsKICAKICAgICBzdGF0aWMg
UGFzc093blB0cjxOb2RlTGlzdHNOb2RlRGF0YT4gY3JlYXRlKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA5NTcwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjEsNiArMTIxLDEwIEBAIGlkCiBpbmNyZW1lbnRhbAogaW5kZXRlcm1pbmF0ZQogaXNtYXAKK2l0
ZW1pZAoraXRlbXByb3AKK2l0ZW1zY29wZQoraXRlbXR5cGUKIGtleXR5cGUKIGtpbmQKIGxhYmVs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gOTU3MDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk1LDYgKzE5NSwxMCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShB
CiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJT
ZWxlY3QsIENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UodmFsdWUsICJmYWxzZSIpKQogICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NT
UHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGl0ZW10eXBlQXR0cikgeworICAg
ICAgICBpdGVtVHlwZUF0dHJpYnV0ZUNoYW5nZWQoKTsKKyNlbmRpZgogICAgIH0KIC8vIHN0YW5k
YXJkIGV2ZW50cwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmNsaWNrQXR0cikgewpA
QCAtOTc2LDYgKzk4MCwxMyBAQCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0
eUlmCiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3ZvaWQgSFRNTEVsZW1lbnQ6
Oml0ZW1UeXBlQXR0cmlidXRlQ2hhbmdlZCgpCit7CisgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZp
ZWRFdmVudCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRl
ZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDk1NzA2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDcsNiArMTA3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0
eUlmTmVlZGVkQWZ0ZXJDaGlsZEF0dHJpYnV0ZUNoYW5nZWQoRWxlbWVudCogY2hpbGQpOwogICAg
IHZvaWQgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKE5v
ZGUqIGJlZm9yZUNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSk7CiAgICAgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb25hbGl0eShOb2RlKiogc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0Tm9kZT0gMCkg
Y29uc3Q7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZvaWQgaXRlbVR5cGVBdHRyaWJ1
dGVDaGFuZ2VkKCk7CisjZW5kaWYKIH07CiAKIGlubGluZSBIVE1MRWxlbWVudCogdG9IVE1MRWxl
bWVudChOb2RlKiBub2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDk1NzA2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDEwIEBAIG1vZHVsZSBodG1sIHsKIAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVsbGNoZWNrOwogCisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBib29sZWFuIGl0ZW1T
Y29wZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEs
IFJlZmxlY3RdIERPTVN0cmluZyBpdGVtVHlwZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1NSUNST0RBVEEsIFJlZmxlY3RdIERPTVN0cmluZyBpdGVtSWQ7CisKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlRGlzcGxheVN0cmluZzsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1NzA2KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0wOS0yMiAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisK
KyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJ
dGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDExLTA5LTIyICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk1
Njk5LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQkocmV2aXNpb24gOTU3
MDYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtpbmcgY29w
eSkKQEAgLTYwLDYgKzYwLDcgQEAKICAgICAgICdFTkFCTEVfTUVESUFfU1RSRUFNPTEnLAogICAg
ICAgJ0VOQUJMRV9NRVRFUl9UQUc9MScsCiAgICAgICAnRU5BQkxFX01IVE1MPTEnLAorICAgICAg
J0VOQUJMRV9NSUNST0RBVEE9MScsCiAgICAgICAnRU5BQkxFX05PVElGSUNBVElPTlM9MScsCiAg
ICAgICAnRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xJywKICAgICAgICdFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTPTAnLApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTU3MDYpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wOS0yMiAgQXJrbyBTYWhhICA8
YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRh
dGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKwogMjAx
MS0wOS0yMSAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VXBkYXRlIGNvbW1pdHRlcnMucHkgd2l0aCBhIG5ldyBjb250cmlidXRvciBjb250YWN0ICAgICAg
ICAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA5NTcwNikKKysrIFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIG15ICgKICAgICAk
bWVkaWFTdHJlYW1TdXBwb3J0LAogICAgICRtZXRlclRhZ1N1cHBvcnQsCiAgICAgJG1odG1sU3Vw
cG9ydCwKKyAgICAkbWljcm9kYXRhU3VwcG9ydCwKICAgICAkbmV0c2NhcGVQbHVnaW5TdXBwb3J0
LAogICAgICRub3RpZmljYXRpb25zU3VwcG9ydCwKICAgICAkb2ZmbGluZVdlYkFwcGxpY2F0aW9u
U3VwcG9ydCwKQEAgLTIyOSw2ICsyMzAsOSBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRp
b24gPT4gIm1odG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbWh0bWxTdXBw
b3J0IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAibWljcm9kYXRhIiwgZGVzYyA9PiAiVG9nZ2xlIE1p
Y3JvZGF0YSBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01JQ1JPREFUQSIsIGRl
ZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtaWNyb2RhdGFTdXBwb3J0IH0sCisKICAgICB7IG9wdGlv
biA9PiAibmV0c2NhcGUtcGx1Z2luIiwgZGVzYyA9PiAiTmV0c2NhcGUgUGx1Z2luIHN1cHBvcnQi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQg
PT4gIWlzRWZsKCksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5TdXBwb3J0IH0sCiAKSW5kZXg6
IFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVz
L0NoYW5nZUxvZwkocmV2aXNpb24gOTU3MDYpCisrKyBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMjIgIEFya28gU2FoYSAg
PGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50
YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURl
ZmluZXMudnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5l
c0NhaXJvLnZzcHJvcHM6CisKIDIwMTEtMDktMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShFVkVOVFNPVVJDRSkKSW5kZXg6
IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3Bz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lcy52c3Byb3BzCShyZXZpc2lvbiA5NTcwNikKKysrIFdlYktpdExpYnJhcmllcy93aW4v
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05
LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVO
REVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFC
TEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9N
X1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJM
RV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NB
VElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwp
OyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVO
QUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9U
T0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVf
VklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7
JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktF
UlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0Rf
UkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0Ip
OyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChF
TkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1Qp
OyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVf
RE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVO
QUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9M
T0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRI
TUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9OT1RJ
RklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEp
OyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFC
TEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VC
X1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBB
VEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNE
X0NBTlZBUyIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwkocmV2aXNpb24gOTU3MDYp
CisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWly
by52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5B
QkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTsk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0NTU19SRUdJT05TKTsk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9E
QVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
OyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMp
OyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNF
KTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFC
TEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9M
SU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFC
TEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKTskKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxF
X1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFS
RURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1Mp
OyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJD
RSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5B
QkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5B
QkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQo
RU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0NTU19SRUdJT05T
KTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRF
UlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFC
QVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChF
TkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJM
RV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChF
TkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxF
X1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09M
X0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURF
Tyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVO
QUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7
JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAg
IDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108457</attachid>
            <date>2011-09-23 03:39:50 -0700</date>
            <delta_ts>2011-09-28 00:18:40 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>33554</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1Nzg3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDkt
MjMgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAx
MS0wOS0yMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBDcmFzaCBpbiBSZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyB3aGVuIEdyYXBoaWNzQ29u
dGV4dCdzIHBhaW50aW5nIGlzIGRpc2FibGVkCkluZGV4OiBjb25maWd1cmUuYWMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gY29uZmlndXJlLmFjCShyZXZpc2lvbiA5NTc4NykKKysrIGNvbmZpZ3VyZS5hYwkod29y
a2luZyBjb3B5KQpAQCAtNDYyLDYgKzQ2MiwxNCBAQCBBQ19BUkdfRU5BQkxFKG9mZmxpbmVfd2Vi
X2FwcGxpY2F0aW9ucywKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9vZmZsaW5lX3dlYl9hcHBs
aWNhdGlvbnM9InllcyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBs
aWNhdGlvbnNdKQogCisjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIEhUTUw1IE1pY3JvZGF0YSBz
dXBwb3J0CitBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIEhUTUw1IE1pY3JvZGF0
YSBzdXBwb3J0XSkKK0FDX0FSR19FTkFCTEUobWljcm9kYXRhLAorICAgICAgICAgICAgICBBQ19I
RUxQX1NUUklORyhbLS1lbmFibGUtbWljcm9kYXRhXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW2VuYWJsZSBIVE1MNSBtaWNyb2RhdGEgc3VwcG9ydCBbZGVmYXVsdD1ub11dKSwKKyAg
ICAgICAgICAgICAgW10sW2VuYWJsZV9taWNyb2RhdGE9Im5vIl0pCitBQ19NU0dfUkVTVUxUKFsk
ZW5hYmxlX21pY3JvZGF0YV0pCisKICMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgSFRNTDUgY2xp
ZW50LXNpZGUgc2Vzc2lvbiBhbmQgcGVyc2l0ZW50IHN0b3JhZ2Ugc3VwcG9ydAogQUNfTVNHX0NI
RUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBw
ZXJzaXN0ZW50IHN0b3JhZ2Ugc3VwcG9ydF0pCiBBQ19BUkdfRU5BQkxFKGRvbV9zdG9yYWdlLApA
QCAtMTEyOCw2ICsxMTM2LDcgQEAgQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9QUk9HUkVTU19UQUdd
LFt0ZQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9DSEFOTkVMX01FU1NBR0lOR10sW3Rlc3QgIiRl
bmFibGVfY2hhbm5lbF9tZXNzYWdpbmciID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSXSxbdGVzdCAiJGVuYWJsZV9qYXZhc2NyaXB0X2RlYnVnZ2Vy
IiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TXSxbdGVzdCAiJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbnMiID0gInllcyJdKQor
QU1fQ09ORElUSU9OQUwoW0VOQUJMRV9NSUNST0RBVEFdLFt0ZXN0ICIkZW5hYmxlX21pY3JvZGF0
YSIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RJUkVDVE9SWV9VUExPQURdLFt0
ZXN0ICIkZW5hYmxlX2RpcmVjdG9yeV91cGxvYWQiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwo
W0VOQUJMRV9EQVRBR1JJRF0sW3Rlc3QgIiRlbmFibGVfZGF0YWdyaWQiID0gInllcyJdKQogQU1f
Q09ORElUSU9OQUwoW0VOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TXSxbdGVzdCAiJGVuYWJsZV9k
YXRhX3RyYW5zZmVyX2l0ZW1zIiA9ICJ5ZXMiXSkKQEAgLTEyNDUsNiArMTI1NCw3IEBAIEZlYXR1
cmVzOgogIEhUTUw1IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9ucyBzdXBwb3J0ICAgICAgICAgICAg
ICAgICAgIDogJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbnMKICBIVE1MNSBjaGFubmVs
IG1lc3NhZ2luZyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfY2hh
bm5lbF9tZXNzYWdpbmcKICBIVE1MNSBtZXRlciBlbGVtZW50IHN1cHBvcnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWV0ZXJfdGFnCisgSFRNTDUgbWljcm9kYXRhIHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21pY3JvZGF0
YQogIFBhZ2UgVmlzaWJpbGl0eSBBUEkgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogJGVuYWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpCiAgSFRNTDUgcHJvZ3Jlc3MgZWxlbWVu
dCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3Byb2dyZXNzX3Rh
ZwogIEhUTUw1IGNsaWVudC1zaWRlIHNlc3Npb24gYW5kIHBlcnNpc3RlbnQgc3RvcmFnZSBzdXBw
b3J0IDogJGVuYWJsZV9kb21fc3RvcmFnZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU3ODcp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0
OCBAQAorMjAxMS0wOS0yMyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAg
ICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygp
IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgRU5BQkxFKE1JQ1JPREFUQSkgZmVhdHVyZSBmbGFnLiBJbXBsZW1lbnQgZG9jdW1lbnQu
Z2V0SXRlbXMoKSBET00gQVBJLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaWRsOgorICAgICAgICAqIGRvbS9JdGVtTm9kZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
TWljcm9kYXRhIGl0ZW1zIG5vZGUgbGlzdCBpbiB0aGUgZG9jdW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpJdGVtTm9kZUxpc3Q6Okl0ZW1Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpJdGVt
Tm9kZUxpc3Q6On5JdGVtTm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SXRlbU5vZGVMaXN0
Ojpub2RlTWF0Y2hlcyk6CisgICAgICAgICogZG9tL0l0ZW1Ob2RlTGlzdC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okl0ZW1Ob2RlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVDYWNoZWRJdGVtTm9kZUxpc3Qp
OiBSZW1vdmUgaXRlbSBub2RlIGxpc3QgZnJvbSBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmdldEl0ZW1zKTogUmV0dXJucyBOb2RlTGlzdCBvZiB0aGUgZWxlbWVudCBpbiB0aGUgRG9j
dW1lbnQgdGhhdAorICAgICAgICBjcmVhdGUgaXRlbXMsIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIG90
aGVyIGl0ZW1zLCBhbmQgdGhhdCBhcmUgb2Ygb25lIG9mIHRoZSB0eXBlcworICAgICAgICBnaXZl
biBpbiB0aGUgYXJndW1lbnQuIElmIG5vIHRva2VucyBzcGVjaWZpZWQvdW5kZWZpbmVkIGluIHRo
ZSBhcmd1bWVudCwgdGhlbgorICAgICAgICByZXR1cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIGFs
bCB0b3AgbGV2ZWwgbWljcm9kYXRhIGl0ZW1zLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3Rz
Tm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKTogSW52YWxp
ZGF0ZQorICAgICAgICB0aGUgaXRlbSBub2RlIGNhY2hlIGlmIGl0ZW1UeXBlIGF0dHJpYnV0ZSBj
aGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmg6IEFkZGVkIGdldEl0ZW1zKCkgZGVjbGFyYXRpb24uCisgICAg
ICAgICogZG9tL05vZGVSYXJlRGF0YS5oOiBDcmVhdGVzIEl0ZW1Ob2RlTGlzdENhY2hlCisgICAg
ICAgICogZmVhdHVyZXMucHJpOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
OiBBZGRlZCBpdGVtaWQsIGl0ZW1wcm9wLCBpdGVtc2NvcGUsIGl0ZW10eXBlIGF0dHJpYnV0ZXMu
CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBIYW5kbGUgaXRlbXR5cGUgYXR0cmlidXRl
IGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjppdGVtVHlwZUF0dHJpYnV0
ZUNoYW5nZWQpOiBJbnZhbGlkYXRlIGl0ZW0gbm9kZSBsaXN0IGNhY2hlLgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDogQWRkZWQg
aXRlbWlkLCBpdGVtcHJvcCwgaXRlbXNjb3BlLCBpdGVtdHlwZSBhdHRyaWJ1dGVzLgorCiAyMDEx
LTA5LTIyICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW1wbGVt
ZW50IC13ZWJraXQtZmxleC1vcmRlcgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDk1Nzg3KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTUzNyw2ICs1MzcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0V4Y2VwdGlv
bkNvZGUuY3BwCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAKICAgICBkb20v
SWNvblVSTC5jcHAKKyAgICBkb20vSXRlbU5vZGVMaXN0LmNwcAogICAgIGRvbS9LZXlib2FyZEV2
ZW50LmNwcAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5jcHAKICAgICBkb20vTWVzc2FnZUV2ZW50
LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA5NTc4NykK
KysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTc4Myw2ICs3ODMsMTAgQEAgaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9NRVRFUl9UQUcsJChG
RQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfTUVURVJfVEFHPTEKIGVu
ZGlmCiAKK2lmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfTUlDUk9EQVRBLCQoRkVBVFVSRV9ERUZJ
TkVTKSksIEVOQUJMRV9NSUNST0RBVEEpCisgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1Mp
IEVOQUJMRV9NSUNST0RBVEE9MQorZW5kaWYKKwogaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9Q
Uk9HUkVTU19UQUcsJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX1BST0dSRVNTX1RBRykKICAg
ICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFHUykgRU5BQkxFX1BST0dSRVNTX1RBRz0xCiBlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDk1Nzg3KQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTU4Miw2ICs1ODIsMTQgQEAg
d2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9NSFRNTD0xCiBlbmRpZiAgIyBFTkQgRU5BQkxF
X01IVE1MCiAKICMgLS0tCisjIE1pY3JvZGF0YSBzdXBwb3J0CisjIC0tLQoraWYgRU5BQkxFX01J
Q1JPREFUQQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9NSUNST0RBVEE9MQord2ViY29yZV9j
cHBmbGFncyArPSAtREVOQUJMRV9NSUNST0RBVEE9MQorZW5kaWYgICMgRU5EIEVOQUJMRV9NSUNS
T0RBVEEKKworIyAtLS0KICMgUmVnaXN0ZXIgUHJvdG9jb2wgSGFuZGxlciBzdXBwb3J0CiAjIC0t
LQogaWYgRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTU3ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTkyLDYgKzExOTIsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ljb25VUkwuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vSWNvblVSTC5oIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9kb20vSXRlbU5vZGVMaXN0
LmNwcCBcCisgICAgU291cmNlL1dlYkNvcmUvZG9tL0l0ZW1Ob2RlTGlzdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9LZXli
b2FyZEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NTc4NykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNTI4OCw2ICs1Mjg4LDggQEAKICAgICAgICAg
ICAgICdkb20vSGFzaENoYW5nZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9JZ25vcmVEZXN0
cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdkb20vSWNvblVS
TC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9JdGVtTm9kZUxpc3QuY3BwJywKKyAgICAgICAgICAg
ICdkb20vSXRlbU5vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmgnLAogICAg
ICAgICAgICAgJ2RvbS9LZXlib2FyZEV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0xvY2Fs
TWVkaWFTdHJlYW0uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA5NTc4NykKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC01MDcsNiArNTA3
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKICAgICBkb20v
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCiAgICAgZG9tL0ljb25VUkwuY3BwIFwKKyAg
ICBkb20vSXRlbU5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL0tleWJvYXJkRXZlbnQuY3BwIFwKICAg
ICBkb20vTWVzc2FnZUNoYW5uZWwuY3BwIFwKICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcCBcCkBA
IC0xNTEzLDYgKzE1MTQsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vRXhjZXB0aW9uQmFzZS5o
IFwKICAgICBkb20vRXhjZXB0aW9uQ29kZS5oIFwKICAgICBkb20vRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uLmggXAorICAgIGRvbS9JdGVtTm9kZUxpc3QuaCBcCiAgICAgZG9tL0tleWJvYXJk
RXZlbnQuaCBcCiAgICAgZG9tL01lc3NhZ2VDaGFubmVsLmggXAogICAgIGRvbS9NZXNzYWdlRXZl
bnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA5NTc4NykKKysrIFNvdXJjZS9X
ZWJDb3JlL2ZlYXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCBpc0Vt
cHR5KEhBVkVfUVJBV0ZPTlQpIHsKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVUQUlMUz0u
KTogREVGSU5FUyArPSBFTkFCTEVfREVUQUlMUz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X01FVEVSX1RBRz0uKTogREVGSU5FUyArPSBFTkFCTEVfTUVURVJfVEFHPTEKICFjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfTUhUTUw9Lik6IERFRklORVMgKz0gRU5BQkxFX01IVE1MPTAKKyFjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfTUlDUk9EQVRBPS4pOiBERUZJTkVTICs9IEVOQUJMRV9NSUNS
T0RBVEE9MAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9QUk9HUkVTU19UQUc9Lik6IERFRklO
RVMgKz0gRU5BQkxFX1BST0dSRVNTX1RBRz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0JM
T0I9Lik6IERFRklORVMgKz0gRU5BQkxFX0JMT0I9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9OT1RJRklDQVRJT05TPS4pOiBERUZJTkVTICs9IEVOQUJMRV9OT1RJRklDQVRJT05TPTEKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZp
c2lvbiA5NTc4NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NjI2Miw2ICs0NjI2Miw2MiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cSXRlbU5vZGVMaXN0LmNw
cCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXEl0ZW1Ob2RlTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVt
ZW50ZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJ
KHJldmlzaW9uIDk1Nzg3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSwxMCBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAg
Tm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCisjaWYgZGVmaW5lZChFTkFCTEVfTUlDUk9E
QVRBKSAmJiBFTkFCTEVfTUlDUk9EQVRBCisgICAgICAgIE5vZGVMaXN0IGdldEl0ZW1zKGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGVOYW1lcyk7CisjZW5k
aWYKKwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVND
UklQVAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRp
b247CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxpc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JdGVtTm9kZUxpc3QuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0l0ZW1Ob2RlTGlzdC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9i
aWxpdHksIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIE1PQklMSVRZLCBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBNT0JJ
TElUWSwgSU5DLiBPUiBJVFMKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorI2luY2x1ZGUgIkl0ZW1Ob2RlTGlzdC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0l0ZW1Ob2RlTGlzdDo6SXRlbU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9k
ZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWVzKQorICAgIDogRHluYW1pY05vZGVM
aXN0KHJvb3ROb2RlKQorICAgICwgbV90eXBlTmFtZXModHlwZU5hbWVzLCBtX3Jvb3ROb2RlLT5k
b2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKKyAgICAsIG1fb3JpZ2luYWxUeXBlTmFtZXModHlw
ZU5hbWVzKQoreworfQorCitJdGVtTm9kZUxpc3Q6On5JdGVtTm9kZUxpc3QoKQoreworICAgIG1f
cm9vdE5vZGUtPnJlbW92ZUNhY2hlZEl0ZW1Ob2RlTGlzdCh0aGlzLCBtX29yaWdpbmFsVHlwZU5h
bWVzKTsKK30KKworYm9vbCBJdGVtTm9kZUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3RO
b2RlKSBjb25zdAoreworICAgIGlmICghdGVzdE5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgSFRNTEVsZW1lbnQqIHRlc3RFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPih0ZXN0Tm9kZSk7CisgICAgaWYgKCF0ZXN0RWxlbWVudC0+aGFz
QXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXNjb3BlQXR0cikgfHwgdGVzdEVsZW1lbnQtPmhhc0F0
dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW1wcm9wQXR0cikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmIChtX3R5cGVOYW1lcy5jb250YWlucygidW5kZWZpbmVkIikgfHwgIW1fdHlwZU5h
bWVzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV90eXBlTmFt
ZXMuY29udGFpbnModGVzdEVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW10eXBl
QXR0cikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUlDUk9EQVRBKQorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSXRlbU5vZGVMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0l0ZW1Ob2RlTGlzdC5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0l0ZW1Ob2RlTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9CSUxJVFks
IElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBJdGVtTm9kZUxpc3RfaAorI2RlZmluZSBJdGVtTm9kZUxpc3RfaAor
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKworI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSXRlbU5vZGVMaXN0IDogcHVibGljIER5bmFtaWNOb2Rl
TGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SXRlbU5vZGVMaXN0PiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEl0ZW1Ob2RlTGlzdChyb290Tm9kZSwg
dHlwZU5hbWVzKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+SXRlbU5vZGVMaXN0KCk7CisKK3By
aXZhdGU6CisgICAgSXRlbU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0
IFN0cmluZyYgdHlwZU5hbWVzKTsKKworICAgIHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVt
ZW50KikgY29uc3Q7CisKKyAgICBTcGFjZVNwbGl0U3RyaW5nIG1fdHlwZU5hbWVzOworICAgIFN0
cmluZyBtX29yaWdpbmFsVHlwZU5hbWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKKyNlbmRpZiAvLyBJdGVtTm9kZUxpc3RfaAor
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiA5NTc4NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOSBAQAogI2luY2x1ZGUg
IkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2lmIEVOQUJMRShNSUNST0RBVEEpCisj
aW5jbHVkZSAiSXRlbU5vZGVMaXN0LmgiCisjZW5kaWYKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50
LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBA
IC0xMTMwLDYgKzExMzMsMTkgQEAgdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRUYWdOb2RlTGlzdChU
YWdObwogICAgIGRhdGEtPm1fdGFnTm9kZUxpc3RDYWNoZU5TLnJlbW92ZShuYW1lLmltcGwoKSk7
CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQordm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRJdGVt
Tm9kZUxpc3QoSXRlbU5vZGVMaXN0KiBsaXN0LCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lKQorewor
ICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKKyAgICBBU1NFUlQocmFyZURhdGEoKS0+bm9kZUxpc3Rz
KCkpOworICAgIEFTU0VSVF9VTlVTRUQobGlzdCwgbGlzdC0+aGFzT3duQ2FjaGVzKCkpOworCisg
ICAgTm9kZUxpc3RzTm9kZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpLT5ub2RlTGlzdHMoKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QgPT0gZGF0YS0+bV9pdGVtTm9kZUxpc3RDYWNoZS5n
ZXQodHlwZU5hbWUpKTsKKyAgICBkYXRhLT5tX2l0ZW1Ob2RlTGlzdENhY2hlLnJlbW92ZSh0eXBl
TmFtZSk7Cit9CisjZW5kaWYKKwogdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRMYWJlbHNOb2RlTGlz
dChEeW5hbWljTm9kZUxpc3QqIGxpc3QpCiB7CiAgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwpAQCAt
MTcxMyw2ICsxNzI5LDI1IEBAIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEVsZW1lbnRz
QnkKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBl
TmFtZXMpCit7CisgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAg
ICBpZiAoIWRhdGEtPm5vZGVMaXN0cygpKSB7CisgICAgICAgIGRhdGEtPnNldE5vZGVMaXN0cyhO
b2RlTGlzdHNOb2RlRGF0YTo6Y3JlYXRlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRkTm9k
ZUxpc3RDYWNoZSgpOworICAgIH0KKworICAgIHBhaXI8Tm9kZUxpc3RzTm9kZURhdGE6Okl0ZW1O
b2RlTGlzdENhY2hlOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gZGF0YS0+bm9kZUxpc3RzKCkt
Pm1faXRlbU5vZGVMaXN0Q2FjaGUuYWRkKHR5cGVOYW1lcywgMCk7CisgICAgaWYgKCFyZXN1bHQu
c2Vjb25kKQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxOb2RlTGlzdD4ocmVzdWx0LmZpcnN0
LT5zZWNvbmQpOworCisgICAgUmVmUHRyPEl0ZW1Ob2RlTGlzdD4gbGlzdCA9IEl0ZW1Ob2RlTGlz
dDo6Y3JlYXRlKHRoaXMsIHR5cGVOYW1lcyk7CisgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBs
aXN0LmdldCgpOworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKK30KKyNlbmRpZgorCiBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNvbnN0IFN0cmlu
ZyYgY2xhc3NOYW1lcykKIHsKICAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0
YSgpOwpAQCAtMjQxNCw2ICsyNDQ5LDEyIEBAIHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFs
aWRhdGVDYWNoZXMKICAgICBmb3IgKENsYXNzTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IgaXQgPSBt
X2NsYXNzTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBpdCAhPSBjbGFzc0NhY2hlRW5kOyArK2l0KQog
ICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisgICAgSXRlbU5vZGVMaXN0Q2FjaGU6Oml0ZXJhdG9yIGl0ZW1DYWNoZUVuZCA9IG1f
aXRlbU5vZGVMaXN0Q2FjaGUuZW5kKCk7CisgICAgZm9yIChJdGVtTm9kZUxpc3RDYWNoZTo6aXRl
cmF0b3IgaXQgPSBtX2l0ZW1Ob2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IGl0ZW1DYWNoZUVu
ZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CisjZW5kaWYK
KwogICAgIE5hbWVOb2RlTGlzdENhY2hlOjppdGVyYXRvciBuYW1lQ2FjaGVFbmQgPSBtX25hbWVO
b2RlTGlzdENhY2hlLmVuZCgpOwogICAgIGZvciAoTmFtZU5vZGVMaXN0Q2FjaGU6Oml0ZXJhdG9y
IGl0ID0gbV9uYW1lTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBpdCAhPSBuYW1lQ2FjaGVFbmQ7ICsr
aXQpCiAgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNoZSgpOwpAQCAtMjQzNyw2ICsy
NDc4LDEwIEBAIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkoKSBjb25zdAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFtX25hbWVOb2RlTGlzdENhY2hlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgaWYgKG1f
aXRlbU5vZGVMaXN0Q2FjaGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKIAogICAgIGlmIChtX2xhYmVsc05vZGVMaXN0Q2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gOTU3ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw5IEBAIGNsYXNzIEZsb2F0UG9p
bnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0
OworI2lmIEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBJdGVtTm9kZUxpc3Q7CisjZW5kaWYKIGNs
YXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOU1Jlc29sdmVyOwogY2xhc3MgTmFtZWROb2RlTWFw
OwpAQCAtNTEzLDYgKzUxNiw5IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeUxvY2FsTm9kZUxp
c3RzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2RlTGlzdHNMYWJl
bENoYW5nZWQoKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZENsYXNzTm9kZUxpc3QoQ2xhc3NOb2Rl
TGlzdCosIGNvbnN0IFN0cmluZyYpOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdm9pZCBy
ZW1vdmVDYWNoZWRJdGVtTm9kZUxpc3QoSXRlbU5vZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7Cisj
ZW5kaWYKICAgICB2b2lkIHJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lTm9kZUxpc3QqLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vZGVM
aXN0KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRUYWdOb2Rl
TGlzdChUYWdOb2RlTGlzdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTUyMyw2ICs1Mjks
MTAgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1l
KGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoY29uc3QgU3RyaW5nJiBjbGFzc05hbWVzKTsKIAorI2lmIEVO
QUJMRShNSUNST0RBVEEpCisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0SXRlbXMoY29uc3Qg
U3RyaW5nJiB0eXBlTmFtZXMpOworI2VuZGlmCisKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHF1
ZXJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBxdWVyeVNlbGVjdG9yQWxsKGNvbnN0IFN0cmluZyYgc2Vs
ZWN0b3JzLCBFeGNlcHRpb25Db2RlJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgJKHJldmlzaW9uIDk1Nzg3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCwxMSBAQAogCiAjaW5jbHVkZSAiQ2xhc3NOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyNpbmNsdWRlICJJdGVtTm9kZUxpc3QuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSAiTmFt
ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlRhZ05v
ZGVMaXN0LmgiCkBAIC01Niw3ICs2MSwxMiBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIEhhc2hN
YXA8UmVmUHRyPFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBsPiwgVGFnTm9kZUxpc3Qq
PiBUYWdOb2RlTGlzdENhY2hlTlM7CiAgICAgVGFnTm9kZUxpc3RDYWNoZU5TIG1fdGFnTm9kZUxp
c3RDYWNoZU5TOwotIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB0eXBlZGVmIEhhc2hN
YXA8U3RyaW5nLCBJdGVtTm9kZUxpc3QqPiBJdGVtTm9kZUxpc3RDYWNoZTsKKyAgICBJdGVtTm9k
ZUxpc3RDYWNoZSBtX2l0ZW1Ob2RlTGlzdENhY2hlOworI2VuZGlmCisKICAgICBMYWJlbHNOb2Rl
TGlzdCogbV9sYWJlbHNOb2RlTGlzdENhY2hlOwogIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE5v
ZGVMaXN0c05vZGVEYXRhPiBjcmVhdGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4JKHJldmlzaW9uIDk1Nzg3KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsMTAg
QEAgaWQKIGluY3JlbWVudGFsCiBpbmRldGVybWluYXRlCiBpc21hcAoraXRlbWlkCitpdGVtcHJv
cAoraXRlbXNjb3BlCitpdGVtdHlwZQoga2V5dHlwZQoga2luZAogbGFiZWwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NTc4NykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNiArMTk1LDEw
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEEKICAgICAgICAgICAg
IGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZh
bHNlIikpCiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJEcmFnLCBDU1NWYWx1ZU5vbmUpOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRlbXR5cGVBdHRyKSB7CisgICAgICAgIGl0ZW1UeXBl
QXR0cmlidXRlQ2hhbmdlZCgpOworI2VuZGlmCiAgICAgfQogLy8gc3RhbmRhcmQgZXZlbnRzCiAg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uY2xpY2tBdHRyKSB7CkBAIC05NzYsNiArOTgw
LDEzIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWYKICAgICB9CiB9
CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQordm9pZCBIVE1MRWxlbWVudDo6aXRlbVR5cGVBdHRy
aWJ1dGVDaGFuZ2VkKCkKK3sKKyAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gOTU3ODcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcs
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRl
ckNoaWxkQXR0cmlidXRlQ2hhbmdlZChFbGVtZW50KiBjaGlsZCk7CiAgICAgdm9pZCBhZGp1c3RE
aXJlY3Rpb25hbGl0eUlmTmVlZGVkQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9kZSogYmVmb3JlQ2hh
bmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKTsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFs
aXR5KE5vZGUqKiBzdHJvbmdEaXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgdm9pZCBpdGVtVHlwZUF0dHJpYnV0ZUNoYW5nZWQoKTsK
KyNlbmRpZgogfTsKIAogaW5saW5lIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVtZW50KE5vZGUqIG5v
ZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gOTU3ODcp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtNjYsNiArNjYsMTAgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuIHNwZWxsY2hlY2s7CiAKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1NSUNST0RBVEEsIFJlZmxlY3RdIGJvb2xlYW4gaXRlbVNjb3BlOworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9N
U3RyaW5nIGl0ZW1UeXBlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1JZDsKKwogI2lmIGRlZmluZWQoTEFO
R1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGVEaXNwbGF5U3RyaW5nOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTU3ODcpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDExLTA5LTIzICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNy
b2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVO
QUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1wbGVtZW50IGRvY3VtZW50LmdldEl0ZW1z
KCkgRE9NIEFQSS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTEtMDktMjIgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBSb2xsZWQgREVQUy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkJKHJldmlzaW9uIDk1Nzg3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAgICAgICAnRU5BQkxFX01FRElB
X1NUUkVBTT0xJywKICAgICAgICdFTkFCTEVfTUVURVJfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9N
SFRNTD0xJywKKyAgICAgICdFTkFCTEVfTUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9OT1RJ
RklDQVRJT05TPTEnLAogICAgICAgJ0VOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MScs
CiAgICAgICAnRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wJywKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1Nzg3KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDkt
MjMgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0
OgorCiAyMDExLTA5LTIyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIGVuYWJsZSBOUldUIGZvciBydW4td2Via2l0LXRlc3RzIG9uIExpb24KSW5kZXg6IFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CShyZXZpc2lvbiA5NTc4NykKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0
CSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBAIG15ICgKICAgICAkbWVkaWFTdHJlYW1T
dXBwb3J0LAogICAgICRtZXRlclRhZ1N1cHBvcnQsCiAgICAgJG1odG1sU3VwcG9ydCwKKyAgICAk
bWljcm9kYXRhU3VwcG9ydCwKICAgICAkbmV0c2NhcGVQbHVnaW5TdXBwb3J0LAogICAgICRub3Rp
ZmljYXRpb25zU3VwcG9ydCwKICAgICAkb2ZmbGluZVdlYkFwcGxpY2F0aW9uU3VwcG9ydCwKQEAg
LTIzMyw2ICsyMzQsOSBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIm1odG1s
IiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUhUTUwiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKKyAg
ICB7IG9wdGlvbiA9PiAibWljcm9kYXRhIiwgZGVzYyA9PiAiVG9nZ2xlIE1pY3JvZGF0YSBzdXBw
b3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01JQ1JPREFUQSIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRtaWNyb2RhdGFTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAibmV0c2Nh
cGUtcGx1Z2luIiwgZGVzYyA9PiAiTmV0c2NhcGUgUGx1Z2luIHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzRWZsKCks
IHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5TdXBwb3J0IH0sCiAKSW5kZXg6IFdlYktpdExpYnJh
cmllcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwko
cmV2aXNpb24gOTU3ODcpCisrKyBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjMgIEFya28gU2FoYSAgPGFya29AbW90b3Jv
bGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9j
dW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1w
bGVtZW50IGRvY3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKworICAgICAgICAqIHdpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6CisgICAgICAgICogd2luL3Rvb2xzL3Zz
cHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgorCiAyMDExLTA5LTIyICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgRU5BQkxFX0NTU19GSUxURVJT
CkluZGV4OiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMu
dnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXMudnNwcm9wcwkocmV2aXNpb24gOTU3ODcpCisrKyBXZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwkod29ya2luZyBjb3B5
KQpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxF
XzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9C
TE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQo
RU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RB
VEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7
JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7
JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0Up
OyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJM
RV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5B
QkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVf
UVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7
JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNF
KTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFC
TEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFC
TEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChF
TkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
OyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMp
OyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVf
U1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NU
T1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQo
RU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9OT1RJRklDQVRJ
T05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTsk
KEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZH
X0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlO
Ryk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQo
RU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZB
UyIKQEAgLTE2Miw2ICsxNjIsMTEgQEAKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgog
CS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxFX01JQ1JPREFUQSIKKwkJVmFsdWU9IiIK
KwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFt
ZT0iRU5BQkxFX05PVElGSUNBVElPTlMiCiAJCVZhbHVlPSIiCiAJCVBlcmZvcm1FbnZpcm9ubWVu
dFNldD0idHJ1ZSIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dp
bi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwkocmV2aXNpb24gOTU3
ODcpCisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXND
YWlyby52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wK
IAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQo
RU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0NTU19GSUxURVJT
KTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxF
X1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9T
VE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVf
Q1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChF
TkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTsk
KEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFC
TEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJ
REVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQo
RU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJT
KTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JF
TkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTsk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxF
X0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklE
KTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFC
TEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RP
UllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFC
TEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBV
VF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNS
T0RBVEEpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1Nf
VEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
SFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNy
bwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtMTYyLDYgKzE2MiwxMSBAQAogCQlQZXJm
b3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFC
TEVfTUlDUk9EQVRBIgorCQlWYWx1ZT0iIgorCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUi
CisJLz4KKyAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfTk9USUZJQ0FUSU9OUyIKIAkJVmFs
dWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgo=
</data>
<flag name="review"
          id="105426"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108656</attachid>
            <date>2011-09-26 05:49:36 -0700</date>
            <delta_ts>2011-09-28 00:18:40 -0700</delta_ts>
            <desc>Adding layout test</desc>
            <filename>layout_test_patch.diff</filename>
            <type>text/plain</type>
            <size>22868</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk1OTQ0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDktMjYgIEFya28gU2FoYSAgPGFya29A
bW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24g
b2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhLzAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhLzAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
MDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAw
My5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhLzAwNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA4
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwOC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL2NyZWF0ZS1lbGVtZW50LmpzOiBBZGRlZC4K
KyAgICAgICAgKGNyZWF0ZUVsZW0pOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wOS0yNiAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b25zIEFQSV0gYWxsb3cgcmVzb3VyY2VzIHRvIGhvb2sgb24gY2xpY2sgb24gcmVzb3VyY2UgbGlu
a3MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBET00gQVBJIG11c3QgZXhpc3QuCisKK1BBU1Mg
Tm9kZUxpc3QgaXMgZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAx
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIERPTSBBUEkgbXVzdCBleGlzdC48L3A+Cisg
ICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgdmFyIE5v
ZGVMaXN0ID0gZG9jdW1lbnQuZ2V0SXRlbXM7CisgICAgICBzaG91bGRCZURlZmluZWQoIk5vZGVM
aXN0Iik7CisgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICA8L3Njcmlw
dD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
Mi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBl
bnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggbXVzdCByZXR1cm4gdGhlIGNv
cnJlY3QgbnVtYmVyIG9mIE1pY3JvRGF0YSBJdGVtcyBpbiB0aGUgRG9jdW1lbnQuIAorQWxzbyBp
dCB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgcmV0dXJuIGEgbGl2ZSBOb2RlTGlz
dC4KKworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRob3V0IGF1cmd1bWVudDogUEFTUworZG9jdW1l
bnQuZ2V0SXRlbXMoKSB3aXRoIGVtcHR5IHN0cmluZyBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCitk
b2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nIGl0ZW10eXBl
IGluIHRoZSBhdXJndW1lbnQ6IFBBU1MKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDov
L2V4YW1wbGUuY29tL2JhcicgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUworZG9jdW1l
bnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZjEnIGl0ZW10eXBlIGluIHRo
ZSBhdXJndW1lbnQ6IFBBU1MKK05ld2x5IGFwcGVuZGVkIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQg
aW4gdGhlIE5vZGVMaXN0OiBQQVNTCitSZW1vdmluZyBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGlu
IHRoZSBOb2RlTGlzdDogUEFTUworCitURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NyZWF0ZS1lbGVtZW50LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
ICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoIG11
c3QgcmV0dXJuIHRoZSBjb3JyZWN0IG51bWJlciBvZiBNaWNyb0RhdGEgSXRlbXMgaW4gdGhlIERv
Y3VtZW50LgorICAgIDxicj5BbHNvIGl0IHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVz
dCByZXR1cm4gYSBsaXZlIE5vZGVMaXN0LgorICAgIDwvcD4KKworICAgIDxkaXYgaXRlbXNjb3Bl
IGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKyAgICA8
ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+
PC9kaXY+CisgICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJ0aHJlZSI+CisgICAgICA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4
YW1wbGUuY29tL2YxIiBpZD0iZm91ciI+PC9kaXY+CisgICAgPC9kaXY+CisKKyAgICA8c2NyaXB0
PgorICAgICAgdmFyIG9uZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKTsKKyAgICAg
IHZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJyk7CisgICAgICB2YXIgdGhy
ZWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKTsKKyAgICAgIHZhciBmb3VyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvdXInKTsKKworICAgICAgcnVuVGVzdChkb2N1bWVu
dC5nZXRJdGVtcygpLCBbb25lLCB0d28sIHRocmVlLCBmb3VyXSwgImRvY3VtZW50LmdldEl0ZW1z
KCkgd2l0aG91dCBhdXJndW1lbnQiKTsKKyAgICAgIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMo
JycpLCBbb25lLCB0d28sIHRocmVlLCBmb3VyXSwgImRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCBl
bXB0eSBzdHJpbmcgaW4gdGhlIGF1cmd1bWVudCIpOworICAgICAgcnVuVGVzdChkb2N1bWVudC5n
ZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLCBbb25lLCB0aHJlZV0sICJkb2N1bWVu
dC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nIGl0ZW10eXBlIGluIHRo
ZSBhdXJndW1lbnQiKTsKKyAgICAgIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9iYXInKSwgW3R3b10sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6
Ly9leGFtcGxlLmNvbS9iYXInIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKKyAgICAgIHJ1
blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mMScpLCBbZm91cl0s
ICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mMScgaXRlbXR5
cGUgaW4gdGhlIGF1cmd1bWVudCIpOworCisgICAgICB2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0o
J2RpdicsIHtpdGVtc2NvcGU6J2l0ZW1zY29wZSd9KTsKKworICAgICAgLy8gQXBwZW5kIG5ld2x5
IGNyZWF0ZWQgaXRlbSB0byBib2R5CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOworICAgICAgcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d28sIHRo
cmVlLCBmb3VyLCBlbGVtZW50XSwgIk5ld2x5IGFwcGVuZGVkIGl0ZW0gc2hvdWxkIGJlIG5vdGlj
ZWQgaW4gdGhlIE5vZGVMaXN0Iik7CisKKyAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCAKKyAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7CisgICAgICBydW5UZXN0KGRv
Y3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3bywgdGhyZWUsIGZvdXJdLCAiUmVtb3ZpbmcgaXRl
bSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3QiKTsKKworICAgICAgZG9jdW1lbnQu
d3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7CisKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDAzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtc2NvcGUg
YXR0cmlidXRlIGNoYW5nZXMuCisKK1RoaXMgdGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1pY3JvZGF0
YSBpdGVtczogUEFTUworUmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVj
dCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKK1NldCBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCBy
ZWZsZWN0IGluIHRoZSBOb2RlTGlzdDogUEFTUworU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIGZh
bHNlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitTZXQgZWxlbWVudC5pdGVt
U2NvcGUgdG8gdHJ1ZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdDogUEFTUworCitURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NyZWF0ZS1lbGVtZW50LmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtc2NvcGUgYXR0cmlidXRlIGNoYW5n
ZXMuPC9wPgorICAgIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20v
Zm9vIiBpZD0ib25lIj48L2Rpdj4KKyAgICA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDov
L2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgIHZh
ciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7CisgICAgICB2YXIgdHdvID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOworCisgICAgICBydW5UZXN0KGRvY3VtZW50
LmdldEl0ZW1zKCksIFtvbmUsIHR3b10sICJUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNy
b2RhdGEgaXRlbXMiKTsKKworIAorICAgICAgLy8gUmVtb3ZlIGl0ZW1zY29wZSBhdHRyaWJ1dGUK
KyAgICAgIG9uZS5yZW1vdmVBdHRyaWJ1dGUoJ2l0ZW1zY29wZScpOworICAgICAgCisgICAgICBy
dW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFt0d29dLCAiUmVtb3ZpbmcgaXRlbXNjb3BlIGF0
dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3QiKTsKKworICAgICAgLy8gU2V0
dGluZyBpdGVtc2NvcGUgYXR0cmlidXRlCisgICAgICBvbmUuc2V0QXR0cmlidXRlKCdpdGVtc2Nv
cGUnLCdpdGVtc2NvcGUnKTsKKyAgICAgIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29u
ZSwgdHdvXSwgIlNldCBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBO
b2RlTGlzdCIpOworCisgICAgICAvLyBTZXR0aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgdG8gZmFs
c2UKKyAgICAgIHR3by5pdGVtU2NvcGUgPSBmYWxzZTsKKyAgICAgIHJ1blRlc3QoZG9jdW1lbnQu
Z2V0SXRlbXMoKSwgW29uZV0sICJTZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8gZmFsc2Ugc2hvdWxk
IG5vdGljZSBpbiB0aGUgTm9kZUxpc3QiKTsKKworICAgICAgLy8gU2V0dGluZyBpdGVtc2NvcGUg
YXR0cmlidXRlIHRvIHRydWUKKyAgICAgIHR3by5pdGVtU2NvcGUgPSB0cnVlOworICAgICAgcnVu
VGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d29dLCAiU2V0IGVsZW1lbnQuaXRlbVNj
b3BlIHRvIHRydWUgc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3QiKTsKKworICAgICAgZG9j
dW1lbnQud3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7CisKKyAgICA8L3NjcmlwdD4KKworICA8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1
bWVudC5nZXRJdGVtcyBtdXN0IGJlIGNhc2Ugc2Vuc2l0aXZlLgorCitQQVNTIGRvY3VtZW50Lmdl
dEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vRm9vJykubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFT
UyBkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxlbmd0aCA9PSAx
IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9CQVIn
KS5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhh
bXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBiZSBjYXNl
IHNlbnNpdGl2ZS48L3A+CisgICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFt
cGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2PgorICAgIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBl
PSJodHRwOi8vZXhhbXBsZS5jb20vQkFSIiBpZD0idHdvIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICBzaG91bGRCZVRydWUoImRvY3Vt
ZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vRm9vJykubGVuZ3RoID09IDAiKTsKKyAg
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9m
b28nKS5sZW5ndGggPT0gMSIpOworCisgICAgICBzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0
ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vQkFSJykubGVuZ3RoID09IDEiKTsKKyAgICAgIHNob3Vs
ZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInKS5sZW5n
dGggPT0gMCIpOworCisgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICA8
L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhLzAwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0
ZXN0cyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtdHlwZSBjaGFuZ2Vz
LgorCitUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXM6IFBBU1MKK05v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKK05v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKKworVEVT
VCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUtZWxlbWVudC5qcyI+PC9z
Y3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0cyB0aGF0IGxpdmUg
Tm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtdHlwZSBjaGFuZ2VzLjwvcD4KKyAgICA8ZGl2
IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9k
aXY+CisgICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28i
IGlkPSJ0d28iPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBvbmUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnb25lJyk7CisgICAgICB2YXIgdHdvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3R3bycpOworCisgICAgICBydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHR3b10sICJUaGlzIHRlc3QgcGFnZSBjb250YWlu
IHR3byBtaWNyb2RhdGEgaXRlbXMiKTsKKworICAgICAgCisgICAgICAvLyBSZW1vdmUgaXRlbXR5
cGUgYXR0cmlidXRlCisgICAgICBvbmUucmVtb3ZlQXR0cmlidXRlKCdpdGVtdHlwZScpOworICAg
ICAgcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLCBb
dHdvXSwgIk5vZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1dGUgaXRlbXR5cGUi
KTsKKworICAgICAgLy8gU2V0IGl0ZW10eXBlIGF0dHJpYnV0ZQorICAgICAgb25lLnNldEF0dHJp
YnV0ZSgnaXRlbXR5cGUnLCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyk7CisgICAgICBydW5UZXN0
KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHR3b10s
ICJOb2RlTGlzdCBtdXN0IG5vdGljZSBvbiBzZXQgYXR0cmlidXRlIGl0ZW10eXBlIik7CisKKyAg
ICAgIGRvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOworCisgICAgPC9zY3JpcHQ+
CisKKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdHMgdGhhdCBkb2N1
bWVudC5nZXRJdGVtcyBtdXN0IGxvY2F0ZSBpdGVtcyB3aGVuIHBhcmFtZXRlcnMgYXJlIHNlcGFy
YXRlZCBieSBzcGFjZXMuIAorVGhpcyB0ZXN0IGFsc28gZW5zdXJlIHRoYXQgZG9jdW1lbnQuZ2V0
SXRlbXMgbXVzdCBpZ25vcmUgZHVwbGljYXRlZCB0b2tlbnMuCisKK1BBU1MgZG9jdW1lbnQuZ2V0
SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGh0dHA6Ly9leGFtcGxlLmNvbS9iYXIgJyku
bGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFt
cGxlLmNvbS9mb28gZGF0YTp0ZXh0L3BsYWluICcpLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1Mg
ZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGRhdGE6dGV4dC9wbGFp
biBodHRwOi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxwPlRoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGxv
Y2F0ZSBpdGVtcyB3aGVuIHBhcmFtZXRlcnMgYXJlIHNlcGFyYXRlZCBieSBzcGFjZXMuCisgICAg
PGJyPlRoaXMgdGVzdCBhbHNvIGVuc3VyZSB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgaWdu
b3JlIGR1cGxpY2F0ZWQgdG9rZW5zLgorICAgIDwvcD4KKyAgICA8ZGl2IGl0ZW1zY29wZSBpdGVt
dHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyI+PC9kaXY+CisgICAgPGRpdiBpdGVtc2NvcGUg
aXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiPgorICAgICAgPGRpdiBpdGVtc2NvcGUg
aXRlbXR5cGU9ImRhdGE6dGV4dC9wbGFpbiI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgc2hvdWxkQmVUcnVlKCJk
b2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gaHR0cDovL2V4YW1wbGUu
Y29tL2JhciAnKS5sZW5ndGggPT0gMiIpOworICAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5n
ZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAgJykubGVu
Z3RoID09IDIiKTsKKyAgICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJyAgaHR0
cDovL2V4YW1wbGUuY29tL2ZvbyAgZGF0YTp0ZXh0L3BsYWluICBodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJykubGVuZ3RoID09IDIiKTsKKworICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgTm9kZUxpc3QgbXVzdCBiZSBp
biBzb3VyY2UgdHJlZSBvcmRlci4KKworUEFTUyBub2RlTGlzdFswXS5pZCBpcyAnb25lJworUEFT
UyBub2RlTGlzdFsxXS5pZCBpcyAndHdvJworUEFTUyBub2RlTGlzdFsyXS5pZCBpcyAndGhyZWUn
CitQQVNTIG5vZGVMaXN0WzNdLmlkIGlzICdmb3VyJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMDcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxw
PlRoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBOb2RlTGlzdCBtdXN0IGJlIGluIHNv
dXJjZSB0cmVlIG9yZGVyLjwvcD4KKworICAgIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKyAgICA8ZGl2IGl0ZW1zY29wZSBp
dGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+CisgICAgPGRp
diBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0aHJlZSI+
CisgICAgICA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iZGF0YTp0ZXh0L3BsYWluLCIgaWQ9ImZv
dXIiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaXRlbXNjb3BlIGlkPSJmaXZlIj48L2Rp
dj4KKworICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAg
IHZhciBub2RlTGlzdCA9IGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFy
IGRhdGE6dGV4dC9wbGFpbiwgaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpOworCisgICAgICBzaG91
bGRCZSgibm9kZUxpc3RbMF0uaWQiLCAiJ29uZSciKTsKKyAgICAgIHNob3VsZEJlKCJub2RlTGlz
dFsxXS5pZCIsICIndHdvJyIpOworICAgICAgc2hvdWxkQmUoIm5vZGVMaXN0WzJdLmlkIiwgIid0
aHJlZSciKTsKKyAgICAgIHNob3VsZEJlKCJub2RlTGlzdFszXS5pZCIsICInZm91ciciKTsKKwor
ICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDgtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBub3QgZmluZCBpdGVtcyB3aXRoIGl0ZW10eXBlIGJ1
dCBub3QgaXRlbXNjb3BlLgorCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBs
ZS5jb20vYmFyJykubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMDguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA4Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA4Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxw
PlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBub3QgZmluZCBp
dGVtcyB3aXRoIGl0ZW10eXBlIGJ1dCBub3QgaXRlbXNjb3BlLjwvcD4KKworICAgIDxkaXYgaXRl
bXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIj48L2Rpdj4KKyAgICA8ZGl2
IGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIj48L2Rpdj4KKworICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgIHNob3VsZEJlVHJ1ZSgiZG9j
dW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInKS5sZW5ndGggPT0gMCIpOwor
CisgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICA8L3NjcmlwdD4KKwor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwOS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0
IG5vdCBjb250YWluIHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBz
ZXQuIEl0IG11c3QgcmV0dXJuIGEgTm9kZUxpc3QgY29udGFpbmluZyB0aGUgdG9wLWxldmVsIG1p
Y3JvZGF0YSBpdGVtcyBpbiB0aGUgZG9jdW1lbnQuCisKK05hbWU6IEFtYW5kYQorCitCYW5kOiBK
YXp6IEJhbmQgKDEyIHBsYXllcnMpCisKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGgg
PT0gNiBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDQgaXMgdHJ1
ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA1IGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5
IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHA+
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBjb250YWlu
IHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBzZXQuCisgICAgSXQg
bXVzdCByZXR1cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIHRoZSB0b3AtbGV2ZWwgbWljcm9kYXRh
IGl0ZW1zIGluIHRoZSBkb2N1bWVudC48L3A+CisKKyAgICA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+CisgICAgPGRpdiBpdGVt
c2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiIGlkPSJ0d28iPjwvZGl2Pgor
CisgICAgPGRpdiBpdGVtc2NvcGU+CisgICAgICA8cD5OYW1lOiA8c3BhbiBpdGVtcHJvcD0ibmFt
ZSI+QW1hbmRhPC9zcGFuPjwvcD4KKyAgICAgIDxwPkJhbmQ6IDxzcGFuIGl0ZW1wcm9wPSJiYW5k
IiBpdGVtc2NvcGU+IDxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5KYXp6IEJhbmQ8L3NwYW4+ICg8c3Bh
biBpdGVtcHJvcD0ic2l6ZSI+MTI8L3NwYW4+IHBsYXllcnMpPC9zcGFuPjwvcD4KKyAgICA8L2Rp
dj4KKworICAgIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9v
IiBpZD0idGhyZWUiPgorICAgICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFt
cGxlLmNvbS9mMSIgaWQ9ImZvdXIiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaXRlbXNj
b3BlIGlkPSJmaXZlIj48L2Rpdj4KKworICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKyAgICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5n
dGggPT0gNiIpOworCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykuc2V0QXR0
cmlidXRlKCdpdGVtcHJvcCcsICd0ZXN0Jyk7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZml2ZScpLnNldEF0dHJpYnV0ZSgnaXRlbXByb3AnLCAndGVzdCcpOworICAgICAgc2hvdWxk
QmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA0Iik7CisKKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmaXZlJykucmVtb3ZlQXR0cmlidXRlKCdpdGVtcHJvcCcpOwor
ICAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA1Iik7CisK
KyAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorCisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvcmVzb3VyY2VzL2NyZWF0ZS1lbGVtZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvY3JlYXRlLWVsZW1lbnQuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL2NyZWF0
ZS1lbGVtZW50LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvLyB0aGlzIGZ1bmN0
aW9uIGNyZWF0ZXMgZWxlbWVudCB3aXRoIHNwZWNpZmllZCBwcm9wZXJ0eSBhbmQgY29udGVudHMu
CitmdW5jdGlvbiBjcmVhdGVFbGVtKHR5cGUscHJvcHMsY29udGVudHMpIHsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCisgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUp
OworCisgICAgZm9yKCB2YXIgaSBpbiBwcm9wcyApIHsKKyAgICAgIGlmKCBwcm9wcy5oYXNPd25Q
cm9wZXJ0eShpKSApIHsKKyAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoaSxwcm9wc1tpXSk7Cisg
ICAgICB9CisgICAgfQorICAgIGlmKCBjb250ZW50cyApIHsKKyAgICAgIGVsZW0uaW5uZXJIVE1M
ID0gY29udGVudHM7CisgICAgfQorICAgIHJldHVybiBlbGVtOworfQorCisKKy8vIHJ1bnMgYSB0
ZXN0IGFuZCB3cml0ZXMgYSBsb2cKK2Z1bmN0aW9uIHJ1blRlc3QoY29sbGVjdGlvbiwgZWxlbWVu
dHMsIHRpdGxlKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIGRvY3VtZW50LndyaXRlKHRpdGxl
ICsgJzogJyk7CisgIHBhc3MgPSB0cnVlOworICAKKyAgaWYgKGNvbGxlY3Rpb24ubGVuZ3RoICE9
IGVsZW1lbnRzLmxlbmd0aCkgeworICAgIHBhc3MgPSBmYWxzZQorICAgIGRvY3VtZW50LndyaXRl
KCdGQUlMIC0gZXhwZWN0ZWQgJyArIGVsZW1lbnRzLmxlbmd0aCArICcgZWxlbWVudHMgYnV0IGdv
dCAnICsgY29sbGVjdGlvbi5sZW5ndGggKyAiIGVsZW1lbnRzLiAiKTsKKyAgfQorICBmb3IodmFy
IGkgPSAwLCBtYXggPSBjb2xsZWN0aW9uLmxlbmd0aCA+IGVsZW1lbnRzLmxlbmd0aCA/IGVsZW1l
bnRzLmxlbmd0aCA6IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbWF4OyBpKyspIHsKKyAgICBpZihj
b2xsZWN0aW9uW2ldICE9IGVsZW1lbnRzW2ldKSB7CisgICAgICBwYXNzID0gZmFsc2UKKyAgICAg
IGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgZWxlbWVudCA6ICcgKyBlbGVtZW50c1tp
XS50YWdOYW1lICsgIiBidXQgZ290IGVsZW1lbnQgOiIgKyBjb2xsZWN0aW9uW2ldLnRhZ05hbWUp
OworICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwgLSBleHBlY3RlZCBlbGVtZW50IHdpdGggaWQ6
ICcgKyBlbGVtZW50c1tpXS5pZCArICIgYnV0IGdvdCBlbGVtZW50IHdpdGggaWQ6IiArIGNvbGxl
Y3Rpb25baV0uaWQpOworICAgIH0KKyAgfQorICBpZiAocGFzcykKKyAgICBkb2N1bWVudC53cml0
ZSgnUEFTUycpOworICBkb2N1bWVudC53cml0ZSgnPGJyPicpOworfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA5NTk0
NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjU0LDMgKzE2NTQsNSBAQCBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXVwZGF0ZXMtYWxs
ZGVzCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLWZpbHRlci1ieXBhc3MtYmln
NS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLWZpbHRlci1ieXBhc3Mt
c2ppcy5odG1sCiAKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBlbmFibGVkLgorZmFz
dC9kb20vTWljcm9EYXRhCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDk1
OTQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtMjM2OSwzICsyMzY5LDYgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vc2NyaXB0Lmh0
bWwKICMgRmFpbHMgb24gbm9uLUNocm9taXVtIGJvdHMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4Mjc4CiBodHRwL3Rlc3RzL2hpc3RvcnkvYmFjay13aXRoLWZy
YWdtZW50LWNoYW5nZS5waHAKKworIyBNaWNyb2RhdGEgRE9NIEFQSSBpcyBub3QgeWV0IGVuYWJs
ZWQuCitmYXN0L2RvbS9NaWNyb0RhdGEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShy
ZXZpc2lvbiA5NTk0NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDEzLDMgKzE0MTMsNiBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWluc2VydC1odG1sLmh0CiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY2NzczCiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2su
aHRtbAorCisjIE1pY3JvZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZG9t
L01pY3JvRGF0YQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108977</attachid>
            <date>2011-09-28 00:18:40 -0700</date>
            <delta_ts>2011-10-10 04:15:33 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch1.diff</filename>
            <type>text/plain</type>
            <size>56908</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk2MTkz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDkt
MjcgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAx
MS0wOS0yNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEZpeCBhIGJ1aWxkIGVycm9yIGluIFdlYktpdCBFRkwuCkluZGV4OiBj
b25maWd1cmUuYWMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29uZmlndXJlLmFjCShyZXZpc2lvbiA5NjE5MykK
KysrIGNvbmZpZ3VyZS5hYwkod29ya2luZyBjb3B5KQpAQCAtNDE0LDYgKzQxNCwxNCBAQCBBQ19B
UkdfRU5BQkxFKG1ldGVyX3RhZywKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9tZXRlcl90YWc9
InllcyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9tZXRlcl90YWddKQogCisjIGNoZWNrIHdo
ZXRoZXIgdG8gZW5hYmxlIEhUTUw1IE1pY3JvZGF0YSBzdXBwb3J0CitBQ19NU0dfQ0hFQ0tJTkco
W3doZXRoZXIgdG8gZW5hYmxlIEhUTUw1IE1pY3JvZGF0YSBzdXBwb3J0XSkKK0FDX0FSR19FTkFC
TEUobWljcm9kYXRhLAorICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtbWlj
cm9kYXRhXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSBIVE1MNSBtaWNy
b2RhdGEgc3VwcG9ydCBbZGVmYXVsdD1ub11dKSwKKyAgICAgICAgICAgICAgW10sW2VuYWJsZV9t
aWNyb2RhdGE9Im5vIl0pCitBQ19NU0dfUkVTVUxUKFskZW5hYmxlX21pY3JvZGF0YV0pCisKICMg
Y2hlY2sgd2hldGhlciB0byBlbmFibGUgcGFnZSB2aXNpYmlsaXR5IEFQSS4KIEFDX01TR19DSEVD
S0lORyhbd2hldGhlciB0byBlbmFibGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0XSkKIEFD
X0FSR19FTkFCTEUocGFnZV92aXNpYmlsaXR5X2FwaSwKQEAgLTExMTIsNiArMTEyMCw3IEBAIEFN
X0NPTkRJVElPTkFMKFtFTkFCTEVfM0RfUkVOREVSSU5HXSxbdGUKIEFNX0NPTkRJVElPTkFMKFtF
TkFCTEVfV0VCR0xdLFt0ZXN0ICIkZW5hYmxlX3dlYmdsIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElP
TkFMKFtFTkFCTEVfQkxPQl0sW3Rlc3QgIiRlbmFibGVfYmxvYiIgPSAieWVzIl0pCiBBTV9DT05E
SVRJT05BTChbRU5BQkxFX01FVEVSX1RBR10sW3Rlc3QgIiRlbmFibGVfbWV0ZXJfdGFnIiA9ICJ5
ZXMiXSkKK0FNX0NPTkRJVElPTkFMKFtFTkFCTEVfTUlDUk9EQVRBXSxbdGVzdCAiJGVuYWJsZV9t
aWNyb2RhdGEiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJXSxbdGVzdCAiJGVuYWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpIiA9ICJ5ZXMiXSkKIEFN
X0NPTkRJVElPTkFMKFtFTkFCTEVfUFJPR1JFU1NfVEFHXSxbdGVzdCAiJGVuYWJsZV9wcm9ncmVz
c190YWciID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9DSEFOTkVMX01FU1NBR0lO
R10sW3Rlc3QgIiRlbmFibGVfY2hhbm5lbF9tZXNzYWdpbmciID0gInllcyJdKQpAQCAtMTIzMyw2
ICsxMjQyLDcgQEAgRmVhdHVyZXM6CiAgTWVkaWEgc3RhdGlzdGljcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21lZGlhX3N0YXRpc3RpY3MKICBIVE1M
NSBjaGFubmVsIG1lc3NhZ2luZyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRl
bmFibGVfY2hhbm5lbF9tZXNzYWdpbmcKICBIVE1MNSBtZXRlciBlbGVtZW50IHN1cHBvcnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWV0ZXJfdGFnCisgSFRNTDUgbWlj
cm9kYXRhIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxl
X21pY3JvZGF0YQogIFBhZ2UgVmlzaWJpbGl0eSBBUEkgc3VwcG9ydCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogJGVuYWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpCiAgSFRNTDUgcHJvZ3Jl
c3MgZWxlbWVudCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3By
b2dyZXNzX3RhZwogIEhUTUw1IGNsaWVudC1zaWRlIHNlc3Npb24gYW5kIHBlcnNpc3RlbnQgc3Rv
cmFnZSBzdXBwb3J0IDogJGVuYWJsZV9kb21fc3RvcmFnZQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gOTYxOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw1NyBAQAorMjAxMS0wOS0yNyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+
CisKKyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5n
ZXRJdGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgRU5BQkxFKE1JQ1JPREFUQSkgZmVhdHVyZSBmbGFnLiBJbXBsZW1lbnQg
ZG9jdW1lbnQuZ2V0SXRlbXMoKSBET00gQVBJLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9N
aWNyb0RhdGEvMDAxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDIu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS8wMDUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
LzAwNi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDguaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL01p
Y3JvRGF0YUl0ZW1MaXN0LmNwcDogQWRkZWQuCisgICAgICAgIE1pY3JvZGF0YSBpdGVtcyBub2Rl
IGxpc3QgaW4gdGhlIGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxp
c3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1M
aXN0Ojp+TWljcm9EYXRhSXRlbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRl
bUxpc3Q6Om5vZGVNYXRjaGVzKToKKyAgICAgICAgKiBkb20vTWljcm9EYXRhSXRlbUxpc3QuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtTGlzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVDYWNo
ZWRNaWNyb0RhdGFJdGVtTGlzdCk6IFJlbW92ZSBNaWNyb2RhdGEgaXRlbSBub2RlIGxpc3QgZnJv
bSBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmdldEl0ZW1zKTogUmV0dXJucyBOb2Rl
TGlzdCBvZiB0aGUgZWxlbWVudCBpbiB0aGUgRG9jdW1lbnQgdGhhdAorICAgICAgICBjcmVhdGUg
aXRlbXMsIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIG90aGVyIGl0ZW1zLCBhbmQgdGhhdCBhcmUgb2Yg
b25lIG9mIHRoZSB0eXBlcworICAgICAgICBnaXZlbiBpbiB0aGUgYXJndW1lbnQuIElmIG5vIHRv
a2VucyBzcGVjaWZpZWQvdW5kZWZpbmVkIGluIHRoZSBhcmd1bWVudCwgdGhlbgorICAgICAgICBy
ZXR1cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIGFsbCB0b3AgbGV2ZWwgbWljcm9kYXRhIGl0ZW1z
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKTogSXQg
aXMgcmVzcG9uc2libGUgdG8gaW52YWxpZGF0ZQorICAgICAgICB0aGUgTWljcm9kYXRhIGl0ZW0g
bm9kZSBjYWNoZSB3aGVuIGl0ZW1UeXBlIGF0dHJpYnV0ZSBjaGFuZ2VzLgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRy
aWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRl
TWljcm9kYXRhSXRlbUxpc3RDYWNoZXMpOiBJbnZhbGlkYXRlIE1pY3JvZGF0YSBpdGVtCisgICAg
ICAgIGxpc3QgY2FjaGUuCisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6aXNF
bXB0eSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRh
Lmg6CisgICAgICAgICogZmVhdHVyZXMucHJpOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluOiBBZGRlZCBpdGVtaWQsIGl0ZW1wcm9wLCBpdGVtc2NvcGUsIGl0ZW10eXBlIGF0
dHJpYnV0ZXMuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOkhhbmRsZSBpdGVtdHlwZSBh
dHRyaWJ1dGUgY2hhbmdlLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOiBBZGRlZCBp
dGVtaWQsIGl0ZW1wcm9wLCBpdGVtc2NvcGUsIGl0ZW10eXBlcyBtaWNyb2RhdGEgYXR0cmlidXRl
cy4KKwogMjAxMS0wOS0yNyAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIERlZmVyIGNhbGwgdG8gQ1NTVmFsdWU6OmlzUHJpbWl0aXZlVmFsdWUo
KSwgc2F2ZXMgfjQlIGluIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoKS4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5NjE5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NDUsNiArNTQ1LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9NZXNzYWdlRXZlbnQuY3BwCiAgICAgZG9tL01lc3NhZ2VQb3J0
Q2hhbm5lbC5jcHAKICAgICBkb20vTWVzc2FnZVBvcnQuY3BwCisgICAgZG9tL01pY3JvRGF0YUl0
ZW1MaXN0LmNwcAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkocmV2aXNpb24gOTYxOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC03ODQsNiArNzg0LDEwIEBAIGlmZXEgKCQo
ZmluZHN0cmluZyBFTkFCTEVfTUVURVJfVEFHLCQoRkUKICAgICBIVE1MX0ZMQUdTIDo9ICQoSFRN
TF9GTEFHUykgRU5BQkxFX01FVEVSX1RBRz0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRzdHJpbmcg
RU5BQkxFX01JQ1JPREFUQSwkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfTUlDUk9EQVRBKQor
ICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfTUlDUk9EQVRBPTEKK2VuZGlm
CisKIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfUFJPR1JFU1NfVEFHLCQoRkVBVFVSRV9ERUZJ
TkVTKSksIEVOQUJMRV9QUk9HUkVTU19UQUcpCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxB
R1MpIEVOQUJMRV9QUk9HUkVTU19UQUc9MQogZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CShyZXZpc2lvbiA5NjE5MykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NzQsNiArNTc0LDE0IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfTUhUTUw9MQogZW5kaWYgICMgRU5EIEVOQUJMRV9NSFRNTAogCiAjIC0tLQorIyBIVE1MNSBN
aWNyb2RhdGEgc3VwcG9ydAorIyAtLS0KK2lmIEVOQUJMRV9NSUNST0RBVEEKK0ZFQVRVUkVfREVG
SU5FUyArPSBFTkFCTEVfTUlDUk9EQVRBPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
TUlDUk9EQVRBPTEKK2VuZGlmICAjIEVORCBFTkFCTEVfTUlDUk9EQVRBCisKKyMgLS0tCiAjIFJl
Z2lzdGVyIFByb3RvY29sIEhhbmRsZXIgc3VwcG9ydAogIyAtLS0KIGlmIEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJl
dmlzaW9uIDk2MTkzKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29y
a2luZyBjb3B5KQpAQCAtMTIxOCw2ICsxMjE4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5o
IFwKKyAgICBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwIFwKKyAgICBT
b3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDk2MTkzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CSh3b3JraW5nIGNvcHkpCkBAIC01MjA0LDYgKzUyMDQsOCBAQAogICAgICAgICAgICAgJ2RvbS9N
ZXNzYWdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VQb3J0LmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9N
aWNyb0RhdGFJdGVtTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9NaWNyb0RhdGFJdGVtTGlz
dC5oJywKICAgICAgICAgICAgICdkb20vTW91c2VFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50
LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTYxOTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNTA4LDYgKzUwOCw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGRvbS9NZXNzYWdlRXZlbnQuY3BwIFwKICAgICBkb20vTWVzc2FnZVBvcnQu
Y3BwIFwKICAgICBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBcCisgICAgZG9tL01pY3JvRGF0
YUl0ZW1MaXN0LmNwcCBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91c2VS
ZWxhdGVkRXZlbnQuY3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXApAQCAtMTUyMyw2
ICsxNTI0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL01lc3NhZ2VFdmVudC5oIFwKICAgICBk
b20vTWVzc2FnZVBvcnRDaGFubmVsLmggXAogICAgIGRvbS9NZXNzYWdlUG9ydC5oIFwKKyAgICBk
b20vTWljcm9EYXRhSXRlbUxpc3QuaCBcCiAgICAgZG9tL01vdXNlRXZlbnQuaCBcCiAgICAgZG9t
L01vdXNlUmVsYXRlZEV2ZW50LmggXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmggXApJbmRleDog
U291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2ZlYXR1cmVzLnByaQkocmV2aXNpb24gOTYxOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9mZWF0dXJl
cy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAgaXNFbXB0eShIQVZFX1FSQVdG
T05UKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVEFJTFM9Lik6IERFRklORVMgKz0g
RU5BQkxFX0RFVEFJTFM9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NRVRFUl9UQUc9Lik6
IERFRklORVMgKz0gRU5BQkxFX01FVEVSX1RBRz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X01IVE1MPS4pOiBERUZJTkVTICs9IEVOQUJMRV9NSFRNTD0wCishY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX01JQ1JPREFUQT0uKTogREVGSU5FUyArPSBFTkFCTEVfTUlDUk9EQVRBPTAKICFjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPS4pOiBERUZJTkVTICs9IEVOQUJMRV9Q
Uk9HUkVTU19UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9CTE9CPS4pOiBERUZJTkVT
ICs9IEVOQUJMRV9CTE9CPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTk9USUZJQ0FUSU9O
Uz0uKTogREVGSU5FUyArPSBFTkFCTEVfTk9USUZJQ0FUSU9OUz0xCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTYxOTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNDcwMTAsNiArNDcwMTAsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1pY3JvRGF0YUl0ZW1MaXN0LmNwcCIKKwkJCQk+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XE1pY3JvRGF0YUl0ZW1MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDk2MTkzKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTc1
LDYgKzE3NSwxMCBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeU5hbWUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZWxl
bWVudE5hbWUpOwogCisjaWYgZGVmaW5lZChFTkFCTEVfTUlDUk9EQVRBKSAmJiBFTkFCTEVfTUlD
Uk9EQVRBCisgICAgICAgIE5vZGVMaXN0IGdldEl0ZW1zKGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGVOYW1lcyk7CisjZW5kaWYKKwogI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIE1PQklMSVRZLCBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBNT0JJTElU
WSwgSU5DLiBPUiBJVFMKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
I2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTWljcm9EYXRhSXRlbUxpc3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KFBh
c3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWVzKQorICAgIDog
RHluYW1pY05vZGVMaXN0KHJvb3ROb2RlKQorICAgICwgbV90eXBlTmFtZXModHlwZU5hbWVzLCBt
X3Jvb3ROb2RlLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKKyAgICAsIG1fb3JpZ2luYWxU
eXBlTmFtZXModHlwZU5hbWVzKQoreworfQorCitNaWNyb0RhdGFJdGVtTGlzdDo6fk1pY3JvRGF0
YUl0ZW1MaXN0KCkKK3sKKyAgICBtX3Jvb3ROb2RlLT5yZW1vdmVDYWNoZWRNaWNyb0RhdGFJdGVt
TGlzdCh0aGlzLCBtX29yaWdpbmFsVHlwZU5hbWVzKTsKK30KKworYm9vbCBNaWNyb0RhdGFJdGVt
TGlzdDo6bm9kZU1hdGNoZXMoRWxlbWVudCogdGVzdE5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCF0
ZXN0Tm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBI
VE1MRWxlbWVudCogdGVzdEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KHRlc3RO
b2RlKTsKKyAgICBpZiAoIXRlc3RFbGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppdGVt
c2NvcGVBdHRyKSB8fCB0ZXN0RWxlbWVudC0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXBy
b3BBdHRyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fdHlwZU5hbWVzLmNv
bnRhaW5zKCJ1bmRlZmluZWQiKSB8fCAhbV90eXBlTmFtZXMuc2l6ZSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX3R5cGVOYW1lcy5jb250YWlucyh0ZXN0RWxlbWVudC0+
Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXR5cGVBdHRyKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICogYGBB
UyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9CSUxJVFksIElOQy4gT1IgSVRT
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOwor
ICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNaWNyb0RhdGFJdGVtTGlzdF9oCisjZGVmaW5lIE1pY3JvRGF0YUl0ZW1MaXN0X2gKKwor
I2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNp
bmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0IDogcHVibGljIER5bmFtaWNO
b2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbUxp
c3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVO
YW1lcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWljcm9EYXRhSXRlbUxp
c3Qocm9vdE5vZGUsIHR5cGVOYW1lcykpOworICAgIH0KKworICAgIHZpcnR1YWwgfk1pY3JvRGF0
YUl0ZW1MaXN0KCk7CisKK3ByaXZhdGU6CisgICAgTWljcm9EYXRhSXRlbUxpc3QoUGFzc1JlZlB0
cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpOworCisgICAgdmlydHVh
bCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKKworICAgIFNwYWNlU3BsaXRTdHJp
bmcgbV90eXBlTmFtZXM7CisgICAgU3RyaW5nIG1fb3JpZ2luYWxUeXBlTmFtZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorI2Vu
ZGlmIC8vIE1pY3JvRGF0YUl0ZW1MaXN0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9u
IDk2MTkzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MSw2ICs2MSw5IEBACiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgor
I2VuZGlmCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxhYmVsc05vZGVM
aXN0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMTEzMCw2ICsxMTMzLDE5IEBAIHZvaWQg
Tm9kZTo6cmVtb3ZlQ2FjaGVkVGFnTm9kZUxpc3QoVGFnTm8KICAgICBkYXRhLT5tX3RhZ05vZGVM
aXN0Q2FjaGVOUy5yZW1vdmUobmFtZS5pbXBsKCkpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKK3ZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxpc3QoTWljcm9EYXRhSXRl
bUxpc3QqIGxpc3QsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWUpCit7CisgICAgQVNTRVJUKHJhcmVE
YXRhKCkpOworICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7CisgICAgQVNTRVJU
X1VOVVNFRChsaXN0LCBsaXN0LT5oYXNPd25DYWNoZXMoKSk7CisKKyAgICBOb2RlTGlzdHNOb2Rl
RGF0YSogZGF0YSA9IHJhcmVEYXRhKCktPm5vZGVMaXN0cygpOworICAgIEFTU0VSVF9VTlVTRUQo
bGlzdCwgbGlzdCA9PSBkYXRhLT5tX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUuZ2V0KHR5cGVOYW1l
KSk7CisgICAgZGF0YS0+bV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLnJlbW92ZSh0eXBlTmFtZSk7
Cit9CisjZW5kaWYKKwogdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRMYWJlbHNOb2RlTGlzdChEeW5h
bWljTm9kZUxpc3QqIGxpc3QpCiB7CiAgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwpAQCAtMTcxMyw2
ICsxNzI5LDI1IEBAIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEVsZW1lbnRzQnkKICAg
ICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorUGFz
c1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMp
Cit7CisgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBpZiAo
IWRhdGEtPm5vZGVMaXN0cygpKSB7CisgICAgICAgIGRhdGEtPnNldE5vZGVMaXN0cyhOb2RlTGlz
dHNOb2RlRGF0YTo6Y3JlYXRlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRkTm9kZUxpc3RD
YWNoZSgpOworICAgIH0KKworICAgIHBhaXI8Tm9kZUxpc3RzTm9kZURhdGE6Ok1pY3JvRGF0YUl0
ZW1MaXN0Q2FjaGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBkYXRhLT5ub2RlTGlzdHMoKS0+
bV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmFkZCh0eXBlTmFtZXMsIDApOworICAgIGlmICghcmVz
dWx0LnNlY29uZCkKKyAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+KHJlc3VsdC5m
aXJzdC0+c2Vjb25kKTsKKworICAgIFJlZlB0cjxNaWNyb0RhdGFJdGVtTGlzdD4gbGlzdCA9IE1p
Y3JvRGF0YUl0ZW1MaXN0OjpjcmVhdGUodGhpcywgdHlwZU5hbWVzKTsKKyAgICByZXN1bHQuZmly
c3QtPnNlY29uZCA9IGxpc3QuZ2V0KCk7CisgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworfQor
I2VuZGlmCisKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoY29uc3QgU3RyaW5nJiBjbGFzc05hbWVzKQogewogICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9
IGVuc3VyZVJhcmVEYXRhKCk7CkBAIC0yMjcwLDYgKzIzMDUsMjQgQEAgRmxvYXRQb2ludCBOb2Rl
Ojpjb252ZXJ0RnJvbVBhZ2UoY29uc3QgRgogICAgIHJldHVybiBwOwogfQogCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKK3ZvaWQgTm9kZTo6aXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCkKK3sKKyAg
ICAvLyBXZSBuZWVkIHRvIGludmFsaWRhdGUgdGhlIG1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUgd2hl
biBpdGVtdHlwZSBhdHRyaWJ1dGUgY2hhbmdlZAorICAgIE5vZGUgKiByb290Tm9kZSA9IGRvY3Vt
ZW50KCk7CisKKyAgICBpZiAoIXJvb3ROb2RlLT5oYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSByb290Tm9kZS0+cmFyZURhdGEoKTsKKwor
ICAgIGlmICghZGF0YS0+bm9kZUxpc3RzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRhdGEt
Pm5vZGVMaXN0cygpLT5pbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMoKTsKK30KKyNl
bmRpZgorCiAjaWZuZGVmIE5ERUJVRwogCiBzdGF0aWMgdm9pZCBhcHBlbmRBdHRyaWJ1dGVEZXNj
KGNvbnN0IE5vZGUqIG5vZGUsIFN0cmluZyYgc3RyaW5nLCBjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBjaGFyKiBhdHRyRGVzYykKQEAgLTI0MTksOCArMjQ3MiwyMSBAQCB2b2lkIE5v
ZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzCiAgICAgICAgIGl0LT5zZWNvbmQtPmlu
dmFsaWRhdGVDYWNoZSgpOwogICAgIGlmIChtX2xhYmVsc05vZGVMaXN0Q2FjaGUpCiAgICAgICAg
IG1fbGFiZWxzTm9kZUxpc3RDYWNoZS0+aW52YWxpZGF0ZUNhY2hlKCk7CisKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorICAgIGludmFsaWRhdGVNaWNyb2RhdGFJdGVtTGlzdENhY2hlcygpOworI2Vu
ZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQordm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6
aW52YWxpZGF0ZU1pY3JvZGF0YUl0ZW1MaXN0Q2FjaGVzKCkKK3sKKyAgICBNaWNyb0RhdGFJdGVt
TGlzdENhY2hlOjppdGVyYXRvciBpdGVtTGlzdENhY2hlRW5kID0gbV9taWNyb0RhdGFJdGVtTGlz
dENhY2hlLmVuZCgpOworICAgIGZvciAoTWljcm9EYXRhSXRlbUxpc3RDYWNoZTo6aXRlcmF0b3Ig
aXQgPSBtX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gaXRlbUxpc3RDYWNo
ZUVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7Cit9Cisj
ZW5kaWYKKwogYm9vbCBOb2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2xpc3RzV2l0aENhY2hlcy5pc0VtcHR5KCkpCkBAIC0yNDM3LDYgKzI1MDMsMTAgQEAg
Ym9vbCBOb2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIW1fbmFtZU5vZGVMaXN0Q2FjaGUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBpZiAobV9taWNyb0RhdGFJ
dGVtTGlzdENhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAK
ICAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDk2MTkzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQCBjbGFzcyBGbG9hdFBvaW50Owog
Y2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MSW5wdXRFbGVtZW50OwogY2xhc3MgSW50UmVjdDsKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorY2xhc3MgTWljcm9EYXRhSXRlbUxpc3Q7CisjZW5kaWYKIGNs
YXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOU1Jlc29sdmVyOwogY2xhc3MgTmFtZWROb2RlTWFw
OwpAQCAtNTEzLDYgKzUxNiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlMb2NhbE5vZGVM
aXN0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2b2lkIG5vdGlmeUxvY2FsTm9kZUxpc3RzTGFi
ZWxDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0KENsYXNzTm9k
ZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdm9p
ZCByZW1vdmVDYWNoZWRNaWNyb0RhdGFJdGVtTGlzdChNaWNyb0RhdGFJdGVtTGlzdCosIGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CisjZW5kaWYK
KwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0KE5hbWVOb2RlTGlzdCosIGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkVGFnTm9kZUxpc3QoVGFnTm9kZUxpc3Qq
LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0
KFRhZ05vZGVMaXN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtNTIzLDYgKzUzMiwxMCBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVudHNCeU5hbWUoY29u
c3QgU3RyaW5nJiBlbGVtZW50TmFtZSk7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZShjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpOwogCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRJdGVtcyhjb25zdCBTdHJp
bmcmIHR5cGVOYW1lcyk7CisjZW5kaWYKKwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcXVlcnlT
ZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IHF1ZXJ5U2VsZWN0b3JBbGwoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cnMsIEV4Y2VwdGlvbkNvZGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJl
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAko
cmV2aXNpb24gOTYxOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDExIEBACiAKICNpbmNsdWRlICJDbGFzc05vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgIk5h
bWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJUYWdO
b2RlTGlzdC5oIgpAQCAtNTYsNyArNjEsMTIgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBIYXNo
TWFwPFJlZlB0cjxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbD4sIFRhZ05vZGVMaXN0
Kj4gVGFnTm9kZUxpc3RDYWNoZU5TOwogICAgIFRhZ05vZGVMaXN0Q2FjaGVOUyBtX3RhZ05vZGVM
aXN0Q2FjaGVOUzsKLSAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgTWljcm9EYXRhSXRlbUxpc3QqPiBNaWNyb0RhdGFJdGVtTGlzdENhY2hlOwor
ICAgIE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUgbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlOworI2Vu
ZGlmCisKICAgICBMYWJlbHNOb2RlTGlzdCogbV9sYWJlbHNOb2RlTGlzdENhY2hlOwogIAogICAg
IHN0YXRpYyBQYXNzT3duUHRyPE5vZGVMaXN0c05vZGVEYXRhPiBjcmVhdGUoKQpAQCAtNjYsNiAr
NzYsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwogICAg
IHZvaWQgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKTsKKworI2lmIEVO
QUJMRShNSUNST0RBVEEpCisgICAgdm9pZCBpbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNo
ZXMoKTsKKyNlbmRpZgorCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKIHByaXZhdGU6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24g
OTYxOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSwxMCBAQCBpZAogaW5jcmVtZW50YWwKIGluZGV0ZXJt
aW5hdGUKIGlzbWFwCitpdGVtaWQKK2l0ZW1wcm9wCitpdGVtc2NvcGUKK2l0ZW10eXBlCiBrZXl0
eXBlCiBraW5kCiBsYWJlbApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDk2MTkzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5NSw2ICsxOTUsMTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoQQogICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJv
cGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOwogICAgICAgICB9IGVsc2UgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKICAgICAgICAgICAgIGFkZENTU1By
b3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlTm9uZSk7Cisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBpdGVt
dHlwZUF0dHIpIHsKKyAgICAgICAgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CisjZW5kaWYK
ICAgICB9CiAvLyBzdGFuZGFyZCBldmVudHMKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
b25jbGlja0F0dHIpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCShyZXZp
c2lvbiA5NjE5MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw2ICs2NiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxjaGVjazsKIAorICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gYm9vbGVhbiBpdGVtU2Nv
cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBS
ZWZsZWN0XSBET01TdHJpbmcgaXRlbVR5cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbUlkOworCiAjaWYg
ZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZURpc3BsYXlTdHJpbmc7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjE5MykKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMjcgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisg
ICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRl
bXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1wbGVtZW50IGRvY3Vt
ZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIw
MTEtMDktMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkJKHJldmlzaW9uIDk2MTkzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAgICAgICAn
RU5BQkxFX01FRElBX1NUUkVBTT0xJywKICAgICAgICdFTkFCTEVfTUVURVJfVEFHPTEnLAogICAg
ICAgJ0VOQUJMRV9NSFRNTD0xJywKKyAgICAgICdFTkFCTEVfTUlDUk9EQVRBPTAnLAogICAgICAg
J0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM9MCcsCiAgICAgICAnRU5BQkxFX05PVElGSUNBVElP
TlM9MScsCiAgICAgICAnRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wJywKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MTkz
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTEtMDktMjcgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3Jv
ZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2Qu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVO
QUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQt
d2Via2l0OgorCiAyMDExLTA5LTI3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgZ2FyZGVuLW8tbWF0aWMgc2hvdWxkIGxvYWQgZmFzdGVyIGFuZCBpbmZvcm0gdGhl
IHVzZXIgd2hhdCBpcyBoYXBwZW5pbmcKSW5kZXg6IFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA5NjE5
MykKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC05OSw2
ICs5OSw3IEBAIG15ICgKICAgICAkbWVkaWFTdHJlYW1TdXBwb3J0LAogICAgICRtZXRlclRhZ1N1
cHBvcnQsCiAgICAgJG1odG1sU3VwcG9ydCwKKyAgICAkbWljcm9kYXRhU3VwcG9ydCwKICAgICAk
bXV0YXRpb25PYnNlcnZlcnNTdXBwb3J0LAogICAgICRuZXRzY2FwZVBsdWdpblN1cHBvcnQsCiAg
ICAgJG5vdGlmaWNhdGlvbnNTdXBwb3J0LApAQCAtMjM1LDYgKzIzNiw5IEBAIG15IEBmZWF0dXJl
cyA9ICgKICAgICB7IG9wdGlvbiA9PiAibWh0bWwiLCBkZXNjID0+ICJUb2dnbGUgTUhUTUwgc3Vw
cG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJtaWNyb2RhdGEiLCBk
ZXNjID0+ICJUb2dnbGUgTWljcm9kYXRhIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUlDUk9EQVRBIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1pY3JvZGF0YVN1cHBvcnQg
fSwKKwogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4iLCBkZXNjID0+ICJOZXRzY2Fw
ZSBQbHVnaW4gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNFZmwoKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpblN1
cHBvcnQgfSwKIApJbmRleDogV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjE5MykKKysrIFdlYktpdExp
YnJhcmllcy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0w
OS0yNyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRh
OiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgRU5BQkxF
KE1JQ1JPREFUQSkgZmVhdHVyZSBmbGFnLiBJbXBsZW1lbnQgZG9jdW1lbnQuZ2V0SXRlbXMoKSBE
T00gQVBJLgorCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNw
cm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZz
cHJvcHM6CisKIDIwMTEtMDktMjYgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgb24gV2luZG93cwpJbmRleDog
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVE
ZWZpbmVzLnZzcHJvcHMJKHJldmlzaW9uIDk2MTkzKQorKysgV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTks
NyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpOyQo
RU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0NTU19GSUxURVJT
KTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxF
X1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9T
VE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVf
Q1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChF
TkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTsk
KEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVf
Tk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJP
R1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFO
RExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTsk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxF
X1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVO
QUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nl
c3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFC
TEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQo
RU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FM
X0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JB
R0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1Mz
X0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7
JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJM
RV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5B
QkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9T
VkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTsk
KEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFC
TEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hT
TFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FIgpAQCAtMTY3LDYgKzE2NywxMSBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRy
dWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfTUlDUk9EQVRBIgorCQlWYWx1
ZT0iIgorCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCisJLz4KKyAgPFVzZXJNYWNybwog
CQlOYW1lPSJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgogCQlWYWx1ZT0iIgogCQlQZXJmb3Jt
RW52aXJvbm1lbnRTZXQ9InRydWUiCkluZGV4OiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3Zz
cHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExp
YnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMJKHJl
dmlzaW9uIDk2MTkzKQorKysgV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAk+
CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmlu
aXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9D
U1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05T
KTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRB
TElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVO
QUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0p
OyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxF
X0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxF
X01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMp
OyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQo
RU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJM
RV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09S
S0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgor
CQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8z
RF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxP
Qik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVO
QUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRB
R1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQo
RU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQo
RU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTsk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVf
SU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVf
TUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RB
Ryk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVf
TUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09D
S0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhU
TUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8K
IAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTE2Miw2ICsxNjIsMTEgQEAKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxF
X01JQ1JPREFUQSIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgor
CS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIKIAkJ
VmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gOTYxOTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw0MSBAQAorMjAxMS0wOS0yNyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisK
KyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJ
dGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdGVzdC1jYXNlcyBmb3IgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisg
ICAgICAgIFNraXBwaW5nIHRlc3QtY2FzZXMgZm9yIG5vdyBhcyBNaWNyb2RhdGEgRE9NIEFQSSBp
cyBub3QgeWV0IGVuYWJsZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGE6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS8wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS8wMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNy
b0RhdGEvMDAzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS8wMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvMDA4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXM6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvY3JlYXRlLWVsZW1lbnQuanM6
IEFkZGVkLgorICAgICAgICAoY3JlYXRlRWxlbSk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wOS0yNyAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJk
ZW5pbmcuIEFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBleHBlY3RlZCByZXN1bHQgZm9yIG5ldyB0ZXN0
IGludHJvZHVjZWQgaW4gcjk2MTQ5LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhLzAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIERPTSBBUEkg
bXVzdCBleGlzdC4KKworUEFTUyBOb2RlTGlzdCBpcyBkZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIERPTSBBUEkgbXVzdCBleGlzdC48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgTm9kZUxpc3QgPSBk
b2N1bWVudC5nZXRJdGVtczsKK3Nob3VsZEJlRGVmaW5lZCgiTm9kZUxpc3QiKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgZW5zdXJl
cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoIG11c3QgcmV0dXJuIHRoZSBjb3JyZWN0
IG51bWJlciBvZiBNaWNyb0RhdGEgSXRlbXMgaW4gdGhlIERvY3VtZW50LiAKK0Fsc28gaXQgdGVz
dHMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IHJldHVybiBhIGxpdmUgTm9kZUxpc3QuCisK
K2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aG91dCBhdXJndW1lbnQ6IFBBU1MKK2RvY3VtZW50Lmdl
dEl0ZW1zKCkgd2l0aCBlbXB0eSBzdHJpbmcgaW4gdGhlIGF1cmd1bWVudDogUEFTUworZG9jdW1l
bnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyBpdGVtdHlwZSBpbiB0
aGUgYXVyZ3VtZW50OiBQQVNTCitkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFt
cGxlLmNvbS9iYXInIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQ6IFBBU1MKK2RvY3VtZW50Lmdl
dEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2YxJyBpdGVtdHlwZSBpbiB0aGUgYXVy
Z3VtZW50OiBQQVNTCitOZXdseSBhcHBlbmRlZCBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRo
ZSBOb2RlTGlzdDogUEFTUworUmVtb3ZpbmcgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUg
Tm9kZUxpc3Q6IFBBU1MKKworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUt
ZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggbXVzdCByZXR1cm4gdGhlIGNvcnJl
Y3QgbnVtYmVyIG9mIE1pY3JvRGF0YSBJdGVtcyBpbiB0aGUgRG9jdW1lbnQuCis8YnI+QWxzbyBp
dCB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgcmV0dXJuIGEgbGl2ZSBOb2RlTGlz
dC4KKzwvcD4KKworPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJvbmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFt
cGxlLmNvbS9iYXIiIGlkPSJ0d28iPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0
dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0aHJlZSI+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2YxIiBpZD0iZm91ciI+PC9kaXY+Cis8L2Rpdj4KKworPHNj
cmlwdD4KK3ZhciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7Cit2YXIgdHdv
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOwordmFyIHRocmVlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RocmVlJyk7Cit2YXIgZm91ciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmb3VyJyk7CisKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvLCB0
aHJlZSwgZm91cl0sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGhvdXQgYXVyZ3VtZW50Iik7City
dW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCcnKSwgW29uZSwgdHdvLCB0aHJlZSwgZm91cl0sICJk
b2N1bWVudC5nZXRJdGVtcygpIHdpdGggZW1wdHkgc3RyaW5nIGluIHRoZSBhdXJndW1lbnQiKTsK
K3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKSwgW29u
ZSwgdGhyZWVdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50Iik7CitydW5UZXN0KGRvY3VtZW50LmdldEl0
ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyksIFt0d29dLCAiZG9jdW1lbnQuZ2V0SXRlbXMo
KSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50
Iik7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZjEnKSwg
W2ZvdXJdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZjEn
IGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKKwordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVt
KCdkaXYnLCB7aXRlbXNjb3BlOidpdGVtc2NvcGUnfSk7CisKKy8vIEFwcGVuZCBuZXdseSBjcmVh
dGVkIGl0ZW0gdG8gYm9keQorZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK3J1
blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvLCB0aHJlZSwgZm91ciwgZWxlbWVu
dF0sICJOZXdseSBhcHBlbmRlZCBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2RlTGlz
dCIpOworCisvLyBSZW1vdmUgdGhlIGVsZW1lbnQKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZWxlbWVudCk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3bywgdGhyZWUs
IGZvdXJdLCAiUmVtb3ZpbmcgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3Qi
KTsKKworZG9jdW1lbnQud3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRl
bXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLgorCitUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBt
aWNyb2RhdGEgaXRlbXM6IFBBU1MKK1JlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxk
IHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitTZXQgaXRlbXNjb3BlIGF0dHJpYnV0ZSBz
aG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKK1NldCBlbGVtZW50Lml0ZW1TY29w
ZSB0byBmYWxzZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdDogUEFTUworU2V0IGVsZW1l
bnQuaXRlbVNjb3BlIHRvIHRydWUgc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MK
KworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUtZWxlbWVudC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbGl2ZSBO
b2RlTGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW1zY29wZSBhdHRyaWJ1dGUgY2hhbmdlcy48L3A+
Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9u
ZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2Jh
ciIgaWQ9InR3byI+PC9kaXY+Cis8c2NyaXB0PgordmFyIG9uZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdvbmUnKTsKK3ZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJyk7
CisKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvXSwgIlRoaXMgdGVzdCBw
YWdlIGNvbnRhaW4gdHdvIG1pY3JvZGF0YSBpdGVtcyIpOworCisvLyBSZW1vdmUgaXRlbXNjb3Bl
IGF0dHJpYnV0ZQorb25lLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXNjb3BlJyk7CitydW5UZXN0KGRv
Y3VtZW50LmdldEl0ZW1zKCksIFt0d29dLCAiUmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZSBz
aG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3QiKTsKKworLy8gU2V0dGluZyBpdGVtc2NvcGUg
YXR0cmlidXRlCitvbmUuc2V0QXR0cmlidXRlKCdpdGVtc2NvcGUnLCdpdGVtc2NvcGUnKTsKK3J1
blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvXSwgIlNldCBpdGVtc2NvcGUgYXR0
cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBOb2RlTGlzdCIpOworCisvLyBTZXR0aW5nIGl0
ZW1zY29wZSBhdHRyaWJ1dGUgdG8gZmFsc2UKK3R3by5pdGVtU2NvcGUgPSBmYWxzZTsKK3J1blRl
c3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZV0sICJTZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8g
ZmFsc2Ugc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3QiKTsKKworLy8gU2V0dGluZyBpdGVt
c2NvcGUgYXR0cmlidXRlIHRvIHRydWUKK3R3by5pdGVtU2NvcGUgPSB0cnVlOworcnVuVGVzdChk
b2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d29dLCAiU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRv
IHRydWUgc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3QiKTsKKworZG9jdW1lbnQud3JpdGUo
Ijxicj5URVNUIENPTVBMRVRFIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBiZSBjYXNlIHNlbnNpdGl2ZS4KKworUEFTUyBkb2N1
bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL0ZvbycpLmxlbmd0aCA9PSAwIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKS5sZW5n
dGggPT0gMSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5j
b20vQkFSJykubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnaHR0
cDovL2V4YW1wbGUuY29tL2JhcicpLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwNC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwNC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGJlIGNhc2Ugc2Vuc2l0
aXZlLjwvcD4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9v
IiBpZD0ib25lIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBs
ZS5jb20vQkFSIiBpZD0idHdvIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0Pgorc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUu
Y29tL0ZvbycpLmxlbmd0aCA9PSAwIik7CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1z
KCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDEiKTsKKworc2hvdWxkQmVUcnVl
KCJkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL0JBUicpLmxlbmd0aCA9PSAx
Iik7CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20v
YmFyJykubGVuZ3RoID09IDAiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0cyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ug
d2hlbiBpdGVtdHlwZSBjaGFuZ2VzLgorCitUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNy
b2RhdGEgaXRlbXM6IFBBU1MKK05vZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1
dGUgaXRlbXR5cGU6IFBBU1MKK05vZGVMaXN0IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUg
aXRlbXR5cGU6IFBBU1MKKworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUt
ZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhh
dCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRlbXR5cGUgY2hhbmdlcy48L3A+Cis8
ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+
PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIg
aWQ9InR3byI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgb25lID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ29uZScpOwordmFyIHR3byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKTsK
KworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLCBb
b25lLCB0d29dLCAiVGhpcyB0ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zIik7
CisKKy8vIFJlbW92ZSBpdGVtdHlwZSBhdHRyaWJ1dGUKK29uZS5yZW1vdmVBdHRyaWJ1dGUoJ2l0
ZW10eXBlJyk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJyksIFt0d29dLCAiTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gcmVtb3ZlIGF0dHJpYnV0ZSBp
dGVtdHlwZSIpOworCisvLyBTZXQgaXRlbXR5cGUgYXR0cmlidXRlCitvbmUuc2V0QXR0cmlidXRl
KCdpdGVtdHlwZScsJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKTsKK3J1blRlc3QoZG9jdW1lbnQu
Z2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKSwgW29uZSwgdHdvXSwgIk5vZGVMaXN0
IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUgaXRlbXR5cGUiKTsKKworZG9jdW1lbnQud3Jp
dGUoIjxicj5URVNUIENPTVBMRVRFIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdHMgdGhhdCBk
b2N1bWVudC5nZXRJdGVtcyBtdXN0IGxvY2F0ZSBpdGVtcyB3aGVuIHBhcmFtZXRlcnMgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuIAorVGhpcyB0ZXN0IGFsc28gZW5zdXJlIHRoYXQgZG9jdW1lbnQu
Z2V0SXRlbXMgbXVzdCBpZ25vcmUgZHVwbGljYXRlZCB0b2tlbnMuCisKK1BBU1MgZG9jdW1lbnQu
Z2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGh0dHA6Ly9leGFtcGxlLmNvbS9iYXIg
JykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9l
eGFtcGxlLmNvbS9mb28gZGF0YTp0ZXh0L3BsYWluICcpLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGRhdGE6dGV4dC9w
bGFpbiBodHRwOi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UaGlzIHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBsb2NhdGUgaXRlbXMg
d2hlbiBwYXJhbWV0ZXJzIGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLgorPGJyPlRoaXMgdGVzdCBh
bHNvIGVuc3VyZSB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgaWdub3JlIGR1cGxpY2F0ZWQg
dG9rZW5zLgorPC9wPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNv
bS9mb28iPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNv
bS9iYXIiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9ImRhdGE6dGV4dC9wbGFpbiI+PC9kaXY+
Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1
ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGh0dHA6Ly9leGFt
cGxlLmNvbS9iYXIgJykubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0
SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vICBkYXRhOnRleHQvcGxhaW4gICcpLmxlbmd0
aCA9PSAyIik7CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCcgIGh0dHA6Ly9leGFt
cGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAgaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxl
bmd0aCA9PSAyIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEwIEBACitUaGlzIHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgTm9kZUxpc3QgbXVzdCBi
ZSBpbiBzb3VyY2UgdHJlZSBvcmRlci4KKworUEFTUyBub2RlTGlzdFswXS5pZCBpcyAnb25lJwor
UEFTUyBub2RlTGlzdFsxXS5pZCBpcyAndHdvJworUEFTUyBub2RlTGlzdFsyXS5pZCBpcyAndGhy
ZWUnCitQQVNTIG5vZGVMaXN0WzNdLmlkIGlzICdmb3VyJworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Rz
IHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgTm9kZUxpc3QgbXVzdCBiZSBpbiBzb3VyY2UgdHJlZSBv
cmRlci48L3A+CisKKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20v
Zm9vIiBpZD0ib25lIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhh
bXBsZS5jb20vYmFyIiBpZD0idHdvIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJo
dHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0idGhyZWUiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5
cGU9ImRhdGE6dGV4dC9wbGFpbiwiIGlkPSJmb3VyIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpdGVt
c2NvcGUgaWQ9ImZpdmUiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgordmFyIG5vZGVMaXN0ID0gZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9i
YXIgZGF0YTp0ZXh0L3BsYWluLCBodHRwOi8vZXhhbXBsZS5jb20vZm9vJyk7CisKK3Nob3VsZEJl
KCJub2RlTGlzdFswXS5pZCIsICInb25lJyIpOworc2hvdWxkQmUoIm5vZGVMaXN0WzFdLmlkIiwg
Iid0d28nIik7CitzaG91bGRCZSgibm9kZUxpc3RbMl0uaWQiLCAiJ3RocmVlJyIpOworc2hvdWxk
QmUoIm5vZGVMaXN0WzNdLmlkIiwgIidmb3VyJyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50
LmdldEl0ZW1zIG11c3Qgbm90IGZpbmQgaXRlbXMgd2l0aCBpdGVtdHlwZSBidXQgbm90IGl0ZW1z
Y29wZS4KKworUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2Jhcicp
Lmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBk
b2N1bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBmaW5kIGl0ZW1zIHdpdGggaXRlbXR5cGUgYnV0IG5v
dCBpdGVtc2NvcGUuPC9wPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxl
LmNvbS9mb28iPjwvZGl2PgorPGRpdiBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzaG91bGRCZVRydWUo
ImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAi
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3Qgbm90IGNvbnRhaW4gdGhl
IGl0ZW1zIHRoYXQgaGF2ZSB0aGUgaXRlbXByb3AgYXR0cmlidXRlIHNldC4gSXQgbXVzdCByZXR1
cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIHRoZSB0b3AtbGV2ZWwgbWljcm9kYXRhIGl0ZW1zIGlu
IHRoZSBkb2N1bWVudC4KKworTmFtZTogQW1hbmRhCisKK0JhbmQ6IEphenogQmFuZCAoMTIgcGxh
eWVycykKKworUEFTUyBkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA2IGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggPT0gNCBpcyB0cnVlCitQQVNTIGRvY3VtZW50
LmdldEl0ZW1zKCkubGVuZ3RoID09IDUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMDkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVu
dC5nZXRJdGVtcyBtdXN0IG5vdCBjb250YWluIHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhlIGl0ZW1w
cm9wIGF0dHJpYnV0ZSBzZXQuCitJdCBtdXN0IHJldHVybiBhIE5vZGVMaXN0IGNvbnRhaW5pbmcg
dGhlIHRvcC1sZXZlbCBtaWNyb2RhdGEgaXRlbXMgaW4gdGhlIGRvY3VtZW50LjwvcD4KKworPGRp
diBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwv
ZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiIGlk
PSJ0d28iPjwvZGl2PgorCis8ZGl2IGl0ZW1zY29wZT4KKzxwPk5hbWU6IDxzcGFuIGl0ZW1wcm9w
PSJuYW1lIj5BbWFuZGE8L3NwYW4+PC9wPgorPHA+QmFuZDogPHNwYW4gaXRlbXByb3A9ImJhbmQi
IGl0ZW1zY29wZT4gPHNwYW4gaXRlbXByb3A9Im5hbWUiPkphenogQmFuZDwvc3Bhbj4gKDxzcGFu
IGl0ZW1wcm9wPSJzaXplIj4xMjwvc3Bhbj4gcGxheWVycyk8L3NwYW4+PC9wPgorPC9kaXY+CisK
KzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0idGhy
ZWUiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mMSIgaWQ9
ImZvdXIiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpZD0iZml2ZSI+PC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzaG91bGRCZVRydWUoImRvY3VtZW50
LmdldEl0ZW1zKCkubGVuZ3RoID09IDYiKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29u
ZScpLnNldEF0dHJpYnV0ZSgnaXRlbXByb3AnLCAndGVzdCcpOworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZpdmUnKS5zZXRBdHRyaWJ1dGUoJ2l0ZW1wcm9wJywgJ3Rlc3QnKTsKK3Nob3VsZEJl
VHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggPT0gNCIpOworCitkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZml2ZScpLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXByb3AnKTsKK3Nob3VsZEJl
VHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggPT0gNSIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL2NyZWF0ZS1lbGVtZW50
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJj
ZXMvY3JlYXRlLWVsZW1lbnQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvcmVzb3VyY2VzL2NyZWF0ZS1lbGVtZW50LmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQyIEBACisvLyB0aGlzIGZ1bmN0aW9uIGNyZWF0ZXMgZWxlbWVudCB3aXRoIHNwZWNp
ZmllZCBwcm9wZXJ0eSBhbmQgY29udGVudHMuCitmdW5jdGlvbiBjcmVhdGVFbGVtKHR5cGUscHJv
cHMsY29udGVudHMpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIGVsZW0gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpOworCisgICAgZm9yKCB2YXIgaSBpbiBwcm9wcyAp
IHsKKyAgICAgIGlmKCBwcm9wcy5oYXNPd25Qcm9wZXJ0eShpKSApIHsKKyAgICAgICAgZWxlbS5z
ZXRBdHRyaWJ1dGUoaSxwcm9wc1tpXSk7CisgICAgICB9CisgICAgfQorICAgIGlmKCBjb250ZW50
cyApIHsKKyAgICAgIGVsZW0uaW5uZXJIVE1MID0gY29udGVudHM7CisgICAgfQorICAgIHJldHVy
biBlbGVtOworfQorCisKKy8vIHJ1bnMgYSB0ZXN0IGFuZCB3cml0ZXMgYSBsb2cKK2Z1bmN0aW9u
IHJ1blRlc3QoY29sbGVjdGlvbiwgZWxlbWVudHMsIHRpdGxlKSB7CisgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgIGRvY3VtZW50LndyaXRlKHRpdGxlICsgJzogJyk7CisgIHBhc3MgPSB0cnVlOworICAK
KyAgaWYgKGNvbGxlY3Rpb24ubGVuZ3RoICE9IGVsZW1lbnRzLmxlbmd0aCkgeworICAgIHBhc3Mg
PSBmYWxzZQorICAgIGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgJyArIGVsZW1lbnRz
Lmxlbmd0aCArICcgZWxlbWVudHMgYnV0IGdvdCAnICsgY29sbGVjdGlvbi5sZW5ndGggKyAiIGVs
ZW1lbnRzLiAiKTsKKyAgfQorICBmb3IodmFyIGkgPSAwLCBtYXggPSBjb2xsZWN0aW9uLmxlbmd0
aCA+IGVsZW1lbnRzLmxlbmd0aCA/IGVsZW1lbnRzLmxlbmd0aCA6IGNvbGxlY3Rpb24ubGVuZ3Ro
OyBpIDwgbWF4OyBpKyspIHsKKyAgICBpZihjb2xsZWN0aW9uW2ldICE9IGVsZW1lbnRzW2ldKSB7
CisgICAgICBwYXNzID0gZmFsc2UKKyAgICAgIGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0
ZWQgZWxlbWVudCA6ICcgKyBlbGVtZW50c1tpXS50YWdOYW1lICsgIiBidXQgZ290IGVsZW1lbnQg
OiIgKyBjb2xsZWN0aW9uW2ldLnRhZ05hbWUpOworICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwg
LSBleHBlY3RlZCBlbGVtZW50IHdpdGggaWQ6ICcgKyBlbGVtZW50c1tpXS5pZCArICIgYnV0IGdv
dCBlbGVtZW50IHdpdGggaWQ6IiArIGNvbGxlY3Rpb25baV0uaWQpOworICAgIH0KKyAgfQorICBp
ZiAocGFzcykKKyAgICBkb2N1bWVudC53cml0ZSgnUEFTUycpOworICBkb2N1bWVudC53cml0ZSgn
PGJyPicpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlz
aW9uIDk2MTkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNzkxLDMgKzM3OTEsNiBAQCBCVUdXSzY4OTcw
IE1BQyBDUFUtQ0cgOiBzdmcvY3VzdG9tL2pzLWxhCiBCVUdXSzY4OTcwIE1BQyBDUFUtQ0cgOiBz
dmcvY3VzdG9tL3BhdHRlcm4taW4tZGVmcy5zdmcgPSBJTUFHRQogQlVHV0s2ODk3MCBNQUMgQ1BV
LUNHIDogc3ZnL2N1c3RvbS90ZXh0LXJvdGF0ZWQtZ3JhZGllbnQuc3ZnID0gSU1BR0UKIEJVR1dL
Njg5NzAgTUFDIENQVS1DRyA6IHN2Zy90ZXh0L3NlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLnho
dG1sID0gSU1BR0UKKworLy8gTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBlbmFibGVkLgor
QlVHV0s2ODYxMCBTS0lQIDogZmFzdC9kb20vTWljcm9EYXRhID0gUEFTUwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDk2MTkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE2NjIsMyArMTY2Miw2IEBAIGVkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdC1iaWRpLXJ1bi5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NTcwOQogIyBUaGlzIHRlc3QgaXMgb3V0LWRhdGVkIHNpbmNl
IHI5NTg5OS4KIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLm91dHNpZGVzb3VyY2Uu
aHRtbAorCisjIE1pY3JvZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZG9t
L01pY3JvRGF0YQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA5NjE5MykK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTIz
NzcsMyArMjM3Nyw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLm91dHNpZGUK
ICMgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LWJpZGktcnVuLmh0bWwgZmFpbHMgb24gUXQKICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODU0CiBlZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3QtYmlkaS1ydW4uaHRtbAorCisjIE1pY3JvZGF0YSBET00gQVBJIGlzIG5v
dCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZG9tL01pY3JvRGF0YQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQJKHJldmlzaW9uIDk2MTkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE0MTIsMyArMTQxMiw2IEBAIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHQKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjY3NzMKIGh0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hl
ZC1jYWxsYmFjay5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBlbmFibGVk
LgorZmFzdC9kb20vTWljcm9EYXRhCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110347</attachid>
            <date>2011-10-10 04:15:33 -0700</date>
            <delta_ts>2011-10-12 08:18:58 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>57994</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk3MDUy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAt
MTAgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAx
MS0xMC0wNiAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
b2RlIGNsZWFuLXVwOiBNYWtlIFJlbmRlck9iamVjdDo6YWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qg
YW5kIGFzc29jaWF0ZWQgbWV0aG9kcyBjb25zdCBhbmQgbWFrZSBpdHMgcGFyYW1ldGVyIHVzZVRy
YW5zZm9ybXMgbm8gbG9uZ2VyIGRlZmF1bHQgdG8gZmFsc2UKSW5kZXg6IGNvbmZpZ3VyZS5hYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJldmlzaW9uIDk3MDUyKQorKysgY29uZmlndXJl
LmFjCSh3b3JraW5nIGNvcHkpCkBAIC00MTQsNiArNDE0LDE0IEBAIEFDX0FSR19FTkFCTEUobWV0
ZXJfdGFnLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX21ldGVyX3RhZz0ieWVzIl0pCiBBQ19N
U0dfUkVTVUxUKFskZW5hYmxlX21ldGVyX3RhZ10pCiAKKyMgY2hlY2sgd2hldGhlciB0byBlbmFi
bGUgSFRNTDUgTWljcm9kYXRhIHN1cHBvcnQKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBl
bmFibGUgSFRNTDUgTWljcm9kYXRhIHN1cHBvcnRdKQorQUNfQVJHX0VOQUJMRShtaWNyb2RhdGEs
CisgICAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1taWNyb2RhdGFdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlIEhUTUw1IG1pY3JvZGF0YSBzdXBwb3J0
IFtkZWZhdWx0PW5vXV0pLAorICAgICAgICAgICAgICBbXSxbZW5hYmxlX21pY3JvZGF0YT0ibm8i
XSkKK0FDX01TR19SRVNVTFQoWyRlbmFibGVfbWljcm9kYXRhXSkKKwogIyBjaGVjayB3aGV0aGVy
IHRvIGVuYWJsZSBwYWdlIHZpc2liaWxpdHkgQVBJLgogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy
IHRvIGVuYWJsZSBQYWdlIFZpc2liaWxpdHkgQVBJIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRShw
YWdlX3Zpc2liaWxpdHlfYXBpLApAQCAtMTE0Miw2ICsxMTUwLDcgQEAgQU1fQ09ORElUSU9OQUwo
W0VOQUJMRV8zRF9SRU5ERVJJTkddLFt0ZQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9XRUJHTF0s
W3Rlc3QgIiRlbmFibGVfd2ViZ2wiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9C
TE9CXSxbdGVzdCAiJGVuYWJsZV9ibG9iIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFC
TEVfTUVURVJfVEFHXSxbdGVzdCAiJGVuYWJsZV9tZXRlcl90YWciID0gInllcyJdKQorQU1fQ09O
RElUSU9OQUwoW0VOQUJMRV9NSUNST0RBVEFdLFt0ZXN0ICIkZW5hYmxlX21pY3JvZGF0YSIgPSAi
eWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEldLFt0ZXN0
ICIkZW5hYmxlX3BhZ2VfdmlzaWJpbGl0eV9hcGkiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwo
W0VOQUJMRV9QUk9HUkVTU19UQUddLFt0ZXN0ICIkZW5hYmxlX3Byb2dyZXNzX3RhZyIgPSAieWVz
Il0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HXSxbdGVzdCAiJGVu
YWJsZV9jaGFubmVsX21lc3NhZ2luZyIgPSAieWVzIl0pCkBAIC0xMjY4LDYgKzEyNzcsNyBAQCBG
ZWF0dXJlczoKICBNZWRpYSBzdGF0aXN0aWNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6ICRlbmFibGVfbWVkaWFfc3RhdGlzdGljcwogIEhUTUw1IGNoYW5uZWwgbWVz
c2FnaW5nIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9jaGFubmVs
X21lc3NhZ2luZwogIEhUTUw1IG1ldGVyIGVsZW1lbnQgc3VwcG9ydCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogJGVuYWJsZV9tZXRlcl90YWcKKyBIVE1MNSBtaWNyb2RhdGEgc3VwcG9y
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWljcm9kYXRhCiAg
UGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiAkZW5hYmxlX3BhZ2VfdmlzaWJpbGl0eV9hcGkKICBIVE1MNSBwcm9ncmVzcyBlbGVtZW50IHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfcHJvZ3Jlc3NfdGFnCiAg
SFRNTDUgY2xpZW50LXNpZGUgc2Vzc2lvbiBhbmQgcGVyc2lzdGVudCBzdG9yYWdlIHN1cHBvcnQg
OiAkZW5hYmxlX2RvbV9zdG9yYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzA1MikKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDExLTEwLTEwICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBN
aWNyb2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0
aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBFTkFCTEUoTUlDUk9EQVRBKSBmZWF0dXJlIGZsYWcuIEltcGxlbWVudCBkb2N1bWVudC5nZXRJ
dGVtcygpIERPTSBBUEkuCisgICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvY29tcGxldGUvbWljcm9kYXRhLmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vTWljcm9EYXRhLzAwMS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0
YS8wMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAwNC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZG9tL01pY3JvRGF0YS8wMDYuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWlj
cm9EYXRhLzAwNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA4Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbAorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRs
OgorICAgICAgICAqIGRvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1MaXN0Ojp+TWljcm9EYXRhSXRlbUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6Om5vZGVNYXRjaGVzKToKKyAgICAgICAgKiBk
b20vTWljcm9EYXRhSXRlbUxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNaWNyb0Rh
dGFJdGVtTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpyZW1vdmVDYWNoZWRNaWNyb0RhdGFJdGVtTGlzdCk6IFJlbW92ZSBNaWNy
b2RhdGEgaXRlbSBub2RlIGxpc3QgZnJvbSBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmdldEl0ZW1zKTogUmV0dXJucyBOb2RlTGlzdCBvZiB0aGUgZWxlbWVudCBpbiB0aGUgRG9jdW1l
bnQgdGhhdAorICAgICAgICBjcmVhdGUgaXRlbXMsIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIG90aGVy
IGl0ZW1zLCBhbmQgdGhhdCBhcmUgb2Ygb25lIG9mIHRoZSB0eXBlcworICAgICAgICBnaXZlbiBp
biB0aGUgYXJndW1lbnQuIElmIG5vIHRva2VucyBzcGVjaWZpZWQvdW5kZWZpbmVkIGluIHRoZSBh
cmd1bWVudCwgdGhlbgorICAgICAgICByZXR1cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIGFsbCB0
b3AgbGV2ZWwgbWljcm9kYXRhIGl0ZW1zLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXRlbVR5
cGVBdHRyaWJ1dGVDaGFuZ2VkKTogSXQgaXMgcmVzcG9uc2libGUgdG8gaW52YWxpZGF0ZQorICAg
ICAgICB0aGUgTWljcm9kYXRhIGl0ZW0gbm9kZSBjYWNoZSB3aGVuIGl0ZW1UeXBlIGF0dHJpYnV0
ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRh
dGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVM
aXN0c05vZGVEYXRhOjppbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMpOkludmFsaWRh
dGUgTWljcm9kYXRhIGl0ZW0KKyAgICAgICAgbGlzdCBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6CisgICAg
ICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZGVkIGl0ZW1pZCwgaXRlbXByb3As
IGl0ZW1zY29wZSwgaXRlbXR5cGUgYXR0cmlidXRlcy4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6IEhhbmRsZSBpdGVtdHlwZSBhdHRyaWJ1dGUgY2hhbmdlLgorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnQuaWRsOiBBZGRlZCBpdGVtaWQsIGl0ZW1wcm9wLCBpdGVtc2NvcGUsIGl0ZW10
eXBlcyBtaWNyb2RhdGEgYXR0cmlidXRlcy4KKwogMjAxMS0xMC0xMCAgQW5kcmVhcyBLbGluZyAg
PGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2hyaW5rIFJvb3RJbmxpbmVCb3guCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gOTcwNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTQ4LDYgKzU0OCw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcAogICAgIGRvbS9NZXNzYWdlUG9y
dENoYW5uZWwuY3BwCiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAorICAgIGRvbS9NaWNyb0RhdGFJ
dGVtTGlzdC5jcHAKICAgICBkb20vTW91c2VFdmVudC5jcHAKICAgICBkb20vTW91c2VSZWxhdGVk
RXZlbnQuY3BwCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDk3MDUyKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNzg1LDYgKzc4NSwxMCBAQCBpZmVxICgk
KGZpbmRzdHJpbmcgRU5BQkxFX01FVEVSX1RBRywkKEZFCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhU
TUxfRkxBR1MpIEVOQUJMRV9NRVRFUl9UQUc9MQogZW5kaWYKIAoraWZlcSAoJChmaW5kc3RyaW5n
IEVOQUJMRV9NSUNST0RBVEEsJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX01JQ1JPREFUQSkK
KyAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFHUykgRU5BQkxFX01JQ1JPREFUQT0xCitlbmRp
ZgorCiBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywkKEZFQVRVUkVfREVG
SU5FUykpLCBFTkFCTEVfUFJPR1JFU1NfVEFHKQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZM
QUdTKSBFTkFCTEVfUFJPR1JFU1NfVEFHPTEKIGVuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gOTcwNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtNTg1LDYgKzU4NSwxNCBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX01IVE1MPTEKIGVuZGlmICAjIEVORCBFTkFCTEVfTUhUTUwKIAogIyAtLS0KKyMgSFRNTDUg
TWljcm9kYXRhIHN1cHBvcnQKKyMgLS0tCitpZiBFTkFCTEVfTUlDUk9EQVRBCitGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX01JQ1JPREFUQT0xCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X01JQ1JPREFUQT0xCitlbmRpZiAgIyBFTkQgRU5BQkxFX01JQ1JPREFUQQorCisjIC0tLQogIyBS
ZWdpc3RlciBQcm90b2NvbCBIYW5kbGVyIHN1cHBvcnQKICMgLS0tCiBpZiBFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShy
ZXZpc2lvbiA5NzA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTEyMjUsNiArMTIyNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
aCBcCisgICAgU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcCBcCisgICAg
U291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA5NzA1MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtNTIyMCw2ICs1MjIwLDggQEAKICAgICAgICAgICAgICdkb20v
TWVzc2FnZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlUG9ydC5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3BwJywKKyAgICAgICAgICAgICdkb20v
TWljcm9EYXRhSXRlbUxpc3QuY3BwJywKKyAgICAgICAgICAgICdkb20vTWljcm9EYXRhSXRlbUxp
c3QuaCcsCiAgICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vTW91c2VSZWxhdGVkRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25FdmVu
dC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3MDUyKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcCBcCiAgICAgZG9tL01lc3NhZ2VQb3J0
LmNwcCBcCiAgICAgZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgXAorICAgIGRvbS9NaWNyb0Rh
dGFJdGVtTGlzdC5jcHAgXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKQEAgLTE1MzAs
NiArMTUzMSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9NZXNzYWdlRXZlbnQuaCBcCiAgICAg
ZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oIFwKICAgICBkb20vTWVzc2FnZVBvcnQuaCBcCisgICAg
ZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmggXAogICAgIGRvbS9Nb3VzZUV2ZW50LmggXAogICAgIGRv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5oIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDk3MDUyKQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIGlzRW1wdHkoSEFWRV9RUkFX
Rk9OVCkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVRBSUxTPS4pOiBERUZJTkVTICs9
IEVOQUJMRV9ERVRBSUxTPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVURVJfVEFHPS4p
OiBERUZJTkVTICs9IEVOQUJMRV9NRVRFUl9UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9NSFRNTD0uKTogREVGSU5FUyArPSBFTkFCTEVfTUhUTUw9MAorIWNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9NSUNST0RBVEE9Lik6IERFRklORVMgKz0gRU5BQkxFX01JQ1JPREFUQT0wCiAhY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1BST0dSRVNTX1RBRz0uKTogREVGSU5FUyArPSBFTkFCTEVf
UFJPR1JFU1NfVEFHPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQj0uKTogREVGSU5F
UyArPSBFTkFCTEVfQkxPQj0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05PVElGSUNBVElP
TlM9Lik6IERFRklORVMgKz0gRU5BQkxFX05PVElGSUNBVElPTlM9MQpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDk3MDUyKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3MDkwLDYgKzQ3MDkwLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNaWNyb0RhdGFJdGVtTGlzdC5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxNaWNyb0RhdGFJdGVtTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cTW91c2VFdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA5NzA1MikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE3
NSw2ICsxNzUsMTAgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlOYW1lKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGVs
ZW1lbnROYW1lKTsKIAorI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01J
Q1JPREFUQQorICAgICAgICBOb2RlTGlzdCBnZXRJdGVtcyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlTmFtZXMpOworI2VuZGlmCisKICNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmls
aXR5LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9CSUxJ
VFksIElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK01pY3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlzdChQ
YXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKKyAgICA6
IER5bmFtaWNOb2RlTGlzdChyb290Tm9kZSkKKyAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywg
bV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgLCBtX29yaWdpbmFs
VHlwZU5hbWVzKHR5cGVOYW1lcykKK3sKK30KKworTWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0Rh
dGFJdGVtTGlzdCgpCit7CisgICAgbV9yb290Tm9kZS0+cmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRl
bUxpc3QodGhpcywgbV9vcmlnaW5hbFR5cGVOYW1lcyk7Cit9CisKK2Jvb2wgTWljcm9EYXRhSXRl
bUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3ROb2RlKSBjb25zdAoreworICAgIGlmICgh
dGVzdE5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
SFRNTEVsZW1lbnQqIHRlc3RFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0ZXN0
Tm9kZSk7CisgICAgaWYgKCF0ZXN0RWxlbWVudC0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRl
bXNjb3BlQXR0cikgfHwgdGVzdEVsZW1lbnQtPmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW1w
cm9wQXR0cikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX3R5cGVOYW1lcy5j
b250YWlucygidW5kZWZpbmVkIikgfHwgIW1fdHlwZU5hbWVzLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV90eXBlTmFtZXMuY29udGFpbnModGVzdEVsZW1lbnQt
PmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW10eXBlQXR0cikpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTU9UT1JPTEEgTU9CSUxJVFksIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIGBg
QVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIE1PQklMSVRZLCBJTkMuIE9SIElU
UworICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsK
KyAqIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTWljcm9EYXRhSXRlbUxpc3RfaAorI2RlZmluZSBNaWNyb0RhdGFJdGVtTGlzdF9oCisK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBNaWNyb0RhdGFJdGVtTGlzdCA6IHB1YmxpYyBEeW5hbWlj
Tm9kZUxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1M
aXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBl
TmFtZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1pY3JvRGF0YUl0ZW1M
aXN0KHJvb3ROb2RlLCB0eXBlTmFtZXMpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5NaWNyb0Rh
dGFJdGVtTGlzdCgpOworCitwcml2YXRlOgorICAgIE1pY3JvRGF0YUl0ZW1MaXN0KFBhc3NSZWZQ
dHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWVzKTsKKworICAgIHZpcnR1
YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVtZW50KikgY29uc3Q7CisKKyAgICBTcGFjZVNwbGl0U3Ry
aW5nIG1fdHlwZU5hbWVzOworICAgIFN0cmluZyBtX29yaWdpbmFsVHlwZU5hbWVzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKKyNl
bmRpZiAvLyBNaWNyb0RhdGFJdGVtTGlzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lv
biA5NzA1MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNiArNjEsOSBAQAogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiTWljcm9EYXRhSXRlbUxpc3QuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMYWJlbHNOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTExMjUsNiArMTEyOCwxOSBAQCB2b2lk
IE5vZGU6OnJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vCiAgICAgZGF0YS0+bV90YWdOb2Rl
TGlzdENhY2hlTlMucmVtb3ZlKG5hbWUuaW1wbCgpKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RB
VEEpCit2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZE1pY3JvRGF0YUl0ZW1MaXN0KE1pY3JvRGF0YUl0
ZW1MaXN0KiBsaXN0LCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lKQoreworICAgIEFTU0VSVChyYXJl
RGF0YSgpKTsKKyAgICBBU1NFUlQocmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpOworICAgIEFTU0VS
VF9VTlVTRUQobGlzdCwgbGlzdC0+aGFzT3duQ2FjaGVzKCkpOworCisgICAgTm9kZUxpc3RzTm9k
ZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpLT5ub2RlTGlzdHMoKTsKKyAgICBBU1NFUlRfVU5VU0VE
KGxpc3QsIGxpc3QgPT0gZGF0YS0+bV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmdldCh0eXBlTmFt
ZSkpOworICAgIGRhdGEtPm1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5yZW1vdmUodHlwZU5hbWUp
OworfQorI2VuZGlmCisKIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkTGFiZWxzTm9kZUxpc3QoRHlu
YW1pY05vZGVMaXN0KiBsaXN0KQogewogICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKQEAgLTE3MjIs
NiArMTczOCwyNSBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5CiAg
ICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1Bh
c3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEl0ZW1zKGNvbnN0IFN0cmluZyYgdHlwZU5hbWVz
KQoreworICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CisgICAgaWYg
KCFkYXRhLT5ub2RlTGlzdHMoKSkgeworICAgICAgICBkYXRhLT5zZXROb2RlTGlzdHMoTm9kZUxp
c3RzTm9kZURhdGE6OmNyZWF0ZSgpKTsKKyAgICAgICAgdHJlZVNjb3BlKCktPmFkZE5vZGVMaXN0
Q2FjaGUoKTsKKyAgICB9CisKKyAgICBwYWlyPE5vZGVMaXN0c05vZGVEYXRhOjpNaWNyb0RhdGFJ
dGVtTGlzdENhY2hlOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gZGF0YS0+bm9kZUxpc3RzKCkt
Pm1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5hZGQodHlwZU5hbWVzLCAwKTsKKyAgICBpZiAoIXJl
c3VsdC5zZWNvbmQpCisgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPE5vZGVMaXN0PihyZXN1bHQu
Zmlyc3QtPnNlY29uZCk7CisKKyAgICBSZWZQdHI8TWljcm9EYXRhSXRlbUxpc3Q+IGxpc3QgPSBN
aWNyb0RhdGFJdGVtTGlzdDo6Y3JlYXRlKHRoaXMsIHR5cGVOYW1lcyk7CisgICAgcmVzdWx0LmZp
cnN0LT5zZWNvbmQgPSBsaXN0LmdldCgpOworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKK30K
KyNlbmRpZgorCiBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lcykKIHsKICAgICBOb2RlUmFyZURhdGEqIGRhdGEg
PSBlbnN1cmVSYXJlRGF0YSgpOwpAQCAtMjI3OSw2ICsyMzE0LDI0IEBAIEZsb2F0UG9pbnQgTm9k
ZTo6Y29udmVydEZyb21QYWdlKGNvbnN0IEYKICAgICByZXR1cm4gcDsKIH0KIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCit2b2lkIE5vZGU6Oml0ZW1UeXBlQXR0cmlidXRlQ2hhbmdlZCgpCit7Cisg
ICAgLy8gV2UgbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBtaWNyb0RhdGFJdGVtTGlzdENhY2hlIHdo
ZW4gaXRlbXR5cGUgYXR0cmlidXRlIGNoYW5nZWQKKyAgICBOb2RlICogcm9vdE5vZGUgPSBkb2N1
bWVudCgpOworCisgICAgaWYgKCFyb290Tm9kZS0+aGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gcm9vdE5vZGUtPnJhcmVEYXRhKCk7CisK
KyAgICBpZiAoIWRhdGEtPm5vZGVMaXN0cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBkYXRh
LT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0ZU1pY3JvZGF0YUl0ZW1MaXN0Q2FjaGVzKCk7Cit9Cisj
ZW5kaWYKKwogI2lmbmRlZiBOREVCVUcKIAogc3RhdGljIHZvaWQgYXBwZW5kQXR0cmlidXRlRGVz
Yyhjb25zdCBOb2RlKiBub2RlLCBTdHJpbmcmIHN0cmluZywgY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgY2hhciogYXR0ckRlc2MpCkBAIC0yNDI4LDggKzI0ODEsMjEgQEAgdm9pZCBO
b2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcwogICAgICAgICBpdC0+c2Vjb25kLT5p
bnZhbGlkYXRlQ2FjaGUoKTsKICAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAg
ICBtX2xhYmVsc05vZGVMaXN0Q2FjaGUtPmludmFsaWRhdGVDYWNoZSgpOworCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKKyAgICBpbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMoKTsKKyNl
bmRpZgogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3ZvaWQgTm9kZUxpc3RzTm9kZURhdGE6
OmludmFsaWRhdGVNaWNyb2RhdGFJdGVtTGlzdENhY2hlcygpCit7CisgICAgTWljcm9EYXRhSXRl
bUxpc3RDYWNoZTo6aXRlcmF0b3IgaXRlbUxpc3RDYWNoZUVuZCA9IG1fbWljcm9EYXRhSXRlbUxp
c3RDYWNoZS5lbmQoKTsKKyAgICBmb3IgKE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGU6Oml0ZXJhdG9y
IGl0ID0gbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IGl0ZW1MaXN0Q2Fj
aGVFbmQ7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNoZSgpOworfQor
I2VuZGlmCisKIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkoKSBjb25zdAogewogICAg
IGlmICghbV9saXN0c1dpdGhDYWNoZXMuaXNFbXB0eSgpKQpAQCAtMjQ0Niw2ICsyNTEyLDEwIEBA
IGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkoKSBjb25zdAogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFtX25hbWVOb2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgaWYgKG1fbWljcm9EYXRh
SXRlbUxpc3RDYWNoZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgog
CiAgICAgaWYgKG1fbGFiZWxzTm9kZUxpc3RDYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiA5NzA1MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAgY2xhc3MgRmxvYXRQb2ludDsK
IGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7Cisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKK2NsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0OworI2VuZGlmCiBj
bGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTlNSZXNvbHZlcjsKIGNsYXNzIE5hbWVkTm9kZU1h
cDsKQEAgLTUxNiw2ICs1MTksMTIgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2Rl
TGlzdHNBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBub3RpZnlMb2NhbE5vZGVMaXN0c0xh
YmVsQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2xhc3NOb2RlTGlzdChDbGFzc05v
ZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZv
aWQgcmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxpc3QoTWljcm9EYXRhSXRlbUxpc3QqLCBjb25z
dCBTdHJpbmcmKTsKKyAgICB2b2lkIGl0ZW1UeXBlQXR0cmlidXRlQ2hhbmdlZCgpOworI2VuZGlm
CisKICAgICB2b2lkIHJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lTm9kZUxpc3QqLCBjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vZGVMaXN0
KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRUYWdOb2RlTGlz
dChUYWdOb2RlTGlzdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTUyNiw2ICs1MzUsMTAg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1lKGNv
bnN0IFN0cmluZyYgZWxlbWVudE5hbWUpOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoY29uc3QgU3RyaW5nJiBjbGFzc05hbWVzKTsKIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0SXRlbXMoY29uc3QgU3Ry
aW5nJiB0eXBlTmFtZXMpOworI2VuZGlmCisKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHF1ZXJ5
U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiBxdWVyeVNlbGVjdG9yQWxsKGNvbnN0IFN0cmluZyYgc2VsZWN0
b3JzLCBFeGNlcHRpb25Db2RlJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFy
ZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJ
KHJldmlzaW9uIDk3MDUyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCwxMSBAQAogCiAjaW5jbHVkZSAiQ2xhc3NOb2RlTGlz
dC5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgorI2VuZGlmCisKICNpbmNsdWRlICJO
YW1lTm9kZUxpc3QuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiVGFn
Tm9kZUxpc3QuaCIKQEAgLTU2LDcgKzYxLDEyIEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFz
aE1hcDxSZWZQdHI8UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw+LCBUYWdOb2RlTGlz
dCo+IFRhZ05vZGVMaXN0Q2FjaGVOUzsKICAgICBUYWdOb2RlTGlzdENhY2hlTlMgbV90YWdOb2Rl
TGlzdENhY2hlTlM7Ci0gCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIE1pY3JvRGF0YUl0ZW1MaXN0Kj4gTWljcm9EYXRhSXRlbUxpc3RDYWNoZTsK
KyAgICBNaWNyb0RhdGFJdGVtTGlzdENhY2hlIG1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZTsKKyNl
bmRpZgorCiAgICAgTGFiZWxzTm9kZUxpc3QqIG1fbGFiZWxzTm9kZUxpc3RDYWNoZTsKICAKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOb2RlTGlzdHNOb2RlRGF0YT4gY3JlYXRlKCkKQEAgLTY2LDYg
Kzc2LDExIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZXMoKTsKICAg
ICB2b2lkIGludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKCk7CisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIHZvaWQgaW52YWxpZGF0ZU1pY3JvZGF0YUl0ZW1MaXN0Q2Fj
aGVzKCk7CisjZW5kaWYKKwogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiBwcml2YXRlOgpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHJldmlzaW9u
IDk3MDUyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsMTAgQEAgaWQKIGluY3JlbWVudGFsCiBpbmRldGVy
bWluYXRlCiBpc21hcAoraXRlbWlkCitpdGVtcHJvcAoraXRlbXNjb3BlCitpdGVtdHlwZQoga2V5
dHlwZQoga2luZAogbGFiZWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA5NzA1MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTUsNiArMTk1LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEEKICAgICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1By
b3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVOb25lKTsKICAgICAgICAgfSBlbHNlIGlm
IChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCiAgICAgICAgICAgICBhZGRDU1NQ
cm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBDU1NWYWx1ZU5vbmUpOwor
I2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRl
bXR5cGVBdHRyKSB7CisgICAgICAgIGl0ZW1UeXBlQXR0cmlidXRlQ2hhbmdlZCgpOworI2VuZGlm
CiAgICAgfQogLy8gc3RhbmRhcmQgZXZlbnRzCiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IG9uY2xpY2tBdHRyKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2
aXNpb24gOTcwNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTAgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHNwZWxsY2hlY2s7CiAKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIFJlZmxlY3RdIGJvb2xlYW4gaXRlbVNj
b3BlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwg
UmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1UeXBlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1JZDsKKwogI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGVEaXNwbGF5U3RyaW5nOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTcwNTIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTEwLTEwICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBNaWNyb2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0
ZW1zKCkgbWV0aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg2MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBFTkFCTEUoTUlDUk9EQVRBKSBmZWF0dXJlIGZsYWcuIEltcGxlbWVudCBkb2N1
bWVudC5nZXRJdGVtcygpIERPTSBBUEkuCisgICAgICAgIFNwZWMgOiBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL2NvbXBsZXRlL21pY3JvZGF0YS5odG1s
CisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDExLTEwLTA3ICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93
IHRvIHN0YXJ0IFdvcmtlckNvbnRleHQgcGF1c2VkCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCShyZXZpc2lvbiA5NzA1MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBAQAogICAgICAgJ0VO
QUJMRV9NRURJQV9TVFJFQU09MScsCiAgICAgICAnRU5BQkxFX01FVEVSX1RBRz0xJywKICAgICAg
ICdFTkFCTEVfTUhUTUw9MScsCisgICAgICAnRU5BQkxFX01JQ1JPREFUQT0wJywKICAgICAgICdF
TkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTPTAnLAogICAgICAgJ0VOQUJMRV9OT1RJRklDQVRJT05T
PTEnLAogICAgICAgJ0VOQUJMRV9PUklFTlRBVElPTl9FVkVOVFM9MCcsCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzA1MikK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTEwLTEwICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2Rh
dGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9kLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBFTkFC
TEUoTUlDUk9EQVRBKSBmZWF0dXJlIGZsYWcuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdl
YmtpdDoKKwogMjAxMS0xMC0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbW92ZSAibmVhciBtaXNzIiBYU1MgdnVsbmVyYWJpbGl0aWVzIGluIGdhcmRlbi1v
LW1hdGljCkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gOTcwNTIpCisrKyBUb29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIG15ICgK
ICAgICAkbWVkaWFTdHJlYW1TdXBwb3J0LAogICAgICRtZXRlclRhZ1N1cHBvcnQsCiAgICAgJG1o
dG1sU3VwcG9ydCwKKyAgICAkbWljcm9kYXRhU3VwcG9ydCwKICAgICAkbXV0YXRpb25PYnNlcnZl
cnNTdXBwb3J0LAogICAgICRuZXRzY2FwZVBsdWdpblN1cHBvcnQsCiAgICAgJG5vdGlmaWNhdGlv
bnNTdXBwb3J0LApAQCAtMjYzLDYgKzI2NCw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9w
dGlvbiA9PiAibWh0bWwiLCBkZXNjID0+ICJUb2dnbGUgTUhUTUwgc3VwcG9ydCIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtaHRtbFN1
cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJtaWNyb2RhdGEiLCBkZXNjID0+ICJUb2dnbGUg
TWljcm9kYXRhIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUlDUk9EQVRBIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1pY3JvZGF0YVN1cHBvcnQgfSwKKwogICAgIHsgb3B0
aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4iLCBkZXNjID0+ICJOZXRzY2FwZSBQbHVnaW4gc3VwcG9y
dCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVs
dCA9PiAhaXNFZmwoKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpblN1cHBvcnQgfSwKIApJbmRl
eDogV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJp
ZXMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzA1MikKKysrIFdlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMC0xMCAgQXJrbyBTYWhh
ICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1l
bnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgRU5BQkxFKE1JQ1JPREFUQSkgZmVh
dHVyZSBmbGFnLiBJbXBsZW1lbnQgZG9jdW1lbnQuZ2V0SXRlbXMoKSBET00gQVBJLgorICAgICAg
ICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
L2NvbXBsZXRlL21pY3JvZGF0YS5odG1sCisKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9G
ZWF0dXJlRGVmaW5lcy52c3Byb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzQ2Fpcm8udnNwcm9wczoKKwogMjAxMS0xMC0wNCAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIGZlYXR1cmUgZmxhZ3MgZm9yIGlu
Y29tcGxldGUgaW5wdXQgdHlwZXMKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmll
cy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCShyZXZpc2lvbiA5NzA1
MikKKysrIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52
c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNE
X1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9C
KTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5B
QkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFH
UklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChF
TkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChF
TkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJM
RV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVU
X0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
Uik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRF
Ul9UQUcpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9O
Uyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTsk
KEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRT
KTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1Q
KTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRp
b25zPSIkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0RfQ0FOVkFT
KTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7
JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19S
RUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTsk
KEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxF
X0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NB
VElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5B
QkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9O
VFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTsk
KEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFC
TEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUiCkBAIC0yMDIsNiArMjAyLDExIEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNl
dD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCisJCU5hbWU9IkVOQUJMRV9NSUNST0RBVEEiCisJ
CVZhbHVlPSIiCisJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKKwkvPgorICA8VXNlck1h
Y3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMiCiAJCVZhbHVlPSIiCiAJCVBl
cmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9v
bHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9w
cwkocmV2aXNpb24gOTcwNTIpCisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBA
QAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTsk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5B
QkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxT
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZ
U1RFTSk7JChFTkFCTEVfQ1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChF
TkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFT
RSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5B
QkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9M
SU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RB
KTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09S
S0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5B
QkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChF
TkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dF
Ql9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQ
QVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxF
XzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVO
QUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxFX1NRTF9E
QVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdF
KTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfQ1NTM19G
TEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFC
TEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
OyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJM
RV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJM
RV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEp
OyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFC
TEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VC
X1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBB
VEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNE
X0NBTlZBUyIKQEAgLTE5Nyw2ICsxOTcsMTEgQEAKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0
cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxFX01JQ1JPREFUQSIKKwkJVmFs
dWU9IiIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8K
IAkJTmFtZT0iRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIKIAkJVmFsdWU9IiIKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTcwNTIpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAxMS0x
MC0xMCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRh
OiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdC1j
YXNlcyBmb3IgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIFNwZWM6IGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvY29tcGxldGUvbWlj
cm9kYXRhLmh0bWwKKyAgICAgICAgU2tpcHBpbmcgdGVzdC1jYXNlcyBmb3Igbm93IGFzIE1pY3Jv
ZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KKworICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YTogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDEuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS8wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS8wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAw
NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDYuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDcuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL01pY3JvRGF0YS8wMDguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhLzAwOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS8wMDkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Jlc291
cmNlczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZUVsZW0pOgorICAgICAgICAo
cnVuVGVzdCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEtMTAt
MDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1Agc2hvdWxk
IGxvZyB1bnJlY29nbml6ZWQgZGlyZWN0aXZlcyB0byB0aGUgY29uc29sZQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3Vt
ZW50LmdldEl0ZW1zIERPTSBBUEkgbXVzdCBleGlzdC4KKworUEFTUyBOb2RlTGlzdCBpcyBkZWZp
bmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1z
IERPTSBBUEkgbXVzdCBleGlzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+Cit2YXIgTm9kZUxpc3QgPSBkb2N1bWVudC5nZXRJdGVtczsKK3Nob3VsZEJlRGVmaW5lZCgi
Tm9kZUxpc3QiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEy
IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoIG11
c3QgcmV0dXJuIHRoZSBjb3JyZWN0IG51bWJlciBvZiBNaWNyb0RhdGEgSXRlbXMgaW4gdGhlIERv
Y3VtZW50LiAKK0Fsc28gaXQgdGVzdHMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IHJldHVy
biBhIGxpdmUgTm9kZUxpc3QuCisKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aG91dCBhdXJndW1l
bnQ6IFBBU1MKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCBlbXB0eSBzdHJpbmcgaW4gdGhlIGF1
cmd1bWVudDogUEFTUworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5j
b20vZm9vJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCitkb2N1bWVudC5nZXRJdGVt
cygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInIGl0ZW10eXBlIGluIHRoZSBhdXJndW1l
bnQ6IFBBU1MKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2Yx
JyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCitOZXdseSBhcHBlbmRlZCBpdGVtIHNo
b3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2RlTGlzdDogUEFTUworUmVtb3ZpbmcgaXRlbSBzaG91
bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKKworVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0
aCBtdXN0IHJldHVybiB0aGUgY29ycmVjdCBudW1iZXIgb2YgTWljcm9EYXRhIEl0ZW1zIGluIHRo
ZSBEb2N1bWVudC4KKzxicj5BbHNvIGl0IHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVz
dCByZXR1cm4gYSBsaXZlIE5vZGVMaXN0LgorPC9wPgorCis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29w
ZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+Cis8ZGl2
IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9InRocmVlIj4K
KzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZjEiIGlkPSJmb3Vy
Ij48L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgordmFyIG9uZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdvbmUnKTsKK3ZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJyk7
Cit2YXIgdGhyZWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKTsKK3ZhciBmb3Vy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvdXInKTsKKworcnVuVGVzdChkb2N1bWVudC5n
ZXRJdGVtcygpLCBbb25lLCB0d28sIHRocmVlLCBmb3VyXSwgImRvY3VtZW50LmdldEl0ZW1zKCkg
d2l0aG91dCBhdXJndW1lbnQiKTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJycpLCBbb25l
LCB0d28sIHRocmVlLCBmb3VyXSwgImRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCBlbXB0eSBzdHJp
bmcgaW4gdGhlIGF1cmd1bWVudCIpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDov
L2V4YW1wbGUuY29tL2ZvbycpLCBbb25lLCB0aHJlZV0sICJkb2N1bWVudC5nZXRJdGVtcygpIHdp
dGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsK
K3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInKSwgW3R3
b10sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInIGl0
ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0
dHA6Ly9leGFtcGxlLmNvbS9mMScpLCBbZm91cl0sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGgg
J2h0dHA6Ly9leGFtcGxlLmNvbS9mMScgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudCIpOworCit2
YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2RpdicsIHtpdGVtc2NvcGU6J2l0ZW1zY29wZSd9KTsK
KworLy8gQXBwZW5kIG5ld2x5IGNyZWF0ZWQgaXRlbSB0byBib2R5Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0
d28sIHRocmVlLCBmb3VyLCBlbGVtZW50XSwgIk5ld2x5IGFwcGVuZGVkIGl0ZW0gc2hvdWxkIGJl
IG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0Iik7CisKKy8vIFJlbW92ZSB0aGUgZWxlbWVudAorZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRl
bXMoKSwgW29uZSwgdHdvLCB0aHJlZSwgZm91cl0sICJSZW1vdmluZyBpdGVtIHNob3VsZCBiZSBu
b3RpY2VkIGluIHRoZSBOb2RlTGlzdCIpOworCitkb2N1bWVudC53cml0ZSgiPGJyPlRFU1QgQ09N
UExFVEUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGxpdmUgTm9kZUxp
c3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtc2NvcGUgYXR0cmlidXRlIGNoYW5nZXMuCisKK1RoaXMg
dGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1pY3JvZGF0YSBpdGVtczogUEFTUworUmVtb3ZpbmcgaXRl
bXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKK1Nl
dCBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBOb2RlTGlzdDogUEFT
UworU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIGZhbHNlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5v
ZGVMaXN0OiBQQVNTCitTZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8gdHJ1ZSBzaG91bGQgbm90aWNl
IGluIHRoZSBOb2RlTGlzdDogUEFTUworCitURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtc2Nv
cGUgYXR0cmlidXRlIGNoYW5nZXMuPC9wPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6
Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5
cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiIGlkPSJ0d28iPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7Cit2YXIgdHdvID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOworCitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCks
IFtvbmUsIHR3b10sICJUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXMi
KTsKKworLy8gUmVtb3ZlIGl0ZW1zY29wZSBhdHRyaWJ1dGUKK29uZS5yZW1vdmVBdHRyaWJ1dGUo
J2l0ZW1zY29wZScpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbdHdvXSwgIlJlbW92
aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0Iik7
CisKKy8vIFNldHRpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZQorb25lLnNldEF0dHJpYnV0ZSgnaXRl
bXNjb3BlJywnaXRlbXNjb3BlJyk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUs
IHR3b10sICJTZXQgaXRlbXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBpbiB0aGUgTm9k
ZUxpc3QiKTsKKworLy8gU2V0dGluZyBpdGVtc2NvcGUgYXR0cmlidXRlIHRvIGZhbHNlCit0d28u
aXRlbVNjb3BlID0gZmFsc2U7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmVdLCAi
U2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIGZhbHNlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVM
aXN0Iik7CisKKy8vIFNldHRpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZSB0byB0cnVlCit0d28uaXRl
bVNjb3BlID0gdHJ1ZTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvXSwg
IlNldCBlbGVtZW50Lml0ZW1TY29wZSB0byB0cnVlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVM
aXN0Iik7CisKK2RvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDA0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMDQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgYmUgY2Fz
ZSBzZW5zaXRpdmUuCisKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNv
bS9Gb28nKS5sZW5ndGggPT0gMCBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5n
ZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL0JBUicpLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInKS5sZW5ndGggPT0g
MCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0
SXRlbXMgbXVzdCBiZSBjYXNlIHNlbnNpdGl2ZS48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29w
ZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL0JBUiIgaWQ9InR3byI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQu
Z2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9Gb28nKS5sZW5ndGggPT0gMCIpOworc2hvdWxk
QmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxlbmd0
aCA9PSAxIik7CisKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFt
cGxlLmNvbS9CQVInKS5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJ
dGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2JhcicpLmxlbmd0aCA9PSAwIik7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdHMgdGhhdCBs
aXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRlbXR5cGUgY2hhbmdlcy4KKworVGhpcyB0
ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zOiBQQVNTCitOb2RlTGlzdCBtdXN0
IG5vdGljZSBvbiByZW1vdmUgYXR0cmlidXRlIGl0ZW10eXBlOiBQQVNTCitOb2RlTGlzdCBtdXN0
IG5vdGljZSBvbiBzZXQgYXR0cmlidXRlIGl0ZW10eXBlOiBQQVNTCisKK1RFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdo
ZW4gaXRlbXR5cGUgY2hhbmdlcy48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDov
L2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9InR3byI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2
YXIgb25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpOwordmFyIHR3byA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKTsKKworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygn
aHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLCBbb25lLCB0d29dLCAiVGhpcyB0ZXN0IHBhZ2UgY29u
dGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zIik7CisKKy8vIFJlbW92ZSBpdGVtdHlwZSBhdHRyaWJ1
dGUKK29uZS5yZW1vdmVBdHRyaWJ1dGUoJ2l0ZW10eXBlJyk7CitydW5UZXN0KGRvY3VtZW50Lmdl
dEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFt0d29dLCAiTm9kZUxpc3QgbXVzdCBu
b3RpY2Ugb24gcmVtb3ZlIGF0dHJpYnV0ZSBpdGVtdHlwZSIpOworCisvLyBTZXQgaXRlbXR5cGUg
YXR0cmlidXRlCitvbmUuc2V0QXR0cmlidXRlKCdpdGVtdHlwZScsJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nKTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9m
b28nKSwgW29uZSwgdHdvXSwgIk5vZGVMaXN0IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUg
aXRlbXR5cGUiKTsKKworZG9jdW1lbnQud3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwNi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTAgQEAKK1RoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGxvY2F0ZSBp
dGVtcyB3aGVuIHBhcmFtZXRlcnMgYXJlIHNlcGFyYXRlZCBieSBzcGFjZXMuIAorVGhpcyB0ZXN0
IGFsc28gZW5zdXJlIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBpZ25vcmUgZHVwbGljYXRl
ZCB0b2tlbnMuCisKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20v
Zm9vIGh0dHA6Ly9leGFtcGxlLmNvbS9iYXIgJykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBk
b2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gZGF0YTp0ZXh0L3BsYWlu
ICcpLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8v
ZXhhbXBsZS5jb20vZm9vIGRhdGE6dGV4dC9wbGFpbiBodHRwOi8vZXhhbXBsZS5jb20vZm9vJyku
bGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgZG9jdW1lbnQu
Z2V0SXRlbXMgbXVzdCBsb2NhdGUgaXRlbXMgd2hlbiBwYXJhbWV0ZXJzIGFyZSBzZXBhcmF0ZWQg
Ynkgc3BhY2VzLgorPGJyPlRoaXMgdGVzdCBhbHNvIGVuc3VyZSB0aGF0IGRvY3VtZW50LmdldEl0
ZW1zIG11c3QgaWdub3JlIGR1cGxpY2F0ZWQgdG9rZW5zLgorPC9wPgorPGRpdiBpdGVtc2NvcGUg
aXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUg
aXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5
cGU9ImRhdGE6dGV4dC9wbGFpbiI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8v
ZXhhbXBsZS5jb20vZm9vIGh0dHA6Ly9leGFtcGxlLmNvbS9iYXIgJykubGVuZ3RoID09IDIiKTsK
K3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9v
ICBkYXRhOnRleHQvcGxhaW4gICcpLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImRvY3Vt
ZW50LmdldEl0ZW1zKCcgIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAg
aHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxlbmd0aCA9PSAyIik7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3RzIHRoYXQgZG9jdW1l
bnQuZ2V0SXRlbXMgTm9kZUxpc3QgbXVzdCBiZSBpbiBzb3VyY2UgdHJlZSBvcmRlci4KKworUEFT
UyBub2RlTGlzdFswXS5pZCBpcyAnb25lJworUEFTUyBub2RlTGlzdFsxXS5pZCBpcyAndHdvJwor
UEFTUyBub2RlTGlzdFsyXS5pZCBpcyAndGhyZWUnCitQQVNTIG5vZGVMaXN0WzNdLmlkIGlzICdm
b3VyJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDcuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgTm9kZUxp
c3QgbXVzdCBiZSBpbiBzb3VyY2UgdHJlZSBvcmRlci48L3A+CisKKzxkaXYgaXRlbXNjb3BlIGl0
ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKzxkaXYgaXRl
bXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIiBpZD0idHdvIj48L2Rpdj4K
KzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0idGhy
ZWUiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9ImRhdGE6dGV4dC9wbGFpbiwiIGlkPSJmb3Vy
Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaWQ9ImZpdmUiPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIG5vZGVMaXN0ID0gZG9jdW1lbnQuZ2V0
SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9iYXIgZGF0YTp0ZXh0L3BsYWluLCBodHRwOi8vZXhh
bXBsZS5jb20vZm9vJyk7CisKK3Nob3VsZEJlKCJub2RlTGlzdFswXS5pZCIsICInb25lJyIpOwor
c2hvdWxkQmUoIm5vZGVMaXN0WzFdLmlkIiwgIid0d28nIik7CitzaG91bGRCZSgibm9kZUxpc3Rb
Ml0uaWQiLCAiJ3RocmVlJyIpOworc2hvdWxkQmUoIm5vZGVMaXN0WzNdLmlkIiwgIidmb3VyJyIp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
OC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDA4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3Qgbm90IGZpbmQgaXRlbXMg
d2l0aCBpdGVtdHlwZSBidXQgbm90IGl0ZW1zY29wZS4KKworUEFTUyBkb2N1bWVudC5nZXRJdGVt
cygnaHR0cDovL2V4YW1wbGUuY29tL2JhcicpLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBmaW5k
IGl0ZW1zIHdpdGggaXRlbXR5cGUgYnV0IG5vdCBpdGVtc2NvcGUuPC9wPgorPGRpdiBpdGVtc2Nv
cGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iPjwvZGl2PgorPGRpdiBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhh
bXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50Lmdl
dEl0ZW1zIG11c3Qgbm90IGNvbnRhaW4gdGhlIGl0ZW1zIHRoYXQgaGF2ZSB0aGUgaXRlbXByb3Ag
YXR0cmlidXRlIHNldC4gSXQgbXVzdCByZXR1cm4gYSBOb2RlTGlzdCBjb250YWluaW5nIHRoZSB0
b3AtbGV2ZWwgbWljcm9kYXRhIGl0ZW1zIGluIHRoZSBkb2N1bWVudC4KKworTmFtZTogQW1hbmRh
CisKK0JhbmQ6IEphenogQmFuZCAoMTIgcGxheWVycykKKworUEFTUyBkb2N1bWVudC5nZXRJdGVt
cygpLmxlbmd0aCA9PSA2IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGgg
PT0gNCBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDUgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBjb250YWluIHRo
ZSBpdGVtcyB0aGF0IGhhdmUgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBzZXQuCitJdCBtdXN0IHJl
dHVybiBhIE5vZGVMaXN0IGNvbnRhaW5pbmcgdGhlIHRvcC1sZXZlbCBtaWNyb2RhdGEgaXRlbXMg
aW4gdGhlIGRvY3VtZW50LjwvcD4KKworPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9l
eGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9
Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiIGlkPSJ0d28iPjwvZGl2PgorCis8ZGl2IGl0ZW1zY29w
ZT4KKzxwPk5hbWU6IDxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5BbWFuZGE8L3NwYW4+PC9wPgorPHA+
QmFuZDogPHNwYW4gaXRlbXByb3A9ImJhbmQiIGl0ZW1zY29wZT4gPHNwYW4gaXRlbXByb3A9Im5h
bWUiPkphenogQmFuZDwvc3Bhbj4gKDxzcGFuIGl0ZW1wcm9wPSJzaXplIj4xMjwvc3Bhbj4gcGxh
eWVycyk8L3NwYW4+PC9wPgorPC9kaXY+CisKKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vIiBpZD0idGhyZWUiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9
Imh0dHA6Ly9leGFtcGxlLmNvbS9mMSIgaWQ9ImZvdXIiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGl0
ZW1zY29wZSBpZD0iZml2ZSI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDYiKTsKKwor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpLnNldEF0dHJpYnV0ZSgnaXRlbXByb3AnLCAn
dGVzdCcpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpdmUnKS5zZXRBdHRyaWJ1dGUoJ2l0
ZW1wcm9wJywgJ3Rlc3QnKTsKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5n
dGggPT0gNCIpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZml2ZScpLnJlbW92ZUF0dHJp
YnV0ZSgnaXRlbXByb3AnKTsKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5n
dGggPT0gNSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvLyB0aGlzIGZ1
bmN0aW9uIGNyZWF0ZXMgZWxlbWVudCB3aXRoIHNwZWNpZmllZCBwcm9wZXJ0eSBhbmQgY29udGVu
dHMuCitmdW5jdGlvbiBjcmVhdGVFbGVtKHR5cGUscHJvcHMsY29udGVudHMpIHsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCisgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5
cGUpOworCisgICAgZm9yKCB2YXIgaSBpbiBwcm9wcyApIHsKKyAgICAgIGlmKCBwcm9wcy5oYXNP
d25Qcm9wZXJ0eShpKSApIHsKKyAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoaSxwcm9wc1tpXSk7
CisgICAgICB9CisgICAgfQorICAgIGlmKCBjb250ZW50cyApIHsKKyAgICAgIGVsZW0uaW5uZXJI
VE1MID0gY29udGVudHM7CisgICAgfQorICAgIHJldHVybiBlbGVtOworfQorCisKKy8vIHJ1bnMg
YSB0ZXN0IGFuZCB3cml0ZXMgYSBsb2cKK2Z1bmN0aW9uIHJ1blRlc3QoY29sbGVjdGlvbiwgZWxl
bWVudHMsIHRpdGxlKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIGRvY3VtZW50LndyaXRlKHRp
dGxlICsgJzogJyk7CisgIHBhc3MgPSB0cnVlOworCisgIGlmIChjb2xsZWN0aW9uLmxlbmd0aCAh
PSBlbGVtZW50cy5sZW5ndGgpIHsKKyAgICBwYXNzID0gZmFsc2UKKyAgICBkb2N1bWVudC53cml0
ZSgnRkFJTCAtIGV4cGVjdGVkICcgKyBlbGVtZW50cy5sZW5ndGggKyAnIGVsZW1lbnRzIGJ1dCBn
b3QgJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsgIiBlbGVtZW50cy4gIik7CisgIH0KKyAgZm9yKHZh
ciBpID0gMCwgbWF4ID0gY29sbGVjdGlvbi5sZW5ndGggPiBlbGVtZW50cy5sZW5ndGggPyBlbGVt
ZW50cy5sZW5ndGggOiBjb2xsZWN0aW9uLmxlbmd0aDsgaSA8IG1heDsgaSsrKSB7CisgICAgaWYo
Y29sbGVjdGlvbltpXSAhPSBlbGVtZW50c1tpXSkgeworICAgICAgcGFzcyA9IGZhbHNlCisgICAg
ICBkb2N1bWVudC53cml0ZSgnRkFJTCAtIGV4cGVjdGVkIGVsZW1lbnQgOiAnICsgZWxlbWVudHNb
aV0udGFnTmFtZSArICIgYnV0IGdvdCBlbGVtZW50IDoiICsgY29sbGVjdGlvbltpXS50YWdOYW1l
KTsKKyAgICAgIGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgZWxlbWVudCB3aXRoIGlk
OiAnICsgZWxlbWVudHNbaV0uaWQgKyAiIGJ1dCBnb3QgZWxlbWVudCB3aXRoIGlkOiIgKyBjb2xs
ZWN0aW9uW2ldLmlkKTsKKyAgICB9CisgIH0KKyAgaWYgKHBhc3MpCisgICAgZG9jdW1lbnQud3Jp
dGUoJ1BBU1MnKTsKKyAgZG9jdW1lbnQud3JpdGUoJzxicj4nKTsKK30KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJl
dmlzaW9uIDk3MDUyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zODEwLDMgKzM4MTAsNiBAQCBCVUdfUklD
T1cgOiBmYXN0L2pzL2FycmF5LWZ1bmN0aW9ucy1ub24tCiBCVUdfUklDT1cgOiBmYXN0L2pzL2Fy
cmF5LXByb3RvdHlwZS1wcm9wZXJ0aWVzLmh0bWwgPSBURVhUCiBCVUdfUklDT1cgOiBmYXN0L2pz
L2tkZS9SZWdFeHAuaHRtbCA9IFRFWFQKIEJVR19SSUNPVyA6IGZhc3QvanMvdG9TdHJpbmctb3Zl
cnJpZGVzLmh0bWwgPSBURVhUCisKKy8vIE1pY3JvZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5h
YmxlZC4KK0JVR1dLNjg2MTAgU0tJUCA6IGZhc3QvZG9tL01pY3JvRGF0YSA9IFBBU1MKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA5NzA1MikKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgyLDMgKzE2ODIsNiBA
QCBodHRwL3Rlc3RzL211bHRpcGFydC9sb2FkLWxhc3Qtbm9uLWh0bWwtCiAjIFJFR1JFU1NJT04o
cjk2ODcwKTogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwOC5odG1sIGZhaWxzIG9u
IG5vbi1NYWMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTg3
CiBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4Lmh0bWwKKworIyBNaWNyb2RhdGEg
RE9NIEFQSSBpcyBub3QgeWV0IGVuYWJsZWQuCitmYXN0L2RvbS9NaWNyb0RhdGEKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gOTcwNTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0yNDEzLDMgKzI0MTMsNiBAQCBodHRw
L3Rlc3RzL211bHRpcGFydC9sb2FkLWxhc3Qtbm9uLWh0bWwtCiAjIFtRdF0gZmFzdC90ZXh0L2xp
bmUtaW5pdGlhbC1hbmQtZmluYWwtc3dhc2hlcy5odG1sIGZhaWxzCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcxOQogZmFzdC90ZXh0L2xpbmUtaW5pdGlhbC1h
bmQtZmluYWwtc3dhc2hlcy5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBl
bmFibGVkLgorZmFzdC9kb20vTWljcm9EYXRhCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAkocmV2aXNpb24gOTcwNTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTQyMywzICsxNDIzLDYgQEAgaHR0cC90ZXN0cy9sb2FkaW5nL3By
b2dyZXNzLWZpbmlzaGVkLWNhbAogIyBSRUdSRVNTSU9OKHI5Njg3MCk6IGVkaXRpbmcvcGFzdGVi
b2FyZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBmYWlscyBvbiBub24tTWFjCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU4NwogZWRpdGluZy9wYXN0ZWJvYXJkL3Nt
YXJ0LXBhc3RlLTAwOC5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBlbmFi
bGVkLgorZmFzdC9kb20vTWljcm9EYXRhCg==
</data>
<flag name="review"
          id="107842"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110685</attachid>
            <date>2011-10-12 08:18:58 -0700</date>
            <delta_ts>2011-10-13 01:49:14 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_68610.diff</filename>
            <type>text/plain</type>
            <size>58915</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk3MjYy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAt
MTIgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAx
MS0xMC0xMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gW1dlYktpdDJdIE1ha2UgYWRkaW5nIGFub3RoZXIgdW5pdCB0ZXN0IGVhc2llcgpJ
bmRleDogY29uZmlndXJlLmFjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvbmZpZ3VyZS5hYwkocmV2aXNpb24g
OTcyNjIpCisrKyBjb25maWd1cmUuYWMJKHdvcmtpbmcgY29weSkKQEAgLTQxNCw2ICs0MTQsMTQg
QEAgQUNfQVJHX0VOQUJMRShtZXRlcl90YWcsCiAgICAgICAgICAgICAgIFtdLFtlbmFibGVfbWV0
ZXJfdGFnPSJ5ZXMiXSkKIEFDX01TR19SRVNVTFQoWyRlbmFibGVfbWV0ZXJfdGFnXSkKIAorIyBj
aGVjayB3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBNaWNyb2RhdGEgc3VwcG9ydAorQUNfTVNHX0NI
RUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBNaWNyb2RhdGEgc3VwcG9ydF0pCitBQ19B
UkdfRU5BQkxFKG1pY3JvZGF0YSwKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5h
YmxlLW1pY3JvZGF0YV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgSFRN
TDUgbWljcm9kYXRhIHN1cHBvcnQgW2RlZmF1bHQ9bm9dXSksCisgICAgICAgICAgICAgIFtdLFtl
bmFibGVfbWljcm9kYXRhPSJubyJdKQorQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9taWNyb2RhdGFd
KQorCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIHBhZ2UgdmlzaWJpbGl0eSBBUEkuCiBBQ19N
U0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIFBhZ2UgVmlzaWJpbGl0eSBBUEkgc3VwcG9y
dF0pCiBBQ19BUkdfRU5BQkxFKHBhZ2VfdmlzaWJpbGl0eV9hcGksCkBAIC0xMTQyLDYgKzExNTAs
NyBAQCBBTV9DT05ESVRJT05BTChbRU5BQkxFXzNEX1JFTkRFUklOR10sW3RlCiBBTV9DT05ESVRJ
T05BTChbRU5BQkxFX1dFQkdMXSxbdGVzdCAiJGVuYWJsZV93ZWJnbCIgPSAieWVzIl0pCiBBTV9D
T05ESVRJT05BTChbRU5BQkxFX0JMT0JdLFt0ZXN0ICIkZW5hYmxlX2Jsb2IiID0gInllcyJdKQog
QU1fQ09ORElUSU9OQUwoW0VOQUJMRV9NRVRFUl9UQUddLFt0ZXN0ICIkZW5hYmxlX21ldGVyX3Rh
ZyIgPSAieWVzIl0pCitBTV9DT05ESVRJT05BTChbRU5BQkxFX01JQ1JPREFUQV0sW3Rlc3QgIiRl
bmFibGVfbWljcm9kYXRhIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSV0sW3Rlc3QgIiRlbmFibGVfcGFnZV92aXNpYmlsaXR5X2FwaSIgPSAieWVz
Il0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1BST0dSRVNTX1RBR10sW3Rlc3QgIiRlbmFibGVf
cHJvZ3Jlc3NfdGFnIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkddLFt0ZXN0ICIkZW5hYmxlX2NoYW5uZWxfbWVzc2FnaW5nIiA9ICJ5ZXMiXSkKQEAg
LTEyNjgsNiArMTI3Nyw3IEBAIEZlYXR1cmVzOgogIE1lZGlhIHN0YXRpc3RpY3MgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9tZWRpYV9zdGF0aXN0aWNz
CiAgSFRNTDUgY2hhbm5lbCBtZXNzYWdpbmcgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiAkZW5hYmxlX2NoYW5uZWxfbWVzc2FnaW5nCiAgSFRNTDUgbWV0ZXIgZWxlbWVudCBzdXBw
b3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21ldGVyX3RhZworIEhU
TUw1IG1pY3JvZGF0YSBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog
JGVuYWJsZV9taWNyb2RhdGEKICBQYWdlIFZpc2liaWxpdHkgQVBJIHN1cHBvcnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfcGFnZV92aXNpYmlsaXR5X2FwaQogIEhUTUw1
IHByb2dyZXNzIGVsZW1lbnQgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVu
YWJsZV9wcm9ncmVzc190YWcKICBIVE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBwZXJzaXN0
ZW50IHN0b3JhZ2Ugc3VwcG9ydCA6ICRlbmFibGVfZG9tX3N0b3JhZ2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk3MjYyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTAtMTIgIEFya28gU2FoYSAgPGFya29AbW90b3Jv
bGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9j
dW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1w
bGVtZW50IGRvY3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKyAgICAgICAgU3BlYzogaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9jb21wbGV0ZS9taWNy
b2RhdGEuaHRtbAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvMDA0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS8wMDguaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
LzAwOS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Z2V0SXRl
bXMpOiBSZXR1cm5zIE5vZGVMaXN0IG9mIHRoZSBlbGVtZW50IGluIHRoZSBEb2N1bWVudCB0aGF0
CisgICAgICAgIGNyZWF0ZSBpdGVtcywgdGhhdCBhcmUgbm90IHBhcnQgb2Ygb3RoZXIgaXRlbXMs
IGFuZCB0aGF0IGFyZSBvZiBvbmUgb2YgdGhlIHR5cGVzCisgICAgICAgIGdpdmVuIGluIHRoZSBh
cmd1bWVudC4gSWYgbm8gdG9rZW5zIHNwZWNpZmllZC91bmRlZmluZWQgaW4gdGhlIGFyZ3VtZW50
LCB0aGVuCisgICAgICAgIHJldHVybiBhIE5vZGVMaXN0IGNvbnRhaW5pbmcgYWxsIHRvcCBsZXZl
bCBtaWNyb2RhdGEgaXRlbXMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlQ2Fj
aGVkTWljcm9EYXRhSXRlbUxpc3QpOiBSZW1vdmUgTWljcm9kYXRhIGl0ZW0gbm9kZSBsaXN0IGZy
b20gY2FjaGUuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmlkbDogQWRkZWQgZ2V0SXRlbXMoKSBtaWNyb2RhdGEgRE9NIEFQSS4KKyAgICAgICAgKiBk
b20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1pY3Jv
RGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNaWNy
b0RhdGFJdGVtTGlzdDo6fk1pY3JvRGF0YUl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1p
Y3JvRGF0YUl0ZW1MaXN0Ojpub2RlTWF0Y2hlcyk6CisgICAgICAgICogZG9tL01pY3JvRGF0YUl0
ZW1MaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
aXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKTogSXQgaXMgcmVzcG9uc2libGUgdG8gaW52YWxpZGF0
ZSB0aGUgTWljcm9kYXRhCisgICAgICAgIGl0ZW0gbm9kZSBjYWNoZSB3aGVuIGl0ZW1UeXBlIGF0
dHJpYnV0ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6Omlu
dmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMpOiBJ
bnZhbGlkYXRlIE1pY3JvZGF0YSBpdGVtCisgICAgICAgIGxpc3QgY2FjaGUuCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSk6CisgICAgICAgICogZG9tL05vZGUu
aDoKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgICogZmVhdHVyZXMucHJp
OgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBpdGVtaWQsIGl0
ZW1wcm9wLCBpdGVtc2NvcGUsIGl0ZW10eXBlIGF0dHJpYnV0ZXMuCisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUpOiBIYW5kbGUgaXRlbXR5cGUgYXR0cmlidXRlIGNoYW5nZS4KKyAgICAgICAg
KiBodG1sL0hUTUxFbGVtZW50LmlkbDogQWRkZWQgaXRlbWlkLCBpdGVtcHJvcCwgaXRlbXNjb3Bl
LCBpdGVtdHlwZXMgbWljcm9kYXRhIGF0dHJpYnV0ZXMuCisKIDIwMTEtMTAtMTIgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW3Y4XSBVc2UgVjhET01X
cmFwcGVyOjppc1dyYXBwZXJPZlR5cGUgZm9yIGRldGVybWluaW5nIGdsb2JhbCBvYmplY3QgdHlw
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDk3MjYyKQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU1MCw2ICs1NTAsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01lc3NhZ2VFdmVudC5jcHAKICAgICBkb20vTWVz
c2FnZVBvcnRDaGFubmVsLmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydC5jcHAKKyAgICBkb20vTWlj
cm9EYXRhSXRlbUxpc3QuY3BwCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA5NzI2MikKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTc4Nyw2ICs3ODcsMTAgQEAg
aWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9NRVRFUl9UQUcsJChGRQogICAgIEhUTUxfRkxBR1Mg
Oj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfTUVURVJfVEFHPTEKIGVuZGlmCiAKK2lmZXEgKCQoZmlu
ZHN0cmluZyBFTkFCTEVfTUlDUk9EQVRBLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9NSUNS
T0RBVEEpCisgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9NSUNST0RBVEE9
MQorZW5kaWYKKwogaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9QUk9HUkVTU19UQUcsJChGRUFU
VVJFX0RFRklORVMpKSwgRU5BQkxFX1BST0dSRVNTX1RBRykKICAgICBIVE1MX0ZMQUdTIDo9ICQo
SFRNTF9GTEFHUykgRU5BQkxFX1BST0dSRVNTX1RBRz0xCiBlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0JKHJldmlzaW9uIDk3MjYyKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHdvcmtpbmcgY29weSkKQEAgLTU4NSw2ICs1ODUsMTQgQEAgd2ViY29yZV9jcHBmbGFncyAr
PSAtREVOQUJMRV9NSFRNTD0xCiBlbmRpZiAgIyBFTkQgRU5BQkxFX01IVE1MCiAKICMgLS0tCisj
IEhUTUw1IE1pY3JvZGF0YSBzdXBwb3J0CisjIC0tLQoraWYgRU5BQkxFX01JQ1JPREFUQQorRkVB
VFVSRV9ERUZJTkVTICs9IEVOQUJMRV9NSUNST0RBVEE9MQord2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9NSUNST0RBVEE9MQorZW5kaWYgICMgRU5EIEVOQUJMRV9NSUNST0RBVEEKKworIyAt
LS0KICMgUmVnaXN0ZXIgUHJvdG9jb2wgSGFuZGxlciBzdXBwb3J0CiAjIC0tLQogaWYgRU5BQkxF
X1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI3LDYgKzEyMjcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgXApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTUyMjcsNiArNTIyNyw4IEBACiAgICAgICAgICAgICAnZG9t
L01lc3NhZ2VFdmVudC5oJywKICAgICAgICAgICAgICdkb20vTWVzc2FnZVBvcnQuY3BwJywKICAg
ICAgICAgICAgICdkb20vTWVzc2FnZVBvcnRDaGFubmVsLmNwcCcsCisgICAgICAgICAgICAnZG9t
L01pY3JvRGF0YUl0ZW1MaXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL01pY3JvRGF0YUl0ZW1M
aXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9Nb3VzZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uQ2Fs
bGJhY2suaCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNTE2LDYgKzUxNiw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9NZXNzYWdlRXZlbnQuY3BwIFwKICAgICBkb20vTWVzc2FnZVBv
cnQuY3BwIFwKICAgICBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBcCisgICAgZG9tL01pY3Jv
RGF0YUl0ZW1MaXN0LmNwcCBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXApAQCAtMTUz
NCw2ICsxNTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL01lc3NhZ2VFdmVudC5oIFwKICAg
ICBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmggXAogICAgIGRvbS9NZXNzYWdlUG9ydC5oIFwKKyAg
ICBkb20vTWljcm9EYXRhSXRlbUxpc3QuaCBcCiAgICAgZG9tL01vdXNlRXZlbnQuaCBcCiAgICAg
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmggXAogICAgIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmggXApJ
bmRleDogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZlYXR1cmVzLnByaQkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9m
ZWF0dXJlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgaXNFbXB0eShIQVZF
X1FSQVdGT05UKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVEFJTFM9Lik6IERFRklO
RVMgKz0gRU5BQkxFX0RFVEFJTFM9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NRVRFUl9U
QUc9Lik6IERFRklORVMgKz0gRU5BQkxFX01FVEVSX1RBRz0xCiAhY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX01IVE1MPS4pOiBERUZJTkVTICs9IEVOQUJMRV9NSFRNTD0wCishY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX01JQ1JPREFUQT0uKTogREVGSU5FUyArPSBFTkFCTEVfTUlDUk9EQVRBPTAK
ICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPS4pOiBERUZJTkVTICs9IEVO
QUJMRV9QUk9HUkVTU19UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9CTE9CPS4pOiBE
RUZJTkVTICs9IEVOQUJMRV9CTE9CPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTk9USUZJ
Q0FUSU9OUz0uKTogREVGSU5FUyArPSBFTkFCTEVfTk9USUZJQ0FUSU9OUz0xCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTcy
NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtNDcyMDYsNiArNDcyMDYsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1pY3JvRGF0YUl0ZW1MaXN0LmNwcCIK
KwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1
Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXE1pY3JvRGF0YUl0ZW1MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDk3
MjYyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjM4LDYgKzIzOCwxMSBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiTWljcm9EYXRhSXRlbUxpc3Qu
aCIKKyNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ug
c3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpAQCAt
NTE5Myw0ICs1MTk4LDQwIEBAIERvY3VtZW50TG9hZGVyKiBEb2N1bWVudDo6bG9hZGVyKCkgY29u
c3QKICAgICByZXR1cm4gbG9hZGVyOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1Bhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IERvY3VtZW50OjpnZXRJdGVtcyhjb25zdCBTdHJpbmcmIHR5cGVOYW1l
cykKK3sKKyAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOworICAgIGlm
ICghZGF0YS0+bm9kZUxpc3RzKCkpIHsKKyAgICAgICAgZGF0YS0+c2V0Tm9kZUxpc3RzKE5vZGVM
aXN0c05vZGVEYXRhOjpjcmVhdGUoKSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZGROb2RlTGlz
dENhY2hlKCk7CisgICAgfQorCisgICAgLy8gU2luY2UgZG9jdW1ldC5nZXRJdGVtKCkgaXMgYWxs
b3dlZCBmb3IgbWljcm9kYXRhLCB0eXBlTmFtZXMgd2lsbCBiZSBudWxsIHN0cmluZy4KKyAgICAv
LyBJbiB0aGlzIGNhc2Ugd2UgbmVlZCB0byBjcmVhdGUgYW4gdW5pcXVlIHN0cmluZyBpZGVudGlm
aWVyIHRvIG1hcCBzdWNoIHJlcXVlc3QgaW4gdGhlIGNhY2hlLgorICAgIFN0cmluZyBsb2NhbFR5
cGVOYW1lcyA9IHR5cGVOYW1lcy5pc051bGwoKSA/IFN0cmluZygiVW5kZWZpbmVkTWljcm9EYXRh
SXRlbVR5cGUiKSA6IHR5cGVOYW1lczsKKworICAgIHBhaXI8Tm9kZUxpc3RzTm9kZURhdGE6Ok1p
Y3JvRGF0YUl0ZW1MaXN0Q2FjaGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBkYXRhLT5ub2Rl
TGlzdHMoKS0+bV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmFkZChsb2NhbFR5cGVOYW1lcywgMCk7
CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxOb2Rl
TGlzdD4ocmVzdWx0LmZpcnN0LT5zZWNvbmQpOworCisgICAgUmVmUHRyPE1pY3JvRGF0YUl0ZW1M
aXN0PiBsaXN0ID0gTWljcm9EYXRhSXRlbUxpc3Q6OmNyZWF0ZSh0aGlzLCB0eXBlTmFtZXMpOwor
ICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kID0gbGlzdC5nZXQoKTsKKyAgICByZXR1cm4gbGlzdC5y
ZWxlYXNlKCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlbW92ZUNhY2hlZE1pY3JvRGF0YUl0ZW1M
aXN0KE1pY3JvRGF0YUl0ZW1MaXN0KiBsaXN0LCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKK3sK
KyAgICBBU1NFUlQocmFyZURhdGEoKSk7CisgICAgQVNTRVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0
cygpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QtPmhhc093bkNhY2hlcygpKTsKKwor
ICAgIE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gcmFyZURhdGEoKS0+bm9kZUxpc3RzKCk7CisK
KyAgICBTdHJpbmcgbG9jYWxUeXBlTmFtZXMgPSB0eXBlTmFtZXMuaXNOdWxsKCkgPyBTdHJpbmco
IlVuZGVmaW5lZE1pY3JvRGF0YUl0ZW1UeXBlIikgOiB0eXBlTmFtZXM7CisgICAgQVNTRVJUX1VO
VVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5nZXQobG9j
YWxUeXBlTmFtZXMpKTsKKyAgICBkYXRhLT5tX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUucmVtb3Zl
KGxvY2FsVHlwZU5hbWVzKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMCBAQCBjbGFz
cyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjazsKIGNsYXNzIFNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK2NsYXNzIE1pY3Jv
RGF0YUl0ZW1MaXN0OworI2VuZGlmCisKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIEZvcm1FbGVtZW50S2V5IHsKQEAgLTEwOTgsNiArMTEwMiwxMSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOwogICAgIAogICAgIGJvb2wgdmlzdWFs
VXBkYXRlc0FsbG93ZWQoKSBjb25zdDsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgUGFz
c1JlZlB0cjxOb2RlTGlzdD4gZ2V0SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpOworICAg
IHZvaWQgcmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxpc3QoTWljcm9EYXRhSXRlbUxpc3QqLCBj
b25zdCBTdHJpbmcmKTsKKyNlbmRpZgogICAgIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZy
YW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA5NzI2MikKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsMTAgQEAgbW9kdWxl
IGNvcmUgewogCiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIFtPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAorI2lmIGRl
ZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAgICAgICBOb2Rl
TGlzdCBnZXRJdGVtcyhpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZywgT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlTmFtZXMpOworI2VuZGlm
CisKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJ
UFQKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9u
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEx
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
TU9UT1JPTEEgTU9CSUxJVFksIElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01pY3JvRGF0YUl0ZW1MaXN0OjpNaWNy
b0RhdGFJdGVtTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5
cGVOYW1lcykKKyAgICA6IER5bmFtaWNOb2RlTGlzdChyb290Tm9kZSkKKyAgICAsIG1fdHlwZU5h
bWVzKHR5cGVOYW1lcywgbV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisg
ICAgLCBtX29yaWdpbmFsVHlwZU5hbWVzKHR5cGVOYW1lcykKK3sKK30KKworTWljcm9EYXRhSXRl
bUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlzdCgpCit7CisgICAgbV9yb290Tm9kZS0+ZG9jdW1lbnQo
KS0+cmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxpc3QodGhpcywgbV9vcmlnaW5hbFR5cGVOYW1l
cyk7Cit9CisKK2Jvb2wgTWljcm9EYXRhSXRlbUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRl
c3ROb2RlKSBjb25zdAoreworICAgIGlmICghdGVzdE5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSFRNTEVsZW1lbnQqIHRlc3RFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0ZXN0Tm9kZSk7CisgICAgaWYgKCF0ZXN0RWxlbWVudC0+
aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXNjb3BlQXR0cikgfHwgdGVzdEVsZW1lbnQtPmhh
c0F0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW1wcm9wQXR0cikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghbV90eXBlTmFtZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHJldHVybiBtX3R5cGVOYW1lcy5jb250YWlucyh0ZXN0RWxlbWVudC0+Z2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6aXRlbXR5cGVBdHRyKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vTWljcm9EYXRhSXRlbUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
TWljcm9EYXRhSXRlbUxpc3QuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9N
aWNyb0RhdGFJdGVtTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RP
Uk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9CSUxJVFksIElOQy4gT1IgSVRTCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworICogT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNaWNy
b0RhdGFJdGVtTGlzdF9oCisjZGVmaW5lIE1pY3JvRGF0YUl0ZW1MaXN0X2gKKworI2lmIEVOQUJM
RShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0IDogcHVibGljIER5bmFtaWNOb2RlTGlzdCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbUxpc3Q+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWljcm9EYXRhSXRlbUxpc3Qocm9vdE5v
ZGUsIHR5cGVOYW1lcykpOworICAgIH0KKworICAgIHZpcnR1YWwgfk1pY3JvRGF0YUl0ZW1MaXN0
KCk7CisKK3ByaXZhdGU6CisgICAgTWljcm9EYXRhSXRlbUxpc3QoUGFzc1JlZlB0cjxOb2RlPiBy
b290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpOworCisgICAgdmlydHVhbCBib29sIG5v
ZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKKworICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90eXBl
TmFtZXM7CisgICAgU3RyaW5nIG1fb3JpZ2luYWxUeXBlTmFtZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorI2VuZGlmIC8vIE1p
Y3JvRGF0YUl0ZW1MaXN0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDk3MjYyKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiAr
MTE5LDEwIEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbERhdGEuaD4KICNlbmRpZgogCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgorI2Vu
ZGlmCisKICNkZWZpbmUgRFVNUF9OT0RFX1NUQVRJU1RJQ1MgMAogCiB1c2luZyBuYW1lc3BhY2Ug
c3RkOwpAQCAtMjI3OSw2ICsyMjgzLDI0IEBAIEZsb2F0UG9pbnQgTm9kZTo6Y29udmVydEZyb21Q
YWdlKGNvbnN0IEYKICAgICByZXR1cm4gcDsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCit2
b2lkIE5vZGU6Oml0ZW1UeXBlQXR0cmlidXRlQ2hhbmdlZCgpCit7CisgICAgLy8gV2UgbmVlZCB0
byBpbnZhbGlkYXRlIHRoZSBtaWNyb0RhdGFJdGVtTGlzdENhY2hlIHdoZW4gaXRlbXR5cGUgYXR0
cmlidXRlIGNoYW5nZWQKKyAgICBOb2RlICogcm9vdE5vZGUgPSBkb2N1bWVudCgpOworCisgICAg
aWYgKCFyb290Tm9kZS0+aGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm9k
ZVJhcmVEYXRhKiBkYXRhID0gcm9vdE5vZGUtPnJhcmVEYXRhKCk7CisKKyAgICBpZiAoIWRhdGEt
Pm5vZGVMaXN0cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBkYXRhLT5ub2RlTGlzdHMoKS0+
aW52YWxpZGF0ZU1pY3JvZGF0YUl0ZW1MaXN0Q2FjaGVzKCk7Cit9CisjZW5kaWYKKwogI2lmbmRl
ZiBOREVCVUcKIAogc3RhdGljIHZvaWQgYXBwZW5kQXR0cmlidXRlRGVzYyhjb25zdCBOb2RlKiBu
b2RlLCBTdHJpbmcmIHN0cmluZywgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgY2hh
ciogYXR0ckRlc2MpCkBAIC0yNDI4LDggKzI0NTAsMjEgQEAgdm9pZCBOb2RlTGlzdHNOb2RlRGF0
YTo6aW52YWxpZGF0ZUNhY2hlcwogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUo
KTsKICAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAgICBtX2xhYmVsc05vZGVM
aXN0Q2FjaGUtPmludmFsaWRhdGVDYWNoZSgpOworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAg
ICBpbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMoKTsKKyNlbmRpZgogfQogCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKK3ZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVNaWNy
b2RhdGFJdGVtTGlzdENhY2hlcygpCit7CisgICAgTWljcm9EYXRhSXRlbUxpc3RDYWNoZTo6aXRl
cmF0b3IgaXRlbUxpc3RDYWNoZUVuZCA9IG1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5lbmQoKTsK
KyAgICBmb3IgKE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGU6Oml0ZXJhdG9yIGl0ID0gbV9taWNyb0Rh
dGFJdGVtTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IGl0ZW1MaXN0Q2FjaGVFbmQ7ICsraXQpCisg
ICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNoZSgpOworfQorI2VuZGlmCisKIGJvb2wg
Tm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkoKSBjb25zdAogewogICAgIGlmICghbV9saXN0c1dp
dGhDYWNoZXMuaXNFbXB0eSgpKQpAQCAtMjQ0Niw2ICsyNDgxLDEwIEBAIGJvb2wgTm9kZUxpc3Rz
Tm9kZURhdGE6OmlzRW1wdHkoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFtX25hbWVOb2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgaWYgKCFtX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAogICAgIGlmIChtX2xh
YmVsc05vZGVMaXN0Q2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw2ICs1Nyw5IEBAIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OworI2lmIEVOQUJMRShNSUNS
T0RBVEEpCitjbGFzcyBNaWNyb0RhdGFJdGVtTGlzdDsKKyNlbmRpZgogY2xhc3MgS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CkBAIC01MTYsNiAr
NTE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2RlTGlzdHNBdHRyaWJ1dGVD
aGFuZ2VkKCk7CiAgICAgdm9pZCBub3RpZnlMb2NhbE5vZGVMaXN0c0xhYmVsQ2hhbmdlZCgpOwog
ICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2xhc3NOb2RlTGlzdChDbGFzc05vZGVMaXN0KiwgY29uc3Qg
U3RyaW5nJik7CisKICAgICB2b2lkIHJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lTm9kZUxp
c3QqLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRh
Z05vZGVMaXN0KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRU
YWdOb2RlTGlzdChUYWdOb2RlTGlzdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTU4MCw2
ICs1ODQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRh
cmdldERhdGEoKTsKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJn
ZXREYXRhKCk7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZvaWQgaXRlbVR5cGVBdHRy
aWJ1dGVDaGFuZ2VkKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBlbnVtIE5vZGVGbGFncyB7
CiAgICAgICAgIElzVGV4dEZsYWcgPSAxLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aAkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDExIEBACiAKICNpbmNsdWRlICJDbGFzc05vZGVM
aXN0LmgiCiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisjZW5kaWYKKwogI2luY2x1ZGUg
Ik5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJU
YWdOb2RlTGlzdC5oIgpAQCAtNTYsNyArNjEsMTIgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBI
YXNoTWFwPFJlZlB0cjxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbD4sIFRhZ05vZGVM
aXN0Kj4gVGFnTm9kZUxpc3RDYWNoZU5TOwogICAgIFRhZ05vZGVMaXN0Q2FjaGVOUyBtX3RhZ05v
ZGVMaXN0Q2FjaGVOUzsKLSAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgTWljcm9EYXRhSXRlbUxpc3QqPiBNaWNyb0RhdGFJdGVtTGlzdENhY2hl
OworICAgIE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUgbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlOwor
I2VuZGlmCisKICAgICBMYWJlbHNOb2RlTGlzdCogbV9sYWJlbHNOb2RlTGlzdENhY2hlOwogIAog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vZGVMaXN0c05vZGVEYXRhPiBjcmVhdGUoKQpAQCAtNjYs
NiArNzYsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwog
ICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKTsKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgdm9pZCBpbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RD
YWNoZXMoKTsKKyNlbmRpZgorCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNp
b24gOTcyNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSwxMCBAQCBpZAogaW5jcmVtZW50YWwKIGluZGV0
ZXJtaW5hdGUKIGlzbWFwCitpdGVtaWQKK2l0ZW1wcm9wCitpdGVtc2NvcGUKK2l0ZW10eXBlCiBr
ZXl0eXBlCiBraW5kCiBsYWJlbApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDk3MjYyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NSw2ICsxOTUsMTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQQogICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NT
UHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOwogICAgICAgICB9IGVsc2Ug
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKICAgICAgICAgICAgIGFkZENT
U1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlTm9uZSk7
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBp
dGVtdHlwZUF0dHIpIHsKKyAgICAgICAgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CisjZW5k
aWYKICAgICB9CiAvLyBzdGFuZGFyZCBldmVudHMKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gb25jbGlja0F0dHIpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA5NzI2MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2NiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxjaGVjazsKIAorICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gYm9vbGVhbiBpdGVt
U2NvcGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRB
LCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbVR5cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbUlkOworCiAj
aWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZURpc3BsYXlTdHJpbmc7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzI2MikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMTAtMTIgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgor
CisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0
SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1wbGVtZW50IGRv
Y3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKyAgICAgICAgU3BlYyA6IGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvY29tcGxldGUvbWljcm9kYXRhLmh0
bWwKKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTEtMTAtMTIgIENhcnkgQ2xhcmsg
IDxjYXJ5Y2xhcmtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIFByZXZlbnQgZmFs
bGJhY2sgZm9udHMgZnJvbSBwdXJnaW5nIHdoaWxlIG1lYXN1cmluZwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQkocmV2aXNpb24gOTcyNjIpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAK
ICAgICAgICdFTkFCTEVfTUVESUFfU1RSRUFNPTEnLAogICAgICAgJ0VOQUJMRV9NRVRFUl9UQUc9
MScsCiAgICAgICAnRU5BQkxFX01IVE1MPTEnLAorICAgICAgJ0VOQUJMRV9NSUNST0RBVEE9MCcs
CiAgICAgICAnRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUz08KGVuYWJsZV9tdXRhdGlvbl9vYnNl
cnZlcnMpJywKICAgICAgICdFTkFCTEVfTk9USUZJQ0FUSU9OUz0xJywKICAgICAgICdFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTPTAnLApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTcyNjIpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0xMiAgQXJrbyBTYWhhICA8
YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRh
dGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgRU5BQkxFKE1JQ1JPREFUQSkgZmVhdHVy
ZSBmbGFnLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisKIDIwMTEtMTAtMTIg
IEtyaXN0w7NmIEtvc3p0ecOzICA8a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAg
IG5ldy1ydW4td2Via2l0LXRlc3RzIGRvZXMgbm90IHN1cHBvcnQgcXQtNC44IHJlc3VsdHMKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA5NzI2MikKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQt
d2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAgbXkgKAogICAgICRtZWRp
YVN0cmVhbVN1cHBvcnQsCiAgICAgJG1ldGVyVGFnU3VwcG9ydCwKICAgICAkbWh0bWxTdXBwb3J0
LAorICAgICRtaWNyb2RhdGFTdXBwb3J0LAogICAgICRtdXRhdGlvbk9ic2VydmVyc1N1cHBvcnQs
CiAgICAgJG5ldHNjYXBlUGx1Z2luU3VwcG9ydCwKICAgICAkbm90aWZpY2F0aW9uc1N1cHBvcnQs
CkBAIC0yNjMsNiArMjY0LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJt
aHRtbCIsIGRlc2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX01IVE1MIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1odG1sU3VwcG9ydCB9LAog
CisgICAgeyBvcHRpb24gPT4gIm1pY3JvZGF0YSIsIGRlc2MgPT4gIlRvZ2dsZSBNaWNyb2RhdGEg
c3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSUNST0RBVEEiLCBkZWZhdWx0ID0+
IDAsIHZhbHVlID0+IFwkbWljcm9kYXRhU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIm5l
dHNjYXBlLXBsdWdpbiIsIGRlc2MgPT4gIk5ldHNjYXBlIFBsdWdpbiBzdXBwb3J0IiwKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICFpc0Vm
bCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luU3VwcG9ydCB9LAogCkluZGV4OiBXZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk3MjYyKQorKysgV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEwLTEyICBBcmtvIFNhaGEgIDxhcmtvQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9m
IGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBFTkFCTEUoTUlDUk9EQVRBKSBmZWF0dXJlIGZsYWcu
IEltcGxlbWVudCBkb2N1bWVudC5nZXRJdGVtcygpIERPTSBBUEkuCisgICAgICAgIFNwZWM6IGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvY29tcGxldGUv
bWljcm9kYXRhLmh0bWwKKworICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzLnZzcHJvcHM6CisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXND
YWlyby52c3Byb3BzOgorCiAyMDExLTEwLTA0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgZmVhdHVyZSBmbGFncyBmb3IgaW5jb21wbGV0ZSBp
bnB1dCB0eXBlcwpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJKHJldmlzaW9uIDk3MjYyKQorKysgV2Vi
S2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpOyQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5H
KTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQo
RU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5B
QkxFX0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRB
SUxTKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExP
QUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxF
X1NZU1RFTSk7JChFTkFCTEVfQ1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7
JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRB
QkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1IpOyQo
RU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJM
RV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChF
TkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FV
T1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURf
V09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQo
RU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7
JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxF
X1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxF
X1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxF
XzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9C
TE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQo
RU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RB
VEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7
JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7
JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVO
QUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lO
UFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBF
X1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9N
RVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJT
KTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTsk
KEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTsk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFC
TEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElD
Uyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dP
UktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIK
IAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSIKQEAgLTIwMiw2ICsyMDIsMTEgQEAKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgog
CS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxFX01JQ1JPREFUQSIKKwkJVmFsdWU9IiIK
KwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFt
ZT0iRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIKIAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmly
b25tZW50U2V0PSJ0cnVlIgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3Bz
L0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCShyZXZpc2lv
biA5NzI2MikKKysrIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVm
aW5lc0NhaXJvLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8
VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJ
TFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChF
TkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1Qp
OyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVf
RE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVO
QUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1F
UEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRf
U1BFRUNIKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NVVRBVElP
Tl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxF
X1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVO
QUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZP
TlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7
JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5B
QkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFT
KTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7
JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19S
RUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTsk
KEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxF
X0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NB
VElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5B
QkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9O
VFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTsk
KEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFC
TEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpA
QCAtMTk3LDYgKzE5NywxMSBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4K
ICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfTUlDUk9EQVRBIgorCQlWYWx1ZT0iIgorCQlQ
ZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCisJLz4KKyAgPFVzZXJNYWNybwogCQlOYW1lPSJF
TkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgogCQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1l
bnRTZXQ9InRydWUiCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzI2MikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDExLTEwLTEyICBBcmtv
IFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEJhc2ljIGlt
cGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9kLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0LWNhc2VzIGZvciBk
b2N1bWVudC5nZXRJdGVtcygpIG1ldGhvZC4KKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0
d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9jb21wbGV0ZS9taWNyb2RhdGEuaHRt
bAorICAgICAgICBTa2lwcGluZyB0ZXN0LWNhc2VzIGZvciBub3cgYXMgTWljcm9kYXRhIERPTSBB
UEkgaXMgbm90IHlldCBlbmFibGVkLgorCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhLzAwMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
MDA0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAw
NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhLzAwNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvMDA4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhLzAwOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwOS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21t
b24uanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlRWxlbSk6CisgICAgICAgIChydW5UZXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0xMC0xMiAgQ2FyeSBD
bGFyayAgPGNhcnljbGFya0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJvbGwgYmFjayBpbWFnZSBi
YXNlbGluZSBjaGFuZ2VzIGZyb20KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBET00gQVBJIG11
c3QgZXhpc3QuCisKK1BBU1MgTm9kZUxpc3QgaXMgZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBET00gQVBJIG11c3QgZXhpc3QuPC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIE5vZGVMaXN0ID0gZG9j
dW1lbnQuZ2V0SXRlbXM7CitzaG91bGRCZURlZmluZWQoIk5vZGVMaXN0Iik7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCBkb2N1bWVudC5nZXRJdGVtcygpLmxlbmd0aCBtdXN0IHJldHVybiB0aGUgY29ycmVjdCBu
dW1iZXIgb2YgTWljcm9EYXRhIEl0ZW1zIGluIHRoZSBEb2N1bWVudC4gCitBbHNvIGl0IHRlc3Rz
IHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCByZXR1cm4gYSBsaXZlIE5vZGVMaXN0LgorCitk
b2N1bWVudC5nZXRJdGVtcygpIHdpdGhvdXQgYXVyZ3VtZW50OiBQQVNTCitkb2N1bWVudC5nZXRJ
dGVtcygpIHdpdGggZW1wdHkgc3RyaW5nIGluIHRoZSBhdXJndW1lbnQ6IFBBU1MKK2RvY3VtZW50
LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycgaXRlbXR5cGUgaW4gdGhl
IGF1cmd1bWVudDogUEFTUworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBs
ZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCitkb2N1bWVudC5nZXRJ
dGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mMScgaXRlbXR5cGUgaW4gdGhlIGF1cmd1
bWVudDogUEFTUworTmV3bHkgYXBwZW5kZWQgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUg
Tm9kZUxpc3Q6IFBBU1MKK1JlbW92aW5nIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5v
ZGVMaXN0OiBQQVNTCisKK1RFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDAyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDAyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggbXVzdCByZXR1cm4gdGhlIGNvcnJl
Y3QgbnVtYmVyIG9mIE1pY3JvRGF0YSBJdGVtcyBpbiB0aGUgRG9jdW1lbnQuCis8YnI+QWxzbyBp
dCB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgcmV0dXJuIGEgbGl2ZSBOb2RlTGlz
dC4KKzwvcD4KKworPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJvbmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFt
cGxlLmNvbS9iYXIiIGlkPSJ0d28iPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0
dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0aHJlZSI+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2YxIiBpZD0iZm91ciI+PC9kaXY+Cis8L2Rpdj4KKworPHNj
cmlwdD4KK3ZhciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7Cit2YXIgdHdv
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOwordmFyIHRocmVlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RocmVlJyk7Cit2YXIgZm91ciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmb3VyJyk7CisKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvLCB0
aHJlZSwgZm91cl0sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGhvdXQgYXVyZ3VtZW50Iik7City
dW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCcnKSwgW29uZSwgdHdvLCB0aHJlZSwgZm91cl0sICJk
b2N1bWVudC5nZXRJdGVtcygpIHdpdGggZW1wdHkgc3RyaW5nIGluIHRoZSBhdXJndW1lbnQiKTsK
K3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKSwgW29u
ZSwgdGhyZWVdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50Iik7CitydW5UZXN0KGRvY3VtZW50LmdldEl0
ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyksIFt0d29dLCAiZG9jdW1lbnQuZ2V0SXRlbXMo
KSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50
Iik7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZjEnKSwg
W2ZvdXJdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZjEn
IGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKKwordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVt
KCdkaXYnLCB7aXRlbXNjb3BlOidpdGVtc2NvcGUnfSk7CisKKy8vIEFwcGVuZCBuZXdseSBjcmVh
dGVkIGl0ZW0gdG8gYm9keQorZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK3J1
blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvLCB0aHJlZSwgZm91ciwgZWxlbWVu
dF0sICJOZXdseSBhcHBlbmRlZCBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2RlTGlz
dCIpOworCisvLyBSZW1vdmUgdGhlIGVsZW1lbnQKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZWxlbWVudCk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3bywgdGhyZWUs
IGZvdXJdLCAiUmVtb3ZpbmcgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3Qi
KTsKKworZG9jdW1lbnQud3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRl
bXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLgorCitUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBt
aWNyb2RhdGEgaXRlbXM6IFBBU1MKK1JlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxk
IHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitTZXQgaXRlbXNjb3BlIGF0dHJpYnV0ZSBz
aG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKK1NldCBlbGVtZW50Lml0ZW1TY29w
ZSB0byBmYWxzZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdDogUEFTUworU2V0IGVsZW1l
bnQuaXRlbVNjb3BlIHRvIHRydWUgc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MK
KworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZl
IE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRlbXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLjwv
cD4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0i
b25lIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20v
YmFyIiBpZD0idHdvIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgb25lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ29uZScpOwordmFyIHR3byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28n
KTsKKworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d29dLCAiVGhpcyB0ZXN0
IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zIik7CisKKy8vIFJlbW92ZSBpdGVtc2Nv
cGUgYXR0cmlidXRlCitvbmUucmVtb3ZlQXR0cmlidXRlKCdpdGVtc2NvcGUnKTsKK3J1blRlc3Qo
ZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW3R3b10sICJSZW1vdmluZyBpdGVtc2NvcGUgYXR0cmlidXRl
IHNob3VsZCByZWZsZWN0IGluIHRoZSBOb2RlTGlzdCIpOworCisvLyBTZXR0aW5nIGl0ZW1zY29w
ZSBhdHRyaWJ1dGUKK29uZS5zZXRBdHRyaWJ1dGUoJ2l0ZW1zY29wZScsJ2l0ZW1zY29wZScpOwor
cnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d29dLCAiU2V0IGl0ZW1zY29wZSBh
dHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0Iik7CisKKy8vIFNldHRpbmcg
aXRlbXNjb3BlIGF0dHJpYnV0ZSB0byBmYWxzZQordHdvLml0ZW1TY29wZSA9IGZhbHNlOworcnVu
VGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lXSwgIlNldCBlbGVtZW50Lml0ZW1TY29wZSB0
byBmYWxzZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdCIpOworCisvLyBTZXR0aW5nIGl0
ZW1zY29wZSBhdHRyaWJ1dGUgdG8gdHJ1ZQordHdvLml0ZW1TY29wZSA9IHRydWU7CitydW5UZXN0
KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3b10sICJTZXQgZWxlbWVudC5pdGVtU2NvcGUg
dG8gdHJ1ZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdCIpOworCitkb2N1bWVudC53cml0
ZSgiPGJyPlRFU1QgQ09NUExFVEUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGJlIGNhc2Ugc2Vuc2l0aXZlLgorCitQQVNTIGRv
Y3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vRm9vJykubGVuZ3RoID09IDAgaXMg
dHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxl
bmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxl
LmNvbS9CQVInKS5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCdo
dHRwOi8vZXhhbXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS8wMDQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgYmUgY2FzZSBzZW5z
aXRpdmUuPC9wPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJvbmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFt
cGxlLmNvbS9CQVIiIGlkPSJ0d28iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQ+CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBs
ZS5jb20vRm9vJykubGVuZ3RoID09IDAiKTsKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRl
bXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKS5sZW5ndGggPT0gMSIpOworCitzaG91bGRCZVRy
dWUoImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vQkFSJykubGVuZ3RoID09
IDEiKTsKK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNv
bS9iYXInKS5sZW5ndGggPT0gMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3RzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGlj
ZSB3aGVuIGl0ZW10eXBlIGNoYW5nZXMuCisKK1RoaXMgdGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1p
Y3JvZGF0YSBpdGVtczogUEFTUworTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gcmVtb3ZlIGF0dHJp
YnV0ZSBpdGVtdHlwZTogUEFTUworTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gc2V0IGF0dHJpYnV0
ZSBpdGVtdHlwZTogUEFTUworCitURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3Jv
ZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Rz
IHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW10eXBlIGNoYW5nZXMuPC9w
PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJv
bmUiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJ0d28iPjwvZGl2PgorCis8c2NyaXB0PgordmFyIG9uZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdvbmUnKTsKK3ZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdv
Jyk7CisKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28n
KSwgW29uZSwgdHdvXSwgIlRoaXMgdGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1pY3JvZGF0YSBpdGVt
cyIpOworCisvLyBSZW1vdmUgaXRlbXR5cGUgYXR0cmlidXRlCitvbmUucmVtb3ZlQXR0cmlidXRl
KCdpdGVtdHlwZScpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUu
Y29tL2ZvbycpLCBbdHdvXSwgIk5vZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1
dGUgaXRlbXR5cGUiKTsKKworLy8gU2V0IGl0ZW10eXBlIGF0dHJpYnV0ZQorb25lLnNldEF0dHJp
YnV0ZSgnaXRlbXR5cGUnLCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyk7CitydW5UZXN0KGRvY3Vt
ZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHR3b10sICJOb2Rl
TGlzdCBtdXN0IG5vdGljZSBvbiBzZXQgYXR0cmlidXRlIGl0ZW10eXBlIik7CisKK2RvY3VtZW50
LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3RzIHRo
YXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBsb2NhdGUgaXRlbXMgd2hlbiBwYXJhbWV0ZXJzIGFy
ZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiAKK1RoaXMgdGVzdCBhbHNvIGVuc3VyZSB0aGF0IGRvY3Vt
ZW50LmdldEl0ZW1zIG11c3QgaWdub3JlIGR1cGxpY2F0ZWQgdG9rZW5zLgorCitQQVNTIGRvY3Vt
ZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyBodHRwOi8vZXhhbXBsZS5jb20v
YmFyICcpLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJyBodHRw
Oi8vZXhhbXBsZS5jb20vZm9vIGRhdGE6dGV4dC9wbGFpbiAnKS5sZW5ndGggPT0gMiBpcyB0cnVl
CitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyBkYXRhOnRl
eHQvcGxhaW4gaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgbG9jYXRlIGl0
ZW1zIHdoZW4gcGFyYW1ldGVycyBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KKzxicj5UaGlzIHRl
c3QgYWxzbyBlbnN1cmUgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGlnbm9yZSBkdXBsaWNh
dGVkIHRva2Vucy4KKzwvcD4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBs
ZS5jb20vZm9vIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBs
ZS5jb20vYmFyIj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJkYXRhOnRleHQvcGxhaW4iPjwv
ZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzaG91bGRC
ZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyBodHRwOi8v
ZXhhbXBsZS5jb20vYmFyICcpLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImRvY3VtZW50
LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyAgZGF0YTp0ZXh0L3BsYWluICAnKS5s
ZW5ndGggPT0gMiIpOworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygnICBodHRwOi8v
ZXhhbXBsZS5jb20vZm9vICBkYXRhOnRleHQvcGxhaW4gIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28n
KS5sZW5ndGggPT0gMiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAwNy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMCBAQAorVGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIE5vZGVMaXN0IG11
c3QgYmUgaW4gc291cmNlIHRyZWUgb3JkZXIuCisKK1BBU1Mgbm9kZUxpc3RbMF0uaWQgaXMgJ29u
ZScKK1BBU1Mgbm9kZUxpc3RbMV0uaWQgaXMgJ3R3bycKK1BBU1Mgbm9kZUxpc3RbMl0uaWQgaXMg
J3RocmVlJworUEFTUyBub2RlTGlzdFszXS5pZCBpcyAnZm91cicKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDA3Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwNy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIE5vZGVMaXN0IG11c3QgYmUgaW4gc291cmNlIHRy
ZWUgb3JkZXIuPC9wPgorCis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUu
Y29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDov
L2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9InRocmVlIj4KKzxkaXYgaXRlbXNjb3BlIGl0
ZW10eXBlPSJkYXRhOnRleHQvcGxhaW4sIiBpZD0iZm91ciI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYg
aXRlbXNjb3BlIGlkPSJmaXZlIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK3ZhciBub2RlTGlzdCA9IGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5j
b20vYmFyIGRhdGE6dGV4dC9wbGFpbiwgaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpOworCitzaG91
bGRCZSgibm9kZUxpc3RbMF0uaWQiLCAiJ29uZSciKTsKK3Nob3VsZEJlKCJub2RlTGlzdFsxXS5p
ZCIsICIndHdvJyIpOworc2hvdWxkQmUoIm5vZGVMaXN0WzJdLmlkIiwgIid0aHJlZSciKTsKK3No
b3VsZEJlKCJub2RlTGlzdFszXS5pZCIsICInZm91ciciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDgtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1
bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBmaW5kIGl0ZW1zIHdpdGggaXRlbXR5cGUgYnV0IG5vdCBp
dGVtc2NvcGUuCisKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9i
YXInKS5sZW5ndGggPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAwOC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8w
MDguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8w
MDguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBub3QgZmluZCBpdGVtcyB3aXRoIGl0ZW10eXBlIGJ1
dCBub3QgaXRlbXNjb3BlLjwvcD4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhh
bXBsZS5jb20vZm9vIj48L2Rpdj4KKzxkaXYgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9i
YXIiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgorc2hvdWxkQmVU
cnVlKCJkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2JhcicpLmxlbmd0aCA9
PSAwIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAwOS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IG5vdCBjb250YWlu
IHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBzZXQuIEl0IG11c3Qg
cmV0dXJuIGEgTm9kZUxpc3QgY29udGFpbmluZyB0aGUgdG9wLWxldmVsIG1pY3JvZGF0YSBpdGVt
cyBpbiB0aGUgZG9jdW1lbnQuCisKK05hbWU6IEFtYW5kYQorCitCYW5kOiBKYXp6IEJhbmQgKDEy
IHBsYXllcnMpCisKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggPT0gNiBpcyB0cnVl
CitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDQgaXMgdHJ1ZQorUEFTUyBkb2N1
bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA1IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvMDA5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAwOS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAwOS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9j
dW1lbnQuZ2V0SXRlbXMgbXVzdCBub3QgY29udGFpbiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoZSBp
dGVtcHJvcCBhdHRyaWJ1dGUgc2V0LgorSXQgbXVzdCByZXR1cm4gYSBOb2RlTGlzdCBjb250YWlu
aW5nIHRoZSB0b3AtbGV2ZWwgbWljcm9kYXRhIGl0ZW1zIGluIHRoZSBkb2N1bWVudC48L3A+CisK
KzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25l
Ij48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFy
IiBpZD0idHdvIj48L2Rpdj4KKworPGRpdiBpdGVtc2NvcGU+Cis8cD5OYW1lOiA8c3BhbiBpdGVt
cHJvcD0ibmFtZSI+QW1hbmRhPC9zcGFuPjwvcD4KKzxwPkJhbmQ6IDxzcGFuIGl0ZW1wcm9wPSJi
YW5kIiBpdGVtc2NvcGU+IDxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5KYXp6IEJhbmQ8L3NwYW4+ICg8
c3BhbiBpdGVtcHJvcD0ic2l6ZSI+MTI8L3NwYW4+IHBsYXllcnMpPC9zcGFuPjwvcD4KKzwvZGl2
PgorCis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9
InRocmVlIj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZjEi
IGlkPSJmb3VyIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaWQ9ImZpdmUiPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgorc2hvdWxkQmVUcnVlKCJkb2N1
bWVudC5nZXRJdGVtcygpLmxlbmd0aCA9PSA2Iik7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvbmUnKS5zZXRBdHRyaWJ1dGUoJ2l0ZW1wcm9wJywgJ3Rlc3QnKTsKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdmaXZlJykuc2V0QXR0cmlidXRlKCdpdGVtcHJvcCcsICd0ZXN0Jyk7CitzaG91
bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDQiKTsKKworZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZpdmUnKS5yZW1vdmVBdHRyaWJ1dGUoJ2l0ZW1wcm9wJyk7CitzaG91
bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDUiKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNyb2RhdGEt
Y29tbW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9y
ZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0MiBAQAorLy8gdGhpcyBmdW5jdGlvbiBjcmVhdGVzIGVsZW1lbnQg
d2l0aCBzcGVjaWZpZWQgcHJvcGVydHkgYW5kIGNvbnRlbnRzLgorZnVuY3Rpb24gY3JlYXRlRWxl
bSh0eXBlLHByb3BzLGNvbnRlbnRzKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZh
ciBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTsKKworICAgIGZvciggdmFyIGkg
aW4gcHJvcHMgKSB7CisgICAgICBpZiggcHJvcHMuaGFzT3duUHJvcGVydHkoaSkgKSB7CisgICAg
ICAgIGVsZW0uc2V0QXR0cmlidXRlKGkscHJvcHNbaV0pOworICAgICAgfQorICAgIH0KKyAgICBp
ZiggY29udGVudHMgKSB7CisgICAgICBlbGVtLmlubmVySFRNTCA9IGNvbnRlbnRzOworICAgIH0K
KyAgICByZXR1cm4gZWxlbTsKK30KKworCisvLyBydW5zIGEgdGVzdCBhbmQgd3JpdGVzIGEgbG9n
CitmdW5jdGlvbiBydW5UZXN0KGNvbGxlY3Rpb24sIGVsZW1lbnRzLCB0aXRsZSkgeworICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKworICBkb2N1bWVudC53cml0ZSh0aXRsZSArICc6ICcpOworICBwYXNzID0g
dHJ1ZTsKKworICBpZiAoY29sbGVjdGlvbi5sZW5ndGggIT0gZWxlbWVudHMubGVuZ3RoKSB7Cisg
ICAgcGFzcyA9IGZhbHNlCisgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwgLSBleHBlY3RlZCAnICsg
ZWxlbWVudHMubGVuZ3RoICsgJyBlbGVtZW50cyBidXQgZ290ICcgKyBjb2xsZWN0aW9uLmxlbmd0
aCArICIgZWxlbWVudHMuICIpOworICB9CisgIGZvcih2YXIgaSA9IDAsIG1heCA9IGNvbGxlY3Rp
b24ubGVuZ3RoID4gZWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMubGVuZ3RoIDogY29sbGVjdGlv
bi5sZW5ndGg7IGkgPCBtYXg7IGkrKykgeworICAgIGlmKGNvbGxlY3Rpb25baV0gIT0gZWxlbWVu
dHNbaV0pIHsKKyAgICAgIHBhc3MgPSBmYWxzZQorICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwg
LSBleHBlY3RlZCBlbGVtZW50IDogJyArIGVsZW1lbnRzW2ldLnRhZ05hbWUgKyAiIGJ1dCBnb3Qg
ZWxlbWVudCA6IiArIGNvbGxlY3Rpb25baV0udGFnTmFtZSk7CisgICAgICBkb2N1bWVudC53cml0
ZSgnRkFJTCAtIGV4cGVjdGVkIGVsZW1lbnQgd2l0aCBpZDogJyArIGVsZW1lbnRzW2ldLmlkICsg
IiBidXQgZ290IGVsZW1lbnQgd2l0aCBpZDoiICsgY29sbGVjdGlvbltpXS5pZCk7CisgICAgfQor
ICB9CisgIGlmIChwYXNzKQorICAgIGRvY3VtZW50LndyaXRlKCdQQVNTJyk7CisgIGRvY3VtZW50
LndyaXRlKCc8YnI+Jyk7Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiA5NzI2MikKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMzg4MCwzICszODgwLDYgQEAgQlVHX1JJQ09XIDogZmFzdC9qcy9hcnJheS1mdW5j
dGlvbnMtbm9uLQogQlVHX1JJQ09XIDogZmFzdC9qcy9hcnJheS1wcm90b3R5cGUtcHJvcGVydGll
cy5odG1sID0gVEVYVAogQlVHX1JJQ09XIDogZmFzdC9qcy9rZGUvUmVnRXhwLmh0bWwgPSBURVhU
CiBCVUdfUklDT1cgOiBmYXN0L2pzL3RvU3RyaW5nLW92ZXJyaWRlcy5odG1sID0gVEVYVAorCisv
LyBNaWNyb2RhdGEgRE9NIEFQSSBpcyBub3QgeWV0IGVuYWJsZWQuCitCVUdXSzY4NjEwIFNLSVAg
OiBmYXN0L2RvbS9NaWNyb0RhdGEgPSBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAkocmV2aXNpb24gOTcyNjIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTY4MSwzICsxNjgxLDYgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL3Nt
YXJ0LXBhc3RlLTAwOC5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02OTIxOQogaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtc2xpY2VkLWRyYWdnZWQt
ZmlsZS5odG1sICAKIGh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5kLWh5YnJpZC1ibG9iLmh0bWwK
KworIyBNaWNyb2RhdGEgRE9NIEFQSSBpcyBub3QgeWV0IGVuYWJsZWQuCitmYXN0L2RvbS9NaWNy
b0RhdGEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gOTcyNjIpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0yNDA5LDMg
KzI0MDksNiBAQCBmYXN0L3RleHQvbGluZS1pbml0aWFsLWFuZC1maW5hbC1zd2FzaGVzCiAjIFtR
dF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbCBmYWlsZWQgYWZ0ZXIg
cjk3MDU2CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc1Nwog
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbAorCisjIE1pY3JvZGF0YSBE
T00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZG9tL01pY3JvRGF0YQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDk3MjYyKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE0MjIsMyArMTQyMiw2IEBAIGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHQKIAogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NzMKIGh0dHAvdGVzdHMvbG9hZGluZy9wcm9n
cmVzcy1maW5pc2hlZC1jYWxsYmFjay5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90
IHlldCBlbmFibGVkLgorZmFzdC9kb20vTWljcm9EYXRhCg==
</data>
<flag name="review"
          id="108267"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110812</attachid>
            <date>2011-10-13 01:49:14 -0700</date>
            <delta_ts>2011-10-13 02:13:39 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_68610.diff</filename>
            <type>text/plain</type>
            <size>58510</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk3MzUy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAt
MTMgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTog
QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShN
SUNST0RBVEEpIGZlYXR1cmUgZmxhZy4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAx
MS0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSBFTkFCTEUoWEhUTUxNUCkgYW5kIGFzc29jaWF0ZWQgY29kZQpJbmRleDogY29uZmlndXJlLmFj
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGNvbmZpZ3VyZS5hYwkocmV2aXNpb24gOTczNTIpCisrKyBjb25maWd1
cmUuYWMJKHdvcmtpbmcgY29weSkKQEAgLTQxNyw2ICs0MTcsMTQgQEAgQUNfQVJHX0VOQUJMRSht
ZXRlcl90YWcsCiAgICAgICAgICAgICAgIFtdLFtlbmFibGVfbWV0ZXJfdGFnPSJ5ZXMiXSkKIEFD
X01TR19SRVNVTFQoWyRlbmFibGVfbWV0ZXJfdGFnXSkKIAorIyBjaGVjayB3aGV0aGVyIHRvIGVu
YWJsZSBIVE1MNSBNaWNyb2RhdGEgc3VwcG9ydAorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRv
IGVuYWJsZSBIVE1MNSBNaWNyb2RhdGEgc3VwcG9ydF0pCitBQ19BUkdfRU5BQkxFKG1pY3JvZGF0
YSwKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLW1pY3JvZGF0YV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgSFRNTDUgbWljcm9kYXRhIHN1cHBv
cnQgW2RlZmF1bHQ9bm9dXSksCisgICAgICAgICAgICAgIFtdLFtlbmFibGVfbWljcm9kYXRhPSJu
byJdKQorQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9taWNyb2RhdGFdKQorCiAjIGNoZWNrIHdoZXRo
ZXIgdG8gZW5hYmxlIHBhZ2UgdmlzaWJpbGl0eSBBUEkuCiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo
ZXIgdG8gZW5hYmxlIFBhZ2UgVmlzaWJpbGl0eSBBUEkgc3VwcG9ydF0pCiBBQ19BUkdfRU5BQkxF
KHBhZ2VfdmlzaWJpbGl0eV9hcGksCkBAIC0xMTM3LDYgKzExNDUsNyBAQCBBTV9DT05ESVRJT05B
TChbRU5BQkxFXzNEX1JFTkRFUklOR10sW3RlCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1dFQkdM
XSxbdGVzdCAiJGVuYWJsZV93ZWJnbCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxF
X0JMT0JdLFt0ZXN0ICIkZW5hYmxlX2Jsb2IiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VO
QUJMRV9NRVRFUl9UQUddLFt0ZXN0ICIkZW5hYmxlX21ldGVyX3RhZyIgPSAieWVzIl0pCitBTV9D
T05ESVRJT05BTChbRU5BQkxFX01JQ1JPREFUQV0sW3Rlc3QgIiRlbmFibGVfbWljcm9kYXRhIiA9
ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSV0sW3Rl
c3QgIiRlbmFibGVfcGFnZV92aXNpYmlsaXR5X2FwaSIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05B
TChbRU5BQkxFX1BST0dSRVNTX1RBR10sW3Rlc3QgIiRlbmFibGVfcHJvZ3Jlc3NfdGFnIiA9ICJ5
ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkddLFt0ZXN0ICIk
ZW5hYmxlX2NoYW5uZWxfbWVzc2FnaW5nIiA9ICJ5ZXMiXSkKQEAgLTEyNjIsNiArMTI3MSw3IEBA
IEZlYXR1cmVzOgogIE1lZGlhIHN0YXRpc3RpY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogJGVuYWJsZV9tZWRpYV9zdGF0aXN0aWNzCiAgSFRNTDUgY2hhbm5lbCBt
ZXNzYWdpbmcgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2NoYW5u
ZWxfbWVzc2FnaW5nCiAgSFRNTDUgbWV0ZXIgZWxlbWVudCBzdXBwb3J0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiAkZW5hYmxlX21ldGVyX3RhZworIEhUTUw1IG1pY3JvZGF0YSBzdXBw
b3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9taWNyb2RhdGEK
ICBQYWdlIFZpc2liaWxpdHkgQVBJIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6ICRlbmFibGVfcGFnZV92aXNpYmlsaXR5X2FwaQogIEhUTUw1IHByb2dyZXNzIGVsZW1lbnQg
c3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9wcm9ncmVzc190YWcK
ICBIVE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2Ugc3VwcG9y
dCA6ICRlbmFibGVfZG9tX3N0b3JhZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MzUyKQor
KysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTEtMTAtMTMgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAg
IE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBt
ZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1wbGVtZW50IGRvY3VtZW50Lmdl
dEl0ZW1zKCkgRE9NIEFQSS4KKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9jb21wbGV0ZS9taWNyb2RhdGEuaHRtbAorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAxLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhLzAwMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDA0Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhLzAwNi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvMDA3Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDgu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Z2V0SXRlbXMpOiBSZXR1cm5zIE5vZGVM
aXN0IG9mIHRoZSBlbGVtZW50IGluIHRoZSBEb2N1bWVudCB0aGF0CisgICAgICAgIGNyZWF0ZSBp
dGVtcywgdGhhdCBhcmUgbm90IHBhcnQgb2Ygb3RoZXIgaXRlbXMsIGFuZCB0aGF0IGFyZSBvZiBv
bmUgb2YgdGhlIHR5cGVzCisgICAgICAgIGdpdmVuIGluIHRoZSBhcmd1bWVudC4gSWYgbm8gdG9r
ZW5zIHNwZWNpZmllZC91bmRlZmluZWQgaW4gdGhlIGFyZ3VtZW50LCB0aGVuCisgICAgICAgIHJl
dHVybiBhIE5vZGVMaXN0IGNvbnRhaW5pbmcgYWxsIHRvcCBsZXZlbCBtaWNyb2RhdGEgaXRlbXMu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxp
c3QpOiBSZW1vdmUgTWljcm9kYXRhIGl0ZW0gbm9kZSBsaXN0CisgICAgICAgIGZyb20gY2FjaGUu
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDog
QWRkZWQgZ2V0SXRlbXMoKSBtaWNyb2RhdGEgRE9NIEFQSS4KKyAgICAgICAgKiBkb20vTWljcm9E
YXRhSXRlbUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1M
aXN0OjpNaWNyb0RhdGFJdGVtTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVt
TGlzdDo6fk1pY3JvRGF0YUl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0
ZW1MaXN0Ojpub2RlTWF0Y2hlcyk6CisgICAgICAgICogZG9tL01pY3JvRGF0YUl0ZW1MaXN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXRlbVR5cGVB
dHRyaWJ1dGVDaGFuZ2VkKTogSXQgaXMgcmVzcG9uc2libGUgdG8gaW52YWxpZGF0ZSB0aGUgTWlj
cm9kYXRhCisgICAgICAgIGl0ZW0gbm9kZSBjYWNoZSB3aGVuIGl0ZW1UeXBlIGF0dHJpYnV0ZSBj
aGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVD
YWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0
c05vZGVEYXRhOjppbnZhbGlkYXRlTWljcm9kYXRhSXRlbUxpc3RDYWNoZXMpOiBJbnZhbGlkYXRl
IE1pY3JvZGF0YSBpdGVtCisgICAgICAgIGxpc3QgY2FjaGUuCisgICAgICAgIChXZWJDb3JlOjpO
b2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgICogZmVhdHVyZXMucHJpOgorICAgICAg
ICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBpdGVtaWQsIGl0ZW1wcm9wLCBp
dGVtc2NvcGUsIGl0ZW10eXBlIGF0dHJpYnV0ZXMuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOiBIYW5kbGUgaXRlbXR5cGUgYXR0cmlidXRlIGNoYW5nZS4KKyAgICAgICAgKiBodG1sL0hU
TUxFbGVtZW50LmlkbDogQWRkZWQgaXRlbWlkLCBpdGVtcHJvcCwgaXRlbXNjb3BlLCBpdGVtdHlw
ZXMgbWljcm9kYXRhIGF0dHJpYnV0ZXMuCisKIDIwMTEtMTAtMTMgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjg5OTE1KTogPGlucHV0IHR5
cGU9ZW1haWwgbXVsdGlwbGU+IGRvbid0IHNob3cgdGhlIGRlZmF1bHQgdmFsdWUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NTAsNiArNTUwLDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGRvbS9NZXNzYWdlRXZlbnQuY3BwCiAgICAgZG9tL01lc3NhZ2VQb3J0Q2hh
bm5lbC5jcHAKICAgICBkb20vTWVzc2FnZVBvcnQuY3BwCisgICAgZG9tL01pY3JvRGF0YUl0ZW1M
aXN0LmNwcAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC03ODcsNiArNzg3LDEwIEBAIGlmZXEgKCQoZmlu
ZHN0cmluZyBFTkFCTEVfTUVURVJfVEFHLCQoRkUKICAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9G
TEFHUykgRU5BQkxFX01FVEVSX1RBRz0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRzdHJpbmcgRU5B
QkxFX01JQ1JPREFUQSwkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfTUlDUk9EQVRBKQorICAg
IEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfTUlDUk9EQVRBPTEKK2VuZGlmCisK
IGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfUFJPR1JFU1NfVEFHLCQoRkVBVFVSRV9ERUZJTkVT
KSksIEVOQUJMRV9QUk9HUkVTU19UQUcpCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1Mp
IEVOQUJMRV9QUk9HUkVTU19UQUc9MQogZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShy
ZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5n
IGNvcHkpCkBAIC01NzcsNiArNTc3LDE0IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
TUhUTUw9MQogZW5kaWYgICMgRU5EIEVOQUJMRV9NSFRNTAogCiAjIC0tLQorIyBIVE1MNSBNaWNy
b2RhdGEgc3VwcG9ydAorIyAtLS0KK2lmIEVOQUJMRV9NSUNST0RBVEEKK0ZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfTUlDUk9EQVRBPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfTUlD
Uk9EQVRBPTEKK2VuZGlmICAjIEVORCBFTkFCTEVfTUlDUk9EQVRBCisKKyMgLS0tCiAjIFJlZ2lz
dGVyIFByb3RvY29sIEhhbmRsZXIgc3VwcG9ydAogIyAtLS0KIGlmIEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlz
aW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyNyw2ICsxMjI3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9NZXNzYWdlUG9ydC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
RXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC01MjI2LDYgKzUyMjYsOCBAQAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlRXZl
bnQuaCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VQb3J0LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9NaWNyb0RhdGFJ
dGVtTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5oJywKICAg
ICAgICAgICAgICdkb20vTW91c2VFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgnLApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTUxNiw2ICs1MTYsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcCBcCiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcCBcCiAg
ICAgZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgXAorICAgIGRvbS9NaWNyb0RhdGFJdGVtTGlz
dC5jcHAgXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2
ZW50LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKQEAgLTE1MzQsNiArMTUzNSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9NZXNzYWdlRXZlbnQuaCBcCiAgICAgZG9tL01lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIFwKICAgICBkb20vTWVzc2FnZVBvcnQuaCBcCisgICAgZG9tL01pY3Jv
RGF0YUl0ZW1MaXN0LmggXAogICAgIGRvbS9Nb3VzZUV2ZW50LmggXAogICAgIGRvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5oIFwKICAgICBkb20vTXV0YXRpb25DYWxsYmFjay5oIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9mZWF0
dXJlcy5wcmkJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJp
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIGlzRW1wdHkoSEFWRV9RUkFXRk9OVCkg
ewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ERVRBSUxTPS4pOiBERUZJTkVTICs9IEVOQUJM
RV9ERVRBSUxTPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVURVJfVEFHPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9NRVRFUl9UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NSFRN
TD0uKTogREVGSU5FUyArPSBFTkFCTEVfTUhUTUw9MAorIWNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9NSUNST0RBVEE9Lik6IERFRklORVMgKz0gRU5BQkxFX01JQ1JPREFUQT0wCiAhY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1BST0dSRVNTX1RBRz0uKTogREVGSU5FUyArPSBFTkFCTEVfUFJPR1JF
U1NfVEFHPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQj0uKTogREVGSU5FUyArPSBF
TkFCTEVfQkxPQj0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05PVElGSUNBVElPTlM9Lik6
IERFRklORVMgKz0gRU5BQkxFX05PVElGSUNBVElPTlM9MQpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDk3MzUyKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTQ3MjA2LDYgKzQ3MjA2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNaWNyb0RhdGFJdGVtTGlzdC5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNaWNy
b0RhdGFJdGVtTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cTW91c2VFdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA5NzM1MikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw2ICsy
MzQsMTEgQEAKICNpbmNsdWRlICJXZWJHTENvbnRleHRFdmVudC5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisjaW5jbHVk
ZSAiTm9kZVJhcmVEYXRhLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKQEAgLTUxNzMsNCArNTE3
OCw0MCBAQCBEb2N1bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0
dXJuIGxvYWRlcjsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitQYXNzUmVmUHRyPE5vZGVM
aXN0PiBEb2N1bWVudDo6Z2V0SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCit7CisgICAg
Tm9kZVJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBpZiAoIWRhdGEtPm5v
ZGVMaXN0cygpKSB7CisgICAgICAgIGRhdGEtPnNldE5vZGVMaXN0cyhOb2RlTGlzdHNOb2RlRGF0
YTo6Y3JlYXRlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRkTm9kZUxpc3RDYWNoZSgpOwor
ICAgIH0KKworICAgIC8vIFNpbmNlIGRvY3VtZXQuZ2V0SXRlbSgpIGlzIGFsbG93ZWQgZm9yIG1p
Y3JvZGF0YSwgdHlwZU5hbWVzIHdpbGwgYmUgbnVsbCBzdHJpbmcuCisgICAgLy8gSW4gdGhpcyBj
YXNlIHdlIG5lZWQgdG8gY3JlYXRlIGFuIHVuaXF1ZSBzdHJpbmcgaWRlbnRpZmllciB0byBtYXAg
c3VjaCByZXF1ZXN0IGluIHRoZSBjYWNoZS4KKyAgICBTdHJpbmcgbG9jYWxUeXBlTmFtZXMgPSB0
eXBlTmFtZXMuaXNOdWxsKCkgPyBTdHJpbmcoImh0dHA6Ly93ZWJraXQub3JnL21pY3JvZGF0YS91
bmRlZmluZWRJdGVtVHlwZSIpIDogdHlwZU5hbWVzOworCisgICAgcGFpcjxOb2RlTGlzdHNOb2Rl
RGF0YTo6TWljcm9EYXRhSXRlbUxpc3RDYWNoZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IGRh
dGEtPm5vZGVMaXN0cygpLT5tX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUuYWRkKGxvY2FsVHlwZU5h
bWVzLCAwKTsKKyAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCisgICAgICAgIHJldHVybiBQYXNzUmVm
UHRyPE5vZGVMaXN0PihyZXN1bHQuZmlyc3QtPnNlY29uZCk7CisKKyAgICBSZWZQdHI8TWljcm9E
YXRhSXRlbUxpc3Q+IGxpc3QgPSBNaWNyb0RhdGFJdGVtTGlzdDo6Y3JlYXRlKHRoaXMsIHR5cGVO
YW1lcyk7CisgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBsaXN0LmdldCgpOworICAgIHJldHVy
biBsaXN0LnJlbGVhc2UoKTsKK30KKwordm9pZCBEb2N1bWVudDo6cmVtb3ZlQ2FjaGVkTWljcm9E
YXRhSXRlbUxpc3QoTWljcm9EYXRhSXRlbUxpc3QqIGxpc3QsIGNvbnN0IFN0cmluZyYgdHlwZU5h
bWVzKQoreworICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKKyAgICBBU1NFUlQocmFyZURhdGEoKS0+
bm9kZUxpc3RzKCkpOworICAgIEFTU0VSVF9VTlVTRUQobGlzdCwgbGlzdC0+aGFzT3duQ2FjaGVz
KCkpOworCisgICAgTm9kZUxpc3RzTm9kZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpLT5ub2RlTGlz
dHMoKTsKKworICAgIFN0cmluZyBsb2NhbFR5cGVOYW1lcyA9IHR5cGVOYW1lcy5pc051bGwoKSA/
IFN0cmluZygiaHR0cDovL3dlYmtpdC5vcmcvbWljcm9kYXRhL3VuZGVmaW5lZEl0ZW1UeXBlIikg
OiB0eXBlTmFtZXM7CisgICAgQVNTRVJUX1VOVVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1fbWlj
cm9EYXRhSXRlbUxpc3RDYWNoZS5nZXQobG9jYWxUeXBlTmFtZXMpKTsKKyAgICBkYXRhLT5tX21p
Y3JvRGF0YUl0ZW1MaXN0Q2FjaGUucmVtb3ZlKGxvY2FsVHlwZU5hbWVzKTsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNp
b24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTU4LDYgKzE1OCwxMCBAQCBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
azsKIGNsYXNzIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKK2NsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0OworI2VuZGlmCisKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIEZvcm1FbGVtZW50S2V5IHsKQEAgLTEwOTMs
NiArMTA5NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxl
cigpOwogICAgIAogICAgIGJvb2wgdmlzdWFsVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0SXRlbXMoY29u
c3QgU3RyaW5nJiB0eXBlTmFtZXMpOworICAgIHZvaWQgcmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRl
bUxpc3QoTWljcm9EYXRhSXRlbUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgogICAgIAog
cHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRN
TCwgYm9vbCBpc0hUTUwpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA5
NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTE3NSw2ICsxNzUsMTAgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIE5vZGVMaXN0IGdl
dEVsZW1lbnRzQnlOYW1lKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3Ry
aW5nIGVsZW1lbnROYW1lKTsKIAorI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5B
QkxFX01JQ1JPREFUQQorICAgICAgICBOb2RlTGlzdCBnZXRJdGVtcyhpbiBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZywgT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERP
TVN0cmluZyB0eXBlTmFtZXMpOworI2VuZGlmCisKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY2IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICogYGBB
UyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9CSUxJVFksIElOQy4gT1IgSVRT
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOwor
ICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNy
b0RhdGFJdGVtTGlzdC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK01pY3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlzdChQYXNzUmVmUHRyPE5vZGU+
IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKKyAgICA6IER5bmFtaWNOb2RlTGlz
dChyb290Tm9kZSkKKyAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywgbV9yb290Tm9kZS0+ZG9j
dW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgLCBtX29yaWdpbmFsVHlwZU5hbWVzKHR5cGVO
YW1lcykKK3sKK30KKworTWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlzdCgpCit7
CisgICAgbV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+cmVtb3ZlQ2FjaGVkTWljcm9EYXRhSXRlbUxp
c3QodGhpcywgbV9vcmlnaW5hbFR5cGVOYW1lcyk7Cit9CisKK2Jvb2wgTWljcm9EYXRhSXRlbUxp
c3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3ROb2RlKSBjb25zdAoreworICAgIGlmICghdGVz
dE5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSFRN
TEVsZW1lbnQqIHRlc3RFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0ZXN0Tm9k
ZSk7CisgICAgaWYgKCF0ZXN0RWxlbWVudC0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXNj
b3BlQXR0cikgfHwgdGVzdEVsZW1lbnQtPmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6Oml0ZW1wcm9w
QXR0cikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV90eXBlTmFtZXMuc2l6
ZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX3R5cGVOYW1lcy5jb250
YWlucyh0ZXN0RWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXR5cGVBdHRyKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RB
VEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgTU9C
SUxJVFksIElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBNaWNyb0RhdGFJdGVtTGlzdF9oCisjZGVmaW5lIE1pY3Jv
RGF0YUl0ZW1MaXN0X2gKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJEeW5h
bWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0
cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0
IDogcHVibGljIER5bmFtaWNOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWljcm9EYXRhSXRlbUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBj
b25zdCBTdHJpbmcmIHR5cGVOYW1lcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWljcm9EYXRhSXRlbUxpc3Qocm9vdE5vZGUsIHR5cGVOYW1lcykpOworICAgIH0KKworICAg
IHZpcnR1YWwgfk1pY3JvRGF0YUl0ZW1MaXN0KCk7CisKK3ByaXZhdGU6CisgICAgTWljcm9EYXRh
SXRlbUxpc3QoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFt
ZXMpOworCisgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKKwor
ICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90eXBlTmFtZXM7CisgICAgU3RyaW5nIG1fb3JpZ2luYWxU
eXBlTmFtZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoTUlDUk9EQVRBKQorI2VuZGlmIC8vIE1pY3JvRGF0YUl0ZW1MaXN0X2gKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjc1LDYgKzIyNzUsMjMgQEAgRmxvYXRQb2ludCBOb2RlOjpj
b252ZXJ0RnJvbVBhZ2UoY29uc3QgRgogICAgIHJldHVybiBwOwogfQogCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKK3ZvaWQgTm9kZTo6aXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCkKK3sKKyAgICBO
b2RlICogcm9vdE5vZGUgPSBkb2N1bWVudCgpOworCisgICAgaWYgKCFyb290Tm9kZS0+aGFzUmFy
ZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gcm9v
dE5vZGUtPnJhcmVEYXRhKCk7CisKKyAgICBpZiAoIWRhdGEtPm5vZGVMaXN0cygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0ZU1pY3JvZGF0YUl0
ZW1MaXN0Q2FjaGVzKCk7Cit9CisjZW5kaWYKKwogI2lmbmRlZiBOREVCVUcKIAogc3RhdGljIHZv
aWQgYXBwZW5kQXR0cmlidXRlRGVzYyhjb25zdCBOb2RlKiBub2RlLCBTdHJpbmcmIHN0cmluZywg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgY2hhciogYXR0ckRlc2MpCkBAIC0yNDI0
LDcgKzI0NDEsMjAgQEAgdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcwog
ICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKICAgICBpZiAobV9sYWJlbHNO
b2RlTGlzdENhY2hlKQogICAgICAgICBtX2xhYmVsc05vZGVMaXN0Q2FjaGUtPmludmFsaWRhdGVD
YWNoZSgpOworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBpbnZhbGlkYXRlTWljcm9kYXRh
SXRlbUxpc3RDYWNoZXMoKTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3Zv
aWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVNaWNyb2RhdGFJdGVtTGlzdENhY2hlcygp
Cit7CisgICAgTWljcm9EYXRhSXRlbUxpc3RDYWNoZTo6aXRlcmF0b3IgaXRlbUxpc3RDYWNoZUVu
ZCA9IG1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5lbmQoKTsKKyAgICBmb3IgKE1pY3JvRGF0YUl0
ZW1MaXN0Q2FjaGU6Oml0ZXJhdG9yIGl0ID0gbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmJlZ2lu
KCk7IGl0ICE9IGl0ZW1MaXN0Q2FjaGVFbmQ7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmlu
dmFsaWRhdGVDYWNoZSgpOwogfQorI2VuZGlmCiAKIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6Omlz
RW1wdHkoKSBjb25zdAogewpAQCAtMjQ0Miw2ICsyNDcyLDEwIEBAIGJvb2wgTm9kZUxpc3RzTm9k
ZURhdGE6OmlzRW1wdHkoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFt
X25hbWVOb2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgaWYgKCFtX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAogICAgIGlmIChtX2xhYmVs
c05vZGVMaXN0Q2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAko
cmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MTYsNiArNTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2Rl
TGlzdHNBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBub3RpZnlMb2NhbE5vZGVMaXN0c0xh
YmVsQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2xhc3NOb2RlTGlzdChDbGFzc05v
ZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHJlbW92ZUNhY2hlZE5hbWVOb2Rl
TGlzdChOYW1lTm9kZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hl
ZFRhZ05vZGVMaXN0KFRhZ05vZGVMaXN0KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9p
ZCByZW1vdmVDYWNoZWRUYWdOb2RlTGlzdChUYWdOb2RlTGlzdCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKQEAgLTU4MCw2ICs1ODEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJn
ZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSog
ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZv
aWQgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBl
bnVtIE5vZGVGbGFncyB7CiAgICAgICAgIElzVGV4dEZsYWcgPSAxLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDExIEBACiAKICNpbmNs
dWRlICJDbGFzc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisjZW5k
aWYKKwogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUu
aCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtNTYsNyArNjEsMTIgQEAgcHVibGljOgog
CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1l
SW1wbD4sIFRhZ05vZGVMaXN0Kj4gVGFnTm9kZUxpc3RDYWNoZU5TOwogICAgIFRhZ05vZGVMaXN0
Q2FjaGVOUyBtX3RhZ05vZGVMaXN0Q2FjaGVOUzsKLSAKKworI2lmIEVOQUJMRShNSUNST0RBVEEp
CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTWljcm9EYXRhSXRlbUxpc3QqPiBNaWNyb0Rh
dGFJdGVtTGlzdENhY2hlOworICAgIE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUgbV9taWNyb0RhdGFJ
dGVtTGlzdENhY2hlOworI2VuZGlmCisKICAgICBMYWJlbHNOb2RlTGlzdCogbV9sYWJlbHNOb2Rl
TGlzdENhY2hlOwogIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vZGVMaXN0c05vZGVEYXRhPiBj
cmVhdGUoKQpAQCAtNjYsNiArNzYsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgaW52YWxp
ZGF0ZUNhY2hlcygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJp
YnV0ZXMoKTsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdm9pZCBpbnZhbGlkYXRlTWlj
cm9kYXRhSXRlbUxpc3RDYWNoZXMoKTsKKyNlbmRpZgorCiAgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3Q7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbgkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSwxMCBAQCBpZAogaW5j
cmVtZW50YWwKIGluZGV0ZXJtaW5hdGUKIGlzbWFwCitpdGVtaWQKK2l0ZW1wcm9wCitpdGVtc2Nv
cGUKK2l0ZW10eXBlCiBrZXl0eXBlCiBraW5kCiBsYWJlbApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw2ICsxOTUsMTAgQEAgdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQQogICAgICAgICAgICAgYWRkQ1NTUHJv
cGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKICAg
ICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcs
IENTU1ZhbHVlTm9uZSk7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB9IGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBpdGVtdHlwZUF0dHIpIHsKKyAgICAgICAgaXRlbVR5cGVBdHRyaWJ1dGVD
aGFuZ2VkKCk7CisjZW5kaWYKICAgICB9CiAvLyBzdGFuZGFyZCBldmVudHMKICAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gb25jbGlja0F0dHIpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaWRsCShyZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2NiwxMCBAQCBtb2R1bGUgaHRt
bCB7CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxjaGVjazsKIAor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVj
dF0gYm9vbGVhbiBpdGVtU2NvcGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbVR5cGU7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJp
bmcgaXRlbUlkOworCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRs
ZURpc3BsYXlTdHJpbmc7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTMgIEFya28gU2FoYSAgPGFya29A
bW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24g
b2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxh
Zy4gSW1wbGVtZW50IGRvY3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKyAgICAgICAgU3BlYyA6
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvY29tcGxl
dGUvbWljcm9kYXRhLmh0bWwKKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTEtMTAt
MTIgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBQYXNz
IFBhcnNlZCBBY2NlcHQgQXR0cmlidXRlIE1JTUUgVHlwZXMgdG8gV2ViS2l0IENsaWVudHMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHJldmlzaW9uIDk3MzUyKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw2ICs2OCw3IEBACiAgICAgICAnRU5BQkxFX01FRElBX1NUUkVBTT0xJywKICAgICAgICdFTkFC
TEVfTUVURVJfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9NSFRNTD0xJywKKyAgICAgICdFTkFCTEVf
TUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM9PChlbmFibGVf
bXV0YXRpb25fb2JzZXJ2ZXJzKScsCiAgICAgICAnRU5BQkxFX05PVElGSUNBVElPTlM9MScsCiAg
ICAgICAnRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wJywKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MzUyKQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTMg
IEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFz
aWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShNSUNS
T0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1wbGVtZW50IGRvY3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQ
SS4KKyAgICAgICAgU3BlYyA6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvY29tcGxldGUvbWljcm9kYXRhLmh0bWwKKworICAgICAgICAqIFNjcmlwdHMv
YnVpbGQtd2Via2l0OgorCiAyMDExLTEwLTEzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEEgRFJUIGZpeCBmb3Igcjk3MzQ4LgpJbmRleDog
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQJKHJldmlzaW9uIDk3MzUyKQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQCBteSAoCiAgICAgJG1lZGlhU3Ry
ZWFtU3VwcG9ydCwKICAgICAkbWV0ZXJUYWdTdXBwb3J0LAogICAgICRtaHRtbFN1cHBvcnQsCisg
ICAgJG1pY3JvZGF0YVN1cHBvcnQsCiAgICAgJG11dGF0aW9uT2JzZXJ2ZXJzU3VwcG9ydCwKICAg
ICAkbmV0c2NhcGVQbHVnaW5TdXBwb3J0LAogICAgICRub3RpZmljYXRpb25zU3VwcG9ydCwKQEAg
LTI2Miw2ICsyNjMsOSBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIm1odG1s
IiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUhUTUwiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKKyAg
ICB7IG9wdGlvbiA9PiAibWljcm9kYXRhIiwgZGVzYyA9PiAiVG9nZ2xlIE1pY3JvZGF0YSBzdXBw
b3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01JQ1JPREFUQSIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRtaWNyb2RhdGFTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAibmV0c2Nh
cGUtcGx1Z2luIiwgZGVzYyA9PiAiTmV0c2NhcGUgUGx1Z2luIHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzRWZsKCks
IHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5TdXBwb3J0IH0sCiAKSW5kZXg6IFdlYktpdExpYnJh
cmllcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwko
cmV2aXNpb24gOTczNTIpCisrKyBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMTMgIEFya28gU2FoYSAgPGFya29AbW90b3Jv
bGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9j
dW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIEVOQUJMRShNSUNST0RBVEEpIGZlYXR1cmUgZmxhZy4gSW1w
bGVtZW50IGRvY3VtZW50LmdldEl0ZW1zKCkgRE9NIEFQSS4KKyAgICAgICAgU3BlYzogaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9jb21wbGV0ZS9taWNy
b2RhdGEuaHRtbAorCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMu
dnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJv
LnZzcHJvcHM6CisKIDIwMTEtMTAtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZW1vdmUgRU5BQkxFKFhIVE1MTVApIGFuZCBhc3NvY2lhdGVkIGNvZGUKSW5k
ZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3By
b3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lcy52c3Byb3BzCShyZXZpc2lvbiA5NzM1MikKKysrIFdlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBA
IC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklM
VEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVO
QUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9E
T01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQ
QUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRD
SCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5B
QkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9O
VFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTsk
KEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXBy
b2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChF
TkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
OyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMp
OyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVf
U1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NU
T1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTsk
KEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNI
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUp
OyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
OyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQo
RU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQo
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9R
VU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVE
X1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTsk
KEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0Up
OyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJM
RV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVf
WFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUiCkBAIC0yMDIsNiArMjAyLDExIEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0i
dHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCisJCU5hbWU9IkVOQUJMRV9NSUNST0RBVEEiCisJCVZh
bHVlPSIiCisJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKKwkvPgorICA8VXNlck1hY3Jv
CiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMiCiAJCVZhbHVlPSIiCiAJCVBlcmZv
cm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwko
cmV2aXNpb24gOTczNTIpCisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXNDYWlyby52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAog
CT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lP
TlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RB
VEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTsk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQo
RU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RF
TSk7JChFTkFCTEVfQ1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFC
TEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5BQkxF
X0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVf
TVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdF
X1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTsk
KEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VS
Uyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxF
X1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFC
TEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9U
SU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIK
KwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVf
M0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JM
T0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChF
TkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFU
QUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTsk
KEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJ
UkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9GSUxURVJTKTsk
KEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfQ1NTM19GTEVYQk9YKTskKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5B
QkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5Q
VVRfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
VElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01F
VEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMp
OyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQo
RU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJM
RV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09S
S0VSUyk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8K
IAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTE5Nyw2ICsxOTcsMTEgQEAKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxF
X01JQ1JPREFUQSIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgor
CS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIKIAkJ
VmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gOTczNTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwzOSBAQAorMjAxMS0xMC0xMyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisK
KyAgICAgICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJ
dGVtcygpIG1ldGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4NjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdGVzdC1jYXNlcyBmb3IgZG9jdW1lbnQuZ2V0SXRlbXMoKSBtZXRob2QuCisg
ICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvY29tcGxldGUvbWljcm9kYXRhLmh0bWwKKyAgICAgICAgU2tpcHBpbmcgdGVzdC1jYXNl
cyBmb3Igbm93IGFzIE1pY3JvZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KKworICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YTogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhLzAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS8wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhLzAwNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS8wMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhLzAwNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0
YS8wMDYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwNy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDcuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwOC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDguaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhL3Jlc291cmNlczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL3Jlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0
ZUVsZW0pOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6CisKIDIwMTEtMTAtMTMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gRml4IGVycm9ycyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAxLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgRE9NIEFQSSBtdXN0IGV4aXN0LgorCitQQVNTIE5vZGVM
aXN0IGlzIGRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDEuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1l
bnQuZ2V0SXRlbXMgRE9NIEFQSSBtdXN0IGV4aXN0LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK3ZhciBOb2RlTGlzdCA9IGRvY3VtZW50LmdldEl0ZW1zOworc2hvdWxk
QmVEZWZpbmVkKCJOb2RlTGlzdCIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMo
KS5sZW5ndGggbXVzdCByZXR1cm4gdGhlIGNvcnJlY3QgbnVtYmVyIG9mIE1pY3JvRGF0YSBJdGVt
cyBpbiB0aGUgRG9jdW1lbnQuIAorQWxzbyBpdCB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1z
IG11c3QgcmV0dXJuIGEgbGl2ZSBOb2RlTGlzdC4KKworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRo
b3V0IGF1cmd1bWVudDogUEFTUworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoIGVtcHR5IHN0cmlu
ZyBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCitkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6
Ly9leGFtcGxlLmNvbS9mb28nIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQ6IFBBU1MKK2RvY3Vt
ZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2JhcicgaXRlbXR5cGUgaW4g
dGhlIGF1cmd1bWVudDogUEFTUworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhh
bXBsZS5jb20vZjEnIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQ6IFBBU1MKK05ld2x5IGFwcGVu
ZGVkIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitSZW1vdmlu
ZyBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2RlTGlzdDogUEFTUworCitURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0
ZW1zKCkubGVuZ3RoIG11c3QgcmV0dXJuIHRoZSBjb3JyZWN0IG51bWJlciBvZiBNaWNyb0RhdGEg
SXRlbXMgaW4gdGhlIERvY3VtZW50LgorPGJyPkFsc28gaXQgdGVzdHMgdGhhdCBkb2N1bWVudC5n
ZXRJdGVtcyBtdXN0IHJldHVybiBhIGxpdmUgTm9kZUxpc3QuCis8L3A+CisKKzxkaXYgaXRlbXNj
b3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKzxk
aXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIiBpZD0idHdvIj48
L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBp
ZD0idGhyZWUiPgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
MSIgaWQ9ImZvdXIiPjwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgb25lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpOwordmFyIHR3byA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0d28nKTsKK3ZhciB0aHJlZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScp
OwordmFyIGZvdXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91cicpOworCitydW5UZXN0
KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3bywgdGhyZWUsIGZvdXJdLCAiZG9jdW1lbnQu
Z2V0SXRlbXMoKSB3aXRob3V0IGF1cmd1bWVudCIpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVt
cygnJyksIFtvbmUsIHR3bywgdGhyZWUsIGZvdXJdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRo
IGVtcHR5IHN0cmluZyBpbiB0aGUgYXVyZ3VtZW50Iik7CitydW5UZXN0KGRvY3VtZW50LmdldEl0
ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHRocmVlXSwgImRvY3VtZW50Lmdl
dEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycgaXRlbXR5cGUgaW4gdGhlIGF1
cmd1bWVudCIpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29t
L2JhcicpLCBbdHdvXSwgImRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUu
Y29tL2JhcicgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudCIpOworcnVuVGVzdChkb2N1bWVudC5n
ZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2YxJyksIFtmb3VyXSwgImRvY3VtZW50LmdldEl0
ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2YxJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3Vt
ZW50Iik7CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2Jywge2l0ZW1zY29wZTonaXRl
bXNjb3BlJ30pOworCisvLyBBcHBlbmQgbmV3bHkgY3JlYXRlZCBpdGVtIHRvIGJvZHkKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1z
KCksIFtvbmUsIHR3bywgdGhyZWUsIGZvdXIsIGVsZW1lbnRdLCAiTmV3bHkgYXBwZW5kZWQgaXRl
bSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3QiKTsKKworLy8gUmVtb3ZlIHRoZSBl
bGVtZW50Citkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworcnVuVGVzdChkb2N1
bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d28sIHRocmVlLCBmb3VyXSwgIlJlbW92aW5nIGl0ZW0g
c2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0Iik7CisKK2RvY3VtZW50LndyaXRlKCI8
YnI+VEVTVCBDT01QTEVURSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
bGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW1zY29wZSBhdHRyaWJ1dGUgY2hhbmdl
cy4KKworVGhpcyB0ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zOiBQQVNTCitS
ZW1vdmluZyBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBOb2RlTGlz
dDogUEFTUworU2V0IGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5v
ZGVMaXN0OiBQQVNTCitTZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8gZmFsc2Ugc2hvdWxkIG5vdGlj
ZSBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKK1NldCBlbGVtZW50Lml0ZW1TY29wZSB0byB0cnVlIHNo
b3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCisKK1RFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGljZSB3
aGVuIGl0ZW1zY29wZSBhdHRyaWJ1dGUgY2hhbmdlcy48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpdGVt
dHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1z
Y29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+Cis8
c2NyaXB0PgordmFyIG9uZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKTsKK3ZhciB0
d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJyk7CisKK3J1blRlc3QoZG9jdW1lbnQu
Z2V0SXRlbXMoKSwgW29uZSwgdHdvXSwgIlRoaXMgdGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1pY3Jv
ZGF0YSBpdGVtcyIpOworCisvLyBSZW1vdmUgaXRlbXNjb3BlIGF0dHJpYnV0ZQorb25lLnJlbW92
ZUF0dHJpYnV0ZSgnaXRlbXNjb3BlJyk7CitydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFt0
d29dLCAiUmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBpbiB0aGUg
Tm9kZUxpc3QiKTsKKworLy8gU2V0dGluZyBpdGVtc2NvcGUgYXR0cmlidXRlCitvbmUuc2V0QXR0
cmlidXRlKCdpdGVtc2NvcGUnLCdpdGVtc2NvcGUnKTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRl
bXMoKSwgW29uZSwgdHdvXSwgIlNldCBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0
IGluIHRoZSBOb2RlTGlzdCIpOworCisvLyBTZXR0aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgdG8g
ZmFsc2UKK3R3by5pdGVtU2NvcGUgPSBmYWxzZTsKK3J1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMo
KSwgW29uZV0sICJTZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8gZmFsc2Ugc2hvdWxkIG5vdGljZSBp
biB0aGUgTm9kZUxpc3QiKTsKKworLy8gU2V0dGluZyBpdGVtc2NvcGUgYXR0cmlidXRlIHRvIHRy
dWUKK3R3by5pdGVtU2NvcGUgPSB0cnVlOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBb
b25lLCB0d29dLCAiU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIHRydWUgc2hvdWxkIG5vdGljZSBp
biB0aGUgTm9kZUxpc3QiKTsKKworZG9jdW1lbnQud3JpdGUoIjxicj5URVNUIENPTVBMRVRFIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMg
bXVzdCBiZSBjYXNlIHNlbnNpdGl2ZS4KKworUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnaHR0cDov
L2V4YW1wbGUuY29tL0ZvbycpLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0
SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKS5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNT
IGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vQkFSJykubGVuZ3RoID09IDEg
aXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2Jhcicp
Lmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBk
b2N1bWVudC5nZXRJdGVtcyBtdXN0IGJlIGNhc2Ugc2Vuc2l0aXZlLjwvcD4KKzxkaXYgaXRlbXNj
b3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKzxk
aXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vQkFSIiBpZD0idHdvIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgorc2hvdWxkQmVUcnVl
KCJkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL0ZvbycpLmxlbmd0aCA9PSAw
Iik7CitzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJykubGVuZ3RoID09IDEiKTsKKworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygn
aHR0cDovL2V4YW1wbGUuY29tL0JBUicpLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZVRydWUoImRv
Y3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAiKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhLzAwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0
ZXN0cyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtdHlwZSBjaGFuZ2Vz
LgorCitUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXM6IFBBU1MKK05v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKK05v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKKworVEVT
VCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVz
dCBub3RpY2Ugd2hlbiBpdGVtdHlwZSBjaGFuZ2VzLjwvcD4KKzxkaXYgaXRlbXNjb3BlIGl0ZW10
eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KKzxkaXYgaXRlbXNj
b3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0idHdvIj48L2Rpdj4KKwor
PHNjcmlwdD4KK3ZhciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7Cit2YXIg
dHdvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOworCitydW5UZXN0KGRvY3VtZW50
LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHR3b10sICJUaGlzIHRl
c3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXMiKTsKKworLy8gUmVtb3ZlIGl0ZW10
eXBlIGF0dHJpYnV0ZQorb25lLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXR5cGUnKTsKK3J1blRlc3Qo
ZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nKSwgW3R3b10sICJOb2Rl
TGlzdCBtdXN0IG5vdGljZSBvbiByZW1vdmUgYXR0cmlidXRlIGl0ZW10eXBlIik7CisKKy8vIFNl
dCBpdGVtdHlwZSBhdHRyaWJ1dGUKK29uZS5zZXRBdHRyaWJ1dGUoJ2l0ZW10eXBlJywnaHR0cDov
L2V4YW1wbGUuY29tL2ZvbycpOworcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4
YW1wbGUuY29tL2ZvbycpLCBbb25lLCB0d29dLCAiTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gc2V0
IGF0dHJpYnV0ZSBpdGVtdHlwZSIpOworCitkb2N1bWVudC53cml0ZSgiPGJyPlRFU1QgQ09NUExF
VEUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwNi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11
c3QgbG9jYXRlIGl0ZW1zIHdoZW4gcGFyYW1ldGVycyBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4g
CitUaGlzIHRlc3QgYWxzbyBlbnN1cmUgdGhhdCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGlnbm9y
ZSBkdXBsaWNhdGVkIHRva2Vucy4KKworUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9l
eGFtcGxlLmNvbS9mb28gaHR0cDovL2V4YW1wbGUuY29tL2JhciAnKS5sZW5ndGggPT0gMiBpcyB0
cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyBkYXRh
OnRleHQvcGxhaW4gJykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVt
cygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gZGF0YTp0ZXh0L3BsYWluIGh0dHA6Ly9leGFtcGxl
LmNvbS9mb28nKS5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAwNi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDYuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhh
dCBkb2N1bWVudC5nZXRJdGVtcyBtdXN0IGxvY2F0ZSBpdGVtcyB3aGVuIHBhcmFtZXRlcnMgYXJl
IHNlcGFyYXRlZCBieSBzcGFjZXMuCis8YnI+VGhpcyB0ZXN0IGFsc28gZW5zdXJlIHRoYXQgZG9j
dW1lbnQuZ2V0SXRlbXMgbXVzdCBpZ25vcmUgZHVwbGljYXRlZCB0b2tlbnMuCis8L3A+Cis8ZGl2
IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyI+PC9kaXY+Cis8ZGl2
IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciI+Cis8ZGl2IGl0ZW1z
Y29wZSBpdGVtdHlwZT0iZGF0YTp0ZXh0L3BsYWluIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgorc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVt
cygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gaHR0cDovL2V4YW1wbGUuY29tL2JhciAnKS5sZW5n
dGggPT0gMiIpOworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFt
cGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAgJykubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJl
VHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoJyAgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyAgZGF0YTp0
ZXh0L3BsYWluICBodHRwOi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDIiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
Ny1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdHMg
dGhhdCBkb2N1bWVudC5nZXRJdGVtcyBOb2RlTGlzdCBtdXN0IGJlIGluIHNvdXJjZSB0cmVlIG9y
ZGVyLgorCitQQVNTIG5vZGVMaXN0WzBdLmlkIGlzICdvbmUnCitQQVNTIG5vZGVMaXN0WzFdLmlk
IGlzICd0d28nCitQQVNTIG5vZGVMaXN0WzJdLmlkIGlzICd0aHJlZScKK1BBU1Mgbm9kZUxpc3Rb
M10uaWQgaXMgJ2ZvdXInCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDcuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDcuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5nZXRJ
dGVtcyBOb2RlTGlzdCBtdXN0IGJlIGluIHNvdXJjZSB0cmVlIG9yZGVyLjwvcD4KKworPGRpdiBp
dGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2
PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXIiIGlkPSJ0
d28iPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iIGlkPSJ0aHJlZSI+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iZGF0YTp0ZXh0L3BsYWlu
LCIgaWQ9ImZvdXIiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpZD0iZml2ZSI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgbm9kZUxpc3QgPSBk
b2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2JhciBkYXRhOnRleHQvcGxhaW4s
IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28nKTsKKworc2hvdWxkQmUoIm5vZGVMaXN0WzBdLmlkIiwg
IidvbmUnIik7CitzaG91bGRCZSgibm9kZUxpc3RbMV0uaWQiLCAiJ3R3byciKTsKK3Nob3VsZEJl
KCJub2RlTGlzdFsyXS5pZCIsICIndGhyZWUnIik7CitzaG91bGRCZSgibm9kZUxpc3RbM10uaWQi
LCAiJ2ZvdXInIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDA4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDA4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDcgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBub3Qg
ZmluZCBpdGVtcyB3aXRoIGl0ZW10eXBlIGJ1dCBub3QgaXRlbXNjb3BlLgorCitQQVNTIGRvY3Vt
ZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJykubGVuZ3RoID09IDAgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDguaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA4Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11
c3Qgbm90IGZpbmQgaXRlbXMgd2l0aCBpdGVtdHlwZSBidXQgbm90IGl0ZW1zY29wZS48L3A+Cis8
ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyI+PC9kaXY+Cis8
ZGl2IGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMo
J2h0dHA6Ly9leGFtcGxlLmNvbS9iYXInKS5sZW5ndGggPT0gMCIpOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
ZG9jdW1lbnQuZ2V0SXRlbXMgbXVzdCBub3QgY29udGFpbiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRo
ZSBpdGVtcHJvcCBhdHRyaWJ1dGUgc2V0LiBJdCBtdXN0IHJldHVybiBhIE5vZGVMaXN0IGNvbnRh
aW5pbmcgdGhlIHRvcC1sZXZlbCBtaWNyb2RhdGEgaXRlbXMgaW4gdGhlIGRvY3VtZW50LgorCitO
YW1lOiBBbWFuZGEKKworQmFuZDogSmF6eiBCYW5kICgxMiBwbGF5ZXJzKQorCitQQVNTIGRvY3Vt
ZW50LmdldEl0ZW1zKCkubGVuZ3RoID09IDYgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVt
cygpLmxlbmd0aCA9PSA0IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGgg
PT0gNSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3Qgbm90
IGNvbnRhaW4gdGhlIGl0ZW1zIHRoYXQgaGF2ZSB0aGUgaXRlbXByb3AgYXR0cmlidXRlIHNldC4K
K0l0IG11c3QgcmV0dXJuIGEgTm9kZUxpc3QgY29udGFpbmluZyB0aGUgdG9wLWxldmVsIG1pY3Jv
ZGF0YSBpdGVtcyBpbiB0aGUgZG9jdW1lbnQuPC9wPgorCis8ZGl2IGl0ZW1zY29wZSBpdGVtdHlw
ZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29w
ZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIgaWQ9InR3byI+PC9kaXY+CisKKzxk
aXYgaXRlbXNjb3BlPgorPHA+TmFtZTogPHNwYW4gaXRlbXByb3A9Im5hbWUiPkFtYW5kYTwvc3Bh
bj48L3A+Cis8cD5CYW5kOiA8c3BhbiBpdGVtcHJvcD0iYmFuZCIgaXRlbXNjb3BlPiA8c3BhbiBp
dGVtcHJvcD0ibmFtZSI+SmF6eiBCYW5kPC9zcGFuPiAoPHNwYW4gaXRlbXByb3A9InNpemUiPjEy
PC9zcGFuPiBwbGF5ZXJzKTwvc3Bhbj48L3A+Cis8L2Rpdj4KKworPGRpdiBpdGVtc2NvcGUgaXRl
bXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0aHJlZSI+Cis8ZGl2IGl0ZW1zY29w
ZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2YxIiBpZD0iZm91ciI+PC9kaXY+Cis8L2Rp
dj4KKzxkaXYgaXRlbXNjb3BlIGlkPSJmaXZlIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGgg
PT0gNiIpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykuc2V0QXR0cmlidXRlKCdp
dGVtcHJvcCcsICd0ZXN0Jyk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZml2ZScpLnNldEF0
dHJpYnV0ZSgnaXRlbXByb3AnLCAndGVzdCcpOworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJ
dGVtcygpLmxlbmd0aCA9PSA0Iik7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXZlJyku
cmVtb3ZlQXR0cmlidXRlKCdpdGVtcHJvcCcpOworc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRJ
dGVtcygpLmxlbmd0aCA9PSA1Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21t
b24uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcmVz
b3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAK
Ky8vIHRoaXMgZnVuY3Rpb24gY3JlYXRlcyBlbGVtZW50IHdpdGggc3BlY2lmaWVkIHByb3BlcnR5
IGFuZCBjb250ZW50cy4KK2Z1bmN0aW9uIGNyZWF0ZUVsZW0odHlwZSxwcm9wcyxjb250ZW50cykg
eworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQodHlwZSk7CisKKyAgICBmb3IoIHZhciBpIGluIHByb3BzICkgeworICAgICAgaWYo
IHByb3BzLmhhc093blByb3BlcnR5KGkpICkgeworICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZShp
LHByb3BzW2ldKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYoIGNvbnRlbnRzICkgeworICAgICAg
ZWxlbS5pbm5lckhUTUwgPSBjb250ZW50czsKKyAgICB9CisgICAgcmV0dXJuIGVsZW07Cit9CisK
KworLy8gcnVucyBhIHRlc3QgYW5kIHdyaXRlcyBhIGxvZworZnVuY3Rpb24gcnVuVGVzdChjb2xs
ZWN0aW9uLCBlbGVtZW50cywgdGl0bGUpIHsKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZG9jdW1l
bnQud3JpdGUodGl0bGUgKyAnOiAnKTsKKyAgcGFzcyA9IHRydWU7CisKKyAgaWYgKGNvbGxlY3Rp
b24ubGVuZ3RoICE9IGVsZW1lbnRzLmxlbmd0aCkgeworICAgIHBhc3MgPSBmYWxzZQorICAgIGRv
Y3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgJyArIGVsZW1lbnRzLmxlbmd0aCArICcgZWxl
bWVudHMgYnV0IGdvdCAnICsgY29sbGVjdGlvbi5sZW5ndGggKyAiIGVsZW1lbnRzLiAiKTsKKyAg
fQorICBmb3IodmFyIGkgPSAwLCBtYXggPSBjb2xsZWN0aW9uLmxlbmd0aCA+IGVsZW1lbnRzLmxl
bmd0aCA/IGVsZW1lbnRzLmxlbmd0aCA6IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbWF4OyBpKysp
IHsKKyAgICBpZihjb2xsZWN0aW9uW2ldICE9IGVsZW1lbnRzW2ldKSB7CisgICAgICBwYXNzID0g
ZmFsc2UKKyAgICAgIGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgZWxlbWVudCA6ICcg
KyBlbGVtZW50c1tpXS50YWdOYW1lICsgIiBidXQgZ290IGVsZW1lbnQgOiIgKyBjb2xsZWN0aW9u
W2ldLnRhZ05hbWUpOworICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwgLSBleHBlY3RlZCBlbGVt
ZW50IHdpdGggaWQ6ICcgKyBlbGVtZW50c1tpXS5pZCArICIgYnV0IGdvdCBlbGVtZW50IHdpdGgg
aWQ6IiArIGNvbGxlY3Rpb25baV0uaWQpOworICAgIH0KKyAgfQorICBpZiAocGFzcykKKyAgICBk
b2N1bWVudC53cml0ZSgnUEFTUycpOworICBkb2N1bWVudC53cml0ZSgnPGJyPicpOworfQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAkocmV2aXNpb24gOTczNTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM5ODcsMyArMzk4Nyw2
IEBAIEJVR0NSMTAwMDU2IE1BQyBERUJVRyBTTE9XIDogaHR0cC90ZXN0cy8KIEJVR0NSMTAwMDU2
IE1BQyBERUJVRyBTTE9XIDogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1yZWNv
bm5lY3QtZHVyaW5nLW5hdmlnYXRlLWNyYXNoLmh0bWwgPSBQQVNTCiBCVUdDUjEwMDA1NiBNQUMg
REVCVUcgU0xPVyA6IGh0dHAvdGVzdHMvbWlzYy9zdWJtaXQtcG9zdC1pbi11dGYzMmxlLmh0bWwg
PSBQQVNTCiBCVUdDUjEwMDA1NiBNQUMgREVCVUcgU0xPVyA6IGh0dHAvdGVzdHMvbWlzYy93aW5k
b3ctb3Blbi10aGVuLXdyaXRlLmh0bWwgPSBQQVNTCisKKy8vIE1pY3JvZGF0YSBET00gQVBJIGlz
IG5vdCB5ZXQgZW5hYmxlZC4KK0JVR1dLNjg2MTAgU0tJUCA6IGZhc3QvZG9tL01pY3JvRGF0YSA9
IFBBU1MKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA5NzM1MikKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgx
LDMgKzE2ODEsNiBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4Lmh0bWwKICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjE5CiBodHRwL3Rlc3Rz
L2xvY2FsL2ZpbGVhcGkvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwgIAogaHR0cC90ZXN0
cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJsb2IuaHRtbAorCisjIE1pY3JvZGF0YSBET00gQVBJ
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZG9tL01pY3JvRGF0YQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA5NzM1MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTI0MTksMyArMjQxOSw2IEBAIGZhc3QvYm9yZGVy
cy9pbmxpbmUtbWFzay1vdmVybGF5LWltYWdlLW8KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVudC11cmwuaHRtbAogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0bWwKIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1ub24tdW5pcXVl
LXVybC5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBlbmFibGVkLgorQlVH
V0s2ODYxMCBTS0lQIDogZmFzdC9kb20vTWljcm9EYXRhID0gUEFTUwpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDk3MzUyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE0MjIsMyArMTQyMiw2IEBAIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHQKIAogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NzMKIGh0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1m
aW5pc2hlZC1jYWxsYmFjay5odG1sCisKKyMgTWljcm9kYXRhIERPTSBBUEkgaXMgbm90IHlldCBl
bmFibGVkLgorZmFzdC9kb20vTWljcm9EYXRhCg==
</data>
<flag name="review"
          id="108428"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="108429"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>