<?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>239483</bug_id>
          
          <creation_ts>2022-04-18 23:20:04 -0700</creation_ts>
          <short_desc>Implement most of CSS typed OM object stringifiers</short_desc>
          <delta_ts>2022-04-19 20:15:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=239529</see_also>
          <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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862432</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-18 23:20:04 -0700</bug_when>
    <thetext>Implement most of CSS typed OM object stringifiers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862434</commentid>
    <comment_count>1</comment_count>
      <attachid>457859</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-18 23:22:09 -0700</bug_when>
    <thetext>Created attachment 457859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862647</commentid>
    <comment_count>2</comment_count>
      <attachid>457859</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-19 11:20:02 -0700</bug_when>
    <thetext>Comment on attachment 457859
Patch

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

&gt; LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative-expected.txt:13
&gt; +FAIL CSSPerspective with negative length serializes correctly assert_equals: expected &quot;perspective(calc(-1px))&quot; but got &quot;perspective(-1px)&quot;

Filed https://github.com/w3c/css-houdini-drafts/issues/1069 about this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862684</commentid>
    <comment_count>3</comment_count>
      <attachid>457930</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-19 12:37:05 -0700</bug_when>
    <thetext>Created attachment 457930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862741</commentid>
    <comment_count>4</comment_count>
      <attachid>457930</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-19 15:23:47 -0700</bug_when>
    <thetext>Comment on attachment 457930
Patch

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

&gt; Source/WebCore/css/typedom/CSSOMVariableReferenceValue.cpp:64
&gt; +    serialize(builder, false, false);

Can we use an OptionSet&lt;&gt; instead of two bools? Hard to know what false, false mean here.

&gt; Source/WebCore/css/typedom/numeric/CSSMathInvert.cpp:79
&gt; +    if (!withoutParentheses)

Double negative makes my brain hurt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862757</commentid>
    <comment_count>5</comment_count>
      <attachid>457941</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-19 16:25:40 -0700</bug_when>
    <thetext>Created attachment 457941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862775</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-19 17:46:37 -0700</bug_when>
    <thetext>Committed r293052 (249787@main): &lt;https://commits.webkit.org/249787@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457941.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862776</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 17:47:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91997078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862785</commentid>
    <comment_count>8</comment_count>
      <attachid>457930</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-19 18:14:59 -0700</bug_when>
    <thetext>Comment on attachment 457930
Patch

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

&gt; Source/WebCore/css/typedom/CSSStyleValue.h:106
&gt; +    virtual void serialize(StringBuilder&amp;, bool nested = false, bool withoutParentheses = false) const;

I think these bools would be better as an OptionSet (SerializationOptions?). We generally shy away from bool arguments these unless it is clear at call sites what is happening.

&gt; Source/WebCore/css/typedom/CSSUnitValue.cpp:117
&gt; +    builder.append(FormattedCSSNumber::create(m_value));
&gt; +    builder.append(unitSerialization());

This can all be in one call:

builder.append(FormattedCSSNumber::create(m_value), unitSerialization());

