<?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>215790</bug_id>
          
          <creation_ts>2020-08-24 18:42:59 -0700</creation_ts>
          <short_desc>Crash in WebCore::AccessibilityRenderObject::textUnderElement in isolated tree mode.</short_desc>
          <delta_ts>2020-08-25 11:48:17 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682533</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-24 18:42:59 -0700</bug_when>
    <thetext>Crash in WebCore::AccessibilityRenderObject::textUnderElement in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682553</commentid>
    <comment_count>1</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-24 19:57:08 -0700</bug_when>
    <thetext>To reproduce:
1. browse to https://codepen.io/mra11yx/full/OJVzpBK
2. VoiceOver navigate to the radio buttons.
3. Press VO keys + SpaceBar to select a radio button.
Crash occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682554</commentid>
    <comment_count>2</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-24 20:00:15 -0700</bug_when>
    <thetext>Stack trace:
ASSERTION FAILED: !nodeDocument-&gt;childNeedsStyleRecalc()
./accessibility/AccessibilityRenderObject.cpp(667) : virtual WTF::String WebCore::AccessibilityRenderObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const
1   0x4c2c1dd19 WTFCrash
2   0x4c2c1dd39 WTFCrashWithSecurityImplication
3   0x4a81bd0cd WebCore::AccessibilityRenderObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const
4   0x4a81a6d2f WebCore::AccessibilityNodeObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const
5   0x4a81bd2f8 WebCore::AccessibilityRenderObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const
6   0x4a81a4592 WebCore::accessibleNameForNode(WebCore::Node*, WebCore::Node*)
7   0x4a81a3faa WebCore::AccessibilityNodeObject::textForLabelElement(WebCore::Element*) const
8   0x4a81a4789 WebCore::AccessibilityNodeObject::titleElementText(WTF::Vector&lt;WebCore::AccessibilityText, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;) const
9   0x4a81c0018 WebCore::AccessibilityRenderObject::titleElementText(WTF::Vector&lt;WebCore::AccessibilityText, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;) const
10  0x4a81a5e48 WebCore::AccessibilityNodeObject::accessibilityText(WTF::Vector&lt;WebCore::AccessibilityText, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;) const
11  0x4a62aca40 WebCore::AccessibilityObject::descriptionAttributeValue() const
12  0x4a81fa900 WebCore::AXIsolatedObject::initializeAttributeData(WebCore::AXCoreObject&amp;, bool)
13  0x4a81fa5cd WebCore::AXIsolatedObject::AXIsolatedObject(WebCore::AXCoreObject&amp;, unsigned int, unsigned long)
14  0x4a820060b WebCore::AXIsolatedObject::AXIsolatedObject(WebCore::AXCoreObject&amp;, unsigned int, unsigned long)
15  0x4a8200669 WebCore::AXIsolatedObject::create(WebCore::AXCoreObject&amp;, unsigned int, unsigned long)
16  0x4a820aeb1 WebCore::AXIsolatedTree::updateNode(WebCore::AXCoreObject&amp;)
17  0x4a814426d WebCore::AXObjectCache::updateIsolatedTree(WTF::Vector&lt;std::__1::pair&lt;WTF::RefPtr&lt;WebCore::AXCoreObject, WTF::DumbPtrTraits&lt;WebCore::AXCoreObject&gt; &gt;, WebCore::AXObjectCache::AXNotification&gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
18  0x4a813cdb9 WebCore::AXObjectCache::notificationPostTimerFired()
19  0x4a816a487 decltype(*(std::__1::forward&lt;WebCore::AXObjectCache*&amp;&gt;(fp0)).*fp()) std::__1::__invoke&lt;void (WebCore::AXObjectCache::*&amp;)(), WebCore::AXObjectCache*&amp;, void&gt;(void (WebCore::AXObjectCache::*&amp;)(), WebCore::AXObjectCache*&amp;)
20  0x4a816a400 std::__1::__bind_return&lt;void (WebCore::AXObjectCache::*)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::AXObjectCache::*)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__apply_functor&lt;void (WebCore::AXObjectCache::*)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;, 0ul, std::__1::tuple&lt;&gt; &gt;(void (WebCore::AXObjectCache::*&amp;)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;&amp;, std::__1::__tuple_indices&lt;0ul&gt;, std::__1::tuple&lt;&gt;&amp;&amp;)
21  0x4a816a3b9 std::__1::__bind_return&lt;void (WebCore::AXObjectCache::*)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::AXObjectCache::*)(), std::__1::tuple&lt;WebCore::AXObjectCache*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__bind&lt;void (WebCore::AXObjectCache::*&amp;)(), WebCore::AXObjectCache*&gt;::operator()&lt;&gt;()
22  0x4a816a35e WTF::Detail::CallableWrapper&lt;std::__1::__bind&lt;void (WebCore::AXObjectCache::*&amp;)(), WebCore::AXObjectCache*&gt;, void&gt;::call()
23  0x4a5c99632 WTF::Function&lt;void ()&gt;::operator()() const
24  0x4a5cceafe WebCore::Timer::fired()
25  0x4a98715d4 WebCore::ThreadTimers::sharedTimerFiredInternal()
26  0x4a98790d1 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
27  0x4a987907e WTF::Detail::CallableWrapper&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void&gt;::call()
28  0x4a5c99632 WTF::Function&lt;void ()&gt;::operator()() const
29  0x4a9836fab WebCore::MainThreadSharedTimer::fired()
30  0x4a98d4626 WebCore::timerFired(__CFRunLoopTimer*, void*)
31  0x7fff2902d2eb __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
2020-08-24 21:26:51.275 MiniBrowser[58230:1154106] WebContent process crashed; reloading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682555</commentid>
    <comment_count>3</comment_count>
      <attachid>407165</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-24 20:02:04 -0700</bug_when>
    <thetext>Created attachment 407165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682558</commentid>
    <comment_count>4</comment_count>
      <attachid>407165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 20:10:37 -0700</bug_when>
    <thetext>Comment on attachment 407165
Patch

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

Changes here seem good, but the mix of the real fix and name changes makes this hard to review. Maybe separate out the name changes into a patch that has no behavior change?

&gt; Source/WebCore/accessibility/AccessibilityObject.h:76
&gt;  struct AccessibilityText {
&gt; -    String text;
&gt; -    AccessibilityTextSource textSource;
&gt; -    
&gt; -    AccessibilityText(const String&amp; t, const AccessibilityTextSource&amp; s)
&gt; -        : text(t)
&gt; -        , textSource(s)
&gt; +    String m_text;
&gt; +    AccessibilityTextSource m_source;
&gt; +
&gt; +    AccessibilityText(const String&amp; text, AccessibilityTextSource source)
&gt; +        : m_text(text)
&gt; +        , m_source(source)
&gt;      { }
&gt;  };

These name changes are not a good idea.

Generally, public data members do not have &quot;m_&quot; prefixes. That’s why these didn’t have them.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:490
&gt; +            std::for_each(change.m_properties.begin(), change.m_properties.end(), [&amp;object] (auto&amp;&amp; property) {
&gt; +                object-&gt;setProperty(property.key, WTFMove(property.value));
&gt; +            });

Why use for_each here instead of a range-based for loop?

    for (auto&amp; property : change.m_properties)
        object-&gt;setProperty(property.key, WTFMove(property.value));

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:315
&gt; +    AXID m_axID { InvalidAXID }; // ID of the object whose properties changed.
&gt; +    AXPropertyMap m_properties; // Changed properties.

These should have structure-style names, without the &quot;m_&quot; prefix. We use the &quot;m_&quot; prefix for private or protected data members of classes, not for structure members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682678</commentid>
    <comment_count>5</comment_count>
      <attachid>407199</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-25 09:44:59 -0700</bug_when>
    <thetext>Created attachment 407199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682681</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-25 09:50:38 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 407165 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407165&amp;action=review
&gt; 
&gt; Changes here seem good, but the mix of the real fix and name changes makes
&gt; this hard to review. Maybe separate out the name changes into a patch that
&gt; has no behavior change?

Done, the patch now contains only the changes related to the crash fix, code cleanup and renaming will be separate.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:76
&gt; &gt;  struct AccessibilityText {
&gt; &gt; -    String text;
&gt; &gt; -    AccessibilityTextSource textSource;
&gt; &gt; -    
&gt; &gt; -    AccessibilityText(const String&amp; t, const AccessibilityTextSource&amp; s)
&gt; &gt; -        : text(t)
&gt; &gt; -        , textSource(s)
&gt; &gt; +    String m_text;
&gt; &gt; +    AccessibilityTextSource m_source;
&gt; &gt; +
&gt; &gt; +    AccessibilityText(const String&amp; text, AccessibilityTextSource source)
&gt; &gt; +        : m_text(text)
&gt; &gt; +        , m_source(source)
&gt; &gt;      { }
&gt; &gt;  };
&gt; 
&gt; These name changes are not a good idea.
&gt; 
&gt; Generally, public data members do not have &quot;m_&quot; prefixes. That’s why these
&gt; didn’t have them.


Reverted, for some reason I had engraved on my mind that we use m_ for struct members as well. Will correct NodeChange structure that I had submitted before to also remove m_ prefixes.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:490
&gt; &gt; +            std::for_each(change.m_properties.begin(), change.m_properties.end(), [&amp;object] (auto&amp;&amp; property) {
&gt; &gt; +                object-&gt;setProperty(property.key, WTFMove(property.value));
&gt; &gt; +            });
&gt; 
&gt; Why use for_each here instead of a range-based for loop?
&gt; 
&gt;     for (auto&amp; property : change.m_properties)
&gt;         object-&gt;setProperty(property.key, WTFMove(property.value));

Fixed. Wasn&apos;t sure that the map could be iterated like that.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:315
&gt; &gt; +    AXID m_axID { InvalidAXID }; // ID of the object whose properties changed.
&gt; &gt; +    AXPropertyMap m_properties; // Changed properties.
&gt; 
&gt; These should have structure-style names, without the &quot;m_&quot; prefix. We use the
&gt; &quot;m_&quot; prefix for private or protected data members of classes, not for
&gt; structure members.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682694</commentid>
    <comment_count>7</comment_count>
      <attachid>407165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-25 10:23:54 -0700</bug_when>
    <thetext>Comment on attachment 407165
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:82
&gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(IOS_FAMILY)

I think #if PLATFORM(MAC) is a better way to write this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682695</commentid>
    <comment_count>8</comment_count>
      <attachid>407199</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-25 10:26:09 -0700</bug_when>
    <thetext>Comment on attachment 407199
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:49
&gt; +    None = 0,

Do we really need a None value? What is it used for?

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:82
&gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(IOS_FAMILY)

I suggest #if PLATFORM(MAC) for greater clarity.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:310
&gt; +typedef std::pair&lt;AXID, AXID&gt; AccessibilityIsolatedTreeMathMultiscriptPair;

New code should use &quot;using&quot; instead of &quot;typedef&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682725</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-25 11:47:03 -0700</bug_when>
    <thetext>Committed r266136: &lt;https://trac.webkit.org/changeset/266136&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407199.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682726</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-25 11:48:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/67750039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407165</attachid>
            <date>2020-08-24 20:02:04 -0700</date>
            <delta_ts>2020-08-25 09:44:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215790-20200824230203.patch</filename>
            <type>text/plain</type>
            <size>45472</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U0OGQ1ZTEwODMxY2Jh
