<?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>235414</bug_id>
          
          <creation_ts>2022-01-20 12:07:50 -0800</creation_ts>
          <short_desc>AX: Move Mac subrole logic to new subrolePlatformString AXCoreObject interface method</short_desc>
          <delta_ts>2022-01-21 17:25:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</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>1832522</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-20 12:07:50 -0800</bug_when>
    <thetext>This causes string comparisons to fail unexpectedly not match here:

    if (backingObject-&gt;isStyleFormatGroup()) {
        using namespace HTMLNames;
        auto tagName = backingObject-&gt;tagName();
        if (tagName == kbdTag)
            return @&quot;AXKeyboardInputStyleGroup&quot;;
        if (tagName == codeTag)
            return @&quot;AXCodeStyleGroup&quot;;
        if (tagName == preTag)
            return @&quot;AXPreformattedStyleGroup&quot;;
        if (tagName == sampTag)
            return @&quot;AXSampleStyleGroup&quot;;
        if (tagName == varTag)
            return @&quot;AXVariableStyleGroup&quot;;
        if (tagName == citeTag)
            return @&quot;AXCiteStyleGroup&quot;;
        ASSERT_NOT_REACHED();
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832524</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-20 12:08:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/87842864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832529</commentid>
    <comment_count>2</comment_count>
      <attachid>449601</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-20 12:21:47 -0800</bug_when>
    <thetext>Created attachment 449601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832544</commentid>
    <comment_count>3</comment_count>
      <attachid>449605</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-20 13:14:25 -0800</bug_when>
    <thetext>Created attachment 449605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832553</commentid>
    <comment_count>4</comment_count>
      <attachid>449605</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-01-20 13:33:37 -0800</bug_when>
    <thetext>Comment on attachment 449605
Patch

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

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2020
&gt; +        return Accessibility::retrieveValueFromMainThread&lt;String&gt;([protectedSelf = retainPtr(self)] () -&gt; String {

should we cache this rather than hitting main thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832672</commentid>
    <comment_count>5</comment_count>
      <attachid>449638</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-20 21:07:44 -0800</bug_when>
    <thetext>Created attachment 449638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832674</commentid>
    <comment_count>6</comment_count>
      <attachid>449639</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-20 21:51:02 -0800</bug_when>
    <thetext>Created attachment 449639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832677</commentid>
    <comment_count>7</comment_count>
      <attachid>449639</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-01-20 22:18:07 -0800</bug_when>
    <thetext>Comment on attachment 449639
Patch

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

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1807
&gt; +        &amp;&amp; (!backingObject-&gt;isModel() || backingObject-&gt;modelElementChildren().isEmpty())

I think even if the model is empty we want to return the special subrole so that VO can land on it directly and know that it&apos;s a model</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832762</commentid>
    <comment_count>8</comment_count>
      <attachid>449658</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 08:09:48 -0800</bug_when>
    <thetext>Created attachment 449658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832764</commentid>
    <comment_count>9</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 08:11:20 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #7)
&gt; Comment on attachment 449639 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449639&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1807
&gt; &gt; +        &amp;&amp; (!backingObject-&gt;isModel() || backingObject-&gt;modelElementChildren().isEmpty())
&gt; 
&gt; I think even if the model is empty we want to return the special subrole so
&gt; that VO can land on it directly and know that it&apos;s a model
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832820</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-21 11:22:49 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #8)
&gt; Created attachment 449658 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ a/Source/WebCore/accessibility/AccessibilityObject.cpp

+String AccessibilityObject::subrolePlatformString() const
+{
+    return String();
+}
+
I think we do these hallowed implementations as inlines in the header.

--- a/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm
+++ a/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm

+    setProperty(AXPropertyName::SubrolePlatformString, object.subrolePlatformString().isolatedCopy());

We can do this in the cross-platform initializeData since it is the same for all platforms.

--- a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
+++ a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm

+String AccessibilityObject::subrolePlatformString() const
+{

This can not be implemented twice in AccessibilityObject.cpp and Mac.mm.

--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
+++ a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

+    if (subrole != String())
+        return subrole;

Change to if (!subrole.isEmpty())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832841</commentid>
    <comment_count>11</comment_count>
      <attachid>449684</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 12:25:20 -0800</bug_when>
    <thetext>Created attachment 449684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832847</commentid>
    <comment_count>12</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 12:30:18 -0800</bug_when>
    <thetext>&gt; +String AccessibilityObject::subrolePlatformString() const
&gt; +{
&gt; +    return String();
&gt; +}
&gt; +
&gt; I think we do these hallowed implementations as inlines in the header.
&gt; --- a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
&gt; +++ a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
&gt; 
&gt; +String AccessibilityObject::subrolePlatformString() const
&gt; +{
&gt; 
&gt; This can not be implemented twice in AccessibilityObject.cpp and Mac.mm.
The patch diff doesn&apos;t show enough context for you to have seen this, but it&apos;s not implemented twice. I added the hollow implementation of subrolePlatformString to the .cpp source file to match how we do it for roles, as that is already wrapped in an #if !PLATFORM(MAC) guard:

#if !PLATFORM(MAC)
String AccessibilityObject::rolePlatformString() const
{
    return Accessibility::roleToPlatformString(roleValue());
}

String AccessibilityObject::rolePlatformDescription() const
{
    // FIXME: implement in other platforms.
    return String();
}

String AccessibilityObject::subrolePlatformString() const
{
    return String();
}
#endif

Then we provide the real implementation in AccessibilityObjectMac.mm.

I can still change it if you&apos;d like, though.

Fixed your other two comments, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832851</commentid>
    <comment_count>13</comment_count>
      <attachid>449686</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 12:31:35 -0800</bug_when>
    <thetext>Created attachment 449686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832945</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-21 17:25:01 -0800</bug_when>
    <thetext>Committed r288390 (246287@main): &lt;https://commits.webkit.org/246287@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449686.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449601</attachid>
            <date>2022-01-20 12:21:47 -0800</date>
            <delta_ts>2022-01-20 13:14:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220120142145.patch</filename>
            <type>text/plain</type>
            <size>3674</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU0OTU5NTM2ODE2ZWMx
M2Y0ZTY0OTA3NDQzNDYwNjgwMTRkMTRmZC4uOTE0NWQ4NmNlNmYzM2YzMzA4MDFlYWM5M2ZmMjY1
NDkyNmExMDlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgc3Vicm9sZV0gdXNlcyBBdG9tU3RyaW5ncyBvZmYgdGhlIG1h
aW4tdGhyZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisJCQorICAgICAgICBQcmlvciB0byB0aGlzIHBhdGNoLCBgc3Vicm9sZWAg
dHJpZXMgdG8gY29tcGFyZSBiYWNraW5nT2JqZWN0LT50YWdOYW1lKCkKKyAgICAgICAgd2l0aCBo
YXJkY29kZWQgSFRNTCB0YWduYW1lcyAoZS5nLiBrYmRUYWcpLiBUaGlzIGNhdXNlcyBzdHJpbmcg
Y29tcGFyaXNvbnMKKyAgICAgICAgdG8gZmFpbCB1bmV4cGVjdGVkbHkgd2hlbiBydW4gb2ZmIHRo
ZSBtYWluIHRocmVhZCAobGlrZSB3aGF0IGhhcHBlbnMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlKSwK
KyAgICAgICAgYXMgYEF0b21TdHJpbmdgcyBhcmUgbm90IHRocmVhZC1zYWZlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkaXNwYXRjaCB0byB0aGUgbWFpbnRocmVhZCB3aGVuIG1h
a2luZyB0aGVzZSBzdHJpbmcgY29tcGFyaXNvbnMuCisKKyAgICAgICAgRml4ZXMgYWNjZXNzaWJp
bGl0eS9tYWMvc3Vicm9sZXMtZm9yLWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZCB0
cmVlIG1vZGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgc3Vicm9sZV0pOgorICAgICAgICBJbiBgaWYgKGJhY2tpbmdPYmplY3QtPmlzU3R5bGVG
b3JtYXRHcm91cCgpKWAsIGRlZmVyIHRvIHRoZSBtYWludGhyZWFkCisgICAgICAgIHdoZW4gY29t
cGFyaW5nIGJhY2tpbmdPYmplY3QtPnRhZ05hbWUoKSB3aXRoIGhhcmRjb2RlZCBIVE1MIHRhZ25h
bWVzIChlLmcuIGtiZFRhZykuCisKIDIwMjItMDEtMTkgIFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJz
QGFwcGxlLmNvbT4KIAogICAgICAgICBMaW1pdCB0aGUgZGVwcmVjYXRlZCBDU1NPTVByaW1pdGl2
ZVZhbHVlIHRvIGZvcm1lcmx5IHN0YW5kYXJkaXplZCB1bml0IHR5cGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGRkODJmMWU1MmVjMWEzOGU1ZmNjOGRmZGIy
MjRmNWVjZDE1ODU3ZDAuLjI1OTJmZWU0ODhhNzcyMDc0ZTRiNzM2M2FhNjBhMzNmMzNkYzQ3NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0yMDE2LDIxICsy
MDE2LDI5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIHJl
dHVybiBAIkFYU3Vic2NyaXB0U3R5bGVHcm91cCI7CiAKICAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKLSAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKLSAgICAgICAgYXV0byB0YWdOYW1lID0gYmFja2luZ09iamVjdC0+dGFnTmFtZSgpOwotICAg
ICAgICBpZiAodGFnTmFtZSA9PSBrYmRUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWEtleWJv
YXJkSW5wdXRTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRhZ05hbWUgPT0gY29kZVRhZykKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFt
ZSA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFByZWZvcm1hdHRlZFN0eWxlR3Jv
dXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBzYW1wVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRhZ05hbWUgPT0gdmFyVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAo
dGFnTmFtZSA9PSBjaXRlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDaXRlU3R5bGVHcm91
cCI7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyBFbnN1cmUgdGhp
cyBzdHJpbmcgY29tcGFyaXNvbiBoYXBwZW5zIG9uIHRoZSBtYWluLXRocmVhZCBzaW5jZSBBdG9t
U3RyaW5ncyBhcmUgbm90IHRocmVhZC1zYWZlLgorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFN0cmluZz4oW3Byb3RlY3RlZFNlbGYgPSBy
ZXRhaW5QdHIoc2VsZildICgpIC0+IFN0cmluZyB7CisgICAgICAgICAgICBhdXRvKiBiYWNraW5n
T2JqZWN0ID0gcHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3Q7CisgICAgICAgICAg
ICBpZiAoIWJhY2tpbmdPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgICAgICAgICB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworICAgICAgICAgICAgYXV0
byB0YWdOYW1lID0gYmFja2luZ09iamVjdC0+dGFnTmFtZSgpOworICAgICAgICAgICAgaWYgKHRh
Z05hbWUgPT0ga2JkVGFnKQorICAgICAgICAgICAgICAgIHJldHVybiAiQVhLZXlib2FyZElucHV0
U3R5bGVHcm91cCI7CisgICAgICAgICAgICBpZiAodGFnTmFtZSA9PSBjb2RlVGFnKQorICAgICAg
ICAgICAgICAgIHJldHVybiAiQVhDb2RlU3R5bGVHcm91cCI7CisgICAgICAgICAgICBpZiAodGFn
TmFtZSA9PSBwcmVUYWcpCisgICAgICAgICAgICAgICAgcmV0dXJuICJBWFByZWZvcm1hdHRlZFN0
eWxlR3JvdXAiOworICAgICAgICAgICAgaWYgKHRhZ05hbWUgPT0gc2FtcFRhZykKKyAgICAgICAg
ICAgICAgICByZXR1cm4gIkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICBpZiAodGFn
TmFtZSA9PSB2YXJUYWcpCisgICAgICAgICAgICAgICAgcmV0dXJuICJBWFZhcmlhYmxlU3R5bGVH
cm91cCI7CisgICAgICAgICAgICBpZiAodGFnTmFtZSA9PSBjaXRlVGFnKQorICAgICAgICAgICAg
ICAgIHJldHVybiAiQVhDaXRlU3R5bGVHcm91cCI7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgLy8gUnVieSBzdWJyb2xlcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449605</attachid>
            <date>2022-01-20 13:14:25 -0800</date>
            <delta_ts>2022-01-20 21:07:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220120151424.patch</filename>
            <type>text/plain</type>
            <size>3691</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uYzUzMjI2OTA3NDkxZjQ2OTE2NWJlOWY0NWUwMzc0
ZjVlMDU2Y2QyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgc3Vicm9sZV0gdXNlcyBBdG9tU3RyaW5ncyBvZmYgdGhlIG1h
aW4tdGhyZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgYHN1YnJvbGVgIHRy
aWVzIHRvIGNvbXBhcmUgYGJhY2tpbmdPYmplY3QtPnRhZ05hbWUoKWAKKyAgICAgICAgd2l0aCBo
YXJkY29kZWQgSFRNTCB0YWduYW1lcyAoZS5nLiBrYmRUYWcpLiBUaGlzIGNhdXNlcyBzdHJpbmcg
Y29tcGFyaXNvbnMKKyAgICAgICAgdG8gZmFpbCB1bmV4cGVjdGVkbHkgd2hlbiBydW4gb2ZmIHRo
ZSBtYWluIHRocmVhZCAobGlrZSB3aGF0IGhhcHBlbnMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlKSwK
KyAgICAgICAgYXMgYEF0b21TdHJpbmdgcyBhcmUgbm90IHRocmVhZC1zYWZlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkaXNwYXRjaCB0byB0aGUgbWFpbnRocmVhZCB3aGVuIG1h
a2luZyB0aGVzZSBzdHJpbmcgY29tcGFyaXNvbnMuCisKKyAgICAgICAgRml4ZXMgYWNjZXNzaWJp
bGl0eS9tYWMvc3Vicm9sZXMtZm9yLWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZCB0
cmVlIG1vZGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgc3Vicm9sZV0pOgorICAgICAgICBJbiBgaWYgKGJhY2tpbmdPYmplY3QtPmlzU3R5bGVG
b3JtYXRHcm91cCgpKWAsIGRlZmVyIHRvIHRoZSBtYWludGhyZWFkCisgICAgICAgIHdoZW4gY29t
cGFyaW5nIGJhY2tpbmdPYmplY3QtPnRhZ05hbWUoKSB3aXRoIGhhcmRjb2RlZCBIVE1MIHRhZ25h
bWVzIChlLmcuIGtiZFRhZykuCisKIDIwMjItMDEtMjAgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93
QGFwcGxlLmNvbT4KIAogICAgICAgICBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4gY2hp
bGRyZW5JRHMgYW5kIGNoaWxkcmVuIGxvY2FsIHZhcmlhYmxlcyBjb3VsZCBnZXQgb3V0IG9mIHN5
bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggZGQ4MmYxZTUy
ZWMxYTM4ZTVmY2M4ZGZkYjIyNGY1ZWNkMTU4NTdkMC4uMjU5MmZlZTQ4OGE3NzIwNzRlNGI3MzYz
YWE2MGEzM2YzM2RjNDc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0KQEAgLTIwMTYsMjEgKzIwMTYsMjkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgcmV0dXJuIEAiQVhTdWJzY3JpcHRTdHlsZUdyb3VwIjsKIAogICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc1N0eWxlRm9ybWF0R3JvdXAoKSkgewotICAgICAgICB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwotICAgICAgICBhdXRvIHRhZ05hbWUgPSBiYWNraW5nT2JqZWN0
LT50YWdOYW1lKCk7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IGtiZFRhZykKLSAgICAgICAgICAg
IHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFt
ZSA9PSBjb2RlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDb2RlU3R5bGVHcm91cCI7Ci0g
ICAgICAgIGlmICh0YWdOYW1lID09IHByZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYUHJl
Zm9ybWF0dGVkU3R5bGVHcm91cCI7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IHNhbXBUYWcpCi0g
ICAgICAgICAgICByZXR1cm4gQCJBWFNhbXBsZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFn
TmFtZSA9PSB2YXJUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFZhcmlhYmxlU3R5bGVHcm91
cCI7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IGNpdGVUYWcpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWENpdGVTdHlsZUdyb3VwIjsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIC8vIEVuc3VyZSB0aGlzIHN0cmluZyBjb21wYXJpc29uIGhhcHBlbnMgb24gdGhlIG1haW4t
dGhyZWFkIHNpbmNlIEF0b21TdHJpbmdzIGFyZSBub3QgdGhyZWFkLXNhZmUuCisgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8U3RyaW5nPihb
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gU3RyaW5nIHsKKyAgICAgICAg
ICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09i
amVjdDsKKyAgICAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisKKyAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CisgICAgICAgICAgICBhdXRvIHRhZ05hbWUgPSBiYWNraW5nT2JqZWN0LT50YWdOYW1lKCk7Cisg
ICAgICAgICAgICBpZiAodGFnTmFtZSA9PSBrYmRUYWcpCisgICAgICAgICAgICAgICAgcmV0dXJu
ICJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIGlmICh0YWdOYW1lID09
IGNvZGVUYWcpCisgICAgICAgICAgICAgICAgcmV0dXJuICJBWENvZGVTdHlsZUdyb3VwIjsKKyAg
ICAgICAgICAgIGlmICh0YWdOYW1lID09IHByZVRhZykKKyAgICAgICAgICAgICAgICByZXR1cm4g
IkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgICAgICBpZiAodGFnTmFtZSA9PSBz
YW1wVGFnKQorICAgICAgICAgICAgICAgIHJldHVybiAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAg
ICAgICAgICAgIGlmICh0YWdOYW1lID09IHZhclRhZykKKyAgICAgICAgICAgICAgICByZXR1cm4g
IkFYVmFyaWFibGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIGlmICh0YWdOYW1lID09IGNpdGVU
YWcpCisgICAgICAgICAgICAgICAgcmV0dXJuICJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICB9KTsKICAgICB9CiAKICAgICAvLyBSdWJ5IHN1YnJvbGVzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449638</attachid>
            <date>2022-01-20 21:07:44 -0800</date>
            <delta_ts>2022-01-20 21:55:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220120230743.patch</filename>
            <type>text/plain</type>
            <size>28394</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uMWM1NzZiZjQzZWViNGQzYTNmNDZjOGQzNWE5ZmMz
Y2RkMzI2YmM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtb3N0IG9mIHRoZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBh
IG5ldyBBWENvcmVPYmplY3QgaW50ZXJmYWNlCisgICAgICAgIG1ldGhvZCwgc3Vicm9sZVBsYXRm
b3JtU3RyaW5nIChtYXRjaGluZyB0aGUgbmFtaW5nIG9mIHJvbGVQbGF0Zm9ybVN0cmluZykuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhY2hlIGEgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcKKyAgICAgICAgcHJvcGVydHkgaW4gaXNvbGF0ZWQgdHJlZSBvYmpl
Y3RzLgorCisgICAgICAgIFRoaXMgZml4ZXMgYWNjZXNzaWJpbGl0eS9tYWMvc3Vicm9sZXMtZm9y
LWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZAorICAgICAgICB0cmVlIG1vZGUgYmVj
YXVzZSB0aGlzIHRlc3QgZXhlcmNpc2VkIHRoZSBgYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1h
dEdyb3VwKClgIGNvZGVwYXRoLAorICAgICAgICB3aGljaCBpbiB0dXJuIHRyaWVkIHRvIGNvbXBh
cmUgQXRvbVN0cmluZ3Mgb2ZmIHRoZSBtYWluLXRocmVhZCwgd2hpY2ggd29uJ3Qgd29yaworICAg
ICAgICAodGhlIHN0cmluZyBjb21wYXJpc29ucyB3aWxsIHVuZXhwZWN0ZWRseSBub3QgbWF0Y2gp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oOgorICAgICAgICBBZGQgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJyb2xl
UGxhdGZvcm1TdHJpbmcgcHJvcGVydHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKToKKyAgICAgICAgSW5p
dGlhbGl6ZSBuZXcgQVhQcm9wZXJ0eU5hbWU6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZy4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGlzRW1wdHlHcm91cF0pOgorICAgICAgICBBZGRlZC4KKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgc3Vicm9sZV0pOgorICAgICAgICBEZWZl
ciB0byBzdWJyb2xlUGxhdGZvcm1TdHJpbmcgZm9yIGRldGVybWluaW5nIGFsbCBzdWJyb2xlcyBl
eGNlcHQgQVhFbXB0eUdyb3VwLgorCiAyMDIyLTAxLTIwICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIGNo
aWxkcmVuSURzIGFuZCBjaGlsZHJlbiBsb2NhbCB2YXJpYWJsZXMgY291bGQgZ2V0IG91dCBvZiBz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCAxMjcyNmQxZDI0MWM0MDUwODY2YTAxODBjNmIxNWNkZTEzN2MyNzM0
Li5lMWIyNGFjZDE1YWIxNGE5MTdmYjQxZjI4NDJkOGEyNGUwNjlhZmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTI1NTQsNiArMjU1NCwxMiBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRm
b3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgaW4gb3RoZXIg
cGxhdGZvcm1zLgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKworU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCiAjZW5kaWYKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDBjYTM2MGIxNmRiYmRkYTNmMTdj
YWFhMzE3OWVlMzMyYTA4MGQ0MTQuLjFjMDcwNzI5NWE3NGQ5MDE3YmRkZGVmZTQyZWRjNGM4OTdi
MWNlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00MzUsNiArNDM1LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcm9sZTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcg
cm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHN1YnJvbGVQbGF0
Zm9ybVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xl
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4T2Jq
ZWN0Q2FjaGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDUw
ZTkwNDlmZTc4ODRlYmQ4MWMwMTA4YTdiNDIzMzQ4ODJkMGY4OC4uNzk4YjkxMzZmN2ZlM2NlMzk3
NTFlNjc4YTc5YTQ2ZWNjNjk1ZWUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTExOTUs
NiArMTE5NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyByb2xlRGVzY3JpcHRpb24o
KSBjb25zdCA9IDA7CiAgICAgLy8gTG9jYWxpemVkIHN0cmluZyB0aGF0IGRlc2NyaWJlcyBBUklB
IGxhbmRtYXJrIHJvbGVzLgogICAgIHZpcnR1YWwgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICAvLyBOb24tbG9jYWxpemVkIHN0cmluZyBhc3NvY2lh
dGVkIHdpdGggdGhlIG9iamVjdCdzIHN1YnJvbGUuCisgICAgdmlydHVhbCBTdHJpbmcgc3Vicm9s
ZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
KiBheE9iamVjdENhY2hlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggNDhhNjc4YzA3YTQzYjBhYTQzZmYxNWM2ZmFlZjFhMGMwNWRlOTcwZC4uYzhlZmIyZjhjMTRh
ZDQ1ZDFkYmIzODM5ZWI5NWMwNDZmMGVmN2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtMjcwLDYgKzI3MCw3IEBAIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVJv
bGU+KGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUpKTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZVBsYXRmb3JtU3RyaW5nKTsgfQog
ICAgIFN0cmluZyByb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZURlc2NyaXB0aW9uKTsgfQorICAg
IFN0cmluZyBzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vicm9sZVBsYXRmb3JtU3RyaW5n
KTsgfQogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QVJJQUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIGJvb2wgc3VwcG9ydHNQcmVzc0FjdGlvbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQcmVzc0FjdGlvbik7IH0KICAgICBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVj
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlY3RBdHRyaWJ1dGVWYWx1ZTxMYXlvdXRSZWN0
PihBWFByb3BlcnR5TmFtZTo6Qm91bmRpbmdCb3hSZWN0KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
aW5kZXggZDlkZmZhOTk5MjFlNzZlOGVhNzQ5NzQxZDhiYjk2YzcyZGE3NjBiOC4uMmY1OGIzN2Uz
ZjRkMjA4ZDhiOGIyYzI1NzE1NjVlYzg2NmYxNjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBA
IC0yODMsNiArMjgzLDcgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsK
ICAgICBTcGVha0FzLAogICAgIFNwZWVjaEhpbnQsCiAgICAgU3RyaW5nVmFsdWUsCisgICAgU3Vi
cm9sZVBsYXRmb3JtU3RyaW5nLAogICAgIFN1cHBvcnRzUm93Q291bnRDaGFuZ2UsCiAgICAgU3Vw
cG9ydHNEcmFnZ2luZywKICAgICBTdXBwb3J0c0Ryb3BwaW5nLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQppbmRleCAyZTJiMWUwNDhiNjA3MTNlNzg5NGY2NTc1Mzc4YTE1
ZTkyZjM1MThlLi43YmE1ZGU3NjQwOTBhMTQ4NWQzMGQ0MTFkZjY2YWIzNDJiNzQ3N2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQpAQCAtNDAsNiArNDAsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3Qg
QVhDb3JlT2JqZWN0JiBvYmplY3QsCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNw
ZWVjaEhpbnQsIG9iamVjdC5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHko
KSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUs
IG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCwgb2JqZWN0LmNhcmV0
QnJvd3NpbmdFbmFibGVkKCkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcsIG9iamVjdC5zdWJyb2xlUGxhdGZvcm1TdHJpbmcoKS5pc29sYXRl
ZENvcHkoKSk7CiAKICAgICBpZiAoaXNSb290KQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBjMTI1
YWQ1MmU3NTM5MWU2MTUyM2UwMDRlZWU3ZGJkNDRkMmFmMzJlLi5hMjg5NTM4NzRjODA1NTEyN2Y4
MGIyZmMzNjJkOWNlODIxZTcwMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTIwNiw2ICsy
MDYsMjIxIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmco
KSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhy
b2xlKTsKIH0KIAorU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0
cmluZygpIGNvbnN0Cit7CisgICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZpZWxkU3Vicm9sZTsKKyAgICBpZiAoaXNTZWFy
Y2hGaWVsZCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJy
b2xlOworCisgICAgaWYgKGlzQXR0YWNobWVudCgpKSB7CisgICAgICAgIE5TVmlldyogYXR0YWNo
VmlldyA9IFt3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddOworICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBpZiAoW1thdHRhY2hWaWV3IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVOYW1lc10gY29udGFpbnNPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1cm4gW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1dGVdOworICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICB9CisKKyAgICBpZiAoaXNN
ZXRlcigpKQorICAgICAgICByZXR1cm4gIkFYTWV0ZXIiOworCisjaWYgRU5BQkxFKE1PREVMX0VM
RU1FTlQpCisgICAgaWYgKGlzTW9kZWwoKSkKKyAgICAgICAgcmV0dXJuICJBWE1vZGVsIjsKKyNl
bmRpZgorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOworICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKKyAgICAgICAgcmV0
dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpUb2dnbGVCdXR0b24pCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVT
dWJyb2xlOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCisgICAg
ICAgIHJldHVybiAiQVhGb290ZXIiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGluQnV0dG9uUGFydCkgeworICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigpKQorICAgICAg
ICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICB9CisK
KyAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIjsKKworICAgIGlmIChpc1RyZWVJdGVtKCkpCisgICAgICAgIHJldHVybiBOU0Fj
Y2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKKworICAgIGlmIChpc0ZpZWxkc2V0KCkpCisg
ICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisKKyAgICBpZiAoaXNMaXN0KCkpIHsKKyAgICAg
ICAgaWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKKyAgICAgICAgICAg
IHJldHVybiAiQVhDb250ZW50TGlzdCI7CisgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgp
KQorICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCI7CisgICAgfQorCisgICAg
Ly8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgorICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgorICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtCYW5uZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxl
bWVudGFyeToKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKKyAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrTWFpbjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiI7CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgorICAgICAgICByZXR1cm4g
IkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0RvY1JlZ2lvbjoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lv
bjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIjsKKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2Vh
cmNoIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgorICAg
ICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uQWxlcnREaWFsb2ciOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
RGlhbG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RmVlZDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uTG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciOworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKKyAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25TdGF0dXM6CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRvY3VtZW50OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6
CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RG9jdW1lbnRBcnRpY2xlOgorICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIjsK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6CisgICAgICAgIHJldHVy
biAiQVhEb2N1bWVudE1hdGgiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
Tm90ZToKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSI7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6CisgICAgICAgIHJldHVybiAiQVhVc2Vy
SW50ZXJmYWNlVG9vbHRpcCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6
CisgICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGVybToKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKKyAgICAgICAgcmV0dXJuICJB
WERlc2NyaXB0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgLy8gRGVmYXVs
dCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUg
Y2hvc2VuLgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkgeworICAgICAgICBpZiAoaXNN
YXRoRnJhY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAg
ICAgICBpZiAoaXNNYXRoRmVuY2VkKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNl
ZCI7CisgICAgICAgIGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQorICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7CisgICAgICAgIGlmIChpc01h
dGhSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93IjsKKyAgICAgICAgaWYgKGlz
TWF0aFVuZGVyT3ZlcigpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiOwor
ICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTcXVhcmVSb290IjsKKyAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoUm9vdCI7CisgICAgICAgIGlmIChpc01hdGhUZXh0KCkpCisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgIGlmIChpc01hdGhJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElkZW50aWZpZXIiOworICAgICAgICBp
ZiAoaXNNYXRoVGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUiOworICAg
ICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFi
bGVSb3ciOworICAgICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkpCisgICAgICAgICAgICByZXR1
cm4gIkFYTWF0aFRhYmxlQ2VsbCI7CisgICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkp
CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICBpZiAo
aXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2Vw
YXJhdG9yT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgIH0KKwor
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKKyAgICAgICAgcmV0dXJu
ICJBWFZpZGVvIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCisg
ICAgICAgIHJldHVybiAiQVhBdWRpbyI7CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OkRldGFpbHMpCisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICBpZiAocm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKKyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnki
OworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQorICAgICAgICByZXR1
cm4gIkFYVGltZUdyb3VwIjsKKworICAgIGlmIChpc01lZGlhVGltZWxpbmUoKSkKKyAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKKworICAgIGlmIChpc1N3aXRj
aCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKKworICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCisgICAgICAgIHJldHVy
biAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVsZXRpb24pCisgICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VwZXJzY3JpcHQpCisgICAgICAgIHJldHVy
biAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTdWJzY3JpcHQpCisgICAgICAgIHJldHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3Vw
IjsKKworICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgorICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlCbG9jazoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlJbmxpbmUiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46CisgICAgICAg
IHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0IjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAoaXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKKyAgICAgICAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKyAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7
CisgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXli
b2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKKyAgICAg
ICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IHBy
ZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7Cisg
ICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYU2FtcGxl
U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gdmFyVGFnKQorICAgICAgICAgICAgcmV0
dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IGNpdGVUYWcp
CisgICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxh
dGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9
IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRl
eCBkZDgyZjFlNTJlYzFhMzhlNWZjYzhkZmRiMjI0ZjVlY2QxNTg1N2QwLi41NTUyMmE4MWQ0ZTI3
MTUxNDQ1MzJiZTQxNDZjYzIwOWE4ZDdhMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtMTEwLDQzICsxMTAsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIEAiQVhDZWxsIgogI2VuZGlmCiAK
LS8vIExpc3RzCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRMaXN0U3Vicm9sZQotI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlDb250ZW50TGlzdFN1YnJvbGUgQCJBWENvbnRlbnRMaXN0Igot
I2VuZGlmCi0KICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5RGVmaW5pdGlvbkxpc3RTdWJyb2xlCiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlZmluaXRpb25MaXN0U3Vicm9sZSBAIkFYRGVmaW5pdGlv
bkxpc3QiCiAjZW5kaWYKIAotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkxpc3RT
dWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1YnJvbGUgQCJB
WERlc2NyaXB0aW9uTGlzdCIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRl
bnRTZXBhcmF0b3JTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRTZXBhcmF0
b3JTdWJyb2xlIEAiQVhDb250ZW50U2VwYXJhdG9yIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5UnVieUJhc2VTdWJSb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNl
U3Vicm9sZSBAIkFYUnVieUJhc2UiCi0jZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlS
dWJ5QmxvY2tTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGUg
QCJBWFJ1YnlCbG9jayIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxp
bmVTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxpbmVTdWJyb2xlIEAiQVhS
dWJ5SW5saW5lIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJv
bGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJvbGUgQCJBWFJ1YnlSdW4iCi0j
ZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJvbGUKLSNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5UnVieVRleHRTdWJyb2xlIEAiQVhSdWJ5VGV4dCIKLSNlbmRpZgotCiAv
LyBNaXNjZWxsYW5lb3VzCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUJsb2NrUXVvdGVMZXZlbEF0
dHJpYnV0ZQogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlCbG9ja1F1b3RlTGV2ZWxBdHRyaWJ1dGUg
QCJBWEJsb2NrUXVvdGVMZXZlbCIKQEAgLTE4MjgsMjI2ICsxNzk1LDMzIEBAIHN0YXRpYyB2b2lk
IFdlYlRyYW5zZm9ybUNHUGF0aFRvTlNCZXppZXJQYXRoKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0
aEVsZW1lbnQgKmVsCiAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVua25vd25Sb2xlOwogfQog
Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotLSAoTlNTdHJpbmcqKXN1YnJv
bGUKKy0gKEJPT0wpaXNFbXB0eUdyb3VwCiB7CiAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNl
bGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmICghYmFja2luZ09iamVjdCkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIC8vIEZJWE1FOiBjcmVhdGUgQVhDb3JlT2JqZWN0OjpzdWJyb2xlUGxh
dGZvcm1TdHJpbmcgdG8gcmVwbGFjZSB0aGUgZm9sbG93aW5nIGxpbmVhciBzZWFyY2ggYW5kIGhl
dXJpc3RpY3MsIHNpbWlsYXIgdG8gcm9sZVBsYXRmb3JtU3RyaW5nLgotICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7Ci0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VhcmNo
RmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9s
ZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkgewotICAgICAgICBO
U1ZpZXcqIGF0dGFjaFZpZXcgPSBbc2VsZiBhdHRhY2htZW50Vmlld107Ci0gICAgICAgIGlmIChb
W2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSBjb250YWluc09iamVjdDpO
U0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRlXSkKLSAgICAgICAgICAgIHJldHVybiBbYXR0
YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV07Ci0gICAgfQotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWV0ZXIoKSkK
LSAgICAgICAgcmV0dXJuIEAiQVhNZXRlciI7Ci0KKyAgICByZXR1cm4gW1tzZWxmIHJvbGVdIGlz
RXF1YWw6TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlXQorICAgICAgICAmJiBiYWNraW5nT2JqZWN0
LT5jaGlsZHJlbigpLmlzRW1wdHkoKQogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQotICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc01vZGVsKCkpCi0gICAgICAgIHJldHVybiBAIkFYTW9kZWwiOwor
ICAgICAgICAmJiAoIWJhY2tpbmdPYmplY3QtPmlzTW9kZWwoKSB8fCBiYWNraW5nT2JqZWN0LT5t
b2RlbEVsZW1lbnRDaGlsZHJlbigpLmlzRW1wdHkoKSkKICNlbmRpZgorICAgICAgICAmJiAhW1tz
ZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXSBjb3VudF07Cit9CiAKLSAgICAvLyBUcmVhdCBhbnkg
Z3JvdXAgd2l0aG91dCBleHBvc2VkIGNoaWxkcmVuIGFzIGVtcHR5LgotICAgIGlmIChbW3NlbGYg
cm9sZV0gaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGVdICYmICFiYWNraW5nT2JqZWN0
LT5jaGlsZHJlbigpLnNpemUoKSAmJiAhW1tzZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXSBjb3Vu
dF0pCi0gICAgICAgIHJldHVybiBAIkFYRW1wdHlHcm91cCI7Ci0KLSAgICBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlID0gYmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCk7Ci0gICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlKQotICAgICAgICByZXR1cm4gTlNBY2Nl
c3NpYmlsaXR5Q29udGVudFNlcGFyYXRvclN1YnJvbGU7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVRvZ2dsZVN1YnJvbGU7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rl
cikKLSAgICAgICAgcmV0dXJuIEAiQVhGb290ZXIiOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkgewotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNJbmNyZW1lbnRvcigpKQotICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3Jl
bWVudEFycm93U3Vicm9sZTsKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlY3JlbWVu
dEFycm93U3Vicm9sZTsKLSAgICB9Ci0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNGaWxlVXBs
b2FkQnV0dG9uKCkpCi0gICAgICAgIHJldHVybiBAIkFYRmlsZVVwbG9hZEJ1dHRvbiI7Ci0KLSAg
ICBpZiAoYmFja2luZ09iamVjdC0+aXNUcmVlSXRlbSgpKQotICAgICAgICByZXR1cm4gTlNBY2Nl
c3NpYmlsaXR5T3V0bGluZVJvd1N1YnJvbGU7Ci0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNG
aWVsZHNldCgpKQotICAgICAgICByZXR1cm4gQCJBWEZpZWxkc2V0IjsKLQotICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc0xpc3QoKSkgewotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNVbm9y
ZGVyZWRMaXN0KCkgfHwgYmFja2luZ09iamVjdC0+aXNPcmRlcmVkTGlzdCgpKQotICAgICAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRMaXN0U3Vicm9sZTsKLSAgICAgICAgaWYg
KGJhY2tpbmdPYmplY3QtPmlzRGVzY3JpcHRpb25MaXN0KCkpIHsKLSAgICAgICAgICAgIHJldHVy
biBOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkxpc3RTdWJyb2xlOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgLy8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgotICAgIHN3aXRjaCAocm9sZSkgewot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1
cm4gQCJBWExhbmRtYXJrQmFubmVyIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtDb21wbGVtZW50
YXJ5IjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvOgot
ICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrQ29udGVudEluZm8iOwotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuIEAiQVhMYW5kbWFya01h
aW4iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAg
ICAgICAgcmV0dXJuIEAiQVhMYW5kbWFya05hdmlnYXRpb24iOwotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrUmVnaW9uIjsKLSAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJu
IEAiQVhMYW5kbWFya1NlYXJjaCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbkFsZXJ0IjsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nOgotICAgICAgICBy
ZXR1cm4gQCJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxpY2F0aW9u
RGlhbG9nIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
Rm9vdG5vdGU6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25Hcm91cCI7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiBAIkFY
QXBwbGljYXRpb25Mb2ciOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
TWFycXVlZToKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUiOwotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICByZXR1cm4g
QCJBWEFwcGxpY2F0aW9uU3RhdHVzIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvblRpbWVyOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxpY2F0aW9uVGltZXIiOwotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAgIHJldHVybiBAIkFYRG9jdW1lbnQiOwot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAgcmV0
dXJuIEAiQVhEb2N1bWVudEFydGljbGUiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRv
Y3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuIEAiQVhEb2N1bWVudE1hdGgiOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuIEAiQVhEb2N1
bWVudE5vdGUiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29s
dGlwOgotICAgICAgICByZXR1cm4gQCJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAgICAgcmV0dXJuIEAiQVhUYWJQYW5l
bCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKLSAgICAgICAgcmV0
dXJuIEAiQVhEZWZpbml0aW9uIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlw
dGlvbkxpc3RUZXJtOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAg
IHJldHVybiBAIkFYVGVybSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRp
b25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gQCJBWERlc2NyaXB0aW9uIjsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIEAiQVhX
ZWJBcHBsaWNhdGlvbiI7Ci0gICAgICAgIC8vIERlZmF1bHQgZG9lc24ndCByZXR1cm4gYW55dGhp
bmcsIHNvIHJvbGVzIGRlZmluZWQgYmVsb3cgY2FuIGJlIGNob3Nlbi4KLSAgICBkZWZhdWx0Ogot
ICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TWF0aEVsZW1lbnQpIHsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aEZyYWN0
aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhGcmFjdGlvbiI7Ci0gICAgICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFY
TWF0aEZlbmNlZCI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhTdWJzY3JpcHRT
dXBlcnNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoU3Vic2NyaXB0U3VwZXJz
Y3JpcHQiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoUm93KCkpCi0gICAgICAg
ICAgICByZXR1cm4gQCJBWE1hdGhSb3ciOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNN
YXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhVbmRlck92ZXIiOwot
ICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAg
ICAgcmV0dXJuIEAiQVhNYXRoU3F1YXJlUm9vdCI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhSb290IjsKLSAgICAg
ICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFRleHQoKSkKLSAgICAgICAgICAgIHJldHVybiBA
IkFYTWF0aFRleHQiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoTnVtYmVyKCkp
Ci0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhOdW1iZXIiOwotICAgICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNNYXRoSWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRo
SWRlbnRpZmllciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhUYWJsZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGFibGUiOwotICAgICAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFRhYmxl
Um93IjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFRhYmxlQ2VsbCgpKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGFibGVDZWxsIjsKLSAgICAgICAgaWYgKGJhY2tpbmdP
YmplY3QtPmlzTWF0aEZlbmNlT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0
aEZlbmNlT3BlcmF0b3IiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoU2VwYXJh
dG9yT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFNlcGFyYXRvck9wZXJh
dG9yIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aE9wZXJhdG9yKCkpCi0gICAg
ICAgICAgICByZXR1cm4gQCJBWE1hdGhPcGVyYXRvciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2Jq
ZWN0LT5pc01hdGhNdWx0aXNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoTXVs
dGlzY3JpcHQiOwotICAgIH0KK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCist
IChOU1N0cmluZyopc3Vicm9sZQoreworICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4
QmFja2luZ09iamVjdDsKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW8pCi0gICAgICAg
IHJldHVybiBAIkFYVmlkZW8iOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpB
dWRpbykKLSAgICAgICAgcmV0dXJuIEAiQVhBdWRpbyI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OkRldGFpbHMpCi0gICAgICAgIHJldHVybiBAIkFYRGV0YWlscyI7Ci0gICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnkpCi0gICAgICAgIHJldHVybiBA
IkFYU3VtbWFyeSI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUpCi0g
ICAgICAgIHJldHVybiBAIkFYVGltZUdyb3VwIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c01lZGlhVGltZWxpbmUoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5l
U3Vicm9sZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1N3aXRjaCgpKQotICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKLQotICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCi0gICAgICAgIHJldHVybiBAIkFYSW5zZXJ0U3R5
bGVHcm91cCI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uKQot
ICAgICAgICByZXR1cm4gQCJBWERlbGV0ZVN0eWxlR3JvdXAiOwotICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuIEAiQVhTdXBlcnNj
cmlwdFN0eWxlR3JvdXAiOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJz
Y3JpcHQpCi0gICAgICAgIHJldHVybiBAIkFYU3Vic2NyaXB0U3R5bGVHcm91cCI7Ci0KLSAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKLSAgICAgICAgdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKLSAgICAgICAgYXV0byB0YWdOYW1lID0gYmFja2luZ09iamVj
dC0+dGFnTmFtZSgpOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBrYmRUYWcpCi0gICAgICAgICAg
ICByZXR1cm4gQCJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRhZ05h
bWUgPT0gY29kZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOwot
ICAgICAgICBpZiAodGFnTmFtZSA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFBy
ZWZvcm1hdHRlZFN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBzYW1wVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRh
Z05hbWUgPT0gdmFyVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3Jv
dXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBjaXRlVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhDaXRlU3R5bGVHcm91cCI7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IH0KKyAgICBpZiAoW3NlbGYgaXNFbXB0eUdyb3VwXSkKKyAgICAgICAgcmV0dXJuIEAiQVhFbXB0
eUdyb3VwIjsKIAotICAgIC8vIFJ1Ynkgc3Vicm9sZXMKLSAgICBzd2l0Y2ggKHJvbGUpIHsKLSAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJuIE5TQWNj
ZXNzaWJpbGl0eVJ1YnlCYXNlU3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWJ5QmxvY2s6Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5QmxvY2tTdWJyb2xl
OwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0gICAgICAgIHJldHVy
biBOU0FjY2Vzc2liaWxpdHlSdWJ5SW5saW5lU3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1
YnJvbGU7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJl
dHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJvbGU7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQorICAgIGF1dG8gc3Vicm9sZSA9IGJhY2tpbmdPYmplY3QtPnN1YnJv
bGVQbGF0Zm9ybVN0cmluZygpOworICAgIGlmIChzdWJyb2xlICE9IFN0cmluZygpKQorICAgICAg
ICByZXR1cm4gc3Vicm9sZTsKIAogICAgIHJldHVybiBuaWw7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2RkZDMzYzM3
NDg4MmI5MjQ5NDZmMjM0YmRhMmFhZGZlMjUzMjQwNC4uYjAxMmFjZjI0YjRhMTdiYTA4ZTk5NjAy
ZTE3N2ViOWYwNjlmMzE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQtYXR0cmlidXRlcy5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQ6CisgICAgICAgIEJlY2F1c2UgdGhlIG1vZGVsIGluIHRoaXMgdGVzdCBk
b2Vzbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY2hpbGRyZW4sCisgICAgICAgIGl0cyBzdWJyb2xl
IGlzIG5vdyBBWEVtcHR5R3JvdXAuCisKIDIwMjItMDEtMjAgIEFsZXhleSBTaHZheWthICA8YXNo
dmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxiYWNrIGZ1bmN0aW9ucyAvIGludGVyZmFj
ZXMgc2hvdWxkIHVzZSBnbG9iYWwgb2JqZWN0IG9mIGl0cyBfdmFsdWVfIGZvciBlcnJvcnMgYW5k
IGxpZmVjeWNsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tb2RlbC1l
bGVtZW50LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbW9kZWwt
ZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggMjdhYjljODM4OTY2ZDJiMzkxZTlmMDAzNjNl
ZGEyZTlkOGM4YWE4Yy4uYjJlYjRmNDBlOWI4YzFlNWM3OTIwODk3NzdlMWQ4NmY4YzdlMzM2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tb2RlbC1lbGVtZW50LWF0dHJp
YnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQt
YXR0cmlidXRlcy5odG1sCkBAIC0xNiw4ICsxNiw4IEBACiAgICAgICAgIGRlYnVnKCJNb2RlbCBk
ZXNjcmlwdGlvbjogIiArIG1vZGVsLmRlc2NyaXB0aW9uKTsKICAgICAgICAgaWYgKGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAibWFjIikgewogICAgICAgICAgICAgc2hv
dWxkQmUoIm1vZGVsLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91cCciKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJtb2RlbC5zdWJyb2xlIiwgIidBWFN1YnJvbGU6IEFYTW9kZWwnIik7Ci0gICAgICAg
IH0gICAgICAgIAorICAgICAgICAgICAgc2hvdWxkQmUoIm1vZGVsLnN1YnJvbGUiLCAiJ0FYU3Vi
cm9sZTogQVhFbXB0eUdyb3VwJyIpOworICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVs
ZW1lbnQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9tb2RlbC1lbGVtZW50LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4
IDQxNjZkZGJmMWY5OWUzZjZmMzQ4NmJlMjc0MmIzMWFmZTAwZDU4ZTcuLjlkMzY5ZDU2ZDIxZmZk
NjBjNGJkOTIwMzhmY2Y0MDg1ZDhmYTRlM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvbW9kZWwtZWxl
bWVudC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogTW9kZWwgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IEhlYXJ0CiBQ
QVNTIG1vZGVsLnJvbGUgaXMgJ0FYUm9sZTogQVhHcm91cCcKLVBBU1MgbW9kZWwuc3Vicm9sZSBp
cyAnQVhTdWJyb2xlOiBBWE1vZGVsJworUEFTUyBtb2RlbC5zdWJyb2xlIGlzICdBWFN1YnJvbGU6
IEFYRW1wdHlHcm91cCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQo=
</data>
<flag name="commit-queue"
          id="475793"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449639</attachid>
            <date>2022-01-20 21:51:02 -0800</date>
            <delta_ts>2022-01-21 08:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220120235100.patch</filename>
            <type>text/plain</type>
            <size>28417</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uMWM1NzZiZjQzZWViNGQzYTNmNDZjOGQzNWE5ZmMz
Y2RkMzI2YmM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtb3N0IG9mIHRoZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBh
IG5ldyBBWENvcmVPYmplY3QgaW50ZXJmYWNlCisgICAgICAgIG1ldGhvZCwgc3Vicm9sZVBsYXRm
b3JtU3RyaW5nIChtYXRjaGluZyB0aGUgbmFtaW5nIG9mIHJvbGVQbGF0Zm9ybVN0cmluZykuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhY2hlIGEgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcKKyAgICAgICAgcHJvcGVydHkgaW4gaXNvbGF0ZWQgdHJlZSBvYmpl
Y3RzLgorCisgICAgICAgIFRoaXMgZml4ZXMgYWNjZXNzaWJpbGl0eS9tYWMvc3Vicm9sZXMtZm9y
LWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZAorICAgICAgICB0cmVlIG1vZGUgYmVj
YXVzZSB0aGlzIHRlc3QgZXhlcmNpc2VkIHRoZSBgYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1h
dEdyb3VwKClgIGNvZGVwYXRoLAorICAgICAgICB3aGljaCBpbiB0dXJuIHRyaWVkIHRvIGNvbXBh
cmUgQXRvbVN0cmluZ3Mgb2ZmIHRoZSBtYWluLXRocmVhZCwgd2hpY2ggd29uJ3Qgd29yaworICAg
ICAgICAodGhlIHN0cmluZyBjb21wYXJpc29ucyB3aWxsIHVuZXhwZWN0ZWRseSBub3QgbWF0Y2gp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oOgorICAgICAgICBBZGQgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJyb2xl
UGxhdGZvcm1TdHJpbmcgcHJvcGVydHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKToKKyAgICAgICAgSW5p
dGlhbGl6ZSBuZXcgQVhQcm9wZXJ0eU5hbWU6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZy4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGlzRW1wdHlHcm91cF0pOgorICAgICAgICBBZGRlZC4KKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgc3Vicm9sZV0pOgorICAgICAgICBEZWZl
ciB0byBzdWJyb2xlUGxhdGZvcm1TdHJpbmcgZm9yIGRldGVybWluaW5nIGFsbCBzdWJyb2xlcyBl
eGNlcHQgQVhFbXB0eUdyb3VwLgorCiAyMDIyLTAxLTIwICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIGNo
aWxkcmVuSURzIGFuZCBjaGlsZHJlbiBsb2NhbCB2YXJpYWJsZXMgY291bGQgZ2V0IG91dCBvZiBz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCAxMjcyNmQxZDI0MWM0MDUwODY2YTAxODBjNmIxNWNkZTEzN2MyNzM0
Li5lMWIyNGFjZDE1YWIxNGE5MTdmYjQxZjI4NDJkOGEyNGUwNjlhZmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTI1NTQsNiArMjU1NCwxMiBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRm
b3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgaW4gb3RoZXIg
cGxhdGZvcm1zLgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKworU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCiAjZW5kaWYKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDBjYTM2MGIxNmRiYmRkYTNmMTdj
YWFhMzE3OWVlMzMyYTA4MGQ0MTQuLjFjMDcwNzI5NWE3NGQ5MDE3YmRkZGVmZTQyZWRjNGM4OTdi
MWNlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00MzUsNiArNDM1LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcm9sZTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcg
cm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHN1YnJvbGVQbGF0
Zm9ybVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xl
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4T2Jq
ZWN0Q2FjaGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDUw
ZTkwNDlmZTc4ODRlYmQ4MWMwMTA4YTdiNDIzMzQ4ODJkMGY4OC4uNzk4YjkxMzZmN2ZlM2NlMzk3
NTFlNjc4YTc5YTQ2ZWNjNjk1ZWUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTExOTUs
NiArMTE5NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyByb2xlRGVzY3JpcHRpb24o
KSBjb25zdCA9IDA7CiAgICAgLy8gTG9jYWxpemVkIHN0cmluZyB0aGF0IGRlc2NyaWJlcyBBUklB
IGxhbmRtYXJrIHJvbGVzLgogICAgIHZpcnR1YWwgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICAvLyBOb24tbG9jYWxpemVkIHN0cmluZyBhc3NvY2lh
dGVkIHdpdGggdGhlIG9iamVjdCdzIHN1YnJvbGUuCisgICAgdmlydHVhbCBTdHJpbmcgc3Vicm9s
ZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
KiBheE9iamVjdENhY2hlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggNDhhNjc4YzA3YTQzYjBhYTQzZmYxNWM2ZmFlZjFhMGMwNWRlOTcwZC4uYzhlZmIyZjhjMTRh
ZDQ1ZDFkYmIzODM5ZWI5NWMwNDZmMGVmN2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtMjcwLDYgKzI3MCw3IEBAIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVJv
bGU+KGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUpKTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZVBsYXRmb3JtU3RyaW5nKTsgfQog
ICAgIFN0cmluZyByb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZURlc2NyaXB0aW9uKTsgfQorICAg
IFN0cmluZyBzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vicm9sZVBsYXRmb3JtU3RyaW5n
KTsgfQogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QVJJQUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIGJvb2wgc3VwcG9ydHNQcmVzc0FjdGlvbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQcmVzc0FjdGlvbik7IH0KICAgICBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVj
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlY3RBdHRyaWJ1dGVWYWx1ZTxMYXlvdXRSZWN0
PihBWFByb3BlcnR5TmFtZTo6Qm91bmRpbmdCb3hSZWN0KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
aW5kZXggZDlkZmZhOTk5MjFlNzZlOGVhNzQ5NzQxZDhiYjk2YzcyZGE3NjBiOC4uMmY1OGIzN2Uz
ZjRkMjA4ZDhiOGIyYzI1NzE1NjVlYzg2NmYxNjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBA
IC0yODMsNiArMjgzLDcgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsK
ICAgICBTcGVha0FzLAogICAgIFNwZWVjaEhpbnQsCiAgICAgU3RyaW5nVmFsdWUsCisgICAgU3Vi
cm9sZVBsYXRmb3JtU3RyaW5nLAogICAgIFN1cHBvcnRzUm93Q291bnRDaGFuZ2UsCiAgICAgU3Vw
cG9ydHNEcmFnZ2luZywKICAgICBTdXBwb3J0c0Ryb3BwaW5nLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQppbmRleCAyZTJiMWUwNDhiNjA3MTNlNzg5NGY2NTc1Mzc4YTE1
ZTkyZjM1MThlLi43YmE1ZGU3NjQwOTBhMTQ4NWQzMGQ0MTFkZjY2YWIzNDJiNzQ3N2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQpAQCAtNDAsNiArNDAsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3Qg
QVhDb3JlT2JqZWN0JiBvYmplY3QsCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNw
ZWVjaEhpbnQsIG9iamVjdC5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHko
KSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUs
IG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCwgb2JqZWN0LmNhcmV0
QnJvd3NpbmdFbmFibGVkKCkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcsIG9iamVjdC5zdWJyb2xlUGxhdGZvcm1TdHJpbmcoKS5pc29sYXRl
ZENvcHkoKSk7CiAKICAgICBpZiAoaXNSb290KQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBjMTI1
YWQ1MmU3NTM5MWU2MTUyM2UwMDRlZWU3ZGJkNDRkMmFmMzJlLi5hMjg5NTM4NzRjODA1NTEyN2Y4
MGIyZmMzNjJkOWNlODIxZTcwMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTIwNiw2ICsy
MDYsMjIxIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmco
KSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhy
b2xlKTsKIH0KIAorU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0
cmluZygpIGNvbnN0Cit7CisgICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZpZWxkU3Vicm9sZTsKKyAgICBpZiAoaXNTZWFy
Y2hGaWVsZCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJy
b2xlOworCisgICAgaWYgKGlzQXR0YWNobWVudCgpKSB7CisgICAgICAgIE5TVmlldyogYXR0YWNo
VmlldyA9IFt3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddOworICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBpZiAoW1thdHRhY2hWaWV3IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVOYW1lc10gY29udGFpbnNPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1cm4gW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1dGVdOworICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICB9CisKKyAgICBpZiAoaXNN
ZXRlcigpKQorICAgICAgICByZXR1cm4gIkFYTWV0ZXIiOworCisjaWYgRU5BQkxFKE1PREVMX0VM
RU1FTlQpCisgICAgaWYgKGlzTW9kZWwoKSkKKyAgICAgICAgcmV0dXJuICJBWE1vZGVsIjsKKyNl
bmRpZgorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOworICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKKyAgICAgICAgcmV0
dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpUb2dnbGVCdXR0b24pCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVT
dWJyb2xlOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCisgICAg
ICAgIHJldHVybiAiQVhGb290ZXIiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGluQnV0dG9uUGFydCkgeworICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigpKQorICAgICAg
ICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICB9CisK
KyAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIjsKKworICAgIGlmIChpc1RyZWVJdGVtKCkpCisgICAgICAgIHJldHVybiBOU0Fj
Y2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKKworICAgIGlmIChpc0ZpZWxkc2V0KCkpCisg
ICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisKKyAgICBpZiAoaXNMaXN0KCkpIHsKKyAgICAg
ICAgaWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKKyAgICAgICAgICAg
IHJldHVybiAiQVhDb250ZW50TGlzdCI7CisgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgp
KQorICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCI7CisgICAgfQorCisgICAg
Ly8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgorICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgorICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtCYW5uZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxl
bWVudGFyeToKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKKyAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrTWFpbjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiI7CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgorICAgICAgICByZXR1cm4g
IkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0RvY1JlZ2lvbjoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lv
bjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIjsKKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2Vh
cmNoIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgorICAg
ICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uQWxlcnREaWFsb2ciOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
RGlhbG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RmVlZDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uTG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciOworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKKyAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25TdGF0dXM6CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRvY3VtZW50OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6
CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RG9jdW1lbnRBcnRpY2xlOgorICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIjsK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6CisgICAgICAgIHJldHVy
biAiQVhEb2N1bWVudE1hdGgiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
Tm90ZToKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSI7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6CisgICAgICAgIHJldHVybiAiQVhVc2Vy
SW50ZXJmYWNlVG9vbHRpcCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6
CisgICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGVybToKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKKyAgICAgICAgcmV0dXJuICJB
WERlc2NyaXB0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgLy8gRGVmYXVs
dCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUg
Y2hvc2VuLgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkgeworICAgICAgICBpZiAoaXNN
YXRoRnJhY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAg
ICAgICBpZiAoaXNNYXRoRmVuY2VkKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNl
ZCI7CisgICAgICAgIGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQorICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7CisgICAgICAgIGlmIChpc01h
dGhSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93IjsKKyAgICAgICAgaWYgKGlz
TWF0aFVuZGVyT3ZlcigpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiOwor
ICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTcXVhcmVSb290IjsKKyAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoUm9vdCI7CisgICAgICAgIGlmIChpc01hdGhUZXh0KCkpCisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgIGlmIChpc01hdGhJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElkZW50aWZpZXIiOworICAgICAgICBp
ZiAoaXNNYXRoVGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUiOworICAg
ICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFi
bGVSb3ciOworICAgICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkpCisgICAgICAgICAgICByZXR1
cm4gIkFYTWF0aFRhYmxlQ2VsbCI7CisgICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkp
CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICBpZiAo
aXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2Vw
YXJhdG9yT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgIH0KKwor
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKKyAgICAgICAgcmV0dXJu
ICJBWFZpZGVvIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCisg
ICAgICAgIHJldHVybiAiQVhBdWRpbyI7CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OkRldGFpbHMpCisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICBpZiAocm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKKyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnki
OworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQorICAgICAgICByZXR1
cm4gIkFYVGltZUdyb3VwIjsKKworICAgIGlmIChpc01lZGlhVGltZWxpbmUoKSkKKyAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKKworICAgIGlmIChpc1N3aXRj
aCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKKworICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCisgICAgICAgIHJldHVy
biAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVsZXRpb24pCisgICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VwZXJzY3JpcHQpCisgICAgICAgIHJldHVy
biAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTdWJzY3JpcHQpCisgICAgICAgIHJldHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3Vw
IjsKKworICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgorICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlCbG9jazoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlJbmxpbmUiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46CisgICAgICAg
IHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0IjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAoaXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKKyAgICAgICAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKyAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7
CisgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXli
b2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKKyAgICAg
ICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IHBy
ZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7Cisg
ICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYU2FtcGxl
U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gdmFyVGFnKQorICAgICAgICAgICAgcmV0
dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IGNpdGVUYWcp
CisgICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxh
dGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9
IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRl
eCBkZDgyZjFlNTJlYzFhMzhlNWZjYzhkZmRiMjI0ZjVlY2QxNTg1N2QwLi5jMjY2MjIwMGE2OWZl
ODczMzI1OGJjMTgwNDM3YmZmNzdjMGZmNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtMTEwLDQzICsxMTAsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIEAiQVhDZWxsIgogI2VuZGlmCiAK
LS8vIExpc3RzCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRMaXN0U3Vicm9sZQotI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlDb250ZW50TGlzdFN1YnJvbGUgQCJBWENvbnRlbnRMaXN0Igot
I2VuZGlmCi0KICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5RGVmaW5pdGlvbkxpc3RTdWJyb2xlCiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlZmluaXRpb25MaXN0U3Vicm9sZSBAIkFYRGVmaW5pdGlv
bkxpc3QiCiAjZW5kaWYKIAotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkxpc3RT
dWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1YnJvbGUgQCJB
WERlc2NyaXB0aW9uTGlzdCIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRl
bnRTZXBhcmF0b3JTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRTZXBhcmF0
b3JTdWJyb2xlIEAiQVhDb250ZW50U2VwYXJhdG9yIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5UnVieUJhc2VTdWJSb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNl
U3Vicm9sZSBAIkFYUnVieUJhc2UiCi0jZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlS
dWJ5QmxvY2tTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGUg
QCJBWFJ1YnlCbG9jayIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxp
bmVTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxpbmVTdWJyb2xlIEAiQVhS
dWJ5SW5saW5lIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJv
bGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJvbGUgQCJBWFJ1YnlSdW4iCi0j
ZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJvbGUKLSNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5UnVieVRleHRTdWJyb2xlIEAiQVhSdWJ5VGV4dCIKLSNlbmRpZgotCiAv
LyBNaXNjZWxsYW5lb3VzCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUJsb2NrUXVvdGVMZXZlbEF0
dHJpYnV0ZQogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlCbG9ja1F1b3RlTGV2ZWxBdHRyaWJ1dGUg
QCJBWEJsb2NrUXVvdGVMZXZlbCIKQEAgLTE4MjgsMjI2ICsxNzk1LDMzIEBAIHN0YXRpYyB2b2lk
IFdlYlRyYW5zZm9ybUNHUGF0aFRvTlNCZXppZXJQYXRoKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0
aEVsZW1lbnQgKmVsCiAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVua25vd25Sb2xlOwogfQog
Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotLSAoTlNTdHJpbmcqKXN1YnJv
bGUKKy0gKEJPT0wpaXNFbXB0eUdyb3VwCiB7CiAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNl
bGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmICghYmFja2luZ09iamVjdCkKLSAgICAgICAgcmV0
dXJuIG5pbDsKLQotICAgIC8vIEZJWE1FOiBjcmVhdGUgQVhDb3JlT2JqZWN0OjpzdWJyb2xlUGxh
dGZvcm1TdHJpbmcgdG8gcmVwbGFjZSB0aGUgZm9sbG93aW5nIGxpbmVhciBzZWFyY2ggYW5kIGhl
dXJpc3RpY3MsIHNpbWlsYXIgdG8gcm9sZVBsYXRmb3JtU3RyaW5nLgotICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7Ci0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VhcmNo
RmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9s
ZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkgewotICAgICAgICBO
U1ZpZXcqIGF0dGFjaFZpZXcgPSBbc2VsZiBhdHRhY2htZW50Vmlld107Ci0gICAgICAgIGlmIChb
W2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSBjb250YWluc09iamVjdDpO
U0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRlXSkKLSAgICAgICAgICAgIHJldHVybiBbYXR0
YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV07Ci0gICAgfQotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWV0ZXIoKSkK
LSAgICAgICAgcmV0dXJuIEAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
IHJldHVybiBbW3NlbGYgcm9sZV0gaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGVdCisg
ICAgICAgICYmIGJhY2tpbmdPYmplY3QtPmNoaWxkcmVuKCkuaXNFbXB0eSgpCiAjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTW9kZWwoKSkKLSAgICAg
ICAgcmV0dXJuIEAiQVhNb2RlbCI7CisgICAgICAgICYmICghYmFja2luZ09iamVjdC0+aXNNb2Rl
bCgpIHx8IGJhY2tpbmdPYmplY3QtPm1vZGVsRWxlbWVudENoaWxkcmVuKCkuaXNFbXB0eSgpKQog
I2VuZGlmCisgICAgICAgICYmICFbW3NlbGYgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dIGNvdW50XTsK
K30KIAotICAgIC8vIFRyZWF0IGFueSBncm91cCB3aXRob3V0IGV4cG9zZWQgY2hpbGRyZW4gYXMg
ZW1wdHkuCi0gICAgaWYgKFtbc2VsZiByb2xlXSBpc0VxdWFsOk5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZV0gJiYgIWJhY2tpbmdPYmplY3QtPmNoaWxkcmVuKCkuc2l6ZSgpICYmICFbW3NlbGYgcmVu
ZGVyV2lkZ2V0Q2hpbGRyZW5dIGNvdW50XSkKLSAgICAgICAgcmV0dXJuIEAiQVhFbXB0eUdyb3Vw
IjsKLQotICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSBiYWNraW5nT2JqZWN0LT5yb2xlVmFs
dWUoKTsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUp
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlDb250ZW50U2VwYXJhdG9yU3Vicm9sZTsK
LSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQotICAgICAg
ICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKLSAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gQCJBWEZvb3RlciI7Ci0g
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0KSB7Ci0gICAg
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0luY3JlbWVudG9yKCkpCi0gICAgICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwotICAgICAgICByZXR1cm4g
TlNBY2Nlc3NpYmlsaXR5RGVjcmVtZW50QXJyb3dTdWJyb2xlOwotICAgIH0KLQotICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc0ZpbGVVcGxvYWRCdXR0b24oKSkKLSAgICAgICAgcmV0dXJuIEAiQVhG
aWxlVXBsb2FkQnV0dG9uIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1RyZWVJdGVtKCkp
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKLQotICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc0ZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVybiBAIkFYRmll
bGRzZXQiOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTGlzdCgpKSB7Ci0gICAgICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc1Vub3JkZXJlZExpc3QoKSB8fCBiYWNraW5nT2JqZWN0LT5pc09y
ZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5Q29udGVudExp
c3RTdWJyb2xlOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNEZXNjcmlwdGlvbkxpc3Qo
KSkgewotICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1
YnJvbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMu
Ci0gICAgc3dpdGNoIChyb2xlKSB7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtCYW5uZXIiOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJu
IEAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtDb250ZW50
SW5mbyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAg
ICByZXR1cm4gQCJBWExhbmRtYXJrTWFpbiI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrTmF2aWdhdGlv
biI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiBA
IkFYTGFuZG1hcmtSZWdpb24iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
U2VhcmNoOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrU2VhcmNoIjsKLSAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAgICByZXR1cm4gQCJBWEFw
cGxpY2F0aW9uQWxlcnQiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
QWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyI7
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAg
IHJldHVybiBAIkFYQXBwbGljYXRpb25EaWFsb2ciOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25UZXh0R3JvdXA6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBs
aWNhdGlvbkdyb3VwIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxv
ZzoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbkxvZyI7Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxp
Y2F0aW9uTWFycXVlZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25T
dGF0dXM6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25TdGF0dXMiOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVybiBAIkFY
QXBwbGljYXRpb25UaW1lciI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAg
cmV0dXJuIEAiQVhEb2N1bWVudCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1l
bnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50QXJ0aWNsZSI7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1cm4gQCJBWERv
Y3VtZW50TWF0aCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgot
ICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50Tm90ZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0gICAgICAgIHJldHVybiBAIkFYVXNlckludGVy
ZmFjZVRvb2x0aXAiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAg
ICAgICByZXR1cm4gQCJBWFRhYlBhbmVsIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpE
ZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gQCJBWERlZmluaXRpb24iOwotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuIEAiQVhUZXJtIjsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiBAIkFY
RGVzY3JpcHRpb24iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9u
OgotICAgICAgICByZXR1cm4gQCJBWFdlYkFwcGxpY2F0aW9uIjsKLSAgICAgICAgLy8gRGVmYXVs
dCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUg
Y2hvc2VuLgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkgewotICAgICAgICBpZiAoYmFj
a2luZ09iamVjdC0+aXNNYXRoRnJhY3Rpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0
aEZyYWN0aW9uIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aEZlbmNlZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoRmVuY2VkIjsKLSAgICAgICAgaWYgKGJhY2tpbmdP
YmplY3QtPmlzTWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc01hdGhSb3coKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFJvdyI7Ci0gICAgICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhVbmRlck92ZXIoKSkKLSAgICAgICAgICAgIHJldHVy
biBAIkFYTWF0aFVuZGVyT3ZlciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhT
cXVhcmVSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhTcXVhcmVSb290IjsKLSAg
ICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFJvb3QoKSkKLSAgICAgICAgICAgIHJldHVy
biBAIkFYTWF0aFJvb3QiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoVGV4dCgp
KQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGV4dCI7Ci0gICAgICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc01hdGhOdW1iZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aE51bWJl
ciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhJZGVudGlmaWVyKCkpCi0gICAg
ICAgICAgICByZXR1cm4gQCJBWE1hdGhJZGVudGlmaWVyIjsKLSAgICAgICAgaWYgKGJhY2tpbmdP
YmplY3QtPmlzTWF0aFRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhUYWJsZSI7
Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhUYWJsZVJvdygpKQotICAgICAgICAg
ICAgcmV0dXJuIEAiQVhNYXRoVGFibGVSb3ciOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNNYXRoVGFibGVDZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhUYWJsZUNlbGwi
OwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoRmVuY2VPcGVyYXRvcigpKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhNYXRoRmVuY2VPcGVyYXRvciI7Ci0gICAgICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNNYXRoT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aE9wZXJhdG9yIjsK
LSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aE11bHRpc2NyaXB0KCkpCi0gICAgICAg
ICAgICByZXR1cm4gQCJBWE1hdGhNdWx0aXNjcmlwdCI7Ci0gICAgfQorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KKy0gKE5TU3RyaW5nKilzdWJyb2xlCit7CisgICAgYXV0byog
YmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OworICAgIGlmICghYmFja2luZ09i
amVjdCkKKyAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuIEAiQVhWaWRlbyI7Ci0gICAgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gQCJBWEF1ZGlvIjsK
LSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKLSAgICAgICAgcmV0
dXJuIEAiQVhEZXRhaWxzIjsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vt
bWFyeSkKLSAgICAgICAgcmV0dXJuIEAiQVhTdW1tYXJ5IjsKLSAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuIEAiQVhUaW1lR3JvdXAiOwotCi0g
ICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWVkaWFUaW1lbGluZSgpKQotICAgICAgICByZXR1cm4g
TlNBY2Nlc3NpYmlsaXR5VGltZWxpbmVTdWJyb2xlOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3Qt
PmlzU3dpdGNoKCkpCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTd2l0Y2hTdWJyb2xl
OwotCi0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okluc2VydGlvbikKLSAgICAg
ICAgcmV0dXJuIEAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RGVsZXRpb24pCi0gICAgICAgIHJldHVybiBAIkFYRGVsZXRlU3R5bGVHcm91
cCI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0KQotICAg
ICAgICByZXR1cm4gQCJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCI7Ci0gICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAgICAgcmV0dXJuIEAiQVhTdWJzY3Jp
cHRTdHlsZUdyb3VwIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1N0eWxlRm9ybWF0R3Jv
dXAoKSkgewotICAgICAgICB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotICAgICAgICBhdXRv
IHRhZ05hbWUgPSBiYWNraW5nT2JqZWN0LT50YWdOYW1lKCk7Ci0gICAgICAgIGlmICh0YWdOYW1l
ID09IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3Jv
dXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBjb2RlVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhDb2RlU3R5bGVHcm91cCI7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IHByZVRhZykKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7Ci0gICAgICAgIGlm
ICh0YWdOYW1lID09IHNhbXBUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFNhbXBsZVN0eWxl
R3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSB2YXJUYWcpCi0gICAgICAgICAgICByZXR1
cm4gQCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IGNpdGVU
YWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQorICAgIGlmIChbc2VsZiBpc0VtcHR5R3JvdXBdKQor
ICAgICAgICByZXR1cm4gQCJBWEVtcHR5R3JvdXAiOwogCi0gICAgLy8gUnVieSBzdWJyb2xlcwot
ICAgIHN3aXRjaCAocm9sZSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNl
OgotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5UnVieUJhc2VTdWJyb2xlOwotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNz
aWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGU7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVi
eUlubGluZToKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxpbmVTdWJyb2xl
OwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiBO
U0FjY2Vzc2liaWxpdHlSdWJ5UnVuU3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpSdWJ5VGV4dDoKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJ1YnlUZXh0U3Vicm9s
ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9CisgICAgYXV0byBzdWJyb2xl
ID0gYmFja2luZ09iamVjdC0+c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCk7CisgICAgaWYgKHN1YnJv
bGUgIT0gU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdWJyb2xlOwogCiAgICAgcmV0dXJuIG5p
bDsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBjZGRkMzNjMzc0ODgyYjkyNDk0NmYyMzRiZGEyYWFkZmUyNTMyNDA0Li5i
MDEyYWNmMjRiNGExN2JhMDhlOTk2MDJlMTc3ZWI5ZjA2OWYzMTdjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjItMDEtMjAgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBWDogTW92ZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBuZXcgc3Vicm9sZVBsYXRmb3Jt
U3RyaW5nIEFYQ29yZU9iamVjdCBpbnRlcmZhY2UgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbW9kZWwtZWxlbWVu
dC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
bW9kZWwtZWxlbWVudC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgQmVjYXVzZSB0
aGUgbW9kZWwgaW4gdGhpcyB0ZXN0IGRvZXNuJ3QgaGF2ZSBhbnkgYWNjZXNzaWJsZSBjaGlsZHJl
biwKKyAgICAgICAgaXRzIHN1YnJvbGUgaXMgbm93IEFYRW1wdHlHcm91cC4KKwogMjAyMi0wMS0y
MCAgQWxleGV5IFNodmF5a2EgIDxhc2h2YXlrYUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbGJh
Y2sgZnVuY3Rpb25zIC8gaW50ZXJmYWNlcyBzaG91bGQgdXNlIGdsb2JhbCBvYmplY3Qgb2YgaXRz
IF92YWx1ZV8gZm9yIGVycm9ycyBhbmQgbGlmZWN5Y2xlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tb2RlbC1lbGVtZW50LWF0dHJpYnV0ZXMuaHRtbAppbmRleCAyN2Fi
OWM4Mzg5NjZkMmIzOTFlOWYwMDM2M2VkYTJlOWQ4YzhhYThjLi5iMmViNGY0MGU5YjhjMWU1Yzc5
MjA4OTc3N2UxZDg2ZjhjN2UzMzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21vZGVsLWVsZW1lbnQtYXR0cmlidXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbW9kZWwtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTE2LDggKzE2LDggQEAK
ICAgICAgICAgZGVidWcoIk1vZGVsIGRlc2NyaXB0aW9uOiAiICsgbW9kZWwuZGVzY3JpcHRpb24p
OwogICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJt
YWMiKSB7CiAgICAgICAgICAgICBzaG91bGRCZSgibW9kZWwucm9sZSIsICInQVhSb2xlOiBBWEdy
b3VwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIm1vZGVsLnN1YnJvbGUiLCAiJ0FYU3Vicm9s
ZTogQVhNb2RlbCciKTsKLSAgICAgICAgfSAgICAgICAgCisgICAgICAgICAgICBzaG91bGRCZSgi
bW9kZWwuc3Vicm9sZSIsICInQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAnIik7CisgICAgICAgIH0K
ICAgICB9CiA8L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvbW9kZWwtZWxlbWVudC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21vZGVsLWVsZW1lbnQtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggNDE2NmRkYmYxZjk5ZTNmNmYzNDg2YmUyNzQyYjMxYWZl
MDBkNThlNy4uOWQzNjlkNTZkMjFmZmQ2MGM0YmQ5MjAzOGZjZjQwODVkOGZhNGUzZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvbW9kZWwtZWxlbWVu
dC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9tb2RlbC1lbGVtZW50LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC01
LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBNb2RlbCBkZXNjcmlwdGlvbjog
QVhEZXNjcmlwdGlvbjogSGVhcnQKIFBBU1MgbW9kZWwucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3Vw
JwotUEFTUyBtb2RlbC5zdWJyb2xlIGlzICdBWFN1YnJvbGU6IEFYTW9kZWwnCitQQVNTIG1vZGVs
LnN1YnJvbGUgaXMgJ0FYU3Vicm9sZTogQVhFbXB0eUdyb3VwJwogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449658</attachid>
            <date>2022-01-21 08:09:48 -0800</date>
            <delta_ts>2022-01-21 12:25:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220121100946.patch</filename>
            <type>text/plain</type>
            <size>25987</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uMWM1NzZiZjQzZWViNGQzYTNmNDZjOGQzNWE5ZmMz
Y2RkMzI2YmM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTIwICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtb3N0IG9mIHRoZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBh
IG5ldyBBWENvcmVPYmplY3QgaW50ZXJmYWNlCisgICAgICAgIG1ldGhvZCwgc3Vicm9sZVBsYXRm
b3JtU3RyaW5nIChtYXRjaGluZyB0aGUgbmFtaW5nIG9mIHJvbGVQbGF0Zm9ybVN0cmluZykuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhY2hlIGEgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcKKyAgICAgICAgcHJvcGVydHkgaW4gaXNvbGF0ZWQgdHJlZSBvYmpl
Y3RzLgorCisgICAgICAgIFRoaXMgZml4ZXMgYWNjZXNzaWJpbGl0eS9tYWMvc3Vicm9sZXMtZm9y
LWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZAorICAgICAgICB0cmVlIG1vZGUgYmVj
YXVzZSB0aGlzIHRlc3QgZXhlcmNpc2VkIHRoZSBgYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1h
dEdyb3VwKClgIGNvZGVwYXRoLAorICAgICAgICB3aGljaCBpbiB0dXJuIHRyaWVkIHRvIGNvbXBh
cmUgQXRvbVN0cmluZ3Mgb2ZmIHRoZSBtYWluLXRocmVhZCwgd2hpY2ggd29uJ3Qgd29yaworICAg
ICAgICAodGhlIHN0cmluZyBjb21wYXJpc29ucyB3aWxsIHVuZXhwZWN0ZWRseSBub3QgbWF0Y2gp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oOgorICAgICAgICBBZGQgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJyb2xl
UGxhdGZvcm1TdHJpbmcgcHJvcGVydHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKToKKyAgICAgICAgSW5p
dGlhbGl6ZSBuZXcgQVhQcm9wZXJ0eU5hbWU6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZy4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGlzRW1wdHlHcm91cF0pOgorICAgICAgICBBZGRlZC4KKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgc3Vicm9sZV0pOgorICAgICAgICBEZWZl
ciB0byBzdWJyb2xlUGxhdGZvcm1TdHJpbmcgZm9yIGRldGVybWluaW5nIGFsbCBzdWJyb2xlcyBl
eGNlcHQgQVhFbXB0eUdyb3VwLgorCiAyMDIyLTAxLTIwICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIGNo
aWxkcmVuSURzIGFuZCBjaGlsZHJlbiBsb2NhbCB2YXJpYWJsZXMgY291bGQgZ2V0IG91dCBvZiBz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCAxMjcyNmQxZDI0MWM0MDUwODY2YTAxODBjNmIxNWNkZTEzN2MyNzM0
Li5lMWIyNGFjZDE1YWIxNGE5MTdmYjQxZjI4NDJkOGEyNGUwNjlhZmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTI1NTQsNiArMjU1NCwxMiBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRm
b3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgaW4gb3RoZXIg
cGxhdGZvcm1zLgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKworU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCiAjZW5kaWYKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDBjYTM2MGIxNmRiYmRkYTNmMTdj
YWFhMzE3OWVlMzMyYTA4MGQ0MTQuLjFjMDcwNzI5NWE3NGQ5MDE3YmRkZGVmZTQyZWRjNGM4OTdi
MWNlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00MzUsNiArNDM1LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcm9sZTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcg
cm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHN1YnJvbGVQbGF0
Zm9ybVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xl
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4T2Jq
ZWN0Q2FjaGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDUw
ZTkwNDlmZTc4ODRlYmQ4MWMwMTA4YTdiNDIzMzQ4ODJkMGY4OC4uNzk4YjkxMzZmN2ZlM2NlMzk3
NTFlNjc4YTc5YTQ2ZWNjNjk1ZWUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTExOTUs
NiArMTE5NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyByb2xlRGVzY3JpcHRpb24o
KSBjb25zdCA9IDA7CiAgICAgLy8gTG9jYWxpemVkIHN0cmluZyB0aGF0IGRlc2NyaWJlcyBBUklB
IGxhbmRtYXJrIHJvbGVzLgogICAgIHZpcnR1YWwgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICAvLyBOb24tbG9jYWxpemVkIHN0cmluZyBhc3NvY2lh
dGVkIHdpdGggdGhlIG9iamVjdCdzIHN1YnJvbGUuCisgICAgdmlydHVhbCBTdHJpbmcgc3Vicm9s
ZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
KiBheE9iamVjdENhY2hlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggNDhhNjc4YzA3YTQzYjBhYTQzZmYxNWM2ZmFlZjFhMGMwNWRlOTcwZC4uYzhlZmIyZjhjMTRh
ZDQ1ZDFkYmIzODM5ZWI5NWMwNDZmMGVmN2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtMjcwLDYgKzI3MCw3IEBAIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVJv
bGU+KGludEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUpKTsgfQogICAg
IFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZVBsYXRmb3JtU3RyaW5nKTsgfQog
ICAgIFN0cmluZyByb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJp
bmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9sZURlc2NyaXB0aW9uKTsgfQorICAg
IFN0cmluZyBzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vicm9sZVBsYXRmb3JtU3RyaW5n
KTsgfQogICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QVJJQUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIGJvb2wgc3VwcG9ydHNQcmVzc0FjdGlvbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6U3VwcG9ydHNQcmVzc0FjdGlvbik7IH0KICAgICBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVj
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlY3RBdHRyaWJ1dGVWYWx1ZTxMYXlvdXRSZWN0
PihBWFByb3BlcnR5TmFtZTo6Qm91bmRpbmdCb3hSZWN0KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
aW5kZXggZDlkZmZhOTk5MjFlNzZlOGVhNzQ5NzQxZDhiYjk2YzcyZGE3NjBiOC4uMmY1OGIzN2Uz
ZjRkMjA4ZDhiOGIyYzI1NzE1NjVlYzg2NmYxNjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBA
IC0yODMsNiArMjgzLDcgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsK
ICAgICBTcGVha0FzLAogICAgIFNwZWVjaEhpbnQsCiAgICAgU3RyaW5nVmFsdWUsCisgICAgU3Vi
cm9sZVBsYXRmb3JtU3RyaW5nLAogICAgIFN1cHBvcnRzUm93Q291bnRDaGFuZ2UsCiAgICAgU3Vw
cG9ydHNEcmFnZ2luZywKICAgICBTdXBwb3J0c0Ryb3BwaW5nLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQppbmRleCAyZTJiMWUwNDhiNjA3MTNlNzg5NGY2NTc1Mzc4YTE1
ZTkyZjM1MThlLi43YmE1ZGU3NjQwOTBhMTQ4NWQzMGQ0MTFkZjY2YWIzNDJiNzQ3N2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJ
c29sYXRlZE9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQpAQCAtNDAsNiArNDAsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3Qg
QVhDb3JlT2JqZWN0JiBvYmplY3QsCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNw
ZWVjaEhpbnQsIG9iamVjdC5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHko
KSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUs
IG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCwgb2JqZWN0LmNhcmV0
QnJvd3NpbmdFbmFibGVkKCkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcsIG9iamVjdC5zdWJyb2xlUGxhdGZvcm1TdHJpbmcoKS5pc29sYXRl
ZENvcHkoKSk7CiAKICAgICBpZiAoaXNSb290KQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBjMTI1
YWQ1MmU3NTM5MWU2MTUyM2UwMDRlZWU3ZGJkNDRkMmFmMzJlLi5hMjg5NTM4NzRjODA1NTEyN2Y4
MGIyZmMzNjJkOWNlODIxZTcwMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTIwNiw2ICsy
MDYsMjIxIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmco
KSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhy
b2xlKTsKIH0KIAorU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0
cmluZygpIGNvbnN0Cit7CisgICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZpZWxkU3Vicm9sZTsKKyAgICBpZiAoaXNTZWFy
Y2hGaWVsZCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJy
b2xlOworCisgICAgaWYgKGlzQXR0YWNobWVudCgpKSB7CisgICAgICAgIE5TVmlldyogYXR0YWNo
VmlldyA9IFt3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddOworICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBpZiAoW1thdHRhY2hWaWV3IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVOYW1lc10gY29udGFpbnNPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1cm4gW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1dGVdOworICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICB9CisKKyAgICBpZiAoaXNN
ZXRlcigpKQorICAgICAgICByZXR1cm4gIkFYTWV0ZXIiOworCisjaWYgRU5BQkxFKE1PREVMX0VM
RU1FTlQpCisgICAgaWYgKGlzTW9kZWwoKSkKKyAgICAgICAgcmV0dXJuICJBWE1vZGVsIjsKKyNl
bmRpZgorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOworICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKKyAgICAgICAgcmV0
dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpUb2dnbGVCdXR0b24pCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVT
dWJyb2xlOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCisgICAg
ICAgIHJldHVybiAiQVhGb290ZXIiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGluQnV0dG9uUGFydCkgeworICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigpKQorICAgICAg
ICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlY3JlbWVudEFycm93U3Vicm9sZTsKKyAgICB9CisK
KyAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIjsKKworICAgIGlmIChpc1RyZWVJdGVtKCkpCisgICAgICAgIHJldHVybiBOU0Fj
Y2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKKworICAgIGlmIChpc0ZpZWxkc2V0KCkpCisg
ICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisKKyAgICBpZiAoaXNMaXN0KCkpIHsKKyAgICAg
ICAgaWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKKyAgICAgICAgICAg
IHJldHVybiAiQVhDb250ZW50TGlzdCI7CisgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgp
KQorICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCI7CisgICAgfQorCisgICAg
Ly8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgorICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgorICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtCYW5uZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxl
bWVudGFyeToKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKKyAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrTWFpbjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiI7CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgorICAgICAgICByZXR1cm4g
IkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0RvY1JlZ2lvbjoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lv
bjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIjsKKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2Vh
cmNoIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgorICAg
ICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uQWxlcnREaWFsb2ciOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
RGlhbG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RmVlZDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uTG9nOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciOworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKKyAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25TdGF0dXM6CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRvY3VtZW50OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6
CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RG9jdW1lbnRBcnRpY2xlOgorICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIjsK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6CisgICAgICAgIHJldHVy
biAiQVhEb2N1bWVudE1hdGgiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
Tm90ZToKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSI7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6CisgICAgICAgIHJldHVybiAiQVhVc2Vy
SW50ZXJmYWNlVG9vbHRpcCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6
CisgICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGVybToKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKKyAgICAgICAgcmV0dXJuICJB
WERlc2NyaXB0aW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgLy8gRGVmYXVs
dCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUg
Y2hvc2VuLgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkgeworICAgICAgICBpZiAoaXNN
YXRoRnJhY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAg
ICAgICBpZiAoaXNNYXRoRmVuY2VkKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNl
ZCI7CisgICAgICAgIGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQorICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7CisgICAgICAgIGlmIChpc01h
dGhSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93IjsKKyAgICAgICAgaWYgKGlz
TWF0aFVuZGVyT3ZlcigpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiOwor
ICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTcXVhcmVSb290IjsKKyAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoUm9vdCI7CisgICAgICAgIGlmIChpc01hdGhUZXh0KCkpCisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgIGlmIChpc01hdGhJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElkZW50aWZpZXIiOworICAgICAgICBp
ZiAoaXNNYXRoVGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUiOworICAg
ICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFi
bGVSb3ciOworICAgICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkpCisgICAgICAgICAgICByZXR1
cm4gIkFYTWF0aFRhYmxlQ2VsbCI7CisgICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkp
CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICBpZiAo
aXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2Vw
YXJhdG9yT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgIH0KKwor
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKKyAgICAgICAgcmV0dXJu
ICJBWFZpZGVvIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCisg
ICAgICAgIHJldHVybiAiQVhBdWRpbyI7CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OkRldGFpbHMpCisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICBpZiAocm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKKyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnki
OworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQorICAgICAgICByZXR1
cm4gIkFYVGltZUdyb3VwIjsKKworICAgIGlmIChpc01lZGlhVGltZWxpbmUoKSkKKyAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKKworICAgIGlmIChpc1N3aXRj
aCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKKworICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCisgICAgICAgIHJldHVy
biAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVsZXRpb24pCisgICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VwZXJzY3JpcHQpCisgICAgICAgIHJldHVy
biAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTdWJzY3JpcHQpCisgICAgICAgIHJldHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3Vw
IjsKKworICAgIHN3aXRjaCAocm9sZSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgorICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlCbG9jazoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlJbmxpbmUiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46CisgICAgICAg
IHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0IjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAoaXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKKyAgICAgICAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKyAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7
CisgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXli
b2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKKyAgICAg
ICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IHBy
ZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7Cisg
ICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYU2FtcGxl
U3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gdmFyVGFnKQorICAgICAgICAgICAgcmV0
dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOworICAgICAgICBpZiAodGFnID09IGNpdGVUYWcp
CisgICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxh
dGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9
IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRl
eCBkZDgyZjFlNTJlYzFhMzhlNWZjYzhkZmRiMjI0ZjVlY2QxNTg1N2QwLi42MjBmZDM4NmVlZTNi
YTFiYzk3NTBjZDE0ZmExZDBiYjM5NWYwOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtMTEwLDQzICsxMTAsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIEAiQVhDZWxsIgogI2VuZGlmCiAK
LS8vIExpc3RzCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRMaXN0U3Vicm9sZQotI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlDb250ZW50TGlzdFN1YnJvbGUgQCJBWENvbnRlbnRMaXN0Igot
I2VuZGlmCi0KICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5RGVmaW5pdGlvbkxpc3RTdWJyb2xlCiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlZmluaXRpb25MaXN0U3Vicm9sZSBAIkFYRGVmaW5pdGlv
bkxpc3QiCiAjZW5kaWYKIAotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkxpc3RT
dWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1YnJvbGUgQCJB
WERlc2NyaXB0aW9uTGlzdCIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRl
bnRTZXBhcmF0b3JTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRTZXBhcmF0
b3JTdWJyb2xlIEAiQVhDb250ZW50U2VwYXJhdG9yIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5UnVieUJhc2VTdWJSb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNl
U3Vicm9sZSBAIkFYUnVieUJhc2UiCi0jZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlS
dWJ5QmxvY2tTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGUg
QCJBWFJ1YnlCbG9jayIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxp
bmVTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxpbmVTdWJyb2xlIEAiQVhS
dWJ5SW5saW5lIgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJv
bGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJvbGUgQCJBWFJ1YnlSdW4iCi0j
ZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJvbGUKLSNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5UnVieVRleHRTdWJyb2xlIEAiQVhSdWJ5VGV4dCIKLSNlbmRpZgotCiAv
LyBNaXNjZWxsYW5lb3VzCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eUJsb2NrUXVvdGVMZXZlbEF0
dHJpYnV0ZQogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlCbG9ja1F1b3RlTGV2ZWxBdHRyaWJ1dGUg
QCJBWEJsb2NrUXVvdGVMZXZlbCIKQEAgLTE4MjgsMjI2ICsxNzk1LDM1IEBAIHN0YXRpYyB2b2lk
IFdlYlRyYW5zZm9ybUNHUGF0aFRvTlNCZXppZXJQYXRoKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0
aEVsZW1lbnQgKmVsCiAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVua25vd25Sb2xlOwogfQog
Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotLSAoTlNTdHJpbmcqKXN1YnJv
bGUKKy0gKEJPT0wpaXNFbXB0eUdyb3VwCiB7CiAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNl
bGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmICghYmFja2luZ09iamVjdCkKLSAgICAgICAgcmV0
dXJuIG5pbDsKLQotICAgIC8vIEZJWE1FOiBjcmVhdGUgQVhDb3JlT2JqZWN0OjpzdWJyb2xlUGxh
dGZvcm1TdHJpbmcgdG8gcmVwbGFjZSB0aGUgZm9sbG93aW5nIGxpbmVhciBzZWFyY2ggYW5kIGhl
dXJpc3RpY3MsIHNpbWlsYXIgdG8gcm9sZVBsYXRmb3JtU3RyaW5nLgotICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7Ci0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VhcmNo
RmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9s
ZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkgewotICAgICAgICBO
U1ZpZXcqIGF0dGFjaFZpZXcgPSBbc2VsZiBhdHRhY2htZW50Vmlld107Ci0gICAgICAgIGlmIChb
W2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSBjb250YWluc09iamVjdDpO
U0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRlXSkKLSAgICAgICAgICAgIHJldHVybiBbYXR0
YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U3Vicm9s
ZUF0dHJpYnV0ZV07Ci0gICAgfQotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWV0ZXIoKSkK
LSAgICAgICAgcmV0dXJuIEAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lm
IEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01vZGVsKCkp
Ci0gICAgICAgIHJldHVybiBAIkFYTW9kZWwiOworICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKIAotICAgIC8vIFRyZWF0IGFueSBncm91cCB3aXRob3V0IGV4cG9zZWQgY2hpbGRyZW4gYXMg
ZW1wdHkuCi0gICAgaWYgKFtbc2VsZiByb2xlXSBpc0VxdWFsOk5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZV0gJiYgIWJhY2tpbmdPYmplY3QtPmNoaWxkcmVuKCkuc2l6ZSgpICYmICFbW3NlbGYgcmVu
ZGVyV2lkZ2V0Q2hpbGRyZW5dIGNvdW50XSkKLSAgICAgICAgcmV0dXJuIEAiQVhFbXB0eUdyb3Vw
IjsKLQotICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSBiYWNraW5nT2JqZWN0LT5yb2xlVmFs
dWUoKTsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUp
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlDb250ZW50U2VwYXJhdG9yU3Vicm9sZTsK
LSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQotICAgICAg
ICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKLSAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gQCJBWEZvb3RlciI7Ci0g
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0KSB7Ci0gICAg
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0luY3JlbWVudG9yKCkpCi0gICAgICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwotICAgICAgICByZXR1cm4g
TlNBY2Nlc3NpYmlsaXR5RGVjcmVtZW50QXJyb3dTdWJyb2xlOwotICAgIH0KLQotICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc0ZpbGVVcGxvYWRCdXR0b24oKSkKLSAgICAgICAgcmV0dXJuIEAiQVhG
aWxlVXBsb2FkQnV0dG9uIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1RyZWVJdGVtKCkp
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKLQotICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc0ZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVybiBAIkFYRmll
bGRzZXQiOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTGlzdCgpKSB7Ci0gICAgICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc1Vub3JkZXJlZExpc3QoKSB8fCBiYWNraW5nT2JqZWN0LT5pc09y
ZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5Q29udGVudExp
c3RTdWJyb2xlOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNEZXNjcmlwdGlvbkxpc3Qo
KSkgewotICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1
YnJvbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMu
Ci0gICAgc3dpdGNoIChyb2xlKSB7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtCYW5uZXIiOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJu
IEAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtDb250ZW50
SW5mbyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAg
ICByZXR1cm4gQCJBWExhbmRtYXJrTWFpbiI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrTmF2aWdhdGlv
biI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiBA
IkFYTGFuZG1hcmtSZWdpb24iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
U2VhcmNoOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrU2VhcmNoIjsKLSAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAgICByZXR1cm4gQCJBWEFw
cGxpY2F0aW9uQWxlcnQiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
QWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyI7
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAg
IHJldHVybiBAIkFYQXBwbGljYXRpb25EaWFsb2ciOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25UZXh0R3JvdXA6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBs
aWNhdGlvbkdyb3VwIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxv
ZzoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbkxvZyI7Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxp
Y2F0aW9uTWFycXVlZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25T
dGF0dXM6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25TdGF0dXMiOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVybiBAIkFY
QXBwbGljYXRpb25UaW1lciI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAg
cmV0dXJuIEAiQVhEb2N1bWVudCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1l
bnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50QXJ0aWNsZSI7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1cm4gQCJBWERv
Y3VtZW50TWF0aCI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgot
ICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50Tm90ZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0gICAgICAgIHJldHVybiBAIkFYVXNlckludGVy
ZmFjZVRvb2x0aXAiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAg
ICAgICByZXR1cm4gQCJBWFRhYlBhbmVsIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpE
ZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gQCJBWERlZmluaXRpb24iOwotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuIEAiQVhUZXJtIjsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiBAIkFY
RGVzY3JpcHRpb24iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9u
OgotICAgICAgICByZXR1cm4gQCJBWFdlYkFwcGxpY2F0aW9uIjsKLSAgICAgICAgLy8gRGVmYXVs
dCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUg
Y2hvc2VuLgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICByZXR1cm4g
W1tzZWxmIHJvbGVdIGlzRXF1YWw6TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlXQorICAgICAgICAm
JiBiYWNraW5nT2JqZWN0LT5jaGlsZHJlbigpLmlzRW1wdHkoKQorICAgICAgICAmJiAhW1tzZWxm
IHJlbmRlcldpZGdldENoaWxkcmVuXSBjb3VudF07Cit9CiAKLSAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQpIHsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3Qt
PmlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhGcmFjdGlvbiI7
Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAg
IHJldHVybiBAIkFYTWF0aEZlbmNlZCI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01h
dGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoU3Vi
c2NyaXB0U3VwZXJzY3JpcHQiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoUm93
KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhSb3ciOwotICAgICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNNYXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhV
bmRlck92ZXIiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoU3F1YXJlUm9vdCgp
KQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoU3F1YXJlUm9vdCI7Ci0gICAgICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhS
b290IjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFRleHQoKSkKLSAgICAgICAg
ICAgIHJldHVybiBAIkFYTWF0aFRleHQiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNN
YXRoTnVtYmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhOdW1iZXIiOwotICAgICAg
ICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoSWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmV0
dXJuIEAiQVhNYXRoSWRlbnRpZmllciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01h
dGhUYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGFibGUiOwotICAgICAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVybiBA
IkFYTWF0aFRhYmxlUm93IjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFRhYmxl
Q2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGFibGVDZWxsIjsKLSAgICAgICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aEZlbmNlT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJl
dHVybiBAIkFYTWF0aEZlbmNlT3BlcmF0b3IiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFNl
cGFyYXRvck9wZXJhdG9yIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aE9wZXJh
dG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhPcGVyYXRvciI7Ci0gICAgICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc01hdGhNdWx0aXNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhNYXRoTXVsdGlzY3JpcHQiOwotICAgIH0KK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCistIChOU1N0cmluZyopc3Vicm9sZQoreworICAgIGF1dG8qIGJhY2tpbmdPYmpl
Y3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QpCisgICAg
ICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Vmlk
ZW8pCi0gICAgICAgIHJldHVybiBAIkFYVmlkZW8iOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpBdWRpbykKLSAgICAgICAgcmV0dXJuIEAiQVhBdWRpbyI7Ci0gICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMpCi0gICAgICAgIHJldHVybiBAIkFYRGV0
YWlscyI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnkpCi0gICAg
ICAgIHJldHVybiBAIkFYU3VtbWFyeSI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OlRpbWUpCi0gICAgICAgIHJldHVybiBAIkFYVGltZUdyb3VwIjsKLQotICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc01lZGlhVGltZWxpbmUoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJp
bGl0eVRpbWVsaW5lU3Vicm9sZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1N3aXRjaCgp
KQotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKLQotICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCi0gICAgICAgIHJldHVybiBA
IkFYSW5zZXJ0U3R5bGVHcm91cCI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OkRlbGV0aW9uKQotICAgICAgICByZXR1cm4gQCJBWERlbGV0ZVN0eWxlR3JvdXAiOwotICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJu
IEAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJldHVybiBAIkFYU3Vic2NyaXB0U3R5bGVHcm91
cCI7Ci0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKLSAg
ICAgICAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLSAgICAgICAgYXV0byB0YWdOYW1lID0g
YmFja2luZ09iamVjdC0+dGFnTmFtZSgpOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBrYmRUYWcp
Ci0gICAgICAgICAgICByZXR1cm4gQCJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIjsKLSAgICAg
ICAgaWYgKHRhZ05hbWUgPT0gY29kZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0
eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBwcmVUYWcpCi0gICAgICAgICAgICBy
ZXR1cm4gQCJBWFByZWZvcm1hdHRlZFN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9
PSBzYW1wVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKLSAg
ICAgICAgaWYgKHRhZ05hbWUgPT0gdmFyVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJp
YWJsZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBjaXRlVGFnKQotICAgICAg
ICAgICAgcmV0dXJuIEAiQVhDaXRlU3R5bGVHcm91cCI7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIH0KKyAgICBpZiAoW3NlbGYgaXNFbXB0eUdyb3VwXSkKKyAgICAgICAgcmV0
dXJuIEAiQVhFbXB0eUdyb3VwIjsKIAotICAgIC8vIFJ1Ynkgc3Vicm9sZXMKLSAgICBzd2l0Y2gg
KHJvbGUpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNlU3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5
QmxvY2tTdWJyb2xlOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0g
ICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5SW5saW5lU3Vicm9sZTsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmls
aXR5UnVieVJ1blN1YnJvbGU7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJvbGU7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIGF1dG8gc3Vicm9sZSA9IGJhY2tpbmdP
YmplY3QtPnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpOworICAgIGlmIChzdWJyb2xlICE9IFN0cmlu
ZygpKQorICAgICAgICByZXR1cm4gc3Vicm9sZTsKIAogICAgIHJldHVybiBuaWw7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449684</attachid>
            <date>2022-01-21 12:25:20 -0800</date>
            <delta_ts>2022-01-21 12:31:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220121142518.patch</filename>
            <type>text/plain</type>
            <size>26072</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uZjc2ZjQ4MDFiZDE0ODNhNzU1MGQ3NjMzNjhhNjI3
YjU3MDRjNDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtb3N0IG9mIHRoZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBh
IG5ldyBBWENvcmVPYmplY3QgaW50ZXJmYWNlCisgICAgICAgIG1ldGhvZCwgc3Vicm9sZVBsYXRm
b3JtU3RyaW5nIChtYXRjaGluZyB0aGUgbmFtaW5nIG9mIHJvbGVQbGF0Zm9ybVN0cmluZykuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhY2hlIGEgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcKKyAgICAgICAgcHJvcGVydHkgaW4gaXNvbGF0ZWQgdHJlZSBvYmpl
Y3RzLgorCisgICAgICAgIFRoaXMgZml4ZXMgYWNjZXNzaWJpbGl0eS9tYWMvc3Vicm9sZXMtZm9y
LWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZAorICAgICAgICB0cmVlIG1vZGUgYmVj
YXVzZSB0aGlzIHRlc3QgZXhlcmNpc2VkIHRoZSBgYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1h
dEdyb3VwKClgIGNvZGVwYXRoLAorICAgICAgICB3aGljaCBpbiB0dXJuIHRyaWVkIHRvIGNvbXBh
cmUgQXRvbVN0cmluZ3Mgb2ZmIHRoZSBtYWluLXRocmVhZCwgd2hpY2ggd29uJ3Qgd29yaworICAg
ICAgICAodGhlIHN0cmluZyBjb21wYXJpc29ucyB3aWxsIHVuZXhwZWN0ZWRseSBub3QgbWF0Y2gp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oOgorICAgICAgICBBZGQgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJyb2xl
UGxhdGZvcm1TdHJpbmcgcHJvcGVydHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIEluaXRpYWxpemUgbmV3
IEFYUHJvcGVydHlOYW1lOjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAg
ICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBpc0VtcHR5R3JvdXBdKToKKyAgICAgICAgQWRkZWQuCisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHN1YnJvbGVdKToKKyAgICAgICAgRGVmZXIgdG8gc3Vicm9s
ZVBsYXRmb3JtU3RyaW5nIGZvciBkZXRlcm1pbmluZyBhbGwgc3Vicm9sZXMgZXhjZXB0IEFYRW1w
dHlHcm91cC4KKwogMjAyMi0wMS0yMCAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBjaGlsZHJlbklEcyBh
bmQgY2hpbGRyZW4gbG9jYWwgdmFyaWFibGVzIGNvdWxkIGdldCBvdXQgb2Ygc3luYwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggMTI3MjZkMWQyNDFjNDA1MDg2NmEwMTgwYzZiMTVjZGUxMzdjMjczNC4uZTFiMjRhY2Qx
NWFiMTRhOTE3ZmI0MWYyODQyZDhhMjRlMDY5YWZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNTU0LDYgKzI1
NTQsMTIgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0
aW9uKCkgY29uc3QKICAgICAvLyBGSVhNRTogaW1wbGVtZW50IGluIG90aGVyIHBsYXRmb3Jtcy4K
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CisKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KwogI2VuZGlmCiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjplbWJlZGRlZEltYWdlRGVz
Y3JpcHRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAwY2EzNjBiMTZkYmJkZGEzZjE3Y2FhYTMxNzllZTMz
MmEwODBkNDE0Li4xYzA3MDcyOTVhNzRkOTAxN2JkZGRlZmU0MmVkYzRjODk3YjFjZTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNDM1LDYgKzQzNSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JvbGU7IH0KICAgICBTdHJpbmcgcm9s
ZVBsYXRmb3JtU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHJvbGVEZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBzdWJyb2xlUGxhdGZvcm1TdHJpbmco
KSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDQ1MGU5MDQ5ZmU3ODg0
ZWJkODFjMDEwOGE3YjQyMzM0ODgyZDBmODguLjc5OGI5MTM2ZjdmZTNjZTM5NzUxZTY3OGE3OWE0
NmVjYzY5NWVlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC0xMTk1LDYgKzExOTUsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgcm9sZURlc2NyaXB0aW9uKCkgY29uc3QgPSAw
OwogICAgIC8vIExvY2FsaXplZCBzdHJpbmcgdGhhdCBkZXNjcmliZXMgQVJJQSBsYW5kbWFyayBy
b2xlcy4KICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24oKSBj
b25zdCA9IDA7CisgICAgLy8gTm9uLWxvY2FsaXplZCBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBvYmplY3QncyBzdWJyb2xlLgorICAgIHZpcnR1YWwgU3RyaW5nIHN1YnJvbGVQbGF0Zm9ybVN0
cmluZygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZSogYXhPYmplY3RD
YWNoZSgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBhNWVj
ODNhNmM0OTYxYWVkZjNmZmJiM2JjNjA0MmQ1YWI0MWU0ZGE0Li5lY2Y4MThiMWE2YjE2MjcyNzAz
ODBiY2U4ODZmOWE2MDRjZmE3N2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAt
MTQ2LDYgKzE0Niw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0
ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlJvbGVEZXNjcmlwdGlvbiwgb2JqZWN0LnJvbGVEZXNjcmlwdGlvbigp
Lmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Um9sZVBs
YXRmb3JtU3RyaW5nLCBvYmplY3Qucm9sZVBsYXRmb3JtU3RyaW5nKCkuaXNvbGF0ZWRDb3B5KCkp
OwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUsIHN0YXRpY19jYXN0
PGludD4ob2JqZWN0LnJvbGVWYWx1ZSgpKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OlN1YnJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnN1YnJvbGVQbGF0Zm9ybVN0cmluZygp
Lmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNEYXRldGltZUF0dHJpYnV0ZSwgb2JqZWN0LnN1cHBvcnRzRGF0ZXRpbWVBdHRyaWJ1dGUoKSk7
CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUm93Q291bnRDaGFuZ2Us
IG9iamVjdC5zdXBwb3J0c1Jvd0NvdW50Q2hhbmdlKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpUaXRsZSwgb2JqZWN0LnRpdGxlKCkuaXNvbGF0ZWRDb3B5KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5oCmluZGV4IDQ4YTY3OGMwN2E0M2IwYWE0M2ZmMTVjNmZhZWYxYTBjMDVk
ZTk3MGQuLmM4ZWZiMmY4YzE0YWQ0NWQxZGJiMzgzOWViOTVjMDQ2ZjBlZjdkOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKQEAgLTI3MCw2ICsyNzAsNyBAQCBwcml2YXRlOgogICAgIEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRpY19j
YXN0PEFjY2Vzc2liaWxpdHlSb2xlPihpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
Um9sZVZhbHVlKSk7IH0KICAgICBTdHJpbmcgcm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJvbGVQ
bGF0Zm9ybVN0cmluZyk7IH0KICAgICBTdHJpbmcgcm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJvbGVE
ZXNjcmlwdGlvbik7IH0KKyAgICBTdHJpbmcgc3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1
YnJvbGVQbGF0Zm9ybVN0cmluZyk7IH0KICAgICBTdHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbik7IH0KICAgICBib29sIHN1
cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRl
VmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUHJlc3NBY3Rpb24pOyB9CiAgICAgTGF5b3V0
UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiByZWN0QXR0cmli
dXRlVmFsdWU8TGF5b3V0UmVjdD4oQVhQcm9wZXJ0eU5hbWU6OkJvdW5kaW5nQm94UmVjdCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGQ5ZGZmYTk5OTIxZTc2ZThlYTc0OTc0MWQ4YmI5NmM3
MmRhNzYwYjguLjJmNThiMzdlM2Y0ZDIwOGQ4YjhiMmMyNTcxNTY1ZWM4NjZmMTY3NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaApAQCAtMjgzLDYgKzI4Myw3IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0
eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgU3BlYWtBcywKICAgICBTcGVlY2hIaW50LAogICAgIFN0
cmluZ1ZhbHVlLAorICAgIFN1YnJvbGVQbGF0Zm9ybVN0cmluZywKICAgICBTdXBwb3J0c1Jvd0Nv
dW50Q2hhbmdlLAogICAgIFN1cHBvcnRzRHJhZ2dpbmcsCiAgICAgU3VwcG9ydHNEcm9wcGluZywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxp
dHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3Np
YmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IGMxMjVhZDUyZTc1MzkxZTYxNTIzZTAwNGVlZTdkYmQ0
NGQyYWYzMmUuLmEyODk1Mzg3NGM4MDU1MTI3ZjgwYjJmYzM2MmQ5Y2U4MjFlNzAxYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmpl
Y3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJp
bGl0eU9iamVjdE1hYy5tbQpAQCAtMjA2LDYgKzIwNiwyMjEgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHk6OnJvbGVUb1BsYXRmb3JtU3RyaW5nKHJvbGUpOwogfQogCitTdHJpbmcgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoaXNQ
YXNzd29yZEZpZWxkKCkpCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTZWN1cmVUZXh0
RmllbGRTdWJyb2xlOworICAgIGlmIChpc1NlYXJjaEZpZWxkKCkpCisgICAgICAgIHJldHVybiBO
U0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZFN1YnJvbGU7CisKKyAgICBpZiAoaXNBdHRhY2htZW50
KCkpIHsKKyAgICAgICAgTlNWaWV3KiBhdHRhY2hWaWV3ID0gW3dyYXBwZXIoKSBhdHRhY2htZW50
Vmlld107CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAg
ICAgIGlmIChbW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSBjb250YWlu
c09iamVjdDpOU0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRlXSkKKyAgICAgICAgICAgIHJl
dHVybiBbYXR0YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmls
aXR5U3Vicm9sZUF0dHJpYnV0ZV07CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAorICAgIH0KKworICAgIGlmIChpc01ldGVyKCkpCisgICAgICAgIHJldHVybiAiQVhN
ZXRlciI7CisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKKyAgICBpZiAoaXNNb2RlbCgpKQor
ICAgICAgICByZXR1cm4gIkFYTW9kZWwiOworI2VuZGlmCisKKyAgICBBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlID0gcm9sZVZhbHVlKCk7CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
Okhvcml6b250YWxSdWxlKQorICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRvciI7Cisg
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKKyAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRvZ2dsZVN1YnJvbGU7CisgICAgaWYgKHJvbGUgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKKyAgICAgICAgcmV0dXJuICJBWEZvb3RlciI7CisgICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0KSB7CisgICAgICAg
IGlmIChpc0luY3JlbWVudG9yKCkpCisgICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5
SW5jcmVtZW50QXJyb3dTdWJyb2xlOworICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5RGVj
cmVtZW50QXJyb3dTdWJyb2xlOworICAgIH0KKworICAgIGlmIChpc0ZpbGVVcGxvYWRCdXR0b24o
KSkKKyAgICAgICAgcmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iOworCisgICAgaWYgKGlzVHJl
ZUl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eU91dGxpbmVSb3dTdWJyb2xl
OworCisgICAgaWYgKGlzRmllbGRzZXQoKSkKKyAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0IjsK
KworICAgIGlmIChpc0xpc3QoKSkgeworICAgICAgICBpZiAoaXNVbm9yZGVyZWRMaXN0KCkgfHwg
aXNPcmRlcmVkTGlzdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0IjsKKyAg
ICAgICAgaWYgKGlzRGVzY3JpcHRpb25MaXN0KCkpCisgICAgICAgICAgICByZXR1cm4gIkFYRGVz
Y3JpcHRpb25MaXN0IjsKKyAgICB9CisKKyAgICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCisg
ICAgc3dpdGNoIChyb2xlKSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtC
YW5uZXI6CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Jhbm5lciI7CisgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5OgorICAgICAgICByZXR1cm4gIkFY
TGFuZG1hcmtDb21wbGVtZW50YXJ5IjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0NvbnRlbnRJbmZvOgorICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgorICAgICAgICByZXR1
cm4gIkFYTGFuZG1hcmtNYWluIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFy
a05hdmlnYXRpb246CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya05hdmlnYXRpb24iOworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uOgorICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgorICAgICAgICByZXR1cm4gIkFYTGFuZG1h
cmtSZWdpb24iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgor
ICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtTZWFyY2giOworICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFs
ZXJ0IjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0RGlhbG9n
OgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyI7CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6CisgICAgICAgIHJldHVybiAiQVhB
cHBsaWNhdGlvbkRpYWxvZyI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25Hcm91cDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91
cDoKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgorICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkZvb3Rub3RlOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2c6CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbkxvZyI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBw
bGljYXRpb25NYXJxdWVlOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIjsK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1czoKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvblRpbWVyOgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25UaW1lciI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50
IjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6CisgICAgICAg
IHJldHVybiAiQVhEb2N1bWVudEFydGljbGUiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRvY3VtZW50TWF0aDoKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50TWF0aCI7CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgorICAgICAgICByZXR1cm4gIkFYRG9j
dW1lbnROb3RlIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9v
bHRpcDoKKyAgICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKKyAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVs
IjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgorICAgICAgICByZXR1
cm4gIkFYRGVmaW5pdGlvbiI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRp
b25MaXN0VGVybToKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgorICAgICAgICBy
ZXR1cm4gIkFYVGVybSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25M
aXN0RGV0YWlsOgorICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9uOgorICAgICAgICByZXR1cm4gIkFYV2ViQXBw
bGljYXRpb24iOworICAgICAgICAvLyBEZWZhdWx0IGRvZXNuJ3QgcmV0dXJuIGFueXRoaW5nLCBz
byByb2xlcyBkZWZpbmVkIGJlbG93IGNhbiBiZSBjaG9zZW4uCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1h
dGhFbGVtZW50KSB7CisgICAgICAgIGlmIChpc01hdGhGcmFjdGlvbigpKQorICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhGcmFjdGlvbiI7CisgICAgICAgIGlmIChpc01hdGhGZW5jZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIjsKKyAgICAgICAgaWYgKGlzTWF0aFN1YnNj
cmlwdFN1cGVyc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1YnNjcmlwdFN1
cGVyc2NyaXB0IjsKKyAgICAgICAgaWYgKGlzTWF0aFJvdygpKQorICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhSb3ciOworICAgICAgICBpZiAoaXNNYXRoVW5kZXJPdmVyKCkpCisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFVuZGVyT3ZlciI7CisgICAgICAgIGlmIChpc01hdGhTcXVhcmVSb290
KCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiOworICAgICAgICBpZiAo
aXNNYXRoUm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb290IjsKKyAgICAgICAg
aWYgKGlzTWF0aFRleHQoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGV4dCI7CisgICAg
ICAgIGlmIChpc01hdGhOdW1iZXIoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTnVtYmVy
IjsKKyAgICAgICAgaWYgKGlzTWF0aElkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoSWRlbnRpZmllciI7CisgICAgICAgIGlmIChpc01hdGhUYWJsZSgpKQorICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhUYWJsZSI7CisgICAgICAgIGlmIChpc01hdGhUYWJsZVJvdygpKQor
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyI7CisgICAgICAgIGlmIChpc01hdGhU
YWJsZUNlbGwoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIjsKKyAgICAg
ICAgaWYgKGlzTWF0aEZlbmNlT3BlcmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
RmVuY2VPcGVyYXRvciI7CisgICAgICAgIGlmIChpc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpKQor
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciI7CisgICAgICAgIGlm
IChpc01hdGhPcGVyYXRvcigpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhPcGVyYXRvciI7
CisgICAgICAgIGlmIChpc01hdGhNdWx0aXNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhNdWx0aXNjcmlwdCI7CisgICAgfQorCisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlZpZGVvKQorICAgICAgICByZXR1cm4gIkFYVmlkZW8iOworICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbykKKyAgICAgICAgcmV0dXJuICJBWEF1ZGlvIjsKKyAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKKyAgICAgICAgcmV0dXJu
ICJBWERldGFpbHMiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5
KQorICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSI7CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlRpbWUpCisgICAgICAgIHJldHVybiAiQVhUaW1lR3JvdXAiOworCisgICAgaWYg
KGlzTWVkaWFUaW1lbGluZSgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VGltZWxp
bmVTdWJyb2xlOworCisgICAgaWYgKGlzU3dpdGNoKCkpCisgICAgICAgIHJldHVybiBOU0FjY2Vz
c2liaWxpdHlTd2l0Y2hTdWJyb2xlOworCisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6Okluc2VydGlvbikKKyAgICAgICAgcmV0dXJuICJBWEluc2VydFN0eWxlR3JvdXAiOworICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbikKKyAgICAgICAgcmV0dXJu
ICJBWERlbGV0ZVN0eWxlR3JvdXAiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpTdXBlcnNjcmlwdCkKKyAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCI7
CisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKKyAgICAgICAg
cmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAiOworCisgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6CisgICAgICAgIHJldHVybiAiQVhS
dWJ5QmFzZSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJsb2NrOgorICAgICAg
ICByZXR1cm4gIkFYUnVieUJsb2NrIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5
SW5saW5lOgorICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSI7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UnVieVJ1bjoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iOworICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlUZXh0OgorICAgICAgICByZXR1cm4gIkFYUnVieVRl
eHQiOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChpc1N0
eWxlRm9ybWF0R3JvdXAoKSkgeworICAgICAgICB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
ICAgICAgICBhdXRvIHRhZyA9IHRhZ05hbWUoKTsKKyAgICAgICAgaWYgKHRhZyA9PSBrYmRUYWcp
CisgICAgICAgICAgICByZXR1cm4gQCJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIjsKKyAgICAg
ICAgaWYgKHRhZyA9PSBjb2RlVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAiQVhDb2RlU3R5bGVH
cm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gcHJlVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAi
QVhQcmVmb3JtYXR0ZWRTdHlsZUdyb3VwIjsKKyAgICAgICAgaWYgKHRhZyA9PSBzYW1wVGFnKQor
ICAgICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAgICAgICAgaWYgKHRh
ZyA9PSB2YXJUYWcpCisgICAgICAgICAgICByZXR1cm4gQCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7
CisgICAgICAgIGlmICh0YWcgPT0gY2l0ZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYQ2l0
ZVN0eWxlR3JvdXAiOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgIH0KKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5n
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIHsK
ICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGRkODJmMWU1MmVjMWEzOGU1ZmNjOGRmZGIy
MjRmNWVjZDE1ODU3ZDAuLjExYzRiOWRjYzg4N2ZmNGZhZDU1YTUyNGQxMGM1ODZlYTZiNzI2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMTAsNDMgKzEx
MCwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
Q2VsbFJvbGUgQCJBWENlbGwiCiAjZW5kaWYKIAotLy8gTGlzdHMKLSNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5Q29udGVudExpc3RTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRM
aXN0U3Vicm9sZSBAIkFYQ29udGVudExpc3QiCi0jZW5kaWYKLQogI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlEZWZpbml0aW9uTGlzdFN1YnJvbGUKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5RGVmaW5p
dGlvbkxpc3RTdWJyb2xlIEAiQVhEZWZpbml0aW9uTGlzdCIKICNlbmRpZgogCi0jaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1YnJvbGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb25MaXN0U3Vicm9sZSBAIkFYRGVzY3JpcHRpb25MaXN0IgotI2VuZGlmCi0K
LSNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5Q29udGVudFNlcGFyYXRvclN1YnJvbGUKLSNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5Q29udGVudFNlcGFyYXRvclN1YnJvbGUgQCJBWENvbnRlbnRTZXBhcmF0
b3IiCi0jZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlSdWJ5QmFzZVN1YlJvbGUKLSNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVieUJhc2VTdWJyb2xlIEAiQVhSdWJ5QmFzZSIKLSNlbmRp
ZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGUKLSNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5UnVieUJsb2NrU3Vicm9sZSBAIkFYUnVieUJsb2NrIgotI2VuZGlmCi0KLSNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5UnVieUlubGluZVN1YnJvbGUKLSNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5UnVieUlubGluZVN1YnJvbGUgQCJBWFJ1YnlJbmxpbmUiCi0jZW5kaWYKLQotI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlSdWJ5UnVuU3Vicm9sZQotI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlS
dWJ5UnVuU3Vicm9sZSBAIkFYUnVieVJ1biIKLSNlbmRpZgotCi0jaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVJ1YnlUZXh0U3Vicm9sZQotI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlSdWJ5VGV4dFN1YnJv
bGUgQCJBWFJ1YnlUZXh0IgotI2VuZGlmCi0KIC8vIE1pc2NlbGxhbmVvdXMKICNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5QmxvY2tRdW90ZUxldmVsQXR0cmlidXRlCiAjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eUJsb2NrUXVvdGVMZXZlbEF0dHJpYnV0ZSBAIkFYQmxvY2tRdW90ZUxldmVsIgpAQCAtMTgy
OCwyMjYgKzE3OTUsMzUgQEAgc3RhdGljIHZvaWQgV2ViVHJhbnNmb3JtQ0dQYXRoVG9OU0Jlemll
clBhdGgodm9pZCogaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCAqZWwKICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5VW5rbm93blJvbGU7CiB9CiAKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCi0tIChOU1N0cmluZyopc3Vicm9sZQorLSAoQk9PTClpc0VtcHR5R3JvdXAKIHsK
ICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gc2VsZi5heEJhY2tpbmdPYmplY3Q7CiAgICAgaWYg
KCFiYWNraW5nT2JqZWN0KQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgLy8gRklYTUU6IGNy
ZWF0ZSBBWENvcmVPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyB0byByZXBsYWNlIHRoZSBm
b2xsb3dpbmcgbGluZWFyIHNlYXJjaCBhbmQgaGV1cmlzdGljcywgc2ltaWxhciB0byByb2xlUGxh
dGZvcm1TdHJpbmcuCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQot
ICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZpZWxkU3Vicm9sZTsKLSAg
ICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWFyY2hGaWVsZCgpKQotICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJyb2xlOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3Qt
PmlzQXR0YWNobWVudCgpKSB7Ci0gICAgICAgIE5TVmlldyogYXR0YWNoVmlldyA9IFtzZWxmIGF0
dGFjaG1lbnRWaWV3XTsKLSAgICAgICAgaWYgKFtbYXR0YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0
cmlidXRlTmFtZXNdIGNvbnRhaW5zT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1
dGVdKQotICAgICAgICAgICAgcmV0dXJuIFthdHRhY2hWaWV3IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRlXTsKLSAgICB9Ci0KLSAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNNZXRlcigpKQotICAgICAgICByZXR1cm4gQCJBWE1ldGVyIjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzTW9kZWwoKSkKLSAgICAgICAgcmV0dXJuIEAiQVhNb2RlbCI7
CisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCi0gICAgLy8gVHJlYXQgYW55IGdyb3Vw
IHdpdGhvdXQgZXhwb3NlZCBjaGlsZHJlbiBhcyBlbXB0eS4KLSAgICBpZiAoW1tzZWxmIHJvbGVd
IGlzRXF1YWw6TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlXSAmJiAhYmFja2luZ09iamVjdC0+Y2hp
bGRyZW4oKS5zaXplKCkgJiYgIVtbc2VsZiByZW5kZXJXaWRnZXRDaGlsZHJlbl0gY291bnRdKQot
ICAgICAgICByZXR1cm4gQCJBWEVtcHR5R3JvdXAiOwotCi0gICAgQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSA9IGJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpOwotICAgIGlmIChyb2xlID09IEFjY2Vz
c2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJp
bGl0eUNvbnRlbnRTZXBhcmF0b3JTdWJyb2xlOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpUb2dnbGVCdXR0b24pCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dn
bGVTdWJyb2xlOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCi0g
ICAgICAgIHJldHVybiBAIkFYRm9vdGVyIjsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6U3BpbkJ1dHRvblBhcnQpIHsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzSW5j
cmVtZW50b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRB
cnJvd1N1YnJvbGU7Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlEZWNyZW1lbnRBcnJv
d1N1YnJvbGU7Ci0gICAgfQotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzRmlsZVVwbG9hZEJ1
dHRvbigpKQotICAgICAgICByZXR1cm4gQCJBWEZpbGVVcGxvYWRCdXR0b24iOwotCi0gICAgaWYg
KGJhY2tpbmdPYmplY3QtPmlzVHJlZUl0ZW0oKSkKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJp
bGl0eU91dGxpbmVSb3dTdWJyb2xlOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzRmllbGRz
ZXQoKSkKLSAgICAgICAgcmV0dXJuIEAiQVhGaWVsZHNldCI7Ci0KLSAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNMaXN0KCkpIHsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzVW5vcmRlcmVk
TGlzdCgpIHx8IGJhY2tpbmdPYmplY3QtPmlzT3JkZXJlZExpc3QoKSkKLSAgICAgICAgICAgIHJl
dHVybiBOU0FjY2Vzc2liaWxpdHlDb250ZW50TGlzdFN1YnJvbGU7Ci0gICAgICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc0Rlc2NyaXB0aW9uTGlzdCgpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25MaXN0U3Vicm9sZTsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIEFSSUEgY29udGVudCBzdWJyb2xlcy4KLSAgICBzd2l0Y2ggKHJvbGUpIHsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0dXJuIEAi
QVhMYW5kbWFya0Jhbm5lciI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtD
b21wbGVtZW50YXJ5OgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7
Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAg
ICAgcmV0dXJuIEAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtNYWluIjsK
LSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAg
IHJldHVybiBAIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya0RvY1JlZ2lvbjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuIEAiQVhMYW5kbWFya1JlZ2lvbiI7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVybiBAIkFY
TGFuZG1hcmtTZWFyY2giOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
QWxlcnQ6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25BbGVydCI7Ci0gICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJu
IEAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbkRpYWxv
ZyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cDoKLSAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpGZWVkOgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Ru
b3RlOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxpY2F0aW9uR3JvdXAiOwotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAgICByZXR1cm4gQCJBWEFwcGxp
Y2F0aW9uTG9nIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1
ZWU6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25NYXJxdWVlIjsKLSAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1czoKLSAgICAgICAgcmV0dXJuIEAiQVhB
cHBsaWNhdGlvblN0YXR1cyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25UaW1lcjoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvblRpbWVyIjsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50IjsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJldHVybiBA
IkFYRG9jdW1lbnRBcnRpY2xlIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVu
dE1hdGg6Ci0gICAgICAgIHJldHVybiBAIkFYRG9jdW1lbnRNYXRoIjsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiBAIkFYRG9jdW1lbnRO
b3RlIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoK
LSAgICAgICAgcmV0dXJuIEAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiBAIkFYVGFiUGFuZWwiOwot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJldHVybiBA
IkFYRGVmaW5pdGlvbiI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25M
aXN0VGVybToKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1
cm4gQCJBWFRlcm0iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dERldGFpbDoKLSAgICAgICAgcmV0dXJuIEAiQVhEZXNjcmlwdGlvbiI7Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAgICAgIHJldHVybiBAIkFYV2ViQXBw
bGljYXRpb24iOwotICAgICAgICAvLyBEZWZhdWx0IGRvZXNuJ3QgcmV0dXJuIGFueXRoaW5nLCBz
byByb2xlcyBkZWZpbmVkIGJlbG93IGNhbiBiZSBjaG9zZW4uCi0gICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQorICAgIHJldHVybiBbW3NlbGYgcm9sZV0gaXNFcXVhbDpOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGVdCisgICAgICAgICYmIGJhY2tpbmdPYmplY3QtPmNoaWxkcmVuKCku
aXNFbXB0eSgpCisgICAgICAgICYmICFbW3NlbGYgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dIGNvdW50
XTsKK30KIAotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkg
ewotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoRnJhY3Rpb24oKSkKLSAgICAgICAg
ICAgIHJldHVybiBAIkFYTWF0aEZyYWN0aW9uIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3Qt
PmlzTWF0aEZlbmNlZCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoRmVuY2VkIjsKLSAg
ICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7Ci0gICAgICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhSb3coKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFY
TWF0aFJvdyI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhVbmRlck92ZXIoKSkK
LSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFVuZGVyT3ZlciI7Ci0gICAgICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc01hdGhTcXVhcmVSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1h
dGhTcXVhcmVSb290IjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFJvb3QoKSkK
LSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFJvb3QiOwotICAgICAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNNYXRoVGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGV4dCI7Ci0g
ICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhOdW1iZXIoKSkKLSAgICAgICAgICAgIHJl
dHVybiBAIkFYTWF0aE51bWJlciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhJ
ZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhJZGVudGlmaWVyIjsKLSAg
ICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aFRhYmxlKCkpCi0gICAgICAgICAgICByZXR1
cm4gQCJBWE1hdGhUYWJsZSI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhUYWJs
ZVJvdygpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoVGFibGVSb3ciOwotICAgICAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNNYXRoVGFibGVDZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWE1hdGhUYWJsZUNlbGwiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoRmVu
Y2VPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoRmVuY2VPcGVyYXRvciI7
Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOwotICAgICAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNNYXRoT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBA
IkFYTWF0aE9wZXJhdG9yIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aE11bHRp
c2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhNdWx0aXNjcmlwdCI7Ci0gICAg
fQorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKy0gKE5TU3RyaW5nKilzdWJy
b2xlCit7CisgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0Owor
ICAgIGlmICghYmFja2luZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuIEAiQVhWaWRl
byI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvKQotICAgICAgICBy
ZXR1cm4gQCJBWEF1ZGlvIjsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0
YWlscykKLSAgICAgICAgcmV0dXJuIEAiQVhEZXRhaWxzIjsKLSAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKLSAgICAgICAgcmV0dXJuIEAiQVhTdW1tYXJ5IjsKLSAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuIEAi
QVhUaW1lR3JvdXAiOwotCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWVkaWFUaW1lbGluZSgp
KQotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VGltZWxpbmVTdWJyb2xlOwotCi0gICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzU3dpdGNoKCkpCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2li
aWxpdHlTd2l0Y2hTdWJyb2xlOwotCi0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
Okluc2VydGlvbikKLSAgICAgICAgcmV0dXJuIEAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKLSAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVsZXRpb24pCi0gICAgICAgIHJldHVybiBA
IkFYRGVsZXRlU3R5bGVHcm91cCI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OlN1cGVyc2NyaXB0KQotICAgICAgICByZXR1cm4gQCJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCI7
Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAgICAg
cmV0dXJuIEAiQVhTdWJzY3JpcHRTdHlsZUdyb3VwIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc1N0eWxlRm9ybWF0R3JvdXAoKSkgewotICAgICAgICB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwotICAgICAgICBhdXRvIHRhZ05hbWUgPSBiYWNraW5nT2JqZWN0LT50YWdOYW1lKCk7Ci0g
ICAgICAgIGlmICh0YWdOYW1lID09IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5
Ym9hcmRJbnB1dFN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBjb2RlVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhDb2RlU3R5bGVHcm91cCI7Ci0gICAgICAgIGlmICh0YWdO
YW1lID09IHByZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVH
cm91cCI7Ci0gICAgICAgIGlmICh0YWdOYW1lID09IHNhbXBUYWcpCi0gICAgICAgICAgICByZXR1
cm4gQCJBWFNhbXBsZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSB2YXJUYWcp
Ci0gICAgICAgICAgICByZXR1cm4gQCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7Ci0gICAgICAgIGlm
ICh0YWdOYW1lID09IGNpdGVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdy
b3VwIjsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQorICAgIGlmIChbc2Vs
ZiBpc0VtcHR5R3JvdXBdKQorICAgICAgICByZXR1cm4gQCJBWEVtcHR5R3JvdXAiOwogCi0gICAg
Ly8gUnVieSBzdWJyb2xlcwotICAgIHN3aXRjaCAocm9sZSkgewotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5UnVieUJh
c2VTdWJyb2xlOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGU7Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVJ1YnlJbmxpbmVTdWJyb2xlOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46
Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5UnVuU3Vicm9sZTsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dDoKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJp
bGl0eVJ1YnlUZXh0U3Vicm9sZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9
CisgICAgYXV0byBzdWJyb2xlID0gYmFja2luZ09iamVjdC0+c3Vicm9sZVBsYXRmb3JtU3RyaW5n
KCk7CisgICAgaWYgKCFzdWJyb2xlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN1YnJvbGU7
CiAKICAgICByZXR1cm4gbmlsOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449686</attachid>
            <date>2022-01-21 12:31:35 -0800</date>
            <delta_ts>2022-01-21 17:25:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235414-20220121143134.patch</filename>
            <type>text/plain</type>
            <size>26070</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNlOWUxM2QwZGM0YmE3
OGM0Yzk2YmU2MzE4Y2I5MWYzZjFhNzljNy4uZjc2ZjQ4MDFiZDE0ODNhNzU1MGQ3NjMzNjhhNjI3
YjU3MDRjNDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1vdmUgTWFjIHN1
YnJvbGUgbG9naWMgdG8gbmV3IHN1YnJvbGVQbGF0Zm9ybVN0cmluZyBBWENvcmVPYmplY3QgaW50
ZXJmYWNlIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtb3N0IG9mIHRoZSBNYWMgc3Vicm9sZSBsb2dpYyB0byBh
IG5ldyBBWENvcmVPYmplY3QgaW50ZXJmYWNlCisgICAgICAgIG1ldGhvZCwgc3Vicm9sZVBsYXRm
b3JtU3RyaW5nIChtYXRjaGluZyB0aGUgbmFtaW5nIG9mIHJvbGVQbGF0Zm9ybVN0cmluZykuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhY2hlIGEgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcKKyAgICAgICAgcHJvcGVydHkgaW4gaXNvbGF0ZWQgdHJlZSBvYmpl
Y3RzLgorCisgICAgICAgIFRoaXMgZml4ZXMgYWNjZXNzaWJpbGl0eS9tYWMvc3Vicm9sZXMtZm9y
LWZvcm1hdHRlZC1ncm91cHMuaHRtbCBpbiBpc29sYXRlZAorICAgICAgICB0cmVlIG1vZGUgYmVj
YXVzZSB0aGlzIHRlc3QgZXhlcmNpc2VkIHRoZSBgYmFja2luZ09iamVjdC0+aXNTdHlsZUZvcm1h
dEdyb3VwKClgIGNvZGVwYXRoLAorICAgICAgICB3aGljaCBpbiB0dXJuIHRyaWVkIHRvIGNvbXBh
cmUgQXRvbVN0cmluZ3Mgb2ZmIHRoZSBtYWluLXRocmVhZCwgd2hpY2ggd29uJ3Qgd29yaworICAg
ICAgICAodGhlIHN0cmluZyBjb21wYXJpc29ucyB3aWxsIHVuZXhwZWN0ZWRseSBub3QgbWF0Y2gp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oOgorICAgICAgICBBZGQgbmV3IEFYUHJvcGVydHlOYW1lOjpTdWJyb2xl
UGxhdGZvcm1TdHJpbmcgcHJvcGVydHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIEluaXRpYWxpemUgbmV3
IEFYUHJvcGVydHlOYW1lOjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAg
ICAgIEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBpc0VtcHR5R3JvdXBdKToKKyAgICAgICAgQWRkZWQuCisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHN1YnJvbGVdKToKKyAgICAgICAgRGVmZXIgdG8gc3Vicm9s
ZVBsYXRmb3JtU3RyaW5nIGZvciBkZXRlcm1pbmluZyBhbGwgc3Vicm9sZXMgZXhjZXB0IEFYRW1w
dHlHcm91cC4KKwogMjAyMi0wMS0yMCAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBjaGlsZHJlbklEcyBh
bmQgY2hpbGRyZW4gbG9jYWwgdmFyaWFibGVzIGNvdWxkIGdldCBvdXQgb2Ygc3luYwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggMTI3MjZkMWQyNDFjNDA1MDg2NmEwMTgwYzZiMTVjZGUxMzdjMjczNC4uOTVkYjBmMzQ0
ZmQ4NDdjY2Y2MTQ0MjYwZjI1N2ZjN2JmOTk2YjY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNTU0LDYgKzI1
NTQsMTEgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0
aW9uKCkgY29uc3QKICAgICAvLyBGSVhNRTogaW1wbGVtZW50IGluIG90aGVyIHBsYXRmb3Jtcy4K
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CisKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
ICNlbmRpZgogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMGNhMzYwYjE2ZGJiZGRhM2YxN2NhYWEzMTc5ZWUzMzJh
MDgwZDQxNC4uMWMwNzA3Mjk1YTc0ZDkwMTdiZGRkZWZlNDJlZGM0Yzg5N2IxY2UxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTQzNSw2ICs0MzUsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yb2xlOyB9CiAgICAgU3RyaW5nIHJvbGVQ
bGF0Zm9ybVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyByb2xlRGVzY3JpcHRp
b24oKSBjb25zdCBvdmVycmlkZTsKKyAgICBTdHJpbmcgc3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA0NTBlOTA0OWZlNzg4NGVi
ZDgxYzAxMDhhN2I0MjMzNDg4MmQwZjg4Li43OThiOTEzNmY3ZmUzY2UzOTc1MWU2NzhhNzlhNDZl
Y2M2OTVlZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTE5NSw2ICsxMTk1LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsK
ICAgICAvLyBMb2NhbGl6ZWQgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIEFSSUEgbGFuZG1hcmsgcm9s
ZXMuCiAgICAgdmlydHVhbCBTdHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKCkgY29u
c3QgPSAwOworICAgIC8vIE5vbi1sb2NhbGl6ZWQgc3RyaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUg
b2JqZWN0J3Mgc3Vicm9sZS4KKyAgICB2aXJ0dWFsIFN0cmluZyBzdWJyb2xlUGxhdGZvcm1TdHJp
bmcoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2Fj
aGUoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYTVlYzgz
YTZjNDk2MWFlZGYzZmZiYjNiYzYwNDJkNWFiNDFlNGRhNC4uZWNmODE4YjFhNmIxNjI3MjcwMzgw
YmNlODg2ZjlhNjA0Y2ZhNzdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTE0
Niw2ICsxNDYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVE
YXRhKEFYQ29yZU9iamVjdCYgY29yZU9iamVjdCwgYm9vbCBpcwogICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5yb2xlRGVzY3JpcHRpb24oKS5p
c29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlJvbGVQbGF0
Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0cmluZygpLmlzb2xhdGVkQ29weSgpKTsK
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Um9sZVZhbHVlLCBzdGF0aWNfY2FzdDxp
bnQ+KG9iamVjdC5yb2xlVmFsdWUoKSkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpTdWJyb2xlUGxhdGZvcm1TdHJpbmcsIG9iamVjdC5zdWJyb2xlUGxhdGZvcm1TdHJpbmcoKS5p
c29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRz
RGF0ZXRpbWVBdHRyaWJ1dGUsIG9iamVjdC5zdXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlKCkpOwog
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Jvd0NvdW50Q2hhbmdlLCBv
YmplY3Quc3VwcG9ydHNSb3dDb3VudENoYW5nZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6VGl0bGUsIG9iamVjdC50aXRsZSgpLmlzb2xhdGVkQ29weSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaAppbmRleCA0OGE2NzhjMDdhNDNiMGFhNDNmZjE1YzZmYWVmMWEwYzA1ZGU5
NzBkLi5jOGVmYjJmOGMxNGFkNDVkMWRiYjM4MzllYjk1YzA0NmYwZWY3ZDk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5oCkBAIC0yNzAsNiArMjcwLDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5Um9sZT4oaW50QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJv
bGVWYWx1ZSkpOyB9CiAgICAgU3RyaW5nIHJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpSb2xlUGxh
dGZvcm1TdHJpbmcpOyB9CiAgICAgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpSb2xlRGVz
Y3JpcHRpb24pOyB9CisgICAgU3RyaW5nIHN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdWJy
b2xlUGxhdGZvcm1TdHJpbmcpOyB9CiAgICAgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpBUklBTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24pOyB9CiAgICAgYm9vbCBzdXBw
b3J0c1ByZXNzQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1ByZXNzQWN0aW9uKTsgfQogICAgIExheW91dFJl
Y3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcmVjdEF0dHJpYnV0
ZVZhbHVlPExheW91dFJlY3Q+KEFYUHJvcGVydHlOYW1lOjpCb3VuZGluZ0JveFJlY3QpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaAppbmRleCBkOWRmZmE5OTkyMWU3NmU4ZWE3NDk3NDFkOGJiOTZjNzJk
YTc2MGI4Li4yZjU4YjM3ZTNmNGQyMDhkOGI4YjJjMjU3MTU2NWVjODY2ZjE2NzczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmgKQEAgLTI4Myw2ICsyODMsNyBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlO
YW1lIDogdWludDE2X3QgewogICAgIFNwZWFrQXMsCiAgICAgU3BlZWNoSGludCwKICAgICBTdHJp
bmdWYWx1ZSwKKyAgICBTdWJyb2xlUGxhdGZvcm1TdHJpbmcsCiAgICAgU3VwcG9ydHNSb3dDb3Vu
dENoYW5nZSwKICAgICBTdXBwb3J0c0RyYWdnaW5nLAogICAgIFN1cHBvcnRzRHJvcHBpbmcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5
T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJp
bGl0eU9iamVjdE1hYy5tbQppbmRleCBjMTI1YWQ1MmU3NTM5MWU2MTUyM2UwMDRlZWU3ZGJkNDRk
MmFmMzJlLi5hMjg5NTM4NzRjODA1NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcwMWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxp
dHlPYmplY3RNYWMubW0KQEAgLTIwNiw2ICsyMDYsMjIxIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhyb2xlKTsKIH0KIAorU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0Cit7CisgICAgaWYgKGlzUGFz
c3dvcmRGaWVsZCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZp
ZWxkU3Vicm9sZTsKKyAgICBpZiAoaXNTZWFyY2hGaWVsZCgpKQorICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJyb2xlOworCisgICAgaWYgKGlzQXR0YWNobWVudCgp
KSB7CisgICAgICAgIE5TVmlldyogYXR0YWNoVmlldyA9IFt3cmFwcGVyKCkgYXR0YWNobWVudFZp
ZXddOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAg
ICBpZiAoW1thdHRhY2hWaWV3IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lc10gY29udGFpbnNP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5U3Vicm9sZUF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1
cm4gW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eVN1YnJvbGVBdHRyaWJ1dGVdOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKKyAgICB9CisKKyAgICBpZiAoaXNNZXRlcigpKQorICAgICAgICByZXR1cm4gIkFYTWV0
ZXIiOworCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAgaWYgKGlzTW9kZWwoKSkKKyAg
ICAgICAgcmV0dXJuICJBWE1vZGVsIjsKKyNlbmRpZgorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSA9IHJvbGVWYWx1ZSgpOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpI
b3Jpem9udGFsUnVsZSkKKyAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b24pCisgICAgICAgIHJl
dHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVTdWJyb2xlOworICAgIGlmIChyb2xlID09IEFjY2Vz
c2liaWxpdHlSb2xlOjpGb290ZXIpCisgICAgICAgIHJldHVybiAiQVhGb290ZXIiOworICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkgeworICAgICAgICBp
ZiAoaXNJbmNyZW1lbnRvcigpKQorICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUlu
Y3JlbWVudEFycm93U3Vicm9sZTsKKyAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eURlY3Jl
bWVudEFycm93U3Vicm9sZTsKKyAgICB9CisKKyAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkp
CisgICAgICAgIHJldHVybiAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKKworICAgIGlmIChpc1RyZWVJ
dGVtKCkpCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsK
KworICAgIGlmIChpc0ZpZWxkc2V0KCkpCisgICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisK
KyAgICBpZiAoaXNMaXN0KCkpIHsKKyAgICAgICAgaWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlz
T3JkZXJlZExpc3QoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhDb250ZW50TGlzdCI7CisgICAg
ICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWERlc2Ny
aXB0aW9uTGlzdCI7CisgICAgfQorCisgICAgLy8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgorICAg
IHN3aXRjaCAocm9sZSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFu
bmVyOgorICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtCYW5uZXIiOworICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKKyAgICAgICAgcmV0dXJuICJBWExh
bmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtDb250ZW50SW5mbzoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKKyAgICAgICAgcmV0dXJu
ICJBWExhbmRtYXJrTWFpbiI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtO
YXZpZ2F0aW9uOgorICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0RvY1JlZ2lvbjoKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJr
UmVnaW9uIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKKyAg
ICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgorICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVy
dCI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoK
KyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgorICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25EaWFsb2ciOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
R3JvdXA6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpGb290bm90ZToKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgorICAgICAgICByZXR1
cm4gIkFYQXBwbGljYXRpb25Mb2ciOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uTWFycXVlZToKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSI7Cisg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25UaW1lcjoKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgorICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgorICAgICAgICBy
ZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpE
b2N1bWVudE1hdGg6CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE1hdGgiOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKKyAgICAgICAgcmV0dXJuICJBWERvY3Vt
ZW50Tm90ZSI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0
aXA6CisgICAgICAgIHJldHVybiAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6CisgICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKKyAgICAgICAgcmV0dXJu
ICJBWERlZmluaXRpb24iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9u
TGlzdFRlcm06CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKKyAgICAgICAgcmV0
dXJuICJBWFRlcm0iOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dERldGFpbDoKKyAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIjsKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxp
Y2F0aW9uIjsKKyAgICAgICAgLy8gRGVmYXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28g
cm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUgY2hvc2VuLgorICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRo
RWxlbWVudCkgeworICAgICAgICBpZiAoaXNNYXRoRnJhY3Rpb24oKSkKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAgICAgICBpZiAoaXNNYXRoRmVuY2VkKCkpCisgICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCI7CisgICAgICAgIGlmIChpc01hdGhTdWJzY3Jp
cHRTdXBlcnNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBl
cnNjcmlwdCI7CisgICAgICAgIGlmIChpc01hdGhSb3coKSkKKyAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm93IjsKKyAgICAgICAgaWYgKGlzTWF0aFVuZGVyT3ZlcigpKQorICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhVbmRlck92ZXIiOworICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgp
KQorICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTcXVhcmVSb290IjsKKyAgICAgICAgaWYgKGlz
TWF0aFJvb3QoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9vdCI7CisgICAgICAgIGlm
IChpc01hdGhUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAg
ICBpZiAoaXNNYXRoTnVtYmVyKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7
CisgICAgICAgIGlmIChpc01hdGhJZGVudGlmaWVyKCkpCisgICAgICAgICAgICByZXR1cm4gIkFY
TWF0aElkZW50aWZpZXIiOworICAgICAgICBpZiAoaXNNYXRoVGFibGUoKSkKKyAgICAgICAgICAg
IHJldHVybiAiQVhNYXRoVGFibGUiOworICAgICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciOworICAgICAgICBpZiAoaXNNYXRoVGFi
bGVDZWxsKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlQ2VsbCI7CisgICAgICAg
IGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkpCisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZl
bmNlT3BlcmF0b3IiOworICAgICAgICBpZiAoaXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOworICAgICAgICBpZiAo
aXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOwor
ICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3JpcHQoKSkKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoTXVsdGlzY3JpcHQiOworICAgIH0KKworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpWaWRlbykKKyAgICAgICAgcmV0dXJuICJBWFZpZGVvIjsKKyAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCisgICAgICAgIHJldHVybiAiQVhBdWRpbyI7CisgICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMpCisgICAgICAgIHJldHVybiAi
QVhEZXRhaWxzIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkK
KyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiOworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpUaW1lKQorICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIjsKKworICAgIGlmIChp
c01lZGlhVGltZWxpbmUoKSkKKyAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5l
U3Vicm9sZTsKKworICAgIGlmIChpc1N3aXRjaCgpKQorICAgICAgICByZXR1cm4gTlNBY2Nlc3Np
YmlsaXR5U3dpdGNoU3Vicm9sZTsKKworICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpJbnNlcnRpb24pCisgICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVsZXRpb24pCisgICAgICAgIHJldHVybiAi
QVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3VwZXJzY3JpcHQpCisgICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwor
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCisgICAgICAgIHJl
dHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3VwIjsKKworICAgIHN3aXRjaCAocm9sZSkgeworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNlOgorICAgICAgICByZXR1cm4gIkFYUnVi
eUJhc2UiOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKKyAgICAgICAg
cmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlu
bGluZToKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlJbmxpbmUiOworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlSdW46CisgICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dDoKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0
IjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoaXNTdHls
ZUZvcm1hdEdyb3VwKCkpIHsKKyAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKyAg
ICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7CisgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQor
ICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXlib2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAg
IGlmICh0YWcgPT0gY29kZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3Jv
dXAiOworICAgICAgICBpZiAodGFnID09IHByZVRhZykKKyAgICAgICAgICAgIHJldHVybiBAIkFY
UHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKKyAg
ICAgICAgICAgIHJldHVybiBAIkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgIGlmICh0YWcg
PT0gdmFyVGFnKQorICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOwor
ICAgICAgICBpZiAodGFnID09IGNpdGVUYWcpCisgICAgICAgICAgICByZXR1cm4gQCJBWENpdGVT
dHlsZUdyb3VwIjsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBkZDgyZjFlNTJlYzFhMzhlNWZjYzhkZmRiMjI0
ZjVlY2QxNTg1N2QwLi4xMWM0YjlkY2M4ODdmZjRmYWQ1NWE1MjRkMTBjNTg2ZWE2YjcyNjE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTEwLDQzICsxMTAs
MTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUNl
bGxSb2xlIEAiQVhDZWxsIgogI2VuZGlmCiAKLS8vIExpc3RzCi0jaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eUNvbnRlbnRMaXN0U3Vicm9sZQotI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlDb250ZW50TGlz
dFN1YnJvbGUgQCJBWENvbnRlbnRMaXN0IgotI2VuZGlmCi0KICNpZm5kZWYgTlNBY2Nlc3NpYmls
aXR5RGVmaW5pdGlvbkxpc3RTdWJyb2xlCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eURlZmluaXRp
b25MaXN0U3Vicm9sZSBAIkFYRGVmaW5pdGlvbkxpc3QiCiAjZW5kaWYKIAotI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbkxpc3RTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eURlc2NyaXB0aW9uTGlzdFN1YnJvbGUgQCJBWERlc2NyaXB0aW9uTGlzdCIKLSNlbmRpZgotCi0j
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eUNvbnRlbnRTZXBhcmF0b3JTdWJyb2xlCi0jZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eUNvbnRlbnRTZXBhcmF0b3JTdWJyb2xlIEAiQVhDb250ZW50U2VwYXJhdG9y
IgotI2VuZGlmCi0KLSNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5UnVieUJhc2VTdWJSb2xlCi0jZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNlU3Vicm9sZSBAIkFYUnVieUJhc2UiCi0jZW5kaWYK
LQotI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlSdWJ5QmxvY2tTdWJyb2xlCi0jZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVJ1YnlCbG9ja1N1YnJvbGUgQCJBWFJ1YnlCbG9jayIKLSNlbmRpZgotCi0jaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVJ1YnlJbmxpbmVTdWJyb2xlCi0jZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVJ1YnlJbmxpbmVTdWJyb2xlIEAiQVhSdWJ5SW5saW5lIgotI2VuZGlmCi0KLSNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJvbGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVi
eVJ1blN1YnJvbGUgQCJBWFJ1YnlSdW4iCi0jZW5kaWYKLQotI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlSdWJ5VGV4dFN1YnJvbGUKLSNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UnVieVRleHRTdWJyb2xl
IEAiQVhSdWJ5VGV4dCIKLSNlbmRpZgotCiAvLyBNaXNjZWxsYW5lb3VzCiAjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eUJsb2NrUXVvdGVMZXZlbEF0dHJpYnV0ZQogI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlCbG9ja1F1b3RlTGV2ZWxBdHRyaWJ1dGUgQCJBWEJsb2NrUXVvdGVMZXZlbCIKQEAgLTE4Mjgs
MjI2ICsxNzk1LDM1IEBAIHN0YXRpYyB2b2lkIFdlYlRyYW5zZm9ybUNHUGF0aFRvTlNCZXppZXJQ
YXRoKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVsCiAgICAgcmV0dXJuIE5TQWNj
ZXNzaWJpbGl0eVVua25vd25Sb2xlOwogfQogCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgotLSAoTlNTdHJpbmcqKXN1YnJvbGUKKy0gKEJPT0wpaXNFbXB0eUdyb3VwCiB7CiAg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmICgh
YmFja2luZ09iamVjdCkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIC8vIEZJWE1FOiBjcmVh
dGUgQVhDb3JlT2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcgdG8gcmVwbGFjZSB0aGUgZm9s
bG93aW5nIGxpbmVhciBzZWFyY2ggYW5kIGhldXJpc3RpY3MsIHNpbWlsYXIgdG8gcm9sZVBsYXRm
b3JtU3RyaW5nLgotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKLSAg
ICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7Ci0gICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzU2VhcmNoRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIE5TQWNj
ZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9sZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c0F0dGFjaG1lbnQoKSkgewotICAgICAgICBOU1ZpZXcqIGF0dGFjaFZpZXcgPSBbc2VsZiBhdHRh
Y2htZW50Vmlld107Ci0gICAgICAgIGlmIChbW2F0dGFjaFZpZXcgYWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZU5hbWVzXSBjb250YWluc09iamVjdDpOU0FjY2Vzc2liaWxpdHlTdWJyb2xlQXR0cmlidXRl
XSkKLSAgICAgICAgICAgIHJldHVybiBbYXR0YWNoVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6TlNBY2Nlc3NpYmlsaXR5U3Vicm9sZUF0dHJpYnV0ZV07Ci0gICAgfQotCi0gICAgaWYg
KGJhY2tpbmdPYmplY3QtPmlzTWV0ZXIoKSkKLSAgICAgICAgcmV0dXJuIEAiQVhNZXRlciI7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc01vZGVsKCkpCi0gICAgICAgIHJldHVybiBAIkFYTW9kZWwiOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAotICAgIC8vIFRyZWF0IGFueSBncm91cCB3
aXRob3V0IGV4cG9zZWQgY2hpbGRyZW4gYXMgZW1wdHkuCi0gICAgaWYgKFtbc2VsZiByb2xlXSBp
c0VxdWFsOk5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZV0gJiYgIWJhY2tpbmdPYmplY3QtPmNoaWxk
cmVuKCkuc2l6ZSgpICYmICFbW3NlbGYgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dIGNvdW50XSkKLSAg
ICAgICAgcmV0dXJuIEAiQVhFbXB0eUdyb3VwIjsKLQotICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJv
bGUgPSBiYWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKTsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxp
dHlDb250ZW50U2VwYXJhdG9yU3Vicm9sZTsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VG9nZ2xlQnV0dG9uKQotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xl
U3Vicm9sZTsKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAg
ICAgICByZXR1cm4gQCJBWEZvb3RlciI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OlNwaW5CdXR0b25QYXJ0KSB7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0luY3Jl
bWVudG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJy
b3dTdWJyb2xlOwotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5RGVjcmVtZW50QXJyb3dT
dWJyb2xlOwotICAgIH0KLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0ZpbGVVcGxvYWRCdXR0
b24oKSkKLSAgICAgICAgcmV0dXJuIEAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKLQotICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc1RyZWVJdGVtKCkpCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxp
dHlPdXRsaW5lUm93U3Vicm9sZTsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0ZpZWxkc2V0
KCkpCi0gICAgICAgIHJldHVybiBAIkFYRmllbGRzZXQiOwotCi0gICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzTGlzdCgpKSB7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Vub3JkZXJlZExp
c3QoKSB8fCBiYWNraW5nT2JqZWN0LT5pc09yZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5Q29udGVudExpc3RTdWJyb2xlOwotICAgICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNEZXNjcmlwdGlvbkxpc3QoKSkgewotICAgICAgICAgICAgcmV0dXJuIE5TQWNj
ZXNzaWJpbGl0eURlc2NyaXB0aW9uTGlzdFN1YnJvbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCi0gICAgc3dpdGNoIChyb2xlKSB7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiBAIkFY
TGFuZG1hcmtCYW5uZXIiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29t
cGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuIEAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOwot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAgICAg
IHJldHVybiBAIkFYTGFuZG1hcmtDb250ZW50SW5mbyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gQCJBWExhbmRtYXJrTWFpbiI7Ci0g
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAgICBy
ZXR1cm4gQCJBWExhbmRtYXJrTmF2aWdhdGlvbiI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtSZWdpb246Ci0gICAgICAgIHJldHVybiBAIkFYTGFuZG1hcmtSZWdpb24iOwotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4gQCJBWExh
bmRtYXJrU2VhcmNoIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFs
ZXJ0OgotICAgICAgICByZXR1cm4gQCJBWEFwcGxpY2F0aW9uQWxlcnQiOwotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiBA
IkFYQXBwbGljYXRpb25BbGVydERpYWxvZyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25EaWFsb2ci
OwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90
ZToKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNhdGlvbkdyb3VwIjsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuIEAiQVhBcHBsaWNh
dGlvbkxvZyI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVl
OgotICAgICAgICByZXR1cm4gQCJBWEFwcGxpY2F0aW9uTWFycXVlZSI7Ci0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVybiBAIkFYQXBw
bGljYXRpb25TdGF0dXMiOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
VGltZXI6Ci0gICAgICAgIHJldHVybiBAIkFYQXBwbGljYXRpb25UaW1lciI7Ci0gICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuIEAiQVhEb2N1bWVudCI7Ci0gICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gQCJB
WERvY3VtZW50QXJ0aWNsZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRN
YXRoOgotICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50TWF0aCI7Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICByZXR1cm4gQCJBWERvY3VtZW50Tm90
ZSI7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0g
ICAgICAgIHJldHVybiBAIkFYVXNlckludGVyZmFjZVRvb2x0aXAiOwotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4gQCJBWFRhYlBhbmVsIjsKLSAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gQCJB
WERlZmluaXRpb24iOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dFRlcm06Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJu
IEAiQVhUZXJtIjsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RE
ZXRhaWw6Ci0gICAgICAgIHJldHVybiBAIkFYRGVzY3JpcHRpb24iOwotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gQCJBWFdlYkFwcGxp
Y2F0aW9uIjsKLSAgICAgICAgLy8gRGVmYXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28g
cm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUgY2hvc2VuLgotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KKyAgICByZXR1cm4gW1tzZWxmIHJvbGVdIGlzRXF1YWw6TlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlXQorICAgICAgICAmJiBiYWNraW5nT2JqZWN0LT5jaGlsZHJlbigpLmlz
RW1wdHkoKQorICAgICAgICAmJiAhW1tzZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXSBjb3VudF07
Cit9CiAKLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQpIHsK
LSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAg
ICByZXR1cm4gQCJBWE1hdGhGcmFjdGlvbiI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aEZlbmNlZCI7Ci0gICAg
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQiOwotICAgICAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNNYXRoUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gQCJBWE1h
dGhSb3ciOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoVW5kZXJPdmVyKCkpCi0g
ICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhVbmRlck92ZXIiOwotICAgICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRo
U3F1YXJlUm9vdCI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhSb290KCkpCi0g
ICAgICAgICAgICByZXR1cm4gQCJBWE1hdGhSb290IjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzTWF0aFRleHQoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFRleHQiOwotICAg
ICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoTnVtYmVyKCkpCi0gICAgICAgICAgICByZXR1
cm4gQCJBWE1hdGhOdW1iZXIiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoSWRl
bnRpZmllcigpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoSWRlbnRpZmllciI7Ci0gICAg
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhUYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhNYXRoVGFibGUiOwotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoVGFibGVS
b3coKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aFRhYmxlUm93IjsKLSAgICAgICAgaWYg
KGJhY2tpbmdPYmplY3QtPmlzTWF0aFRhYmxlQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuIEAi
QVhNYXRoVGFibGVDZWxsIjsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzTWF0aEZlbmNl
T3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiBAIkFYTWF0aEZlbmNlT3BlcmF0b3IiOwot
ICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYTWF0aFNlcGFyYXRvck9wZXJhdG9yIjsKLSAgICAgICAgaWYg
KGJhY2tpbmdPYmplY3QtPmlzTWF0aE9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gQCJB
WE1hdGhPcGVyYXRvciI7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01hdGhNdWx0aXNj
cmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhNYXRoTXVsdGlzY3JpcHQiOwotICAgIH0K
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCistIChOU1N0cmluZyopc3Vicm9s
ZQoreworICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKyAg
ICBpZiAoIWJhY2tpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAocm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW8pCi0gICAgICAgIHJldHVybiBAIkFYVmlkZW8i
OwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbykKLSAgICAgICAgcmV0
dXJuIEAiQVhBdWRpbyI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFp
bHMpCi0gICAgICAgIHJldHVybiBAIkFYRGV0YWlscyI7Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlN1bW1hcnkpCi0gICAgICAgIHJldHVybiBAIkFYU3VtbWFyeSI7Ci0gICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUpCi0gICAgICAgIHJldHVybiBAIkFY
VGltZUdyb3VwIjsKLQotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc01lZGlhVGltZWxpbmUoKSkK
LSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKLQotICAgIGlm
IChiYWNraW5nT2JqZWN0LT5pc1N3aXRjaCgpKQotICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmls
aXR5U3dpdGNoU3Vicm9sZTsKLQotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJ
bnNlcnRpb24pCi0gICAgICAgIHJldHVybiBAIkFYSW5zZXJ0U3R5bGVHcm91cCI7Ci0gICAgaWYg
KHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uKQotICAgICAgICByZXR1cm4gQCJB
WERlbGV0ZVN0eWxlR3JvdXAiOwotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpT
dXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuIEAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwot
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJl
dHVybiBAIkFYU3Vic2NyaXB0U3R5bGVHcm91cCI7Ci0KLSAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNTdHlsZUZvcm1hdEdyb3VwKCkpIHsKLSAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKLSAgICAgICAgYXV0byB0YWdOYW1lID0gYmFja2luZ09iamVjdC0+dGFnTmFtZSgpOwotICAg
ICAgICBpZiAodGFnTmFtZSA9PSBrYmRUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWEtleWJv
YXJkSW5wdXRTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRhZ05hbWUgPT0gY29kZVRhZykKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAodGFnTmFt
ZSA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFByZWZvcm1hdHRlZFN0eWxlR3Jv
dXAiOwotICAgICAgICBpZiAodGFnTmFtZSA9PSBzYW1wVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKLSAgICAgICAgaWYgKHRhZ05hbWUgPT0gdmFyVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOwotICAgICAgICBpZiAo
dGFnTmFtZSA9PSBjaXRlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDaXRlU3R5bGVHcm91
cCI7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KKyAgICBpZiAoW3NlbGYg
aXNFbXB0eUdyb3VwXSkKKyAgICAgICAgcmV0dXJuIEAiQVhFbXB0eUdyb3VwIjsKIAotICAgIC8v
IFJ1Ynkgc3Vicm9sZXMKLSAgICBzd2l0Y2ggKHJvbGUpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJ1YnlCYXNl
U3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAg
IHJldHVybiBOU0FjY2Vzc2liaWxpdHlSdWJ5QmxvY2tTdWJyb2xlOwotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlS
dWJ5SW5saW5lU3Vicm9sZTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgot
ICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5UnVieVJ1blN1YnJvbGU7Ci0gICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxp
dHlSdWJ5VGV4dFN1YnJvbGU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQor
ICAgIGF1dG8gc3Vicm9sZSA9IGJhY2tpbmdPYmplY3QtPnN1YnJvbGVQbGF0Zm9ybVN0cmluZygp
OworICAgIGlmICghc3Vicm9sZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzdWJyb2xlOwog
CiAgICAgcmV0dXJuIG5pbDsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>