This is also not a very efficient way to implement this as it is doing unnecessary temporary string allocation. It would be better to have StringTypeAdapters for these types. (For an example, see ColorSerialization.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862790</commentid>
    <comment_count>9</comment_count>
      <attachid>457941</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-19 18:55:06 -0700</bug_when>
    <thetext>Comment on attachment 457941
Patch

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

&gt; Source/WebCore/css/typedom/CSSUnitValue.cpp:117
&gt; +    builder.append(unitSerialization());

I agree this can be optimized to reduce String allocations, but I think that should be done by fixing the FIXME at the definition of CSSPrimitiveValue::unitTypeString and making it return a const char*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862796</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-19 19:24:01 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #9)
&gt; Comment on attachment 457941 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457941&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/typedom/CSSUnitValue.cpp:117
&gt; &gt; +    builder.append(unitSerialization());
&gt; 
&gt; I agree this can be optimized to reduce String allocations, but I think that
&gt; should be done by fixing the FIXME at the definition of
&gt; CSSPrimitiveValue::unitTypeString and making it return a const char*

Ok. Or an ASCIILiteral would be good too.

I would also think we should rename FormattedCSSNumber::create(). create() has the connotation in our source base that it will allocate something, and that should just be a normal constructor (or a free function called formattedCSSNumber() like pad().</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457859</attachid>
            <date>2022-04-18 23:22:09 -0700</date>
            <delta_ts>2022-04-19 12:37:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239483-20220418232208.patch</filename>
            <type>text/plain</type>
            <size>54626</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkZmJlMzg4N2I4NmQ3
NWYyN2ViM2UyNDQ0MzE4OGE0OWI3ODgyNC4uY2M2ODI2MjM3M2ZjNGVmM2RiNjNkMzVjZmI0Njdh
ZDQwZDVlOTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMi0wNC0xOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBtb3N0IG9mIENTUyB0eXBlZCBPTSBvYmplY3Qgc3RyaW5naWZpZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFuIG9mZi1ieS1k
ZWZhdWx0IGV4cGVyaW1lbnRhbCBmZWF0dXJlLgorICAgICAgICBDb3ZlcmVkIGJ5IHdlYiBwbGF0
Zm9ybSB0ZXN0cy4KKworICAgICAgICAqIGNzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NLZXl3b3JkVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6Cisg
ICAgICAgICogY3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVlLmg6CisgICAgICAgICogY3NzL3R5
cGVkb20vQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUltYWdlVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUltYWdlVmFsdWU6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWU6OnRvU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWU6OnNlcmlhbGl6ZSBjb25z
dCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NVbml0VmFs
dWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVl
Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NVbnBhcnNlZFZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5wYXJzZWRWYWx1ZTo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0
aEludmVydDo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhJbnZlcnQuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhN
YXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6c2VyaWFsaXplIGNvbnN0KToK
KyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaDoKKyAgICAgICAgKiBj
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0aE1pbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhNaW4uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE5lZ2F0ZTo6c2VyaWFsaXplIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU01hdGhQcm9kdWN0OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6c2Vy
aWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0u
aDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljQXJyYXk6OmZvckVhY2gpOgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5Lmg6CisgICAgICAgICogY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNYXRyaXhDb21wb25lbnQ6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNYXRyaXhDb21wb25lbnQ6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdHJp
eENvbXBvbmVudDo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGVy
c3BlY3RpdmU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQZXJzcGVj
dGl2ZTo6dG9NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGVyc3BlY3RpdmU6OnRvU3Ry
aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
UGVyc3BlY3RpdmUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1JvdGF0ZTo6c2VyaWFsaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1JvdGF0ZTo6dG9NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUm90YXRlOjp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NTY2FsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTY2FsZTo6c2VyaWFsaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NjYWxlOjp0b01hdHJpeCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTY2FsZTo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NTa2V3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NrZXc6OnNlcmlhbGl6
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3Ojp0b01hdHJpeCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTa2V3Ojp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90
cmFuc2Zvcm0vQ1NTU2tld1guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1g6OnNlcmlh
bGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3WDo6dG9NYXRyaXgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2tld1g6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1guaDoKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1k6
OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3WTo6dG9NYXRyaXgp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1k6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuaDoKKyAgICAgICAgKiBj
c3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1RyYW5zZm9ybUNvbXBvbmVudDo6dG9TdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIGNzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVHJhbnNmb3JtVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAg
ICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmg6CisgICAgICAgICog
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUcmFuc2xhdGU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
cmFuc2xhdGU6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zbGF0ZTo6dG9T
dHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NUcmFuc2xhdGUuaDoKKwogMjAyMi0wNC0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBDU1NUcmFuc2Zvcm1WYWx1ZS5p
czJECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVlLmNwcApp
bmRleCBmZTIzNjFjNDk3MzVhOGFlOWNjMGE3MmVhODQyYzE3M2I2OGQ4MjdhLi5hM2I5NGU1Njky
YzBkOTk2MmU1MzBmYzI1ZTNmYTNjYmY0NjA0YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5jcHAKQEAgLTY3LDYgKzY3LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENTU0tleXdvcmRWYWx1ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
ICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIENTU0tleXdvcmRWYWx1ZTo6c2VyaWFsaXplKFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGJvb2wsIGJvb2wpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6
Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8ja2V5d29yZHZhbHVlLXNlcmlh
bGl6YXRpb24KKyAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVlKTsKK30KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NL
ZXl3b3JkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1
ZS5oCmluZGV4IGE2OGJlZWI1ZDc4N2NlY2MyNmUwOTIwZjQwZWMzNWM0ZGRlNzgwYWQuLjgzMWRl
OWE4MzQ4NjNmODBjMTVlNWE2YWZmNTBlNzNlMmFjOTlhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPENTU0tleXdvcmRWYWx1ZT4gcmVjdGlmeUtleXdvcmRpc2goQ1NTS2V5
d29yZGlzaCYmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVy
JiwgYm9vbCwgYm9vbCkgY29uc3QgZmluYWw7CisKICAgICBleHBsaWNpdCBDU1NLZXl3b3JkVmFs
dWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKSB7IH0KICAg
ICBTdHJpbmcgbV92YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuY3BwCmluZGV4IDhjZmIwZTE3NDYyZWEx
ZWE0ZjVjZDBlNTc4NjkxN2U4NmY0ZDVmY2UuLjQwN2I5M2YyM2I3MTYxZjA5YjYzNmI3ZTMzYjc3
NDAzNDRlNmJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU09N
VmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNwcApAQCAtNjEsMTggKzYxLDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6c2V0VmFyaWFibGUo
U3RyaW5nJiYgdmFyaWFibGUpCiBTdHJpbmcgQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjp0
b1N0cmluZygpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIHNlcmlh
bGl6ZShidWlsZGVyKTsKLSAgICAKKyAgICBzZXJpYWxpemUoYnVpbGRlciwgZmFsc2UsIGZhbHNl
KTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi12b2lkIENTU09NVmFyaWFi
bGVSZWZlcmVuY2VWYWx1ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0
Cit2b2lkIENTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxk
ZXImIGJ1aWxkZXIsIGJvb2wgbmVzdGVkLCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3QK
IHsKICAgICBidWlsZGVyLmFwcGVuZCgidmFyKCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fdmFy
aWFibGUpOwogICAgIGlmIChtX2ZhbGxiYWNrKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIs
ICIpOwotICAgICAgICBtX2ZhbGxiYWNrLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAgIG1f
ZmFsbGJhY2stPnNlcmlhbGl6ZShidWlsZGVyLCBuZXN0ZWQsIHdpdGhvdXRQYXJlbnRoZXNlcyk7
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCmluZGV4
IDMyNGU3OTdmNzhlNDQ3NDQ3NDQ5MjE5MWI2ODk0NTY3MmQ2NmNlYzguLjgyMmJiNTVkN2YzNTFj
Y2U0ZTE3ZjFkNTE2Y2I1Yjc1YTI0MjVmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCkBAIC00Myw3ICs0
Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYXJpYWJsZShT
dHJpbmcmJik7CiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYpIGNvbnN0OworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxk
ZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0OwogCiAgICAg
Y29uc3QgU3RyaW5nJiB2YXJpYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFyaWFibGU7IH0KICAg
ICBDU1NVbnBhcnNlZFZhbHVlKiBmYWxsYmFjaygpIHsgcmV0dXJuIG1fZmFsbGJhY2suZ2V0KCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUu
Y3BwCmluZGV4IDUzMmI0OGNkMWViNmIwMDc4ZTNjMjkwYmE1MDBjYTQ5NGUyZmZjNTguLjlhM2Yx
YzBkZTEyM2MzY2UwZTUwYjM2OTk0YmRkNGZiMjE4ZmM4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVJbWFnZVZhbHVlLmNwcApAQCAtNDYsNyArNDYsMTUg
QEAgQ1NTU3R5bGVJbWFnZVZhbHVlOjpDU1NTdHlsZUltYWdlVmFsdWUoUmVmPENTU0ltYWdlVmFs
dWU+JiYgY3NzVmFsdWUsIERvY3VtZW50KgogewogfQogCi1Eb2N1bWVudCogQ1NTU3R5bGVJbWFn
ZVZhbHVlOjpkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KK3Zv
aWQgQ1NTU3R5bGVJbWFnZVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwg
Ym9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBidWlsZGVyLmFwcGVuZChtX2Nzc1ZhbHVlLT5jc3NU
ZXh0KCkpOworfQorCitEb2N1bWVudCogQ1NTU3R5bGVJbWFnZVZhbHVlOjpkb2N1bWVudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5
bGVJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdl
VmFsdWUuaAppbmRleCA4YmQ2ZmViZGFkMzYyZDQ1NzAxYWEyZTdhMDFmOTY1ZjA3ZTVhODZjLi4w
YTYyMmRlNjBkYTAwYTE5N2JjN2RiZDNmYjUwMGE4NWZjMTM0MTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1N0eWxlSW1hZ2VWYWx1
ZShXVEZNb3ZlKGNzc1ZhbHVlKSwgZG9jdW1lbnQpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nzc1ZhbHVlLT5jc3NUZXh0KCk7IH0KKyAg
ICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0aG91
dFBhcmVudGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENhY2hlZEltYWdlKiBpbWFnZSgpIHsg
cmV0dXJuIG1fY3NzVmFsdWUtPmNhY2hlZEltYWdlKCk7IH0KICAgICBEb2N1bWVudCogZG9jdW1l
bnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0
eWxlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5j
cHAKaW5kZXggYjg4MjQxNWE0YjZmN2MxNTFjMDQwZTk1ZTI0YmNiMmViMmM5OWI1NC4uZjg4MWY4
MzQ0MzMyMTU5ZTdlYTgyMTVkOTVlMDQwMjk1NWVjM2U5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5jcHAKQEAgLTgyLDEzICs4MiwxNyBAQCBDU1NTdHls
ZVZhbHVlOjpDU1NTdHlsZVZhbHVlKFJlZlB0cjxDU1NWYWx1ZT4mJiBjc3NWYWx1ZSwgU3RyaW5n
JiYgcHJvcGVydHkpCiB7CiB9CiAKLQogU3RyaW5nIENTU1N0eWxlVmFsdWU6OnRvU3RyaW5nKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcHJvcGVydHlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7Ci0gICAgCi0gICAgcmV0dXJuIG1fcHJvcGVydHlWYWx1ZS0+Y3NzVGV4dCgpOwor
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBzZXJpYWxpemUoYnVpbGRlcik7CisgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBDU1NTdHlsZVZhbHVlOjpzZXJp
YWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBp
ZiAobV9wcm9wZXJ0eVZhbHVlKQorICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb3BlcnR5VmFs
dWUtPmNzc1RleHQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuaAppbmRleCAxM2JiYzdkNjVhMWZkYmU1MzYw
MjExYTg2MWUzNGE1ZTAzNzg4N2Y4Li44ZmVmMTM3Y2VlNjkzY2Y5NWI5OGIwYzRmMzBkYzU1MDk4
ODAwZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oCkBA
IC0xMDIsNyArMTAyLDggQEAgaW5saW5lIGJvb2wgaXNDU1NNYXRoVmFsdWUoQ1NTU3R5bGVWYWx1
ZVR5cGUgdHlwZSkKIGNsYXNzIENTU1N0eWxlVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NT
dHlsZVZhbHVlPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChDU1NTdHlsZVZhbHVlKTsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0OworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJvb2wgbmVzdGVkID0gZmFsc2UsIGJvb2wg
d2l0aG91dFBhcmVudGhlc2VzID0gZmFsc2UpIGNvbnN0OwogICAgIHZpcnR1YWwgfkNTU1N0eWxl
VmFsdWUoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5
cGUoKSBjb25zdCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTU3R5bGVWYWx1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKaW5kZXggYjNiZDcy
ZDJlNTRhOWVkYTBkMDY5YTM2ODIxZWMwZThkMTQ0NTRhYi4uNDkyYjdhMzg0ZDczNmJkYWJiZGJm
ZWNkNjU2OGEwMGI3ODEwYmNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTVW5pdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NV
bml0VmFsdWUuY3BwCkBAIC0xMTEsNiArMTExLDEyIEBAIFN0cmluZyBDU1NVbml0VmFsdWU6OnVu
aXRTZXJpYWxpemF0aW9uKCkgY29uc3QKICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKG1fdW5pdCk7CiB9CiAKK3ZvaWQgQ1NTVW5pdFZhbHVlOjpzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBidWlsZGVy
LmFwcGVuZChGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0ZShtX3ZhbHVlKSk7CisgICAgYnVpbGRl
ci5hcHBlbmQodW5pdFNlcmlhbGl6YXRpb24oKSk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxDU1NV
bml0VmFsdWU+PiBDU1NVbml0VmFsdWU6OmNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdW5pdCkKIHsKICAgICBhdXRvIHBhcnNlZFVuaXQgPSBwYXJzZVVuaXQodW5pdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCmluZGV4IDliZDk1MWJkZDZhZTlh
M2M1ZWI4NWQ3M2I0YzU5YzhjM2Y1NTQzOGEuLmE4YWM4NDA2OWJmZTEyZDU2MWMyOTllODFmNDgz
MGRhZGE0Yzg4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1Vu
aXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5o
CkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENT
U1VuaXRWYWx1ZT4+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCk7CiAg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIENTU1VuaXRU
eXBlIHVuaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCB1bml0
KSk7IH0KIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1ha2VT
dHJpbmcoRm9ybWF0dGVkQ1NTTnVtYmVyOjpjcmVhdGUobV92YWx1ZSksIHVuaXRTZXJpYWxpemF0
aW9uKCkpOyB9CisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJvb2wgbmVzdGVk
LCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgdm9pZCBzZXRWYWx1ZShkb3VibGUg
dmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL0NTU1VucGFyc2VkVmFsdWUuY3BwCmluZGV4IGQ3ODA4ODkwZGQ0MzljZDA2OWNkOWE1ZTUz
ZWQ4MjM2ZWZjZWJhYzEuLjhhMjQyYjZlMTllMTI5NWU1NGQyZDNhZjFmN2M5MDE0YTg5NDJiNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuY3Bw
CkBAIC0xMTksMjEgKzExOSwxMyBAQCBDU1NVbnBhcnNlZFZhbHVlOjpDU1NVbnBhcnNlZFZhbHVl
KFZlY3RvcjxDU1NVbnBhcnNlZFNlZ21lbnQ+JiYgc2VnbWVudHMpCiB7CiB9CiAKLVN0cmluZyBD
U1NVbnBhcnNlZFZhbHVlOjp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgIHNlcmlhbGl6ZShidWlsZGVyKTsKLSAgICAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwotfQotCi12b2lkIENTU1VucGFyc2VkVmFsdWU6OnNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAordm9pZCBDU1NVbnBhcnNlZFZhbHVlOjpzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0aG91dFBhcmVu
dGhlc2VzKSBjb25zdAogewogICAgIGZvciAoYXV0byYgc2VnbWVudCA6IG1fc2VnbWVudHMpIHsK
ICAgICAgICAgc3RkOjp2aXNpdChXVEY6Om1ha2VWaXNpdG9yKFsmXSAoY29uc3QgU3RyaW5nJiB2
YWx1ZSkgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUpOwogICAgICAgICB9LCBb
Jl0gKGNvbnN0IFJlZlB0cjxDU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWU+JiB2YWx1ZSkgewot
ICAgICAgICAgICAgdmFsdWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgICAgIHZhbHVl
LT5zZXJpYWxpemUoYnVpbGRlciwgbmVzdGVkLCB3aXRob3V0UGFyZW50aGVzZXMpOwogICAgICAg
ICB9KSwgc2VnbWVudCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTVW5wYXJzZWRWYWx1ZS5oCmluZGV4IGFhZTljMDUwOWRkMWZmNGFiMzMzOGQ4ZDIyYjI4Nzk3
NWE5M2M3MjYuLjZiZDQxYWQ2NjNmNjI4Y2I5NjkwODhmNTU1ZDU4Y2RkZDkxNDgwZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmgKQEAgLTQ0LDgg
KzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJzZWRWYWx1ZT4gY3JlYXRl
KFZlY3RvcjxDU1NVbnBhcnNlZFNlZ21lbnQ+JiYpOwogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJz
ZWRWYWx1ZT4gY3JlYXRlKENTU1BhcnNlclRva2VuUmFuZ2UpOwogCi0gICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNv
bnN0OworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9v
bCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0IGZpbmFsOwogICAgIHNpemVfdCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsgfQogICAgIAogICAgIEV4Y2VwdGlvbk9y
PENTU1VucGFyc2VkU2VnbWVudD4gaXRlbShzaXplX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKaW5kZXggNTI0YjdmNzAx
YmM4ZTdhZTlkMzg2N2NhYWVhMjA3ZDgwNDFkMDc1NC4uODE3MTNmNTY4OGUwYTE0Njk3NTBkOGM1
ZTQ0OTllNmY2Y2M2ODVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxF
KENTU19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTcyLDYgKzczLDE3IEBAIENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZlcnQoQ1NTTnVtYmVy
aXNoJiYgbnVtYmVyaXNoKQogewogfQogCit2b2lkIENTU01hdGhJbnZlcnQ6OnNlcmlhbGl6ZShT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVz
ZXMpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jY2FsYy1zZXJpYWxpemF0aW9uCisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5lc3RlZCA/ICIoIiA6ICJjYWxjKCIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCIxIC8gIik7CisgICAgbV92YWx1ZS0+c2VyaWFsaXplKGJ1aWxkZXIsIG5l
c3RlZCwgd2l0aG91dFBhcmVudGhlc2VzKTsKKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aEludmVydC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoSW52ZXJ0LmgKaW5kZXggY2NlMGFkMTAxZDBlODJiNDFiNmM0NDllYmQ1ZmUxMjk2Nzg4
ZDY5ZC4uOWRmMmQzZjRlZmRlMjQ4NDYyN2FmYmI4Y2Y2ZTRmN2M2MDdkM2M1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKQEAg
LTM2LDEwICszNiwxMiBAQCBjbGFzcyBDU1NNYXRoSW52ZXJ0IGZpbmFsIDogcHVibGljIENTU01h
dGhWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoSW52ZXJ0PiBjcmVhdGUo
Q1NTTnVtYmVyaXNoJiYpOwogICAgIENTU051bWVyaWNWYWx1ZSYgdmFsdWUoKSB7IHJldHVybiBt
X3ZhbHVlLmdldCgpOyB9Ci0gICAgCisgICAgY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBDU1NNYXRo
T3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0
b3I6OkludmVydDsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aEludmVydDsgfQorICAgIHZvaWQg
c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50
aGVzZXMpIGNvbnN0IGZpbmFsOwogCiAgICAgQ1NTTWF0aEludmVydChDU1NOdW1iZXJpc2gmJik7
CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbV92YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguY3BwCmluZGV4IDNmMzRjNWE5YjZiZTZm
MWU2MTc3OGVjOGJmOTU1OTRhM2U4ZjM3MDEuLjA2YTdjNWMzNjNmMDg5MTczODgwYzAzYjAxMGRj
YzdhZGQxOTBhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aE1heC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoTWF4LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw2ICs1
MiwyMCBAQCBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhNYXg6OnZhbHVlcygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwogfQogCit2b2lkIENTU01hdGhNYXg6OnNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBib29sLCBib29sIHdpdGhvdXRQYXJlbnRoZXNl
cykgY29uc3QKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5
cGVkLW9tLyNjYWxjLXNlcmlhbGl6YXRpb24KKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIm1heCgiKTsKKyAgICBtX3ZhbHVlcy0+Zm9yRWFjaChb
Jl0oYXV0byYgbnVtZXJpY1ZhbHVlLCBib29sIGZpcnN0KSB7CisgICAgICAgIGlmICghZmlyc3Qp
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbnVtZXJpY1ZhbHVl
LnNlcmlhbGl6ZShidWlsZGVyLCB0cnVlLCB0cnVlKTsKKyAgICB9KTsKKyAgICBpZiAoIXdpdGhv
dXRQYXJlbnRoZXNlcykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWF4LmgKaW5kZXggODk4N2RmY2Q4Y2QyMDgxN2U1MTVhNjgwYTY5
YzgwNzM1MDk4YmRlMC4uOTI4OWViM2Y5NWJiNDRkMWRmNjdlMzk4NzRkNTAxM2NhZjQyZmMxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmgK
QEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3Ig
Z2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6Ok1heDsg
fQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBD
U1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aE1heDsgfQorICAgIHZvaWQgc2VyaWFsaXplKFN0cmlu
Z0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0IGZp
bmFsOwogCiAgICAgQ1NTTWF0aE1heChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAg
IENTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCmluZGV4IGJmMzFj
OTA2MGZlYWRlMjY1ODU4NmJjNWQ4YzVhMzhiMWZmZDc1YzIuLjU3MTkyNzYxMjE1ODJkYThiMjFi
ZDRjY2NkNTViM2QxYmNjMGYyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcApAQCAtNTEsNiArNTEsMjAgQEAgY29uc3QgQ1NTTnVt
ZXJpY0FycmF5JiBDU1NNYXRoTWluOjp2YWx1ZXMoKSBjb25zdAogICAgIHJldHVybiBtX3ZhbHVl
cy5nZXQoKTsKIH0KIAordm9pZCBDU1NNYXRoTWluOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYg
YnVpbGRlciwgYm9vbCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0Cit7CisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY2FsYy1zZXJpYWxp
emF0aW9uCisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJtaW4oIik7CisgICAgbV92YWx1ZXMtPmZvckVhY2goWyZdKGF1dG8mIG51bWVyaWNWYWx1
ZSwgYm9vbCBmaXJzdCkgeworICAgICAgICBpZiAoIWZpcnN0KQorICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiwgIik7CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxpemUoYnVpbGRlciwg
dHJ1ZSwgdHJ1ZSk7CisgICAgfSk7CisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhNaW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1p
bi5oCmluZGV4IGJkZDY0NDJmMjJmZTJkZmQ3OWM3M2FmMzgzZjU4NjdmOWZhODFlNjkuLjRiOGU1
YTNhOGIzOGRmMDI4YWI1YjllMjljNWU3ODE5YTBlZjY5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCkBAIC00Myw2ICs0Myw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpNaW47IH0KICAgICBDU1NTdHlsZVZhbHVl
VHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNT
U01hdGhNaW47IH0KKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0
ZWQsIGJvb2wgd2l0aG91dFBhcmVudGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhN
aW4oRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBDU1NNYXRoTWluKFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcAppbmRleCAwYWI1ZjY0MTBkMzQxMzEzNWRi
NGZlMjE3YTNkMGI3NjdjNjliNGY2Li5jZWYxNzljZjFhMGFhMzAyNmFiNWUzZjRmMzRmMGM1MDYz
Njg0OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhOZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE5lZ2F0ZS5jcHAKQEAgLTYwLDYgKzYwLDE3IEBAIENTU01hdGhOZWdhdGU6OkNTU01h
dGhOZWdhdGUoUmVmPENTU051bWVyaWNWYWx1ZT4mJiB2YWx1ZSkKIHsKIH0KIAordm9pZCBDU1NN
YXRoTmVnYXRlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCBuZXN0ZWQs
IGJvb2wgd2l0aG91dFBhcmVudGhlc2VzKSBjb25zdAoreworICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2NhbGMtc2VyaWFsaXphdGlvbgorICAgIGlm
ICghd2l0aG91dFBhcmVudGhlc2VzKQorICAgICAgICBidWlsZGVyLmFwcGVuZChuZXN0ZWQgPyAi
KCIgOiAiY2FsYygiKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnLScpOworICAgIG1fdmFsdWUtPnNl
cmlhbGl6ZShidWlsZGVyLCBuZXN0ZWQsIHdpdGhvdXRQYXJlbnRoZXNlcyk7CisgICAgaWYgKCF3
aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oCmluZGV4IDk5ZjNjZGNlM2U4ZmIxOGI5
N2MzN2Y0ZTM3NWZiNjBhOGNiMTdhODYuLjg5MjZhOTRmZjU3MjQ4MjA2ZmQ1NTZjNGZhMzY4MWNm
NDVjMTdlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE5lZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE5lZ2F0ZS5oCkBAIC0zOSwxMCArMzksMTIgQEAgY2xhc3MgQ1NTTWF0aE5lZ2F0ZSBm
aW5hbCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q1NTTWF0aE5lZ2F0ZT4gY3JlYXRlKEFyZ3MmJi4uLiBh
cmdzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhOZWdhdGUoc3RkOjpmb3J3YXJkPEFy
Z3M+KGFyZ3MpLi4uKSk7IH0KICAgICBDU1NOdW1lcmljVmFsdWUmIHZhbHVlKCkgeyByZXR1cm4g
bV92YWx1ZS5nZXQoKTsgfQotICAgIAorICAgIGNvbnN0IENTU051bWVyaWNWYWx1ZSYgdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgQ1NTTWF0
aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJh
dG9yOjpOZWdhdGU7IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhOZWdhdGU7IH0KKyAgICB2b2lk
IHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0aG91dFBhcmVu
dGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhOZWdhdGUoQ1NTTnVtYmVyaXNoJiYp
OwogICAgIENTU01hdGhOZWdhdGUoUmVmPENTU051bWVyaWNWYWx1ZT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCmlu
ZGV4IDU4YjYzMDA1NjJkZjA0YmEwNDVhYjBlYjdhZjA0OTcyMzcyMzM1NzAuLjVjMThmNWZjZTM2
ZTE2OTU4ZmQwNTIxOTM4ZTVjODRkNTkzMjI1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCkBAIC04OCw2ICs4OCwy
NiBAQCBDU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiB2YWx1ZXMsIENTU051bWVyaWNUeQogewogfQogCit2b2lkIENTU01hdGhQcm9kdWN0
OjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0
aG91dFBhcmVudGhlc2VzKSBjb25zdAoreworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2NhbGMtc2VyaWFsaXphdGlvbgorICAgIGlmICghd2l0aG91
dFBhcmVudGhlc2VzKQorICAgICAgICBidWlsZGVyLmFwcGVuZChuZXN0ZWQgPyAiKCIgOiAiY2Fs
YygiKTsKKyAgICBtX3ZhbHVlcy0+Zm9yRWFjaChbJl0oYXV0byYgbnVtZXJpY1ZhbHVlLCBib29s
IGZpcnN0KSB7CisgICAgICAgIGlmICghZmlyc3QpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBt
YXRoTmVnYXRlID0gZHluYW1pY0Rvd25jYXN0PENTU01hdGhJbnZlcnQ+KG51bWVyaWNWYWx1ZSkp
IHsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiIC8gIik7CisgICAgICAgICAgICAg
ICAgbWF0aE5lZ2F0ZS0+dmFsdWUoKS5zZXJpYWxpemUoYnVpbGRlciwgdHJ1ZSwgd2l0aG91dFBh
cmVudGhlc2VzKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiICogIik7CisgICAgICAgIH0KKyAgICAgICAgbnVtZXJp
Y1ZhbHVlLnNlcmlhbGl6ZShidWlsZGVyLCB0cnVlLCB3aXRob3V0UGFyZW50aGVzZXMpOworICAg
IH0pOworICAgIGlmICghd2l0aG91dFBhcmVudGhlc2VzKQorICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCmluZGV4
IDhlZDYwNWYzNTNiYTMzZTg1N2ZiYWQzMGQ3OWU5YTM3MTU0ZjRlMzQuLjk5NGJkNWEwMDNkMzUy
NTE1NjRmYmE1ZmY3MzliYzQ2YjY0MjY5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q7IH0KICAgICBDU1NTdHlsZVZh
bHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6
OkNTU01hdGhQcm9kdWN0OyB9CisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJv
b2wgbmVzdGVkLCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3Q7CiAKICAgICBDU1NNYXRo
UHJvZHVjdChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+LCBDU1NOdW1lcmljVHlwZSk7CiAg
ICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcAppbmRleCA1MTBkMjZlOWM3N2IwZjFm
YWViZmIyNGQ2Yjc0Y2QwNGNlMTMxN2M1Li4wMTM0NzRjNDI1YjM3ODcxNDQ3ZjU3ZWY3Yzk4N2Fk
MDdjMGMzNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhTdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5jcHAKQEAgLTkxLDYgKzkxLDI2IEBAIENTU01hdGhTdW06OkNTU01hdGhTdW0o
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMsIENTU051bWVyaWNUeXBlIHR5cGUp
CiB7CiB9CiAKK3ZvaWQgQ1NTTWF0aFN1bTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIGJvb2wgbmVzdGVkLCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3QKK3sKKyAgICAv
LyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjYWxjLXNlcmlh
bGl6YXRpb24KKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQobmVzdGVkID8gIigiIDogImNhbGMoIik7CisgICAgbV92YWx1ZXMtPmZvckVhY2goWyZd
KGF1dG8mIG51bWVyaWNWYWx1ZSwgYm9vbCBmaXJzdCkgeworICAgICAgICBpZiAoIWZpcnN0KSB7
CisgICAgICAgICAgICBpZiAoYXV0byogbWF0aE5lZ2F0ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NN
YXRoTmVnYXRlPihudW1lcmljVmFsdWUpKSB7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiAtICIpOworICAgICAgICAgICAgICAgIG1hdGhOZWdhdGUtPnZhbHVlKCkuc2VyaWFsaXpl
KGJ1aWxkZXIsIHRydWUsIHdpdGhvdXRQYXJlbnRoZXNlcyk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiArICIpOwor
ICAgICAgICB9CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxpemUoYnVpbGRlciwgdHJ1ZSwg
d2l0aG91dFBhcmVudGhlc2VzKTsKKyAgICB9KTsKKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNl
cykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aFN1bS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoU3VtLmgKaW5kZXggZDUyMzdiYmZlNTRlNGRmMGI0NzY0MjA1ZmVhNjRkNWZjYTZmY2Vi
OS4uYjFjYjhkZWE1NTVhMzBlMDg4MWRiMGU4NTUwYmQzMWFmNTU2Mjc0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKQEAgLTQ1LDYgKzQ1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3Io
KSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlN1bTsgfQogICAgIENTU1N0
eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NTdHlsZVZh
bHVlVHlwZTo6Q1NTTWF0aFN1bTsgfQorICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXIm
LCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0IGZpbmFsOwogCiAg
ICAgQ1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+LCBDU1NOdW1lcmljVHlw
ZSk7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAKaW5kZXgg
Zjk3OWVhYmM4ODMyZTUzMGZhNTM5Y2E1Mzg5NDdlYThlNWYzYWI3NS4uMjI5Nzc2MzUwNDI4MTNl
ZWQ4NTUyOTE3NzEzNThhODgzNzY0MTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcApAQCAtNjUsNiArNjUsMTIg
QEAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNBcnJheTo6aXRl
bShzaXplX3QgaW5kZXgpCiAgICAgcmV0dXJuIG1fYXJyYXlbaW5kZXhdLmNvcHlSZWYoKTsKIH0K
IAordm9pZCBDU1NOdW1lcmljQXJyYXk6OmZvckVhY2goRnVuY3Rpb248dm9pZChjb25zdCBDU1NO
dW1lcmljVmFsdWUmLCBib29sIGZpcnN0KT4gZnVuY3Rpb24pCit7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2FycmF5LnNpemUoKTsgaSsrKQorICAgICAgICBmdW5jdGlvbihtX2FycmF5
W2ldLCAhaSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaApp
bmRleCBiODZhOWIyZWUyYzY4YmRlMzRjOTIzOTA4YWExMmRlNTdkNWQ3NzZjLi4xOGIwYTU0Y2Q4
MDM0MTA3ZGZkY2YxN2UwZGZiNjIwNDBhOGNiZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKQEAgLTQ1LDYgKzQ1LDcg
QEAgcHVibGljOgogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2FycmF5LnNp
emUoKTsgfTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaXRlbShzaXpl
X3QgaW5kZXgpOwogICAgIGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIGFycmF5
KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheTsgfQorICAgIHZvaWQgZm9yRWFjaChGdW5jdGlvbjx2
b2lkKGNvbnN0IENTU051bWVyaWNWYWx1ZSYsIGJvb2wgZmlyc3QpPik7CiAKIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBtX2FycmF5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4Q29tcG9uZW50
LmNwcAppbmRleCA2Yjk2NWRmMjgzYzg5ZDA0N2U3MGFjN2YyMWVhZGUzMjAyMmY3YWVkLi5hMzhk
YWE3ZDQxYjgzYjcyYTFjY2FmZTE0MDVjZTRkZTRhYzZlOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4Q29tcG9uZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4Q29tcG9uZW50
LmNwcApAQCAtNTIsMTUgKzUyLDE0IEBAIENTU01hdHJpeENvbXBvbmVudDo6Q1NTTWF0cml4Q29t
cG9uZW50KFJlZjxET01NYXRyaXhSZWFkT25seT4mJiBtYXRyaXgsIHN0ZDo6b3B0CiB7CiB9CiAK
LS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dpbmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3Ry
aW5nIENTU01hdHJpeENvbXBvbmVudDo6dG9TdHJpbmcoKSBjb25zdAordm9pZCBDU1NNYXRyaXhD
b21wb25lbnQ6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikgY29uc3QKIHsKLSAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCiBFeGNlcHRpb25P
cjxSZWY8RE9NTWF0cml4Pj4gQ1NTTWF0cml4Q29tcG9uZW50Ojp0b01hdHJpeCgpCiB7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0cml4KERP
TU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5oCmluZGV4IDA4NTdlZmMxNzJj
MDkwNGY2YzE1OWM5NjE4MDc5YWQxYTMyOTFkZDIuLjM1NmUyYTQzZDMzNzRjNjhiZDA0ZDA5MTQ4
MDQyMWU1M2M4N2ZmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4Q29tcG9uZW50LmgKQEAgLTQzLDggKzQzLDggQEAgcHVi
bGljOgogICAgIAogICAgIERPTU1hdHJpeCYgbWF0cml4KCk7CiAgICAgdm9pZCBzZXRNYXRyaXgo
UmVmPERPTU1hdHJpeD4mJik7Ci0gICAgCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmlu
YWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAg
ICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAg
ICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJh
bnNmb3JtVHlwZTo6TWF0cml4Q29tcG9uZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0aXZlLmNwcAppbmRleCA5OTgxODg3
NGIwNTFlYjI4MzYzMTQzZDZiNDQ3NmUzOGJlZjA5MDE2Li44MWJhNmZjZGI0MzExYThjYzI4MDgz
Mzk2NmQ3ODRjNzQ2ODM4NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NQZXJzcGVjdGl2ZS5jcHAKQEAgLTg4LDE1ICs4OCwyNiBAQCB2
b2lkIENTU1BlcnNwZWN0aXZlOjpzZXRJczJEKGJvb2wpCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc3BlcnNwZWN0aXZlLWlzMmQgc2F5
cyB0byBkbyBub3RoaW5nIGhlcmUuCiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dp
bmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1BlcnNwZWN0aXZlOjp0b1N0cmluZygp
IGNvbnN0Cit2b2lkIENTU1BlcnNwZWN0aXZlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVp
bGRlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICAvLyBodHRwczov
L2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNzZXJpYWxpemUtYS1jc3NwZXJz
cGVjdGl2ZQorICAgIGJ1aWxkZXIuYXBwZW5kKCJwZXJzcGVjdGl2ZSgiKTsKKyAgICBXVEY6OnN3
aXRjaE9uKG1fbGVuZ3RoLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDU1NOdW1lcmljVmFs
dWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgIHZh
bHVlLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAgIH0sIFsmXSAoY29uc3QgU3RyaW5nJiB2
YWx1ZSkgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUpOworICAgICAgICB9LCBb
Jl0gKGNvbnN0IFJlZlB0cjxDU1NLZXl3b3JkVmFsdWU+JiB2YWx1ZSkgeworICAgICAgICAgICAg
aWYgKENTU1N0eWxlVmFsdWUqIHN0eWxlVmFsdWUgPSB2YWx1ZS5nZXQoKSkKKyAgICAgICAgICAg
ICAgICBzdHlsZVZhbHVlLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAgIH0pOworICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBDU1NQ
ZXJzcGVjdGl2ZTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAg
cmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NQZXJzcGVj
dGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0
aXZlLmgKaW5kZXggNzhmMTEyMDQxZjM0NjcxZjg4YzI4MDZhNTc0MjYxYWRkOTMyMjM2OC4uNDI5
MzRiMzNlZGEwZjg4ZjEyMWE5MzEyOGU4NzQ2ZTg1Y2FhMDQ5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0aXZlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0aXZlLmgKQEAgLTQz
LDggKzQzLDggQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IENTU1BlcnNwZWN0aXZlVmFsdWUm
IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0TGVuZ3RoKENTU1BlcnNwZWN0aXZlVmFsdWUpOwotICAgIAotICAgIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYp
IGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiB0b01hdHJpeCgp
IGZpbmFsOwogICAgIAogICAgIENTU1RyYW5zZm9ybVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIENTU1RyYW5zZm9ybVR5cGU6OlBlcnNwZWN0aXZlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuY3BwCmluZGV4IDM2MjY3
ZDk1ZmQ2Njg4OTRjZTdjN2FlY2VmZGM5OWQ1NTM0YTkyNjguLjZiMmFhNWY3NDZmYjdmODhiODQ2
YjExMWNmMzQ3OTNlZTM5OGEwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuY3BwCkBAIC0xMTQsMTUgKzExNCwyNSBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBDU1NSb3RhdGU6OnNldEFuZ2xlKFJlZjxDU1NOdW1lcmljVmFsdWU+IGFuZ2xl
KQogICAgIHJldHVybiB7IH07CiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dpbmcg
dmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1JvdGF0ZTo6dG9TdHJpbmcoKSBjb25zdAor
dm9pZCBDU1NSb3RhdGU6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAog
ewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1o
b3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNzc3JvdGF0ZQorICAgIGJ1aWxk
ZXIuYXBwZW5kKGlzMkQoKSA/ICJyb3RhdGUoIiA6ICJyb3RhdGUzZCgiKTsKKyAgICBpZiAoIWlz
MkQoKSkgeworICAgICAgICBtX3gtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiwgIik7CisgICAgICAgIG1feS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbV96LT5zZXJpYWxpemUoYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgIH0KKyAgICBtX2FuZ2xlLT5zZXJp
YWxpemUoYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIH0KIAogRXhjZXB0aW9u
T3I8UmVmPERPTU1hdHJpeD4+IENTU1JvdGF0ZTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJ
bml0IHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NSb3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NSb3RhdGUuaAppbmRleCBkNzE4ZjU1ZTM4ZTFhY2NhNzE0ZDdhZDUyYjY5ODdmNzQ0YTAy
OGEwLi5kMDM2YzI2NDk4OGVjYTYyYmRlNDhiYmM2M2EzMjY3ZGU0MDJkYjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5oCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRaKENTU051bWJlcmlz
aCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QW5nbGUoUmVmPENTU051bWVyaWNWYWx1ZT4p
OwogCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01N
YXRyaXg+PiB0b01hdHJpeCgpIGZpbmFsOwogICAgIAogICAgIENTU1RyYW5zZm9ybVR5cGUgZ2V0
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1RyYW5zZm9ybVR5cGU6OlJvdGF0ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5jcHAK
aW5kZXggMzk2NDYxOWI0YmM3NzRlMTRkNjI2YmFkYjA2NzE1ODA1Y2RjZTkyOS4uZWJhZjc2YmVh
NjEwYjdiZDY4OWE5OTFhZTJhNjhiOWI3MDY2MDFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUuY3BwCkBAIC04MCwxNSArODAsMjMgQEAg
dm9pZCBDU1NTY2FsZTo6c2V0WihDU1NOdW1iZXJpc2ggeikKICAgICBtX3ogPSBDU1NOdW1lcmlj
VmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZSh6KSk7CiB9CiAKLS8vIEZJWE1FOiBGaXgg
YWxsIHRoZSBmb2xsb3dpbmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1NjYWxlOjp0
b1N0cmluZygpIGNvbnN0Cit2b2lkIENTU1NjYWxlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYg
YnVpbGRlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICAvLyBodHRw
czovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNzZXJpYWxpemUtYS1jc3Nz
Y2FsZQorICAgIGJ1aWxkZXIuYXBwZW5kKGlzMkQoKSA/ICJzY2FsZSgiIDogInNjYWxlM2QoIik7
CisgICAgbV94LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7
CisgICAgbV95LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgaWYgKCFpczJEKCkpIHsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgICAgIG1fei0+c2VyaWFsaXplKGJ1aWxkZXIp
OworICAgIH0KKyAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8
RE9NTWF0cml4Pj4gQ1NTU2NhbGU6OnRvTWF0cml4KCkKIHsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50LgogICAgIHJldHVybiBET01NYXRyaXg6OmZyb21NYXRyaXgoRE9NTWF0cml4SW5pdCB7IH0p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0v
Q1NTU2NhbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2Fs
ZS5oCmluZGV4IDkzZjZiY2NhZDZkMDM1ZmYzN2E0OGU0NDVlZmIzNDIyYWUwYzQzYTIuLmRjYmFl
MTI2NWVlMDJlYWNiYjdmZmEwYTY0MzVhOGVmNTEyMmU4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5oCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIENTU1NjYWxlIDogcHVibGljIENTU1RyYW5zZm9ybUNvbXBvbmVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NTY2FsZT4+IGNyZWF0ZShDU1NOdW1iZXJpc2gg
eCwgQ1NTTnVtYmVyaXNoIHksIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtYmVyaXNoPiB6KTsKIAotICAg
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2VyaWFsaXplKFN0cmlu
Z0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4g
dG9NYXRyaXgoKSBmaW5hbDsKIAogICAgIENTU051bWJlcmlzaCB4KCkgY29uc3QgeyByZXR1cm4g
bV94LnB0cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFu
c2Zvcm0vQ1NTU2tldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0v
Q1NTU2tldy5jcHAKaW5kZXggNzZhYTc1MzAzM2VmYWMwNDMwODMwNWZkODBiMGM0ZTU2OGVkOWM3
ZS4uZmE2OWY2MzM5NmUyNDI1MDNhM2ZjMmFlNGE4YzRkZGU5MTdiN2Q4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3LmNwcApAQCAtNTUsMTUg
KzU1LDIxIEBAIENTU1NrZXc6OkNTU1NrZXcoUmVmPENTU051bWVyaWNWYWx1ZT4gYXgsIFJlZjxD
U1NOdW1lcmljVmFsdWU+IGF5KQogewogfQogCi0vLyBGSVhNRTogRml4IGFsbCB0aGUgZm9sbG93
aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NTa2V3Ojp0b1N0cmluZygpIGNvbnN0
Cit2b2lkIENTU1NrZXc6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAog
ewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1o
b3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNzc3NrZXcKKyAgICBidWlsZGVy
LmFwcGVuZCgic2tldygiKTsKKyAgICBtX2F4LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgaWYg
KCFpczxDU1NVbml0VmFsdWU+KG1fYXkpIHx8IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obV9heS5n
ZXQoKSkudmFsdWUoKSkgeworICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAg
bV9heS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVuZCgnKScp
OwogfQogCiBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gQ1NTU2tldzo6dG9NYXRyaXgoKQog
eworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1h
dHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTU2tldy5oCmluZGV4IDkyY2RiNjNhYzY4ODhmNWRmZWUyYzVmNjAx
MWU2YThjZWVkZmMzYzUuLmJiMzk0MzdkNjFkODdhNzUxOWM3YjcwM2JhZjY0OThhM2NmYzA0YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuaApA
QCAtNDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRBeChSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiBheCkgeyBtX2F4ID0gV1RGTW92ZShheCk7IH0KICAgICB2b2lkIHNldEF5KFJl
ZjxDU1NOdW1lcmljVmFsdWU+IGF5KSB7IG1fYXkgPSBXVEZNb3ZlKGF5KTsgfQotICAgIAotICAg
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBzZXJpYWxpemUoU3Ry
aW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+
PiB0b01hdHJpeCgpIGZpbmFsOwogICAgIAogICAgIENTU1RyYW5zZm9ybVR5cGUgZ2V0VHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1RyYW5zZm9ybVR5cGU6OlNrZXc7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1guY3BwCmluZGV4IDVh
N2Y1NGYxOTEzY2UyMTY4MDVlY2VmODg3NTYxZTAyYTA3MjM5M2EuLjJhNGJiMjc0MTkzZmM3NzFh
YTY0OGUwN2FmZWRlMzJkMmUyOWVjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmNwcApAQCAtNTMsMTUgKzUzLDE3IEBAIENTU1NrZXdY
OjpDU1NTa2V3WChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBheCkKIHsKIH0KIAotLy8gRklYTUU6IEZp
eCBhbGwgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTU2tld1g6
OnRvU3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTU2tld1g6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVy
JiBidWlsZGVyKSBjb25zdAogewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNz
c3NrZXd4CisgICAgYnVpbGRlci5hcHBlbmQoInNrZXdYKCIpOworICAgIG1fYXgtPnNlcmlhbGl6
ZShidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogfQogCiBFeGNlcHRpb25PcjxS
ZWY8RE9NTWF0cml4Pj4gQ1NTU2tld1g6OnRvTWF0cml4KCkKIHsKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50LgogICAgIHJldHVybiBET01NYXRyaXg6OmZyb21NYXRyaXgoRE9NTWF0cml4SW5pdCB7
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zv
cm0vQ1NTU2tld1guaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NT
a2V3WC5oCmluZGV4IGI4MTE4NTY1OWUzMzE2MTVlZjU3ZDYwMTQ5NGI4MDA4OWQwNWUwYjQuLmVl
ZDk2MjAzMjA5NGY5ZjQzZjlkMjY3ZDM2YjQ3NzUzZDg1Y2E4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5oCkBAIC00MSw4ICs0MSw4IEBA
IHB1YmxpYzoKICAgICAKICAgICBjb25zdCBDU1NOdW1lcmljVmFsdWUmIGF4KCkgY29uc3QgeyBy
ZXR1cm4gbV9heC5nZXQoKTsgfQogICAgIHZvaWQgc2V0QXgoUmVmPENTU051bWVyaWNWYWx1ZT4g
YXgpIHsgbV9heCA9IFdURk1vdmUoYXgpOyB9Ci0gICAgCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikgY29uc3Qg
ZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkgZmluYWw7
CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gQ1NTVHJhbnNmb3JtVHlwZTo6U2tld1g7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuY3BwCmluZGV4IDQ2NzdiYmRiZjI0MGYxNGQ3NGNl
ZWJkNWVlOTZjOTVlZjEyZDUyNGQuLmFkMzVmNmZhZWRmNWVlY2JiZWMxYjlmMTA2ZTU5ODVmMThi
ODY5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NTa2V3WS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NT
U1NrZXdZLmNwcApAQCAtNTMsMTUgKzUzLDE3IEBAIENTU1NrZXdZOjpDU1NTa2V3WShSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBheSkKIHsKIH0KIAotLy8gRklYTUU6IEZpeCBhbGwgdGhlIGZvbGxvd2lu
ZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTU2tld1k6OnRvU3RyaW5nKCkgY29uc3QK
K3ZvaWQgQ1NTU2tld1k6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAog
ewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1o
b3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNzc3NrZXd5CisgICAgYnVpbGRl
ci5hcHBlbmQoInNrZXdZKCIpOworICAgIG1fYXktPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gQ1NT
U2tld1k6OnRvTWF0cml4KCkKIHsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogICAgIHJldHVy
biBET01NYXRyaXg6OmZyb21NYXRyaXgoRE9NTWF0cml4SW5pdCB7IH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5oCmluZGV4IDY0NzZi
MzhmZmUzNzgwNjJjYjRmMmZiNzA5Y2E1M2VlMDMxZjk2MGIuLmQ1MWU1YjliMzNkZDZmYWU5MGJj
Nzk4NWI3MWY0ODQyMTVhZmQ3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L3RyYW5zZm9ybS9DU1NTa2V3WS5oCkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKICAgICAKICAg
ICBjb25zdCBDU1NOdW1lcmljVmFsdWUmIGF5KCkgY29uc3QgeyByZXR1cm4gbV9heS5nZXQoKTsg
fQogICAgIHZvaWQgc2V0QXkoUmVmPENTU051bWVyaWNWYWx1ZT4gYXkpIHsgbV9heSA9IFdURk1v
dmUoYXkpOyB9Ci0gICAgCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisKKyAg
ICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0
aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAgICAgQ1NTVHJh
bnNmb3JtVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlw
ZTo6U2tld1k7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5z
Zm9ybS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHAKaW5kZXggOWMyZDA3MmEyMWFh
ZGZlY2ZmOWU3YzMyZGU3M2M1YzViZWJlYjU1OC4uZmFlYTc5NWY0ZmMyMDk2MDhkNzMwZjVjOWVm
MjY5MjYzZDIzZGU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHAKQEAgLTMyLDE2ICsz
MiwxNSBAQAogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAotI2luY2x1ZGUgIkRPTU1hdHJp
eC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogU3RyaW5nIENTU1RyYW5zZm9ybUNvbXBvbmVudDo6dG9TdHJpbmcoKSBj
b25zdAogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCi0gICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIHNlcmlhbGl6ZShidWlsZGVyKTsK
KyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
VHJhbnNmb3JtQ29tcG9uZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zv
cm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmgKaW5kZXggMGY0N2UzZTJlYWNiYWM0N2M5ZTQxYmFm
Y2RmYmNmYTk5NWIzZTY3ZC4uZDJkZTAzNGNlYjFhZTQ2ZDk0OTBkZjBiOGFhNjIzZDIyNTA4MGYz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Ry
YW5zZm9ybUNvbXBvbmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5z
Zm9ybS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuaApAQCAtNTMsNyArNTMsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgQ1NTVHJhbnNmb3JtQ29tcG9uZW50KElzMkQgaXMyRCkKICAgICAgICAgOiBtX2lzMkQo
aXMyRCkgeyB9CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsK
KyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VyaWFsaXpl
KFN0cmluZ0J1aWxkZXImKSBjb25zdCA9IDA7CiAgICAgYm9vbCBpczJEKCkgY29uc3QgeyByZXR1
cm4gbV9pczJEID09IElzMkQ6OlllczsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJczJEKGJvb2wg
aXMyRCkgeyBtX2lzMkQgPSBpczJEID8gSXMyRDo6WWVzIDogSXMyRDo6Tm87IH0KICAgICB2aXJ0
dWFsIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiB0b01hdHJpeCgpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3Jt
VmFsdWUuY3BwCmluZGV4IGE2Y2ZmMjM2ZWU2NWFlMWM0NzhhOWZkMTE3MjQ3ZjM0MzEzZDBhOTAu
LmM5ZmU4YjdkMjE2NGE5NmNmMzBjNTk1ZWU3N2MzODFmYTA0Yzc2OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1WYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZh
bHVlLmNwcApAQCAtOTEsNiArOTEsMTUgQEAgQ1NTVHJhbnNmb3JtVmFsdWU6OkNTU1RyYW5zZm9y
bVZhbHVlKFZlY3RvcjxSZWZQdHI8Q1NTVHJhbnNmb3JtQ29tcG9uZW50Pj4mJiB0cmEKIHsKIH0K
IAordm9pZCBDU1NUcmFuc2Zvcm1WYWx1ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIGJvb2wsIGJvb2wpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRp
bmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3NzdHJhbnNmb3JtdmFsdWUKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY29tcG9uZW50cy5zaXplKCk7IGkrKykgeworICAgICAg
ICBpZiAoaSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIG1fY29t
cG9uZW50c1tpXS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIH0KK30KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFu
c2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NUcmFuc2Zvcm1WYWx1ZS5oCmluZGV4IDVhN2ViNGEzYmU4NDZjNmE3ZDU0NzAw
N2ViMDViYjI0YTkxM2FjMzQuLjAzZDgwZjJhMjQ5ZGY0MThhYWY2MGIzZDdmZGJhMTQ1OTAzZmZl
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NU
cmFuc2Zvcm1WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NUcmFuc2Zvcm1WYWx1ZS5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBDU1NT
dHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVW
YWx1ZVR5cGU6OkNTU1RyYW5zZm9ybVZhbHVlOyB9CiBwcml2YXRlOgogICAgIENTU1RyYW5zZm9y
bVZhbHVlKFZlY3RvcjxSZWZQdHI8Q1NTVHJhbnNmb3JtQ29tcG9uZW50Pj4mJik7CisgICAgdm9p
ZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJvb2wsIGJvb2wpIGNvbnN0IGZpbmFsOwogCiAg
ICAgVmVjdG9yPFJlZlB0cjxDU1NUcmFuc2Zvcm1Db21wb25lbnQ+PiBtX2NvbXBvbmVudHM7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Ry
YW5zbGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJh
bnNsYXRlLmNwcAppbmRleCAwZWZjYjFlMWVhOTJkMjdiNjdkN2M0MmJjYjlkODYwMGU0MjMxOWVh
Li5kNWZlZjc2NWNiNmRmMTlmOWE5MDdlNGE3YzQ0ODVmNWVhZTcyNzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmNwcApA
QCAtNjUsMTYgKzY1LDIzIEBAIENTU1RyYW5zbGF0ZTo6Q1NTVHJhbnNsYXRlKENTU1RyYW5zZm9y
bUNvbXBvbmVudDo6SXMyRCBpczJELCBSZWY8Q1NTTnVtZXJpY1ZhbHVlCiB7CiB9CiAKLQotLy8g
RklYTUU6IEZpeCBhbGwgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcg
Q1NTVHJhbnNsYXRlOjp0b1N0cmluZygpIGNvbnN0Cit2b2lkIENTU1RyYW5zbGF0ZTo6c2VyaWFs
aXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1v
bS8jc2VyaWFsaXplLWEtY3NzdHJhbnNsYXRlCisgICAgYnVpbGRlci5hcHBlbmQoaXMyRCgpID8g
InRyYW5zbGF0ZSgiIDogInRyYW5zbGF0ZTNkKCIpOworICAgIG1feC0+c2VyaWFsaXplKGJ1aWxk
ZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgIG1feS0+c2VyaWFsaXplKGJ1aWxk
ZXIpOworICAgIGlmICghaXMyRCgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOwor
ICAgICAgICBtX3otPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBl
bmQoJyknKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IENTU1RyYW5zbGF0ZTo6
dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgcmV0dXJuIERPTU1h
dHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuaAppbmRleCBjMTZj
Y2RhNzQ0Y2JlYWMzMGEwMDU5NDYyMDkxYzM1NDBjOGMzYTU4Li4yMjdmMzU4ZTE0OWVhYjliYTQ2
OWE1MmU0ZmVlNTc3MWU2NzEzYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFkoUmVmPENTU051bWVyaWNWYWx1ZT4geSkgeyBtX3kgPSBXVEZNb3ZlKHkp
OyB9CiAgICAgdm9pZCBzZXRaKFJlZjxDU1NOdW1lcmljVmFsdWU+IHopIHsgbV96ID0gV1RGTW92
ZSh6KTsgfQogICAgIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworICAgIHZv
aWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRpb25P
cjxSZWY8RE9NTWF0cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY0ZWE2NTdlNmUwNDJhYzNkMTAxOGM4ZGQ4ZDhmYzAy
MjVmZWJhMDcuLmY0ODExNzYxNzE1Nzg0NDliOWU0NTkyMzUzMjcyNWZkYmIzMTMyYTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTE4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1w
bGVtZW50IG1vc3Qgb2YgQ1NTIHR5cGVkIE9NIG9iamVjdCBzdHJpbmdpZmllcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTQ4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc0tleXdvcmRW
YWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NNYXRoVmFsdWUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVHJhbnNmb3JtVmFsdWUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wNC0xOCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBDU1NUcmFuc2Zv
cm1WYWx1ZS5pczJECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nz
c0tleXdvcmRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2Vy
aWFsaXphdGlvbi9jc3NLZXl3b3JkVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCA0
OGQwOTg5NzA0MjYzNTkwMTFlMzNhZGZlY2ZhZjJkZDg1NWRiMmRkLi4wYmE4NmQ3MDU0OGViMTVj
MTc1ODQzZTA0YzM1Y2YxNWViMTU1NmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJp
YWxpemF0aW9uL2Nzc0tleXdvcmRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzS2V5d29yZFZhbHVlLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgQ1NTS2V5d29yZFZhbHVlIGNvbnN0cnVj
dGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJhdXRvIiBidXQgZ290ICIiCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBjb25zdHJ1Y3RlZCBmcm9t
IElETCBzZXJpYWxpemVzIHRvIGVzY2FwZWQgc3RyaW5ncyBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiXFwgSGVsbG9cXCBXb3JsZCIgYnV0IGdvdCAiIgorUEFTUyBDU1NLZXl3b3JkVmFsdWUgY29u
c3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK0ZBSUwgQ1NTS2V5d29yZFZh
bHVlIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgdG8gZXNjYXBlZCBzdHJpbmdzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJcXCBIZWxsb1xcIFdvcmxkIiBidXQgZ290ICIgSGVsbG8g
V29ybGQiCiBGQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIERPTVN0cmluZyBtb2RpZmllZCB0aHJv
dWdoICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJsZW1vbiIgYnV0IGdvdCAiYXV0byIKIEZBSUwgQ1NTS2V5d29yZFZhbHVlIGZyb20g
Q1NTT00gbW9kaWZpZWQgdGhyb3VnaCAidmFsdWUiIHNldHRlciBzZXJpYWxpemVzIGNvcnJlY3Rs
eSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibGVtb24iIGJ1dCBnb3QgImF1dG8iCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzTWF0aFZhbHVlLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc01hdGhWYWx1
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDIwMmU5YTFmYjM4YzdhZmZiYzEwNDcyMmQ1
MDliZGFiNDU2Y2QwM2YuLjg0NzhmNDYzOWNhZGVhYWFiZTk1Yzg4OGIzNjJmOWQxNTg4MjFjM2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzTWF0aFZhbHVlLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9j
c3NNYXRoVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSwyMiArMSwyMiBAQAogCi1G
QUlMIENTU01hdGhNYXggd2l0aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm1heCgxKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoTWF4
IHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAibWF4KDEsIDIsIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhN
YXggY29udGFpbmluZyBuZXN0ZWQgQ1NTTWF0aFZhbHVlcyBzZXJpYWxpemVzIGNvcnJlY3RseSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibWF4KDEgKyAyLCAzKSIgYnV0IGdvdCAiIgotRkFJTCBD
U1NNYXRoTWluIHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJtaW4oMSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE1pbiB3aXRo
IG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIm1pbigxLCAyLCAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoTWluIGNv
bnRhaW5pbmcgbmVzdGVkIENTU01hdGhWYWx1ZXMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIm1pbigxICsgMiwgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0
aFN1bSB3aXRoIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiY2FsYygxKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoU3VtIHdpdGggbW9y
ZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiY2FsYygxICsgMiArIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhTdW0gd2l0
aCBhIENTU01hdGhOZWdhdGUgYXMgZmlyc3QgdmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoKC0xKSArIDIgKyAzKSIgYnV0IGdvdCAiIgotRkFJ
TCBDU1NNYXRoU3VtIGNvbnRhaW5pbmcgYSBDU1NNYXRoTmVnYXRlIGFmdGVyIGZpcnN0IHZhbHVl
IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKDEgLSAy
ICsgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aFN1bSBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0
aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxj
KCgxICsgMikgKyAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoTmVnYXRlIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKC0xKSIgYnV0IGdvdCAiIgot
RkFJTCBDU1NNYXRoTmVnYXRlIG5lc3RlZCBpbnNpZGUgYSBDU1NNYXRoVmFsdWUgc2VyaWFsaXpl
cyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoKC0xKSkiIGJ1dCBnb3Qg
IiIKLUZBSUwgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3Jy
ZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoMSkiIGJ1dCBnb3QgIiIKLUZBSUwg
Q1NTTWF0aFByb2R1Y3Qgd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29y
cmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKDEgKiAyICogMykiIGJ1dCBnb3Qg
IiIKLUZBSUwgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBhIENTU01hdGhJbnZlcnQgYXMgZmlyc3QgdmFs
dWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoKDEg
LyAxKSAqIDIgKiAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoUHJvZHVjdCBjb250YWluaW5n
IGEgQ1NTTWF0aEludmVydCBhZnRlciBmaXJzdCB2YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygxIC8gMiAqIDMpIiBidXQgZ290ICIiCi1GQUlM
IENTU01hdGhQcm9kdWN0IG5lc3RlZCBpbnNpZGUgYSBDU1NNYXRoVmFsdWUgc2VyaWFsaXplcyBj
b3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoKDEgKiAyKSAqIDMpIiBidXQg
Z290ICIiCi1GQUlMIENTU01hdGhJbnZlcnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgImNhbGMoMSAvIDEpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhJbnZl
cnQgbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoMSAvIDEpKSIgYnV0IGdvdCAiIgorUEFTUyBDU1NN
YXRoTWF4IHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01h
dGhNYXggd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQ
QVNTIENTU01hdGhNYXggY29udGFpbmluZyBuZXN0ZWQgQ1NTTWF0aFZhbHVlcyBzZXJpYWxpemVz
IGNvcnJlY3RseQorUEFTUyBDU1NNYXRoTWluIHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMg
Y29ycmVjdGx5CitQQVNTIENTU01hdGhNaW4gd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IHNl
cmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhNaW4gY29udGFpbmluZyBuZXN0ZWQgQ1NT
TWF0aFZhbHVlcyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoU3VtIHdpdGggb25l
IGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhTdW0gd2l0aCBtb3Jl
IHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhTdW0g
d2l0aCBhIENTU01hdGhOZWdhdGUgYXMgZmlyc3QgdmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkK
K1BBU1MgQ1NTTWF0aFN1bSBjb250YWluaW5nIGEgQ1NTTWF0aE5lZ2F0ZSBhZnRlciBmaXJzdCB2
YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoU3VtIG5lc3RlZCBpbnNpZGUg
YSBDU1NNYXRoVmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aE5lZ2F0ZSBz
ZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoTmVnYXRlIG5lc3RlZCBpbnNpZGUgYSBD
U1NNYXRoVmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFByb2R1Y3Qgd2l0
aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFByb2R1Y3Qg
d2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENT
U01hdGhQcm9kdWN0IHdpdGggYSBDU1NNYXRoSW52ZXJ0IGFzIGZpcnN0IHZhbHVlIHNlcmlhbGl6
ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhQcm9kdWN0IGNvbnRhaW5pbmcgYSBDU1NNYXRoSW52
ZXJ0IGFmdGVyIGZpcnN0IHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhQ
cm9kdWN0IG5lc3RlZCBpbnNpZGUgYSBDU1NNYXRoVmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkK
K1BBU1MgQ1NTTWF0aEludmVydCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoSW52
ZXJ0IG5lc3RlZCBpbnNpZGUgYSBDU1NNYXRoVmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NUcmFuc2Zvcm1WYWx1
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9j
c3NUcmFuc2Zvcm1WYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IGQzOWRiYTk4ODlm
ZGE3MTJhZmI3MGY5MDU4MjEwMGRiYjU5MjZlMjUuLjE2MGM5ZjJjMDZmMWQ3YmNkNDRmNmJiNjI5
YzRmYzVlZTQ5NWFkNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24v
Y3NzVHJhbnNmb3JtVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2
YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1RyYW5zZm9ybVZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQKQEAgLTEsMjAgKzEsMjAgQEAKIAotRkFJTCBDU1NUcmFuc2xhdGUgd2l0aCAyIGFyZ3VtZW50
cyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJhbnNsYXRl
KDElLCAxcHgpIiBidXQgZ290ICIiCi1GQUlMIENTU1RyYW5zbGF0ZSB3aXRoIDMgYXJndW1lbnRz
IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0cmFuc2xhdGUz
ZCgxcHgsIDIlLCAzcHgpIiBidXQgZ290ICIiCi1GQUlMIENTU1NjYWxlIHdpdGggMiBhcmd1bWVu
dHMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNjYWxlKDIs
IDMpIiBidXQgZ290ICIiCi1GQUlMIENTU1NjYWxlIHdpdGggMyBhcmd1bWVudHMgc2VyaWFsaXpl
cyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNjYWxlM2QoMSwgMiwgMykiIGJ1
dCBnb3QgIiIKLUZBSUwgQ1NTUm90YXRlIHdpdGggMSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJl
Y3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicm90YXRlKDkwZGVnKSIgYnV0IGdvdCAiIgot
RkFJTCBDU1NSb3RhdGUgd2l0aCA0IGFyZ3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAicm90YXRlM2QoMSwgMiwgMywgOTBkZWcpIiBidXQgZ290ICIi
Ci1GQUlMIENTU1NrZXcgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInNrZXcoOTBkZWcsIDQ1ZGVnKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NTa2V3IHdpdGggWSB3
aGljaCBpcyAwIHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJza2V3KDkwZGVnKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NTa2V3WCBzZXJpYWxpemVzIGNv
cnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2tld1goOTBkZWcpIiBidXQgZ290ICIi
Ci1GQUlMIENTU1NrZXdZIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJza2V3WSg5MGRlZykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTUGVyc3BlY3RpdmUgc2VyaWFs
aXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInBlcnNwZWN0aXZlKDFweCki
IGJ1dCBnb3QgIiIKLUZBSUwgQ1NTUGVyc3BlY3RpdmUgd2l0aCBuZWdhdGl2ZSBsZW5ndGggc2Vy
aWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInBlcnNwZWN0aXZlKGNh
bGMoLTFweCkpIiBidXQgZ290ICIiCi1GQUlMIENTU1RyYW5zZm9ybVZhbHVlIHdpdGggYSBzaW5n
bGUgdHJhbnNmb3JtIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJwZXJzcGVjdGl2ZSgxcHgpIiBidXQgZ290ICIiCi1GQUlMIENTU1RyYW5zZm9ybVZhbHVlIHdp
dGggbXVsdGlwbGUgdHJhbnNmb3JtcyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAidHJhbnNsYXRlKDFweCwgMHB4KSByb3RhdGUoOTBkZWcpIHBlcnNwZWN0aXZl
KDFweCkgc2tldyg5MGRlZywgNDVkZWcpIHNjYWxlM2QoMSwgMiwgMykiIGJ1dCBnb3QgIiIKLUZB
SUwgQ1NTVHJhbnNmb3JtVmFsdWUgY29udGFpbmluZyBDU1NNYXRoVmFsdWVzIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0cmFuc2xhdGUoY2FsYygxcHggKyAx
ZW0pLCAwcHgpIHJvdGF0ZShjYWxjKDkwZGVnICsgMXR1cm4pKSBwZXJzcGVjdGl2ZShjYWxjKDFw
eCArIDFlbSkpIHNrZXcoY2FsYyg5MGRlZyAqIDIpLCBjYWxjKDF0dXJuICogMikpIHNjYWxlM2Qo
Y2FsYygxICogMiksIGNhbGMoMSArIDEpLCBjYWxjKDMpKSIgYnV0IGdvdCAiIgorUEFTUyBDU1NU
cmFuc2xhdGUgd2l0aCAyIGFyZ3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NU
cmFuc2xhdGUgd2l0aCAzIGFyZ3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NT
Y2FsZSB3aXRoIDIgYXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1NjYWxl
IHdpdGggMyBhcmd1bWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTUm90YXRlIHdp
dGggMSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NSb3RhdGUgd2l0aCA0
IGFyZ3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NTa2V3IHNlcmlhbGl6ZXMg
Y29ycmVjdGx5CitQQVNTIENTU1NrZXcgd2l0aCBZIHdoaWNoIGlzIDAgdmFsdWUgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKK1BBU1MgQ1NTU2tld1ggc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NT
U2tld1kgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTUGVyc3BlY3RpdmUgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKK0ZBSUwgQ1NTUGVyc3BlY3RpdmUgd2l0aCBuZWdhdGl2ZSBsZW5ndGggc2Vy
aWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInBlcnNwZWN0aXZlKGNh
bGMoLTFweCkpIiBidXQgZ290ICJwZXJzcGVjdGl2ZSgtMXB4KSIKK1BBU1MgQ1NTVHJhbnNmb3Jt
VmFsdWUgd2l0aCBhIHNpbmdsZSB0cmFuc2Zvcm0gc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1Mg
Q1NTVHJhbnNmb3JtVmFsdWUgd2l0aCBtdWx0aXBsZSB0cmFuc2Zvcm1zIHNlcmlhbGl6ZXMgY29y
cmVjdGx5CitQQVNTIENTU1RyYW5zZm9ybVZhbHVlIGNvbnRhaW5pbmcgQ1NTTWF0aFZhbHVlcyBz
ZXJpYWxpemVzIGNvcnJlY3RseQogRkFJTCBDU1NNYXRyaXhDb21wb25lbnQgd2l0aCA2IGVsZW1l
bnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJtYXRyaXgo
MSwgMiwgMywgNCwgNSwgNikiIGJ1dCBnb3QgIiIKIEZBSUwgQ1NTTWF0cml4Q29tcG9uZW50IHdp
dGggMTYgZWxlbWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIm1hdHJpeDNkKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2KSIgYnV0IGdvdCAiIgotRkFJTCBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRoIHVwZGF0
ZWQgaXMyRCBzZXJpYWxpemVzIGFzIDJEIHRyYW5zZm9ybXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInRyYW5zbGF0ZSgxcHgsIDJweCkgcm90YXRlKDkwZGVnKSBzY2FsZSgxLCAyKSIgYnV0IGdv
dCAiIgorUEFTUyBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRoIHVwZGF0ZWQgaXMyRCBzZXJpYWxpemVz
IGFzIDJEIHRyYW5zZm9ybXMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457930</attachid>
            <date>2022-04-19 12:37:05 -0700</date>
            <delta_ts>2022-04-19 18:14:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239483-20220419123704.patch</filename>
            <type>text/plain</type>
            <size>55174</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkZmJlMzg4N2I4NmQ3
NWYyN2ViM2UyNDQ0MzE4OGE0OWI3ODgyNC4uY2M2ODI2MjM3M2ZjNGVmM2RiNjNkMzVjZmI0Njdh
ZDQwZDVlOTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMi0wNC0xOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBtb3N0IG9mIENTUyB0eXBlZCBPTSBvYmplY3Qgc3RyaW5naWZpZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFuIG9mZi1ieS1k
ZWZhdWx0IGV4cGVyaW1lbnRhbCBmZWF0dXJlLgorICAgICAgICBDb3ZlcmVkIGJ5IHdlYiBwbGF0
Zm9ybSB0ZXN0cy4KKworICAgICAgICAqIGNzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NLZXl3b3JkVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6Cisg
ICAgICAgICogY3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVlLmg6CisgICAgICAgICogY3NzL3R5
cGVkb20vQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUltYWdlVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUltYWdlVmFsdWU6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWU6OnRvU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWU6OnNlcmlhbGl6ZSBjb25z
dCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NVbml0VmFs
dWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVl
Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NVbnBhcnNlZFZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5wYXJzZWRWYWx1ZTo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0
aEludmVydDo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhJbnZlcnQuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhN
YXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6c2VyaWFsaXplIGNvbnN0KToK
KyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaDoKKyAgICAgICAgKiBj
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0aE1pbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhNaW4uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE5lZ2F0ZTo6c2VyaWFsaXplIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU01hdGhQcm9kdWN0OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6c2Vy
aWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0u
aDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljQXJyYXk6OmZvckVhY2gpOgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5Lmg6CisgICAgICAgICogY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNYXRyaXhDb21wb25lbnQ6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNYXRyaXhDb21wb25lbnQ6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdHJp
eENvbXBvbmVudDo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGVy
c3BlY3RpdmU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQZXJzcGVj
dGl2ZTo6dG9NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGVyc3BlY3RpdmU6OnRvU3Ry
aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
UGVyc3BlY3RpdmUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1JvdGF0ZTo6c2VyaWFsaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1JvdGF0ZTo6dG9NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUm90YXRlOjp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NTY2FsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTY2FsZTo6c2VyaWFsaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NjYWxlOjp0b01hdHJpeCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTY2FsZTo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NTa2V3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NrZXc6OnNlcmlhbGl6
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3Ojp0b01hdHJpeCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTa2V3Ojp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90
cmFuc2Zvcm0vQ1NTU2tld1guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1g6OnNlcmlh
bGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3WDo6dG9NYXRyaXgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2tld1g6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1guaDoKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1k6
OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3WTo6dG9NYXRyaXgp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1k6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1kuaDoKKyAgICAgICAgKiBj
c3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1RyYW5zZm9ybUNvbXBvbmVudDo6dG9TdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIGNzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVHJhbnNmb3JtVmFsdWU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAg
ICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmg6CisgICAgICAgICog
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUcmFuc2xhdGU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
cmFuc2xhdGU6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zbGF0ZTo6dG9T
dHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NUcmFuc2xhdGUuaDoKKwogMjAyMi0wNC0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBDU1NUcmFuc2Zvcm1WYWx1ZS5p
czJECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVlLmNwcApp
bmRleCBmZTIzNjFjNDk3MzVhOGFlOWNjMGE3MmVhODQyYzE3M2I2OGQ4MjdhLi5hM2I5NGU1Njky
YzBkOTk2MmU1MzBmYzI1ZTNmYTNjYmY0NjA0YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5jcHAKQEAgLTY3LDYgKzY3LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENTU0tleXdvcmRWYWx1ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
ICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIENTU0tleXdvcmRWYWx1ZTo6c2VyaWFsaXplKFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGJvb2wsIGJvb2wpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6
Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8ja2V5d29yZHZhbHVlLXNlcmlh
bGl6YXRpb24KKyAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVlKTsKK30KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NL
ZXl3b3JkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1
ZS5oCmluZGV4IGE2OGJlZWI1ZDc4N2NlY2MyNmUwOTIwZjQwZWMzNWM0ZGRlNzgwYWQuLjgzMWRl
OWE4MzQ4NjNmODBjMTVlNWE2YWZmNTBlNzNlMmFjOTlhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPENTU0tleXdvcmRWYWx1ZT4gcmVjdGlmeUtleXdvcmRpc2goQ1NTS2V5
d29yZGlzaCYmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVy
JiwgYm9vbCwgYm9vbCkgY29uc3QgZmluYWw7CisKICAgICBleHBsaWNpdCBDU1NLZXl3b3JkVmFs
dWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKSB7IH0KICAg
ICBTdHJpbmcgbV92YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuY3BwCmluZGV4IDhjZmIwZTE3NDYyZWEx
ZWE0ZjVjZDBlNTc4NjkxN2U4NmY0ZDVmY2UuLjQwN2I5M2YyM2I3MTYxZjA5YjYzNmI3ZTMzYjc3
NDAzNDRlNmJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU09N
VmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNwcApAQCAtNjEsMTggKzYxLDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6c2V0VmFyaWFibGUo
U3RyaW5nJiYgdmFyaWFibGUpCiBTdHJpbmcgQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjp0
b1N0cmluZygpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIHNlcmlh
bGl6ZShidWlsZGVyKTsKLSAgICAKKyAgICBzZXJpYWxpemUoYnVpbGRlciwgZmFsc2UsIGZhbHNl
KTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi12b2lkIENTU09NVmFyaWFi
bGVSZWZlcmVuY2VWYWx1ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0
Cit2b2lkIENTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxk
ZXImIGJ1aWxkZXIsIGJvb2wgbmVzdGVkLCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3QK
IHsKICAgICBidWlsZGVyLmFwcGVuZCgidmFyKCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fdmFy
aWFibGUpOwogICAgIGlmIChtX2ZhbGxiYWNrKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIs
ICIpOwotICAgICAgICBtX2ZhbGxiYWNrLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAgIG1f
ZmFsbGJhY2stPnNlcmlhbGl6ZShidWlsZGVyLCBuZXN0ZWQsIHdpdGhvdXRQYXJlbnRoZXNlcyk7
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCmluZGV4
IDMyNGU3OTdmNzhlNDQ3NDQ3NDQ5MjE5MWI2ODk0NTY3MmQ2NmNlYzguLjgyMmJiNTVkN2YzNTFj
Y2U0ZTE3ZjFkNTE2Y2I1Yjc1YTI0MjVmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oCkBAIC00Myw3ICs0
Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYXJpYWJsZShT
dHJpbmcmJik7CiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYpIGNvbnN0OworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxk
ZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0OwogCiAgICAg
Y29uc3QgU3RyaW5nJiB2YXJpYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFyaWFibGU7IH0KICAg
ICBDU1NVbnBhcnNlZFZhbHVlKiBmYWxsYmFjaygpIHsgcmV0dXJuIG1fZmFsbGJhY2suZ2V0KCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUu
Y3BwCmluZGV4IDUzMmI0OGNkMWViNmIwMDc4ZTNjMjkwYmE1MDBjYTQ5NGUyZmZjNTguLjlhM2Yx
YzBkZTEyM2MzY2UwZTUwYjM2OTk0YmRkNGZiMjE4ZmM4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVJbWFnZVZhbHVlLmNwcApAQCAtNDYsNyArNDYsMTUg
QEAgQ1NTU3R5bGVJbWFnZVZhbHVlOjpDU1NTdHlsZUltYWdlVmFsdWUoUmVmPENTU0ltYWdlVmFs
dWU+JiYgY3NzVmFsdWUsIERvY3VtZW50KgogewogfQogCi1Eb2N1bWVudCogQ1NTU3R5bGVJbWFn
ZVZhbHVlOjpkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KK3Zv
aWQgQ1NTU3R5bGVJbWFnZVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwg
Ym9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBidWlsZGVyLmFwcGVuZChtX2Nzc1ZhbHVlLT5jc3NU
ZXh0KCkpOworfQorCitEb2N1bWVudCogQ1NTU3R5bGVJbWFnZVZhbHVlOjpkb2N1bWVudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5
bGVJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdl
VmFsdWUuaAppbmRleCA4YmQ2ZmViZGFkMzYyZDQ1NzAxYWEyZTdhMDFmOTY1ZjA3ZTVhODZjLi4w
YTYyMmRlNjBkYTAwYTE5N2JjN2RiZDNmYjUwMGE4NWZjMTM0MTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1N0eWxlSW1hZ2VWYWx1
ZShXVEZNb3ZlKGNzc1ZhbHVlKSwgZG9jdW1lbnQpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nzc1ZhbHVlLT5jc3NUZXh0KCk7IH0KKyAg
ICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0aG91
dFBhcmVudGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENhY2hlZEltYWdlKiBpbWFnZSgpIHsg
cmV0dXJuIG1fY3NzVmFsdWUtPmNhY2hlZEltYWdlKCk7IH0KICAgICBEb2N1bWVudCogZG9jdW1l
bnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0
eWxlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5j
cHAKaW5kZXggYjg4MjQxNWE0YjZmN2MxNTFjMDQwZTk1ZTI0YmNiMmViMmM5OWI1NC4uZjg4MWY4
MzQ0MzMyMTU5ZTdlYTgyMTVkOTVlMDQwMjk1NWVjM2U5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5jcHAKQEAgLTgyLDEzICs4MiwxNyBAQCBDU1NTdHls
ZVZhbHVlOjpDU1NTdHlsZVZhbHVlKFJlZlB0cjxDU1NWYWx1ZT4mJiBjc3NWYWx1ZSwgU3RyaW5n
JiYgcHJvcGVydHkpCiB7CiB9CiAKLQogU3RyaW5nIENTU1N0eWxlVmFsdWU6OnRvU3RyaW5nKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcHJvcGVydHlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7Ci0gICAgCi0gICAgcmV0dXJuIG1fcHJvcGVydHlWYWx1ZS0+Y3NzVGV4dCgpOwor
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBzZXJpYWxpemUoYnVpbGRlcik7CisgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBDU1NTdHlsZVZhbHVlOjpzZXJp
YWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBp
ZiAobV9wcm9wZXJ0eVZhbHVlKQorICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb3BlcnR5VmFs
dWUtPmNzc1RleHQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuaAppbmRleCAxM2JiYzdkNjVhMWZkYmU1MzYw
MjExYTg2MWUzNGE1ZTAzNzg4N2Y4Li44ZmVmMTM3Y2VlNjkzY2Y5NWI5OGIwYzRmMzBkYzU1MDk4
ODAwZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oCkBA
IC0xMDIsNyArMTAyLDggQEAgaW5saW5lIGJvb2wgaXNDU1NNYXRoVmFsdWUoQ1NTU3R5bGVWYWx1
ZVR5cGUgdHlwZSkKIGNsYXNzIENTU1N0eWxlVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NT
dHlsZVZhbHVlPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChDU1NTdHlsZVZhbHVlKTsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0OworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJvb2wgbmVzdGVkID0gZmFsc2UsIGJvb2wg
d2l0aG91dFBhcmVudGhlc2VzID0gZmFsc2UpIGNvbnN0OwogICAgIHZpcnR1YWwgfkNTU1N0eWxl
VmFsdWUoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5
cGUoKSBjb25zdCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTU3R5bGVWYWx1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKaW5kZXggYjNiZDcy
ZDJlNTRhOWVkYTBkMDY5YTM2ODIxZWMwZThkMTQ0NTRhYi4uNDkyYjdhMzg0ZDczNmJkYWJiZGJm
ZWNkNjU2OGEwMGI3ODEwYmNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTVW5pdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NV
bml0VmFsdWUuY3BwCkBAIC0xMTEsNiArMTExLDEyIEBAIFN0cmluZyBDU1NVbml0VmFsdWU6OnVu
aXRTZXJpYWxpemF0aW9uKCkgY29uc3QKICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKG1fdW5pdCk7CiB9CiAKK3ZvaWQgQ1NTVW5pdFZhbHVlOjpzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICBidWlsZGVy
LmFwcGVuZChGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0ZShtX3ZhbHVlKSk7CisgICAgYnVpbGRl
ci5hcHBlbmQodW5pdFNlcmlhbGl6YXRpb24oKSk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxDU1NV
bml0VmFsdWU+PiBDU1NVbml0VmFsdWU6OmNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdW5pdCkKIHsKICAgICBhdXRvIHBhcnNlZFVuaXQgPSBwYXJzZVVuaXQodW5pdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCmluZGV4IDliZDk1MWJkZDZhZTlh
M2M1ZWI4NWQ3M2I0YzU5YzhjM2Y1NTQzOGEuLmE4YWM4NDA2OWJmZTEyZDU2MWMyOTllODFmNDgz
MGRhZGE0Yzg4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1Vu
aXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5o
CkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENT
U1VuaXRWYWx1ZT4+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCk7CiAg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIENTU1VuaXRU
eXBlIHVuaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCB1bml0
KSk7IH0KIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1ha2VT
dHJpbmcoRm9ybWF0dGVkQ1NTTnVtYmVyOjpjcmVhdGUobV92YWx1ZSksIHVuaXRTZXJpYWxpemF0
aW9uKCkpOyB9CisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGJvb2wgbmVzdGVk
LCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykgY29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgdm9pZCBzZXRWYWx1ZShkb3VibGUg
dmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL0NTU1VucGFyc2VkVmFsdWUuY3BwCmluZGV4IGQ3ODA4ODkwZGQ0MzljZDA2OWNkOWE1ZTUz
ZWQ4MjM2ZWZjZWJhYzEuLjhhMjQyYjZlMTllMTI5NWU1NGQyZDNhZjFmN2M5MDE0YTg5NDJiNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuY3Bw
CkBAIC0xMTksMjEgKzExOSwxMyBAQCBDU1NVbnBhcnNlZFZhbHVlOjpDU1NVbnBhcnNlZFZhbHVl
KFZlY3RvcjxDU1NVbnBhcnNlZFNlZ21lbnQ+JiYgc2VnbWVudHMpCiB7CiB9CiAKLVN0cmluZyBD
U1NVbnBhcnNlZFZhbHVlOjp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgIHNlcmlhbGl6ZShidWlsZGVyKTsKLSAgICAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwotfQotCi12b2lkIENTU1VucGFyc2VkVmFsdWU6OnNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAordm9pZCBDU1NVbnBhcnNlZFZhbHVlOjpzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9vbCBuZXN0ZWQsIGJvb2wgd2l0aG91dFBhcmVu
dGhlc2VzKSBjb25zdAogewogICAgIGZvciAoYXV0byYgc2VnbWVudCA6IG1fc2VnbWVudHMpIHsK
ICAgICAgICAgc3RkOjp2aXNpdChXVEY6Om1ha2VWaXNpdG9yKFsmXSAoY29uc3QgU3RyaW5nJiB2
YWx1ZSkgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUpOwogICAgICAgICB9LCBb
Jl0gKGNvbnN0IFJlZlB0cjxDU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWU+JiB2YWx1ZSkgewot
ICAgICAgICAgICAgdmFsdWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgICAgIHZhbHVl
LT5zZXJpYWxpemUoYnVpbGRlciwgbmVzdGVkLCB3aXRob3V0UGFyZW50aGVzZXMpOwogICAgICAg
ICB9KSwgc2VnbWVudCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTVW5wYXJzZWRWYWx1ZS5oCmluZGV4IGFhZTljMDUwOWRkMWZmNGFiMzMzOGQ4ZDIyYjI4Nzk3
NWE5M2M3MjYuLjZiZDQxYWQ2NjNmNjI4Y2I5NjkwODhmNTU1ZDU4Y2RkZDkxNDgwZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmgKQEAgLTQ0LDgg
KzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJzZWRWYWx1ZT4gY3JlYXRl
KFZlY3RvcjxDU1NVbnBhcnNlZFNlZ21lbnQ+JiYpOwogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJz
ZWRWYWx1ZT4gY3JlYXRlKENTU1BhcnNlclRva2VuUmFuZ2UpOwogCi0gICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNv
bnN0OworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9v
bCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0IGZpbmFsOwogICAgIHNpemVfdCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsgfQogICAgIAogICAgIEV4Y2VwdGlvbk9y
PENTU1VucGFyc2VkU2VnbWVudD4gaXRlbShzaXplX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKaW5kZXggNTI0YjdmNzAx
YmM4ZTdhZTlkMzg2N2NhYWVhMjA3ZDgwNDFkMDc1NC4uODE3MTNmNTY4OGUwYTE0Njk3NTBkOGM1
ZTQ0OTllNmY2Y2M2ODVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxF
KENTU19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTcyLDYgKzczLDE3IEBAIENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZlcnQoQ1NTTnVtYmVy
aXNoJiYgbnVtYmVyaXNoKQogewogfQogCit2b2lkIENTU01hdGhJbnZlcnQ6OnNlcmlhbGl6ZShT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVz
ZXMpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jY2FsYy1zZXJpYWxpemF0aW9uCisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5lc3RlZCA/ICIoIiA6ICJjYWxjKCIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCIxIC8gIik7CisgICAgbV92YWx1ZS0+c2VyaWFsaXplKGJ1aWxkZXIsIG5l
c3RlZCwgd2l0aG91dFBhcmVudGhlc2VzKTsKKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aEludmVydC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoSW52ZXJ0LmgKaW5kZXggY2NlMGFkMTAxZDBlODJiNDFiNmM0NDllYmQ1ZmUxMjk2Nzg4
ZDY5ZC4uOWRmMmQzZjRlZmRlMjQ4NDYyN2FmYmI4Y2Y2ZTRmN2M2MDdkM2M1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKQEAg
LTM2LDEwICszNiwxMiBAQCBjbGFzcyBDU1NNYXRoSW52ZXJ0IGZpbmFsIDogcHVibGljIENTU01h
dGhWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoSW52ZXJ0PiBjcmVhdGUo
Q1NTTnVtYmVyaXNoJiYpOwogICAgIENTU051bWVyaWNWYWx1ZSYgdmFsdWUoKSB7IHJldHVybiBt
X3ZhbHVlLmdldCgpOyB9Ci0gICAgCisgICAgY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBDU1NNYXRo
T3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0
b3I6OkludmVydDsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aEludmVydDsgfQorICAgIHZvaWQg
c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50
aGVzZXMpIGNvbnN0IGZpbmFsOwogCiAgICAgQ1NTTWF0aEludmVydChDU1NOdW1iZXJpc2gmJik7
CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbV92YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguY3BwCmluZGV4IDNmMzRjNWE5YjZiZTZm
MWU2MTc3OGVjOGJmOTU1OTRhM2U4ZjM3MDEuLjA2YTdjNWMzNjNmMDg5MTczODgwYzAzYjAxMGRj
YzdhZGQxOTBhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aE1heC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoTWF4LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw2ICs1
MiwyMCBAQCBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhNYXg6OnZhbHVlcygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwogfQogCit2b2lkIENTU01hdGhNYXg6OnNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBib29sLCBib29sIHdpdGhvdXRQYXJlbnRoZXNl
cykgY29uc3QKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5
cGVkLW9tLyNjYWxjLXNlcmlhbGl6YXRpb24KKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIm1heCgiKTsKKyAgICBtX3ZhbHVlcy0+Zm9yRWFjaChb
Jl0oYXV0byYgbnVtZXJpY1ZhbHVlLCBib29sIGZpcnN0KSB7CisgICAgICAgIGlmICghZmlyc3Qp
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbnVtZXJpY1ZhbHVl
LnNlcmlhbGl6ZShidWlsZGVyLCB0cnVlLCB0cnVlKTsKKyAgICB9KTsKKyAgICBpZiAoIXdpdGhv
dXRQYXJlbnRoZXNlcykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWF4LmgKaW5kZXggODk4N2RmY2Q4Y2QyMDgxN2U1MTVhNjgwYTY5
YzgwNzM1MDk4YmRlMC4uOTI4OWViM2Y5NWJiNDRkMWRmNjdlMzk4NzRkNTAxM2NhZjQyZmMxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmgK
QEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3Ig
Z2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6Ok1heDsg
fQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBD
U1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aE1heDsgfQorICAgIHZvaWQgc2VyaWFsaXplKFN0cmlu
Z0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0IGZp
bmFsOwogCiAgICAgQ1NTTWF0aE1heChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAg
IENTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCmluZGV4IGJmMzFj
OTA2MGZlYWRlMjY1ODU4NmJjNWQ4YzVhMzhiMWZmZDc1YzIuLjU3MTkyNzYxMjE1ODJkYThiMjFi
ZDRjY2NkNTViM2QxYmNjMGYyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcApAQCAtNTEsNiArNTEsMjAgQEAgY29uc3QgQ1NTTnVt
ZXJpY0FycmF5JiBDU1NNYXRoTWluOjp2YWx1ZXMoKSBjb25zdAogICAgIHJldHVybiBtX3ZhbHVl
cy5nZXQoKTsKIH0KIAordm9pZCBDU1NNYXRoTWluOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYg
YnVpbGRlciwgYm9vbCwgYm9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0Cit7CisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY2FsYy1zZXJpYWxp
emF0aW9uCisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJtaW4oIik7CisgICAgbV92YWx1ZXMtPmZvckVhY2goWyZdKGF1dG8mIG51bWVyaWNWYWx1
ZSwgYm9vbCBmaXJzdCkgeworICAgICAgICBpZiAoIWZpcnN0KQorICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiwgIik7CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxpemUoYnVpbGRlciwg
dHJ1ZSwgdHJ1ZSk7CisgICAgfSk7CisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhNaW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1p
bi5oCmluZGV4IGJkZDY0NDJmMjJmZTJkZmQ3OWM3M2FmMzgzZjU4NjdmOWZhODFlNjkuLjRiOGU1
YTNhOGIzOGRmMDI4YWI1YjllMjljNWU3ODE5YTBlZjY5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCkBAIC00Myw2ICs0Myw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpNaW47IH0KICAgICBDU1NTdHlsZVZhbHVl
VHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNT
U01hdGhNaW47IH0KKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0
ZWQsIGJvb2wgd2l0aG91dFBhcmVudGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhN
aW4oRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBDU1NNYXRoTWluKFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcAppbmRleCAwYWI1ZjY0MTBkMzQxMzEzNWRi
NGZlMjE3YTNkMGI3NjdjNjliNGY2Li5lNzg5MDViMTc5NGEwOWEyYTAwMzg4NzA5ZDkzZjEyOWVj
ZDM2MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhOZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE5lZ2F0ZS5jcHAKQEAgLTU0LDEwICs1NCwxNSBAQCBDU1NNYXRoTmVnYXRlOjpDU1NN
YXRoTmVnYXRlKENTU051bWJlcmlzaCYmIG51bWJlcmlzaCkKIHsKIH0KIAotQ1NTTWF0aE5lZ2F0
ZTo6Q1NTTWF0aE5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQotICAgIDogQ1NT
TWF0aFZhbHVlKHZhbHVlLT50eXBlKCkpCi0gICAgLCBtX3ZhbHVlKFdURk1vdmUodmFsdWUpKQor
dm9pZCBDU1NNYXRoTmVnYXRlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgYm9v
bCBuZXN0ZWQsIGJvb2wgd2l0aG91dFBhcmVudGhlc2VzKSBjb25zdAogeworICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2NhbGMtc2VyaWFsaXphdGlv
bgorICAgIGlmICghd2l0aG91dFBhcmVudGhlc2VzKQorICAgICAgICBidWlsZGVyLmFwcGVuZChu
ZXN0ZWQgPyAiKCIgOiAiY2FsYygiKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnLScpOworICAgIG1f
dmFsdWUtPnNlcmlhbGl6ZShidWlsZGVyLCBuZXN0ZWQsIHdpdGhvdXRQYXJlbnRoZXNlcyk7Cisg
ICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmgKaW5kZXggOTlmM2NkY2UzZThmYjE4Yjk3
YzM3ZjRlMzc1ZmI2MGE4Y2IxN2E4Ni4uODBlZTliMTRkZmI1ZjdlZTg2MDQwYTM3ODY1Yjg3YzBj
OTIyM2VlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoTmVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoTmVnYXRlLmgKQEAgLTM5LDEzICszOSwxNCBAQCBjbGFzcyBDU1NNYXRoTmVnYXRlIGZp
bmFsIDogcHVibGljIENTU01hdGhWYWx1ZSB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJncz4gc3RhdGljIFJlZjxDU1NNYXRoTmVnYXRlPiBjcmVhdGUoQXJncyYmLi4uIGFy
Z3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aE5lZ2F0ZShzdGQ6OmZvcndhcmQ8QXJn
cz4oYXJncykuLi4pKTsgfQogICAgIENTU051bWVyaWNWYWx1ZSYgdmFsdWUoKSB7IHJldHVybiBt
X3ZhbHVlLmdldCgpOyB9Ci0gICAgCisgICAgY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBDU1NNYXRo
T3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0
b3I6Ok5lZ2F0ZTsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aE5lZ2F0ZTsgfQorICAgIHZvaWQg
c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3aXRob3V0UGFyZW50
aGVzZXMpIGNvbnN0IGZpbmFsOwogCiAgICAgQ1NTTWF0aE5lZ2F0ZShDU1NOdW1iZXJpc2gmJik7
Ci0gICAgQ1NTTWF0aE5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmKTsKICAgICBSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBtX3ZhbHVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcAppbmRleCA1OGI2MzAwNTYyZGYw
NGJhMDQ1YWIwZWI3YWYwNDk3MjM3MjMzNTcwLi41YzE4ZjVmY2UzNmUxNjk1OGZkMDUyMTkzOGU1
Yzg0ZDU5MzIyNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhQcm9kdWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcApAQCAtODgsNiArODgsMjYgQEAgQ1NTTWF0aFByb2R1
Y3Q6OkNTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzLCBD
U1NOdW1lcmljVHkKIHsKIH0KIAordm9pZCBDU1NNYXRoUHJvZHVjdDo6c2VyaWFsaXplKFN0cmlu
Z0J1aWxkZXImIGJ1aWxkZXIsIGJvb2wgbmVzdGVkLCBib29sIHdpdGhvdXRQYXJlbnRoZXNlcykg
Y29uc3QKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVk
LW9tLyNjYWxjLXNlcmlhbGl6YXRpb24KKyAgICBpZiAoIXdpdGhvdXRQYXJlbnRoZXNlcykKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQobmVzdGVkID8gIigiIDogImNhbGMoIik7CisgICAgbV92YWx1
ZXMtPmZvckVhY2goWyZdKGF1dG8mIG51bWVyaWNWYWx1ZSwgYm9vbCBmaXJzdCkgeworICAgICAg
ICBpZiAoIWZpcnN0KSB7CisgICAgICAgICAgICBpZiAoYXV0byogbWF0aE5lZ2F0ZSA9IGR5bmFt
aWNEb3duY2FzdDxDU1NNYXRoSW52ZXJ0PihudW1lcmljVmFsdWUpKSB7CisgICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiAvICIpOworICAgICAgICAgICAgICAgIG1hdGhOZWdhdGUtPnZh
bHVlKCkuc2VyaWFsaXplKGJ1aWxkZXIsIHRydWUsIHdpdGhvdXRQYXJlbnRoZXNlcyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIiAqICIpOworICAgICAgICB9CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxpemUo
YnVpbGRlciwgdHJ1ZSwgd2l0aG91dFBhcmVudGhlc2VzKTsKKyAgICB9KTsKKyAgICBpZiAoIXdp
dGhvdXRQYXJlbnRoZXNlcykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAppbmRleCA4ZWQ2MDVmMzUzYmEzM2U4
NTdmYmFkMzBkNzllOWEzNzE1NGY0ZTM0Li45OTRiZDVhMDAzZDM1MjUxNTY0ZmJhNWZmNzM5YmM0
NmI2NDI2OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhQcm9kdWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoUHJvZHVjdC5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NT
TWF0aE9wZXJhdG9yOjpQcm9kdWN0OyB9CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NNYXRoUHJvZHVjdDsg
fQorICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBib29sIG5lc3RlZCwgYm9vbCB3
aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0OwogCiAgICAgQ1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxDU1NOdW1lcmlj
QXJyYXk+IG1fdmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoU3VtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFN1bS5jcHAKaW5kZXggNTEwZDI2ZTljNzdiMGYxZmFlYmZiMjRkNmI3NGNkMDRj
ZTEzMTdjNS4uMDEzNDc0YzQyNWIzNzg3MTQ0N2Y1N2VmN2M5ODdhZDA3YzBjMzU4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwCkBA
IC05MSw2ICs5MSwyNiBAQCBDU1NNYXRoU3VtOjpDU1NNYXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBlKQogewogfQogCit2b2lkIENT
U01hdGhTdW06OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBib29sIG5lc3RlZCwg
Ym9vbCB3aXRob3V0UGFyZW50aGVzZXMpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY2FsYy1zZXJpYWxpemF0aW9uCisgICAgaWYg
KCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5lc3RlZCA/ICIo
IiA6ICJjYWxjKCIpOworICAgIG1fdmFsdWVzLT5mb3JFYWNoKFsmXShhdXRvJiBudW1lcmljVmFs
dWUsIGJvb2wgZmlyc3QpIHsKKyAgICAgICAgaWYgKCFmaXJzdCkgeworICAgICAgICAgICAgaWYg
KGF1dG8qIG1hdGhOZWdhdGUgPSBkeW5hbWljRG93bmNhc3Q8Q1NTTWF0aE5lZ2F0ZT4obnVtZXJp
Y1ZhbHVlKSkgeworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgLSAiKTsKKyAgICAg
ICAgICAgICAgICBtYXRoTmVnYXRlLT52YWx1ZSgpLnNlcmlhbGl6ZShidWlsZGVyLCB0cnVlLCB3
aXRob3V0UGFyZW50aGVzZXMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgKyAiKTsKKyAgICAgICAgfQorICAgICAg
ICBudW1lcmljVmFsdWUuc2VyaWFsaXplKGJ1aWxkZXIsIHRydWUsIHdpdGhvdXRQYXJlbnRoZXNl
cyk7CisgICAgfSk7CisgICAgaWYgKCF3aXRob3V0UGFyZW50aGVzZXMpCisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0u
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4
IGQ1MjM3YmJmZTU0ZTRkZjBiNDc2NDIwNWZlYTY0ZDVmY2E2ZmNlYjkuLmIxY2I4ZGVhNTU1YTMw
ZTA4ODFkYjBlODU1MGJkMzFhZjU1NjI3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpTdW07IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRU
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhT
dW07IH0KKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCBuZXN0ZWQsIGJv
b2wgd2l0aG91dFBhcmVudGhlc2VzKSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhTdW0oVmVj
dG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxDU1NO
dW1lcmljQXJyYXk+IG1fdmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCmluZGV4IGY5NzllYWJjODgzMmU1MzBm
YTUzOWNhNTM4OTQ3ZWE4ZTVmM2FiNzUuLjIyOTc3NjM1MDQyODEzZWVkODU1MjkxNzcxMzU4YTg4
Mzc2NDEwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTnVtZXJpY0FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU051bWVyaWNBcnJheS5jcHAKQEAgLTY1LDYgKzY1LDEyIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljQXJyYXk6Oml0ZW0oc2l6ZV90IGluZGV4KQog
ICAgIHJldHVybiBtX2FycmF5W2luZGV4XS5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgQ1NTTnVtZXJp
Y0FycmF5Ojpmb3JFYWNoKEZ1bmN0aW9uPHZvaWQoY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiwgYm9v
bCBmaXJzdCk+IGZ1bmN0aW9uKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hcnJh
eS5zaXplKCk7IGkrKykKKyAgICAgICAgZnVuY3Rpb24obV9hcnJheVtpXSwgIWkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggYjg2YTliMmVlMmM2
OGJkZTM0YzkyMzkwOGFhMTJkZTU3ZDVkNzc2Yy4uMThiMGE1NGNkODAzNDEwN2RmZGNmMTdlMGRm
YjYyMDQwYThjYmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNBcnJheS5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICBz
aXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheS5zaXplKCk7IH07CiAgICAgRXhj
ZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGl0ZW0oc2l6ZV90IGluZGV4KTsKICAgICBj
b25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBhcnJheSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXJyYXk7IH0KKyAgICB2b2lkIGZvckVhY2goRnVuY3Rpb248dm9pZChjb25zdCBDU1NOdW1l
cmljVmFsdWUmLCBib29sIGZpcnN0KT4pOwogCiBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gbV9hcnJheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKaW5kZXggNmI5NjVk
ZjI4M2M4OWQwNDdlNzBhYzdmMjFlYWRlMzIwMjJmN2FlZC4uYTM4ZGFhN2Q0MWI4M2I3MmExY2Nh
ZmUxNDA1Y2U0ZGU0YWM2ZTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKQEAgLTUyLDE1ICs1
MiwxNCBAQCBDU1NNYXRyaXhDb21wb25lbnQ6OkNTU01hdHJpeENvbXBvbmVudChSZWY8RE9NTWF0
cml4UmVhZE9ubHk+JiYgbWF0cml4LCBzdGQ6Om9wdAogewogfQogCi0vLyBGSVhNRTogRml4IGFs
bCB0aGUgZm9sbG93aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NNYXRyaXhDb21w
b25lbnQ6OnRvU3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTTWF0cml4Q29tcG9uZW50OjpzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KIAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+
IENTU01hdHJpeENvbXBvbmVudDo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NNYXRyaXhDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NNYXRyaXhDb21wb25lbnQuaAppbmRleCAwODU3ZWZjMTcyYzA5MDRmNmMxNTljOTYxODA3
OWFkMWEzMjkxZGQyLi4zNTZlMmE0M2QzMzc0YzY4YmQwNGQwOTE0ODA0MjFlNTNjODdmZjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4
Q29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NT
U01hdHJpeENvbXBvbmVudC5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICAKICAgICBE
T01NYXRyaXgmIG1hdHJpeCgpOwogICAgIHZvaWQgc2V0TWF0cml4KFJlZjxET01NYXRyaXg+JiYp
OwotICAgIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBz
ZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJl
ZjxET01NYXRyaXg+PiB0b01hdHJpeCgpIGZpbmFsOwogICAgIAogICAgIENTU1RyYW5zZm9ybVR5
cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1RyYW5zZm9ybVR5cGU6Ok1hdHJp
eENvbXBvbmVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1BlcnNwZWN0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NQZXJzcGVjdGl2ZS5jcHAKaW5kZXggOTk4MTg4NzRiMDUxZWIyODM2MzE0M2Q2
YjQ0NzZlMzhiZWYwOTAxNi4uZGFmOTYyZDkzYTFhYmJjZGUzMzA4ZmMxMzE3NmU5YjY2ZjhjMTkx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Bl
cnNwZWN0aXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0v
Q1NTUGVyc3BlY3RpdmUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaWYgRU5BQkxFKENTU19UWVBF
RF9PTSkKIAogI2luY2x1ZGUgIkNTU0tleXdvcmRWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1VuaXRW
YWx1ZS5oIgogI2luY2x1ZGUgIkRPTU1hdHJpeC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTg4LDE1ICs4OSwzMiBAQCB2
b2lkIENTU1BlcnNwZWN0aXZlOjpzZXRJczJEKGJvb2wpCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc3BlcnNwZWN0aXZlLWlzMmQgc2F5
cyB0byBkbyBub3RoaW5nIGhlcmUuCiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dp
bmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1BlcnNwZWN0aXZlOjp0b1N0cmluZygp
IGNvbnN0Cit2b2lkIENTU1BlcnNwZWN0aXZlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVp
bGRlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICAvLyBodHRwczov
L2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNzZXJpYWxpemUtYS1jc3NwZXJz
cGVjdGl2ZQorICAgIGJ1aWxkZXIuYXBwZW5kKCJwZXJzcGVjdGl2ZSgiKTsKKyAgICBXVEY6OnN3
aXRjaE9uKG1fbGVuZ3RoLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDU1NOdW1lcmljVmFs
dWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNE
b3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKTsgdW5pdFZhbHVlICYmIHVuaXRWYWx1
ZS0+dmFsdWUoKSA8IDAuMCkgeworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJjYWxj
KCIpOworICAgICAgICAgICAgICAgIHZhbHVlLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgdmFs
dWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgfSwgWyZdIChjb25zdCBTdHJpbmcmIHZh
bHVlKSB7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIH0sIFsm
XSAoY29uc3QgUmVmUHRyPENTU0tleXdvcmRWYWx1ZT4mIHZhbHVlKSB7CisgICAgICAgICAgICBp
ZiAoQ1NTU3R5bGVWYWx1ZSogc3R5bGVWYWx1ZSA9IHZhbHVlLmdldCgpKQorICAgICAgICAgICAg
ICAgIHN0eWxlVmFsdWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgfSk7CisgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IENTU1Bl
cnNwZWN0aXZlOjp0b01hdHJpeCgpCiB7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICBy
ZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0cml4KERPTU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0
aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3Rp
dmUuaAppbmRleCA3OGYxMTIwNDFmMzQ2NzFmODhjMjgwNmE1NzQyNjFhZGQ5MzIyMzY4Li40Mjkz
NGIzM2VkYTBmODhmMTIxYTkzMTI4ZTg3NDZlODVjYWEwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuaApAQCAtNDMs
OCArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3QgQ1NTUGVyc3BlY3RpdmVWYWx1ZSYg
bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRMZW5ndGgoQ1NTUGVyc3BlY3RpdmVWYWx1ZSk7Ci0gICAgCi0gICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikg
Y29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkg
ZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6UGVyc3BlY3RpdmU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKaW5kZXggMzYyNjdk
OTVmZDY2ODg5NGNlN2M3YWVjZWZkYzk5ZDU1MzRhOTI2OC4uNmIyYWE1Zjc0NmZiN2Y4OGI4NDZi
MTExY2YzNDc5M2VlMzk4YTAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKQEAgLTExNCwxNSArMTE0LDI1IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENTU1JvdGF0ZTo6c2V0QW5nbGUoUmVmPENTU051bWVyaWNWYWx1ZT4gYW5nbGUp
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotLy8gRklYTUU6IEZpeCBhbGwgdGhlIGZvbGxvd2luZyB2
aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTUm90YXRlOjp0b1N0cmluZygpIGNvbnN0Cit2
b2lkIENTU1JvdGF0ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzcm90YXRlCisgICAgYnVpbGRl
ci5hcHBlbmQoaXMyRCgpID8gInJvdGF0ZSgiIDogInJvdGF0ZTNkKCIpOworICAgIGlmICghaXMy
RCgpKSB7CisgICAgICAgIG1feC0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbV95LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBtX3otPnNlcmlhbGl6ZShidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgfQorICAgIG1fYW5nbGUtPnNlcmlh
bGl6ZShidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogfQogCiBFeGNlcHRpb25P
cjxSZWY8RE9NTWF0cml4Pj4gQ1NTUm90YXRlOjp0b01hdHJpeCgpCiB7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0cml4KERPTU1hdHJpeElu
aXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1JvdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3Jt
L0NTU1JvdGF0ZS5oCmluZGV4IGQ3MThmNTVlMzhlMWFjY2E3MTRkN2FkNTJiNjk4N2Y3NDRhMDI4
YTAuLmQwMzZjMjY0OTg4ZWNhNjJiZGU0OGJiYzYzYTMyNjdkZTQwMmRiNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRlLmgKQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFooQ1NTTnVtYmVyaXNo
KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbmdsZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPik7
CiAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1h
dHJpeD4+IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6Um90YXRlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmNwcApp
bmRleCAzOTY0NjE5YjRiYzc3NGUxNGQ2MjZiYWRiMDY3MTU4MDVjZGNlOTI5Li5lYmFmNzZiZWE2
MTBiN2JkNjg5YTk5MWFlMmE2OGI5YjcwNjYwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5jcHAKQEAgLTgwLDE1ICs4MCwyMyBAQCB2
b2lkIENTU1NjYWxlOjpzZXRaKENTU051bWJlcmlzaCB6KQogICAgIG1feiA9IENTU051bWVyaWNW
YWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKHopKTsKIH0KIAotLy8gRklYTUU6IEZpeCBh
bGwgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTU2NhbGU6OnRv
U3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTU2NhbGU6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBi
dWlsZGVyKSBjb25zdAogewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNzc3Nj
YWxlCisgICAgYnVpbGRlci5hcHBlbmQoaXMyRCgpID8gInNjYWxlKCIgOiAic2NhbGUzZCgiKTsK
KyAgICBtX3gtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsK
KyAgICBtX3ktPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBpZiAoIWlzMkQoKSkgeworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbV96LT5zZXJpYWxpemUoYnVpbGRlcik7
CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxE
T01NYXRyaXg+PiBDU1NTY2FsZTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NTY2FsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxl
LmgKaW5kZXggOTNmNmJjY2FkNmQwMzVmZjM3YTQ4ZTQ0NWVmYjM0MjJhZTBjNDNhMi4uZGNiYWUx
MjY1ZWUwMmVhY2JiN2ZmYTBhNjQzNWE4ZWY1MTIyZThiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xh
c3MgQ1NTU2NhbGUgOiBwdWJsaWMgQ1NTVHJhbnNmb3JtQ29tcG9uZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU1NjYWxlPj4gY3JlYXRlKENTU051bWJlcmlzaCB4
LCBDU1NOdW1iZXJpc2ggeSwgc3RkOjpvcHRpb25hbDxDU1NOdW1iZXJpc2g+IHopOwogCi0gICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5n
QnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiB0
b01hdHJpeCgpIGZpbmFsOwogCiAgICAgQ1NTTnVtYmVyaXNoIHgoKSBjb25zdCB7IHJldHVybiBt
X3gucHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5z
Zm9ybS9DU1NTa2V3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NTa2V3LmNwcAppbmRleCA3NmFhNzUzMDMzZWZhYzA0MzA4MzA1ZmQ4MGIwYzRlNTY4ZWQ5Yzdl
Li5mYTY5ZjYzMzk2ZTI0MjUwM2EzZmMyYWU0YThjNGRkZTkxN2I3ZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuY3BwCkBAIC01NSwxNSAr
NTUsMjEgQEAgQ1NTU2tldzo6Q1NTU2tldyhSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBheCwgUmVmPENT
U051bWVyaWNWYWx1ZT4gYXkpCiB7CiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dp
bmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1NrZXc6OnRvU3RyaW5nKCkgY29uc3QK
K3ZvaWQgQ1NTU2tldzo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzc2tldworICAgIGJ1aWxkZXIu
YXBwZW5kKCJza2V3KCIpOworICAgIG1fYXgtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBpZiAo
IWlzPENTU1VuaXRWYWx1ZT4obV9heSkgfHwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihtX2F5Lmdl
dCgpKS52YWx1ZSgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBt
X2F5LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBDU1NTa2V3Ojp0b01hdHJpeCgpCiB7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0
cml4KERPTU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NTa2V3LmgKaW5kZXggOTJjZGI2M2FjNjg4OGY1ZGZlZTJjNWY2MDEx
ZTZhOGNlZWRmYzNjNS4uYmIzOTQzN2Q2MWQ4N2E3NTE5YzdiNzAzYmFmNjQ5OGEzY2ZjMDRiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tldy5oCkBA
IC00NCw4ICs0NCw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldEF4KFJlZjxDU1NOdW1l
cmljVmFsdWU+IGF4KSB7IG1fYXggPSBXVEZNb3ZlKGF4KTsgfQogICAgIHZvaWQgc2V0QXkoUmVm
PENTU051bWVyaWNWYWx1ZT4gYXkpIHsgbV9heSA9IFdURk1vdmUoYXkpOyB9Ci0gICAgCi0gICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+
IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6U2tldzsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5jcHAKaW5kZXggNWE3
ZjU0ZjE5MTNjZTIxNjgwNWVjZWY4ODc1NjFlMDJhMDcyMzkzYS4uMmE0YmIyNzQxOTNmYzc3MWFh
NjQ4ZTA3YWZlZGUzMmQyZTI5ZWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1guY3BwCkBAIC01MywxNSArNTMsMTcgQEAgQ1NTU2tld1g6
OkNTU1NrZXdYKFJlZjxDU1NOdW1lcmljVmFsdWU+IGF4KQogewogfQogCi0vLyBGSVhNRTogRml4
IGFsbCB0aGUgZm9sbG93aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NTa2V3WDo6
dG9TdHJpbmcoKSBjb25zdAordm9pZCBDU1NTa2V3WDo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nz
c2tld3gKKyAgICBidWlsZGVyLmFwcGVuZCgic2tld1goIik7CisgICAgbV9heC0+c2VyaWFsaXpl
KGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJl
ZjxET01NYXRyaXg+PiBDU1NTa2V3WDo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NTa2V3WC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Nr
ZXdYLmgKaW5kZXggYjgxMTg1NjU5ZTMzMTYxNWVmNTdkNjAxNDk0YjgwMDg5ZDA1ZTBiNC4uZWVk
OTYyMDMyMDk0ZjlmNDNmOWQyNjdkMzZiNDc3NTNkODVjYTg5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmgKQEAgLTQxLDggKzQxLDggQEAg
cHVibGljOgogICAgIAogICAgIGNvbnN0IENTU051bWVyaWNWYWx1ZSYgYXgoKSBjb25zdCB7IHJl
dHVybiBtX2F4LmdldCgpOyB9CiAgICAgdm9pZCBzZXRBeChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBh
eCkgeyBtX2F4ID0gV1RGTW92ZShheCk7IH0KLSAgICAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBj
b25zdCBmaW5hbDsKKworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKICAgICBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsK
ICAgICAKICAgICBDU1NUcmFuc2Zvcm1UeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBDU1NUcmFuc2Zvcm1UeXBlOjpTa2V3WDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdZLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5jcHAKaW5kZXggNDY3N2JiZGJmMjQwZjE0ZDc0Y2Vl
YmQ1ZWU5NmM5NWVmMTJkNTI0ZC4uYWQzNWY2ZmFlZGY1ZWVjYmJlYzFiOWYxMDZlNTk4NWYxOGI4
Njk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NT
U1NrZXdZLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
U2tld1kuY3BwCkBAIC01MywxNSArNTMsMTcgQEAgQ1NTU2tld1k6OkNTU1NrZXdZKFJlZjxDU1NO
dW1lcmljVmFsdWU+IGF5KQogewogfQogCi0vLyBGSVhNRTogRml4IGFsbCB0aGUgZm9sbG93aW5n
IHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NTa2V3WTo6dG9TdHJpbmcoKSBjb25zdAor
dm9pZCBDU1NTa2V3WTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzc2tld3kKKyAgICBidWlsZGVy
LmFwcGVuZCgic2tld1koIik7CisgICAgbV9heS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBDU1NT
a2V3WTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgcmV0dXJu
IERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdZLmgKaW5kZXggNjQ3NmIz
OGZmZTM3ODA2MmNiNGYyZmI3MDljYTUzZWUwMzFmOTYwYi4uZDUxZTViOWIzM2RkNmZhZTkwYmM3
OTg1YjcxZjQ4NDIxNWFmZDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1NrZXdZLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
dHJhbnNmb3JtL0NTU1NrZXdZLmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogICAgIAogICAg
IGNvbnN0IENTU051bWVyaWNWYWx1ZSYgYXkoKSBjb25zdCB7IHJldHVybiBtX2F5LmdldCgpOyB9
CiAgICAgdm9pZCBzZXRBeShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBheSkgeyBtX2F5ID0gV1RGTW92
ZShheSk7IH0KLSAgICAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbDsKKworICAg
IHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRp
b25PcjxSZWY8RE9NTWF0cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsKICAgICAKICAgICBDU1NUcmFu
c2Zvcm1UeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NUcmFuc2Zvcm1UeXBl
OjpTa2V3WTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNm
b3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcAppbmRleCA5YzJkMDcyYTIxYWFk
ZmVjZmY5ZTdjMzJkZTczYzVjNWJlYmViNTU4Li5mYWVhNzk1ZjRmYzIwOTYwOGQ3MzBmNWM5ZWYy
NjkyNjNkMjNkZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFu
c2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcApAQCAtMzIsMTYgKzMy
LDE1IEBACiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCi0jaW5jbHVkZSAiRE9NTWF0cml4
LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTdHJpbmcgQ1NTVHJhbnNmb3JtQ29tcG9uZW50Ojp0b1N0cmluZygpIGNv
bnN0CiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudC4KLSAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgc2VyaWFsaXplKGJ1aWxkZXIpOwor
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NU
cmFuc2Zvcm1Db21wb25lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuaAppbmRleCAwZjQ3ZTNlMmVhY2JhYzQ3YzllNDFiYWZj
ZGZiY2ZhOTk1YjNlNjdkLi5kMmRlMDM0Y2ViMWFlNDZkOTQ5MGRmMGI4YWE2MjNkMjI1MDgwZjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJh
bnNmb3JtQ29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNm
b3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5oCkBAIC01Myw3ICs1Myw4IEBAIHByb3RlY3RlZDoK
ICAgICBDU1NUcmFuc2Zvcm1Db21wb25lbnQoSXMyRCBpczJEKQogICAgICAgICA6IG1faXMyRChp
czJEKSB7IH0KIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0Owor
ICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYpIGNvbnN0ID0gMDsKICAgICBib29sIGlzMkQoKSBjb25zdCB7IHJldHVy
biBtX2lzMkQgPT0gSXMyRDo6WWVzOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElzMkQoYm9vbCBp
czJEKSB7IG1faXMyRCA9IGlzMkQgPyBJczJEOjpZZXMgOiBJczJEOjpObzsgfQogICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAKaW5kZXggYTZjZmYyMzZlZTY1YWUxYzQ3OGE5ZmQxMTcyNDdmMzQzMTNkMGE5MC4u
YzlmZThiN2QyMTY0YTk2Y2YzMGM1OTVlZTc3YzM4MWZhMDRjNzY5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFs
dWUuY3BwCkBAIC05MSw2ICs5MSwxNSBAQCBDU1NUcmFuc2Zvcm1WYWx1ZTo6Q1NTVHJhbnNmb3Jt
VmFsdWUoVmVjdG9yPFJlZlB0cjxDU1NUcmFuc2Zvcm1Db21wb25lbnQ+PiYmIHRyYQogewogfQog
Cit2b2lkIENTU1RyYW5zZm9ybVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRl
ciwgYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGlu
aS5vcmcvY3NzLXR5cGVkLW9tLyNzZXJpYWxpemUtYS1jc3N0cmFuc2Zvcm12YWx1ZQorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jb21wb25lbnRzLnNpemUoKTsgaSsrKSB7CisgICAgICAg
IGlmIChpKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgbV9jb21w
b25lbnRzW2ldLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgfQorfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5z
Zm9ybS9DU1NUcmFuc2Zvcm1WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmgKaW5kZXggNWE3ZWI0YTNiZTg0NmM2YTdkNTQ3MDA3
ZWIwNWJiMjRhOTEzYWMzNC4uMDNkODBmMmEyNDlkZjQxOGFhZjYwYjNkN2ZkYmExNDU5MDNmZmU0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Ry
YW5zZm9ybVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3Jt
L0NTU1RyYW5zZm9ybVZhbHVlLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgIENTU1N0
eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NTdHlsZVZh
bHVlVHlwZTo6Q1NTVHJhbnNmb3JtVmFsdWU7IH0KIHByaXZhdGU6CiAgICAgQ1NTVHJhbnNmb3Jt
VmFsdWUoVmVjdG9yPFJlZlB0cjxDU1NUcmFuc2Zvcm1Db21wb25lbnQ+PiYmKTsKKyAgICB2b2lk
IHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgYm9vbCwgYm9vbCkgY29uc3QgZmluYWw7CiAKICAg
ICBWZWN0b3I8UmVmUHRyPENTU1RyYW5zZm9ybUNvbXBvbmVudD4+IG1fY29tcG9uZW50czsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJh
bnNsYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFu
c2xhdGUuY3BwCmluZGV4IDBlZmNiMWUxZWE5MmQyN2I2N2Q3YzQyYmNiOWQ4NjAwZTQyMzE5ZWEu
LmQ1ZmVmNzY1Y2I2ZGYxOWY5YTkwN2U0YTdjNDQ4NWY1ZWFlNzI3M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuY3BwCkBA
IC02NSwxNiArNjUsMjMgQEAgQ1NTVHJhbnNsYXRlOjpDU1NUcmFuc2xhdGUoQ1NTVHJhbnNmb3Jt
Q29tcG9uZW50OjpJczJEIGlzMkQsIFJlZjxDU1NOdW1lcmljVmFsdWUKIHsKIH0KIAotCi0vLyBG
SVhNRTogRml4IGFsbCB0aGUgZm9sbG93aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBD
U1NUcmFuc2xhdGU6OnRvU3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTVHJhbnNsYXRlOjpzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9t
LyNzZXJpYWxpemUtYS1jc3N0cmFuc2xhdGUKKyAgICBidWlsZGVyLmFwcGVuZChpczJEKCkgPyAi
dHJhbnNsYXRlKCIgOiAidHJhbnNsYXRlM2QoIik7CisgICAgbV94LT5zZXJpYWxpemUoYnVpbGRl
cik7CisgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgbV95LT5zZXJpYWxpemUoYnVpbGRl
cik7CisgICAgaWYgKCFpczJEKCkpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Cisg
ICAgICAgIG1fei0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gQ1NTVHJhbnNsYXRlOjp0
b01hdHJpeCgpCiB7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0
cml4Ojpmcm9tTWF0cml4KERPTU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5oCmluZGV4IGMxNmNj
ZGE3NDRjYmVhYzMwYTAwNTk0NjIwOTFjMzU0MGM4YzNhNTguLjIyN2YzNThlMTQ5ZWFiOWJhNDY5
YTUyZTRmZWU1NzcxZTY3MTNiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0WShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB5KSB7IG1feSA9IFdURk1vdmUoeSk7
IH0KICAgICB2b2lkIHNldFooUmVmPENTU051bWVyaWNWYWx1ZT4geikgeyBtX3ogPSBXVEZNb3Zl
KHopOyB9CiAgICAgCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisgICAgdm9p
ZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9y
PFJlZjxET01NYXRyaXg+PiB0b01hdHJpeCgpIGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjRlYTY1N2U2ZTA0MmFjM2QxMDE4YzhkZDhkOGZjMDIy
NWZlYmEwNy4uZjQ4MTE3NjE3MTU3ODQ0OWI5ZTQ1OTIzNTMyNzI1ZmRiYjMxMzJhMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDQtMTggIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBs
ZW1lbnQgbW9zdCBvZiBDU1MgdHlwZWQgT00gb2JqZWN0IHN0cmluZ2lmaWVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzS2V5d29yZFZh
bHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc01hdGhWYWx1ZS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NUcmFuc2Zvcm1WYWx1ZS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTA0LTE4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IENTU1RyYW5zZm9y
bVZhbHVlLmlzMkQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3Nz
S2V5d29yZFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJp
YWxpemF0aW9uL2Nzc0tleXdvcmRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDQ4
ZDA5ODk3MDQyNjM1OTAxMWUzM2FkZmVjZmFmMmRkODU1ZGIyZGQuLjBiYTg2ZDcwNTQ4ZWIxNWMx
NzU4NDNlMDRjMzVjZjE1ZWIxNTU2Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlh
bGl6YXRpb24vY3NzS2V5d29yZFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NLZXl3b3JkVmFsdWUudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBDU1NLZXl3b3JkVmFsdWUgY29uc3RydWN0
ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
ImF1dG8iIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTS2V5d29yZFZhbHVlIGNvbnN0cnVjdGVkIGZyb20g
SURMIHNlcmlhbGl6ZXMgdG8gZXNjYXBlZCBzdHJpbmdzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJcXCBIZWxsb1xcIFdvcmxkIiBidXQgZ290ICIiCitQQVNTIENTU0tleXdvcmRWYWx1ZSBjb25z
dHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3RseQorRkFJTCBDU1NLZXl3b3JkVmFs
dWUgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyB0byBlc2NhcGVkIHN0cmluZ3MgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlxcIEhlbGxvXFwgV29ybGQiIGJ1dCBnb3QgIiBIZWxsbyBX
b3JsZCIKIEZBSUwgQ1NTS2V5d29yZFZhbHVlIGZyb20gRE9NU3RyaW5nIG1vZGlmaWVkIHRocm91
Z2ggInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImxlbW9uIiBidXQgZ290ICJhdXRvIgogRkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBD
U1NPTSBtb2RpZmllZCB0aHJvdWdoICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJsZW1vbiIgYnV0IGdvdCAiYXV0byIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NNYXRoVmFsdWUudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzTWF0aFZhbHVl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggMjAyZTlhMWZiMzhjN2FmZmJjMTA0NzIyZDUw
OWJkYWI0NTZjZDAzZi4uODQ3OGY0NjM5Y2FkZWFhYWJlOTVjODg4YjM2MmY5ZDE1ODgyMWMzYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NNYXRoVmFsdWUudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nz
c01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDIyICsxLDIyIEBACiAKLUZB
SUwgQ1NTTWF0aE1heCB3aXRoIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAibWF4KDEpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhNYXgg
d2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJtYXgoMSwgMiwgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE1h
eCBjb250YWluaW5nIG5lc3RlZCBDU1NNYXRoVmFsdWVzIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJtYXgoMSArIDIsIDMpIiBidXQgZ290ICIiCi1GQUlMIENT
U01hdGhNaW4gd2l0aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIm1pbigxKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoTWluIHdpdGgg
bW9yZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAibWluKDEsIDIsIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhNaW4gY29u
dGFpbmluZyBuZXN0ZWQgQ1NTTWF0aFZhbHVlcyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAibWluKDEgKyAyLCAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRo
U3VtIHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJjYWxjKDEpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhTdW0gd2l0aCBtb3Jl
IHRoYW4gb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJjYWxjKDEgKyAyICsgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aFN1bSB3aXRo
IGEgQ1NTTWF0aE5lZ2F0ZSBhcyBmaXJzdCB2YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoLTEpICsgMiArIDMpIiBidXQgZ290ICIiCi1GQUlM
IENTU01hdGhTdW0gY29udGFpbmluZyBhIENTU01hdGhOZWdhdGUgYWZ0ZXIgZmlyc3QgdmFsdWUg
c2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoMSAtIDIg
KyAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoU3VtIG5lc3RlZCBpbnNpZGUgYSBDU1NNYXRo
VmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMo
KDEgKyAyKSArIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhOZWdhdGUgc2VyaWFsaXplcyBj
b3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoLTEpIiBidXQgZ290ICIiCi1G
QUlMIENTU01hdGhOZWdhdGUgbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxpemVz
IGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoLTEpKSIgYnV0IGdvdCAi
IgotRkFJTCBDU1NNYXRoUHJvZHVjdCB3aXRoIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJl
Y3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygxKSIgYnV0IGdvdCAiIgotRkFJTCBD
U1NNYXRoUHJvZHVjdCB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3Jy
ZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMoMSAqIDIgKiAzKSIgYnV0IGdvdCAi
IgotRkFJTCBDU1NNYXRoUHJvZHVjdCB3aXRoIGEgQ1NTTWF0aEludmVydCBhcyBmaXJzdCB2YWx1
ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoMSAv
IDEpICogMiAqIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhQcm9kdWN0IGNvbnRhaW5pbmcg
YSBDU1NNYXRoSW52ZXJ0IGFmdGVyIGZpcnN0IHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKDEgLyAyICogMykiIGJ1dCBnb3QgIiIKLUZBSUwg
Q1NTTWF0aFByb2R1Y3QgbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxpemVzIGNv
cnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoMSAqIDIpICogMykiIGJ1dCBn
b3QgIiIKLUZBSUwgQ1NTTWF0aEludmVydCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiY2FsYygxIC8gMSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aEludmVy
dCBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKCgxIC8gMSkpIiBidXQgZ290ICIiCitQQVNTIENTU01h
dGhNYXggd2l0aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0
aE1heCB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BB
U1MgQ1NTTWF0aE1heCBjb250YWluaW5nIG5lc3RlZCBDU1NNYXRoVmFsdWVzIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5CitQQVNTIENTU01hdGhNaW4gd2l0aCBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBj
b3JyZWN0bHkKK1BBU1MgQ1NTTWF0aE1pbiB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgc2Vy
aWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aE1pbiBjb250YWluaW5nIG5lc3RlZCBDU1NN
YXRoVmFsdWVzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhTdW0gd2l0aCBvbmUg
YXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFN1bSB3aXRoIG1vcmUg
dGhhbiBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFN1bSB3
aXRoIGEgQ1NTTWF0aE5lZ2F0ZSBhcyBmaXJzdCB2YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQor
UEFTUyBDU1NNYXRoU3VtIGNvbnRhaW5pbmcgYSBDU1NNYXRoTmVnYXRlIGFmdGVyIGZpcnN0IHZh
bHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhTdW0gbmVzdGVkIGluc2lkZSBh
IENTU01hdGhWYWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoTmVnYXRlIHNl
cmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhOZWdhdGUgbmVzdGVkIGluc2lkZSBhIENT
U01hdGhWYWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoUHJvZHVjdCB3aXRo
IG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoUHJvZHVjdCB3
aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NT
TWF0aFByb2R1Y3Qgd2l0aCBhIENTU01hdGhJbnZlcnQgYXMgZmlyc3QgdmFsdWUgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFByb2R1Y3QgY29udGFpbmluZyBhIENTU01hdGhJbnZl
cnQgYWZ0ZXIgZmlyc3QgdmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFBy
b2R1Y3QgbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQor
UEFTUyBDU1NNYXRoSW52ZXJ0IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhJbnZl
cnQgbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1RyYW5zZm9ybVZhbHVl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nz
c1RyYW5zZm9ybVZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggZDM5ZGJhOTg4OWZk
YTcxMmFmYjcwZjkwNTgyMTAwZGJiNTkyNmUyNS4uMzYzOTNhNmE3YzM0NDMxY2U0NWYwNDQyZjRm
NTg5MDhjN2E2NmRmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9j
c3NUcmFuc2Zvcm1WYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXNlcmlhbGl6YXRpb24vY3NzVHJhbnNmb3JtVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApAQCAtMSwyMCArMSwyMCBAQAogCi1GQUlMIENTU1RyYW5zbGF0ZSB3aXRoIDIgYXJndW1lbnRz
IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0cmFuc2xhdGUo
MSUsIDFweCkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTVHJhbnNsYXRlIHdpdGggMyBhcmd1bWVudHMg
c2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRyYW5zbGF0ZTNk
KDFweCwgMiUsIDNweCkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTU2NhbGUgd2l0aCAyIGFyZ3VtZW50
cyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2NhbGUoMiwg
MykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTU2NhbGUgd2l0aCAzIGFyZ3VtZW50cyBzZXJpYWxpemVz
IGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2NhbGUzZCgxLCAyLCAzKSIgYnV0
IGdvdCAiIgotRkFJTCBDU1NSb3RhdGUgd2l0aCAxIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVj
dGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyb3RhdGUoOTBkZWcpIiBidXQgZ290ICIiCi1G
QUlMIENTU1JvdGF0ZSB3aXRoIDQgYXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJyb3RhdGUzZCgxLCAyLCAzLCA5MGRlZykiIGJ1dCBnb3QgIiIK
LUZBSUwgQ1NTU2tldyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAic2tldyg5MGRlZywgNDVkZWcpIiBidXQgZ290ICIiCi1GQUlMIENTU1NrZXcgd2l0aCBZIHdo
aWNoIGlzIDAgdmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInNrZXcoOTBkZWcpIiBidXQgZ290ICIiCi1GQUlMIENTU1NrZXdYIHNlcmlhbGl6ZXMgY29y
cmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJza2V3WCg5MGRlZykiIGJ1dCBnb3QgIiIK
LUZBSUwgQ1NTU2tld1kgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInNrZXdZKDkwZGVnKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NQZXJzcGVjdGl2ZSBzZXJpYWxp
emVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicGVyc3BlY3RpdmUoMXB4KSIg
YnV0IGdvdCAiIgotRkFJTCBDU1NQZXJzcGVjdGl2ZSB3aXRoIG5lZ2F0aXZlIGxlbmd0aCBzZXJp
YWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicGVyc3BlY3RpdmUoY2Fs
YygtMXB4KSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTVHJhbnNmb3JtVmFsdWUgd2l0aCBhIHNpbmds
ZSB0cmFuc2Zvcm0gc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InBlcnNwZWN0aXZlKDFweCkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTVHJhbnNmb3JtVmFsdWUgd2l0
aCBtdWx0aXBsZSB0cmFuc2Zvcm1zIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJ0cmFuc2xhdGUoMXB4LCAwcHgpIHJvdGF0ZSg5MGRlZykgcGVyc3BlY3RpdmUo
MXB4KSBza2V3KDkwZGVnLCA0NWRlZykgc2NhbGUzZCgxLCAyLCAzKSIgYnV0IGdvdCAiIgotRkFJ
TCBDU1NUcmFuc2Zvcm1WYWx1ZSBjb250YWluaW5nIENTU01hdGhWYWx1ZXMgc2VyaWFsaXplcyBj
b3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRyYW5zbGF0ZShjYWxjKDFweCArIDFl
bSksIDBweCkgcm90YXRlKGNhbGMoOTBkZWcgKyAxdHVybikpIHBlcnNwZWN0aXZlKGNhbGMoMXB4
ICsgMWVtKSkgc2tldyhjYWxjKDkwZGVnICogMiksIGNhbGMoMXR1cm4gKiAyKSkgc2NhbGUzZChj
YWxjKDEgKiAyKSwgY2FsYygxICsgMSksIGNhbGMoMykpIiBidXQgZ290ICIiCitQQVNTIENTU1Ry
YW5zbGF0ZSB3aXRoIDIgYXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1Ry
YW5zbGF0ZSB3aXRoIDMgYXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1Nj
YWxlIHdpdGggMiBhcmd1bWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTU2NhbGUg
d2l0aCAzIGFyZ3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NSb3RhdGUgd2l0
aCAxIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1JvdGF0ZSB3aXRoIDQg
YXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1NrZXcgc2VyaWFsaXplcyBj
b3JyZWN0bHkKK1BBU1MgQ1NTU2tldyB3aXRoIFkgd2hpY2ggaXMgMCB2YWx1ZSBzZXJpYWxpemVz
IGNvcnJlY3RseQorUEFTUyBDU1NTa2V3WCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NT
a2V3WSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NQZXJzcGVjdGl2ZSBzZXJpYWxpemVz
IGNvcnJlY3RseQorUEFTUyBDU1NQZXJzcGVjdGl2ZSB3aXRoIG5lZ2F0aXZlIGxlbmd0aCBzZXJp
YWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRoIGEgc2luZ2xlIHRy
YW5zZm9ybSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRo
IG11bHRpcGxlIHRyYW5zZm9ybXMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVHJhbnNm
b3JtVmFsdWUgY29udGFpbmluZyBDU1NNYXRoVmFsdWVzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CiBG
QUlMIENTU01hdHJpeENvbXBvbmVudCB3aXRoIDYgZWxlbWVudHMgc2VyaWFsaXplcyBjb3JyZWN0
bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm1hdHJpeCgxLCAyLCAzLCA0LCA1LCA2KSIgYnV0
IGdvdCAiIgogRkFJTCBDU1NNYXRyaXhDb21wb25lbnQgd2l0aCAxNiBlbGVtZW50cyBzZXJpYWxp
emVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibWF0cml4M2QoMSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYpIiBidXQgZ290ICIi
Ci1GQUlMIENTU1RyYW5zZm9ybVZhbHVlIHdpdGggdXBkYXRlZCBpczJEIHNlcmlhbGl6ZXMgYXMg
MkQgdHJhbnNmb3JtcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJhbnNsYXRlKDFweCwgMnB4
KSByb3RhdGUoOTBkZWcpIHNjYWxlKDEsIDIpIiBidXQgZ290ICIiCitQQVNTIENTU1RyYW5zZm9y
bVZhbHVlIHdpdGggdXBkYXRlZCBpczJEIHNlcmlhbGl6ZXMgYXMgMkQgdHJhbnNmb3JtcwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457941</attachid>
            <date>2022-04-19 16:25:40 -0700</date>
            <delta_ts>2022-04-19 17:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239483-20220419162539.patch</filename>
            <type>text/plain</type>
            <size>56985</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkZmJlMzg4N2I4NmQ3
NWYyN2ViM2UyNDQ0MzE4OGE0OWI3ODgyNC4uOWRiZDE3OWZlNjNmZDAyZmVjZTMyYmU5MmVmZjY1
YzNmZjQ2OTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMi0wNC0xOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBtb3N0IG9mIENTUyB0eXBlZCBPTSBvYmplY3Qgc3RyaW5naWZpZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGhpcyBpcyBhbiBvZmYtYnktZGVm
YXVsdCBleHBlcmltZW50YWwgZmVhdHVyZS4KKyAgICAgICAgQ292ZXJlZCBieSB3ZWIgcGxhdGZv
cm0gdGVzdHMuCisKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTS2V5d29yZFZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oOgorICAgICAgICAqIGNzcy90eXBl
ZG9tL0NTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZTo6c2VyaWFsaXplIGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvdHlwZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVJbWFnZVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVJbWFnZVZhbHVlOjpkb2N1bWVudCBjb25zdCk6CisgICAgICAgICogY3NzL3R5
cGVkb20vQ1NTU3R5bGVJbWFnZVZhbHVlLmg6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTU3R5
bGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVZhbHVlOjp0b1N0cmluZyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVZhbHVlOjpzZXJpYWxpemUgY29uc3Qp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuaDoKKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVl
OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5o
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5wYXJzZWRWYWx1ZTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1VucGFyc2VkVmFsdWU6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmg6CisgICAgICAgICogY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhJ
bnZlcnQ6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoSW52ZXJ0Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhNYXg6OnNlcmlhbGl6ZSBjb25zdCk6Cisg
ICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICogY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01h
dGhNaW46OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoTWluLmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhOZWdhdGU6OnNlcmlhbGl6ZSBjb25zdCk6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NNYXRoUHJvZHVjdDo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhTdW06OnNlcmlh
bGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmg6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5Ojpmb3JFYWNoKToKKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgorICAgICAgICAqIGNzcy90eXBlZG9t
L3RyYW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0cml4Q29tcG9uZW50OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0cml4Q29tcG9uZW50Ojp0b01hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRyaXhD
b21wb25lbnQ6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTTWF0cml4Q29tcG9uZW50Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20v
dHJhbnNmb3JtL0NTU1BlcnNwZWN0aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BlcnNw
ZWN0aXZlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGVyc3BlY3Rp
dmU6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BlcnNwZWN0aXZlOjp0b1N0cmlu
ZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Bl
cnNwZWN0aXZlLmg6CisgICAgICAgICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NSb3RhdGU6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NSb3RhdGU6OnRvTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1JvdGF0ZTo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBlZG9t
L3RyYW5zZm9ybS9DU1NSb3RhdGUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0v
Q1NTU2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2NhbGU6OnNlcmlhbGl6ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTY2FsZTo6dG9NYXRyaXgpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2NhbGU6OnRvU3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFu
c2Zvcm0vQ1NTU2tldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTa2V3OjpzZXJpYWxpemUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tldzo6dG9NYXRyaXgpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2tldzo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1NrZXdYLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NrZXdYOjpzZXJpYWxp
emUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1g6OnRvTWF0cml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NrZXdYOjp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmg6CisgICAgICAgICogY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1NrZXdZLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NrZXdZOjpz
ZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2tld1k6OnRvTWF0cml4KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NrZXdZOjp0b1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdZLmg6CisgICAgICAgICogY3Nz
L3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUcmFuc2Zvcm1Db21wb25lbnQ6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50Lmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1RyYW5zZm9ybVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAq
IGNzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVHJhbnNsYXRlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVHJh
bnNsYXRlOjp0b01hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUcmFuc2xhdGU6OnRvU3Ry
aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
VHJhbnNsYXRlLmg6CisKIDIwMjItMDQtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgQ1NTVHJhbnNmb3JtVmFsdWUuaXMy
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5jcHAKaW5k
ZXggZmUyMzYxYzQ5NzM1YThhZTljYzBhNzJlYTg0MmMxNzNiNjhkODI3YS4uZjlkZTFkMzUzYjY4
NTdjZGYyNTc5ZjBmNmYxY2Q3M2I5MjkyNTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTS2V5d29yZFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NLZXl3b3JkVmFsdWUuY3BwCkBAIC02Nyw2ICs2NywxMSBAQCBFeGNlcHRpb25P
cjx2b2lkPiBDU1NLZXl3b3JkVmFsdWU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAordm9pZCBDU1NLZXl3b3JkVmFsdWU6OnNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiBidWlsZGVyLCBPcHRpb25TZXQ8U2VyaWFsaXphdGlvbkFyZ3VtZW50cz4pIGNv
bnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1v
bS8ja2V5d29yZHZhbHVlLXNlcmlhbGl6YXRpb24KKyAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVl
KTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NLZXl3b3JkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCmluZGV4IGE2OGJlZWI1ZDc4N2NlY2MyNmUwOTIwZjQw
ZWMzNWM0ZGRlNzgwYWQuLjQ0N2Q4ZGFiN2JkM2QyZjIwZTU5ZjkwNTZkNTVkYzk2ZDc1ZmI1NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU0tleXdvcmRWYWx1ZS5oCkBAIC01
MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU0tleXdvcmRWYWx1ZT4gcmVj
dGlmeUtleXdvcmRpc2goQ1NTS2V5d29yZGlzaCYmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNl
cmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+
KSBjb25zdCBmaW5hbDsKKwogICAgIGV4cGxpY2l0IENTU0tleXdvcmRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlKQogICAgICAgICA6IG1fdmFsdWUodmFsdWUpIHsgfQogICAgIFN0cmluZyBtX3Zh
bHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTT01WYXJpYWJs
ZVJlZmVyZW5jZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU09NVmFy
aWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAKaW5kZXggOGNmYjBlMTc0NjJlYTFlYTRmNWNkMGU1Nzg2
OTE3ZTg2ZjRkNWZjZS4uZDI2YTBmODVmM2QwYzdkYjQ0MTZjZjBmZjBhYmQ2ZjI3MDc1YjA5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTT01WYXJpYWJsZVJlZmVy
ZW5jZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlh
YmxlUmVmZXJlbmNlVmFsdWUuY3BwCkBAIC02MSwxOCArNjEsMTcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjpzZXRWYXJpYWJsZShTdHJpbmcmJiB2YXJp
YWJsZSkKIFN0cmluZyBDU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWU6OnRvU3RyaW5nKCkgY29u
c3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgc2VyaWFsaXplKGJ1aWxkZXIp
OwotICAgIAorICAgIHNlcmlhbGl6ZShidWlsZGVyLCB7IH0pOwogICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CiB9CiAKLXZvaWQgQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOjpzZXJp
YWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKK3ZvaWQgQ1NTT01WYXJpYWJsZVJl
ZmVyZW5jZVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgT3B0aW9uU2V0
PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+IGFyZ3VtZW50cykgY29uc3QKIHsKICAgICBidWlsZGVy
LmFwcGVuZCgidmFyKCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fdmFyaWFibGUpOwogICAgIGlm
IChtX2ZhbGxiYWNrKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOwotICAgICAgICBt
X2ZhbGxiYWNrLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAgIG1fZmFsbGJhY2stPnNlcmlh
bGl6ZShidWlsZGVyLCBhcmd1bWVudHMpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnKScp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTT01WYXJpYWJs
ZVJlZmVyZW5jZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlh
YmxlUmVmZXJlbmNlVmFsdWUuaAppbmRleCAzMjRlNzk3Zjc4ZTQ0NzQ0NzQ0OTIxOTFiNjg5NDU2
NzJkNjZjZWM4Li5hZGRmNjUwOWY1MDJlYzY1NjM1MTEzOGUxZjY1NjQ0NWNkN2Y0MjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlhYmxlUmVmZXJlbmNl
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NPTVZhcmlhYmxlUmVm
ZXJlbmNlVmFsdWUuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0VmFyaWFibGUoU3RyaW5nJiYpOwogICAgIFN0cmluZyB0b1N0cmluZygp
IGNvbnN0OwotICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdDsKKyAgICB2
b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1
bWVudHM+KSBjb25zdDsKIAogICAgIGNvbnN0IFN0cmluZyYgdmFyaWFibGUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhcmlhYmxlOyB9CiAgICAgQ1NTVW5wYXJzZWRWYWx1ZSogZmFsbGJhY2soKSB7IHJl
dHVybiBtX2ZhbGxiYWNrLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTU3R5bGVJbWFnZVZhbHVlLmNwcAppbmRleCA1MzJiNDhjZDFlYjZiMDA3OGUzYzI5MGJh
NTAwY2E0OTRlMmZmYzU4Li5kM2JmZGRjZTU3MzZjZDFjYTBiMDAwYmRjNjk4NmYxYTJiYzgzNTA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1
ZS5jcHAKQEAgLTQ2LDcgKzQ2LDE1IEBAIENTU1N0eWxlSW1hZ2VWYWx1ZTo6Q1NTU3R5bGVJbWFn
ZVZhbHVlKFJlZjxDU1NJbWFnZVZhbHVlPiYmIGNzc1ZhbHVlLCBEb2N1bWVudCoKIHsKIH0KIAot
RG9jdW1lbnQqIENTU1N0eWxlSW1hZ2VWYWx1ZTo6ZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2RvY3VtZW50LmdldCgpOyB9Cit2b2lkIENTU1N0eWxlSW1hZ2VWYWx1ZTo6c2VyaWFsaXplKFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPikg
Y29uc3QKK3sKKyAgICBidWlsZGVyLmFwcGVuZChtX2Nzc1ZhbHVlLT5jc3NUZXh0KCkpOworfQor
CitEb2N1bWVudCogQ1NTU3R5bGVJbWFnZVZhbHVlOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVJbWFnZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaAppbmRl
eCA4YmQ2ZmViZGFkMzYyZDQ1NzAxYWEyZTdhMDFmOTY1ZjA3ZTVhODZjLi44NWI5ZTBlZGI2YzEz
MjY4ZGJlYjRmZGNmNzEyMmU2YWRjNWJhMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1N0eWxlSW1hZ2VWYWx1ZShXVEZNb3ZlKGNz
c1ZhbHVlKSwgZG9jdW1lbnQpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2Nzc1ZhbHVlLT5jc3NUZXh0KCk7IH0KKyAgICB2b2lkIHNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+KSBj
b25zdCBmaW5hbDsKIAogICAgIENhY2hlZEltYWdlKiBpbWFnZSgpIHsgcmV0dXJuIG1fY3NzVmFs
dWUtPmNhY2hlZEltYWdlKCk7IH0KICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5jcHAKaW5kZXggYjg4MjQx
NWE0YjZmN2MxNTFjMDQwZTk1ZTI0YmNiMmViMmM5OWI1NC4uOWY3YTgyMzE3NTQzYmYwNGNmYzRl
ZmY0Njk1YThkMDIwMzE1MGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTU3R5bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
U3R5bGVWYWx1ZS5jcHAKQEAgLTgyLDEzICs4MiwxNyBAQCBDU1NTdHlsZVZhbHVlOjpDU1NTdHls
ZVZhbHVlKFJlZlB0cjxDU1NWYWx1ZT4mJiBjc3NWYWx1ZSwgU3RyaW5nJiYgcHJvcGVydHkpCiB7
CiB9CiAKLQogU3RyaW5nIENTU1N0eWxlVmFsdWU6OnRvU3RyaW5nKCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fcHJvcGVydHlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAg
Ci0gICAgcmV0dXJuIG1fcHJvcGVydHlWYWx1ZS0+Y3NzVGV4dCgpOworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICBzZXJpYWxpemUoYnVpbGRlcik7CisgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKK30KKwordm9pZCBDU1NTdHlsZVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVp
bGRlciYgYnVpbGRlciwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+KSBjb25zdAor
eworICAgIGlmIChtX3Byb3BlcnR5VmFsdWUpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fcHJv
cGVydHlWYWx1ZS0+Y3NzVGV4dCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZS5oCmluZGV4IDEzYmJjN2Q2NWEx
ZmRiZTUzNjAyMTFhODYxZTM0YTVlMDM3ODg3ZjguLmM1NThmYjljOTMyNzYxMWZlMGZhZTMzODc5
YzYxZDc1M2U1MWVjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U1N0eWxlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZh
bHVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNs
dWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTksMTAgKzEwMCwxNiBAQCBpbmxpbmUg
Ym9vbCBpc0NTU01hdGhWYWx1ZShDU1NTdHlsZVZhbHVlVHlwZSB0eXBlKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorZW51bSBjbGFzcyBTZXJpYWxpemF0aW9uQXJndW1lbnRzIDogdWludDhfdCB7
CisgICAgTmVzdGVkID0gMHgxLAorICAgIFdpdGhvdXRQYXJlbnRoZXNlcyA9IDB4MiwKK307CisK
IGNsYXNzIENTU1N0eWxlVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTdHlsZVZhbHVlPiwg
cHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NT
dHlsZVZhbHVlKTsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0
OworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPiA9IHsg
fSkgY29uc3Q7CiAgICAgdmlydHVhbCB+Q1NTU3R5bGVWYWx1ZSgpID0gZGVmYXVsdDsKIAogICAg
IHZpcnR1YWwgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIENTU1N0
eWxlVmFsdWVUeXBlOjpDU1NTdHlsZVZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTVW5pdFZhbHVlLmNwcAppbmRleCBiM2JkNzJkMmU1NGE5ZWRhMGQwNjlhMzY4MjFlYzBl
OGQxNDQ1NGFiLi5mZDMyNDg4ZTY1YTEzM2FmYjRmMmRlZGI0OGNlMmM1Mjc4ZThjNWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKQEAgLTExMSw2ICsx
MTEsMTIgQEAgU3RyaW5nIENTU1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24oKSBjb25zdAog
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcobV91bml0KTsKIH0K
IAordm9pZCBDU1NVbml0VmFsdWU6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBP
cHRpb25TZXQ8U2VyaWFsaXphdGlvbkFyZ3VtZW50cz4pIGNvbnN0Cit7CisgICAgYnVpbGRlci5h
cHBlbmQoRm9ybWF0dGVkQ1NTTnVtYmVyOjpjcmVhdGUobV92YWx1ZSkpOworICAgIGJ1aWxkZXIu
YXBwZW5kKHVuaXRTZXJpYWxpemF0aW9uKCkpOworfQorCiBFeGNlcHRpb25PcjxSZWY8Q1NTVW5p
dFZhbHVlPj4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcm
IHVuaXQpCiB7CiAgICAgYXV0byBwYXJzZWRVbml0ID0gcGFyc2VVbml0KHVuaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaAppbmRleCA5YmQ5NTFiZGQ2YWU5YTNj
NWViODVkNzNiNGM1OWM4YzNmNTU0MzhhLi5lZDAyNWNjMThjZjVmYjNkNWQ4NzdjMGNmZGQ0ZWFk
NzZjNWY1MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaApA
QCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NV
bml0VmFsdWU+PiBjcmVhdGUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVuaXQpOwogICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBDU1NVbml0VHlw
ZSB1bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1ZSwgdW5pdCkp
OyB9CiAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtYWtlU3Ry
aW5nKEZvcm1hdHRlZENTU051bWJlcjo6Y3JlYXRlKG1fdmFsdWUpLCB1bml0U2VyaWFsaXphdGlv
bigpKTsgfQorICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBPcHRpb25TZXQ8U2Vy
aWFsaXphdGlvbkFyZ3VtZW50cz4pIGNvbnN0IGZpbmFsOwogCiAgICAgZG91YmxlIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgIHZvaWQgc2V0VmFsdWUoZG91YmxlIHZhbHVl
KSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NVbnBhcnNlZFZhbHVlLmNwcAppbmRleCBkNzgwODg5MGRkNDM5Y2QwNjljZDlhNWU1M2VkODIz
NmVmY2ViYWMxLi4xMTFiNjk4OTUxN2I3ZmRhNzU1Zjk1ZmZiMmFjMmE1MjU5Yjg0OTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmNwcApAQCAt
MTE5LDIxICsxMTksMTMgQEAgQ1NTVW5wYXJzZWRWYWx1ZTo6Q1NTVW5wYXJzZWRWYWx1ZShWZWN0
b3I8Q1NTVW5wYXJzZWRTZWdtZW50PiYmIHNlZ21lbnRzKQogewogfQogCi1TdHJpbmcgQ1NTVW5w
YXJzZWRWYWx1ZTo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICBzZXJpYWxpemUoYnVpbGRlcik7Ci0gICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKLX0KLQotdm9pZCBDU1NVbnBhcnNlZFZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVp
bGRlciYgYnVpbGRlcikgY29uc3QKK3ZvaWQgQ1NTVW5wYXJzZWRWYWx1ZTo6c2VyaWFsaXplKFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPiBh
cmd1bWVudHMpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBzZWdtZW50IDogbV9zZWdtZW50cykg
ewogICAgICAgICBzdGQ6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoWyZdIChjb25zdCBTdHJpbmcm
IHZhbHVlKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh2YWx1ZSk7CiAgICAgICAgIH0s
IFsmXSAoY29uc3QgUmVmUHRyPENTU09NVmFyaWFibGVSZWZlcmVuY2VWYWx1ZT4mIHZhbHVlKSB7
Ci0gICAgICAgICAgICB2YWx1ZS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgICAgICAgICAgdmFs
dWUtPnNlcmlhbGl6ZShidWlsZGVyLCBhcmd1bWVudHMpOwogICAgICAgICB9KSwgc2VnbWVudCk7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5w
YXJzZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1
ZS5oCmluZGV4IGFhZTljMDUwOWRkMWZmNGFiMzMzOGQ4ZDIyYjI4Nzk3NWE5M2M3MjYuLjA3NDY2
ODQxNGE0OGJkYjQ0NDBjNWU2ZjY1NjFkMzZlM2IwZjQwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmgKQEAgLTQ0LDggKzQ0LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJzZWRWYWx1ZT4gY3JlYXRlKFZlY3RvcjxDU1NVbnBh
cnNlZFNlZ21lbnQ+JiYpOwogICAgIHN0YXRpYyBSZWY8Q1NTVW5wYXJzZWRWYWx1ZT4gY3JlYXRl
KENTU1BhcnNlclRva2VuUmFuZ2UpOwogCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmlu
YWw7Ci0gICAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNvbnN0OworICAgIHZvaWQg
c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBPcHRpb25TZXQ8U2VyaWFsaXphdGlvbkFyZ3VtZW50
cz4pIGNvbnN0IGZpbmFsOwogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Nl
Z21lbnRzLnNpemUoKTsgfQogICAgIAogICAgIEV4Y2VwdGlvbk9yPENTU1VucGFyc2VkU2VnbWVu
dD4gaXRlbShzaXplX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKaW5kZXggNTI0YjdmNzAxYmM4ZTdhZTlkMzg2N2NhYWVh
MjA3ZDgwNDFkMDc1NC4uZTYwOTY1MTA5MzcwYmIzZTJlYjc4ZDNmNTEyNWM4ODUzYzE1ZGFjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52
ZXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJ
bnZlcnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDYgKzczLDE3IEBA
IENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQog
ewogfQogCit2b2lkIENTU01hdGhJbnZlcnQ6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWls
ZGVyLCBPcHRpb25TZXQ8U2VyaWFsaXphdGlvbkFyZ3VtZW50cz4gYXJndW1lbnRzKSBjb25zdAor
eworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nh
bGMtc2VyaWFsaXphdGlvbgorICAgIGlmICghYXJndW1lbnRzLmNvbnRhaW5zKFNlcmlhbGl6YXRp
b25Bcmd1bWVudHM6OldpdGhvdXRQYXJlbnRoZXNlcykpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGFyZ3VtZW50cy5jb250YWlucyhTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpOZXN0ZWQpID8gIigi
IDogImNhbGMoIik7CisgICAgYnVpbGRlci5hcHBlbmQoIjEgLyAiKTsKKyAgICBtX3ZhbHVlLT5z
ZXJpYWxpemUoYnVpbGRlciwgYXJndW1lbnRzKTsKKyAgICBpZiAoIWFyZ3VtZW50cy5jb250YWlu
cyhTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpXaXRob3V0UGFyZW50aGVzZXMpKQorICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
SW52ZXJ0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZl
cnQuaAppbmRleCBjY2UwYWQxMDFkMGU4MmI0MWI2YzQ0OWViZDVmZTEyOTY3ODhkNjlkLi5jYjky
MDY5ZDJhNGI0MDUzMTZmNjRkMzU5YmRlNTRhMmI4MjY4OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuaApAQCAtMzYsMTAgKzM2
LDEyIEBAIGNsYXNzIENTU01hdGhJbnZlcnQgZmluYWwgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU01hdGhJbnZlcnQ+IGNyZWF0ZShDU1NOdW1iZXJp
c2gmJik7CiAgICAgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWUuZ2V0
KCk7IH0KLSAgICAKKyAgICBjb25zdCBDU1NOdW1lcmljVmFsdWUmIHZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZS5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBn
ZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6SW52ZXJ0
OyB9CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IENTU1N0eWxlVmFsdWVUeXBlOjpDU1NNYXRoSW52ZXJ0OyB9CisgICAgdm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPikgY29uc3Qg
ZmluYWw7CiAKICAgICBDU1NNYXRoSW52ZXJ0KENTU051bWJlcmlzaCYmKTsKICAgICBSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBtX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aE1heC5jcHAKaW5kZXggM2YzNGM1YTliNmJlNmYxZTYxNzc4ZWM4YmY5
NTU5NGEzZThmMzcwMS4uOWZlZTQ4NGZmMmNhOTJiNThjZDY2Y2ZlNmFlZmI0YTA2MzhkYTRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXgu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDYgKzUyLDIwIEBAIGNvbnN0
IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aE1heDo6dmFsdWVzKCkgY29uc3QKICAgICByZXR1cm4g
bV92YWx1ZXMuZ2V0KCk7CiB9CiAKK3ZvaWQgQ1NTTWF0aE1heDo6c2VyaWFsaXplKFN0cmluZ0J1
aWxkZXImIGJ1aWxkZXIsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPiBhcmd1bWVu
dHMpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jY2FsYy1zZXJpYWxpemF0aW9uCisgICAgaWYgKCFhcmd1bWVudHMuY29udGFpbnMo
U2VyaWFsaXphdGlvbkFyZ3VtZW50czo6V2l0aG91dFBhcmVudGhlc2VzKSkKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIm1heCgiKTsKKyAgICBtX3ZhbHVlcy0+Zm9yRWFjaChbJl0oYXV0byYgbnVt
ZXJpY1ZhbHVlLCBib29sIGZpcnN0KSB7CisgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbnVtZXJpY1ZhbHVlLnNlcmlhbGl6ZShi
dWlsZGVyLCB7IFNlcmlhbGl6YXRpb25Bcmd1bWVudHM6Ok5lc3RlZCwgU2VyaWFsaXphdGlvbkFy
Z3VtZW50czo6V2l0aG91dFBhcmVudGhlc2VzIH0pOworICAgIH0pOworICAgIGlmICghYXJndW1l
bnRzLmNvbnRhaW5zKFNlcmlhbGl6YXRpb25Bcmd1bWVudHM6OldpdGhvdXRQYXJlbnRoZXNlcykp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhNYXguaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE1heC5oCmluZGV4IDg5ODdkZmNkOGNkMjA4MTdlNTE1YTY4MGE2OWM4MDczNTA5OGJkZTAu
LjM3MWU2MzU5YmIyNTRkYmU0NzcxN2I2ODNlNDZhMTIyNzNmY2ZiNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oCkBAIC00Myw2ICs0Myw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpNYXg7IH0KICAgICBDU1NTdHls
ZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5
cGU6OkNTU01hdGhNYXg7IH0KKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0
aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+KSBjb25zdCBmaW5hbDsKIAogICAgIENTU01h
dGhNYXgoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBDU1NNYXRoTWF4KFZlY3Rv
cjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcAppbmRleCBiZjMxYzkwNjBmZWFkZTI2NTg1ODZi
YzVkOGM1YTM4YjFmZmQ3NWMyLi44YjdjZTZlNzA4ZDFiZmUzNTQ4YzI1ZGU1ZjZkYzEwYmJiOGE3
ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhNaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0
aE1pbi5jcHAKQEAgLTUxLDYgKzUxLDIwIEBAIGNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0
aE1pbjo6dmFsdWVzKCkgY29uc3QKICAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CiB9CiAKK3Zv
aWQgQ1NTTWF0aE1pbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIE9wdGlvblNl
dDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPiBhcmd1bWVudHMpIGNvbnN0Cit7CisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY2FsYy1zZXJpYWxpemF0
aW9uCisgICAgaWYgKCFhcmd1bWVudHMuY29udGFpbnMoU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6
V2l0aG91dFBhcmVudGhlc2VzKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIm1pbigiKTsKKyAg
ICBtX3ZhbHVlcy0+Zm9yRWFjaChbJl0oYXV0byYgbnVtZXJpY1ZhbHVlLCBib29sIGZpcnN0KSB7
CisgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsK
KyAgICAgICAgbnVtZXJpY1ZhbHVlLnNlcmlhbGl6ZShidWlsZGVyLCB7IFNlcmlhbGl6YXRpb25B
cmd1bWVudHM6Ok5lc3RlZCwgU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6V2l0aG91dFBhcmVudGhl
c2VzIH0pOworICAgIH0pOworICAgIGlmICghYXJndW1lbnRzLmNvbnRhaW5zKFNlcmlhbGl6YXRp
b25Bcmd1bWVudHM6OldpdGhvdXRQYXJlbnRoZXNlcykpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCmluZGV4IGJkZDY0NDJm
MjJmZTJkZmQ3OWM3M2FmMzgzZjU4NjdmOWZhODFlNjkuLjE4M2RkNGRhNTYwYTcyYzcyOTllMjAy
ZThjOGRhNzE3MjEwNTE2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aE1pbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aE1pbi5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NT
TWF0aE9wZXJhdG9yOjpNaW47IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhNaW47IH0KKyAgICB2
b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1
bWVudHM+KSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhNaW4oRml4ZWRWZWN0b3I8Q1NTTnVt
YmVyaXNoPiYmKTsKICAgICBDU1NNYXRoTWluKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhOZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
TmVnYXRlLmNwcAppbmRleCAwYWI1ZjY0MTBkMzQxMzEzNWRiNGZlMjE3YTNkMGI3NjdjNjliNGY2
Li4wYzgzNTFjY2ZkNWNhZDc1NGNhMjM3ODRlZTJhODgwYTBmYzk2ZDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAKQEAg
LTU0LDEwICs1NCwxNSBAQCBDU1NNYXRoTmVnYXRlOjpDU1NNYXRoTmVnYXRlKENTU051bWJlcmlz
aCYmIG51bWJlcmlzaCkKIHsKIH0KIAotQ1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZShSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQotICAgIDogQ1NTTWF0aFZhbHVlKHZhbHVlLT50eXBl
KCkpCi0gICAgLCBtX3ZhbHVlKFdURk1vdmUodmFsdWUpKQordm9pZCBDU1NNYXRoTmVnYXRlOjpz
ZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25B
cmd1bWVudHM+IGFyZ3VtZW50cykgY29uc3QKIHsKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3Mt
aG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjYWxjLXNlcmlhbGl6YXRpb24KKyAgICBpZiAoIWFy
Z3VtZW50cy5jb250YWlucyhTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpXaXRob3V0UGFyZW50aGVz
ZXMpKQorICAgICAgICBidWlsZGVyLmFwcGVuZChhcmd1bWVudHMuY29udGFpbnMoU2VyaWFsaXph
dGlvbkFyZ3VtZW50czo6TmVzdGVkKSA/ICIoIiA6ICJjYWxjKCIpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKCctJyk7CisgICAgbV92YWx1ZS0+c2VyaWFsaXplKGJ1aWxkZXIsIGFyZ3VtZW50cyk7Cisg
ICAgaWYgKCFhcmd1bWVudHMuY29udGFpbnMoU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6V2l0aG91
dFBhcmVudGhlc2VzKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoTmVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhOZWdhdGUuaAppbmRleCA5OWYzY2RjZTNlOGZiMThiOTdjMzdmNGUzNzVmYjYw
YThjYjE3YTg2Li5jMTVlNjBhMTA5YTc5NjRkMTY3YzRjMDE5ZjM1ZTIzOTU3YTFlZWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUu
aApAQCAtMzksMTMgKzM5LDE0IEBAIGNsYXNzIENTU01hdGhOZWdhdGUgZmluYWwgOiBwdWJsaWMg
Q1NTTWF0aFZhbHVlIHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBz
dGF0aWMgUmVmPENTU01hdGhOZWdhdGU+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NNYXRoTmVnYXRlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikp
OyB9CiAgICAgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7
IH0KLSAgICAKKyAgICBjb25zdCBDU1NOdW1lcmljVmFsdWUmIHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZS5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBnZXRP
cGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6TmVnYXRlOyB9
CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENT
U1N0eWxlVmFsdWVUeXBlOjpDU1NNYXRoTmVnYXRlOyB9CisgICAgdm9pZCBzZXJpYWxpemUoU3Ry
aW5nQnVpbGRlciYsIE9wdGlvblNldDxTZXJpYWxpemF0aW9uQXJndW1lbnRzPikgY29uc3QgZmlu
YWw7CiAKICAgICBDU1NNYXRoTmVnYXRlKENTU051bWJlcmlzaCYmKTsKLSAgICBDU1NNYXRoTmVn
YXRlKFJlZjxDU1NOdW1lcmljVmFsdWU+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1f
dmFsdWU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhQcm9kdWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFByb2R1Y3QuY3BwCmluZGV4IDU4YjYzMDA1NjJkZjA0YmEwNDVhYjBlYjdhZjA0
OTcyMzcyMzM1NzAuLjgyZTRlOWRkYjk0ZTRhZDRiNGU3NTg0NTlhOTQ4NWIxZDRjNGRlZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFBy
b2R1Y3QuY3BwCkBAIC04OCw2ICs4OCwyOCBAQCBDU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1
Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMsIENTU051bWVyaWNUeQogewog
fQogCit2b2lkIENTU01hdGhQcm9kdWN0OjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRl
ciwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+IGFyZ3VtZW50cykgY29uc3QKK3sK
KyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjYWxj
LXNlcmlhbGl6YXRpb24KKyAgICBpZiAoIWFyZ3VtZW50cy5jb250YWlucyhTZXJpYWxpemF0aW9u
QXJndW1lbnRzOjpXaXRob3V0UGFyZW50aGVzZXMpKQorICAgICAgICBidWlsZGVyLmFwcGVuZChh
cmd1bWVudHMuY29udGFpbnMoU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6TmVzdGVkKSA/ICIoIiA6
ICJjYWxjKCIpOworICAgIG1fdmFsdWVzLT5mb3JFYWNoKFsmXShhdXRvJiBudW1lcmljVmFsdWUs
IGJvb2wgZmlyc3QpIHsKKyAgICAgICAgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+
IG9wZXJhbmRTZXJpYWxpemF0aW9uQXJndW1lbnRzIHsgU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6
TmVzdGVkIH07CisgICAgICAgIG9wZXJhbmRTZXJpYWxpemF0aW9uQXJndW1lbnRzLnNldChTZXJp
YWxpemF0aW9uQXJndW1lbnRzOjpXaXRob3V0UGFyZW50aGVzZXMsIGFyZ3VtZW50cy5jb250YWlu
cyhTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpXaXRob3V0UGFyZW50aGVzZXMpKTsKKyAgICAgICAg
aWYgKCFmaXJzdCkgeworICAgICAgICAgICAgaWYgKGF1dG8qIG1hdGhOZWdhdGUgPSBkeW5hbWlj
RG93bmNhc3Q8Q1NTTWF0aEludmVydD4obnVtZXJpY1ZhbHVlKSkgeworICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIgLyAiKTsKKyAgICAgICAgICAgICAgICBtYXRoTmVnYXRlLT52YWx1
ZSgpLnNlcmlhbGl6ZShidWlsZGVyLCBvcGVyYW5kU2VyaWFsaXphdGlvbkFyZ3VtZW50cyk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiAqICIpOworICAgICAgICB9CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxp
emUoYnVpbGRlciwgb3BlcmFuZFNlcmlhbGl6YXRpb25Bcmd1bWVudHMpOworICAgIH0pOworICAg
IGlmICghYXJndW1lbnRzLmNvbnRhaW5zKFNlcmlhbGl6YXRpb25Bcmd1bWVudHM6OldpdGhvdXRQ
YXJlbnRoZXNlcykpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKaW5kZXggOGVkNjA1ZjM1M2JhMzNlODU3ZmJh
ZDMwZDc5ZTlhMzcxNTRmNGUzNC4uMTAyYWM1YzBmYjY3OTNlYTI0ZWZjYmFjMDQ0NzkzYzIzNjZj
OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoUHJvZHVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aFByb2R1Y3QuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENT
U01hdGhPcGVyYXRvciBnZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhP
cGVyYXRvcjo6UHJvZHVjdDsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aFByb2R1Y3Q7IH0KKyAg
ICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25B
cmd1bWVudHM+KSBjb25zdDsKIAogICAgIENTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4sIENTU051bWVyaWNUeXBlKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBt
X3ZhbHVlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhTdW0uY3BwCmluZGV4IDUxMGQyNmU5Yzc3YjBmMWZhZWJmYjI0ZDZiNzRjZDA0Y2UxMzE3YzUu
LjJlNmUwNzdkOGU0OTI2MTVhNGJmMGY4NWE2NmZmZGNjNzI5MTViMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApAQCAtOTEsNiAr
OTEsMjggQEAgQ1NTTWF0aFN1bTo6Q1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1
ZT4+IHZhbHVlcywgQ1NTTnVtZXJpY1R5cGUgdHlwZSkKIHsKIH0KIAordm9pZCBDU1NNYXRoU3Vt
OjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgT3B0aW9uU2V0PFNlcmlhbGl6YXRp
b25Bcmd1bWVudHM+IGFyZ3VtZW50cykgY29uc3QKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5j
c3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjYWxjLXNlcmlhbGl6YXRpb24KKyAgICBpZiAo
IWFyZ3VtZW50cy5jb250YWlucyhTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpXaXRob3V0UGFyZW50
aGVzZXMpKQorICAgICAgICBidWlsZGVyLmFwcGVuZChhcmd1bWVudHMuY29udGFpbnMoU2VyaWFs
aXphdGlvbkFyZ3VtZW50czo6TmVzdGVkKSA/ICIoIiA6ICJjYWxjKCIpOworICAgIG1fdmFsdWVz
LT5mb3JFYWNoKFsmXShhdXRvJiBudW1lcmljVmFsdWUsIGJvb2wgZmlyc3QpIHsKKyAgICAgICAg
T3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+IG9wZXJhbmRTZXJpYWxpemF0aW9uQXJn
dW1lbnRzIHsgU2VyaWFsaXphdGlvbkFyZ3VtZW50czo6TmVzdGVkIH07CisgICAgICAgIG9wZXJh
bmRTZXJpYWxpemF0aW9uQXJndW1lbnRzLnNldChTZXJpYWxpemF0aW9uQXJndW1lbnRzOjpXaXRo
b3V0UGFyZW50aGVzZXMsIGFyZ3VtZW50cy5jb250YWlucyhTZXJpYWxpemF0aW9uQXJndW1lbnRz
OjpXaXRob3V0UGFyZW50aGVzZXMpKTsKKyAgICAgICAgaWYgKCFmaXJzdCkgeworICAgICAgICAg
ICAgaWYgKGF1dG8qIG1hdGhOZWdhdGUgPSBkeW5hbWljRG93bmNhc3Q8Q1NTTWF0aE5lZ2F0ZT4o
bnVtZXJpY1ZhbHVlKSkgeworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgLSAiKTsK
KyAgICAgICAgICAgICAgICBtYXRoTmVnYXRlLT52YWx1ZSgpLnNlcmlhbGl6ZShidWlsZGVyLCBv
cGVyYW5kU2VyaWFsaXphdGlvbkFyZ3VtZW50cyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiArICIpOworICAgICAg
ICB9CisgICAgICAgIG51bWVyaWNWYWx1ZS5zZXJpYWxpemUoYnVpbGRlciwgb3BlcmFuZFNlcmlh
bGl6YXRpb25Bcmd1bWVudHMpOworICAgIH0pOworICAgIGlmICghYXJndW1lbnRzLmNvbnRhaW5z
KFNlcmlhbGl6YXRpb25Bcmd1bWVudHM6OldpdGhvdXRQYXJlbnRoZXNlcykpCisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmlu
ZGV4IGQ1MjM3YmJmZTU0ZTRkZjBiNDc2NDIwNWZlYTY0ZDVmY2E2ZmNlYjkuLjkxNjhhNTIyYjM5
Y2FlM2RkODFjNzI0NjA4NDQ4NzAzNmM5NDI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpTdW07IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBn
ZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01h
dGhTdW07IH0KKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgT3B0aW9uU2V0PFNl
cmlhbGl6YXRpb25Bcmd1bWVudHM+KSBjb25zdCBmaW5hbDsKIAogICAgIENTU01hdGhTdW0oVmVj
dG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxDU1NO
dW1lcmljQXJyYXk+IG1fdmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCmluZGV4IGY5NzllYWJjODgzMmU1MzBm
YTUzOWNhNTM4OTQ3ZWE4ZTVmM2FiNzUuLjIyOTc3NjM1MDQyODEzZWVkODU1MjkxNzcxMzU4YTg4
Mzc2NDEwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTnVtZXJpY0FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU051bWVyaWNBcnJheS5jcHAKQEAgLTY1LDYgKzY1LDEyIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljQXJyYXk6Oml0ZW0oc2l6ZV90IGluZGV4KQog
ICAgIHJldHVybiBtX2FycmF5W2luZGV4XS5jb3B5UmVmKCk7CiB9CiAKK3ZvaWQgQ1NTTnVtZXJp
Y0FycmF5Ojpmb3JFYWNoKEZ1bmN0aW9uPHZvaWQoY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiwgYm9v
bCBmaXJzdCk+IGZ1bmN0aW9uKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hcnJh
eS5zaXplKCk7IGkrKykKKyAgICAgICAgZnVuY3Rpb24obV9hcnJheVtpXSwgIWkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggYjg2YTliMmVlMmM2
OGJkZTM0YzkyMzkwOGFhMTJkZTU3ZDVkNzc2Yy4uMThiMGE1NGNkODAzNDEwN2RmZGNmMTdlMGRm
YjYyMDQwYThjYmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNBcnJheS5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICBz
aXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheS5zaXplKCk7IH07CiAgICAgRXhj
ZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGl0ZW0oc2l6ZV90IGluZGV4KTsKICAgICBj
b25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBhcnJheSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXJyYXk7IH0KKyAgICB2b2lkIGZvckVhY2goRnVuY3Rpb248dm9pZChjb25zdCBDU1NOdW1l
cmljVmFsdWUmLCBib29sIGZpcnN0KT4pOwogCiBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gbV9hcnJheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NNYXRyaXhDb21wb25lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKaW5kZXggNmI5NjVk
ZjI4M2M4OWQwNDdlNzBhYzdmMjFlYWRlMzIwMjJmN2FlZC4uYTM4ZGFhN2Q0MWI4M2I3MmExY2Nh
ZmUxNDA1Y2U0ZGU0YWM2ZTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU01hdHJpeENvbXBvbmVudC5jcHAKQEAgLTUyLDE1ICs1
MiwxNCBAQCBDU1NNYXRyaXhDb21wb25lbnQ6OkNTU01hdHJpeENvbXBvbmVudChSZWY8RE9NTWF0
cml4UmVhZE9ubHk+JiYgbWF0cml4LCBzdGQ6Om9wdAogewogfQogCi0vLyBGSVhNRTogRml4IGFs
bCB0aGUgZm9sbG93aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NNYXRyaXhDb21w
b25lbnQ6OnRvU3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTTWF0cml4Q29tcG9uZW50OjpzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KIAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+
IENTU01hdHJpeENvbXBvbmVudDo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NNYXRyaXhDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NNYXRyaXhDb21wb25lbnQuaAppbmRleCAwODU3ZWZjMTcyYzA5MDRmNmMxNTljOTYxODA3
OWFkMWEzMjkxZGQyLi4zNTZlMmE0M2QzMzc0YzY4YmQwNGQwOTE0ODA0MjFlNTNjODdmZjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTTWF0cml4
Q29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NT
U01hdHJpeENvbXBvbmVudC5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICAKICAgICBE
T01NYXRyaXgmIG1hdHJpeCgpOwogICAgIHZvaWQgc2V0TWF0cml4KFJlZjxET01NYXRyaXg+JiYp
OwotICAgIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBz
ZXJpYWxpemUoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJl
ZjxET01NYXRyaXg+PiB0b01hdHJpeCgpIGZpbmFsOwogICAgIAogICAgIENTU1RyYW5zZm9ybVR5
cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1RyYW5zZm9ybVR5cGU6Ok1hdHJp
eENvbXBvbmVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1BlcnNwZWN0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3Ry
YW5zZm9ybS9DU1NQZXJzcGVjdGl2ZS5jcHAKaW5kZXggOTk4MTg4NzRiMDUxZWIyODM2MzE0M2Q2
YjQ0NzZlMzhiZWYwOTAxNi4uZGFmOTYyZDkzYTFhYmJjZGUzMzA4ZmMxMzE3NmU5YjY2ZjhjMTkx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Bl
cnNwZWN0aXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0v
Q1NTUGVyc3BlY3RpdmUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaWYgRU5BQkxFKENTU19UWVBF
RF9PTSkKIAogI2luY2x1ZGUgIkNTU0tleXdvcmRWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1VuaXRW
YWx1ZS5oIgogI2luY2x1ZGUgIkRPTU1hdHJpeC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTg4LDE1ICs4OSwzMiBAQCB2
b2lkIENTU1BlcnNwZWN0aXZlOjpzZXRJczJEKGJvb2wpCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc3BlcnNwZWN0aXZlLWlzMmQgc2F5
cyB0byBkbyBub3RoaW5nIGhlcmUuCiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dp
bmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1BlcnNwZWN0aXZlOjp0b1N0cmluZygp
IGNvbnN0Cit2b2lkIENTU1BlcnNwZWN0aXZlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVp
bGRlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICAvLyBodHRwczov
L2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNzZXJpYWxpemUtYS1jc3NwZXJz
cGVjdGl2ZQorICAgIGJ1aWxkZXIuYXBwZW5kKCJwZXJzcGVjdGl2ZSgiKTsKKyAgICBXVEY6OnN3
aXRjaE9uKG1fbGVuZ3RoLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxDU1NOdW1lcmljVmFs
dWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNE
b3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKTsgdW5pdFZhbHVlICYmIHVuaXRWYWx1
ZS0+dmFsdWUoKSA8IDAuMCkgeworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJjYWxj
KCIpOworICAgICAgICAgICAgICAgIHZhbHVlLT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgICAgICAgdmFs
dWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgfSwgWyZdIChjb25zdCBTdHJpbmcmIHZh
bHVlKSB7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIH0sIFsm
XSAoY29uc3QgUmVmUHRyPENTU0tleXdvcmRWYWx1ZT4mIHZhbHVlKSB7CisgICAgICAgICAgICBp
ZiAoQ1NTU3R5bGVWYWx1ZSogc3R5bGVWYWx1ZSA9IHZhbHVlLmdldCgpKQorICAgICAgICAgICAg
ICAgIHN0eWxlVmFsdWUtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICAgICAgfSk7CisgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IENTU1Bl
cnNwZWN0aXZlOjp0b01hdHJpeCgpCiB7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICBy
ZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0cml4KERPTU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1BlcnNwZWN0
aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3Rp
dmUuaAppbmRleCA3OGYxMTIwNDFmMzQ2NzFmODhjMjgwNmE1NzQyNjFhZGQ5MzIyMzY4Li40Mjkz
NGIzM2VkYTBmODhmMTIxYTkzMTI4ZTg3NDZlODVjYWEwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUGVyc3BlY3RpdmUuaApAQCAtNDMs
OCArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3QgQ1NTUGVyc3BlY3RpdmVWYWx1ZSYg
bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRMZW5ndGgoQ1NTUGVyc3BlY3RpdmVWYWx1ZSk7Ci0gICAgCi0gICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJikg
Y29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkg
ZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6UGVyc3BlY3RpdmU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKaW5kZXggMzYyNjdk
OTVmZDY2ODg5NGNlN2M3YWVjZWZkYzk5ZDU1MzRhOTI2OC4uNmIyYWE1Zjc0NmZiN2Y4OGI4NDZi
MTExY2YzNDc5M2VlMzk4YTAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1JvdGF0ZS5jcHAKQEAgLTExNCwxNSArMTE0LDI1IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENTU1JvdGF0ZTo6c2V0QW5nbGUoUmVmPENTU051bWVyaWNWYWx1ZT4gYW5nbGUp
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotLy8gRklYTUU6IEZpeCBhbGwgdGhlIGZvbGxvd2luZyB2
aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTUm90YXRlOjp0b1N0cmluZygpIGNvbnN0Cit2
b2lkIENTU1JvdGF0ZTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzcm90YXRlCisgICAgYnVpbGRl
ci5hcHBlbmQoaXMyRCgpID8gInJvdGF0ZSgiIDogInJvdGF0ZTNkKCIpOworICAgIGlmICghaXMy
RCgpKSB7CisgICAgICAgIG1feC0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbV95LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBtX3otPnNlcmlhbGl6ZShidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgfQorICAgIG1fYW5nbGUtPnNlcmlh
bGl6ZShidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogfQogCiBFeGNlcHRpb25P
cjxSZWY8RE9NTWF0cml4Pj4gQ1NTUm90YXRlOjp0b01hdHJpeCgpCiB7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0cml4KERPTU1hdHJpeElu
aXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJh
bnNmb3JtL0NTU1JvdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3Jt
L0NTU1JvdGF0ZS5oCmluZGV4IGQ3MThmNTVlMzhlMWFjY2E3MTRkN2FkNTJiNjk4N2Y3NDRhMDI4
YTAuLmQwMzZjMjY0OTg4ZWNhNjJiZGU0OGJiYzYzYTMyNjdkZTQwMmRiNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NSb3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTUm90YXRlLmgKQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFooQ1NTTnVtYmVyaXNo
KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbmdsZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPik7
CiAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1h
dHJpeD4+IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6Um90YXRlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmNwcApp
bmRleCAzOTY0NjE5YjRiYzc3NGUxNGQ2MjZiYWRiMDY3MTU4MDVjZGNlOTI5Li5lYmFmNzZiZWE2
MTBiN2JkNjg5YTk5MWFlMmE2OGI5YjcwNjYwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2NhbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTY2FsZS5jcHAKQEAgLTgwLDE1ICs4MCwyMyBAQCB2
b2lkIENTU1NjYWxlOjpzZXRaKENTU051bWJlcmlzaCB6KQogICAgIG1feiA9IENTU051bWVyaWNW
YWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKHopKTsKIH0KIAotLy8gRklYTUU6IEZpeCBh
bGwgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTU2NhbGU6OnRv
U3RyaW5nKCkgY29uc3QKK3ZvaWQgQ1NTU2NhbGU6OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBi
dWlsZGVyKSBjb25zdAogewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNzc3Nj
YWxlCisgICAgYnVpbGRlci5hcHBlbmQoaXMyRCgpID8gInNjYWxlKCIgOiAic2NhbGUzZCgiKTsK
KyAgICBtX3gtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsK
KyAgICBtX3ktPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBpZiAoIWlzMkQoKSkgeworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgbV96LT5zZXJpYWxpemUoYnVpbGRlcik7
CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxE
T01NYXRyaXg+PiBDU1NTY2FsZTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NTY2FsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxl
LmgKaW5kZXggOTNmNmJjY2FkNmQwMzVmZjM3YTQ4ZTQ0NWVmYjM0MjJhZTBjNDNhMi4uZGNiYWUx
MjY1ZWUwMmVhY2JiN2ZmYTBhNjQzNWE4ZWY1MTIyZThiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NjYWxlLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xh
c3MgQ1NTU2NhbGUgOiBwdWJsaWMgQ1NTVHJhbnNmb3JtQ29tcG9uZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU1NjYWxlPj4gY3JlYXRlKENTU051bWJlcmlzaCB4
LCBDU1NOdW1iZXJpc2ggeSwgc3RkOjpvcHRpb25hbDxDU1NOdW1iZXJpc2g+IHopOwogCi0gICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXJpYWxpemUoU3RyaW5n
QnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiB0
b01hdHJpeCgpIGZpbmFsOwogCiAgICAgQ1NTTnVtYmVyaXNoIHgoKSBjb25zdCB7IHJldHVybiBt
X3gucHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5z
Zm9ybS9DU1NTa2V3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9D
U1NTa2V3LmNwcAppbmRleCA3NmFhNzUzMDMzZWZhYzA0MzA4MzA1ZmQ4MGIwYzRlNTY4ZWQ5Yzdl
Li5mYTY5ZjYzMzk2ZTI0MjUwM2EzZmMyYWU0YThjNGRkZTkxN2I3ZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuY3BwCkBAIC01NSwxNSAr
NTUsMjEgQEAgQ1NTU2tldzo6Q1NTU2tldyhSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBheCwgUmVmPENT
U051bWVyaWNWYWx1ZT4gYXkpCiB7CiB9CiAKLS8vIEZJWE1FOiBGaXggYWxsIHRoZSBmb2xsb3dp
bmcgdmlydHVhbCBmdW5jdGlvbnMKLQotU3RyaW5nIENTU1NrZXc6OnRvU3RyaW5nKCkgY29uc3QK
K3ZvaWQgQ1NTU2tldzo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzc2tldworICAgIGJ1aWxkZXIu
YXBwZW5kKCJza2V3KCIpOworICAgIG1fYXgtPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICBpZiAo
IWlzPENTU1VuaXRWYWx1ZT4obV9heSkgfHwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihtX2F5Lmdl
dCgpKS52YWx1ZSgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBt
X2F5LT5zZXJpYWxpemUoYnVpbGRlcik7CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBDU1NTa2V3Ojp0b01hdHJpeCgpCiB7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICByZXR1cm4gRE9NTWF0cml4Ojpmcm9tTWF0
cml4KERPTU1hdHJpeEluaXQgeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL3RyYW5zZm9ybS9DU1NTa2V3LmgKaW5kZXggOTJjZGI2M2FjNjg4OGY1ZGZlZTJjNWY2MDEx
ZTZhOGNlZWRmYzNjNS4uYmIzOTQzN2Q2MWQ4N2E3NTE5YzdiNzAzYmFmNjQ5OGEzY2ZjMDRiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTU2tldy5oCkBA
IC00NCw4ICs0NCw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldEF4KFJlZjxDU1NOdW1l
cmljVmFsdWU+IGF4KSB7IG1fYXggPSBXVEZNb3ZlKGF4KTsgfQogICAgIHZvaWQgc2V0QXkoUmVm
PENTU051bWVyaWNWYWx1ZT4gYXkpIHsgbV9heSA9IFdURk1vdmUoYXkpOyB9Ci0gICAgCi0gICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+
IHRvTWF0cml4KCkgZmluYWw7CiAgICAgCiAgICAgQ1NTVHJhbnNmb3JtVHlwZSBnZXRUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQ1NTVHJhbnNmb3JtVHlwZTo6U2tldzsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WC5jcHAKaW5kZXggNWE3
ZjU0ZjE5MTNjZTIxNjgwNWVjZWY4ODc1NjFlMDJhMDcyMzkzYS4uMmE0YmIyNzQxOTNmYzc3MWFh
NjQ4ZTA3YWZlZGUzMmQyZTI5ZWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS90cmFuc2Zvcm0vQ1NTU2tld1guY3BwCkBAIC01MywxNSArNTMsMTcgQEAgQ1NTU2tld1g6
OkNTU1NrZXdYKFJlZjxDU1NOdW1lcmljVmFsdWU+IGF4KQogewogfQogCi0vLyBGSVhNRTogRml4
IGFsbCB0aGUgZm9sbG93aW5nIHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NTa2V3WDo6
dG9TdHJpbmcoKSBjb25zdAordm9pZCBDU1NTa2V3WDo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nz
c2tld3gKKyAgICBidWlsZGVyLmFwcGVuZCgic2tld1goIik7CisgICAgbV9heC0+c2VyaWFsaXpl
KGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJl
ZjxET01NYXRyaXg+PiBDU1NTa2V3WDo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NTa2V3WC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1Nr
ZXdYLmgKaW5kZXggYjgxMTg1NjU5ZTMzMTYxNWVmNTdkNjAxNDk0YjgwMDg5ZDA1ZTBiNC4uZWVk
OTYyMDMyMDk0ZjlmNDNmOWQyNjdkMzZiNDc3NTNkODVjYTg5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdYLmgKQEAgLTQxLDggKzQxLDggQEAg
cHVibGljOgogICAgIAogICAgIGNvbnN0IENTU051bWVyaWNWYWx1ZSYgYXgoKSBjb25zdCB7IHJl
dHVybiBtX2F4LmdldCgpOyB9CiAgICAgdm9pZCBzZXRBeChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBh
eCkgeyBtX2F4ID0gV1RGTW92ZShheCk7IH0KLSAgICAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBj
b25zdCBmaW5hbDsKKworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKICAgICBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsK
ICAgICAKICAgICBDU1NUcmFuc2Zvcm1UeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBDU1NUcmFuc2Zvcm1UeXBlOjpTa2V3WDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdZLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5jcHAKaW5kZXggNDY3N2JiZGJmMjQwZjE0ZDc0Y2Vl
YmQ1ZWU5NmM5NWVmMTJkNTI0ZC4uYWQzNWY2ZmFlZGY1ZWVjYmJlYzFiOWYxMDZlNTk4NWYxOGI4
Njk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NT
U1NrZXdZLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NT
U2tld1kuY3BwCkBAIC01MywxNSArNTMsMTcgQEAgQ1NTU2tld1k6OkNTU1NrZXdZKFJlZjxDU1NO
dW1lcmljVmFsdWU+IGF5KQogewogfQogCi0vLyBGSVhNRTogRml4IGFsbCB0aGUgZm9sbG93aW5n
IHZpcnR1YWwgZnVuY3Rpb25zCi0KLVN0cmluZyBDU1NTa2V3WTo6dG9TdHJpbmcoKSBjb25zdAor
dm9pZCBDU1NTa2V3WTo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXplLWEtY3Nzc2tld3kKKyAgICBidWlsZGVy
LmFwcGVuZCgic2tld1koIik7CisgICAgbV9heS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBDU1NT
a2V3WTo6dG9NYXRyaXgoKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgcmV0dXJu
IERPTU1hdHJpeDo6ZnJvbU1hdHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NTa2V3WS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1NrZXdZLmgKaW5kZXggNjQ3NmIz
OGZmZTM3ODA2MmNiNGYyZmI3MDljYTUzZWUwMzFmOTYwYi4uZDUxZTViOWIzM2RkNmZhZTkwYmM3
OTg1YjcxZjQ4NDIxNWFmZDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vdHJhbnNmb3JtL0NTU1NrZXdZLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
dHJhbnNmb3JtL0NTU1NrZXdZLmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogICAgIAogICAg
IGNvbnN0IENTU051bWVyaWNWYWx1ZSYgYXkoKSBjb25zdCB7IHJldHVybiBtX2F5LmdldCgpOyB9
CiAgICAgdm9pZCBzZXRBeShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBheSkgeyBtX2F5ID0gV1RGTW92
ZShheSk7IH0KLSAgICAKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbDsKKworICAg
IHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRp
b25PcjxSZWY8RE9NTWF0cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsKICAgICAKICAgICBDU1NUcmFu
c2Zvcm1UeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NUcmFuc2Zvcm1UeXBl
OjpTa2V3WTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNm
b3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcAppbmRleCA5YzJkMDcyYTIxYWFk
ZmVjZmY5ZTdjMzJkZTczYzVjNWJlYmViNTU4Li5mYWVhNzk1ZjRmYzIwOTYwOGQ3MzBmNWM5ZWYy
NjkyNjNkMjNkZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFu
c2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtQ29tcG9uZW50LmNwcApAQCAtMzIsMTYgKzMy
LDE1IEBACiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCi0jaW5jbHVkZSAiRE9NTWF0cml4
LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTdHJpbmcgQ1NTVHJhbnNmb3JtQ29tcG9uZW50Ojp0b1N0cmluZygpIGNv
bnN0CiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudC4KLSAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgc2VyaWFsaXplKGJ1aWxkZXIpOwor
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NU
cmFuc2Zvcm1Db21wb25lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9y
bS9DU1NUcmFuc2Zvcm1Db21wb25lbnQuaAppbmRleCAwZjQ3ZTNlMmVhY2JhYzQ3YzllNDFiYWZj
ZGZiY2ZhOTk1YjNlNjdkLi5kMmRlMDM0Y2ViMWFlNDZkOTQ5MGRmMGI4YWE2MjNkMjI1MDgwZjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJh
bnNmb3JtQ29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNm
b3JtL0NTU1RyYW5zZm9ybUNvbXBvbmVudC5oCkBAIC01Myw3ICs1Myw4IEBAIHByb3RlY3RlZDoK
ICAgICBDU1NUcmFuc2Zvcm1Db21wb25lbnQoSXMyRCBpczJEKQogICAgICAgICA6IG1faXMyRChp
czJEKSB7IH0KIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0Owor
ICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYpIGNvbnN0ID0gMDsKICAgICBib29sIGlzMkQoKSBjb25zdCB7IHJldHVy
biBtX2lzMkQgPT0gSXMyRDo6WWVzOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElzMkQoYm9vbCBp
czJEKSB7IG1faXMyRCA9IGlzMkQgPyBJczJEOjpZZXMgOiBJczJEOjpObzsgfQogICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IHRvTWF0cml4KCkgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAKaW5kZXggYTZjZmYyMzZlZTY1YWUxYzQ3OGE5ZmQxMTcyNDdmMzQzMTNkMGE5MC4u
OThkY2Y3NzYyZjhlM2U4NjkwZmI0OGVmMTBhMDg3MWNmOTYyM2U5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFs
dWUuY3BwCkBAIC05MSw2ICs5MSwxNSBAQCBDU1NUcmFuc2Zvcm1WYWx1ZTo6Q1NTVHJhbnNmb3Jt
VmFsdWUoVmVjdG9yPFJlZlB0cjxDU1NUcmFuc2Zvcm1Db21wb25lbnQ+PiYmIHRyYQogewogfQog
Cit2b2lkIENTU1RyYW5zZm9ybVZhbHVlOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRl
ciwgT3B0aW9uU2V0PFNlcmlhbGl6YXRpb25Bcmd1bWVudHM+KSBjb25zdAoreworICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3NlcmlhbGl6ZS1hLWNz
c3RyYW5zZm9ybXZhbHVlCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NvbXBvbmVudHMu
c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOworICAgICAgICBtX2NvbXBvbmVudHNbaV0tPnNlcmlhbGl6ZShidWlsZGVyKTsKKyAg
ICB9Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zZm9ybVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuaAppbmRleCA1
YTdlYjRhM2JlODQ2YzZhN2Q1NDcwMDdlYjA1YmIyNGE5MTNhYzM0Li4yMzY2ZGE1YWIyOGQzYjc5
MDg0NDM0NmMxODI2YTkyMDJiYzMzNDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNmb3JtVmFsdWUuaApAQCAtNTMsNiArNTMs
NyBAQCBwdWJsaWM6CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NUcmFuc2Zvcm1WYWx1ZTsgfQogcHJp
dmF0ZToKICAgICBDU1NUcmFuc2Zvcm1WYWx1ZShWZWN0b3I8UmVmUHRyPENTU1RyYW5zZm9ybUNv
bXBvbmVudD4+JiYpOworICAgIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBPcHRpb25T
ZXQ8U2VyaWFsaXphdGlvbkFyZ3VtZW50cz4pIGNvbnN0IGZpbmFsOwogCiAgICAgVmVjdG9yPFJl
ZlB0cjxDU1NUcmFuc2Zvcm1Db21wb25lbnQ+PiBtX2NvbXBvbmVudHM7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNmb3JtL0NTU1RyYW5zbGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmNwcApp
bmRleCAwZWZjYjFlMWVhOTJkMjdiNjdkN2M0MmJjYjlkODYwMGU0MjMxOWVhLi5kNWZlZjc2NWNi
NmRmMTlmOWE5MDdlNGE3YzQ0ODVmNWVhZTcyNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS90cmFuc2Zvcm0vQ1NTVHJhbnNsYXRlLmNwcApAQCAtNjUsMTYgKzY1
LDIzIEBAIENTU1RyYW5zbGF0ZTo6Q1NTVHJhbnNsYXRlKENTU1RyYW5zZm9ybUNvbXBvbmVudDo6
SXMyRCBpczJELCBSZWY8Q1NTTnVtZXJpY1ZhbHVlCiB7CiB9CiAKLQotLy8gRklYTUU6IEZpeCBh
bGwgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucwotCi1TdHJpbmcgQ1NTVHJhbnNsYXRl
Ojp0b1N0cmluZygpIGNvbnN0Cit2b2lkIENTU1RyYW5zbGF0ZTo6c2VyaWFsaXplKFN0cmluZ0J1
aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jc2VyaWFsaXpl
LWEtY3NzdHJhbnNsYXRlCisgICAgYnVpbGRlci5hcHBlbmQoaXMyRCgpID8gInRyYW5zbGF0ZSgi
IDogInRyYW5zbGF0ZTNkKCIpOworICAgIG1feC0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIGJ1
aWxkZXIuYXBwZW5kKCIsICIpOworICAgIG1feS0+c2VyaWFsaXplKGJ1aWxkZXIpOworICAgIGlm
ICghaXMyRCgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBtX3ot
PnNlcmlhbGl6ZShidWlsZGVyKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIH0K
IAogRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IENTU1RyYW5zbGF0ZTo6dG9NYXRyaXgoKQog
eworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgcmV0dXJuIERPTU1hdHJpeDo6ZnJvbU1h
dHJpeChET01NYXRyaXhJbml0IHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL3RyYW5zZm9ybS9DU1NUcmFuc2xhdGUuaAppbmRleCBjMTZjY2RhNzQ0Y2JlYWMz
MGEwMDU5NDYyMDkxYzM1NDBjOGMzYTU4Li4yMjdmMzU4ZTE0OWVhYjliYTQ2OWE1MmU0ZmVlNTc3
MWU2NzEzYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS90cmFuc2Zv
cm0vQ1NTVHJhbnNsYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vdHJhbnNm
b3JtL0NTU1RyYW5zbGF0ZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFkoUmVmPENTU051bWVyaWNWYWx1ZT4geSkgeyBtX3kgPSBXVEZNb3ZlKHkpOyB9CiAgICAgdm9p
ZCBzZXRaKFJlZjxDU1NOdW1lcmljVmFsdWU+IHopIHsgbV96ID0gV1RGTW92ZSh6KTsgfQogICAg
IAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2VyaWFsaXpl
KFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRpb25PcjxSZWY8RE9NTWF0
cml4Pj4gdG9NYXRyaXgoKSBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDY0ZWE2NTdlNmUwNDJhYzNkMTAxOGM4ZGQ4ZDhmYzAyMjVmZWJhMDcuLjE1
NzZhNmExNjBlMTY1MmVmYzkwODNhNjM2ZWE3NDBjMDNlNmNmOTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTE4ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IG1vc3Qg
b2YgQ1NTIHR5cGVkIE9NIG9iamVjdCBzdHJpbmdpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NLZXl3b3JkVmFsdWUudGVudGF0aXZl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBl
ZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1RyYW5zZm9ybVZhbHVlLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQ6CisKIDIwMjItMDQtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgQ1NTVHJhbnNmb3JtVmFsdWUuaXMyRApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NLZXl3b3JkVmFsdWUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3Nz
S2V5d29yZFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggNDhkMDk4OTcwNDI2MzU5
MDExZTMzYWRmZWNmYWYyZGQ4NTVkYjJkZC4uMGJhODZkNzA1NDhlYjE1YzE3NTg0M2UwNGMzNWNm
MTVlYjE1NTZjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NL
ZXl3b3JkVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1z
ZXJpYWxpemF0aW9uL2Nzc0tleXdvcmRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0x
LDYgKzEsNiBAQAogCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBjb25zdHJ1Y3RlZCBmcm9tIElETCBz
ZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYXV0byIgYnV0IGdv
dCAiIgotRkFJTCBDU1NLZXl3b3JkVmFsdWUgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXpl
cyB0byBlc2NhcGVkIHN0cmluZ3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlxcIEhlbGxvXFwg
V29ybGQiIGJ1dCBnb3QgIiIKK1BBU1MgQ1NTS2V5d29yZFZhbHVlIGNvbnN0cnVjdGVkIGZyb20g
SURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitGQUlMIENTU0tleXdvcmRWYWx1ZSBjb25zdHJ1Y3Rl
ZCBmcm9tIElETCBzZXJpYWxpemVzIHRvIGVzY2FwZWQgc3RyaW5ncyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiXFwgSGVsbG9cXCBXb3JsZCIgYnV0IGdvdCAiIEhlbGxvIFdvcmxkIgogRkFJTCBD
U1NLZXl3b3JkVmFsdWUgZnJvbSBET01TdHJpbmcgbW9kaWZpZWQgdGhyb3VnaCAidmFsdWUiIHNl
dHRlciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibGVtb24i
IGJ1dCBnb3QgImF1dG8iCiBGQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIENTU09NIG1vZGlmaWVk
IHRocm91Z2ggInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgImxlbW9uIiBidXQgZ290ICJhdXRvIgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5
bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NNYXRoVmFsdWUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dAppbmRleCAyMDJlOWExZmIzOGM3YWZmYmMxMDQ3MjJkNTA5YmRhYjQ1NmNkMDNm
Li44NDc4ZjQ2MzljYWRlYWFhYmU5NWM4ODhiMzYyZjlkMTU4ODIxYzNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzTWF0aFZhbHVlLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTEsMjIgKzEsMjIgQEAKIAotRkFJTCBDU1NNYXRoTWF4
IHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJtYXgoMSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE1heCB3aXRoIG1vcmUgdGhh
biBvbmUgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIm1heCgxLCAyLCAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoTWF4IGNvbnRhaW5pbmcg
bmVzdGVkIENTU01hdGhWYWx1ZXMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIm1heCgxICsgMiwgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE1pbiB3aXRo
IG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAibWluKDEpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhNaW4gd2l0aCBtb3JlIHRoYW4gb25l
IGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJt
aW4oMSwgMiwgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE1pbiBjb250YWluaW5nIG5lc3Rl
ZCBDU1NNYXRoVmFsdWVzIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJtaW4oMSArIDIsIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhTdW0gd2l0aCBvbmUg
YXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNh
bGMoMSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aFN1bSB3aXRoIG1vcmUgdGhhbiBvbmUgYXJn
dW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNhbGMo
MSArIDIgKyAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoU3VtIHdpdGggYSBDU1NNYXRoTmVn
YXRlIGFzIGZpcnN0IHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJjYWxjKCgtMSkgKyAyICsgMykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aFN1bSBj
b250YWluaW5nIGEgQ1NTTWF0aE5lZ2F0ZSBhZnRlciBmaXJzdCB2YWx1ZSBzZXJpYWxpemVzIGNv
cnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygxIC0gMiArIDMpIiBidXQgZ290
ICIiCi1GQUlMIENTU01hdGhTdW0gbmVzdGVkIGluc2lkZSBhIENTU01hdGhWYWx1ZSBzZXJpYWxp
emVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygoMSArIDIpICsgMyki
IGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE5lZ2F0ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiY2FsYygtMSkiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aE5l
Z2F0ZSBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKCgtMSkpIiBidXQgZ290ICIiCi1GQUlMIENTU01h
dGhQcm9kdWN0IHdpdGggb25lIGFyZ3VtZW50IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJjYWxjKDEpIiBidXQgZ290ICIiCi1GQUlMIENTU01hdGhQcm9kdWN0
IHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiY2FsYygxICogMiAqIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU01h
dGhQcm9kdWN0IHdpdGggYSBDU1NNYXRoSW52ZXJ0IGFzIGZpcnN0IHZhbHVlIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKCgxIC8gMSkgKiAyICogMyki
IGJ1dCBnb3QgIiIKLUZBSUwgQ1NTTWF0aFByb2R1Y3QgY29udGFpbmluZyBhIENTU01hdGhJbnZl
cnQgYWZ0ZXIgZmlyc3QgdmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImNhbGMoMSAvIDIgKiAzKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoUHJvZHVj
dCBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJjYWxjKCgxICogMikgKiAzKSIgYnV0IGdvdCAiIgotRkFJTCBD
U1NNYXRoSW52ZXJ0IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJjYWxjKDEgLyAxKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NNYXRoSW52ZXJ0IG5lc3RlZCBpbnNp
ZGUgYSBDU1NNYXRoVmFsdWUgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImNhbGMoKDEgLyAxKSkiIGJ1dCBnb3QgIiIKK1BBU1MgQ1NTTWF0aE1heCB3aXRoIG9u
ZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoTWF4IHdpdGggbW9y
ZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoTWF4
IGNvbnRhaW5pbmcgbmVzdGVkIENTU01hdGhWYWx1ZXMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BB
U1MgQ1NTTWF0aE1pbiB3aXRoIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFT
UyBDU1NNYXRoTWluIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJl
Y3RseQorUEFTUyBDU1NNYXRoTWluIGNvbnRhaW5pbmcgbmVzdGVkIENTU01hdGhWYWx1ZXMgc2Vy
aWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFN1bSB3aXRoIG9uZSBhcmd1bWVudCBzZXJp
YWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoU3VtIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1
bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoU3VtIHdpdGggYSBDU1NNYXRo
TmVnYXRlIGFzIGZpcnN0IHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhT
dW0gY29udGFpbmluZyBhIENTU01hdGhOZWdhdGUgYWZ0ZXIgZmlyc3QgdmFsdWUgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aFN1bSBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0aFZhbHVl
IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhOZWdhdGUgc2VyaWFsaXplcyBjb3Jy
ZWN0bHkKK1BBU1MgQ1NTTWF0aE5lZ2F0ZSBuZXN0ZWQgaW5zaWRlIGEgQ1NTTWF0aFZhbHVlIHNl
cmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhQcm9kdWN0IHdpdGggb25lIGFyZ3VtZW50
IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhQcm9kdWN0IHdpdGggbW9yZSB0aGFu
IG9uZSBhcmd1bWVudCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoUHJvZHVjdCB3
aXRoIGEgQ1NTTWF0aEludmVydCBhcyBmaXJzdCB2YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQor
UEFTUyBDU1NNYXRoUHJvZHVjdCBjb250YWluaW5nIGEgQ1NTTWF0aEludmVydCBhZnRlciBmaXJz
dCB2YWx1ZSBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NNYXRoUHJvZHVjdCBuZXN0ZWQg
aW5zaWRlIGEgQ1NTTWF0aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU01hdGhJ
bnZlcnQgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTTWF0aEludmVydCBuZXN0ZWQgaW5z
aWRlIGEgQ1NTTWF0aFZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVHJhbnNmb3JtVmFsdWUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVHJhbnNmb3JtVmFs
dWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCBkMzlkYmE5ODg5ZmRhNzEyYWZiNzBmOTA1
ODIxMDBkYmI1OTI2ZTI1Li4zNjM5M2E2YTdjMzQ0MzFjZTQ1ZjA0NDJmNGY1ODkwOGM3YTY2ZGZi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1RyYW5zZm9ybVZh
bHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXph
dGlvbi9jc3NUcmFuc2Zvcm1WYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDIwICsx
LDIwIEBACiAKLUZBSUwgQ1NTVHJhbnNsYXRlIHdpdGggMiBhcmd1bWVudHMgc2VyaWFsaXplcyBj
b3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRyYW5zbGF0ZSgxJSwgMXB4KSIgYnV0
IGdvdCAiIgotRkFJTCBDU1NUcmFuc2xhdGUgd2l0aCAzIGFyZ3VtZW50cyBzZXJpYWxpemVzIGNv
cnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJhbnNsYXRlM2QoMXB4LCAyJSwgM3B4
KSIgYnV0IGdvdCAiIgotRkFJTCBDU1NTY2FsZSB3aXRoIDIgYXJndW1lbnRzIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzY2FsZSgyLCAzKSIgYnV0IGdvdCAi
IgotRkFJTCBDU1NTY2FsZSB3aXRoIDMgYXJndW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJzY2FsZTNkKDEsIDIsIDMpIiBidXQgZ290ICIiCi1GQUlM
IENTU1JvdGF0ZSB3aXRoIDEgYXJndW1lbnQgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInJvdGF0ZSg5MGRlZykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTUm90YXRl
IHdpdGggNCBhcmd1bWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInJvdGF0ZTNkKDEsIDIsIDMsIDkwZGVnKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NTa2V3
IHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJza2V3KDkwZGVn
LCA0NWRlZykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTU2tldyB3aXRoIFkgd2hpY2ggaXMgMCB2YWx1
ZSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2tldyg5MGRl
ZykiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTU2tld1ggc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInNrZXdYKDkwZGVnKSIgYnV0IGdvdCAiIgotRkFJTCBDU1NTa2V3
WSBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2tld1koOTBk
ZWcpIiBidXQgZ290ICIiCi1GQUlMIENTU1BlcnNwZWN0aXZlIHNlcmlhbGl6ZXMgY29ycmVjdGx5
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJwZXJzcGVjdGl2ZSgxcHgpIiBidXQgZ290ICIiCi1G
QUlMIENTU1BlcnNwZWN0aXZlIHdpdGggbmVnYXRpdmUgbGVuZ3RoIHNlcmlhbGl6ZXMgY29ycmVj
dGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJwZXJzcGVjdGl2ZShjYWxjKC0xcHgpKSIgYnV0
IGdvdCAiIgotRkFJTCBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRoIGEgc2luZ2xlIHRyYW5zZm9ybSBz
ZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicGVyc3BlY3RpdmUo
MXB4KSIgYnV0IGdvdCAiIgotRkFJTCBDU1NUcmFuc2Zvcm1WYWx1ZSB3aXRoIG11bHRpcGxlIHRy
YW5zZm9ybXMgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRy
YW5zbGF0ZSgxcHgsIDBweCkgcm90YXRlKDkwZGVnKSBwZXJzcGVjdGl2ZSgxcHgpIHNrZXcoOTBk
ZWcsIDQ1ZGVnKSBzY2FsZTNkKDEsIDIsIDMpIiBidXQgZ290ICIiCi1GQUlMIENTU1RyYW5zZm9y
bVZhbHVlIGNvbnRhaW5pbmcgQ1NTTWF0aFZhbHVlcyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAidHJhbnNsYXRlKGNhbGMoMXB4ICsgMWVtKSwgMHB4KSByb3Rh
dGUoY2FsYyg5MGRlZyArIDF0dXJuKSkgcGVyc3BlY3RpdmUoY2FsYygxcHggKyAxZW0pKSBza2V3
KGNhbGMoOTBkZWcgKiAyKSwgY2FsYygxdHVybiAqIDIpKSBzY2FsZTNkKGNhbGMoMSAqIDIpLCBj
YWxjKDEgKyAxKSwgY2FsYygzKSkiIGJ1dCBnb3QgIiIKK1BBU1MgQ1NTVHJhbnNsYXRlIHdpdGgg
MiBhcmd1bWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVHJhbnNsYXRlIHdpdGgg
MyBhcmd1bWVudHMgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTU2NhbGUgd2l0aCAyIGFy
Z3VtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NTY2FsZSB3aXRoIDMgYXJndW1l
bnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1JvdGF0ZSB3aXRoIDEgYXJndW1lbnQg
c2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTUm90YXRlIHdpdGggNCBhcmd1bWVudHMgc2Vy
aWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTU2tldyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFT
UyBDU1NTa2V3IHdpdGggWSB3aGljaCBpcyAwIHZhbHVlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQ
QVNTIENTU1NrZXdYIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1NrZXdZIHNlcmlhbGl6
ZXMgY29ycmVjdGx5CitQQVNTIENTU1BlcnNwZWN0aXZlIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQ
QVNTIENTU1BlcnNwZWN0aXZlIHdpdGggbmVnYXRpdmUgbGVuZ3RoIHNlcmlhbGl6ZXMgY29ycmVj
dGx5CitQQVNTIENTU1RyYW5zZm9ybVZhbHVlIHdpdGggYSBzaW5nbGUgdHJhbnNmb3JtIHNlcmlh
bGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1RyYW5zZm9ybVZhbHVlIHdpdGggbXVsdGlwbGUgdHJh
bnNmb3JtcyBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NUcmFuc2Zvcm1WYWx1ZSBjb250
YWluaW5nIENTU01hdGhWYWx1ZXMgc2VyaWFsaXplcyBjb3JyZWN0bHkKIEZBSUwgQ1NTTWF0cml4
Q29tcG9uZW50IHdpdGggNiBlbGVtZW50cyBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAibWF0cml4KDEsIDIsIDMsIDQsIDUsIDYpIiBidXQgZ290ICIiCiBGQUlM
IENTU01hdHJpeENvbXBvbmVudCB3aXRoIDE2IGVsZW1lbnRzIHNlcmlhbGl6ZXMgY29ycmVjdGx5
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJtYXRyaXgzZCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNikiIGJ1dCBnb3QgIiIKLUZBSUwgQ1NTVHJh
bnNmb3JtVmFsdWUgd2l0aCB1cGRhdGVkIGlzMkQgc2VyaWFsaXplcyBhcyAyRCB0cmFuc2Zvcm1z
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0cmFuc2xhdGUoMXB4LCAycHgpIHJvdGF0ZSg5MGRl
Zykgc2NhbGUoMSwgMikiIGJ1dCBnb3QgIiIKK1BBU1MgQ1NTVHJhbnNmb3JtVmFsdWUgd2l0aCB1
cGRhdGVkIGlzMkQgc2VyaWFsaXplcyBhcyAyRCB0cmFuc2Zvcm1zCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>