NTVjZWFhZWE3MDE5NTQxNzJiYzVkMmVlMi4uNDQ5Yzc2YWFlZTAzYjZmZmI4NTdjNjMzNjM1MGU1
MDUzNTZiNjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDIwLTA4LTI0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBpbiBX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGluIGlz
b2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNTc5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgY3Jhc2ggaXMgaGFwcGVuaW5nIGluIGlzb2xhdGVkIHRyZWUgbW9kZSBi
ZWNhdXNlIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhCisgICAgICAg
IGlzIGNhY2hpbmcgYWxsIHByb3BlcnRpZXMgb2YgdGhlIG9iamVjdCBvbiBhIGNoZWNrZWQgc3Rh
dGUgY2hhbmdlZCBub3RpZmljYXRpb24uCisgICAgICAgIEluIHNvbWUgY2FzZXMgbGlrZSB0aGUg
d2ViIHBhZ2UgaW4gdGhlIGJ1ZyByZXBvcnQsIG5vdCBhbGwgcHJvcGVydGllcworICAgICAgICBj
YW4gYmUgY29tcHV0ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbiBoYW5kbGVyLiBJbiBwYXJ0aWN1bGFy
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQKKyAgICAgICAgZG9l
cyB0aGUgZm9sbG93aW5nIGNoZWNrczoKKworICAgICAgICAgICAgLy8gUmVuZGVycyByZWZlcmVu
Y2VkIGJ5IGFjY2Vzc2liaWxpdHkgb2JqZWN0cyBjb3VsZCBnZXQgZGVzdHJveWVkLCBpZiBUZXh0
SXRlcmF0b3IgZW5kcyB1cCB0cmlnZ2VyaW5nCisgICAgICAgICAgICAvLyBzdHlsZSB1cGRhdGUv
bGF5b3V0IGhlcmUuIFNlZSBhbHNvIEFYT2JqZWN0Q2FjaGU6OmRlZmVyVGV4dENoYW5nZWRJZk5l
ZWRlZCgpLgorICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5v
ZGVEb2N1bWVudC0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpOworICAgICAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGVEb2N1bWVudC0+dmlldygpLT5sYXlvdXRD
b250ZXh0KCkuaXNJblJlbmRlclRyZWVMYXlvdXQoKSk7CisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRyZXNzZXMgdGhpcyBwcm9ibGVtIGJ5IG9ubHkgdXBkYXRpbmcgdGhlIGNoZWNrZWQgc3RhdGUK
KyAgICAgICAgcHJvcGVydHkgb2YgdGhlIGlzb2xhdGVkIG9iamVjdCAsIGluc3RlYWQgb2YgYWxs
IHByb3BlcnRpZXMsIGluIHRoZQorICAgICAgICBjaGVja2VkIHN0YXRlIGNoYW5nZSBub3RpZmlj
YXRpb24uCisgICAgICAgIFRoaXMgaXMgYWxzbyBhIHBlcmZvcm1hbmNlIGVuaGFuY2VtZW50IHNp
bmNlIG9ubHkgdGhlIHByb3BlcnR5IHRoYXQKKyAgICAgICAgY2hhbmdlZCBpcyByZS1jYWxjdWxh
dGVkLiBUaGUgc2FtZSBhcHByb2FjaCB3aWxsIGJlIHVzZWQgZm9yIG90aGVyIHByb3BlcnRpZXMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKTogQ2hlY2tlZCBzdGF0
ZSBjaGFuZ2VkIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgdHJpZ2dlciBhbiB1cGRhdGUgb2YgdGhl
IGNvcnJlc3BvbmRpbmcgaXNvbGF0ZWQgb2JqZWN0J3MgY2hla2NlZCBzdGF0ZQorICAgICAgICBp
bnN0ZWFkIG9mIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBvYmplY3QuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDaGVja2VkIGNvbnN0KTogQ29kZSBjbGVhbnVwLgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1l
bnQgY29uc3QpOiBSZW5hbWVkIEFjY2Vzc2liaWxpdHlUZXh0CisgICAgICAgIG1lbWJlciB2YXJp
YWJsZXMgdG8gdXNlIG1fIHByZWZpeCB0byBmb2xsb3cgY29kaW5nIGNvbnZlbnRpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHQgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRMYWJlbCk6IERpdHRv
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRleHQ6OkFjY2Vzc2liaWxpdHlUZXh0KTogUmVuYW1l
ZCBtZW1iZXIgdmFyaWFibGVzCisgICAgICAgIHRvIHVzZSBtXyBwcmVmaXggdG8gZm9sbG93IGNv
ZGluZyBjb252ZW50aW9ucy4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6
OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKTogTm8gbmVlZCB0byBoYXZlIGEKKyAgICAgICAgQWNj
ZXNzaWJpbGl0eUlzb2xhdGVkVHJlZVRleHQgc3RydWN0LiBJbnN0ZWFkIHVzZSB0aGUgc2FtZSBB
Y2Nlc3NpYmlsaXR5VGV4dAorICAgICAgICBhbmQgaXNvbGF0ZWRDb3B5IHRoZSBTdHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRNYXRoc2NyaXB0cyk6IEFzIHRo
ZSBpc29sYXRlZCBvYmplY3QgcHJvcGVydHkKKyAgICAgICAgdmFyaWFudCBpcyBtb3ZlZCBvdXQg
b2YgdGhlIEFYSXNvbGF0ZWRPYmplY3QgY2xhc3MsIEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVN
YXRoTXVsdGlzY3JpcHRQYWlyCisgICAgICAgIGlzIHJlcGxhY2VkIGJ5IGl0cyBkZWZpbml0aW9u
cywgc2hvcnRlciBhbmQgY2xlYXJlci4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmpl
Y3Q6OnNldFByb3BlcnR5KTogQXR0cmlidXRlVmFsdWVWYXJpYW50IGlzIHJlbmFtZWQKKyAgICAg
ICAgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudC4gUmVtb3ZlZCBBU1NFUlQgc2luY2UgaXQgaXMgbm93
IGNhbGxlZCBpbiBhcHBseVBlbmRpbmdDaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eVRleHQgY29uc3QpOiBVc2UgQWNjZXNzaWJpbGl0eVRl
eHQKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgaXNvbGF0ZWQgdHJlZSBvbmUuCisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjppbnNlcnRNYXRoUGFpcnMpOiBVc2UgcGFpciBkZWZp
bml0aW9uCisgICAgICAgIGluc3RlYWQgb2YgYWxpYXMuCisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0OjptYXRoUHJlc2NyaXB0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6bWF0aFBvc3RzY3JpcHRzKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0OjppbnRQb2ludEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogUmVu
YW1lIG9mIG1fYXR0cmlidXRlTWFwLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVj
dDo6b2JqZWN0QXR0cmlidXRlVmFsdWUgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRPYmplY3Q6OnJlY3RBdHRyaWJ1dGVWYWx1ZSBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6dmVjdG9yQXR0cmlidXRlVmFsdWUgY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Om9wdGlvblNl
dEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkT2JqZWN0OjpwYWlyQXR0cmlidXRlVmFsdWUgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnVpbnQ2NEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojp1cmxBdHRyaWJ1dGVWYWx1
ZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cGF0
aEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkT2JqZWN0Ojpjb2xvckF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpmbG9hdEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpkb3VibGVBdHRyaWJ1dGVW
YWx1ZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6
dW5zaWduZWRBdHRyaWJ1dGVWYWx1ZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6Ym9vbEF0dHJpYnV0ZVZhbHVlIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZSBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW50QXR0cmli
dXRlVmFsdWUgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZU5vZGUpOiBSZW1vdmVkIHVubmVjZXNzYXJ5IHNjb3BlIG9wZXJhdG9yLgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVDaGVja2VkU3RhdGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFu
Z2VzKTogQWRkZWQgdXBkYXRpbmcgdGhlIHBlbmRpbmcKKyAgICAgICAgcHJvcGVydGllcyBvbiB0
aGUgc2Vjb25kYXJ5IHRocmVhZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oOiBNb3ZlZCB0byB0aGlzIGhlYWRlciB0aGUgZGVjbGFyYXRpb25z
CisgICAgICAgIHRoYXQgYXJlIG5vdyBzaGFyZWQgYnkgQVhJc29sYXRlZE9iamVjdCBhbmQgQVhJ
c29sYXRlZFRyZWUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9i
amVjdEJhc2UubW06IEFsbCBjaGFuZ2VzIGluIHRoaXMgZmlsZQorICAgICAgICBhcmUgdGhlIHJl
YW5hbWUgb2YgQWNjZXNzaWJpbGl0eXRleHQgbWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGl0bGVBdHRyaWJ1dGVWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoZWxwVGV4dEF0
dHJpYnV0ZVZhbHVlIGNvbnN0KToKKwogMjAyMC0wOC0yMSAgQW5kcmVzIEdvbnphbGV6ICA8YW5k
cmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgUmFuZ2U6OmNvbnRhaW5zIGRvZXMgbm90IHdv
cmsgY29ycmVjdGx5IHdoZW4gdGhlIGNvbW1vbiBhbmNlc3RvciBub2RlIGlzIGEgRG9jdW1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRl
eCA1NzlkMGQ4NzE2Yjc5MTIzYmFiMDM5ZmE0MDYyMGE0YWFlM2JiYjYxLi42MzhiYWYwYmM3OTg0
ZDk3OTliMjgyY2JiYWU4Y2ExNzYxMzZmY2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTMyMDAsNiArMzIwMCw4IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWE5v
dGlmaWNhdGlvbiBub3RpCiAKICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbikgewogICAgIGNhc2Ug
QVhDaGVja2VkU3RhdGVDaGFuZ2VkOgorICAgICAgICB0cmVlLT51cGRhdGVOb2RlQ2hlY2tlZFN0
YXRlKG9iamVjdCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFu
Z2VkOgogICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6CiAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUo
b2JqZWN0KTsKQEAgLTMyNjAsNiArMzI2Miw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRl
SXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAK
ICAgICAgICAgc3dpdGNoIChub3RpZmljYXRpb24uc2Vjb25kKSB7CiAgICAgICAgIGNhc2UgQVhD
aGVja2VkU3RhdGVDaGFuZ2VkOgorICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZUNoZWNrZWRT
dGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDog
ewogICAgICAgICAgICAgYm9vbCBuZWVkc1VwZGF0ZSA9IGFwcGVuZElmTm90Q29udGFpbnNNYXRj
aGluZyhmaWx0ZXJlZE5vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlvbiwgWyZub3RpZmljYXRpb25d
IChjb25zdCBzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPiYg
bm90ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3ODE1MWJjODhhN2E1OGZhZWVlYWUwMGIyYWY3
NmJhOWE4ODg5YmZiLi45Y2RlM2VhNDNjNjhmYjRlNGIzMWE2NDBkNDNmZDQ2MzU2ZjhmMjVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcApAQCAtNjgzLDcgKzY4Myw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzQ2hlY2tlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1M
SW5wdXRFbGVtZW50Pigqbm9kZSkuc2hvdWxkQXBwZWFyQ2hlY2tlZCgpOwogCiAgICAgLy8gRWxz
ZSwgaWYgdGhpcyBpcyBhbiBBUklBIGNoZWNrYm94IG9yIHJhZGlvLCByZXNwZWN0IHRoZSBhcmlh
LWNoZWNrZWQgYXR0cmlidXRlCi0gICAgYm9vbCB2YWxpZFJvbGUgPSBmYWxzZTsKICAgICBzd2l0
Y2ggKGFyaWFSb2xlQXR0cmlidXRlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
YWRpb0J1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDoKQEAgLTY5
MSwxNCArNjkwLDEwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ2hlY2tlZCgp
IGNvbnN0CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlN3aXRjaDoKLSAgICAgICAgdmFsaWRSb2xlID0gdHJ1ZTsKLSAgICAgICAg
YnJlYWs7CisgICAgICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShnZXRB
dHRyaWJ1dGUoYXJpYV9jaGVja2VkQXR0ciksICJ0cnVlIik7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQotICAgIAotICAgIGlmICh2YWxpZFJvbGUgJiYgZXF1YWxMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoZ2V0QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLCAidHJ1ZSIp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTE4NTUs
OCArMTg1MCw4IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4gdGV4dE9yZGVyOwogICAgICAgICAgICAg
ZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q+KCpjaGlsZCkuYWx0ZXJuYXRpdmVUZXh0
KHRleHRPcmRlcik7Ci0gICAgICAgICAgICBpZiAodGV4dE9yZGVyLnNpemUoKSA+IDAgJiYgdGV4
dE9yZGVyWzBdLnRleHQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICBhcHBlbmROYW1lVG9T
dHJpbmdCdWlsZGVyKGJ1aWxkZXIsIHRleHRPcmRlclswXS50ZXh0KTsKKyAgICAgICAgICAgIGlm
ICh0ZXh0T3JkZXIuc2l6ZSgpID4gMCAmJiB0ZXh0T3JkZXJbMF0ubV90ZXh0Lmxlbmd0aCgpKSB7
CisgICAgICAgICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCB0ZXh0
T3JkZXJbMF0ubV90ZXh0KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtMTkzMyw4ICsxOTI4LDggQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojp0ZXh0KCkgY29uc3QKICAgICBpZiAoaXNBUklBU3RhdGljVGV4dCgpKSB7CiAg
ICAgICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4gdGV4dE9yZGVyOwogICAgICAgICBhbHRl
cm5hdGl2ZVRleHQodGV4dE9yZGVyKTsKLSAgICAgICAgaWYgKHRleHRPcmRlci5zaXplKCkgPiAw
ICYmIHRleHRPcmRlclswXS50ZXh0Lmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuIHRleHRP
cmRlclswXS50ZXh0OworICAgICAgICBpZiAodGV4dE9yZGVyLnNpemUoKSA+IDAgJiYgdGV4dE9y
ZGVyWzBdLm1fdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXh0T3JkZXJbMF0u
bV90ZXh0OwogICAgIH0KIAogICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXgg
Y2E1ZjIyMTMwNmM1OTdhZmQxZmJlMTM3MmE5ZGNhNjQzYzU4ODRkOC4uZjdlMTBhMzYzZjg3MmIw
NGViNWM2YmM4MWEyYjRkNmJkYjI0MWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkTGFiZWwoKQogICAgIFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VGV4dD4gdGV4dDsKICAgICBhY2Nlc3NpYmlsaXR5VGV4dCh0ZXh0KTsKICAg
ICBpZiAodGV4dC5zaXplKCkpCi0gICAgICAgIHJldHVybiB0ZXh0WzBdLnRleHQ7CisgICAgICAg
IHJldHVybiB0ZXh0WzBdLm1fdGV4dDsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5k
ZXggZWZmYjcyZTg2MTdhNWQ4NGEzNWFjYjBkMWYwZjY1ZjkzZGUzMGNiMC4uNTliZjJlMDQwMzlj
MTgyZjc3YzE4NzE0YTI2NTRkMjg1MjM2ODA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDEyICs2NiwxMiBAQCBj
bGFzcyBJbnRTaXplOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiAKIHN0cnVjdCBBY2Nlc3NpYmls
aXR5VGV4dCB7Ci0gICAgU3RyaW5nIHRleHQ7Ci0gICAgQWNjZXNzaWJpbGl0eVRleHRTb3VyY2Ug
dGV4dFNvdXJjZTsKLSAgICAKLSAgICBBY2Nlc3NpYmlsaXR5VGV4dChjb25zdCBTdHJpbmcmIHQs
IGNvbnN0IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlJiBzKQotICAgICAgICA6IHRleHQodCkKLSAg
ICAgICAgLCB0ZXh0U291cmNlKHMpCisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBBY2Nlc3NpYmls
aXR5VGV4dFNvdXJjZSBtX3NvdXJjZTsKKworICAgIEFjY2Vzc2liaWxpdHlUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgQWNjZXNzaWJpbGl0eVRleHRTb3VyY2Ugc291cmNlKQorICAgICAgICA6IG1f
dGV4dCh0ZXh0KQorICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICB7IH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYzBhYjRhMzBjNTVkYzQwYmI1ZjM2MWIyNjEy
ZjE0ZDViNTk1NzNkNy4uYWI1Njg1MGQxYWYwNDE4YjgxYjNlZjIxNjhlODEyY2FlYjM4OWU1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMyOCwxMiArMzI4LDEwIEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBv
YmplY3QsIGJvb2wgaXNSb290CiAKICAgICBWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+IHRleHRz
OwogICAgIG9iamVjdC5hY2Nlc3NpYmlsaXR5VGV4dCh0ZXh0cyk7Ci0gICAgVmVjdG9yPEFjY2Vz
c2liaWxpdHlJc29sYXRlZFRyZWVUZXh0PiBpc29sYXRlZFRleHRzOworICAgIFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4gaXNvbGF0ZWRUZXh0czsKICAgICBpc29sYXRlZFRleHRzLnJlc2VydmVD
YXBhY2l0eSh0ZXh0cy5zaXplKCkpOwogICAgIGZvciAoYXV0byB0ZXh0IDogdGV4dHMpIHsKLSAg
ICAgICAgQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZVRleHQgaXNvbGF0ZWRUZXh0OwotICAgICAg
ICBpc29sYXRlZFRleHQudGV4dCA9IHRleHQudGV4dDsKLSAgICAgICAgaXNvbGF0ZWRUZXh0LnRl
eHRTb3VyY2UgPSB0ZXh0LnRleHRTb3VyY2U7CisgICAgICAgIEFjY2Vzc2liaWxpdHlUZXh0IGlz
b2xhdGVkVGV4dCh0ZXh0Lm1fdGV4dC5pc29sYXRlZENvcHkoKSwgdGV4dC5tX3NvdXJjZSk7CiAg
ICAgICAgIGlzb2xhdGVkVGV4dHMudW5jaGVja2VkQXBwZW5kKGlzb2xhdGVkVGV4dCk7CiAgICAg
fQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBY2Nlc3NpYmlsaXR5VGV4dCwgaXNv
bGF0ZWRUZXh0cyk7CkBAIC00MTQsMTEgKzQxMiwxMSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6
OnNldE1hdGhzY3JpcHRzKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgQVhDb3JlT2JqZWN0
JgogICAgIHNpemVfdCBtYXRoU2l6ZSA9IHBhaXJzLnNpemUoKTsKICAgICBpZiAoIW1hdGhTaXpl
KQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNYXRoTXVsdGlzY3JpcHRQYWlyPiBpZFBhaXJzOworCisgICAgVmVjdG9yPHN0ZDo6cGFp
cjxBWElELCBBWElEPj4gaWRQYWlyczsKICAgICBpZFBhaXJzLnJlc2VydmVDYXBhY2l0eShtYXRo
U2l6ZSk7CiAgICAgZm9yIChhdXRvIG1hdGhQYWlyIDogcGFpcnMpIHsKLSAgICAgICAgQWNjZXNz
aWJpbGl0eUlzb2xhdGVkVHJlZU1hdGhNdWx0aXNjcmlwdFBhaXIgaWRQYWlyOworICAgICAgICBz
dGQ6OnBhaXI8QVhJRCwgQVhJRD4gaWRQYWlyOwogICAgICAgICBpZiAobWF0aFBhaXIuZmlyc3Qp
CiAgICAgICAgICAgICBpZFBhaXIuZmlyc3QgPSBtYXRoUGFpci5maXJzdC0+b2JqZWN0SUQoKTsK
ICAgICAgICAgaWYgKG1hdGhQYWlyLnNlY29uZCkKQEAgLTQ1MCwxNCArNDQ4LDEyIEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6c2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBjb25zCiAgICAgc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBjaGlsZElE
cyk7CiB9CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBBdHRyaWJ1dGVWYWx1ZVZhcmlhbnQmJiB2YWx1ZSwgYm9vbCBzaG91
bGRSZW1vdmUpCit2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFByb3BlcnR5KEFYUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudCYmIHZhbHVlLCBib29sIHNo
b3VsZFJlbW92ZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCiAgICAgaWYgKHNo
b3VsZFJlbW92ZSkKLSAgICAgICAgbV9hdHRyaWJ1dGVNYXAucmVtb3ZlKHByb3BlcnR5TmFtZSk7
CisgICAgICAgIG1fcHJvcGVydHlNYXAucmVtb3ZlKHByb3BlcnR5TmFtZSk7CiAgICAgZWxzZQot
ICAgICAgICBtX2F0dHJpYnV0ZU1hcC5zZXQocHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgICAg
IG1fcHJvcGVydHlNYXAuc2V0KHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIEFYSXNv
bGF0ZWRPYmplY3Q6OnNldFBhcmVudChBWElEIHBhcmVudCkKQEAgLTUyNiwxMSArNTIyLDkgQEAg
QVhDb3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2ln
bmVkIGNvbHVtbkluZGV4LCB1bnNpZ24KIAogdm9pZCBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3Np
YmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0cykgY29uc3QKIHsKLSAg
ICBhdXRvIGlzb2xhdGVkVGV4dHMgPSB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBY2Nlc3NpYmlsaXR5
SXNvbGF0ZWRUcmVlVGV4dD4oQVhQcm9wZXJ0eU5hbWU6OkFjY2Vzc2liaWxpdHlUZXh0KTsKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGlzb2xhdGVkVGV4dCA6IGlzb2xhdGVkVGV4dHMpIHsKLSAgICAg
ICAgQWNjZXNzaWJpbGl0eVRleHQgdGV4dChpc29sYXRlZFRleHQudGV4dCwgaXNvbGF0ZWRUZXh0
LnRleHRTb3VyY2UpOwotICAgICAgICB0ZXh0cy5hcHBlbmQodGV4dCk7Ci0gICAgfQorICAgIGF1
dG8gaXNvbGF0ZWRUZXh0cyA9IHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFjY2Vzc2liaWxpdHlUZXh0
PihBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eVRleHQpOworICAgIGZvciAoY29uc3QgYXV0
byYgaXNvbGF0ZWRUZXh0IDogaXNvbGF0ZWRUZXh0cykKKyAgICAgICAgdGV4dHMuYXBwZW5kKGlz
b2xhdGVkVGV4dCk7CiB9CiAKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0KFZlY3Rv
cjxTdHJpbmc+JiBsaXN0KSBjb25zdApAQCAtNTY3LDcgKzU2MSw3IEBAIFN0cmluZyBBWElzb2xh
dGVkT2JqZWN0Ojpkb2N1bWVudEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7
CiB9CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5zZXJ0TWF0aFBhaXJzKFZlY3RvcjxBY2Nl
c3NpYmlsaXR5SXNvbGF0ZWRUcmVlTWF0aE11bHRpc2NyaXB0UGFpcj4mIGlzb2xhdGVkUGFpcnMs
IEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQYWlycyYgcGFpcnMpCit2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6Omluc2VydE1hdGhQYWlycyhWZWN0b3I8c3RkOjpwYWlyPEFYSUQsIEFYSUQ+PiYg
aXNvbGF0ZWRQYWlycywgQWNjZXNzaWJpbGl0eU1hdGhNdWx0aXNjcmlwdFBhaXJzJiBwYWlycykK
IHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBpc29sYXRlZFBhaXJzKSB7CiAgICAgICAg
IEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQYWlyIHByZXNjcmlwdFBhaXI7CkBAIC01ODEs
MTMgKzU3NSwxMyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6Omluc2VydE1hdGhQYWlycyhWZWN0
b3I8QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1hdGhNdWx0aQogCiB2b2lkIEFYSXNvbGF0ZWRP
YmplY3Q6Om1hdGhQcmVzY3JpcHRzKEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQYWlycyYg
cGFpcnMpCiB7Ci0gICAgYXV0byBpc29sYXRlZFBhaXJzID0gdmVjdG9yQXR0cmlidXRlVmFsdWU8
QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1hdGhNdWx0aXNjcmlwdFBhaXI+KEFYUHJvcGVydHlO
YW1lOjpNYXRoUHJlc2NyaXB0cyk7CisgICAgYXV0byBpc29sYXRlZFBhaXJzID0gdmVjdG9yQXR0
cmlidXRlVmFsdWU8c3RkOjpwYWlyPEFYSUQsIEFYSUQ+PihBWFByb3BlcnR5TmFtZTo6TWF0aFBy
ZXNjcmlwdHMpOwogICAgIGluc2VydE1hdGhQYWlycyhpc29sYXRlZFBhaXJzLCBwYWlycyk7CiB9
CiAKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6bWF0aFBvc3RzY3JpcHRzKEFjY2Vzc2liaWxpdHlN
YXRoTXVsdGlzY3JpcHRQYWlycyYgcGFpcnMpCiB7Ci0gICAgYXV0byBpc29sYXRlZFBhaXJzID0g
dmVjdG9yQXR0cmlidXRlVmFsdWU8QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1hdGhNdWx0aXNj
cmlwdFBhaXI+KEFYUHJvcGVydHlOYW1lOjpNYXRoUG9zdHNjcmlwdHMpOworICAgIGF1dG8gaXNv
bGF0ZWRQYWlycyA9IHZlY3RvckF0dHJpYnV0ZVZhbHVlPHN0ZDo6cGFpcjxBWElELCBBWElEPj4o
QVhQcm9wZXJ0eU5hbWU6Ok1hdGhQb3N0c2NyaXB0cyk7CiAgICAgaW5zZXJ0TWF0aFBhaXJzKGlz
b2xhdGVkUGFpcnMsIHBhaXJzKTsKIH0KIApAQCAtNzI5LDcgKzcyMyw3IEBAIEFYQ29yZU9iamVj
dCogQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQm
IHBvaW50KSBjb25zCiAKIEludFBvaW50IEFYSXNvbGF0ZWRPYmplY3Q6OmludFBvaW50QXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjb25zdAogewotICAgIGF1dG8g
dmFsdWUgPSBtX2F0dHJpYnV0ZU1hcC5nZXQocHJvcGVydHlOYW1lKTsKKyAgICBhdXRvIHZhbHVl
ID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJvcGVydHlOYW1lKTsKICAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbih2YWx1ZSwKICAgICAgICAgW10gKEludFBvaW50JiB0eXBlZFZhbHVlKSB7IHJldHVybiB0
eXBlZFZhbHVlOyB9LAogICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJuIEludFBvaW50KCk7IH0K
QEAgLTczOCw3ICs3MzIsNyBAQCBJbnRQb2ludCBBWElzb2xhdGVkT2JqZWN0OjppbnRQb2ludEF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgYwogCiBBWENvcmVPYmpl
Y3QqIEFYSXNvbGF0ZWRPYmplY3Q6Om9iamVjdEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkgY29uc3QKIHsKLSAgICBhdXRvIHZhbHVlID0gbV9hdHRyaWJ1dGVNYXAu
Z2V0KHByb3BlcnR5TmFtZSk7CisgICAgYXV0byB2YWx1ZSA9IG1fcHJvcGVydHlNYXAuZ2V0KHBy
b3BlcnR5TmFtZSk7CiAgICAgQVhJRCBub2RlSUQgPSBXVEY6OnN3aXRjaE9uKHZhbHVlLAogICAg
ICAgICBbXSAoQVhJRCYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRWYWx1ZTsgfSwKICAgICAg
ICAgW10gKGF1dG8mKSB7IHJldHVybiBJbnZhbGlkQVhJRDsgfQpAQCAtNzUwLDcgKzc0NCw3IEBA
IEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6b2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogVCBBWElzb2xh
dGVkT2JqZWN0OjpyZWN0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KSBjb25zdAogewotICAgIGF1dG8gdmFsdWUgPSBtX2F0dHJpYnV0ZU1hcC5nZXQocHJvcGVydHlO
YW1lKTsKKyAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJvcGVydHlOYW1lKTsK
ICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbih2YWx1ZSwKICAgICAgICAgW10gKFQmIHR5cGVkVmFs
dWUpIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0sCiAgICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4g
VCB7IH07IH0KQEAgLTc2MCw3ICs3NTQsNyBAQCBUIEFYSXNvbGF0ZWRPYmplY3Q6OnJlY3RBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgogVmVjdG9yPFQ+IEFYSXNvbGF0ZWRPYmplY3Q6OnZlY3RvckF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKLSAgICBhdXRvIHZhbHVl
ID0gbV9hdHRyaWJ1dGVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CisgICAgYXV0byB2YWx1ZSA9IG1f
cHJvcGVydHlNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
dmFsdWUsCiAgICAgICAgIFtdIChWZWN0b3I8VD4mIHR5cGVkVmFsdWUpIHsgcmV0dXJuIHR5cGVk
VmFsdWU7IH0sCiAgICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4gVmVjdG9yPFQ+KCk7IH0KQEAg
LTc3MCw3ICs3NjQsNyBAQCBWZWN0b3I8VD4gQVhJc29sYXRlZE9iamVjdDo6dmVjdG9yQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjbwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIE9wdGlvblNldDxUPiBBWElzb2xhdGVkT2JqZWN0OjpvcHRpb25TZXRBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1
ZSA9IG1fYXR0cmlidXRlTWFwLmdldChwcm9wZXJ0eU5hbWUpOworICAgIGF1dG8gdmFsdWUgPSBt
X3Byb3BlcnR5TWFwLmdldChwcm9wZXJ0eU5hbWUpOwogICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KHZhbHVlLAogICAgICAgICBbXSAoVCYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRWYWx1ZTsg
fSwKICAgICAgICAgW10gKGF1dG8mKSB7IHJldHVybiBPcHRpb25TZXQ8VD4oKTsgfQpAQCAtNzgw
LDcgKzc3NCw3IEBAIE9wdGlvblNldDxUPiBBWElzb2xhdGVkT2JqZWN0OjpvcHRpb25TZXRBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgogc3RkOjpwYWlyPFQsIFQ+IEFYSXNvbGF0ZWRPYmplY3Q6OnBhaXJBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1ZSA9IG1f
YXR0cmlidXRlTWFwLmdldChwcm9wZXJ0eU5hbWUpOworICAgIGF1dG8gdmFsdWUgPSBtX3Byb3Bl
cnR5TWFwLmdldChwcm9wZXJ0eU5hbWUpOwogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKHZhbHVl
LAogICAgICAgICBbXSAoc3RkOjpwYWlyPFQsIFQ+JiB0eXBlZFZhbHVlKSB7IHJldHVybiB0eXBl
ZFZhbHVlOyB9LAogICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJuIHN0ZDo6cGFpcjxULCBUPigw
LCAxKTsgfQpAQCAtNzg5LDcgKzc4Myw3IEBAIHN0ZDo6cGFpcjxULCBUPiBBWElzb2xhdGVkT2Jq
ZWN0OjpwYWlyQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAKIHVp
bnQ2NF90IEFYSXNvbGF0ZWRPYmplY3Q6OnVpbnQ2NEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKLSAgICBhdXRvIHZhbHVlID0gbV9hdHRyaWJ1dGVN
YXAuZ2V0KHByb3BlcnR5TmFtZSk7CisgICAgYXV0byB2YWx1ZSA9IG1fcHJvcGVydHlNYXAuZ2V0
KHByb3BlcnR5TmFtZSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24odmFsdWUsCiAgICAgICAg
IFtdICh1aW50NjRfdCYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRWYWx1ZTsgfSwKICAgICAg
ICAgW10gKGF1dG8mKSB7IHJldHVybiAwOyB9CkBAIC03OTgsNyArNzkyLDcgQEAgdWludDY0X3Qg
QVhJc29sYXRlZE9iamVjdDo6dWludDY0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKSBjb24KIAogVVJMIEFYSXNvbGF0ZWRPYmplY3Q6OnVybEF0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKLSAgICBhdXRvIHZhbHVlID0g
bV9hdHRyaWJ1dGVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CisgICAgYXV0byB2YWx1ZSA9IG1fcHJv
cGVydHlNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24odmFs
dWUsCiAgICAgICAgIFtdIChVUkwmIHR5cGVkVmFsdWUpIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0s
CiAgICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4gVVJMKCk7IH0KQEAgLTgwNyw3ICs4MDEsNyBA
QCBVUkwgQVhJc29sYXRlZE9iamVjdDo6dXJsQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKSBjb25zdAogCiBQYXRoIEFYSXNvbGF0ZWRPYmplY3Q6OnBhdGhBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAgYXV0byB2
YWx1ZSA9IG1fYXR0cmlidXRlTWFwLmdldChwcm9wZXJ0eU5hbWUpOworICAgIGF1dG8gdmFsdWUg
PSBtX3Byb3BlcnR5TWFwLmdldChwcm9wZXJ0eU5hbWUpOwogICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKHZhbHVlLAogICAgICAgICBbXSAoUGF0aCYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRW
YWx1ZTsgfSwKICAgICAgICAgW10gKGF1dG8mKSB7IHJldHVybiBQYXRoKCk7IH0KQEAgLTgxNiw3
ICs4MTAsNyBAQCBQYXRoIEFYSXNvbGF0ZWRPYmplY3Q6OnBhdGhBdHRyaWJ1dGVWYWx1ZShBWFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiAKIENvbG9yIEFYSXNvbGF0ZWRPYmplY3Q6
OmNvbG9yQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjb25zdAog
ewotICAgIGF1dG8gdmFsdWUgPSBtX2F0dHJpYnV0ZU1hcC5nZXQocHJvcGVydHlOYW1lKTsKKyAg
ICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJvcGVydHlOYW1lKTsKICAgICByZXR1
cm4gV1RGOjpzd2l0Y2hPbih2YWx1ZSwKICAgICAgICAgW10gKENvbG9yJiB0eXBlZFZhbHVlKSB7
IHJldHVybiB0eXBlZFZhbHVlOyB9LAogICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJuIENvbG9y
KCk7IH0KQEAgLTgyNSw3ICs4MTksNyBAQCBDb2xvciBBWElzb2xhdGVkT2JqZWN0Ojpjb2xvckF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIAogZmxvYXQg
QVhJc29sYXRlZE9iamVjdDo6ZmxvYXRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1ZSA9IG1fYXR0cmlidXRlTWFwLmdldChw
cm9wZXJ0eU5hbWUpOworICAgIGF1dG8gdmFsdWUgPSBtX3Byb3BlcnR5TWFwLmdldChwcm9wZXJ0
eU5hbWUpOwogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKHZhbHVlLAogICAgICAgICBbXSAoZmxv
YXQmIHR5cGVkVmFsdWUpIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0sCiAgICAgICAgIFtdIChhdXRv
JikgeyByZXR1cm4gMDsgfQpAQCAtODM0LDcgKzgyOCw3IEBAIGZsb2F0IEFYSXNvbGF0ZWRPYmpl
Y3Q6OmZsb2F0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjb25z
dAogCiBkb3VibGUgQVhJc29sYXRlZE9iamVjdDo6ZG91YmxlQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjb25zdAogewotICAgIGF1dG8gdmFsdWUgPSBtX2F0dHJp
YnV0ZU1hcC5nZXQocHJvcGVydHlOYW1lKTsKKyAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1h
cC5nZXQocHJvcGVydHlOYW1lKTsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbih2YWx1ZSwKICAg
ICAgICAgW10gKGRvdWJsZSYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRWYWx1ZTsgfSwKICAg
ICAgICAgW10gKGF1dG8mKSB7IHJldHVybiAwOyB9CkBAIC04NDMsNyArODM3LDcgQEAgZG91Ymxl
IEFYSXNvbGF0ZWRPYmplY3Q6OmRvdWJsZUF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkgY29uc3QKIAogdW5zaWduZWQgQVhJc29sYXRlZE9iamVjdDo6dW5zaWduZWRB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAg
YXV0byB2YWx1ZSA9IG1fYXR0cmlidXRlTWFwLmdldChwcm9wZXJ0eU5hbWUpOworICAgIGF1dG8g
dmFsdWUgPSBtX3Byb3BlcnR5TWFwLmdldChwcm9wZXJ0eU5hbWUpOwogICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKHZhbHVlLAogICAgICAgICBbXSAodW5zaWduZWQmIHR5cGVkVmFsdWUpIHsgcmV0
dXJuIHR5cGVkVmFsdWU7IH0sCiAgICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4gMDsgfQpAQCAt
ODUyLDcgKzg0Niw3IEBAIHVuc2lnbmVkIEFYSXNvbGF0ZWRPYmplY3Q6OnVuc2lnbmVkQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjCiAKIGJvb2wgQVhJc29sYXRl
ZE9iamVjdDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkg
Y29uc3QKIHsKLSAgICBhdXRvIHZhbHVlID0gbV9hdHRyaWJ1dGVNYXAuZ2V0KHByb3BlcnR5TmFt
ZSk7CisgICAgYXV0byB2YWx1ZSA9IG1fcHJvcGVydHlNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CiAg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24odmFsdWUsCiAgICAgICAgIFtdIChib29sJiB0eXBlZFZh
bHVlKSB7IHJldHVybiB0eXBlZFZhbHVlOyB9LAogICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJu
IGZhbHNlOyB9CkBAIC04NjEsNyArODU1LDcgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojpib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSBjb25zdAogCiBTdHJp
bmcgQVhJc29sYXRlZE9iamVjdDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKSBjb25zdAogewotICAgIGF1dG8gdmFsdWUgPSBtX2F0dHJpYnV0ZU1hcC5n
ZXQocHJvcGVydHlOYW1lKTsKKyAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJv
cGVydHlOYW1lKTsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbih2YWx1ZSwKICAgICAgICAgW10g
KFN0cmluZyYgdHlwZWRWYWx1ZSkgeyByZXR1cm4gdHlwZWRWYWx1ZTsgfSwKICAgICAgICAgW10g
KGF1dG8mKSB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CkBAIC04NzAsNyArODY0LDcgQEAgU3Ry
aW5nIEFYSXNvbGF0ZWRPYmplY3Q6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkgY29uc3QKIAogaW50IEFYSXNvbGF0ZWRPYmplY3Q6OmludEF0dHJpYnV0
ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKLSAgICBhdXRvIHZh
bHVlID0gbV9hdHRyaWJ1dGVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CisgICAgYXV0byB2YWx1ZSA9
IG1fcHJvcGVydHlNYXAuZ2V0KHByb3BlcnR5TmFtZSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNo
T24odmFsdWUsCiAgICAgICAgIFtdIChpbnQmIHR5cGVkVmFsdWUpIHsgcmV0dXJuIHR5cGVkVmFs
dWU7IH0sCiAgICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5oCmluZGV4IDRkNjFjOTAyZGI0NWM2ZGNkOGNmN2FmZTI0Y2Y5ODk4ZjVlM2MwZGEuLmE2
ZjYyYjZiMjJlNWE3MTJhY2YyN2FkNGEyZDU3ZTU2MTI4ODdmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmgKQEAgLTg3LDI3NiArODcsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9p
ZCAhPSBJbnZhbGlkQVhJRCA/IGF4T2JqZWN0Q2FjaGUoKS0+b2JqZWN0RnJvbUFYSUQobV9pZCkg
OiBudWxscHRyOwogICAgIH0KIAotICAgIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50
MTZfdCB7Ci0gICAgICAgIE5vbmUgPSAwLAotICAgICAgICBBUklBQ29udHJvbHNFbGVtZW50cywK
LSAgICAgICAgQVJJQURldGFpbHNFbGVtZW50cywKLSAgICAgICAgRHJvcEVmZmVjdHMsCi0gICAg
ICAgIEFSSUFFcnJvck1lc3NhZ2VFbGVtZW50cywKLSAgICAgICAgQVJJQUlzTXVsdGlsaW5lLAot
ICAgICAgICBBUklBRmxvd1RvRWxlbWVudHMsCi0gICAgICAgIEFSSUFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbiwKLSAgICAgICAgQVJJQVRyZWVJdGVtQ29udGVudCwKLSAgICAgICAgQVJJQVRyZWVS
b3dzLAotICAgICAgICBBUklBUm9sZUF0dHJpYnV0ZSwKLSAgICAgICAgQVJJQU93bnNFbGVtZW50
cywKLSAgICAgICAgQVhDb2x1bW5Db3VudCwKLSAgICAgICAgQVhDb2x1bW5JbmRleCwKLSAgICAg
ICAgQVhSb3dDb3VudCwKLSAgICAgICAgQVhSb3dJbmRleCwKLSAgICAgICAgQWNjZXNzS2V5LAot
ICAgICAgICBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGUsCi0gICAgICAgIEFjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbiwKLSAgICAgICAgQWNjZXNzaWJpbGl0eVRleHQsCi0gICAgICAgIEFjdGlvblZl
cmIsCi0gICAgICAgIEF1dG9Db21wbGV0ZVZhbHVlLAotICAgICAgICBCbG9ja3F1b3RlTGV2ZWws
Ci0gICAgICAgIEJvdW5kaW5nQm94UmVjdCwKLSAgICAgICAgQ2FuSGF2ZVNlbGVjdGVkQ2hpbGRy
ZW4sCi0gICAgICAgIENhblNldEV4cGFuZGVkQXR0cmlidXRlLAotICAgICAgICBDYW5TZXRGb2N1
c0F0dHJpYnV0ZSwKLSAgICAgICAgQ2FuU2V0TnVtZXJpY1ZhbHVlLAotICAgICAgICBDYW5TZXRT
ZWxlY3RlZEF0dHJpYnV0ZSwKLSAgICAgICAgQ2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0
ZSwKLSAgICAgICAgQ2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcywKLSAgICAgICAgQ2FuU2V0VmFs
dWVBdHRyaWJ1dGUsCi0gICAgICAgIENhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCwKLSNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIENhcmV0QnJvd3Np
bmdFbmFibGVkLAotI2VuZGlmCi0gICAgICAgIENlbGxzLAotICAgICAgICBDbGFzc0xpc3QsCi0g
ICAgICAgIENsaWNrUG9pbnQsCi0gICAgICAgIENvbG9yVmFsdWUsCi0gICAgICAgIENvbHVtbnMs
Ci0gICAgICAgIENvbHVtbkNvdW50LAotICAgICAgICBDb2x1bW5IZWFkZXIsCi0gICAgICAgIENv
bHVtbkhlYWRlcnMsCi0gICAgICAgIENvbHVtbkluZGV4LAotICAgICAgICBDb2x1bW5JbmRleFJh
bmdlLAotICAgICAgICBDb21wdXRlZExhYmVsLAotICAgICAgICBDb21wdXRlZFJvbGVTdHJpbmcs
Ci0gICAgICAgIEN1cnJlbnRTdGF0ZSwKLSAgICAgICAgQ3VycmVudFZhbHVlLAotICAgICAgICBE
YXRldGltZUF0dHJpYnV0ZVZhbHVlLAotICAgICAgICBEZWNyZW1lbnRCdXR0b24sCi0gICAgICAg
IERlc2NyaXB0aW9uLAotICAgICAgICBEaXNjbG9zZWRCeVJvdywKLSAgICAgICAgRGlzY2xvc2Vk
Um93cywKLSAgICAgICAgRG9jdW1lbnRFbmNvZGluZywKLSAgICAgICAgRG9jdW1lbnRMaW5rcywK
LSAgICAgICAgRG9jdW1lbnRVUkksCi0gICAgICAgIEVkaXRhYmxlQW5jZXN0b3IsCi0gICAgICAg
IEVsZW1lbnRSZWN0LAotICAgICAgICBFc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MsCi0gICAgICAg
IEV4cGFuZGVkVGV4dFZhbHVlLAotICAgICAgICBFeHBvc2VzVGl0bGVVSUVsZW1lbnQsCi0gICAg
ICAgIEZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxlLAotICAgICAgICBGb2N1c2Fi
bGVBbmNlc3RvciwKLSAgICAgICAgSGFzQVJJQVZhbHVlTm93LAotICAgICAgICBIYXNBcHBsZVBE
RkFubm90YXRpb25BdHRyaWJ1dGUsCi0gICAgICAgIEhhc0JvbGRGb250LAotICAgICAgICBIYXND
aGlsZHJlbiwKLSAgICAgICAgSGFzSGlnaGxpZ2h0aW5nLAotICAgICAgICBIYXNJdGFsaWNGb250
LAotICAgICAgICBIYXNQbGFpblRleHQsCi0gICAgICAgIEhhc1BvcHVwLAotICAgICAgICBIYXNV
bmRlcmxpbmUsCi0gICAgICAgIEhlYWRlckNvbnRhaW5lciwKLSAgICAgICAgSGVhZGluZ0xldmVs
LAotICAgICAgICBIZWxwVGV4dCwKLSAgICAgICAgSGllcmFyY2hpY2FsTGV2ZWwsCi0gICAgICAg
IEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yLAotICAgICAgICBIb3Jpem9udGFsU2Nyb2xsQmFyLAot
ICAgICAgICBJZGVudGlmaWVyQXR0cmlidXRlLAotICAgICAgICBJbnZhbGlkU3RhdHVzLAotICAg
ICAgICBJbmNyZW1lbnRCdXR0b24sCi0gICAgICAgIElzQWNjZXNzaWJpbGl0eUlnbm9yZWQsCi0g
ICAgICAgIElzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lciwKLSAgICAgICAgSXNB
bm9ueW1vdXNNYXRoT3BlcmF0b3IsCi0gICAgICAgIElzR3JhYmJlZCwKLSAgICAgICAgSXNBUklB
VHJlZUdyaWRSb3csCi0gICAgICAgIElzQXR0YWNobWVudCwKLSAgICAgICAgSXNCdXR0b24sCi0g
ICAgICAgIElzQnVzeSwKLSAgICAgICAgSXNDaGVja2VkLAotICAgICAgICBJc0NvbGxhcHNlZCwK
LSAgICAgICAgSXNDb2x1bW5IZWFkZXJDZWxsLAotICAgICAgICBJc0NvbnRyb2wsCi0gICAgICAg
IElzRGF0YVRhYmxlLAotICAgICAgICBJc0Rlc2NyaXB0aW9uTGlzdCwKLSAgICAgICAgSXNFbmFi
bGVkLAotICAgICAgICBJc0V4cGFuZGVkLAotICAgICAgICBJc0V4cG9zYWJsZSwKLSAgICAgICAg
SXNGaWVsZHNldCwKLSAgICAgICAgSXNGaWxlVXBsb2FkQnV0dG9uLAotICAgICAgICBJc0ZvY3Vz
ZWQsCi0gICAgICAgIElzR3JvdXAsCi0gICAgICAgIElzSW1hZ2VNYXBMaW5rLAotICAgICAgICBJ
c0luY3JlbWVudG9yLAotICAgICAgICBJc0luZGV0ZXJtaW5hdGUsCi0gICAgICAgIElzSW5saW5l
VGV4dCwKLSAgICAgICAgSXNJbnB1dEltYWdlLAotICAgICAgICBJc0luc2lkZUxpdmVSZWdpb24s
Ci0gICAgICAgIElzSGVhZGluZywKLSAgICAgICAgSXNIb3ZlcmVkLAotICAgICAgICBJc0tleWJv
YXJkRm9jdXNhYmxlLAotICAgICAgICBJc0xhbmRtYXJrLAotICAgICAgICBJc0xpbmssCi0gICAg
ICAgIElzTGlua2VkLAotICAgICAgICBJc0xpc3QsCi0gICAgICAgIElzTGlzdEJveCwKLSAgICAg
ICAgSXNMb2FkZWQsCi0gICAgICAgIElzTWF0aEVsZW1lbnQsCi0gICAgICAgIElzTWF0aEZyYWN0
aW9uLAotICAgICAgICBJc01hdGhGZW5jZWQsCi0gICAgICAgIElzTWF0aFN1YnNjcmlwdFN1cGVy
c2NyaXB0LAotICAgICAgICBJc01hdGhSb3csCi0gICAgICAgIElzTWF0aFVuZGVyT3ZlciwKLSAg
ICAgICAgSXNNYXRoUm9vdCwKLSAgICAgICAgSXNNYXRoU3F1YXJlUm9vdCwKLSAgICAgICAgSXNN
YXRoVGV4dCwKLSAgICAgICAgSXNNYXRoTnVtYmVyLAotICAgICAgICBJc01hdGhPcGVyYXRvciwK
LSAgICAgICAgSXNNYXRoRmVuY2VPcGVyYXRvciwKLSAgICAgICAgSXNNYXRoU2VwYXJhdG9yT3Bl
cmF0b3IsCi0gICAgICAgIElzTWF0aElkZW50aWZpZXIsCi0gICAgICAgIElzTWF0aFRhYmxlLAot
ICAgICAgICBJc01hdGhUYWJsZVJvdywKLSAgICAgICAgSXNNYXRoVGFibGVDZWxsLAotICAgICAg
ICBJc01hdGhNdWx0aXNjcmlwdCwKLSAgICAgICAgSXNNYXRoVG9rZW4sCi0gICAgICAgIElzTWF0
aFNjcmlwdE9iamVjdCwKLSAgICAgICAgSXNNZWRpYVRpbWVsaW5lLAotICAgICAgICBJc01lbnUs
Ci0gICAgICAgIElzTWVudUJhciwKLSAgICAgICAgSXNNZW51QnV0dG9uLAotICAgICAgICBJc01l
bnVJdGVtLAotICAgICAgICBJc01lbnVMaXN0LAotICAgICAgICBJc01lbnVMaXN0T3B0aW9uLAot
ICAgICAgICBJc01lbnVMaXN0UG9wdXAsCi0gICAgICAgIElzTWVudVJlbGF0ZWQsCi0gICAgICAg
IElzTWV0ZXIsCi0gICAgICAgIElzTXVsdGlTZWxlY3RhYmxlLAotICAgICAgICBJc09yZGVyZWRM
aXN0LAotICAgICAgICBJc091dHB1dCwKLSAgICAgICAgSXNQYXNzd29yZEZpZWxkLAotICAgICAg
ICBJc1ByZXNzZWQsCi0gICAgICAgIElzUHJvZ3Jlc3NJbmRpY2F0b3IsCi0gICAgICAgIElzUmFu
Z2VDb250cm9sLAotICAgICAgICBJc1JlcXVpcmVkLAotICAgICAgICBJc1Jvd0hlYWRlckNlbGws
Ci0gICAgICAgIElzU2Nyb2xsYmFyLAotICAgICAgICBJc1NlYXJjaEZpZWxkLAotICAgICAgICBJ
c1NlbGVjdGVkLAotICAgICAgICBJc1NlbGVjdGVkT3B0aW9uQWN0aXZlLAotICAgICAgICBJc1No
b3dpbmdWYWxpZGF0aW9uTWVzc2FnZSwKLSAgICAgICAgSXNTbGlkZXIsCi0gICAgICAgIElzU3R5
bGVGb3JtYXRHcm91cCwKLSAgICAgICAgSXNUYWJsZSwKLSAgICAgICAgSXNUYWJsZUNlbGwsCi0g
ICAgICAgIElzVGFibGVDb2x1bW4sCi0gICAgICAgIElzVGFibGVSb3csCi0gICAgICAgIElzVGV4
dENvbnRyb2wsCi0gICAgICAgIElzVHJlZSwKLSAgICAgICAgSXNUcmVlSXRlbSwKLSAgICAgICAg
SXNVbm9yZGVyZWRMaXN0LAotICAgICAgICBJc1VudmlzaXRlZCwKLSAgICAgICAgSXNWYWx1ZUF1
dG9maWxsZWQsCi0gICAgICAgIElzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSwKLSAgICAgICAgSXNW
aXNpYmxlLAotICAgICAgICBJc1Zpc2l0ZWQsCi0gICAgICAgIEtleVNob3J0Y3V0c1ZhbHVlLAot
ICAgICAgICBMYW5ndWFnZSwKLSAgICAgICAgTGF5b3V0Q291bnQsCi0gICAgICAgIExpbmtSZWxW
YWx1ZSwKLSAgICAgICAgTGlua2VkVUlFbGVtZW50cywKLSAgICAgICAgTGl2ZVJlZ2lvbkF0b21p
YywKLSAgICAgICAgTGl2ZVJlZ2lvblJlbGV2YW50LAotICAgICAgICBMaXZlUmVnaW9uU3RhdHVz
LAotICAgICAgICBNYXRoRmVuY2VkT3BlblN0cmluZywKLSAgICAgICAgTWF0aEZlbmNlZENsb3Nl
U3RyaW5nLAotICAgICAgICBNYXRoTGluZVRoaWNrbmVzcywKLSAgICAgICAgTWF0aFByZXNjcmlw
dHMsCi0gICAgICAgIE1hdGhQb3N0c2NyaXB0cywKLSAgICAgICAgTWF0aFJhZGljYW5kT2JqZWN0
LAotICAgICAgICBNYXRoUm9vdEluZGV4T2JqZWN0LAotICAgICAgICBNYXRoVW5kZXJPYmplY3Qs
Ci0gICAgICAgIE1hdGhPdmVyT2JqZWN0LAotICAgICAgICBNYXRoTnVtZXJhdG9yT2JqZWN0LAot
ICAgICAgICBNYXRoRGVub21pbmF0b3JPYmplY3QsCi0gICAgICAgIE1hdGhCYXNlT2JqZWN0LAot
ICAgICAgICBNYXRoU3Vic2NyaXB0T2JqZWN0LAotICAgICAgICBNYXRoU3VwZXJzY3JpcHRPYmpl
Y3QsCi0gICAgICAgIE1heFZhbHVlRm9yUmFuZ2UsCi0gICAgICAgIE1pblZhbHVlRm9yUmFuZ2Us
Ci0gICAgICAgIE9yaWVudGF0aW9uLAotICAgICAgICBQYXRoLAotICAgICAgICBQbGFjZWhvbGRl
clZhbHVlLAotICAgICAgICBQcmVzc2VkSXNQcmVzZW50LAotICAgICAgICBQb3B1cFZhbHVlLAot
ICAgICAgICBQb3NJblNldCwKLSAgICAgICAgUHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRj
aCwKLSAgICAgICAgUmVhZE9ubHlWYWx1ZSwKLSAgICAgICAgUm9sZVZhbHVlLAotICAgICAgICBS
b2xlUGxhdGZvcm1TdHJpbmcsCi0gICAgICAgIFJvbGVEZXNjcmlwdGlvbiwKLSAgICAgICAgUm93
cywKLSAgICAgICAgUm93Q291bnQsCi0gICAgICAgIFJvd0hlYWRlcnMsCi0gICAgICAgIFJvd0lu
ZGV4LAotICAgICAgICBSb3dJbmRleFJhbmdlLAotICAgICAgICBTZWxlY3RlZENoaWxkcmVuLAot
ICAgICAgICBTZWxlY3RlZFJhZGlvQnV0dG9uLAotICAgICAgICBTZWxlY3RlZFRhYkl0ZW0sCi0g
ICAgICAgIFNlc3Npb25JRCwKLSAgICAgICAgU2V0U2l6ZSwKLSAgICAgICAgU29ydERpcmVjdGlv
biwKLSAgICAgICAgU3BlYWtBcywKLSAgICAgICAgU3BlZWNoSGludCwKLSAgICAgICAgU3RyaW5n
VmFsdWUsCi0gICAgICAgIFN1cHBvcnRzUm93Q291bnRDaGFuZ2UsCi0gICAgICAgIFN1cHBvcnRz
RHJhZ2dpbmcsCi0gICAgICAgIFN1cHBvcnRzRHJvcHBpbmcsCi0gICAgICAgIFN1cHBvcnRzQVJJ
QU93bnMsCi0gICAgICAgIFN1cHBvcnRzQ3VycmVudCwKLSAgICAgICAgU3VwcG9ydHNEYXRldGlt
ZUF0dHJpYnV0ZSwKLSAgICAgICAgU3VwcG9ydHNFeHBhbmRlZCwKLSAgICAgICAgU3VwcG9ydHNF
eHBhbmRlZFRleHRWYWx1ZSwKLSAgICAgICAgU3VwcG9ydHNMaXZlUmVnaW9uLAotICAgICAgICBT
dXBwb3J0c1BhdGgsCi0gICAgICAgIFN1cHBvcnRzUG9zSW5TZXQsCi0gICAgICAgIFN1cHBvcnRz
UHJlc3NBY3Rpb24sCi0gICAgICAgIFN1cHBvcnRzUmFuZ2VWYWx1ZSwKLSAgICAgICAgU3VwcG9y
dHNSZXF1aXJlZEF0dHJpYnV0ZSwKLSAgICAgICAgU3VwcG9ydHNTZWxlY3RlZFJvd3MsCi0gICAg
ICAgIFN1cHBvcnRzU2V0U2l6ZSwKLSAgICAgICAgVGFiQ2hpbGRyZW4sCi0gICAgICAgIFRhYmxl
TGV2ZWwsCi0gICAgICAgIFRhZ05hbWUsCi0gICAgICAgIFRleHRMZW5ndGgsCi0gICAgICAgIFRp
dGxlLAotICAgICAgICBUaXRsZUF0dHJpYnV0ZVZhbHVlLAotICAgICAgICBUaXRsZVVJRWxlbWVu
dCwKLSAgICAgICAgVVJMLAotICAgICAgICBWYWx1ZUF1dG9maWxsQnV0dG9uVHlwZSwKLSAgICAg
ICAgVmFsdWVEZXNjcmlwdGlvbiwKLSAgICAgICAgVmFsdWVGb3JSYW5nZSwKLSAgICAgICAgVmFs
aWRhdGlvbk1lc3NhZ2UsCi0gICAgICAgIFZlcnRpY2FsU2Nyb2xsQmFyLAotICAgICAgICBWaXNp
YmxlQ2hpbGRyZW4sCi0gICAgICAgIFZpc2libGVSb3dzLAotICAgICAgICBXZWJBcmVhLAotICAg
IH07Ci0KLSAgICB0eXBlZGVmIHN0ZDo6cGFpcjxBWElELCBBWElEPiBBY2Nlc3NpYmlsaXR5SXNv
bGF0ZWRUcmVlTWF0aE11bHRpc2NyaXB0UGFpcjsKLSAgICBzdHJ1Y3QgQWNjZXNzaWJpbGl0eUlz
b2xhdGVkVHJlZVRleHQgewotICAgICAgICBTdHJpbmcgdGV4dDsKLSAgICAgICAgQWNjZXNzaWJp
bGl0eVRleHRTb3VyY2UgdGV4dFNvdXJjZTsKLSAgICB9OwotCi0gICAgdXNpbmcgQXR0cmlidXRl
VmFsdWVWYXJpYW50ID0gVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgU3RyaW5nLCBib29sLCBpbnQs
IHVuc2lnbmVkLCBkb3VibGUsIGZsb2F0LCB1aW50NjRfdCwgQ29sb3IsIFVSTCwgTGF5b3V0UmVj
dCwgRmxvYXRSZWN0LCBBWElELCBJbnRQb2ludCwgT3B0aW9uU2V0PFNwZWFrQXM+LCBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiwgVmVjdG9yPEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVU
ZXh0PiwgVmVjdG9yPEFYSUQ+LCBWZWN0b3I8QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1hdGhN
dWx0aXNjcmlwdFBhaXI+LCBWZWN0b3I8U3RyaW5nPiwgUGF0aD47Ci0gICAgdm9pZCBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZSwgQXR0cmlidXRlVmFsdWVWYXJpYW50JiYsIGJvb2wgc2hvdWxk
UmVtb3ZlID0gZmFsc2UpOworICAgIHZvaWQgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWUsIEFY
UHJvcGVydHlWYWx1ZVZhcmlhbnQmJiwgYm9vbCBzaG91bGRSZW1vdmUgPSBmYWxzZSk7CiAgICAg
dm9pZCBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwgQVhDb3JlT2JqZWN0Kik7CiAg
ICAgdm9pZCBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwgY29uc3QgQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7CiAKQEAgLTM4MSw3ICsxMTIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBmaWxsQ2hpbGRyZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZSwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3Q7CiAgICAgdm9pZCBzZXRNYXRo
c2NyaXB0cyhBWFByb3BlcnR5TmFtZSwgQVhDb3JlT2JqZWN0Jik7Ci0gICAgdm9pZCBpbnNlcnRN
YXRoUGFpcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNYXRoTXVsdGlzY3JpcHRQ
YWlyPiYsIEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQYWlycyYpOworICAgIHZvaWQgaW5z
ZXJ0TWF0aFBhaXJzKFZlY3RvcjxzdGQ6OnBhaXI8QVhJRCwgQVhJRD4+JiwgQWNjZXNzaWJpbGl0
eU1hdGhNdWx0aXNjcmlwdFBhaXJzJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBw
ZXJmb3JtRnVuY3Rpb25Pbk1haW5UaHJlYWQoVSYmKTsKIAogICAgIC8vIEF0dHJpYnV0ZSByZXRy
aWV2YWwgb3ZlcnJpZGVzLgpAQCAtOTE5LDggKzY1MCw4IEBAIHByaXZhdGU6CiAgICAgQVhJRCBt
X2lkIHsgSW52YWxpZEFYSUQgfTsKICAgICBWZWN0b3I8QVhJRD4gbV9jaGlsZHJlbklEczsKICAg
ICBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IG1fY2hpbGRyZW47CisgICAgQVhQcm9wZXJ0
eU1hcCBtX3Byb3BlcnR5TWFwOwogCi0gICAgSGFzaE1hcDxBWFByb3BlcnR5TmFtZSwgQXR0cmli
dXRlVmFsdWVWYXJpYW50LCBXVEY6OkludEhhc2g8QVhQcm9wZXJ0eU5hbWU+LCBXVEY6OlN0cm9u
Z0VudW1IYXNoVHJhaXRzPEFYUHJvcGVydHlOYW1lPj4gbV9hdHRyaWJ1dGVNYXA7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5TVmlldz4gbV9wbGF0Zm9ybVdpZGdldDsKICAg
ICBSZXRhaW5QdHI8UmVtb3RlQVhPYmplY3RSZWY+IG1fcmVtb3RlUGFyZW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwCmluZGV4IDAxMmVmOTkxMzNiNTIwNTJjOWU5NjcwOWZkMjcxNGMxNmFmM2E0
MDIuLjM4ZjNjZjFlNjE3ODQzMWM2Y2ZjNjc4ODk5M2JhY2ViN2QwZmE0ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5jcHAKQEAgLTIzNywxMiArMjM3LDIxIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICBhdXRvIG5ld09iamVjdCA9
IEFYSXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZShheE9iamVjdCwgbV90cmVlSUQsIHBhcmVudElEKTsK
ICAgICBuZXdPYmplY3QtPm1fY2hpbGRyZW5JRHMgPSBheE9iamVjdC5jaGlsZHJlbklEcygpOwog
Ci0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9Owot
ICAgICAgICAvLyBSZW1vdmUgdGhlIG9sZCBvYmplY3QgYW5kIHNldCB0aGUgbmV3IG9uZSB0byBi
ZSB1cGRhdGVkIG9uIHRoZSBBWCB0aHJlYWQuCi0gICAgICAgIG1fcGVuZGluZ05vZGVSZW1vdmFs
cy5hcHBlbmQoYXhJRCk7Ci0gICAgICAgIG1fcGVuZGluZ0FwcGVuZHMuYXBwZW5kKE5vZGVDaGFu
Z2UobmV3T2JqZWN0LCBheE9iamVjdC53cmFwcGVyKCkpKTsKLSAgICB9CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKKyAgICAvLyBSZW1vdmUgdGhlIG9sZCBvYmpl
Y3QgYW5kIHNldCB0aGUgbmV3IG9uZSB0byBiZSB1cGRhdGVkIG9uIHRoZSBBWCB0aHJlYWQuCisg
ICAgbV9wZW5kaW5nTm9kZVJlbW92YWxzLmFwcGVuZChheElEKTsKKyAgICBtX3BlbmRpbmdBcHBl
bmRzLmFwcGVuZChOb2RlQ2hhbmdlKG5ld09iamVjdCwgYXhPYmplY3Qud3JhcHBlcigpKSk7Cit9
CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVDaGVja2VkU3RhdGUoY29uc3QgQVhD
b3JlT2JqZWN0JiBheE9iamVjdCkKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZUNoZWNrZWRTdGF0ZSIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAg
ICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFwOworICAgIHByb3BlcnR5TWFwLnNldChBWFByb3Bl
cnR5TmFtZTo6SXNDaGVja2VkLCBheE9iamVjdC5pc0NoZWNrZWQoKSk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKKyAgICBtX3BlbmRpbmdQcm9wZXJ0eUNoYW5n
ZXMuYXBwZW5kKHsgYXhPYmplY3Qub2JqZWN0SUQoKSwgcHJvcGVydHlNYXAgfSk7CiB9CiAKIHZv
aWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkK
QEAgLTQ3Myw2ICs0ODIsMTUgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hh
bmdlcygpCiAgICAgICAgICAgICBvYmplY3QtPnNldENoaWxkcmVuSURzKFdURk1vdmUodXBkYXRl
LnNlY29uZCkpOwogICAgIH0KICAgICBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMuY2xlYXIoKTsK
KworICAgIGZvciAoYXV0byYgY2hhbmdlIDogbV9wZW5kaW5nUHJvcGVydHlDaGFuZ2VzKSB7Cisg
ICAgICAgIGlmIChhdXRvIG9iamVjdCA9IG5vZGVGb3JJRChjaGFuZ2UubV9heElEKSkgeworICAg
ICAgICAgICAgc3RkOjpmb3JfZWFjaChjaGFuZ2UubV9wcm9wZXJ0aWVzLmJlZ2luKCksIGNoYW5n
ZS5tX3Byb3BlcnRpZXMuZW5kKCksIFsmb2JqZWN0XSAoYXV0byYmIHByb3BlcnR5KSB7CisgICAg
ICAgICAgICAgICAgb2JqZWN0LT5zZXRQcm9wZXJ0eShwcm9wZXJ0eS5rZXksIFdURk1vdmUocHJv
cGVydHkudmFsdWUpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorICAgIG1f
cGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVhcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBlYjY0ZTI0MWIyYjkzZDA3YWE3OTBiZmI3MTVk
NWViZTQzMjMwZGU1Li45YjcxOTM4MmQ1Y2EzM2VjNThmYWI4MDE3NTI4ODEzNWFlZGQwM2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTQ1LDYgKzQ1LDI3NiBAQCBjbGFzcyBQYWdlOwogCiB0
eXBlZGVmIHVuc2lnbmVkIEFYSXNvbGF0ZWRUcmVlSUQ7CiAKK2VudW0gY2xhc3MgQVhQcm9wZXJ0
eU5hbWUgOiB1aW50MTZfdCB7CisgICAgTm9uZSA9IDAsCisgICAgQVJJQUNvbnRyb2xzRWxlbWVu
dHMsCisgICAgQVJJQURldGFpbHNFbGVtZW50cywKKyAgICBEcm9wRWZmZWN0cywKKyAgICBBUklB
RXJyb3JNZXNzYWdlRWxlbWVudHMsCisgICAgQVJJQUlzTXVsdGlsaW5lLAorICAgIEFSSUFGbG93
VG9FbGVtZW50cywKKyAgICBBUklBTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24sCisgICAgQVJJQVRy
ZWVJdGVtQ29udGVudCwKKyAgICBBUklBVHJlZVJvd3MsCisgICAgQVJJQVJvbGVBdHRyaWJ1dGUs
CisgICAgQVJJQU93bnNFbGVtZW50cywKKyAgICBBWENvbHVtbkNvdW50LAorICAgIEFYQ29sdW1u
SW5kZXgsCisgICAgQVhSb3dDb3VudCwKKyAgICBBWFJvd0luZGV4LAorICAgIEFjY2Vzc0tleSwK
KyAgICBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGUsCisgICAgQWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uLAorICAgIEFjY2Vzc2liaWxpdHlUZXh0LAorICAgIEFjdGlvblZlcmIsCisgICAgQXV0b0Nv
bXBsZXRlVmFsdWUsCisgICAgQmxvY2txdW90ZUxldmVsLAorICAgIEJvdW5kaW5nQm94UmVjdCwK
KyAgICBDYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbiwKKyAgICBDYW5TZXRFeHBhbmRlZEF0dHJpYnV0
ZSwKKyAgICBDYW5TZXRGb2N1c0F0dHJpYnV0ZSwKKyAgICBDYW5TZXROdW1lcmljVmFsdWUsCisg
ICAgQ2FuU2V0U2VsZWN0ZWRBdHRyaWJ1dGUsCisgICAgQ2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0
dHJpYnV0ZSwKKyAgICBDYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzLAorICAgIENhblNldFZhbHVl
QXR0cmlidXRlLAorICAgIENhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCwKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgQ2FyZXRCcm93c2luZ0VuYWJsZWQs
CisjZW5kaWYKKyAgICBDZWxscywKKyAgICBDbGFzc0xpc3QsCisgICAgQ2xpY2tQb2ludCwKKyAg
ICBDb2xvclZhbHVlLAorICAgIENvbHVtbnMsCisgICAgQ29sdW1uQ291bnQsCisgICAgQ29sdW1u
SGVhZGVyLAorICAgIENvbHVtbkhlYWRlcnMsCisgICAgQ29sdW1uSW5kZXgsCisgICAgQ29sdW1u
SW5kZXhSYW5nZSwKKyAgICBDb21wdXRlZExhYmVsLAorICAgIENvbXB1dGVkUm9sZVN0cmluZywK
KyAgICBDdXJyZW50U3RhdGUsCisgICAgQ3VycmVudFZhbHVlLAorICAgIERhdGV0aW1lQXR0cmli
dXRlVmFsdWUsCisgICAgRGVjcmVtZW50QnV0dG9uLAorICAgIERlc2NyaXB0aW9uLAorICAgIERp
c2Nsb3NlZEJ5Um93LAorICAgIERpc2Nsb3NlZFJvd3MsCisgICAgRG9jdW1lbnRFbmNvZGluZywK
KyAgICBEb2N1bWVudExpbmtzLAorICAgIERvY3VtZW50VVJJLAorICAgIEVkaXRhYmxlQW5jZXN0
b3IsCisgICAgRWxlbWVudFJlY3QsCisgICAgRXN0aW1hdGVkTG9hZGluZ1Byb2dyZXNzLAorICAg
IEV4cGFuZGVkVGV4dFZhbHVlLAorICAgIEV4cG9zZXNUaXRsZVVJRWxlbWVudCwKKyAgICBGaWxl
VXBsb2FkQnV0dG9uUmV0dXJuc1ZhbHVlSW5UaXRsZSwKKyAgICBGb2N1c2FibGVBbmNlc3RvciwK
KyAgICBIYXNBUklBVmFsdWVOb3csCisgICAgSGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRl
LAorICAgIEhhc0JvbGRGb250LAorICAgIEhhc0NoaWxkcmVuLAorICAgIEhhc0hpZ2hsaWdodGlu
ZywKKyAgICBIYXNJdGFsaWNGb250LAorICAgIEhhc1BsYWluVGV4dCwKKyAgICBIYXNQb3B1cCwK
KyAgICBIYXNVbmRlcmxpbmUsCisgICAgSGVhZGVyQ29udGFpbmVyLAorICAgIEhlYWRpbmdMZXZl
bCwKKyAgICBIZWxwVGV4dCwKKyAgICBIaWVyYXJjaGljYWxMZXZlbCwKKyAgICBIaWdoZXN0RWRp
dGFibGVBbmNlc3RvciwKKyAgICBIb3Jpem9udGFsU2Nyb2xsQmFyLAorICAgIElkZW50aWZpZXJB
dHRyaWJ1dGUsCisgICAgSW52YWxpZFN0YXR1cywKKyAgICBJbmNyZW1lbnRCdXR0b24sCisgICAg
SXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwKKyAgICBJc0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRD
b250YWluZXIsCisgICAgSXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IsCisgICAgSXNHcmFiYmVkLAor
ICAgIElzQVJJQVRyZWVHcmlkUm93LAorICAgIElzQXR0YWNobWVudCwKKyAgICBJc0J1dHRvbiwK
KyAgICBJc0J1c3ksCisgICAgSXNDaGVja2VkLAorICAgIElzQ29sbGFwc2VkLAorICAgIElzQ29s
dW1uSGVhZGVyQ2VsbCwKKyAgICBJc0NvbnRyb2wsCisgICAgSXNEYXRhVGFibGUsCisgICAgSXNE
ZXNjcmlwdGlvbkxpc3QsCisgICAgSXNFbmFibGVkLAorICAgIElzRXhwYW5kZWQsCisgICAgSXNF
eHBvc2FibGUsCisgICAgSXNGaWVsZHNldCwKKyAgICBJc0ZpbGVVcGxvYWRCdXR0b24sCisgICAg
SXNGb2N1c2VkLAorICAgIElzR3JvdXAsCisgICAgSXNJbWFnZU1hcExpbmssCisgICAgSXNJbmNy
ZW1lbnRvciwKKyAgICBJc0luZGV0ZXJtaW5hdGUsCisgICAgSXNJbmxpbmVUZXh0LAorICAgIElz
SW5wdXRJbWFnZSwKKyAgICBJc0luc2lkZUxpdmVSZWdpb24sCisgICAgSXNIZWFkaW5nLAorICAg
IElzSG92ZXJlZCwKKyAgICBJc0tleWJvYXJkRm9jdXNhYmxlLAorICAgIElzTGFuZG1hcmssCisg
ICAgSXNMaW5rLAorICAgIElzTGlua2VkLAorICAgIElzTGlzdCwKKyAgICBJc0xpc3RCb3gsCisg
ICAgSXNMb2FkZWQsCisgICAgSXNNYXRoRWxlbWVudCwKKyAgICBJc01hdGhGcmFjdGlvbiwKKyAg
ICBJc01hdGhGZW5jZWQsCisgICAgSXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQsCisgICAgSXNN
YXRoUm93LAorICAgIElzTWF0aFVuZGVyT3ZlciwKKyAgICBJc01hdGhSb290LAorICAgIElzTWF0
aFNxdWFyZVJvb3QsCisgICAgSXNNYXRoVGV4dCwKKyAgICBJc01hdGhOdW1iZXIsCisgICAgSXNN
YXRoT3BlcmF0b3IsCisgICAgSXNNYXRoRmVuY2VPcGVyYXRvciwKKyAgICBJc01hdGhTZXBhcmF0
b3JPcGVyYXRvciwKKyAgICBJc01hdGhJZGVudGlmaWVyLAorICAgIElzTWF0aFRhYmxlLAorICAg
IElzTWF0aFRhYmxlUm93LAorICAgIElzTWF0aFRhYmxlQ2VsbCwKKyAgICBJc01hdGhNdWx0aXNj
cmlwdCwKKyAgICBJc01hdGhUb2tlbiwKKyAgICBJc01hdGhTY3JpcHRPYmplY3QsCisgICAgSXNN
ZWRpYVRpbWVsaW5lLAorICAgIElzTWVudSwKKyAgICBJc01lbnVCYXIsCisgICAgSXNNZW51QnV0
dG9uLAorICAgIElzTWVudUl0ZW0sCisgICAgSXNNZW51TGlzdCwKKyAgICBJc01lbnVMaXN0T3B0
aW9uLAorICAgIElzTWVudUxpc3RQb3B1cCwKKyAgICBJc01lbnVSZWxhdGVkLAorICAgIElzTWV0
ZXIsCisgICAgSXNNdWx0aVNlbGVjdGFibGUsCisgICAgSXNPcmRlcmVkTGlzdCwKKyAgICBJc091
dHB1dCwKKyAgICBJc1Bhc3N3b3JkRmllbGQsCisgICAgSXNQcmVzc2VkLAorICAgIElzUHJvZ3Jl
c3NJbmRpY2F0b3IsCisgICAgSXNSYW5nZUNvbnRyb2wsCisgICAgSXNSZXF1aXJlZCwKKyAgICBJ
c1Jvd0hlYWRlckNlbGwsCisgICAgSXNTY3JvbGxiYXIsCisgICAgSXNTZWFyY2hGaWVsZCwKKyAg
ICBJc1NlbGVjdGVkLAorICAgIElzU2VsZWN0ZWRPcHRpb25BY3RpdmUsCisgICAgSXNTaG93aW5n
VmFsaWRhdGlvbk1lc3NhZ2UsCisgICAgSXNTbGlkZXIsCisgICAgSXNTdHlsZUZvcm1hdEdyb3Vw
LAorICAgIElzVGFibGUsCisgICAgSXNUYWJsZUNlbGwsCisgICAgSXNUYWJsZUNvbHVtbiwKKyAg
ICBJc1RhYmxlUm93LAorICAgIElzVGV4dENvbnRyb2wsCisgICAgSXNUcmVlLAorICAgIElzVHJl
ZUl0ZW0sCisgICAgSXNVbm9yZGVyZWRMaXN0LAorICAgIElzVW52aXNpdGVkLAorICAgIElzVmFs
dWVBdXRvZmlsbGVkLAorICAgIElzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSwKKyAgICBJc1Zpc2li
bGUsCisgICAgSXNWaXNpdGVkLAorICAgIEtleVNob3J0Y3V0c1ZhbHVlLAorICAgIExhbmd1YWdl
LAorICAgIExheW91dENvdW50LAorICAgIExpbmtSZWxWYWx1ZSwKKyAgICBMaW5rZWRVSUVsZW1l
bnRzLAorICAgIExpdmVSZWdpb25BdG9taWMsCisgICAgTGl2ZVJlZ2lvblJlbGV2YW50LAorICAg
IExpdmVSZWdpb25TdGF0dXMsCisgICAgTWF0aEZlbmNlZE9wZW5TdHJpbmcsCisgICAgTWF0aEZl
bmNlZENsb3NlU3RyaW5nLAorICAgIE1hdGhMaW5lVGhpY2tuZXNzLAorICAgIE1hdGhQcmVzY3Jp
cHRzLAorICAgIE1hdGhQb3N0c2NyaXB0cywKKyAgICBNYXRoUmFkaWNhbmRPYmplY3QsCisgICAg
TWF0aFJvb3RJbmRleE9iamVjdCwKKyAgICBNYXRoVW5kZXJPYmplY3QsCisgICAgTWF0aE92ZXJP
YmplY3QsCisgICAgTWF0aE51bWVyYXRvck9iamVjdCwKKyAgICBNYXRoRGVub21pbmF0b3JPYmpl
Y3QsCisgICAgTWF0aEJhc2VPYmplY3QsCisgICAgTWF0aFN1YnNjcmlwdE9iamVjdCwKKyAgICBN
YXRoU3VwZXJzY3JpcHRPYmplY3QsCisgICAgTWF4VmFsdWVGb3JSYW5nZSwKKyAgICBNaW5WYWx1
ZUZvclJhbmdlLAorICAgIE9yaWVudGF0aW9uLAorICAgIFBhdGgsCisgICAgUGxhY2Vob2xkZXJW
YWx1ZSwKKyAgICBQcmVzc2VkSXNQcmVzZW50LAorICAgIFBvcHVwVmFsdWUsCisgICAgUG9zSW5T
ZXQsCisgICAgUHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwKKyAgICBSZWFkT25seVZh
bHVlLAorICAgIFJvbGVWYWx1ZSwKKyAgICBSb2xlUGxhdGZvcm1TdHJpbmcsCisgICAgUm9sZURl
c2NyaXB0aW9uLAorICAgIFJvd3MsCisgICAgUm93Q291bnQsCisgICAgUm93SGVhZGVycywKKyAg
ICBSb3dJbmRleCwKKyAgICBSb3dJbmRleFJhbmdlLAorICAgIFNlbGVjdGVkQ2hpbGRyZW4sCisg
ICAgU2VsZWN0ZWRSYWRpb0J1dHRvbiwKKyAgICBTZWxlY3RlZFRhYkl0ZW0sCisgICAgU2Vzc2lv
bklELAorICAgIFNldFNpemUsCisgICAgU29ydERpcmVjdGlvbiwKKyAgICBTcGVha0FzLAorICAg
IFNwZWVjaEhpbnQsCisgICAgU3RyaW5nVmFsdWUsCisgICAgU3VwcG9ydHNSb3dDb3VudENoYW5n
ZSwKKyAgICBTdXBwb3J0c0RyYWdnaW5nLAorICAgIFN1cHBvcnRzRHJvcHBpbmcsCisgICAgU3Vw
cG9ydHNBUklBT3ducywKKyAgICBTdXBwb3J0c0N1cnJlbnQsCisgICAgU3VwcG9ydHNEYXRldGlt
ZUF0dHJpYnV0ZSwKKyAgICBTdXBwb3J0c0V4cGFuZGVkLAorICAgIFN1cHBvcnRzRXhwYW5kZWRU
ZXh0VmFsdWUsCisgICAgU3VwcG9ydHNMaXZlUmVnaW9uLAorICAgIFN1cHBvcnRzUGF0aCwKKyAg
ICBTdXBwb3J0c1Bvc0luU2V0LAorICAgIFN1cHBvcnRzUHJlc3NBY3Rpb24sCisgICAgU3VwcG9y
dHNSYW5nZVZhbHVlLAorICAgIFN1cHBvcnRzUmVxdWlyZWRBdHRyaWJ1dGUsCisgICAgU3VwcG9y
dHNTZWxlY3RlZFJvd3MsCisgICAgU3VwcG9ydHNTZXRTaXplLAorICAgIFRhYkNoaWxkcmVuLAor
ICAgIFRhYmxlTGV2ZWwsCisgICAgVGFnTmFtZSwKKyAgICBUZXh0TGVuZ3RoLAorICAgIFRpdGxl
LAorICAgIFRpdGxlQXR0cmlidXRlVmFsdWUsCisgICAgVGl0bGVVSUVsZW1lbnQsCisgICAgVVJM
LAorICAgIFZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlLAorICAgIFZhbHVlRGVzY3JpcHRpb24sCisg
ICAgVmFsdWVGb3JSYW5nZSwKKyAgICBWYWxpZGF0aW9uTWVzc2FnZSwKKyAgICBWZXJ0aWNhbFNj
cm9sbEJhciwKKyAgICBWaXNpYmxlQ2hpbGRyZW4sCisgICAgVmlzaWJsZVJvd3MsCisgICAgV2Vi
QXJlYSwKK307CisKK3VzaW5nIEFYUHJvcGVydHlWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PHN0ZDo6
bnVsbHB0cl90LCBTdHJpbmcsIGJvb2wsIGludCwgdW5zaWduZWQsIGRvdWJsZSwgZmxvYXQsIHVp
bnQ2NF90LCBDb2xvciwgVVJMLCBMYXlvdXRSZWN0LCBGbG9hdFJlY3QsIEFYSUQsIEludFBvaW50
LCBPcHRpb25TZXQ8U3BlYWtBcz4sIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+LCBWZWN0
b3I8QWNjZXNzaWJpbGl0eVRleHQ+LCBWZWN0b3I8QVhJRD4sIFZlY3RvcjxzdGQ6OnBhaXI8QVhJ
RCwgQVhJRD4+LCBWZWN0b3I8U3RyaW5nPiwgUGF0aD47Cit0eXBlZGVmIEhhc2hNYXA8QVhQcm9w
ZXJ0eU5hbWUsIEFYUHJvcGVydHlWYWx1ZVZhcmlhbnQsIFdURjo6SW50SGFzaDxBWFByb3BlcnR5
TmFtZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8QVhQcm9wZXJ0eU5hbWU+PiBBWFByb3Bl
cnR5TWFwOworCitzdHJ1Y3QgQVhQcm9wZXJ0eUNoYW5nZSB7CisgICAgQVhJRCBtX2F4SUQgeyBJ
bnZhbGlkQVhJRCB9OyAvLyBJRCBvZiB0aGUgb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgY2hhbmdl
ZC4KKyAgICBBWFByb3BlcnR5TWFwIG1fcHJvcGVydGllczsgLy8gQ2hhbmdlZCBwcm9wZXJ0aWVz
LgorfTsKKwogY2xhc3MgQVhJc29sYXRlZFRyZWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8QVhJc29sYXRlZFRyZWU+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBWElzb2xhdGVk
VHJlZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIGZyaWVuZCBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQVhJc29sYXRlZFRyZWUmKTsKQEAgLTc0
LDYgKzM0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9i
amVjdCYsIEFYQ29yZU9iamVjdCosIGJvb2wgYXR0YWNoV3JhcHBlcik7CiAgICAgdm9pZCB1cGRh
dGVOb2RlKEFYQ29yZU9iamVjdCYpOworICAgIHZvaWQgdXBkYXRlTm9kZUNoZWNrZWRTdGF0ZShj
b25zdCBBWENvcmVPYmplY3QmKTsKICAgICB2b2lkIHVwZGF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0
Jik7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmKTsKIApAQCAtMTE5LDYg
KzM5MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gV3JpdHRlbiB0byBieSBtYWluIHRocmVhZCB1bmRl
ciBsb2NrLCBhY2Nlc3NlZCBhbmQgYXBwbGllZCBieSBBWCB0aHJlYWQuCiAgICAgUmVmUHRyPEFY
SXNvbGF0ZWRPYmplY3Q+IG1fcm9vdE5vZGU7CiAgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IG1fcGVu
ZGluZ0FwcGVuZHM7IC8vIE5vZGVzIHRvIGJlIGFkZGVkIHRvIHRoZSB0cmVlIGFuZCBwbGF0Zm9y
bS13cmFwcGVkLgorICAgIFZlY3RvcjxBWFByb3BlcnR5Q2hhbmdlPiBtX3BlbmRpbmdQcm9wZXJ0
eUNoYW5nZXM7CiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ05vZGVSZW1vdmFsczsgLy8gTm9k
ZXMgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLgogICAgIFZlY3RvcjxBWElEPiBtX3BlbmRp
bmdTdWJ0cmVlUmVtb3ZhbHM7IC8vIE5vZGVzIHdob3NlIHN1YnRyZWVzIGFyZSB0byBiZSByZW1v
dmVkIGZyb20gdGhlIHRyZWUuCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBWZWN0b3I8QVhJ
RD4+PiBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0QmFzZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tCmluZGV4
IDAxOGM2YjgxMTMyYjY4MzBhM2Q2ZDQ2MzgwMGQ2NWNmZTllNTBlNzQuLjA0YjQ0MWQwNDk0MDJl
MDIyYjUwNzEzMTk3MmJiZjZlZTNjOTY5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tCkBAIC0x
MDMsNyArMTAzLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlc2NyaXB0aW9uQXR0
cmlidXRlVmFsdWUoKSBjb25zdAogICAgIC8vIERldGVybWluZSBpZiBhbnkgdmlzaWJsZSB0ZXh0
IGlzIGF2YWlsYWJsZSwgd2hpY2ggaW5mbHVlbmNlcyBvdXIgdXNhZ2Ugb2YgdGl0bGUgdGFnLgog
ICAgIGJvb2wgdmlzaWJsZVRleHRBdmFpbGFibGUgPSBmYWxzZTsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHRleHQgOiB0ZXh0T3JkZXIpIHsKLSAgICAgICAgaWYgKGlzVmlzaWJsZVRleHQodGV4dC50
ZXh0U291cmNlKSkgeworICAgICAgICBpZiAoaXNWaXNpYmxlVGV4dCh0ZXh0Lm1fc291cmNlKSkg
ewogICAgICAgICAgICAgdmlzaWJsZVRleHRBdmFpbGFibGUgPSB0cnVlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTExMSwyOSArMTExLDI5IEBAIFN0cmluZyBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpkZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIAogICAgIE5TTXV0
YWJsZVN0cmluZyAqcmV0dXJuVGV4dCA9IFtOU011dGFibGVTdHJpbmcgc3RyaW5nXTsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIHRleHQgOiB0ZXh0T3JkZXIpIHsKLSAgICAgICAgaWYgKHRleHQudGV4
dFNvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRpdmUpIHsKLSAgICAg
ICAgICAgIFtyZXR1cm5UZXh0IGFwcGVuZFN0cmluZzp0ZXh0LnRleHRdOworICAgICAgICBpZiAo
dGV4dC5tX3NvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRpdmUpIHsK
KyAgICAgICAgICAgIFtyZXR1cm5UZXh0IGFwcGVuZFN0cmluZzp0ZXh0Lm1fdGV4dF07CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIHN3aXRjaCAodGV4dC50ZXh0U291
cmNlKSB7CisgICAgICAgIHN3aXRjaCAodGV4dC5tX3NvdXJjZSkgewogICAgICAgICAvLyBUaGVz
ZSBhcmUgc3ViLWNvbXBvbmVudHMgb2Ygb25lIGVsZW1lbnQgKEF0dGFjaG1lbnQpIHRoYXQgYXJl
IHJlLWNvbWJpbmVkIGluIE9TWCBhbmQgaU9TLgogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlU
ZXh0U291cmNlOjpUaXRsZToKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6
U3VidGl0bGU6CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVRleHRTb3VyY2U6OkFjdGlvbjog
ewotICAgICAgICAgICAgaWYgKCF0ZXh0LnRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICBpZiAo
IXRleHQubV90ZXh0Lmxlbmd0aCgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgaWYgKFtyZXR1cm5UZXh0IGxlbmd0aF0pCiAgICAgICAgICAgICAgICAgW3JldHVyblRleHQg
YXBwZW5kU3RyaW5nOkAiLCAiXTsKLSAgICAgICAgICAgIFtyZXR1cm5UZXh0IGFwcGVuZFN0cmlu
Zzp0ZXh0LnRleHRdOworICAgICAgICAgICAgW3JldHVyblRleHQgYXBwZW5kU3RyaW5nOnRleHQu
bV90ZXh0XTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0ZXh0LnRleHRT
b3VyY2UgPT0gQWNjZXNzaWJpbGl0eVRleHRTb3VyY2U6OlRpdGxlVGFnICYmICF2aXNpYmxlVGV4
dEF2YWlsYWJsZSkgewotICAgICAgICAgICAgW3JldHVyblRleHQgYXBwZW5kU3RyaW5nOnRleHQu
dGV4dF07CisgICAgICAgIGlmICh0ZXh0Lm1fc291cmNlID09IEFjY2Vzc2liaWxpdHlUZXh0U291
cmNlOjpUaXRsZVRhZyAmJiAhdmlzaWJsZVRleHRBdmFpbGFibGUpIHsKKyAgICAgICAgICAgIFty
ZXR1cm5UZXh0IGFwcGVuZFN0cmluZzp0ZXh0Lm1fdGV4dF07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgIH0KQEAgLTE1OCwxNyArMTU4LDE3IEBAIFN0cmluZyBBY2Nlc3NpYmls
aXR5T2JqZWN0Ojp0aXRsZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIAogICAgIGZvciAoY29uc3Qg
YXV0byYgdGV4dCA6IHRleHRPcmRlcikgewogICAgICAgICAvLyBJZiB3ZSBoYXZlIGFsdGVybmF0
aXZlIHRleHQsIHRoZW4gd2Ugc2hvdWxkIG5vdCBleHBvc2UgYSB0aXRsZS4KLSAgICAgICAgaWYg
KHRleHQudGV4dFNvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRpdmUp
CisgICAgICAgIGlmICh0ZXh0Lm1fc291cmNlID09IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpB
bHRlcm5hdGl2ZSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8vIE9uY2Ugd2UgZW5j
b3VudGVyIHZpc2libGUgdGV4dCwgb3IgdGhlIHRleHQgZnJvbSBvdXIgY2hpbGRyZW4gdGhhdCBz
aG91bGQgYmUgdXNlZCBmb3JlbW9zdC4KLSAgICAgICAgaWYgKHRleHQudGV4dFNvdXJjZSA9PSBB
Y2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6VmlzaWJsZSB8fCB0ZXh0LnRleHRTb3VyY2UgPT0gQWNj
ZXNzaWJpbGl0eVRleHRTb3VyY2U6OkNoaWxkcmVuKQotICAgICAgICAgICAgcmV0dXJuIHRleHQu
dGV4dDsKKyAgICAgICAgaWYgKHRleHQubV9zb3VyY2UgPT0gQWNjZXNzaWJpbGl0eVRleHRTb3Vy
Y2U6OlZpc2libGUgfHwgdGV4dC5tX3NvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6
Q2hpbGRyZW4pCisgICAgICAgICAgICByZXR1cm4gdGV4dC5tX3RleHQ7CiAKICAgICAgICAgLy8g
SWYgdGhlcmUncyBhbiBlbGVtZW50IHRoYXQgbGFiZWxzIHRoaXMgb2JqZWN0IGFuZCBpdCdzIG5v
dCBleHBvc2VkLCB0aGVuIHdlIHNob3VsZCB1c2UKICAgICAgICAgLy8gdGhhdCB0ZXh0IGFzIG91
ciB0aXRsZS4KLSAgICAgICAgaWYgKHRleHQudGV4dFNvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4
dFNvdXJjZTo6TGFiZWxCeUVsZW1lbnQgJiYgIWV4cG9zZXNUaXRsZVVJRWxlbWVudCgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRleHQudGV4dDsKKyAgICAgICAgaWYgKHRleHQubV9zb3VyY2UgPT0g
QWNjZXNzaWJpbGl0eVRleHRTb3VyY2U6OkxhYmVsQnlFbGVtZW50ICYmICFleHBvc2VzVGl0bGVV
SUVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXh0Lm1fdGV4dDsKICAgICB9CiAKICAg
ICByZXR1cm4geyB9OwpAQCAtMTgyLDIwICsxODIsMjAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIC8vIERldGVybWluZSBp
ZiBhbnkgZGVzY3JpcHRpdmUgdGV4dCBpcyBhdmFpbGFibGUsIHdoaWNoIGluZmx1ZW5jZXMgb3Vy
IHVzYWdlIG9mIHRpdGxlIHRhZy4KICAgICBib29sIGRlc2NyaXB0aXZlVGV4dEF2YWlsYWJsZSA9
IGZhbHNlOwogICAgIGZvciAoY29uc3QgYXV0byYgdGV4dCA6IHRleHRPcmRlcikgewotICAgICAg
ICBpZiAoaXNEZXNjcmlwdGl2ZVRleHQodGV4dC50ZXh0U291cmNlKSkgeworICAgICAgICBpZiAo
aXNEZXNjcmlwdGl2ZVRleHQodGV4dC5tX3NvdXJjZSkpIHsKICAgICAgICAgICAgIGRlc2NyaXB0
aXZlVGV4dEF2YWlsYWJsZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIGZvciAoY29uc3QgYXV0byYgdGV4dCA6IHRleHRPcmRlcikgewotICAgICAg
ICBpZiAodGV4dC50ZXh0U291cmNlID09IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpIZWxwIHx8
IHRleHQudGV4dFNvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6U3VtbWFyeSkKLSAg
ICAgICAgICAgIHJldHVybiB0ZXh0LnRleHQ7CisgICAgICAgIGlmICh0ZXh0Lm1fc291cmNlID09
IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpIZWxwIHx8IHRleHQubV9zb3VyY2UgPT0gQWNjZXNz
aWJpbGl0eVRleHRTb3VyY2U6OlN1bW1hcnkpCisgICAgICAgICAgICByZXR1cm4gdGV4dC5tX3Rl
eHQ7CiAKICAgICAgICAgLy8gSWYgYW4gZWxlbWVudCBkb2VzIE5PVCBoYXZlIG90aGVyIGRlc2Ny
aXB0aXZlIHRleHQgdGhlIHRpdGxlIHRhZyBzaG91bGQgYmUgdXNlZCBhcyBpdHMgZGVzY3JpcHRp
dmUgdGV4dC4KICAgICAgICAgLy8gQnV0LCBpZiB0aG9zZSBBUkUgYXZhaWxhYmxlLCB0aGVuIHRo
ZSB0aXRsZSB0YWcgc2hvdWxkIGJlIHVzZWQgZm9yIGhlbHAgdGV4dCBpbnN0ZWFkLgotICAgICAg
ICBpZiAodGV4dC50ZXh0U291cmNlID09IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpUaXRsZVRh
ZyAmJiBkZXNjcmlwdGl2ZVRleHRBdmFpbGFibGUpCi0gICAgICAgICAgICByZXR1cm4gdGV4dC50
ZXh0OworICAgICAgICBpZiAodGV4dC5tX3NvdXJjZSA9PSBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJj
ZTo6VGl0bGVUYWcgJiYgZGVzY3JpcHRpdmVUZXh0QXZhaWxhYmxlKQorICAgICAgICAgICAgcmV0
dXJuIHRleHQubV90ZXh0OwogICAgIH0KIAogICAgIHJldHVybiB7IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407199</attachid>
            <date>2020-08-25 09:44:59 -0700</date>
            <delta_ts>2020-08-25 11:47:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215790-20200825124458.patch</filename>
            <type>text/plain</type>
            <size>23599</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U0OGQ1ZTEwODMxY2Jh
NTVjZWFhZWE3MDE5NTQxNzJiYzVkMmVlMi4uY2NlY2MxYTk1YThiNmE1NWNkYWMzZTNlY2FjZTVl
NGUzYjI1ODI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTA4LTI1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBpbiBX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGluIGlz
b2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNTc5MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgIFRoaXMgY3Jhc2ggaXMgaGFwcGVuaW5nIGluIGlzb2xhdGVkIHRyZWUgbW9kZSBiZWNh
dXNlIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhCisgICAgICAgIGlz
IGNhY2hpbmcgYWxsIHByb3BlcnRpZXMgb2YgdGhlIG9iamVjdCBvbiBhIGNoZWNrZWQgc3RhdGUg
Y2hhbmdlZCBub3RpZmljYXRpb24uCisgICAgICAgIEluIHNvbWUgY2FzZXMgbGlrZSB0aGUgd2Vi
IHBhZ2UgaW4gdGhlIGJ1ZyByZXBvcnQsIG5vdCBhbGwgcHJvcGVydGllcworICAgICAgICBjYW4g
YmUgY29tcHV0ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbiBoYW5kbGVyLiBJbiBwYXJ0aWN1bGFyIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQKKyAgICAgICAgZG9lcyB0
aGUgZm9sbG93aW5nIGNoZWNrczoKKworICAgICAgICAgICAgLy8gUmVuZGVycyByZWZlcmVuY2Vk
IGJ5IGFjY2Vzc2liaWxpdHkgb2JqZWN0cyBjb3VsZCBnZXQgZGVzdHJveWVkLCBpZiBUZXh0SXRl
cmF0b3IgZW5kcyB1cCB0cmlnZ2VyaW5nCisgICAgICAgICAgICAvLyBzdHlsZSB1cGRhdGUvbGF5
b3V0IGhlcmUuIFNlZSBhbHNvIEFYT2JqZWN0Q2FjaGU6OmRlZmVyVGV4dENoYW5nZWRJZk5lZWRl
ZCgpLgorICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGVE
b2N1bWVudC0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpOworICAgICAgICAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGVEb2N1bWVudC0+dmlldygpLT5sYXlvdXRDb250
ZXh0KCkuaXNJblJlbmRlclRyZWVMYXlvdXQoKSk7CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRy
ZXNzZXMgdGhpcyBwcm9ibGVtIGJ5IG9ubHkgdXBkYXRpbmcgdGhlIGNoZWNrZWQgc3RhdGUKKyAg
ICAgICAgcHJvcGVydHkgb2YgdGhlIGlzb2xhdGVkIG9iamVjdCwgaW5zdGVhZCBvZiBhbGwgcHJv
cGVydGllcywgaW4gdGhlCisgICAgICAgIGNoZWNrZWQgc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlv
bi4KKyAgICAgICAgVGhpcyBpcyBhbHNvIGEgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnQgc2luY2Ug
b25seSB0aGUgcHJvcGVydHkgdGhhdAorICAgICAgICBjaGFuZ2VkIGlzIHJlLWNhbGN1bGF0ZWQu
IFRoZSBzYW1lIGFwcHJvYWNoIHdpbGwgYmUgdXNlZCBmb3Igb3RoZXIgcHJvcGVydGllcy4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOiBDaGVja2VkIHN0YXRlIGNo
YW5nZWQgbm90aWZpY2F0aW9ucworICAgICAgICB0cmlnZ2VyIGFuIHVwZGF0ZSBvZiB0aGUgY29y
cmVzcG9uZGluZyBpc29sYXRlZCBvYmplY3QncyBjaGVrY2VkIHN0YXRlCisgICAgICAgIGluc3Rl
YWQgb2YgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IG9iamVjdCBhbmQgcmUtY2FsY3VsYXRpb24gb2Yg
YWxsIGNhY2hlZCBwcm9wZXJ0aWVzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6c2V0UHJvcGVydHkpOiBSZW1vdmVkIEFTU0VSVCBzaW5jZSBpdCBpcyBub3cKKyAgICAg
ICAgY2FsbGVkIGluIGFwcGx5UGVuZGluZ0NoYW5nZXMgb24gdGhlIHNlY29uZGFyeSB0aHJlYWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
OiBNb3ZlZCB0aGUgQVhQcm9wZXJ0eU5hbWUKKyAgICAgICAgZW51bWVyYXRpb24sIHRoZSBBdHRy
aWJ1dGVWYWx1ZVZhcmlhbnQgYW5kIGF0dHJpYnV0ZSBtYXAgZGVjbGFyYXRpb25zCisgICAgICAg
IG91dCBvZiB0aGlzIGhlYWRlciBpbnRvIEFYSXNvbGF0ZWRUcmVlLmggaW4gb3JkZXIgdG8gYmUg
YWJsZSB0byB1c2UgdGhlbQorICAgICAgICBpbiBib3RoIGNsYXNzZXMuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUpOiBSZW1vdmVkIHVubmVjZXNzYXJ5IHNj
b3BlIG9wZXJhdG9yLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGVDaGVja2VkU3RhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKTogQWRkZWQgdXBkYXRpbmcgdGhlIHBlbmRpbmcKKyAgICAg
ICAgcHJvcGVydGllcyBvbiB0aGUgc2Vjb25kYXJ5IHRocmVhZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOiBNb3ZlZCB0byB0aGlzIGhlYWRl
ciB0aGUgZGVjbGFyYXRpb25zCisgICAgICAgIHRoYXQgYXJlIG5vdyBzaGFyZWQgYnkgQVhJc29s
YXRlZE9iamVjdCBhbmQgQVhJc29sYXRlZFRyZWUuCisKIDIwMjAtMDgtMjEgIEFuZHJlcyBHb256
YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFJhbmdlOjpjb250YWlucyBk
b2VzIG5vdCB3b3JrIGNvcnJlY3RseSB3aGVuIHRoZSBjb21tb24gYW5jZXN0b3Igbm9kZSBpcyBh
IERvY3VtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKaW5kZXggNTc5ZDBkODcxNmI3OTEyM2JhYjAzOWZhNDA2MjBhNGFhZTNiYmI2MS4uNjM4
YmFmMGJjNzk4NGQ5Nzk5YjI4MmNiYmFlOGNhMTc2MTM2ZmNjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zMjAwLDYgKzMyMDAsOCBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3QmIG9i
amVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogCiAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsK
ICAgICBjYXNlIEFYQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKKyAgICAgICAgdHJlZS0+dXBkYXRlTm9k
ZUNoZWNrZWRTdGF0ZShvYmplY3QpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYU2VsZWN0
ZWRUZXh0Q2hhbmdlZDoKICAgICBjYXNlIEFYVmFsdWVDaGFuZ2VkOgogICAgICAgICB0cmVlLT51
cGRhdGVOb2RlKG9iamVjdCk7CkBAIC0zMjYwLDYgKzMyNjIsOCBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENv
cmVPYmplYwogCiAgICAgICAgIHN3aXRjaCAobm90aWZpY2F0aW9uLnNlY29uZCkgewogICAgICAg
ICBjYXNlIEFYQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5v
ZGVDaGVja2VkU3RhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhWYWx1
ZUNoYW5nZWQ6IHsKICAgICAgICAgICAgIGJvb2wgbmVlZHNVcGRhdGUgPSBhcHBlbmRJZk5vdENv
bnRhaW5zTWF0Y2hpbmcoZmlsdGVyZWROb3RpZmljYXRpb25zLCBub3RpZmljYXRpb24sIFsmbm90
aWZpY2F0aW9uXSAoY29uc3Qgc3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4mIG5vdGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYzBhYjRh
MzBjNTVkYzQwYmI1ZjM2MWIyNjEyZjE0ZDViNTk1NzNkNy4uNDA5MDU4OTQwMDg0YzNmNjZjYTM5
YWMyNzQzODc4MmMxZjA0YzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTQ1
MCwxMCArNDUwLDggQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRPYmplY3RWZWN0b3JQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnMKICAgICBzZXRQcm9wZXJ0eShw
cm9wZXJ0eU5hbWUsIGNoaWxkSURzKTsKIH0KIAotdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEF0dHJpYnV0ZVZhbHVlVmFyaWFu
dCYmIHZhbHVlLCBib29sIHNob3VsZFJlbW92ZSkKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBBWFByb3BlcnR5VmFsdWVWYXJp
YW50JiYgdmFsdWUsIGJvb2wgc2hvdWxkUmVtb3ZlKQogewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0KICAgICBpZiAoc2hvdWxkUmVtb3ZlKQogICAgICAgICBtX2F0dHJpYnV0ZU1hcC5y
ZW1vdmUocHJvcGVydHlOYW1lKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggNGQ2MWM5MDJkYjQ1YzZkY2Q4Y2Y3YWZlMjRjZjk4OThmNWUzYzBkYS4uOWI4MTJiYzFmYmUz
ZjUzNDAzMjc1ZmVhNTBhMjRlYjg2ZDI4MjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtODcsMjc2ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2lkICE9IEludmFs
aWRBWElEID8gYXhPYmplY3RDYWNoZSgpLT5vYmplY3RGcm9tQVhJRChtX2lkKSA6IG51bGxwdHI7
CiAgICAgfQogCi0gICAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKLSAg
ICAgICAgTm9uZSA9IDAsCi0gICAgICAgIEFSSUFDb250cm9sc0VsZW1lbnRzLAotICAgICAgICBB
UklBRGV0YWlsc0VsZW1lbnRzLAotICAgICAgICBEcm9wRWZmZWN0cywKLSAgICAgICAgQVJJQUVy
cm9yTWVzc2FnZUVsZW1lbnRzLAotICAgICAgICBBUklBSXNNdWx0aWxpbmUsCi0gICAgICAgIEFS
SUFGbG93VG9FbGVtZW50cywKLSAgICAgICAgQVJJQUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uLAot
ICAgICAgICBBUklBVHJlZUl0ZW1Db250ZW50LAotICAgICAgICBBUklBVHJlZVJvd3MsCi0gICAg
ICAgIEFSSUFSb2xlQXR0cmlidXRlLAotICAgICAgICBBUklBT3duc0VsZW1lbnRzLAotICAgICAg
ICBBWENvbHVtbkNvdW50LAotICAgICAgICBBWENvbHVtbkluZGV4LAotICAgICAgICBBWFJvd0Nv
dW50LAotICAgICAgICBBWFJvd0luZGV4LAotICAgICAgICBBY2Nlc3NLZXksCi0gICAgICAgIEFj
Y2Vzc2liaWxpdHlCdXR0b25TdGF0ZSwKLSAgICAgICAgQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
LAotICAgICAgICBBY2Nlc3NpYmlsaXR5VGV4dCwKLSAgICAgICAgQWN0aW9uVmVyYiwKLSAgICAg
ICAgQXV0b0NvbXBsZXRlVmFsdWUsCi0gICAgICAgIEJsb2NrcXVvdGVMZXZlbCwKLSAgICAgICAg
Qm91bmRpbmdCb3hSZWN0LAotICAgICAgICBDYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbiwKLSAgICAg
ICAgQ2FuU2V0RXhwYW5kZWRBdHRyaWJ1dGUsCi0gICAgICAgIENhblNldEZvY3VzQXR0cmlidXRl
LAotICAgICAgICBDYW5TZXROdW1lcmljVmFsdWUsCi0gICAgICAgIENhblNldFNlbGVjdGVkQXR0
cmlidXRlLAotICAgICAgICBDYW5TZXRTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlLAotICAgICAg
ICBDYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzLAotICAgICAgICBDYW5TZXRWYWx1ZUF0dHJpYnV0
ZSwKLSAgICAgICAgQ2FudmFzSGFzRmFsbGJhY2tDb250ZW50LAotI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQ2FyZXRCcm93c2luZ0VuYWJsZWQs
Ci0jZW5kaWYKLSAgICAgICAgQ2VsbHMsCi0gICAgICAgIENsYXNzTGlzdCwKLSAgICAgICAgQ2xp
Y2tQb2ludCwKLSAgICAgICAgQ29sb3JWYWx1ZSwKLSAgICAgICAgQ29sdW1ucywKLSAgICAgICAg
Q29sdW1uQ291bnQsCi0gICAgICAgIENvbHVtbkhlYWRlciwKLSAgICAgICAgQ29sdW1uSGVhZGVy
cywKLSAgICAgICAgQ29sdW1uSW5kZXgsCi0gICAgICAgIENvbHVtbkluZGV4UmFuZ2UsCi0gICAg
ICAgIENvbXB1dGVkTGFiZWwsCi0gICAgICAgIENvbXB1dGVkUm9sZVN0cmluZywKLSAgICAgICAg
Q3VycmVudFN0YXRlLAotICAgICAgICBDdXJyZW50VmFsdWUsCi0gICAgICAgIERhdGV0aW1lQXR0
cmlidXRlVmFsdWUsCi0gICAgICAgIERlY3JlbWVudEJ1dHRvbiwKLSAgICAgICAgRGVzY3JpcHRp
b24sCi0gICAgICAgIERpc2Nsb3NlZEJ5Um93LAotICAgICAgICBEaXNjbG9zZWRSb3dzLAotICAg
ICAgICBEb2N1bWVudEVuY29kaW5nLAotICAgICAgICBEb2N1bWVudExpbmtzLAotICAgICAgICBE
b2N1bWVudFVSSSwKLSAgICAgICAgRWRpdGFibGVBbmNlc3RvciwKLSAgICAgICAgRWxlbWVudFJl
Y3QsCi0gICAgICAgIEVzdGltYXRlZExvYWRpbmdQcm9ncmVzcywKLSAgICAgICAgRXhwYW5kZWRU
ZXh0VmFsdWUsCi0gICAgICAgIEV4cG9zZXNUaXRsZVVJRWxlbWVudCwKLSAgICAgICAgRmlsZVVw
bG9hZEJ1dHRvblJldHVybnNWYWx1ZUluVGl0bGUsCi0gICAgICAgIEZvY3VzYWJsZUFuY2VzdG9y
LAotICAgICAgICBIYXNBUklBVmFsdWVOb3csCi0gICAgICAgIEhhc0FwcGxlUERGQW5ub3RhdGlv
bkF0dHJpYnV0ZSwKLSAgICAgICAgSGFzQm9sZEZvbnQsCi0gICAgICAgIEhhc0NoaWxkcmVuLAot
ICAgICAgICBIYXNIaWdobGlnaHRpbmcsCi0gICAgICAgIEhhc0l0YWxpY0ZvbnQsCi0gICAgICAg
IEhhc1BsYWluVGV4dCwKLSAgICAgICAgSGFzUG9wdXAsCi0gICAgICAgIEhhc1VuZGVybGluZSwK
LSAgICAgICAgSGVhZGVyQ29udGFpbmVyLAotICAgICAgICBIZWFkaW5nTGV2ZWwsCi0gICAgICAg
IEhlbHBUZXh0LAotICAgICAgICBIaWVyYXJjaGljYWxMZXZlbCwKLSAgICAgICAgSGlnaGVzdEVk
aXRhYmxlQW5jZXN0b3IsCi0gICAgICAgIEhvcml6b250YWxTY3JvbGxCYXIsCi0gICAgICAgIElk
ZW50aWZpZXJBdHRyaWJ1dGUsCi0gICAgICAgIEludmFsaWRTdGF0dXMsCi0gICAgICAgIEluY3Jl
bWVudEJ1dHRvbiwKLSAgICAgICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwKLSAgICAgICAgSXNB
Y3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyLAotICAgICAgICBJc0Fub255bW91c01h
dGhPcGVyYXRvciwKLSAgICAgICAgSXNHcmFiYmVkLAotICAgICAgICBJc0FSSUFUcmVlR3JpZFJv
dywKLSAgICAgICAgSXNBdHRhY2htZW50LAotICAgICAgICBJc0J1dHRvbiwKLSAgICAgICAgSXNC
dXN5LAotICAgICAgICBJc0NoZWNrZWQsCi0gICAgICAgIElzQ29sbGFwc2VkLAotICAgICAgICBJ
c0NvbHVtbkhlYWRlckNlbGwsCi0gICAgICAgIElzQ29udHJvbCwKLSAgICAgICAgSXNEYXRhVGFi
bGUsCi0gICAgICAgIElzRGVzY3JpcHRpb25MaXN0LAotICAgICAgICBJc0VuYWJsZWQsCi0gICAg
ICAgIElzRXhwYW5kZWQsCi0gICAgICAgIElzRXhwb3NhYmxlLAotICAgICAgICBJc0ZpZWxkc2V0
LAotICAgICAgICBJc0ZpbGVVcGxvYWRCdXR0b24sCi0gICAgICAgIElzRm9jdXNlZCwKLSAgICAg
ICAgSXNHcm91cCwKLSAgICAgICAgSXNJbWFnZU1hcExpbmssCi0gICAgICAgIElzSW5jcmVtZW50
b3IsCi0gICAgICAgIElzSW5kZXRlcm1pbmF0ZSwKLSAgICAgICAgSXNJbmxpbmVUZXh0LAotICAg
ICAgICBJc0lucHV0SW1hZ2UsCi0gICAgICAgIElzSW5zaWRlTGl2ZVJlZ2lvbiwKLSAgICAgICAg
SXNIZWFkaW5nLAotICAgICAgICBJc0hvdmVyZWQsCi0gICAgICAgIElzS2V5Ym9hcmRGb2N1c2Fi
bGUsCi0gICAgICAgIElzTGFuZG1hcmssCi0gICAgICAgIElzTGluaywKLSAgICAgICAgSXNMaW5r
ZWQsCi0gICAgICAgIElzTGlzdCwKLSAgICAgICAgSXNMaXN0Qm94LAotICAgICAgICBJc0xvYWRl
ZCwKLSAgICAgICAgSXNNYXRoRWxlbWVudCwKLSAgICAgICAgSXNNYXRoRnJhY3Rpb24sCi0gICAg
ICAgIElzTWF0aEZlbmNlZCwKLSAgICAgICAgSXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQsCi0g
ICAgICAgIElzTWF0aFJvdywKLSAgICAgICAgSXNNYXRoVW5kZXJPdmVyLAotICAgICAgICBJc01h
dGhSb290LAotICAgICAgICBJc01hdGhTcXVhcmVSb290LAotICAgICAgICBJc01hdGhUZXh0LAot
ICAgICAgICBJc01hdGhOdW1iZXIsCi0gICAgICAgIElzTWF0aE9wZXJhdG9yLAotICAgICAgICBJ
c01hdGhGZW5jZU9wZXJhdG9yLAotICAgICAgICBJc01hdGhTZXBhcmF0b3JPcGVyYXRvciwKLSAg
ICAgICAgSXNNYXRoSWRlbnRpZmllciwKLSAgICAgICAgSXNNYXRoVGFibGUsCi0gICAgICAgIElz
TWF0aFRhYmxlUm93LAotICAgICAgICBJc01hdGhUYWJsZUNlbGwsCi0gICAgICAgIElzTWF0aE11
bHRpc2NyaXB0LAotICAgICAgICBJc01hdGhUb2tlbiwKLSAgICAgICAgSXNNYXRoU2NyaXB0T2Jq
ZWN0LAotICAgICAgICBJc01lZGlhVGltZWxpbmUsCi0gICAgICAgIElzTWVudSwKLSAgICAgICAg
SXNNZW51QmFyLAotICAgICAgICBJc01lbnVCdXR0b24sCi0gICAgICAgIElzTWVudUl0ZW0sCi0g
ICAgICAgIElzTWVudUxpc3QsCi0gICAgICAgIElzTWVudUxpc3RPcHRpb24sCi0gICAgICAgIElz
TWVudUxpc3RQb3B1cCwKLSAgICAgICAgSXNNZW51UmVsYXRlZCwKLSAgICAgICAgSXNNZXRlciwK
LSAgICAgICAgSXNNdWx0aVNlbGVjdGFibGUsCi0gICAgICAgIElzT3JkZXJlZExpc3QsCi0gICAg
ICAgIElzT3V0cHV0LAotICAgICAgICBJc1Bhc3N3b3JkRmllbGQsCi0gICAgICAgIElzUHJlc3Nl
ZCwKLSAgICAgICAgSXNQcm9ncmVzc0luZGljYXRvciwKLSAgICAgICAgSXNSYW5nZUNvbnRyb2ws
Ci0gICAgICAgIElzUmVxdWlyZWQsCi0gICAgICAgIElzUm93SGVhZGVyQ2VsbCwKLSAgICAgICAg
SXNTY3JvbGxiYXIsCi0gICAgICAgIElzU2VhcmNoRmllbGQsCi0gICAgICAgIElzU2VsZWN0ZWQs
Ci0gICAgICAgIElzU2VsZWN0ZWRPcHRpb25BY3RpdmUsCi0gICAgICAgIElzU2hvd2luZ1ZhbGlk
YXRpb25NZXNzYWdlLAotICAgICAgICBJc1NsaWRlciwKLSAgICAgICAgSXNTdHlsZUZvcm1hdEdy
b3VwLAotICAgICAgICBJc1RhYmxlLAotICAgICAgICBJc1RhYmxlQ2VsbCwKLSAgICAgICAgSXNU
YWJsZUNvbHVtbiwKLSAgICAgICAgSXNUYWJsZVJvdywKLSAgICAgICAgSXNUZXh0Q29udHJvbCwK
LSAgICAgICAgSXNUcmVlLAotICAgICAgICBJc1RyZWVJdGVtLAotICAgICAgICBJc1Vub3JkZXJl
ZExpc3QsCi0gICAgICAgIElzVW52aXNpdGVkLAotICAgICAgICBJc1ZhbHVlQXV0b2ZpbGxlZCwK
LSAgICAgICAgSXNWYWx1ZUF1dG9maWxsQXZhaWxhYmxlLAotICAgICAgICBJc1Zpc2libGUsCi0g
ICAgICAgIElzVmlzaXRlZCwKLSAgICAgICAgS2V5U2hvcnRjdXRzVmFsdWUsCi0gICAgICAgIExh
bmd1YWdlLAotICAgICAgICBMYXlvdXRDb3VudCwKLSAgICAgICAgTGlua1JlbFZhbHVlLAotICAg
ICAgICBMaW5rZWRVSUVsZW1lbnRzLAotICAgICAgICBMaXZlUmVnaW9uQXRvbWljLAotICAgICAg
ICBMaXZlUmVnaW9uUmVsZXZhbnQsCi0gICAgICAgIExpdmVSZWdpb25TdGF0dXMsCi0gICAgICAg
IE1hdGhGZW5jZWRPcGVuU3RyaW5nLAotICAgICAgICBNYXRoRmVuY2VkQ2xvc2VTdHJpbmcsCi0g
ICAgICAgIE1hdGhMaW5lVGhpY2tuZXNzLAotICAgICAgICBNYXRoUHJlc2NyaXB0cywKLSAgICAg
ICAgTWF0aFBvc3RzY3JpcHRzLAotICAgICAgICBNYXRoUmFkaWNhbmRPYmplY3QsCi0gICAgICAg
IE1hdGhSb290SW5kZXhPYmplY3QsCi0gICAgICAgIE1hdGhVbmRlck9iamVjdCwKLSAgICAgICAg
TWF0aE92ZXJPYmplY3QsCi0gICAgICAgIE1hdGhOdW1lcmF0b3JPYmplY3QsCi0gICAgICAgIE1h
dGhEZW5vbWluYXRvck9iamVjdCwKLSAgICAgICAgTWF0aEJhc2VPYmplY3QsCi0gICAgICAgIE1h
dGhTdWJzY3JpcHRPYmplY3QsCi0gICAgICAgIE1hdGhTdXBlcnNjcmlwdE9iamVjdCwKLSAgICAg
ICAgTWF4VmFsdWVGb3JSYW5nZSwKLSAgICAgICAgTWluVmFsdWVGb3JSYW5nZSwKLSAgICAgICAg
T3JpZW50YXRpb24sCi0gICAgICAgIFBhdGgsCi0gICAgICAgIFBsYWNlaG9sZGVyVmFsdWUsCi0g
ICAgICAgIFByZXNzZWRJc1ByZXNlbnQsCi0gICAgICAgIFBvcHVwVmFsdWUsCi0gICAgICAgIFBv
c0luU2V0LAotICAgICAgICBQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoLAotICAgICAg
ICBSZWFkT25seVZhbHVlLAotICAgICAgICBSb2xlVmFsdWUsCi0gICAgICAgIFJvbGVQbGF0Zm9y
bVN0cmluZywKLSAgICAgICAgUm9sZURlc2NyaXB0aW9uLAotICAgICAgICBSb3dzLAotICAgICAg
ICBSb3dDb3VudCwKLSAgICAgICAgUm93SGVhZGVycywKLSAgICAgICAgUm93SW5kZXgsCi0gICAg
ICAgIFJvd0luZGV4UmFuZ2UsCi0gICAgICAgIFNlbGVjdGVkQ2hpbGRyZW4sCi0gICAgICAgIFNl
bGVjdGVkUmFkaW9CdXR0b24sCi0gICAgICAgIFNlbGVjdGVkVGFiSXRlbSwKLSAgICAgICAgU2Vz
c2lvbklELAotICAgICAgICBTZXRTaXplLAotICAgICAgICBTb3J0RGlyZWN0aW9uLAotICAgICAg
ICBTcGVha0FzLAotICAgICAgICBTcGVlY2hIaW50LAotICAgICAgICBTdHJpbmdWYWx1ZSwKLSAg
ICAgICAgU3VwcG9ydHNSb3dDb3VudENoYW5nZSwKLSAgICAgICAgU3VwcG9ydHNEcmFnZ2luZywK
LSAgICAgICAgU3VwcG9ydHNEcm9wcGluZywKLSAgICAgICAgU3VwcG9ydHNBUklBT3ducywKLSAg
ICAgICAgU3VwcG9ydHNDdXJyZW50LAotICAgICAgICBTdXBwb3J0c0RhdGV0aW1lQXR0cmlidXRl
LAotICAgICAgICBTdXBwb3J0c0V4cGFuZGVkLAotICAgICAgICBTdXBwb3J0c0V4cGFuZGVkVGV4
dFZhbHVlLAotICAgICAgICBTdXBwb3J0c0xpdmVSZWdpb24sCi0gICAgICAgIFN1cHBvcnRzUGF0
aCwKLSAgICAgICAgU3VwcG9ydHNQb3NJblNldCwKLSAgICAgICAgU3VwcG9ydHNQcmVzc0FjdGlv
biwKLSAgICAgICAgU3VwcG9ydHNSYW5nZVZhbHVlLAotICAgICAgICBTdXBwb3J0c1JlcXVpcmVk
QXR0cmlidXRlLAotICAgICAgICBTdXBwb3J0c1NlbGVjdGVkUm93cywKLSAgICAgICAgU3VwcG9y
dHNTZXRTaXplLAotICAgICAgICBUYWJDaGlsZHJlbiwKLSAgICAgICAgVGFibGVMZXZlbCwKLSAg
ICAgICAgVGFnTmFtZSwKLSAgICAgICAgVGV4dExlbmd0aCwKLSAgICAgICAgVGl0bGUsCi0gICAg
ICAgIFRpdGxlQXR0cmlidXRlVmFsdWUsCi0gICAgICAgIFRpdGxlVUlFbGVtZW50LAotICAgICAg
ICBVUkwsCi0gICAgICAgIFZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlLAotICAgICAgICBWYWx1ZURl
c2NyaXB0aW9uLAotICAgICAgICBWYWx1ZUZvclJhbmdlLAotICAgICAgICBWYWxpZGF0aW9uTWVz
c2FnZSwKLSAgICAgICAgVmVydGljYWxTY3JvbGxCYXIsCi0gICAgICAgIFZpc2libGVDaGlsZHJl
biwKLSAgICAgICAgVmlzaWJsZVJvd3MsCi0gICAgICAgIFdlYkFyZWEsCi0gICAgfTsKLQotICAg
IHR5cGVkZWYgc3RkOjpwYWlyPEFYSUQsIEFYSUQ+IEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVN
YXRoTXVsdGlzY3JpcHRQYWlyOwotICAgIHN0cnVjdCBBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVl
VGV4dCB7Ci0gICAgICAgIFN0cmluZyB0ZXh0OwotICAgICAgICBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZSB0ZXh0U291cmNlOwotICAgIH07Ci0KLSAgICB1c2luZyBBdHRyaWJ1dGVWYWx1ZVZhcmlh
bnQgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBTdHJpbmcsIGJvb2wsIGludCwgdW5zaWduZWQs
IGRvdWJsZSwgZmxvYXQsIHVpbnQ2NF90LCBDb2xvciwgVVJMLCBMYXlvdXRSZWN0LCBGbG9hdFJl
Y3QsIEFYSUQsIEludFBvaW50LCBPcHRpb25TZXQ8U3BlYWtBcz4sIHN0ZDo6cGFpcjx1bnNpZ25l
ZCwgdW5zaWduZWQ+LCBWZWN0b3I8QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZVRleHQ+LCBWZWN0
b3I8QVhJRD4sIFZlY3RvcjxBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTWF0aE11bHRpc2NyaXB0
UGFpcj4sIFZlY3RvcjxTdHJpbmc+LCBQYXRoPjsKLSAgICB2b2lkIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lLCBBdHRyaWJ1dGVWYWx1ZVZhcmlhbnQmJiwgYm9vbCBzaG91bGRSZW1vdmUgPSBm
YWxzZSk7CisgICAgdm9pZCBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwgQVhQcm9wZXJ0eVZh
bHVlVmFyaWFudCYmLCBib29sIHNob3VsZFJlbW92ZSA9IGZhbHNlKTsKICAgICB2b2lkIHNldE9i
amVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lLCBBWENvcmVPYmplY3QqKTsKICAgICB2b2lkIHNl
dE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lLCBjb25zdCBBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImKTsKIApAQCAtOTE5LDggKzY1MCw4IEBAIHByaXZhdGU6CiAgICAgQVhJ
RCBtX2lkIHsgSW52YWxpZEFYSUQgfTsKICAgICBWZWN0b3I8QVhJRD4gbV9jaGlsZHJlbklEczsK
ICAgICBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IG1fY2hpbGRyZW47CisgICAgQVhQcm9w
ZXJ0eU1hcCBtX2F0dHJpYnV0ZU1hcDsKIAotICAgIEhhc2hNYXA8QVhQcm9wZXJ0eU5hbWUsIEF0
dHJpYnV0ZVZhbHVlVmFyaWFudCwgV1RGOjpJbnRIYXNoPEFYUHJvcGVydHlOYW1lPiwgV1RGOjpT
dHJvbmdFbnVtSGFzaFRyYWl0czxBWFByb3BlcnR5TmFtZT4+IG1fYXR0cmlidXRlTWFwOwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU1ZpZXc+IG1fcGxhdGZvcm1XaWRnZXQ7
CiAgICAgUmV0YWluUHRyPFJlbW90ZUFYT2JqZWN0UmVmPiBtX3JlbW90ZVBhcmVudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmNwcAppbmRleCAwMTJlZjk5MTMzYjUyMDUyYzllOTY3MDlmZDI3MTRjMTZh
ZjNhNDAyLi5hZGJjY2QzZjVhNTA2ODlhNTYzYWJiNzAyZTlmYTZhNjJjNDhkODlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuY3BwCkBAIC0yMzcsMTIgKzIzNywyMSBAQCB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAgICAgYXV0byBuZXdPYmpl
Y3QgPSBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoYXhPYmplY3QsIG1fdHJlZUlELCBwYXJlbnRJ
RCk7CiAgICAgbmV3T2JqZWN0LT5tX2NoaWxkcmVuSURzID0gYXhPYmplY3QuY2hpbGRyZW5JRHMo
KTsKIAotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sg
fTsKLSAgICAgICAgLy8gUmVtb3ZlIHRoZSBvbGQgb2JqZWN0IGFuZCBzZXQgdGhlIG5ldyBvbmUg
dG8gYmUgdXBkYXRlZCBvbiB0aGUgQVggdGhyZWFkLgotICAgICAgICBtX3BlbmRpbmdOb2RlUmVt
b3ZhbHMuYXBwZW5kKGF4SUQpOwotICAgICAgICBtX3BlbmRpbmdBcHBlbmRzLmFwcGVuZChOb2Rl
Q2hhbmdlKG5ld09iamVjdCwgYXhPYmplY3Qud3JhcHBlcigpKSk7Ci0gICAgfQorICAgIExvY2tI
b2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgLy8gUmVtb3ZlIHRoZSBvbGQg
b2JqZWN0IGFuZCBzZXQgdGhlIG5ldyBvbmUgdG8gYmUgdXBkYXRlZCBvbiB0aGUgQVggdGhyZWFk
LgorICAgIG1fcGVuZGluZ05vZGVSZW1vdmFscy5hcHBlbmQoYXhJRCk7CisgICAgbV9wZW5kaW5n
QXBwZW5kcy5hcHBlbmQoTm9kZUNoYW5nZShuZXdPYmplY3QsIGF4T2JqZWN0LndyYXBwZXIoKSkp
OworfQorCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlQ2hlY2tlZFN0YXRlKGNvbnN0
IEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCit7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZU5vZGVDaGVja2VkU3RhdGUiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
CisgICAgQVhQcm9wZXJ0eU1hcCBwcm9wZXJ0eU1hcDsKKyAgICBwcm9wZXJ0eU1hcC5zZXQoQVhQ
cm9wZXJ0eU5hbWU6OklzQ2hlY2tlZCwgYXhPYmplY3QuaXNDaGVja2VkKCkpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgbV9wZW5kaW5nUHJvcGVydHlD
aGFuZ2VzLmFwcGVuZCh7IGF4T2JqZWN0Lm9iamVjdElEKCksIHByb3BlcnR5TWFwIH0pOwogfQog
CiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmpl
Y3QpCkBAIC00NzMsNiArNDgyLDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGlu
Z0NoYW5nZXMoKQogICAgICAgICAgICAgb2JqZWN0LT5zZXRDaGlsZHJlbklEcyhXVEZNb3ZlKHVw
ZGF0ZS5zZWNvbmQpKTsKICAgICB9CiAgICAgbV9wZW5kaW5nQ2hpbGRyZW5VcGRhdGVzLmNsZWFy
KCk7CisKKyAgICBmb3IgKGF1dG8mIGNoYW5nZSA6IG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcykg
eworICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBub2RlRm9ySUQoY2hhbmdlLmF4SUQpKSB7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIHByb3BlcnR5IDogY2hhbmdlLnByb3BlcnRpZXMpCisgICAg
ICAgICAgICAgICAgb2JqZWN0LT5zZXRQcm9wZXJ0eShwcm9wZXJ0eS5rZXksIFdURk1vdmUocHJv
cGVydHkudmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBtX3BlbmRpbmdQcm9wZXJ0eUNo
YW5nZXMuY2xlYXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmgKaW5kZXggZWI2NGUyNDFiMmI5M2QwN2FhNzkwYmZiNzE1ZDVlYmU0MzIzMGRlNS4uODVl
NDlmNzMyMGM5ZjY4YjMzNjE2MGU3ZDJhOGNjYWJkODM1ZTY3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJl
ZS5oCkBAIC00NSw2ICs0NSwyODMgQEAgY2xhc3MgUGFnZTsKIAogdHlwZWRlZiB1bnNpZ25lZCBB
WElzb2xhdGVkVHJlZUlEOwogCitlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qg
eworICAgIE5vbmUgPSAwLAorICAgIEFSSUFDb250cm9sc0VsZW1lbnRzLAorICAgIEFSSUFEZXRh
aWxzRWxlbWVudHMsCisgICAgRHJvcEVmZmVjdHMsCisgICAgQVJJQUVycm9yTWVzc2FnZUVsZW1l
bnRzLAorICAgIEFSSUFJc011bHRpbGluZSwKKyAgICBBUklBRmxvd1RvRWxlbWVudHMsCisgICAg
QVJJQUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uLAorICAgIEFSSUFUcmVlSXRlbUNvbnRlbnQsCisg
ICAgQVJJQVRyZWVSb3dzLAorICAgIEFSSUFSb2xlQXR0cmlidXRlLAorICAgIEFSSUFPd25zRWxl
bWVudHMsCisgICAgQVhDb2x1bW5Db3VudCwKKyAgICBBWENvbHVtbkluZGV4LAorICAgIEFYUm93
Q291bnQsCisgICAgQVhSb3dJbmRleCwKKyAgICBBY2Nlc3NLZXksCisgICAgQWNjZXNzaWJpbGl0
eUJ1dHRvblN0YXRlLAorICAgIEFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbiwKKyAgICBBY2Nlc3Np
YmlsaXR5VGV4dCwKKyAgICBBY3Rpb25WZXJiLAorICAgIEF1dG9Db21wbGV0ZVZhbHVlLAorICAg
IEJsb2NrcXVvdGVMZXZlbCwKKyAgICBCb3VuZGluZ0JveFJlY3QsCisgICAgQ2FuSGF2ZVNlbGVj
dGVkQ2hpbGRyZW4sCisgICAgQ2FuU2V0RXhwYW5kZWRBdHRyaWJ1dGUsCisgICAgQ2FuU2V0Rm9j
dXNBdHRyaWJ1dGUsCisgICAgQ2FuU2V0TnVtZXJpY1ZhbHVlLAorICAgIENhblNldFNlbGVjdGVk
QXR0cmlidXRlLAorICAgIENhblNldFNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUsCisgICAgQ2Fu
U2V0VGV4dFJhbmdlQXR0cmlidXRlcywKKyAgICBDYW5TZXRWYWx1ZUF0dHJpYnV0ZSwKKyAgICBD
YW52YXNIYXNGYWxsYmFja0NvbnRlbnQsCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIENhcmV0QnJvd3NpbmdFbmFibGVkLAorI2VuZGlmCisgICAgQ2Vs
bHMsCisgICAgQ2xhc3NMaXN0LAorICAgIENsaWNrUG9pbnQsCisgICAgQ29sb3JWYWx1ZSwKKyAg
ICBDb2x1bW5zLAorICAgIENvbHVtbkNvdW50LAorICAgIENvbHVtbkhlYWRlciwKKyAgICBDb2x1
bW5IZWFkZXJzLAorICAgIENvbHVtbkluZGV4LAorICAgIENvbHVtbkluZGV4UmFuZ2UsCisgICAg
Q29tcHV0ZWRMYWJlbCwKKyAgICBDb21wdXRlZFJvbGVTdHJpbmcsCisgICAgQ3VycmVudFN0YXRl
LAorICAgIEN1cnJlbnRWYWx1ZSwKKyAgICBEYXRldGltZUF0dHJpYnV0ZVZhbHVlLAorICAgIERl
Y3JlbWVudEJ1dHRvbiwKKyAgICBEZXNjcmlwdGlvbiwKKyAgICBEaXNjbG9zZWRCeVJvdywKKyAg
ICBEaXNjbG9zZWRSb3dzLAorICAgIERvY3VtZW50RW5jb2RpbmcsCisgICAgRG9jdW1lbnRMaW5r
cywKKyAgICBEb2N1bWVudFVSSSwKKyAgICBFZGl0YWJsZUFuY2VzdG9yLAorICAgIEVsZW1lbnRS
ZWN0LAorICAgIEVzdGltYXRlZExvYWRpbmdQcm9ncmVzcywKKyAgICBFeHBhbmRlZFRleHRWYWx1
ZSwKKyAgICBFeHBvc2VzVGl0bGVVSUVsZW1lbnQsCisgICAgRmlsZVVwbG9hZEJ1dHRvblJldHVy
bnNWYWx1ZUluVGl0bGUsCisgICAgRm9jdXNhYmxlQW5jZXN0b3IsCisgICAgSGFzQVJJQVZhbHVl
Tm93LAorICAgIEhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSwKKyAgICBIYXNCb2xkRm9u
dCwKKyAgICBIYXNDaGlsZHJlbiwKKyAgICBIYXNIaWdobGlnaHRpbmcsCisgICAgSGFzSXRhbGlj
Rm9udCwKKyAgICBIYXNQbGFpblRleHQsCisgICAgSGFzUG9wdXAsCisgICAgSGFzVW5kZXJsaW5l
LAorICAgIEhlYWRlckNvbnRhaW5lciwKKyAgICBIZWFkaW5nTGV2ZWwsCisgICAgSGVscFRleHQs
CisgICAgSGllcmFyY2hpY2FsTGV2ZWwsCisgICAgSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IsCisg
ICAgSG9yaXpvbnRhbFNjcm9sbEJhciwKKyAgICBJZGVudGlmaWVyQXR0cmlidXRlLAorICAgIElu
dmFsaWRTdGF0dXMsCisgICAgSW5jcmVtZW50QnV0dG9uLAorICAgIElzQWNjZXNzaWJpbGl0eUln
bm9yZWQsCisgICAgSXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyLAorICAgIElz
QW5vbnltb3VzTWF0aE9wZXJhdG9yLAorICAgIElzR3JhYmJlZCwKKyAgICBJc0FSSUFUcmVlR3Jp
ZFJvdywKKyAgICBJc0F0dGFjaG1lbnQsCisgICAgSXNCdXR0b24sCisgICAgSXNCdXN5LAorICAg
IElzQ2hlY2tlZCwKKyAgICBJc0NvbGxhcHNlZCwKKyAgICBJc0NvbHVtbkhlYWRlckNlbGwsCisg
ICAgSXNDb250cm9sLAorICAgIElzRGF0YVRhYmxlLAorICAgIElzRGVzY3JpcHRpb25MaXN0LAor
ICAgIElzRW5hYmxlZCwKKyAgICBJc0V4cGFuZGVkLAorICAgIElzRXhwb3NhYmxlLAorICAgIElz
RmllbGRzZXQsCisgICAgSXNGaWxlVXBsb2FkQnV0dG9uLAorICAgIElzRm9jdXNlZCwKKyAgICBJ
c0dyb3VwLAorICAgIElzSW1hZ2VNYXBMaW5rLAorICAgIElzSW5jcmVtZW50b3IsCisgICAgSXNJ
bmRldGVybWluYXRlLAorICAgIElzSW5saW5lVGV4dCwKKyAgICBJc0lucHV0SW1hZ2UsCisgICAg
SXNJbnNpZGVMaXZlUmVnaW9uLAorICAgIElzSGVhZGluZywKKyAgICBJc0hvdmVyZWQsCisgICAg
SXNLZXlib2FyZEZvY3VzYWJsZSwKKyAgICBJc0xhbmRtYXJrLAorICAgIElzTGluaywKKyAgICBJ
c0xpbmtlZCwKKyAgICBJc0xpc3QsCisgICAgSXNMaXN0Qm94LAorICAgIElzTG9hZGVkLAorICAg
IElzTWF0aEVsZW1lbnQsCisgICAgSXNNYXRoRnJhY3Rpb24sCisgICAgSXNNYXRoRmVuY2VkLAor
ICAgIElzTWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0LAorICAgIElzTWF0aFJvdywKKyAgICBJc01h
dGhVbmRlck92ZXIsCisgICAgSXNNYXRoUm9vdCwKKyAgICBJc01hdGhTcXVhcmVSb290LAorICAg
IElzTWF0aFRleHQsCisgICAgSXNNYXRoTnVtYmVyLAorICAgIElzTWF0aE9wZXJhdG9yLAorICAg
IElzTWF0aEZlbmNlT3BlcmF0b3IsCisgICAgSXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IsCisgICAg
SXNNYXRoSWRlbnRpZmllciwKKyAgICBJc01hdGhUYWJsZSwKKyAgICBJc01hdGhUYWJsZVJvdywK
KyAgICBJc01hdGhUYWJsZUNlbGwsCisgICAgSXNNYXRoTXVsdGlzY3JpcHQsCisgICAgSXNNYXRo
VG9rZW4sCisgICAgSXNNYXRoU2NyaXB0T2JqZWN0LAorICAgIElzTWVkaWFUaW1lbGluZSwKKyAg
ICBJc01lbnUsCisgICAgSXNNZW51QmFyLAorICAgIElzTWVudUJ1dHRvbiwKKyAgICBJc01lbnVJ
dGVtLAorICAgIElzTWVudUxpc3QsCisgICAgSXNNZW51TGlzdE9wdGlvbiwKKyAgICBJc01lbnVM
aXN0UG9wdXAsCisgICAgSXNNZW51UmVsYXRlZCwKKyAgICBJc01ldGVyLAorICAgIElzTXVsdGlT
ZWxlY3RhYmxlLAorICAgIElzT3JkZXJlZExpc3QsCisgICAgSXNPdXRwdXQsCisgICAgSXNQYXNz
d29yZEZpZWxkLAorICAgIElzUHJlc3NlZCwKKyAgICBJc1Byb2dyZXNzSW5kaWNhdG9yLAorICAg
IElzUmFuZ2VDb250cm9sLAorICAgIElzUmVxdWlyZWQsCisgICAgSXNSb3dIZWFkZXJDZWxsLAor
ICAgIElzU2Nyb2xsYmFyLAorICAgIElzU2VhcmNoRmllbGQsCisgICAgSXNTZWxlY3RlZCwKKyAg
ICBJc1NlbGVjdGVkT3B0aW9uQWN0aXZlLAorICAgIElzU2hvd2luZ1ZhbGlkYXRpb25NZXNzYWdl
LAorICAgIElzU2xpZGVyLAorICAgIElzU3R5bGVGb3JtYXRHcm91cCwKKyAgICBJc1RhYmxlLAor
ICAgIElzVGFibGVDZWxsLAorICAgIElzVGFibGVDb2x1bW4sCisgICAgSXNUYWJsZVJvdywKKyAg
ICBJc1RleHRDb250cm9sLAorICAgIElzVHJlZSwKKyAgICBJc1RyZWVJdGVtLAorICAgIElzVW5v
cmRlcmVkTGlzdCwKKyAgICBJc1VudmlzaXRlZCwKKyAgICBJc1ZhbHVlQXV0b2ZpbGxlZCwKKyAg
ICBJc1ZhbHVlQXV0b2ZpbGxBdmFpbGFibGUsCisgICAgSXNWaXNpYmxlLAorICAgIElzVmlzaXRl
ZCwKKyAgICBLZXlTaG9ydGN1dHNWYWx1ZSwKKyAgICBMYW5ndWFnZSwKKyAgICBMYXlvdXRDb3Vu
dCwKKyAgICBMaW5rUmVsVmFsdWUsCisgICAgTGlua2VkVUlFbGVtZW50cywKKyAgICBMaXZlUmVn
aW9uQXRvbWljLAorICAgIExpdmVSZWdpb25SZWxldmFudCwKKyAgICBMaXZlUmVnaW9uU3RhdHVz
LAorICAgIE1hdGhGZW5jZWRPcGVuU3RyaW5nLAorICAgIE1hdGhGZW5jZWRDbG9zZVN0cmluZywK
KyAgICBNYXRoTGluZVRoaWNrbmVzcywKKyAgICBNYXRoUHJlc2NyaXB0cywKKyAgICBNYXRoUG9z
dHNjcmlwdHMsCisgICAgTWF0aFJhZGljYW5kT2JqZWN0LAorICAgIE1hdGhSb290SW5kZXhPYmpl
Y3QsCisgICAgTWF0aFVuZGVyT2JqZWN0LAorICAgIE1hdGhPdmVyT2JqZWN0LAorICAgIE1hdGhO
dW1lcmF0b3JPYmplY3QsCisgICAgTWF0aERlbm9taW5hdG9yT2JqZWN0LAorICAgIE1hdGhCYXNl
T2JqZWN0LAorICAgIE1hdGhTdWJzY3JpcHRPYmplY3QsCisgICAgTWF0aFN1cGVyc2NyaXB0T2Jq
ZWN0LAorICAgIE1heFZhbHVlRm9yUmFuZ2UsCisgICAgTWluVmFsdWVGb3JSYW5nZSwKKyAgICBP
cmllbnRhdGlvbiwKKyAgICBQYXRoLAorICAgIFBsYWNlaG9sZGVyVmFsdWUsCisgICAgUHJlc3Nl
ZElzUHJlc2VudCwKKyAgICBQb3B1cFZhbHVlLAorICAgIFBvc0luU2V0LAorICAgIFByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gsCisgICAgUmVhZE9ubHlWYWx1ZSwKKyAgICBSb2xlVmFs
dWUsCisgICAgUm9sZVBsYXRmb3JtU3RyaW5nLAorICAgIFJvbGVEZXNjcmlwdGlvbiwKKyAgICBS
b3dzLAorICAgIFJvd0NvdW50LAorICAgIFJvd0hlYWRlcnMsCisgICAgUm93SW5kZXgsCisgICAg
Um93SW5kZXhSYW5nZSwKKyAgICBTZWxlY3RlZENoaWxkcmVuLAorICAgIFNlbGVjdGVkUmFkaW9C
dXR0b24sCisgICAgU2VsZWN0ZWRUYWJJdGVtLAorICAgIFNlc3Npb25JRCwKKyAgICBTZXRTaXpl
LAorICAgIFNvcnREaXJlY3Rpb24sCisgICAgU3BlYWtBcywKKyAgICBTcGVlY2hIaW50LAorICAg
IFN0cmluZ1ZhbHVlLAorICAgIFN1cHBvcnRzUm93Q291bnRDaGFuZ2UsCisgICAgU3VwcG9ydHNE
cmFnZ2luZywKKyAgICBTdXBwb3J0c0Ryb3BwaW5nLAorICAgIFN1cHBvcnRzQVJJQU93bnMsCisg
ICAgU3VwcG9ydHNDdXJyZW50LAorICAgIFN1cHBvcnRzRGF0ZXRpbWVBdHRyaWJ1dGUsCisgICAg
U3VwcG9ydHNFeHBhbmRlZCwKKyAgICBTdXBwb3J0c0V4cGFuZGVkVGV4dFZhbHVlLAorICAgIFN1
cHBvcnRzTGl2ZVJlZ2lvbiwKKyAgICBTdXBwb3J0c1BhdGgsCisgICAgU3VwcG9ydHNQb3NJblNl
dCwKKyAgICBTdXBwb3J0c1ByZXNzQWN0aW9uLAorICAgIFN1cHBvcnRzUmFuZ2VWYWx1ZSwKKyAg
ICBTdXBwb3J0c1JlcXVpcmVkQXR0cmlidXRlLAorICAgIFN1cHBvcnRzU2VsZWN0ZWRSb3dzLAor
ICAgIFN1cHBvcnRzU2V0U2l6ZSwKKyAgICBUYWJDaGlsZHJlbiwKKyAgICBUYWJsZUxldmVsLAor
ICAgIFRhZ05hbWUsCisgICAgVGV4dExlbmd0aCwKKyAgICBUaXRsZSwKKyAgICBUaXRsZUF0dHJp
YnV0ZVZhbHVlLAorICAgIFRpdGxlVUlFbGVtZW50LAorICAgIFVSTCwKKyAgICBWYWx1ZUF1dG9m
aWxsQnV0dG9uVHlwZSwKKyAgICBWYWx1ZURlc2NyaXB0aW9uLAorICAgIFZhbHVlRm9yUmFuZ2Us
CisgICAgVmFsaWRhdGlvbk1lc3NhZ2UsCisgICAgVmVydGljYWxTY3JvbGxCYXIsCisgICAgVmlz
aWJsZUNoaWxkcmVuLAorICAgIFZpc2libGVSb3dzLAorICAgIFdlYkFyZWEsCit9OworCit0eXBl
ZGVmIHN0ZDo6cGFpcjxBWElELCBBWElEPiBBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTWF0aE11
bHRpc2NyaXB0UGFpcjsKKworc3RydWN0IEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVUZXh0IHsK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZSB0ZXh0U291cmNl
OworfTsKKwordXNpbmcgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudCA9IFZhcmlhbnQ8c3RkOjpudWxs
cHRyX3QsIFN0cmluZywgYm9vbCwgaW50LCB1bnNpZ25lZCwgZG91YmxlLCBmbG9hdCwgdWludDY0
X3QsIENvbG9yLCBVUkwsIExheW91dFJlY3QsIEZsb2F0UmVjdCwgQVhJRCwgSW50UG9pbnQsIE9w
dGlvblNldDxTcGVha0FzPiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4sIFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlVGV4dD4sIFZlY3RvcjxBWElEPiwgVmVjdG9yPEFjY2Vz
c2liaWxpdHlJc29sYXRlZFRyZWVNYXRoTXVsdGlzY3JpcHRQYWlyPiwgVmVjdG9yPFN0cmluZz4s
IFBhdGg+OwordHlwZWRlZiBIYXNoTWFwPEFYUHJvcGVydHlOYW1lLCBBWFByb3BlcnR5VmFsdWVW
YXJpYW50LCBXVEY6OkludEhhc2g8QVhQcm9wZXJ0eU5hbWU+LCBXVEY6OlN0cm9uZ0VudW1IYXNo
VHJhaXRzPEFYUHJvcGVydHlOYW1lPj4gQVhQcm9wZXJ0eU1hcDsKKworc3RydWN0IEFYUHJvcGVy
dHlDaGFuZ2UgeworICAgIEFYSUQgYXhJRCB7IEludmFsaWRBWElEIH07IC8vIElEIG9mIHRoZSBv
YmplY3Qgd2hvc2UgcHJvcGVydGllcyBjaGFuZ2VkLgorICAgIEFYUHJvcGVydHlNYXAgcHJvcGVy
dGllczsgLy8gQ2hhbmdlZCBwcm9wZXJ0aWVzLgorfTsKKwogY2xhc3MgQVhJc29sYXRlZFRyZWUg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QVhJc29sYXRlZFRyZWU+IHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBWElzb2xhdGVkVHJlZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIGZyaWVuZCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiwgQVhJc29sYXRlZFRyZWUmKTsKQEAgLTc0LDYgKzM1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZ2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFYQ29yZU9iamVjdCosIGJvb2wgYXR0
YWNoV3JhcHBlcik7CiAgICAgdm9pZCB1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYpOworICAgIHZv
aWQgdXBkYXRlTm9kZUNoZWNrZWRTdGF0ZShjb25zdCBBWENvcmVPYmplY3QmKTsKICAgICB2b2lk
IHVwZGF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0Jik7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbihB
WENvcmVPYmplY3QmKTsKIApAQCAtMTE5LDYgKzM5Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gV3Jp
dHRlbiB0byBieSBtYWluIHRocmVhZCB1bmRlciBsb2NrLCBhY2Nlc3NlZCBhbmQgYXBwbGllZCBi
eSBBWCB0aHJlYWQuCiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG1fcm9vdE5vZGU7CiAg
ICAgVmVjdG9yPE5vZGVDaGFuZ2U+IG1fcGVuZGluZ0FwcGVuZHM7IC8vIE5vZGVzIHRvIGJlIGFk
ZGVkIHRvIHRoZSB0cmVlIGFuZCBwbGF0Zm9ybS13cmFwcGVkLgorICAgIFZlY3RvcjxBWFByb3Bl
cnR5Q2hhbmdlPiBtX3BlbmRpbmdQcm9wZXJ0eUNoYW5nZXM7CiAgICAgVmVjdG9yPEFYSUQ+IG1f
cGVuZGluZ05vZGVSZW1vdmFsczsgLy8gTm9kZXMgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0cmVl
LgogICAgIFZlY3RvcjxBWElEPiBtX3BlbmRpbmdTdWJ0cmVlUmVtb3ZhbHM7IC8vIE5vZGVzIHdo
b3NlIHN1YnRyZWVzIGFyZSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAgICAgVmVjdG9y
PHN0ZDo6cGFpcjxBWElELCBWZWN0b3I8QVhJRD4+PiBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXM7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>