<?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>110732</bug_id>
          
          <creation_ts>2013-02-25 00:53:58 -0800</creation_ts>
          <short_desc>Web Inspector: Selector&apos;s raw start position in its line is considered to be 0 when computing UILocation</short_desc>
          <delta_ts>2013-03-01 02:35:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>840779</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-25 00:53:58 -0800</bug_when>
    <thetext>Upstreaming https://code.google.com/p/chromium/issues/detail?id=177976</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840926</commentid>
    <comment_count>1</comment_count>
      <attachid>190046</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-25 06:28:37 -0800</bug_when>
    <thetext>Created attachment 190046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840933</commentid>
    <comment_count>2</comment_count>
      <attachid>190046</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-25 06:43:03 -0800</bug_when>
    <thetext>Comment on attachment 190046
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:149
&gt; +    ASSERT(m_hasText);

Could you reuse the code in getRegularExpressionMatchesByLines?

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:176
&gt; +struct LineColumn {

wtf/text/TextPosition.h

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:191
&gt; +    const size_t vectorSize = lineEndings.size();

Move to ContentSearchUtil</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841664</commentid>
    <comment_count>3</comment_count>
      <attachid>190212</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-25 23:04:43 -0800</bug_when>
    <thetext>Created attachment 190212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842891</commentid>
    <comment_count>4</comment_count>
      <attachid>190212</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-27 03:22:50 -0800</bug_when>
    <thetext>Comment on attachment 190212
Patch

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

&gt; Source/WebCore/inspector/ContentSearchUtils.cpp:74
&gt; +    if (!vectorSize)

This check should not be needed, see my comment to lineEndings below.

&gt; Source/WebCore/inspector/ContentSearchUtils.cpp:79
&gt; +    size_t previousLineEndingOffset;

const size_t* foundLineEnding = approximateBinarySearch&lt;size_t, size_t&gt;(lineEndings, vectorSize, offset, sizetExtractor);
    size_t lineIndex = foundLineEnding - &amp;lineEndings.at(0);
    if (offset &gt; *foundLineEnding)
        ++lineIndex;
    size_t previousLineEndingOffset = lineIndex &gt;= 0 ? lineEndings.at(lineIndex-1) : 0;
    size_t column = offset - previousLineEndingOffset;
    return TextPosition(OrdinalNumber::fromZeroBasedInt(lineIndex), OrdinalNumber::fromZeroBasedInt(column));

Seems to be a shorter way to do the same.

&gt; Source/WebCore/inspector/ContentSearchUtils.cpp:128
&gt; +    while (start &lt; text.length()) {

I would do as follows instead to make sure we lways have at least one line (even for an empty file). That would be consistent with what we do in front-end (see utilities.js)
   while (start &lt; text.length()) {
        size_t lineEnd = text.find(&apos;\n&apos;, start);
        if (lineEnd == notFound)
            break;
        result-&gt;append(lineEnd);
        start = lineEnd + 1;
    }
    result-&gt;append(text.length());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843888</commentid>
    <comment_count>5</comment_count>
      <attachid>190212</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-28 01:44:21 -0800</bug_when>
    <thetext>Comment on attachment 190212
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:527
&gt; +    OwnPtr&lt;Vector&lt;size_t&gt; &gt; lineEndings(m_parentStyleSheet ? m_parentStyleSheet-&gt;lineEndings() : PassOwnPtr&lt;Vector&lt;size_t&gt; &gt;());

Could you please explain what is the expected value of SourceRange in case m_parentStyleSheet is null and hence lineEndings are not available?

&gt; Source/WebCore/inspector/front-end/CSSStyleModel.js:882
&gt; +            if (resource &amp;&amp; resource.type === WebInspector.resourceTypes.Stylesheet) {

Why is the resource type important here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843889</commentid>
    <comment_count>6</comment_count>
      <attachid>190212</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-28 01:45:16 -0800</bug_when>
    <thetext>Comment on attachment 190212
Patch

r- per my comment about complexity of lineColumnFromOffset implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843935</commentid>
    <comment_count>7</comment_count>
      <attachid>190690</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-28 03:02:42 -0800</bug_when>
    <thetext>Created attachment 190690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844069</commentid>
    <comment_count>8</comment_count>
      <attachid>190690</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-02-28 07:42:30 -0800</bug_when>
    <thetext>Comment on attachment 190690
Patch

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

&gt; Source/WebCore/inspector/ContentSearchUtils.cpp:71
&gt; +TextPosition lineColumnFromOffset(size_t offset, const Vector&lt;size_t&gt;&amp; lineEndings)

textPositionFromOffset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844071</commentid>
    <comment_count>9</comment_count>
      <attachid>190690</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-28 07:45:00 -0800</bug_when>
    <thetext>Comment on attachment 190690
Patch

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

&gt;&gt; Source/WebCore/inspector/ContentSearchUtils.cpp:71
&gt;&gt; +TextPosition lineColumnFromOffset(size_t offset, const Vector&lt;size_t&gt;&amp; lineEndings)
&gt; 
&gt; textPositionFromOffset?

Makes sense, as long as it represents the line:column pair. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844079</commentid>
    <comment_count>10</comment_count>
      <attachid>190729</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-28 07:57:32 -0800</bug_when>
    <thetext>Created attachment 190729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844956</commentid>
    <comment_count>11</comment_count>
      <attachid>190729</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-01 02:24:23 -0800</bug_when>
    <thetext>Comment on attachment 190729
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:64
&gt; +#include &lt;wtf/StdLibExtras.h&gt;

This include should go to ContentSearchUtils</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844961</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-03-01 02:35:48 -0800</bug_when>
    <thetext>Committed r144434: &lt;http://trac.webkit.org/changeset/144434&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190046</attachid>
            <date>2013-02-25 06:28:37 -0800</date>
            <delta_ts>2013-02-25 23:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110732-20130225182452.patch</filename>
            <type>text/plain</type>
            <size>24724</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk4YTJkMTNkMzFkMGE4
MGM3NWVhM2ViY2NjM2FjOTlmMTlhNzA0My4uN2U5NmMxNmVkOTcwNDFkZmM3MWYxODA2ZDZkNmQz
ZjNhNmU2YTMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTI1ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU2VsZWN0b3IncyByYXcgc3RhcnQgcG9zaXRpb24gaW4gaXRzIGxpbmUgaXMgY29uc2lk
ZXJlZCB0byBiZSAwIHdoZW4gY29tcHV0aW5nIFVJTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246IFVz
ZSBsaW5lOmNvbHVtbiBmb3IgU291cmNlUmFuZ2UgYm91bmRhcmllcyByYXRoZXIgdGhhbiByYXcg
b2Zmc2V0cy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChQYXJzZWRTdHlsZVNoZWV0OjpzZXRUZXh0KToKKyAgICAgICAgKFBhcnNlZFN0eWxl
U2hlZXQ6OmxpbmVFbmRpbmdzKTogQnVpbGQgYW5kIGNhY2hlIGxpbmUgZW5kaW5ncyBsaXN0IGZv
ciB0aGUgc3R5bGVzaGVldCB0ZXh0LgorICAgICAgICAoTGluZUNvbHVtbik6CisgICAgICAgIChX
ZWJDb3JlOjp1bnNpZ25lZEV4dHJhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpsaW5lQ29sdW1u
RnJvbU9mZnNldCk6IENvbnZlcnRzIHJhdyBvZmZzZXQgdG8gbGluZTpjb2x1bW4gZ2l2ZW4gYW4g
YXJyYXkgb2YgbGluZSBlbmRpbmcgb2Zmc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkU291
cmNlUmFuZ2VPYmplY3QpOiBGb2xsb3cgdGhlIHByb3RvY29sIGNoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxlKTogU3VwcGx5IHRoZSBs
aW5lRW5naW5ncyBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpz
dHlsZVdpdGhQcm9wZXJ0aWVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclNlbGVjdG9yTGlzdCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6bGluZUVuZGluZ3MpOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczogUmVtb3ZlZCB0aGUgYnl0ZSBjb3VudGluZyBmb3Ig
dW51c2VkIENTUy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUuX3NldFJhd0xvY2F0
aW9uKTogV2hlbiBjb21wdXRpbmcgdGhlIHJ1bGUgcmF3IGxvY2F0aW9uLAorICAgICAgICAgIG9u
bHkgcmVseSBvbiB0aGUgc2VsZWN0b3Igc291cmNlIHJhbmdlIGlmIHRoZSB1bmRlcmx5aW5nIHJl
c291cmNlIGlzIGtub3duIHRvIGJlIGEgQ1NTIHN0eWxlc2hlZXQuCisKIDIwMTMtMDItMjQgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDM3OTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KaW5kZXggZjI3ZjU0YzAzZDQ5NzA1ODM0Mjk4YWViY2MzNjgxMWU1M2FhNzc0Zi4u
NzllYzY4YjQxM2JkNmZmZDcwN2VlZGE0NGUzOTRhOWE5N2M2ZmExNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjI3MSw4ICsyMjcxLDEwIEBACiAgICAgICAg
ICAgICAgICAgImlkIjogIlNvdXJjZVJhbmdlIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJv
YmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6
ICJTdGFydCBvZiByYW5nZSAoaW5jbHVzaXZlKS4ifSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkVuZCBvZiBy
YW5nZSAoZXhjbHVzaXZlKS4ifQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0
TGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnQgbGluZSBvZiBy
YW5nZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnRDb2x1bW4iLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IGNvbHVtbiBvZiByYW5nZSAo
aW5jbHVzaXZlKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kTGluZSIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIGxpbmUgb2YgcmFuZ2UiIH0s
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kQ29sdW1uIiwgInR5cGUiOiAiaW50
ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJFbmQgY29sdW1uIG9mIHJhbmdlIChleGNsdXNpdmUpLiIg
fQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRl
eHQgcmFuZ2Ugd2l0aGluIGEgcmVzb3VyY2UuIgogICAgICAgICAgICAgfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCBkYWFjYjk3
MDg0ZTcxMWE2ZjU4NjFhYWJiMWQyYjU0ZDAyYjM4MTQxLi5kZTNlMTI0YTViNjFhMzE5NDBhYTJl
NzAyMDMyYzAxYjJmNGNlMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAKICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNzksNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRTb3VyY2VEYXRhKFBhc3NPd25QdHI8UnVsZVNvdXJjZURhdGFMaXN0Pik7CiAgICAgYm9vbCBo
YXNTb3VyY2VEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEYXRhOyB9CiAgICAgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpDU1NSdWxlU291cmNlRGF0YT4gcnVsZVNvdXJjZURhdGFBdCh1bnNpZ25l
ZCkgY29uc3Q7CisgICAgY29uc3QgV1RGOjpWZWN0b3I8dW5zaWduZWQ+JiBsaW5lRW5kaW5ncygp
IGNvbnN0OwogCiBwcml2YXRlOgogCkBAIC04Nyw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fdGV4dDsKICAgICBib29sIG1faGFzVGV4dDsKICAgICBPd25QdHI8UnVsZVNvdXJjZURh
dGFMaXN0PiBtX3NvdXJjZURhdGE7CisgICAgbXV0YWJsZSBPd25QdHI8VmVjdG9yPHVuc2lnbmVk
PiA+IG1fbGluZUVuZGluZ3M7CiB9OwogCiBQYXJzZWRTdHlsZVNoZWV0OjpQYXJzZWRTdHlsZVNo
ZWV0KCkKQEAgLTk5LDYgKzEwMiw3IEBAIHZvaWQgUGFyc2VkU3R5bGVTaGVldDo6c2V0VGV4dChj
b25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgbV9oYXNUZXh0ID0gdHJ1ZTsKICAgICBtX3RleHQg
PSB0ZXh0OworICAgIG1fbGluZUVuZGluZ3MuY2xlYXIoKTsKICAgICBzZXRTb3VyY2VEYXRhKG51
bGxwdHIpOwogfQogCkBAIC0xNDAsNiArMTQ0LDI2IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6Q1NT
UnVsZVNvdXJjZURhdGE+IFBhcnNlZFN0eWxlU2hlZXQ6OnJ1bGVTb3VyY2VEYXRhQXQodW5zaWdu
CiAgICAgcmV0dXJuIG1fc291cmNlRGF0YS0+YXQoaW5kZXgpOwogfQogCitjb25zdCBXVEY6OlZl
Y3Rvcjx1bnNpZ25lZD4mIFBhcnNlZFN0eWxlU2hlZXQ6OmxpbmVFbmRpbmdzKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQobV9oYXNUZXh0KTsKKyAgICBpZiAoIW1fbGluZUVuZGluZ3MpIHsKKyAgICAg
ICAgbV9saW5lRW5kaW5ncyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8dW5zaWduZWQ+KCkpOworICAg
ICAgICBXZWJDb3JlOjpSZWd1bGFyRXhwcmVzc2lvbiByZWdleCgiXHI/XG4iLCBUZXh0Q2FzZVNl
bnNpdGl2ZSwgV2ViQ29yZTo6TXVsdGlsaW5lRW5hYmxlZCk7CisgICAgICAgIGludCBwb3NpdGlv
bjsKKyAgICAgICAgdW5zaWduZWQgc3RhcnQgPSAwOworICAgICAgICBpbnQgbWF0Y2hMZW5ndGg7
CisgICAgICAgIHdoaWxlICgocG9zaXRpb24gPSByZWdleC5tYXRjaChtX3RleHQsIHN0YXJ0LCAm
bWF0Y2hMZW5ndGgpKSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHN0YXJ0ID49IG1fdGV4dC5s
ZW5ndGgoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChtYXRjaExl
bmd0aCA+IDApCisgICAgICAgICAgICAgICAgbV9saW5lRW5kaW5ncy0+YXBwZW5kKHBvc2l0aW9u
ICsgKG1hdGNoTGVuZ3RoIC0gMSkpOworICAgICAgICAgICAgc3RhcnQgPSBwb3NpdGlvbiArIDE7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICptX2xpbmVFbmRpbmdzOworfQorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gTWVkaWFMaXN0U291cmNlIHsKQEAgLTE0OSwxMSArMTcz
LDU3IEBAIGVudW0gTWVkaWFMaXN0U291cmNlIHsKICAgICBNZWRpYUxpc3RTb3VyY2VJbXBvcnRS
dWxlCiB9OwogCi1zdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VSYW5n
ZT4gYnVpbGRTb3VyY2VSYW5nZU9iamVjdChjb25zdCBTb3VyY2VSYW5nZSYgcmFuZ2UpCitzdHJ1
Y3QgTGluZUNvbHVtbiB7CisgICAgTGluZUNvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBj
b2x1bW4pCisgICAgICAgIDogbGluZShsaW5lKQorICAgICAgICAsIGNvbHVtbihjb2x1bW4pIHsg
fQorICAgIHVuc2lnbmVkIGxpbmU7CisgICAgdW5zaWduZWQgY29sdW1uOworfTsKKworaW5saW5l
IHVuc2lnbmVkIHVuc2lnbmVkRXh0cmFjdG9yKGNvbnN0IHVuc2lnbmVkKiB2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gKnZhbHVlOworfQorCitzdGF0aWMgTGluZUNvbHVtbiBsaW5lQ29sdW1uRnJvbU9m
ZnNldCh1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZD4mIGxpbmVFbmRpbmdz
KQogeworICAgIGNvbnN0IHNpemVfdCB2ZWN0b3JTaXplID0gbGluZUVuZGluZ3Muc2l6ZSgpOwor
ICAgIGlmICghdmVjdG9yU2l6ZSkKKyAgICAgICAgcmV0dXJuIExpbmVDb2x1bW4oMCwgb2Zmc2V0
KTsKKworICAgIGNvbnN0IHVuc2lnbmVkKiBmb3VuZExpbmVFbmRpbmcgPSBhcHByb3hpbWF0ZUJp
bmFyeVNlYXJjaDx1bnNpZ25lZCwgdW5zaWduZWQ+KGxpbmVFbmRpbmdzLCB2ZWN0b3JTaXplLCBv
ZmZzZXQsIHVuc2lnbmVkRXh0cmFjdG9yKTsKKyAgICB1bnNpZ25lZCBsaW5lSW5kZXggPSBmb3Vu
ZExpbmVFbmRpbmcgLSAmbGluZUVuZGluZ3MuYXQoMCk7CisgICAgdW5zaWduZWQgcHJldmlvdXNM
aW5lRW5kaW5nT2Zmc2V0OworICAgIGlmIChsaW5lSW5kZXggPiAwKSB7CisgICAgICAgIGlmIChv
ZmZzZXQgPCAqZm91bmRMaW5lRW5kaW5nKQorICAgICAgICAgICAgLS1saW5lSW5kZXg7CisgICAg
ICAgIHByZXZpb3VzTGluZUVuZGluZ09mZnNldCA9IGxpbmVFbmRpbmdzLmF0KGxpbmVJbmRleCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG9mZnNldCA8ICpmb3VuZExpbmVFbmRpbmcpIHsK
KyAgICAgICAgICAgIHByZXZpb3VzTGluZUVuZGluZ09mZnNldCA9IFVJTlRfTUFYOworICAgICAg
ICAgICAgbGluZUluZGV4ID0gVUlOVF9NQVg7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
cHJldmlvdXNMaW5lRW5kaW5nT2Zmc2V0ID0gbGluZUVuZGluZ3MuYXQoMCk7CisgICAgfQorICAg
IHVuc2lnbmVkIGNvbHVtbiA9IG9mZnNldCAtIChwcmV2aW91c0xpbmVFbmRpbmdPZmZzZXQgPT0g
VUlOVF9NQVggPyAwIDogKHByZXZpb3VzTGluZUVuZGluZ09mZnNldCAtIDEpKTsKKyAgICBpZiAo
bGluZUluZGV4ID09IFVJTlRfTUFYKQorICAgICAgICBsaW5lSW5kZXggPSAwOworICAgIGVsc2UK
KyAgICAgICAgKytsaW5lSW5kZXg7CisgICAgcmV0dXJuIExpbmVDb2x1bW4obGluZUluZGV4LCBj
b2x1bW4pOworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VS
YW5nZT4gYnVpbGRTb3VyY2VSYW5nZU9iamVjdChjb25zdCBTb3VyY2VSYW5nZSYgcmFuZ2UsIGNv
bnN0IFZlY3Rvcjx1bnNpZ25lZD4mIGxpbmVFbmRpbmdzKQoreworICAgIExpbmVDb2x1bW4gc3Rh
cnQgPSBsaW5lQ29sdW1uRnJvbU9mZnNldChyYW5nZS5zdGFydCwgbGluZUVuZGluZ3MpOworICAg
IExpbmVDb2x1bW4gZW5kID0gbGluZUNvbHVtbkZyb21PZmZzZXQocmFuZ2UuZW5kLCBsaW5lRW5k
aW5ncyk7CisKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U+IHJlc3Vs
dCA9IFR5cGVCdWlsZGVyOjpDU1M6OlNvdXJjZVJhbmdlOjpjcmVhdGUoKQotICAgICAgICAuc2V0
U3RhcnQocmFuZ2Uuc3RhcnQpCi0gICAgICAgIC5zZXRFbmQocmFuZ2UuZW5kKTsKKyAgICAgICAg
LnNldFN0YXJ0TGluZShzdGFydC5saW5lKQorICAgICAgICAuc2V0U3RhcnRDb2x1bW4oc3RhcnQu
Y29sdW1uKQorICAgICAgICAuc2V0RW5kTGluZShlbmQubGluZSkKKyAgICAgICAgLnNldEVuZENv
bHVtbihlbmQuY29sdW1uKTsKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIApAQCAt
MzExLDcgKzM4MSw3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+IElu
c3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxlKCkgY29uCiAKICAgICBSZWZQdHI8Q1NT
UnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVu
dFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpIDogMDsKICAgICBp
ZiAoc291cmNlRGF0YSkKLSAgICAgICAgcmVzdWx0LT5zZXRSYW5nZShidWlsZFNvdXJjZVJhbmdl
T2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVCb2R5UmFuZ2UpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRS
YW5nZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVCb2R5UmFuZ2UsIG1f
cGFyZW50U3R5bGVTaGVldC0+bGluZUVuZGluZ3MoKSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlKCk7CiB9CkBAIC01NDAsNyArNjEwLDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMoKSBjb24K
ICAgICAgICAgaWYgKCFpdC0+ZGlzYWJsZWQpIHsKICAgICAgICAgICAgIGlmIChpdC0+aGFzU291
cmNlKSB7CiAgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldEltcGxpY2l0KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChw
cm9wZXJ0eUVudHJ5LnJhbmdlKSk7CisgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldFJhbmdl
KGJ1aWxkU291cmNlUmFuZ2VPYmplY3QocHJvcGVydHlFbnRyeS5yYW5nZSwgbV9wYXJlbnRTdHls
ZVNoZWV0LT5saW5lRW5kaW5ncygpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBQYXJzZWQgcHJv
cGVydHkgb3ZlcnJpZGVzIGFueSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUuIE5vbi1wYXJz
ZWQgcHJvcGVydHkgb3ZlcnJpZGVzCiAgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgbm9uLXBh
cnNlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUgKGlmIGFueSkuCkBAIC0xMDAxLDcgKzEw
NzEsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlNlbGVjdG9yTGlzdD4gSW5zcGVj
dG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTZQogICAgICAgICAuc2V0VGV4dChzZWxlY3Rv
clRleHQpCiAgICAgICAgIC5yZWxlYXNlKCk7CiAgICAgaWYgKHNvdXJjZURhdGEpCi0gICAgICAg
IHJlc3VsdC0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VEYXRhLT5ydWxl
SGVhZGVyUmFuZ2UpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRSYW5nZShidWlsZFNvdXJjZVJhbmdl
T2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZSwgbGluZUVuZGluZ3MoKSkpOwogICAg
IHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCkBAIC0xMTYzLDYgKzEyMzMsMTEgQEAgUmVm
UHRyPENTU1J1bGVTb3VyY2VEYXRhPiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpydWxlU291cmNlRGF0
YUZvcihDU1NTdHlsZURlY2xhcmEKICAgICByZXR1cm4gbV9wYXJzZWRTdHlsZVNoZWV0LT5ydWxl
U291cmNlRGF0YUF0KHJ1bGVJbmRleEJ5U3R5bGUoc3R5bGUpKTsKIH0KIAorY29uc3QgVmVjdG9y
PHVuc2lnbmVkPiYgSW5zcGVjdG9yU3R5bGVTaGVldDo6bGluZUVuZGluZ3MoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3BhcnNlZFN0eWxlU2hlZXQtPmxpbmVFbmRpbmdzKCk7Cit9CisKIHVuc2ln
bmVkIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJ1bGVJbmRleEJ5U3R5bGUoQ1NTU3R5bGVEZWNsYXJh
dGlvbiogcGFnZVN0eWxlKSBjb25zdAogewogICAgIGVuc3VyZUZsYXRSdWxlcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKaW5kZXggODFjZDc3
ODgxZDVmOGQ2YTUxOWUwMjQ1ZDhiOWI5NjJlNzQ0ZWY2MS4uYjA5NmYyNjY5NmQ1NzUzODVmOGUw
ODM2MDljNjBhM2NhY2VlOWQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IGVuc3VyZVRleHQoKSBjb25zdDsKICAgICBib29sIGVuc3VyZVNvdXJjZURhdGEoKTsKICAgICB2
b2lkIGVuc3VyZUZsYXRSdWxlcygpIGNvbnN0OworICAgIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZD4m
IGxpbmVFbmRpbmdzKCkgY29uc3Q7CiAgICAgYm9vbCBzdHlsZVNoZWV0VGV4dFdpdGhDaGFuZ2Vk
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYgbmV3U3R5bGVUZXh0LCBT
dHJpbmcqIHJlc3VsdCk7CiAgICAgdm9pZCByZXZhbGlkYXRlU3R5bGUoQ1NTU3R5bGVEZWNsYXJh
dGlvbiopOwogICAgIGJvb2wgb3JpZ2luYWxTdHlsZVNoZWV0VGV4dChTdHJpbmcqIHJlc3VsdCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVs
ZXMuanMKaW5kZXggMjdiODRkZWQzODNiODJjN2JjYmQ1YTFkMTc2MjI4YTAxNTg1Zjc2MC4uZmI1
Njc0NDFmNTgwMWQxODIwMjNmMzBkNzliZDg5OTY2NTBmMTk2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtMzcxLDIzICszNzEs
MTUgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlU2hlZXRzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZVNoZWV0ID0gc3R5bGVTaGVl
dHNbaV07Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZXNoZWV0U2l6ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciB1bnVzZWRTdHlsZXNoZWV0U2l6ZSA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgIHZhciB1bnVzZWRSdWxlcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBjdXJSdWxlID0gMDsgY3VyUnVsZSA8IHN0eWxlU2hlZXQucnVsZXMubGVuZ3RoOyArK2N1
clJ1bGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydWxlID0gc3R5bGVTaGVldC5y
dWxlc1tjdXJSdWxlXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV4YWN0IGNvbXB1dGF0
aW9uIHdoZW5ldmVyIHNvdXJjZSByYW5nZXMgYXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciB0ZXh0TGVuZ3RoID0gKHJ1bGUuc2VsZWN0b3JSYW5nZSAmJiBydWxlLnN0
eWxlLnJhbmdlICYmIHJ1bGUuc3R5bGUucmFuZ2UuZW5kKSA/IHJ1bGUuc3R5bGUucmFuZ2UuZW5k
IC0gcnVsZS5zZWxlY3RvclJhbmdlLnN0YXJ0ICsgMSA6IDA7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRleHRMZW5ndGggJiYgcnVsZS5zdHlsZS5jc3NUZXh0KQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRleHRMZW5ndGggPSBydWxlLnN0eWxlLmNzc1RleHQubGVuZ3RoICsg
cnVsZS5zZWxlY3RvclRleHQubGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVz
aGVldFNpemUgKz0gdGV4dExlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dGVkU2VsZWN0b3JzW3J1bGUuc2VsZWN0b3JUZXh0XSB8fCBmb3VuZFNlbGVjdG9yc1tydWxlLnNl
bGVjdG9yVGV4dF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWRTdHlsZXNoZWV0U2l6ZSArPSB0ZXh0TGVuZ3RoOwog
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkUnVsZXMucHVzaChydWxlLnNlbGVjdG9yVGV4
dCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdG90YWxTdHls
ZXNoZWV0U2l6ZSArPSBzdHlsZXNoZWV0U2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgdG90YWxV
bnVzZWRTdHlsZXNoZWV0U2l6ZSArPSB1bnVzZWRTdHlsZXNoZWV0U2l6ZTsKKyAgICAgICAgICAg
ICAgICAgICAgdG90YWxTdHlsZXNoZWV0U2l6ZSArPSBzdHlsZVNoZWV0LnJ1bGVzLmxlbmd0aDsK
KyAgICAgICAgICAgICAgICAgICAgdG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSArPSB1bnVzZWRS
dWxlcy5sZW5ndGg7CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKCF1bnVzZWRSdWxlcy5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM5NSwxMCArMzg3LDEw
IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VG
b3JVUkwoc3R5bGVTaGVldC5zb3VyY2VVUkwpOwogICAgICAgICAgICAgICAgICAgICB2YXIgaXNJ
bmxpbmVCbG9jayA9IHJlc291cmNlICYmIHJlc291cmNlLnJlcXVlc3QgJiYgcmVzb3VyY2UucmVx
dWVzdC50eXBlID09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwogICAgICAg
ICAgICAgICAgICAgICB2YXIgdXJsID0gIWlzSW5saW5lQmxvY2sgPyBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlUmVzdWx0LmxpbmtpZnlEaXNwbGF5TmFtZShzdHlsZVNoZWV0LnNvdXJjZVVSTCkgOiBT
dHJpbmcuc3ByaW50ZigiSW5saW5lIGJsb2NrICMlZCIsICsraW5saW5lQmxvY2tPcmRpbmFsKTsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIHBjdFVudXNlZCA9IE1hdGgucm91bmQoMTAwICogdW51
c2VkU3R5bGVzaGVldFNpemUgLyBzdHlsZXNoZWV0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAg
IHZhciBwY3RVbnVzZWQgPSBNYXRoLnJvdW5kKDEwMCAqIHVudXNlZFJ1bGVzLmxlbmd0aCAvIHN0
eWxlU2hlZXQucnVsZXMubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdW1tYXJ5
KQogICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeSA9IHJlc3VsdC5hZGRDaGlsZCgiIiwg
dHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IHN1bW1hcnkuYWRkRm9ybWF0
dGVkKCIlczogJXMgKCVkJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB1cmws
IE51bWJlci5ieXRlc1RvU3RyaW5nKHVudXNlZFN0eWxlc2hlZXRTaXplKSwgcGN0VW51c2VkKTsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3VtbWFyeS5hZGRGb3JtYXR0ZWQoIiVz
OiAlZCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB1cmwsIHBjdFVudXNlZCk7
CiAKICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB1bnVzZWRSdWxlcy5s
ZW5ndGg7ICsraikKICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmFkZFNuaXBwZXQodW51
c2VkUnVsZXNbal0pOwpAQCAtNDEwLDcgKzQwMiw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVz
LlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Y2FsbGJhY2sobnVsbCk7CiAKICAgICAgICAgICAgICAgICB2YXIgdG90YWxVbnVzZWRQZXJjZW50
ID0gTWF0aC5yb3VuZCgxMDAgKiB0b3RhbFVudXNlZFN0eWxlc2hlZXRTaXplIC8gdG90YWxTdHls
ZXNoZWV0U2l6ZSk7Ci0gICAgICAgICAgICAgICAgc3VtbWFyeS52YWx1ZSA9IFN0cmluZy5zcHJp
bnRmKCIlcyAoJWQlKSBvZiBDU1MgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCBO
dW1iZXIuYnl0ZXNUb1N0cmluZyh0b3RhbFVudXNlZFN0eWxlc2hlZXRTaXplKSwgdG90YWxVbnVz
ZWRQZXJjZW50KTsKKyAgICAgICAgICAgICAgICBzdW1tYXJ5LnZhbHVlID0gU3RyaW5nLnNwcmlu
dGYoIiVzIHJ1bGVzICglZCUpIG9mIENTUyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLiIs
IHRvdGFsVW51c2VkU3R5bGVzaGVldFNpemUsIHRvdGFsVW51c2VkUGVyY2VudCk7CiAKICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDJk
YjNjOGZhMTZhZTBjM2FhYjJlZjAzMzVmZmIwZTA1YTUyMGQ3YjAuLjkzNzBjNDU5NWRmZWQ1NTYx
YTUxYmEwNGY1MzU1OTk1ZjE1ZmNhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTg1NCwxMyArODU0LDEyIEBAIFdl
Ykluc3BlY3Rvci5DU1NSdWxlID0gZnVuY3Rpb24ocGF5bG9hZCwgbWF0Y2hpbmdTZWxlY3RvcnMp
CiAgICAgdGhpcy5zZWxlY3RvclJhbmdlID0gcGF5bG9hZC5zZWxlY3Rvckxpc3QucmFuZ2U7CiAg
ICAgdGhpcy5zb3VyY2VMaW5lID0gcGF5bG9hZC5zb3VyY2VMaW5lOwogICAgIHRoaXMuc291cmNl
VVJMID0gcGF5bG9hZC5zb3VyY2VVUkw7Ci0gICAgaWYgKHBheWxvYWQuc291cmNlVVJMKQotICAg
ICAgICB0aGlzLl9yYXdMb2NhdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24ocGF5
bG9hZC5zb3VyY2VVUkwsIHBheWxvYWQuc291cmNlTGluZSk7CiAgICAgdGhpcy5vcmlnaW4gPSBw
YXlsb2FkLm9yaWdpbjsKICAgICB0aGlzLnN0eWxlID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVj
bGFyYXRpb24ucGFyc2VQYXlsb2FkKHBheWxvYWQuc3R5bGUpOwogICAgIHRoaXMuc3R5bGUucGFy
ZW50UnVsZSA9IHRoaXM7CiAgICAgaWYgKHBheWxvYWQubWVkaWEpCiAgICAgICAgIHRoaXMubWVk
aWEgPSBXZWJJbnNwZWN0b3IuQ1NTTWVkaWEucGFyc2VNZWRpYUFycmF5UGF5bG9hZChwYXlsb2Fk
Lm1lZGlhKTsKKyAgICB0aGlzLl9zZXRSYXdMb2NhdGlvbihwYXlsb2FkKTsKIH0KIAogLyoqCkBA
IC04NzQsNiArODczLDIwIEBAIFdlYkluc3BlY3Rvci5DU1NSdWxlLnBhcnNlUGF5bG9hZCA9IGZ1
bmN0aW9uKHBheWxvYWQsIG1hdGNoaW5nSW5kaWNlcykKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1J1
bGUucHJvdG90eXBlID0geworICAgIF9zZXRSYXdMb2NhdGlvbjogZnVuY3Rpb24ocGF5bG9hZCkK
KyAgICB7CisgICAgICAgIGlmICghcGF5bG9hZC5zb3VyY2VVUkwpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGlmICh0aGlzLnNlbGVjdG9yUmFuZ2UpIHsKKyAgICAgICAgICAgIHZhciBy
ZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChw
YXlsb2FkLnNvdXJjZVVSTCk7CisgICAgICAgICAgICBpZiAocmVzb3VyY2UgJiYgcmVzb3VyY2Uu
dHlwZSA9PT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCkgeworICAgICAg
ICAgICAgICAgIHRoaXMuX3Jhd0xvY2F0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlv
bihwYXlsb2FkLnNvdXJjZVVSTCwgdGhpcy5zZWxlY3RvclJhbmdlLnN0YXJ0TGluZSwgdGhpcy5z
ZWxlY3RvclJhbmdlLnN0YXJ0Q29sdW1uKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fcmF3TG9jYXRpb24gPSBuZXcgV2Vi
SW5zcGVjdG9yLkNTU0xvY2F0aW9uKHBheWxvYWQuc291cmNlVVJMLCBwYXlsb2FkLnNvdXJjZUxp
bmUpOworICAgIH0sCisKICAgICBnZXQgaXNVc2VyQWdlbnQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRoaXMub3JpZ2luID09PSAidXNlci1hZ2VudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwppbmRleCAyMGQ4
NTU4ZTlmNzM2NmNlNzcxODhmZWY4NjA0MDhmZjYyOTNmZTkxLi5jNTE2ZGNmM2M5ZGZmY2NmYzMw
NDFhOWMzNzg1MmRjMThkNjQ2MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKQEAgLTIyNiw2ICsyMjYsNyBA
QCBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIF9iaW5kVUlTb3VyY2VDb2RlOiBmdW5jdGlvbihyYXdVUkwsIHNvdXJjZU1hcCkKICAgICB7
CisgICAgICAgIHRoaXMuX2Nzc01vZGVsLnNldFNvdXJjZU1hcHBpbmcocmF3VVJMLCB0aGlzKTsK
ICAgICAgICAgdmFyIHNvdXJjZXMgPSBzb3VyY2VNYXAuc291cmNlcygpOwogICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHNvdXJjZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1
cmwgPSBzb3VyY2VzW2ldOwpAQCAtMjMzLDEyICsyMzQsMTAgQEAgV2ViSW5zcGVjdG9yLlNBU1NT
b3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9
IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVybCk7CiAg
ICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQs
IGNvbnRlbnQsICJ0ZXh0L3gtc2NzcyIpOwogICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNv
bnRlbnRQcm92aWRlciwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNv
dXJjZU1hcHBpbmcodGhpcyk7CiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ1NTVVJMZm9yU0FT
U1VSTChyYXdVUkwsIHVybCk7CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJj
ZU1hcHBpbmcodGhpcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAgICB0aGlz
Ll9jc3NNb2RlbC5zZXRTb3VyY2VNYXBwaW5nKHJhd1VSTCwgdGhpcyk7CiAgICAgfSwKIAogICAg
IC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDhmYmM1N2NmMmM4ZjEzMjdlODZiMGU0ZjkyOGVhODhmMjNmODRhYjUuLjU5
YTA4YzgyYThhOTY4NjgyODkyZmVjMGEyZmQ0NTdmMWIzNWUwMzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMy0wMi0yNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNlbGVjdG9yJ3MgcmF3IHN0YXJ0IHBvc2l0aW9u
IGluIGl0cyBsaW5lIGlzIGNvbnNpZGVyZWQgdG8gYmUgMCB3aGVuIGNvbXB1dGluZyBVSUxvY2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVj
dG9yLWxpbmUuY3NzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNl
cy9zZWxlY3Rvci1saW5lLmNzcy5tYXA6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuc2NzczogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTI0
ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBh
biBBU1NFUlQgdG8gZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwt
ZXhwZWN0ZWQudHh0CmluZGV4IDNmMmNiNjc5NzRkMDQ0OWRiNWQxYTRkNTQwZTZhYjEwMTYyYmI2
NmEuLmRmYjIyNTA3Mzc4YjBmYzM1NTIwZGRiNDc2OTYxYjhmMTc0N2M4OGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVs
LWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CkBAIC0yMywxNiArMjMsMTYgQEAgUGFnZSByZWxvYWRl
ZC4KICAgICAgIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKICAgICAg
IGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKICAgICBSZW1vdmUgdW51c2VkIENTUyBydWxl
cyAoNCkKLSAgICAgMjA54oCJQiAoMTAwJSkgb2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJy
ZW50IHBhZ2UuCi0gICAgICBJbmxpbmUgYmxvY2sgIzE6IDY54oCJQiAoMTAwJSkgaXMgbm90IHVz
ZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgNCBydWxlcyAoMTAwJSkgb2YgQ1NTIG5vdCB1
c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzE6IDEwMCUgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAudW51c2VkCiAgICAgICAgYXVk
aXRzLXN0eWxlMS5jc3MKLSAgICAgIDogNDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgorICAgICAgOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBh
Z2UuCiAgICAgICAgLnNvbWUtc3R5bGUKLSAgICAgIElubGluZSBibG9jayAjMjogNTTigIlCICgx
MDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJsb2Nr
ICMyOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnZpb2xh
dGlvbgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCi0gICAgICA6IDQz4oCJQiAoMTAwJSkgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBi
eSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC5zb21lLXN0eWxlCiAgICAgVXNlIG5vcm1hbCBD
U1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAoMSkKICAg
ICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFn
ZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggZWZmYzJhMzJhYzJkODQzMjA3NzJiN2Uz
OWM3NzI5MzQyOGU4NjczMS4uMTlhYTdiZmNjMzc0MjgyZDliYTc1YzU0OTk3Y2ZhYTU2OWVlMDdj
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
bm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQK
QEAgLTE5LDE1ICsxOSwxNSBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVk
IHRvIHRoZSBkb2N1bWVudCBoZWFkIGluIAogICAgICAgYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1
bmN0aW9uYWwuaHRtbAogICAgIFJlbW92ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAxNDHi
gIlCICgxMDAlKSBvZiBDU1MgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAg
IElubGluZSBibG9jayAjMTogMjnigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVu
dCBwYWdlLgorICAgICA0IHJ1bGVzICgxMDAlKSBvZiBDU1Mgbm90IHVzZWQgYnkgdGhlIGN1cnJl
bnQgcGFnZS4KKyAgICAgIElubGluZSBibG9jayAjMTogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgogICAgICAgIC51bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwot
ICAgICAgOiA0M+KAiUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisg
ICAgICA6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29t
ZS1zdHlsZQotICAgICAgSW5saW5lIGJsb2NrICMyOiAyNuKAiUIgKDEwMCUpIGlzIG5vdCB1c2Vk
IGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzI6IDEwMCUgaXMgbm90
IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVk
aXRzLXN0eWxlMS5jc3MKLSAgICAgIDogNDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgorICAgICAgOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBh
Z2UuCiAgICAgICAgLnNvbWUtc3R5bGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTE1
YjI1MjJiNDU5ZmYzMjg0YjJkYzQ2NzQzN2JhOWE4MGQ0MjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MK
QEAgLTAsMCArMSw2IEBACisjY29udGFpbmVyIHsKKyAgYmFja2dyb3VuZDogcGFwYXlhd2hpcDsg
fQorICAjY29udGFpbmVyICNpbnNwZWN0ZWQgeworICAgIGNvbG9yOiBncmVlbjsgfQorCisvKkAg
c291cmNlTWFwcGluZ1VSTD1zZWxlY3Rvci1saW5lLmNzcy5tYXAgKi8KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jl
c291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJmMjc1ODY4
NjZlNTBiNWEzYTlmMjBmNzU1OTQ1NmY2NmZhYjI1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzLm1hcApA
QCAtMCwwICsxLDYgQEAKK3sKKyJ2ZXJzaW9uIjogIjMiLAorIm1hcHBpbmdzIjogIkFBQUEsVUFB
VztFQUNQLFVBQVUsRUFBRSxVQUFVO0VBRXRCLHFCQUFXO0lBQ1AsS0FBSyxFQUFFLEtBQUsiLAor
InNvdXJjZXMiOiBbInNlbGVjdG9yLWxpbmUuc2NzcyJdLAorImZpbGUiOiAic2VsZWN0b3ItbGlu
ZS5jc3MiCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zZWxlY3Rvci1saW5lLnNjc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jl
c291cmNlcy9zZWxlY3Rvci1saW5lLnNjc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM3NGQzNWQyOWIxNjhhOTQ1
YjdmOWFmMjhhN2E5M2JiN2VmOTkwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuc2NzcwpAQCAtMCwwICsxLDcg
QEAKKyNjb250YWluZXIgeworICAgIGJhY2tncm91bmQ6IHBhcGF5YXdoaXA7CisKKyAgICAjaW5z
cGVjdGVkIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGluZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmYWFjN2ZjZWVlYjg5MmUwNmY2YWVmYTE2OTJkNjQ5MjM0YjhkNjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3RzIHRoYXQgc2VsZWN0b3IgbGluZSBp
cyBjb21wdXRlZCBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBpdHMgc3RhcnQgY29sdW1uLiBCdWcg
MTEwNzMyLgorCitUZXh0CitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQorCis9PT09
PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKKyNjb250YWluZXIg
I2luc3BlY3RlZCAgeyAoc2VsZWN0b3ItbGluZS5zY3NzOjQpCitjb2xvcjogZ3JlZW47CisKK1tl
eHBhbmRlZF0gCisjaW5zcGVjdGVkICB7IChzZWxlY3Rvci1saW5lLmh0bWw6NSkKKy8tLSBvdmVy
bG9hZGVkIC0tLyBjb2xvcjogZ3JlZW47CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDk3ZjMzODZk
Y2ExNDUyOTQxYTgxZDI2NzU2YzBjNmI0NjI4NDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0bWwKQEAgLTAsMCArMSw2NSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyNpbnNwZWN0ZWQKK3sKKyAgY29sb3I6IGdyZWVu
OworfQorPC9zdHlsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3Nl
bGVjdG9yLWxpbmUuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBzYXNzTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuU0FTU1NvdXJjZU1hcHBpbmcoV2ViSW5zcGVjdG9yLmNzc01vZGVsLCBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLCBXZWJJbnNwZWN0b3IubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICBX
ZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlQWRk
ZWQsIG51bGwpOworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAg
c3RlcDEoKTsKKworICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmICh1aVNv
dXJjZUNvZGUudXJsLmVuZHNXaXRoKCIuc2NzcyIpKQorICAgICAgICAgICAgdWlTb3VyY2VDb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuU291cmNl
TWFwcGluZ0NoYW5nZWQsIHN0ZXAyLCBudWxsKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVw
MSgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxs
UmVzb3VyY2VzKGNhbGxiYWNrKTsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2socmVzb3VyY2Up
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZS51cmwuZW5kc1dpdGgoIi5jc3Mi
KSkgeworICAgICAgICAgICAgICAgIHNhc3NNYXBwaW5nLl9yZXNvdXJjZUFkZGVkKG5ldyBXZWJJ
bnNwZWN0b3IuRXZlbnQoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCByZXNvdXJjZSkp
OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDMpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgc2VsZWN0b3IgbGluZSBpcyBjb21w
dXRlZCBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBpdHMgc3RhcnQgY29sdW1uLiA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzMyIj5CdWcgMTEwNzMy
PC9hPi4KKzwvcD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlkPSJpbnNwZWN0
ZWQiPlRleHQ8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190212</attachid>
            <date>2013-02-25 23:04:43 -0800</date>
            <delta_ts>2013-02-28 03:02:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110732-20130226110058.patch</filename>
            <type>text/plain</type>
            <size>63544</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk4YTJkMTNkMzFkMGE4
MGM3NWVhM2ViY2NjM2FjOTlmMTlhNzA0My4uMmI1YmY5YTUzMGIyYmZmYmQ2MzkyZTZiOTkwNTVm
MzgzNWVlY2Q4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAyLTI1ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU2VsZWN0b3IncyByYXcgc3RhcnQgcG9zaXRpb24gaW4gaXRzIGxpbmUgaXMgY29uc2lk
ZXJlZCB0byBiZSAwIHdoZW4gY29tcHV0aW5nIFVJTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6c2l6ZXRFeHRyYWN0
b3IpOiBVdGlsaXR5IGZvciBiaW5hcnkgc2VhcmNoLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlYXJjaFV0aWxzOjpsaW5lQ29sdW1uRnJvbU9mZnNldCk6IENvbnZlcnRzIGFic29sdXRlIHJh
dyB0ZXh0IG9mZnNldCBpbnRvIGxpbmU6Y29sdW1uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlYXJjaFV0aWxzOjpnZXRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXNCeUxpbmVzKTogUmVmYWN0
b3IuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNoVXRpbHM6OmxpbmVFbmRpbmdzKTog
RmFjdG9yZWQgb3V0IG9mIGdldFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5TGluZXMuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNoVXRpbHM6OmJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0
Y2gpOiBEcml2ZS1ieTogcGFzcyBTdHJpbmcgYnkgcmVmZXJlbmNlLgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb246IFVzZSBsaW5lOmNvbHVtbiBmb3IgU291cmNlUmFuZ2UgYm91bmRhcmllcyByYXRoZXIg
dGhhbiByYXcgb2Zmc2V0cy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHA6CisgICAgICAgIChQYXJzZWRTdHlsZVNoZWV0Ojp0ZXh0KTogQVNTRVJUKG1faGFzVGV4
dCkuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6YnVpbGRPYmplY3RGb3JTdHls
ZSk6IFN1cHBseSB0aGUgbGluZUVuZGluZ3MgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpi
dWlsZFNvdXJjZVJhbmdlT2JqZWN0KTogRm9sbG93IHRoZSBwcm90b2NvbCBjaGFuZ2UuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6c2V0UHJvcGVydHlUZXh0KTogUmVmYWN0b3Iu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9w
ZXJ0aWVzKTogQ29udmVydCByZWxhdGl2ZSBwcm9wZXJ0eSByYW5nZSBvZmZzZXRzIGludG8gYWJz
b2x1dGUgb25lcy4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpleHRyYWN0U291
cmNlRGF0YSk6IEZhY3RvcmVkIG91dC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxl
OjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMpOiBTdXBwbHkgdGhlIGxpbmVFbmRpbmdz
IGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRP
YmplY3RGb3JTZWxlY3Rvckxpc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlU2hlZXQ6OmxpbmVFbmRpbmdzKTogQ29tcHV0ZSBsaW5lIGVuZGluZ3MgZm9yIG9yZGlu
YXJ5IHN0eWxlc2hlZXRzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZv
cklubGluZVN0eWxlOjpsaW5lRW5kaW5ncyk6IERpdHRvIGZvciBib2d1cyBpbmxpbmUgc3R5bGUg
c3R5bGVzaGVldHMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6IFJlbW92ZWQgdGhl
IGJ5dGUgY291bnRpbmcgZm9yIHVudXNlZCBDU1MuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUpOiBT
ZXQgc2VsZWN0b3IgcmF3TG9jYXRpb24gYmFzZWQgb24gdGhlIHNlbGVjdG9yTGlzdCByYW5nZSBv
ciBzb3VyY2VMaW5lLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBlLl9z
ZXRSYXdMb2NhdGlvbik6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBp
bmcucHJvdG90eXBlLl9iaW5kVUlTb3VyY2VDb2RlKTogRml4IGNhbGwgb3JkZXIgd2hlbiBiaW5k
aW5nIHNjc3Mgc291cmNlY29kZXMuCisKIDIwMTMtMDItMjQgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxNDM3OTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNl
YXJjaFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRp
bHMuY3BwCmluZGV4IGEzZjgzYzJkNjg0YjQ4NTg5ODBkMzEwZDM0NWQzMzYyMWY3MDM5ODguLjFi
ZjAzMDlhOGMzYWU2OTRhYjdkNWZmZTg1NWMzM2FlMzE5ZmJjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCkBAIC02MywzOCArNjMsODEg
QEAgc3RhdGljIFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRl
eHQpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBzaXplX3Qgc2l6ZXRF
eHRyYWN0b3IoY29uc3Qgc2l6ZV90KiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gKnZhbHVlOworfQor
CitUZXh0UG9zaXRpb24gbGluZUNvbHVtbkZyb21PZmZzZXQoc2l6ZV90IG9mZnNldCwgY29uc3Qg
VmVjdG9yPHNpemVfdD4mIGxpbmVFbmRpbmdzKQoreworICAgIGNvbnN0IHNpemVfdCB2ZWN0b3JT
aXplID0gbGluZUVuZGluZ3Muc2l6ZSgpOworICAgIGlmICghdmVjdG9yU2l6ZSkKKyAgICAgICAg
cmV0dXJuIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KDApLCBP
cmRpbmFsTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KG9mZnNldCkpOworCisgICAgY29uc3Qgc2l6
ZV90KiBmb3VuZExpbmVFbmRpbmcgPSBhcHByb3hpbWF0ZUJpbmFyeVNlYXJjaDxzaXplX3QsIHNp
emVfdD4obGluZUVuZGluZ3MsIHZlY3RvclNpemUsIG9mZnNldCwgc2l6ZXRFeHRyYWN0b3IpOwor
ICAgIHNpemVfdCBsaW5lSW5kZXggPSBmb3VuZExpbmVFbmRpbmcgLSAmbGluZUVuZGluZ3MuYXQo
MCk7CisgICAgc2l6ZV90IHByZXZpb3VzTGluZUVuZGluZ09mZnNldDsKKyAgICBpZiAobGluZUlu
ZGV4ID4gMCkgeworICAgICAgICBpZiAob2Zmc2V0IDw9ICpmb3VuZExpbmVFbmRpbmcpCisgICAg
ICAgICAgICAtLWxpbmVJbmRleDsKKyAgICAgICAgcHJldmlvdXNMaW5lRW5kaW5nT2Zmc2V0ID0g
bGluZUVuZGluZ3MuYXQobGluZUluZGV4KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAob2Zm
c2V0IDw9ICpmb3VuZExpbmVFbmRpbmcpIHsKKyAgICAgICAgICAgIHByZXZpb3VzTGluZUVuZGlu
Z09mZnNldCA9IElOVF9NQVg7CisgICAgICAgICAgICBsaW5lSW5kZXggPSBJTlRfTUFYOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHByZXZpb3VzTGluZUVuZGluZ09mZnNldCA9IGxpbmVF
bmRpbmdzLmF0KDApOworICAgIH0KKyAgICBzaXplX3QgY29sdW1uID0gb2Zmc2V0IC0gKHByZXZp
b3VzTGluZUVuZGluZ09mZnNldCA9PSBJTlRfTUFYID8gMCA6IChwcmV2aW91c0xpbmVFbmRpbmdP
ZmZzZXQgKyAxKSk7CisgICAgaWYgKGxpbmVJbmRleCA9PSBJTlRfTUFYKQorICAgICAgICBsaW5l
SW5kZXggPSAwOworICAgIGVsc2UKKyAgICAgICAgKytsaW5lSW5kZXg7CisgICAgcmV0dXJuIFRl
eHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KGxpbmVJbmRleCksIE9y
ZGluYWxOdW1iZXI6OmZyb21aZXJvQmFzZWRJbnQoY29sdW1uKSk7Cit9CisKIHN0YXRpYyBWZWN0
b3I8cGFpcjxpbnQsIFN0cmluZz4gPiBnZXRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXNCeUxpbmVz
KGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJiByZWdleCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewog
ICAgIFZlY3RvcjxwYWlyPGludCwgU3RyaW5nPiA+IHJlc3VsdDsKICAgICBpZiAodGV4dC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBpbnQgbGluZU51bWJlciA9IDA7
CisgICAgT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gZW5kaW5ncyhsaW5lRW5kaW5ncyh0ZXh0KSk7
CisgICAgc2l6ZV90IHNpemUgPSBlbmRpbmdzLT5zaXplKCk7CiAgICAgdW5zaWduZWQgc3RhcnQg
PSAwOwotICAgIHdoaWxlIChzdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKLSAgICAgICAgc2l6ZV90
IGxpbmVFbmQgPSB0ZXh0LmZpbmQoJ1xuJywgc3RhcnQpOwotICAgICAgICBpZiAobGluZUVuZCA9
PSBub3RGb3VuZCkKLSAgICAgICAgICAgIGxpbmVFbmQgPSB0ZXh0Lmxlbmd0aCgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsaW5lRW5kKys7Ci0KKyAgICBmb3IgKHNpemVfdCBsaW5lTnVt
YmVyID0gMDsgbGluZU51bWJlciA8IHNpemU7ICsrbGluZU51bWJlcikgeworICAgICAgICBzaXpl
X3QgbGluZUVuZCA9IGVuZGluZ3MtPmF0KGxpbmVOdW1iZXIpOwogICAgICAgICBTdHJpbmcgbGlu
ZSA9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBsaW5lRW5kIC0gc3RhcnQpOwotICAgICAgICBpZiAo
bGluZS5lbmRzV2l0aCgiXHJcbiIpKQotICAgICAgICAgICAgbGluZSA9IGxpbmUubGVmdChsaW5l
Lmxlbmd0aCgpIC0gMik7Ci0gICAgICAgIGlmIChsaW5lLmVuZHNXaXRoKCdcbicpKQorICAgICAg
ICBpZiAobGluZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGxpbmUgPSBsaW5lLmxlZnQo
bGluZS5sZW5ndGgoKSAtIDEpOwogCiAgICAgICAgIGludCBtYXRjaExlbmd0aDsKICAgICAgICAg
aWYgKHJlZ2V4Lm1hdGNoKGxpbmUsIDAsICZtYXRjaExlbmd0aCkgIT0gLTEpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKHBhaXI8aW50LCBTdHJpbmc+KGxpbmVOdW1iZXIsIGxpbmUpKTsKIAot
ICAgICAgICBzdGFydCA9IGxpbmVFbmQ7Ci0gICAgICAgIGxpbmVOdW1iZXIrKzsKKyAgICAgICAg
c3RhcnQgPSBsaW5lRW5kICsgMTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3Rh
dGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiBidWlsZE9iamVj
dEZvclNlYXJjaE1hdGNoKGludCBsaW5lTnVtYmVyLCBTdHJpbmcgbGluZUNvbnRlbnQpCitQYXNz
T3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gbGluZUVuZGluZ3MoY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIE93blB0cjxWZWN0b3I8c2l6ZV90PiA+IHJlc3VsdChhZG9wdFB0cihuZXcgVmVjdG9y
PHNpemVfdD4oKSkpOworCisgICAgdW5zaWduZWQgc3RhcnQgPSAwOworICAgIHdoaWxlIChzdGFy
dCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgc2l6ZV90IGxpbmVFbmQgPSB0ZXh0LmZpbmQo
J1xuJywgc3RhcnQpOworICAgICAgICBpZiAobGluZUVuZCA9PSBub3RGb3VuZCkKKyAgICAgICAg
ICAgIGxpbmVFbmQgPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIHJlc3VsdC0+YXBwZW5kKGxp
bmVFbmQpOworICAgICAgICBzdGFydCA9IGxpbmVFbmQgKyAxOworICAgIH0KKworICAgIHJldHVy
biByZXN1bHQucmVsZWFzZSgpOworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
UGFnZTo6U2VhcmNoTWF0Y2g+IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0Y2goaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgbGluZUNvbnRlbnQpCiB7CiAgICAgcmV0dXJuIFR5cGVCdWlsZGVy
OjpQYWdlOjpTZWFyY2hNYXRjaDo6Y3JlYXRlKCkKICAgICAgICAgLnNldExpbmVOdW1iZXIobGlu
ZU51bWJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2Vh
cmNoVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMu
aAppbmRleCA3OWQ5MjRhOGUwZjc2M2IwY2U2OGFjMWUzZTdiMWRiMzJmNDYwMGZhLi40MmZhZDBj
MTM5MWUxN2U1NTA0MTU0OTkzZGFkMmFlZmYzNTA1YWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNs
dWRlICJJbnNwZWN0b3JUeXBlQnVpbGRlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNiArNDYsOCBAQCBuYW1lc3Bh
Y2UgQ29udGVudFNlYXJjaFV0aWxzIHsKIFJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0ZVNlYXJjaFJl
Z2V4KGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCBpc1JlZ2V4
KTsKIGludCBjb3VudFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlcyhjb25zdCBSZWd1bGFyRXhwcmVz
c2lvbiYsIGNvbnN0IFN0cmluZyYpOwogUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlw
ZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiA+IHNlYXJjaEluVGV4dEJ5TGluZXMoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sIGNhc2VTZW5zaXRp
dmUsIGNvbnN0IGJvb2wgaXNSZWdleCk7CitUZXh0UG9zaXRpb24gbGluZUNvbHVtbkZyb21PZmZz
ZXQoc2l6ZV90IG9mZnNldCwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGxpbmVFbmRpbmdzKTsKK1Bh
c3NPd25QdHI8VmVjdG9yPHNpemVfdD4gPiBsaW5lRW5kaW5ncyhjb25zdCBTdHJpbmcmKTsKIAog
U3RyaW5nIGZpbmRTb3VyY2VVUkwoY29uc3QgU3RyaW5nJiBjb250ZW50KTsKIFN0cmluZyBmaW5k
U291cmNlTWFwVVJMKGNvbnN0IFN0cmluZyYgY29udGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZjI3ZjU0YzAzZDQ5NzA1ODM0Mjk4YWViY2MzNjgxMWU1
M2FhNzc0Zi4uNzllYzY4YjQxM2JkNmZmZDcwN2VlZGE0NGUzOTRhOWE5N2M2ZmExNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjI3MSw4ICsyMjcxLDEwIEBA
CiAgICAgICAgICAgICAgICAgImlkIjogIlNvdXJjZVJhbmdlIiwKICAgICAgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNj
cmlwdGlvbiI6ICJTdGFydCBvZiByYW5nZSAoaW5jbHVzaXZlKS4ifSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IkVuZCBvZiByYW5nZSAoZXhjbHVzaXZlKS4ifQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInN0YXJ0TGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnQg
bGluZSBvZiByYW5nZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnRD
b2x1bW4iLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IGNvbHVtbiBv
ZiByYW5nZSAoaW5jbHVzaXZlKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZW5kTGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIGxpbmUgb2Yg
cmFuZ2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kQ29sdW1uIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJFbmQgY29sdW1uIG9mIHJhbmdlIChleGNs
dXNpdmUpLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlRleHQgcmFuZ2Ugd2l0aGluIGEgcmVzb3VyY2UuIgogICAgICAgICAgICAgfSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRl
eCBkYWFjYjk3MDg0ZTcxMWE2ZjU4NjFhYWJiMWQyYjU0ZDAyYjM4MTQxLi5kYmMxMzE0N2Y1NmUw
NTRmYjg2ZTIzYzAyZjQ4MjYzNDE0MzA1YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUg
IkNTU1N1cHBvcnRzUnVsZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRTZWFyY2hVdGlscy5oIgogI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNTksNiArNjAsNyBAQAogCiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKQEAgLTcyLDcgKzc0LDcgQEAgcHVibGljOgogICAgIFBhcnNlZFN0
eWxlU2hlZXQoKTsKIAogICAgIFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqIGNzc1N0eWxlU2hlZXQo
KSBjb25zdCB7IHJldHVybiBtX3BhcnNlck91dHB1dDsgfQotICAgIGNvbnN0IFN0cmluZyYgdGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQorICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNv
bnN0IHsgQVNTRVJUKG1faGFzVGV4dCk7IHJldHVybiBtX3RleHQ7IH0KICAgICB2b2lkIHNldFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICBib29sIGhhc1RleHQoKSBjb25zdCB7IHJldHVy
biBtX2hhc1RleHQ7IH0KICAgICBSdWxlU291cmNlRGF0YUxpc3QqIHNvdXJjZURhdGEoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZURhdGEuZ2V0KCk7IH0KQEAgLTE0OSwxMSArMTUxLDE4IEBAIGVu
dW0gTWVkaWFMaXN0U291cmNlIHsKICAgICBNZWRpYUxpc3RTb3VyY2VJbXBvcnRSdWxlCiB9Owog
Ci1zdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VSYW5nZT4gYnVpbGRT
b3VyY2VSYW5nZU9iamVjdChjb25zdCBTb3VyY2VSYW5nZSYgcmFuZ2UpCitzdGF0aWMgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VSYW5nZT4gYnVpbGRTb3VyY2VSYW5nZU9iamVj
dChjb25zdCBTb3VyY2VSYW5nZSYgcmFuZ2UsIFZlY3RvcjxzaXplX3Q+KiBsaW5lRW5kaW5ncykK
IHsKKyAgICBpZiAoIWxpbmVFbmRpbmdzKQorICAgICAgICByZXR1cm4gMDsKKyAgICBUZXh0UG9z
aXRpb24gc3RhcnQgPSBDb250ZW50U2VhcmNoVXRpbHM6OmxpbmVDb2x1bW5Gcm9tT2Zmc2V0KHJh
bmdlLnN0YXJ0LCAqbGluZUVuZGluZ3MpOworICAgIFRleHRQb3NpdGlvbiBlbmQgPSBDb250ZW50
U2VhcmNoVXRpbHM6OmxpbmVDb2x1bW5Gcm9tT2Zmc2V0KHJhbmdlLmVuZCwgKmxpbmVFbmRpbmdz
KTsKKwogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VSYW5nZT4gcmVzdWx0ID0g
VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRTdGFy
dChyYW5nZS5zdGFydCkKLSAgICAgICAgLnNldEVuZChyYW5nZS5lbmQpOworICAgICAgICAuc2V0
U3RhcnRMaW5lKHN0YXJ0Lm1fbGluZS56ZXJvQmFzZWRJbnQoKSkKKyAgICAgICAgLnNldFN0YXJ0
Q29sdW1uKHN0YXJ0Lm1fY29sdW1uLnplcm9CYXNlZEludCgpKQorICAgICAgICAuc2V0RW5kTGlu
ZShlbmQubV9saW5lLnplcm9CYXNlZEludCgpKQorICAgICAgICAuc2V0RW5kQ29sdW1uKGVuZC5t
X2NvbHVtbi56ZXJvQmFzZWRJbnQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9
CiAKQEAgLTMwOSw5ICszMTgsOSBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0
eWxlPiBJbnNwZWN0b3JTdHlsZTo6YnVpbGRPYmplY3RGb3JTdHlsZSgpIGNvbgogICAgIHJlc3Vs
dC0+c2V0V2lkdGgobV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKSk7CiAgICAgcmVz
dWx0LT5zZXRIZWlnaHQobV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0IikpOwogCi0g
ICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJlbnRTdHlsZVNo
ZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgp
KSA6IDA7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gZXh0cmFj
dFNvdXJjZURhdGEoKTsKICAgICBpZiAoc291cmNlRGF0YSkKLSAgICAgICAgcmVzdWx0LT5zZXRS
YW5nZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVCb2R5UmFuZ2UpKTsK
KyAgICAgICAgcmVzdWx0LT5zZXRSYW5nZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KHNvdXJjZURh
dGEtPnJ1bGVCb2R5UmFuZ2UsIG1fcGFyZW50U3R5bGVTaGVldC0+bGluZUVuZGluZ3MoKS5nZXQo
KSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CkBAIC0zNzMsNyArMzgyLDcg
QEAgYm9vbCBJbnNwZWN0b3JTdHlsZTo6c2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBj
b25zdCBTdHJpbmcmIHByb3BlcnR5VGV4dCwKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0
cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+cnVs
ZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQoKSk7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VE
YXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKICAgICBpZiAoIXNvdXJjZURh
dGEpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC00MDgsNyArNDE3LDcgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHko
dW5zaWduZWQgaW5kZXgsIGJvb2wgZGlzYWJsZSwgRXhjZXB0aW9uQ29kZSYKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNl
RGF0YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQo
KSk7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNv
dXJjZURhdGEoKTsKICAgICBpZiAoIXNvdXJjZURhdGEpIHsKICAgICAgICAgZWMgPSBOT1RfRk9V
TkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDQsNyArNDUzLDcgQEAgYm9vbCBJ
bnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkodW5zaWduZWQgaW5kZXgsIGJvb2wgZGlzYWJs
ZSwgRXhjZXB0aW9uQ29kZSYKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnN0eWxlVGV4dChTdHJpbmcq
IHJlc3VsdCkgY29uc3QKIHsKICAgICAvLyBQcmVjb25kaXRpb246IG1fcGFyZW50U3R5bGVTaGVl
dC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkgaGFzIGJlZW4gY2FsbGVkIHN1Y2Nlc3NmdWxseS4K
LSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxl
U2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOworICAgIFJlZlB0cjxDU1NS
dWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgaWYg
KCFzb3VyY2VEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ2OCw3ICs0NzcsNyBA
QCBib29sIEluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMoVmVjdG9yPEluc3Bl
Y3RvclN0eWxlUHJvcGVydHk+KiByZXN1bAogICAgIGlmIChkaXNhYmxlZEluZGV4IDwgZGlzYWJs
ZWRMZW5ndGgpCiAgICAgICAgIGRpc2FibGVkUHJvcGVydHkgPSBtX2Rpc2FibGVkUHJvcGVydGll
cy5hdChkaXNhYmxlZEluZGV4KTsKIAotICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291
cmNlRGF0YSA9IChtX3BhcmVudFN0eWxlU2hlZXQgJiYgbV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1
cmVQYXJzZWREYXRhUmVhZHkoKSkgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRh
Rm9yKG1fc3R5bGUuZ2V0KCkpIDogMDsKKyAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNv
dXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eVNv
dXJjZURhdGE+KiBzb3VyY2VQcm9wZXJ0eURhdGEgPSBzb3VyY2VEYXRhID8gJihzb3VyY2VEYXRh
LT5zdHlsZVNvdXJjZURhdGEtPnByb3BlcnR5RGF0YSkgOiAwOwogICAgIGlmIChzb3VyY2VQcm9w
ZXJ0eURhdGEpIHsKICAgICAgICAgU3RyaW5nIHN0eWxlRGVjbGFyYXRpb247CkBAIC01MTUsNiAr
NTI0LDkgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9y
U3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMoKSBjb24KICAgICBIYXNoU2V0PFN0cmluZz4gZm91
bmRTaG9ydGhhbmRzOwogICAgIFN0cmluZyBwcmV2aW91c1ByaW9yaXR5OwogICAgIFN0cmluZyBw
cmV2aW91c1N0YXR1czsKKyAgICBPd25QdHI8VmVjdG9yPHNpemVfdD4gPiBsaW5lRW5kaW5ncyht
X3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPmxpbmVFbmRpbmdzKCkgOiBQ
YXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4oKSk7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VE
YXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKKyAgICB1bnNpZ25lZCBydWxl
Qm9keVJhbmdlU3RhcnQgPSBzb3VyY2VEYXRhID8gc291cmNlRGF0YS0+cnVsZUJvZHlSYW5nZS5z
dGFydCA6IDA7CiAKICAgICBmb3IgKFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5Pjo6aXRl
cmF0b3IgaXQgPSBwcm9wZXJ0aWVzLmJlZ2luKCksIGl0RW5kID0gcHJvcGVydGllcy5lbmQoKTsg
aXQgIT0gaXRFbmQ7ICsraXQpIHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHlTb3VyY2VEYXRh
JiBwcm9wZXJ0eUVudHJ5ID0gaXQtPnNvdXJjZURhdGE7CkBAIC01MzksOCArNTUxLDE1IEBAIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpzdHls
ZVdpdGhQcm9wZXJ0aWVzKCkgY29uCiAgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0UHJpb3JpdHko
ImltcG9ydGFudCIpOwogICAgICAgICBpZiAoIWl0LT5kaXNhYmxlZCkgewogICAgICAgICAgICAg
aWYgKGl0LT5oYXNTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoc291cmNlRGF0YSk7
CiAgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldEltcGxpY2l0KGZhbHNlKTsKLSAgICAgICAg
ICAgICAgICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChwcm9wZXJ0
eUVudHJ5LnJhbmdlKSk7CisgICAgICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlz
IHJlbGF0aXZlIHRvIHRoZSBzdHlsZSBib2R5IHN0YXJ0LgorICAgICAgICAgICAgICAgIC8vIFNo
b3VsZCBiZSBjb252ZXJ0ZWQgaW50byBhbiBhYnNvbHV0ZSByYW5nZSAocmVsYXRpdmUgdG8gdGhl
IHN0eWxlc2hlZXQgc3RhcnQpCisgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBwcm9wZXIgY29u
dmVyc2lvbiBpbnRvIGxpbmU6Y29sdW1uLgorICAgICAgICAgICAgICAgIFNvdXJjZVJhbmdlIGFi
c29sdXRlUHJvcGVydHlSYW5nZSA9IHByb3BlcnR5RW50cnkucmFuZ2U7CisgICAgICAgICAgICAg
ICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLnN0YXJ0ICs9IHJ1bGVCb2R5UmFuZ2VTdGFydDsKKyAg
ICAgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5UmFuZ2UuZW5kICs9IHJ1bGVCb2R5UmFuZ2VT
dGFydDsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5n
ZU9iamVjdChhYnNvbHV0ZVByb3BlcnR5UmFuZ2UsIGxpbmVFbmRpbmdzLmdldCgpKSk7CiAKICAg
ICAgICAgICAgICAgICAvLyBQYXJzZWQgcHJvcGVydHkgb3ZlcnJpZGVzIGFueSBwcm9wZXJ0eSB3
aXRoIHRoZSBzYW1lIG5hbWUuIE5vbi1wYXJzZWQgcHJvcGVydHkgb3ZlcnJpZGVzCiAgICAgICAg
ICAgICAgICAgLy8gcHJldmlvdXMgbm9uLXBhcnNlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5h
bWUgKGlmIGFueSkuCkBAIC02MDUsNiArNjI0LDEzIEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6
OkNTUzo6Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9wZXJ0aWVzKCkgY29u
CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8Q1NTUnVsZVNv
dXJjZURhdGE+IEluc3BlY3RvclN0eWxlOjpleHRyYWN0U291cmNlRGF0YSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQgfHwgIW1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJl
UGFyc2VkRGF0YVJlYWR5KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX3BhcmVu
dFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOworfQorCiBib29s
IEluc3BlY3RvclN0eWxlOjphcHBseVN0eWxlVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAg
ICAgcmV0dXJuIG1fcGFyZW50U3R5bGVTaGVldC0+c2V0U3R5bGVUZXh0KG1fc3R5bGUuZ2V0KCks
IHRleHQpOwpAQCAtNjY4LDcgKzY5NCw3IEBAIE5ld0xpbmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0
b3JTdHlsZTo6bmV3TGluZUFuZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKCkgY29uc3QKICAgICBpZiAo
bV9mb3JtYXRBY3F1aXJlZCkKICAgICAgICAgcmV0dXJuIG1fZm9ybWF0OwogCi0gICAgUmVmUHRy
PENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gKG1fcGFyZW50U3R5bGVTaGVldCAmJiBt
X3BhcmVudFN0eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKSA/IG1fcGFyZW50U3R5
bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQoKSkgOiAwOworICAgIFJlZlB0
cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAg
ICAgVmVjdG9yPENTU1Byb3BlcnR5U291cmNlRGF0YT4qIHNvdXJjZVByb3BlcnR5RGF0YSA9IHNv
dXJjZURhdGEgPyAmKHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+cHJvcGVydHlEYXRhKSA6
IDA7CiAgICAgaW50IHByb3BlcnR5Q291bnQ7CiAgICAgaWYgKCFzb3VyY2VQcm9wZXJ0eURhdGEg
fHwgIShwcm9wZXJ0eUNvdW50ID0gc291cmNlUHJvcGVydHlEYXRhLT5zaXplKCkpKSB7CkBAIC0x
MDAxLDcgKzEwMjcsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlNlbGVjdG9yTGlz
dD4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTZQogICAgICAgICAuc2V0VGV4
dChzZWxlY3RvclRleHQpCiAgICAgICAgIC5yZWxlYXNlKCk7CiAgICAgaWYgKHNvdXJjZURhdGEp
Ci0gICAgICAgIHJlc3VsdC0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VE
YXRhLT5ydWxlSGVhZGVyUmFuZ2UpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRSYW5nZShidWlsZFNv
dXJjZVJhbmdlT2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZSwgbGluZUVuZGluZ3Mo
KS5nZXQoKSkpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCkBAIC0xMTYzLDYg
KzExODksMTMgQEAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBJbnNwZWN0b3JTdHlsZVNoZWV0
OjpydWxlU291cmNlRGF0YUZvcihDU1NTdHlsZURlY2xhcmEKICAgICByZXR1cm4gbV9wYXJzZWRT
dHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUF0KHJ1bGVJbmRleEJ5U3R5bGUoc3R5bGUpKTsKIH0K
IAorUGFzc093blB0cjxWZWN0b3I8c2l6ZV90PiA+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmxpbmVF
bmRpbmdzKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGFyc2VkU3R5bGVTaGVldC0+aGFzVGV4dCgp
KQorICAgICAgICByZXR1cm4gUGFzc093blB0cjxWZWN0b3I8c2l6ZV90PiA+KCk7CisgICAgcmV0
dXJuIENvbnRlbnRTZWFyY2hVdGlsczo6bGluZUVuZGluZ3MobV9wYXJzZWRTdHlsZVNoZWV0LT50
ZXh0KCkpOworfQorCiB1bnNpZ25lZCBJbnNwZWN0b3JTdHlsZVNoZWV0OjpydWxlSW5kZXhCeVN0
eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHBhZ2VTdHlsZSkgY29uc3QKIHsKICAgICBlbnN1cmVG
bGF0UnVsZXMoKTsKQEAgLTE0MTYsNiArMTQ0OSwxMSBAQCBib29sIEluc3BlY3RvclN0eWxlU2hl
ZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVUZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
LAogICAgIHJldHVybiAhZWM7CiB9CiAKK1Bhc3NPd25QdHI8VmVjdG9yPHNpemVfdD4gPiBJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmxpbmVFbmRpbmdzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gQ29udGVudFNlYXJjaFV0aWxzOjpsaW5lRW5kaW5ncyhlbGVtZW50U3R5bGVUZXh0
KCkpOworfQorCiBEb2N1bWVudCogSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpv
d25lckRvY3VtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lbGVtZW50LT5kb2N1bWVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKaW5k
ZXggODFjZDc3ODgxZDVmOGQ2YTUxOWUwMjQ1ZDhiOWI5NjJlNzQ0ZWY2MS4uMTc4NDU2NGNjOWRl
MmJlY2RmMzNjMDY4YTUxMGI1NzgxNTg2M2RiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCkBAIC0xNTIsNiArMTUyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHN0eWxlVGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3Q7CiAgICAgYm9vbCBwb3B1
bGF0ZUFsbFByb3BlcnRpZXMoVmVjdG9yPEluc3BlY3RvclN0eWxlUHJvcGVydHk+KiByZXN1bHQp
IGNvbnN0OwogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+IHN0eWxl
V2l0aFByb3BlcnRpZXMoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRh
PiBleHRyYWN0U291cmNlRGF0YSgpIGNvbnN0OwogICAgIGJvb2wgYXBwbHlTdHlsZVRleHQoY29u
c3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIHNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hv
cnRoYW5kUHJvcGVydHkpIGNvbnN0OwogICAgIFN0cmluZyBzaG9ydGhhbmRQcmlvcml0eShjb25z
dCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdDsKQEAgLTIyMCw2ICsyMjEsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICAvLyBBbHNvIGFjY2Vzc2VkIGJ5IGZyaWVuZCBjbGFzcyBJbnNwZWN0
b3JTdHlsZS4KICAgICB2aXJ0dWFsIGJvb2wgc2V0U3R5bGVUZXh0KENTU1N0eWxlRGVjbGFyYXRp
b24qLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8VmVjdG9yPHNpemVf
dD4gPiBsaW5lRW5kaW5ncygpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHR5cGVkZWYgVmVjdG9y
PFJlZlB0cjxDU1NTdHlsZVJ1bGU+ID4gQ1NTU3R5bGVSdWxlVmVjdG9yOwpAQCAtMjcwLDYgKzI3
Miw3IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEFsc28gYWNjZXNzZWQgYnkgZnJpZW5kIGNsYXNz
IEluc3BlY3RvclN0eWxlLgogICAgIHZpcnR1YWwgYm9vbCBzZXRTdHlsZVRleHQoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgUGFzc093blB0cjxWZWN0
b3I8c2l6ZV90PiA+IGxpbmVFbmRpbmdzKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgQ1NTU3R5
bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwppbmRleCAyN2I4NGRlZDM4M2I4MmM3
YmNiZDVhMWQxNzYyMjhhMDE1ODVmNzYwLi5mYjU2NzQ0MWY1ODAxZDE4MjAyM2YzMGQ3OWJkODk5
NjY1MGYxOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0F1ZGl0UnVsZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdFJ1bGVzLmpzCkBAIC0zNzEsMjMgKzM3MSwxNSBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgc3R5bGVTaGVldHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0eWxlU2hlZXQgPSBzdHlsZVNoZWV0c1tpXTsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIHN0eWxlc2hlZXRTaXplID0gMDsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHVudXNlZFN0
eWxlc2hlZXRTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgdmFyIHVudXNlZFJ1bGVzID0g
W107CiAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGN1clJ1bGUgPSAwOyBjdXJSdWxlIDwg
c3R5bGVTaGVldC5ydWxlcy5sZW5ndGg7ICsrY3VyUnVsZSkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHJ1bGUgPSBzdHlsZVNoZWV0LnJ1bGVzW2N1clJ1bGVdOwotICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRXhhY3QgY29tcHV0YXRpb24gd2hlbmV2ZXIgc291cmNlIHJhbmdlcyBh
cmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRleHRMZW5ndGggPSAo
cnVsZS5zZWxlY3RvclJhbmdlICYmIHJ1bGUuc3R5bGUucmFuZ2UgJiYgcnVsZS5zdHlsZS5yYW5n
ZS5lbmQpID8gcnVsZS5zdHlsZS5yYW5nZS5lbmQgLSBydWxlLnNlbGVjdG9yUmFuZ2Uuc3RhcnQg
KyAxIDogMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGV4dExlbmd0aCAmJiBydWxl
LnN0eWxlLmNzc1RleHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dExlbmd0aCA9
IHJ1bGUuc3R5bGUuY3NzVGV4dC5sZW5ndGggKyBydWxlLnNlbGVjdG9yVGV4dC5sZW5ndGg7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXNoZWV0U2l6ZSArPSB0ZXh0TGVuZ3RoOwogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0ZWRTZWxlY3RvcnNbcnVsZS5zZWxlY3RvclRl
eHRdIHx8IGZvdW5kU2VsZWN0b3JzW3J1bGUuc2VsZWN0b3JUZXh0XSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZFN0
eWxlc2hlZXRTaXplICs9IHRleHRMZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICB1bnVz
ZWRSdWxlcy5wdXNoKHJ1bGUuc2VsZWN0b3JUZXh0KTsKICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB0b3RhbFN0eWxlc2hlZXRTaXplICs9IHN0eWxlc2hlZXRTaXpl
OwotICAgICAgICAgICAgICAgICAgICB0b3RhbFVudXNlZFN0eWxlc2hlZXRTaXplICs9IHVudXNl
ZFN0eWxlc2hlZXRTaXplOworICAgICAgICAgICAgICAgICAgICB0b3RhbFN0eWxlc2hlZXRTaXpl
ICs9IHN0eWxlU2hlZXQucnVsZXMubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB0b3RhbFVu
dXNlZFN0eWxlc2hlZXRTaXplICs9IHVudXNlZFJ1bGVzLmxlbmd0aDsKIAogICAgICAgICAgICAg
ICAgICAgICBpZiAoIXVudXNlZFJ1bGVzLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwpAQCAtMzk1LDEwICszODcsMTAgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
VW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciByZXNv
dXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChzdHlsZVNoZWV0LnNvdXJjZVVSTCk7
CiAgICAgICAgICAgICAgICAgICAgIHZhciBpc0lubGluZUJsb2NrID0gcmVzb3VyY2UgJiYgcmVz
b3VyY2UucmVxdWVzdCAmJiByZXNvdXJjZS5yZXF1ZXN0LnR5cGUgPT0gV2ViSW5zcGVjdG9yLnJl
c291cmNlVHlwZXMuRG9jdW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSAhaXNJ
bmxpbmVCbG9jayA/IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlO
YW1lKHN0eWxlU2hlZXQuc291cmNlVVJMKSA6IFN0cmluZy5zcHJpbnRmKCJJbmxpbmUgYmxvY2sg
IyVkIiwgKytpbmxpbmVCbG9ja09yZGluYWwpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcGN0
VW51c2VkID0gTWF0aC5yb3VuZCgxMDAgKiB1bnVzZWRTdHlsZXNoZWV0U2l6ZSAvIHN0eWxlc2hl
ZXRTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHBjdFVudXNlZCA9IE1hdGgucm91bmQo
MTAwICogdW51c2VkUnVsZXMubGVuZ3RoIC8gc3R5bGVTaGVldC5ydWxlcy5sZW5ndGgpOwogICAg
ICAgICAgICAgICAgICAgICBpZiAoIXN1bW1hcnkpCiAgICAgICAgICAgICAgICAgICAgICAgICBz
dW1tYXJ5ID0gcmVzdWx0LmFkZENoaWxkKCIiLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIGVudHJ5ID0gc3VtbWFyeS5hZGRGb3JtYXR0ZWQoIiVzOiAlcyAoJWQlKSBpcyBub3QgdXNl
ZCBieSB0aGUgY3VycmVudCBwYWdlLiIsIHVybCwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodW51c2Vk
U3R5bGVzaGVldFNpemUpLCBwY3RVbnVzZWQpOworICAgICAgICAgICAgICAgICAgICB2YXIgZW50
cnkgPSBzdW1tYXJ5LmFkZEZvcm1hdHRlZCgiJXM6ICVkJSBpcyBub3QgdXNlZCBieSB0aGUgY3Vy
cmVudCBwYWdlLiIsIHVybCwgcGN0VW51c2VkKTsKIAogICAgICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IHVudXNlZFJ1bGVzLmxlbmd0aDsgKytqKQogICAgICAgICAgICAgICAg
ICAgICAgICAgZW50cnkuYWRkU25pcHBldCh1bnVzZWRSdWxlc1tqXSk7CkBAIC00MTAsNyArNDAy
LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsKTsKIAogICAgICAgICAg
ICAgICAgIHZhciB0b3RhbFVudXNlZFBlcmNlbnQgPSBNYXRoLnJvdW5kKDEwMCAqIHRvdGFsVW51
c2VkU3R5bGVzaGVldFNpemUgLyB0b3RhbFN0eWxlc2hlZXRTaXplKTsKLSAgICAgICAgICAgICAg
ICBzdW1tYXJ5LnZhbHVlID0gU3RyaW5nLnNwcmludGYoIiVzICglZCUpIG9mIENTUyBpcyBub3Qg
dXNlZCBieSB0aGUgY3VycmVudCBwYWdlLiIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHRvdGFsVW51
c2VkU3R5bGVzaGVldFNpemUpLCB0b3RhbFVudXNlZFBlcmNlbnQpOworICAgICAgICAgICAgICAg
IHN1bW1hcnkudmFsdWUgPSBTdHJpbmcuc3ByaW50ZigiJXMgcnVsZXMgKCVkJSkgb2YgQ1NTIG5v
dCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuIiwgdG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSwg
dG90YWxVbnVzZWRQZXJjZW50KTsKIAogICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggMmRiM2M4ZmExNmFlMGMzYWFiMmVmMDMzNWZmYjBl
MDVhNTIwZDdiMC4uOTM3MGM0NTk1ZGZlZDU1NjFhNTFiYTA0ZjUzNTU5OTVmMTVmY2FjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcwpAQCAtODU0LDEzICs4NTQsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1J1bGUgPSBmdW5jdGlv
bihwYXlsb2FkLCBtYXRjaGluZ1NlbGVjdG9ycykKICAgICB0aGlzLnNlbGVjdG9yUmFuZ2UgPSBw
YXlsb2FkLnNlbGVjdG9yTGlzdC5yYW5nZTsKICAgICB0aGlzLnNvdXJjZUxpbmUgPSBwYXlsb2Fk
LnNvdXJjZUxpbmU7CiAgICAgdGhpcy5zb3VyY2VVUkwgPSBwYXlsb2FkLnNvdXJjZVVSTDsKLSAg
ICBpZiAocGF5bG9hZC5zb3VyY2VVUkwpCi0gICAgICAgIHRoaXMuX3Jhd0xvY2F0aW9uID0gbmV3
IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbihwYXlsb2FkLnNvdXJjZVVSTCwgcGF5bG9hZC5zb3Vy
Y2VMaW5lKTsKICAgICB0aGlzLm9yaWdpbiA9IHBheWxvYWQub3JpZ2luOwogICAgIHRoaXMuc3R5
bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQocGF5bG9h
ZC5zdHlsZSk7CiAgICAgdGhpcy5zdHlsZS5wYXJlbnRSdWxlID0gdGhpczsKICAgICBpZiAocGF5
bG9hZC5tZWRpYSkKICAgICAgICAgdGhpcy5tZWRpYSA9IFdlYkluc3BlY3Rvci5DU1NNZWRpYS5w
YXJzZU1lZGlhQXJyYXlQYXlsb2FkKHBheWxvYWQubWVkaWEpOworICAgIHRoaXMuX3NldFJhd0xv
Y2F0aW9uKHBheWxvYWQpOwogfQogCiAvKioKQEAgLTg3NCw2ICs4NzMsMjAgQEAgV2ViSW5zcGVj
dG9yLkNTU1J1bGUucGFyc2VQYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCwgbWF0Y2hpbmdJbmRp
Y2VzKQogfQogCiBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUgPSB7CisgICAgX3NldFJh
d0xvY2F0aW9uOiBmdW5jdGlvbihwYXlsb2FkKQorICAgIHsKKyAgICAgICAgaWYgKCFwYXlsb2Fk
LnNvdXJjZVVSTCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0
b3JSYW5nZSkgeworICAgICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKHBheWxvYWQuc291cmNlVVJMKTsKKyAgICAgICAg
ICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBlID09PSBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUeXBlcy5TdHlsZXNoZWV0KSB7CisgICAgICAgICAgICAgICAgdGhpcy5fcmF3TG9jYXRpb24g
PSBuZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uKHBheWxvYWQuc291cmNlVVJMLCB0aGlzLnNl
bGVjdG9yUmFuZ2Uuc3RhcnRMaW5lLCB0aGlzLnNlbGVjdG9yUmFuZ2Uuc3RhcnRDb2x1bW4pOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICB0aGlzLl9yYXdMb2NhdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24ocGF5bG9h
ZC5zb3VyY2VVUkwsIHBheWxvYWQuc291cmNlTGluZSk7CisgICAgfSwKKwogICAgIGdldCBpc1Vz
ZXJBZ2VudCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW4gPT09ICJ1c2VyLWFn
ZW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NB
U1NTb3VyY2VNYXBwaW5nLmpzCmluZGV4IDIwZDg1NThlOWY3MzY2Y2U3NzE4OGZlZjg2MDQwOGZm
NjI5M2ZlOTEuLmM1MTZkY2YzYzlkZmZjY2ZjMzA0MWE5YzM3ODUyZGMxOGQ2NDYxN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBp
bmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNl
TWFwcGluZy5qcwpAQCAtMjI2LDYgKzIyNiw3IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2JpbmRVSVNvdXJjZUNvZGU6IGZ1bmN0
aW9uKHJhd1VSTCwgc291cmNlTWFwKQogICAgIHsKKyAgICAgICAgdGhpcy5fY3NzTW9kZWwuc2V0
U291cmNlTWFwcGluZyhyYXdVUkwsIHRoaXMpOwogICAgICAgICB2YXIgc291cmNlcyA9IHNvdXJj
ZU1hcC5zb3VyY2VzKCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc291cmNlcy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHVybCA9IHNvdXJjZXNbaV07CkBAIC0yMzMsMTIg
KzIzNCwxMCBAQCBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHZhciBjb250ZW50ID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkodXJsKTsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudFBy
b3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVj
dG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCwgY29udGVudCwgInRleHQveC1zY3NzIik7CiAg
ICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3ZpZGVyLCB0cnVlKTsKLSAgICAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyh0aGlzKTsKICAgICAgICAg
ICAgICAgICB0aGlzLl9hZGRDU1NVUkxmb3JTQVNTVVJMKHJhd1VSTCwgdXJsKTsKKyAgICAgICAg
ICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyh0aGlzKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX2Nzc01vZGVsLnNldFNvdXJjZU1hcHBpbmco
cmF3VVJMLCB0aGlzKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGZiYzU3Y2YyYzhmMTMy
N2U4NmIwZTRmOTI4ZWE4OGYyM2Y4NGFiNS4uODViYWRkMDAwNmFmNzZlMzc5MDBiODgyMmJjZmQx
OWIxOWNmMjFmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAyLTI1ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
U2VsZWN0b3IncyByYXcgc3RhcnQgcG9zaXRpb24gaW4gaXRzIGxpbmUgaXMgY29uc2lkZXJlZCB0
byBiZSAwIHdoZW4gY29tcHV0aW5nIFVJTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYWdlZCB0ZXN0cyBoYXZlIGJlZW4gcmViYXNlbGlu
ZWQgdG8gZm9sbG93IHRoZSBuZXcgc291cmNlIHJhbmdlIHN0cnVjdHVyZS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QucmFuZ2VUZXh0KTogRml4IHNvdXJjZSByYW5n
ZSBkdW1waW5nIGZvcm1hdC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5l
bC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXN0eWxlc2hlZXQtZXJyb3JzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5l
LmNzczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0
b3ItbGluZS5jc3MubWFwOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zZWxlY3Rvci1saW5lLnNjc3M6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvc2VsZWN0b3ItbGluZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9zdHlsZXMvc2VsZWN0b3ItbGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbDoKKwogMjAxMy0wMi0yNCAg
S2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgYW4g
QVNTRVJUIHRvIGRpZENoYW5nZURldmljZVByb3hpbWl0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggNjFmNjZmOTM3MzA0MjU2
MDA4NjhkYzY2NjFlZjY3NTQzZjZiNzZkMi4uNDIyODc2N2UwNDIyZmRiMjU1ZWVjYjM5NThjYTc1
MzQxMjFkMjljYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy10ZXN0LmpzCkBAIC00NzEsNyArNDcxLDcgQEAgSW5zcGVjdG9yVGVzdC5yYW5nZVRl
eHQgPSBmdW5jdGlvbihyYW5nZSkKIHsKICAgICBpZiAoIXJhbmdlKQogICAgICAgICByZXR1cm4g
Ilt1bmRlZmluZWQtdW5kZWZpbmVkXSI7Ci0gICAgcmV0dXJuICJbIiArIHJhbmdlLnN0YXJ0ICsg
Ii0iICsgcmFuZ2UuZW5kICsgIl0iOworICAgIHJldHVybiAiWyIgKyByYW5nZS5zdGFydExpbmUg
KyAiOiIgKyByYW5nZS5zdGFydENvbHVtbiArICItIiArIHJhbmdlLmVuZExpbmUgKyAiOiIgKyBy
YW5nZS5lbmRDb2x1bW4gKyAiXSI7CiB9CiAKIEluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRvVGVz
dCA9IGZ1bmN0aW9uKHRlc3RCb2R5KQpAQCAtNTM0LDEwICs1MzQsMTggQEAgSW5zcGVjdG9yVGVz
dC5kdW1wUnVsZU1hdGNoZXNBcnJheSA9IGZ1bmN0aW9uKG1hdGNoZXMsIGN1cnJlbnRJbmRlbnQp
CiAKIEluc3BlY3RvclRlc3QuZHVtcFJ1bGUgPSBmdW5jdGlvbihydWxlLCBjdXJyZW50SW5kZW50
KQogeworICAgIGZ1bmN0aW9uIHNlbGVjdG9yUmFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFy
dWxlLnNlbGVjdG9yTGlzdCB8fCAhcnVsZS5zZWxlY3Rvckxpc3QucmFuZ2UpCisgICAgICAgICAg
ICByZXR1cm4gIiI7CisgICAgICAgIHZhciByYW5nZSA9IHJ1bGUuc2VsZWN0b3JMaXN0LnJhbmdl
OworICAgICAgICByZXR1cm4gIiwgIiArIHJhbmdlLnN0YXJ0TGluZSArICI6IiArIHJhbmdlLnN0
YXJ0Q29sdW1uICsgIi0iICsgcmFuZ2UuZW5kTGluZSArICI6IiArIHJhbmdlLmVuZENvbHVtbjsK
KyAgICB9CisKICAgICBjdXJyZW50SW5kZW50ID0gY3VycmVudEluZGVudCB8fCAiIjsKIAogICAg
IGlmICghcnVsZS50eXBlIHx8IHJ1bGUudHlwZSA9PT0gInN0eWxlIikgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChjdXJyZW50SW5kZW50ICsgcnVsZS5zZWxlY3Rvckxpc3QudGV4
dCArICI6IFsiICsgcnVsZS5vcmlnaW4gKyAiXSB7Iik7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyBydWxlLnNlbGVjdG9yTGlzdC50ZXh0ICsgIjogWyIg
KyBydWxlLm9yaWdpbiArIHNlbGVjdG9yUmFuZ2UoKSArICJdIHsiKTsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU3R5bGUocnVsZS5zdHlsZSwgY3VycmVudEluZGVudCArIGluZGVudCk7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyAifSIpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDNmMmNi
Njc5NzRkMDQ0OWRiNWQxYTRkNTQwZTZhYjEwMTYyYmI2NmEuLmRmYjIyNTA3Mzc4YjBmYzM1NTIw
ZGRiNDc2OTYxYjhmMTc0N2M4OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0
CkBAIC0yMywxNiArMjMsMTYgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgIHNob3VsZCBiZSBtb3Zl
ZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKICAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
Lmh0bWwKICAgICBSZW1vdmUgdW51c2VkIENTUyBydWxlcyAoNCkKLSAgICAgMjA54oCJQiAoMTAw
JSkgb2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCi0gICAgICBJbmxpbmUg
YmxvY2sgIzE6IDY54oCJQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4K
KyAgICAgNCBydWxlcyAoMTAwJSkgb2YgQ1NTIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2Uu
CisgICAgICBJbmxpbmUgYmxvY2sgIzE6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQg
cGFnZS4KICAgICAgICAudW51c2VkCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIDog
NDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgOiAx
MDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5bGUK
LSAgICAgIElubGluZSBibG9jayAjMjogNTTigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJsb2NrICMyOiAxMDAlIGlzIG5vdCB1c2VkIGJ5
IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnZpb2xhdGlvbgogICAgICAgIGF1ZGl0cy1zdHls
ZTEuY3NzCi0gICAgICA6IDQz4oCJQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQg
cGFnZS4KKyAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAg
ICAgIC5zb21lLXN0eWxlCiAgICAgVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVh
ZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAoMSkKICAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRz
LXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50
eHQKaW5kZXggZWZmYzJhMzJhYzJkODQzMjA3NzJiN2UzOWM3NzI5MzQyOGU4NjczMS4uMTlhYTdi
ZmNjMzc0MjgyZDliYTc1YzU0OTk3Y2ZhYTU2OWVlMDdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
bm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTE5LDE1ICsxOSwxNSBAQCBQYWdl
IHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFkIGlu
IAogICAgICAgYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwuaHRtbAogICAgIFJlbW92
ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAxNDHigIlCICgxMDAlKSBvZiBDU1MgaXMgbm90
IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAjMTogMjnigIlC
ICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICA0IHJ1bGVzICgx
MDAlKSBvZiBDU1Mgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElubGluZSBi
bG9jayAjMTogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC51
bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwotICAgICAgOiA0M+KAiUIgKDEwMCUpIGlz
IG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICA6IDEwMCUgaXMgbm90IHVzZWQg
YnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQotICAgICAgSW5saW5lIGJs
b2NrICMyOiAyNuKAiUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisg
ICAgICBJbmxpbmUgYmxvY2sgIzI6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFn
ZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIDog
NDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgOiAx
MDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5bGUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9nZXQtc2V0LXN0eWxl
c2hlZXQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dl
dC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiZTUyZDBkY2IyM2I4Nzg5
ODI4YWMxN2FjZTMyZmRiMmM2YjdkOTU3Li43N2I5NTg5NTg3MzYwNmI4MjU3MDRiMzcwNTlmNWM4
OGE2NzM5YjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1z
ZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtNDAsNSAr
NDAsNSBAQCBoMTogW3VzZXItYWdlbnRdCiAKIHJ1bGUKIGgxOiBbcmVndWxhcl0KLVsnQ09MT1In
OidSZWQnXSBAWzEtMTJdIGFjdGl2ZQorWydDT0xPUic6J1JlZCddIEBbMDo1LTA6MTZdIGFjdGl2
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXN0eWxl
c2hlZXQtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGMxN2MzNDQ4NjEzNDFi
NTVkMmY4MmM5M2Y1MTdhMDVmMzM2OTdkN2QuLmU1ZWNiNzVlNjNhMDA0MGM5NjJiMmQ2OWQzYjkw
YWJkMmY3MDdiYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcGFy
c2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0xLDM2
ICsxLDM2IEBACiBUZXN0cyB0aGF0IENTU1BhcnNlciBwcm9kdWNlcyBzb3VyY2UgZGF0YSBjb25z
aXN0ZW50IHdpdGggQ1NTT00gd2hlbiBwYXJzaW5nIGJyb2tlbiBzdHlsZXNoZWV0cy4gQnVnIDk4
MjQ2CiAKLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J2JsYWNrJ10gQFs1LTE4XSBh
Y3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAxOjAtMTo0XSB7CisgICAgWydjb2xvcic6J2JsYWNrJ10g
QFsyOjQtMjoxN10gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnYmFja2dyb3Vu
ZC1jb2xvcic6J2Jyb2tlbi1kZWNsYXJhdGlvbicgbm9uLXBhcnNlZF0gQFs1LTQyXSBhY3RpdmUK
K2JvZHk6IFtyZWd1bGFyLCAxMjowLTEyOjRdIHsKKyAgICBbJ2JhY2tncm91bmQtY29sb3InOidi
cm9rZW4tZGVjbGFyYXRpb24nIG5vbi1wYXJzZWRdIEBbMTM6NC0xMzo0MV0gYWN0aXZlCiB9Ci1i
b2R5OiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOidpbXBvcnQtZXJyb3InIG5vbi1wYXJzZWRd
IEBbNS0yNV0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjowLTI6NF0geworICAgIFsnY29sb3In
OidpbXBvcnQtZXJyb3InIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjRdIGFjdGl2ZQogfQotYm9keTog
W3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonaW1wb3J0LWVycm9yLWJsb2NrJyBub24tcGFyc2Vk
XSBAWzUtMzFdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2NvbG9y
JzonaW1wb3J0LWVycm9yLWJsb2NrJyBub24tcGFyc2VkXSBAWzM6NC0zOjMwXSBhY3RpdmUKIH0K
LWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J21lZGlhLWVtcHR5JyBub24tcGFyc2Vk
XSBAWzUtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2NvbG9y
JzonbWVkaWEtZW1wdHknIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjNdIGFjdGl2ZQogfQotYm9keTog
W3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzoncGFnZS1lcnJvcicgbm9uLXBhcnNlZF0gQFs1LTIz
XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAyOjAtMjo0XSB7CisgICAgWydjb2xvcic6J3BhZ2Ut
ZXJyb3InIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjJdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJd
IHsKLSAgICBbJ2NvbG9yJzoncGFnZS1ibG9jaycgbm9uLXBhcnNlZF0gQFs1LTIzXSBhY3RpdmUK
K2JvZHk6IFtyZWd1bGFyLCAyOjAtMjo0XSB7CisgICAgWydjb2xvcic6J3BhZ2UtYmxvY2snIG5v
bi1wYXJzZWRdIEBbMzo0LTM6MjJdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBb
J2NvbG9yJzonYmVmb3JlLWltcG9ydCcgbm9uLXBhcnNlZF0gQFs1LTI2XSBhY3RpdmUKK2JvZHk6
IFtyZWd1bGFyLCAxOjAtMTo0XSB7CisgICAgWydjb2xvcic6J2JlZm9yZS1pbXBvcnQnIG5vbi1w
YXJzZWRdIEBbMjo0LTI6MjVdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ2Nv
bG9yJzonYWZ0ZXItaW1wb3J0JyBub24tcGFyc2VkXSBAWzUtMjVdIGFjdGl2ZQorYm9keTogW3Jl
Z3VsYXIsIDU6MC01OjRdIHsKKyAgICBbJ2NvbG9yJzonYWZ0ZXItaW1wb3J0JyBub24tcGFyc2Vk
XSBAWzY6NC02OjI0XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6
J2FmdGVyLWludmFsaWQtZm9udC1mYWNlJyBub24tcGFyc2VkXSBAWzUtMzZdIGFjdGl2ZQorYm9k
eTogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKKyAgICBbJ2NvbG9yJzonYWZ0ZXItaW52YWxpZC1mb250
LWZhY2UnIG5vbi1wYXJzZWRdIEBbNTo0LTU6MzVdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJd
IHsKLSAgICBbJ2NvbG9yJzonYWZ0ZXItaW52YWxpZC1yZWdpb24nIG5vbi1wYXJzZWRdIEBbNS0z
M10gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMzowLTM6NF0geworICAgIFsnY29sb3InOidhZnRl
ci1pbnZhbGlkLXJlZ2lvbicgbm9uLXBhcnNlZF0gQFs0OjQtNDozMl0gYWN0aXZlCiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9y
LWxpbmUuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0
b3ItbGluZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzExNWIyNTIyYjQ1OWZmMzI4NGIyZGM0Njc0MzdiYTlh
ODBkNDI2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzCkBAIC0wLDAgKzEsNiBAQAorI2NvbnRhaW5lciB7
CisgIGJhY2tncm91bmQ6IHBhcGF5YXdoaXA7IH0KKyAgI2NvbnRhaW5lciAjaW5zcGVjdGVkIHsK
KyAgICBjb2xvcjogZ3JlZW47IH0KKworLypAIHNvdXJjZU1hcHBpbmdVUkw9c2VsZWN0b3ItbGlu
ZS5jc3MubWFwICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MubWFw
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5j
c3MubWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRiZjI3NTg2ODY2ZTUwYjVhM2E5ZjIwZjc1NTk0NTZmNjZmYWIy
NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAKQEAgLTAsMCArMSw2IEBACit7CisidmVyc2lvbiI6
ICIzIiwKKyJtYXBwaW5ncyI6ICJBQUFBLFVBQVc7RUFDUCxVQUFVLEVBQUUsVUFBVTtFQUV0Qixx
QkFBVztJQUNQLEtBQUssRUFBRSxLQUFLIiwKKyJzb3VyY2VzIjogWyJzZWxlY3Rvci1saW5lLnNj
c3MiXSwKKyJmaWxlIjogInNlbGVjdG9yLWxpbmUuY3NzIgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5zY3NzIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5zY3NzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVjNzRkMzVkMjliMTY4YTk0NWI3ZjlhZjI4YTdhOTNiYjdlZjk5MGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxl
Y3Rvci1saW5lLnNjc3MKQEAgLTAsMCArMSw3IEBACisjY29udGFpbmVyIHsKKyAgICBiYWNrZ3Jv
dW5kOiBwYXBheWF3aGlwOworCisgICAgI2luc3BlY3RlZCB7CisgICAgICAgIGNvbG9yOiBncmVl
bjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Nl
bGVjdG9yLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
ZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmFhYzdmY2VlZWI4OTJlMDZm
NmFlZmExNjkyZDY0OTIzNGI4ZDYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBA
CitUZXN0cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29tcHV0ZWQgY29ycmVjdGx5IHJlZ2FyZGxl
c3Mgb2YgaXRzIHN0YXJ0IGNvbHVtbi4gQnVnIDExMDczMi4KKworVGV4dAorW2V4cGFuZGVkXSAK
K2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KK1tleHBhbmRlZF0gCisjY29udGFpbmVyICNpbnNwZWN0ZWQgIHsgKHNlbGVjdG9yLWxpbmUu
c2Nzczo0KQorY29sb3I6IGdyZWVuOworCitbZXhwYW5kZWRdIAorI2luc3BlY3RlZCAgeyAoc2Vs
ZWN0b3ItbGluZS5odG1sOjUpCisvLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IGdyZWVuOworCitb
ZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9j
azsKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0
b3ItbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDQ5N2YzMzg2ZGNhMTQ1Mjk0MWE4MWQyNjc1NmMwYzZiNDYyODQ4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0
b3ItbGluZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisj
aW5zcGVjdGVkCit7CisgIGNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcyIgLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIg
c2Fzc01hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbCwgV2ViSW5zcGVjdG9yLndvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLm5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3Vy
Y2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkLCBudWxsKTsKKyAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIHN0ZXAxKCk7CisKKyAgICBmdW5jdGlvbiB1aVNv
dXJjZUNvZGVBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBl
dmVudC5kYXRhOworICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybC5lbmRzV2l0aCgiLnNjc3Mi
KSkKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdDaGFuZ2VkLCBzdGVwMiwgbnVsbCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLmZvckFsbFJlc291cmNlcyhjYWxsYmFjayk7CisgICAgICAg
IGZ1bmN0aW9uIGNhbGxiYWNrKHJlc291cmNlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
cmVzb3VyY2UudXJsLmVuZHNXaXRoKCIuY3NzIikpIHsKKyAgICAgICAgICAgICAgICBzYXNzTWFw
cGluZy5fcmVzb3VyY2VBZGRlZChuZXcgV2ViSW5zcGVjdG9yLkV2ZW50KFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbCwgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlw
ZXMuUmVzb3VyY2VBZGRlZCwgcmVzb3VyY2UpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHls
ZXMoImluc3BlY3RlZCIsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMygpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1
ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0
cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29tcHV0ZWQgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2Yg
aXRzIHN0YXJ0IGNvbHVtbi4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDczMiI+QnVnIDExMDczMjwvYT4uCis8L3A+CisKKzxkaXYgaWQ9ImNvbnRh
aW5lciI+CisgICAgPGRpdiBpZD0iaW5zcGVjdGVkIj5UZXh0PC9kaXY+Cis8L2Rpdj4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dAppbmRleCAyODFhOGRhNGI3MmM0ZmU1YTVhMzYz
MTE2Y2FkYzRkMThiZGIxNzY0Li42YmFkODM5NzlkMzhmY2E4NDIwZDZhNDYwN2IwMTczMjkxNmFh
NzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXct
QVBJLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1uZXctQVBJLWV4cGVjdGVkLnR4dApAQCAtMTQsMjkgKzE0LDI5IEBAIGJvZHk6IFt1c2VyLWFn
ZW50XSB7CiAgICAgWydtYXJnaW4tYm90dG9tJzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogICAgIFsnbWFyZ2luLWxlZnQnOic4cHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1t
ZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFs1LTQ4XSBhY3RpdmUKK2JvZHk6
IFtyZWd1bGFyLCAyMDowLTIwOjRdIHsKKyAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEt
c2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0aXZlCiB9Ci1i
b2R5OiBbcmVndWxhcl0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4t
c3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFs1LTQ4XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAy
MDowLTIwOjRdIHsKKyAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxl
c2hlZXQnIG5vbi1wYXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxh
cl0gewotICAgIFsnZm9udC1zaXplJzonMTJweCddIEBbNS0yMV0gYWN0aXZlCitib2R5OiBbcmVn
dWxhciwgOTowLTk6NF0geworICAgIFsnZm9udC1zaXplJzonMTJweCddIEBbMTA6NC0xMDoyMF0g
YWN0aXZlCiAgICAgWydmb28nOidiYXIgIQogCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQg
cHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5vbi1w
YXJzZWRdIEBbMjYtMTA0XSBhY3RpdmUKLSAgICBbJ2hlaWdodCc6JzEwMCUgIWltcG9ydGFudCcg
aXMtaW1wb3J0YW50XSBAWzEwOS0xMzNdIGFjdGl2ZQotICAgIFsnY29sb3J6JzonIiFpbXBvcnRh
bnQiJyBub24tcGFyc2VkXSBAWzEzOC0xNTldIGFjdGl2ZQotICAgIFsnaW1wb3J0YW50JzonIWlt
cG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjQtMTg1XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzoneWVs
bG93J10gQFsxOTAtMjA0XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9y
dGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50
IG5vbi1wYXJzZWRdIEBbMjA5LTI3OF0gYWN0aXZlCisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRh
bnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5v
bi1wYXJzZWRdIEBbMTE6NC0xMzo2Nl0gYWN0aXZlCisgICAgWydoZWlnaHQnOicxMDAlICFpbXBv
cnRhbnQnIGlzLWltcG9ydGFudF0gQFsxNDo0LTE0OjI4XSBhY3RpdmUKKyAgICBbJ2NvbG9yeic6
JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxNTo0LTE1OjI1XSBhY3RpdmUKKyAgICBbJ2lt
cG9ydGFudCc6JyFpbXBvcnRhbnQnIG5vbi1wYXJzZWRdIEBbMTY6NC0xNjoyNV0gYWN0aXZlCisg
ICAgWydjb2xvcic6J3llbGxvdyddIEBbMTc6NC0xNzoxOF0gYWN0aXZlCisgICAgWydjb2xvcic6
JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFs
dWUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzE4OjQtMTg6NzNdIGFjdGl2ZQogfQot
Ym9keS5tYWluMTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMTMtMjhd
IGFjdGl2ZQotICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXpl
ZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyOC04MV0gYWN0aXZlCitib2R5Lm1haW4xOiBb
cmVndWxhciwgMjE6MjktMjE6NjddIHsKKyAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMjE6ODEt
MjE6OTZdIGFjdGl2ZQorICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVj
b2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyMTo5Ni0yMToxNDldIGFjdGl2ZQog
fQotYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKLSAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2
YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZl
cnkgIWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzAtOTVdIGFjdGl2ZQorYm9keS5tYWlu
MjogW3JlZ3VsYXIsIDIzOjAtMjM6MTBdIHsKKyAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2
YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZl
cnkgIWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzIzOjExLTIzOjEwNl0gYWN0aXZlCiAg
ICAgWydiYWNrZ3JvdW5kLWltYWdlJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14JzonaW5pdGlhbCcg
aXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3Jv
dW5kLXJlcGVhdC15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCkBAIC00OCwxOSArNDgsMTkgQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKICAg
ICBbJ2JhY2tncm91bmQtY29sb3InOidncmVlbicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1pbXBv
cnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHkubWFpbnBhZ2U6IFty
ZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XSBhY3RpdmUK
LSAgICBbJ2JhZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDgtMTMyXSBh
Y3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAzOjAtMzoxM10geworICAgIFsndGV4dC1k
ZWNvcmF0aW9uJzonbm9uZSddIEBbNDo0LTQ6MjZdIGFjdGl2ZQorICAgIFsnYmFkcHJvcGVydHkn
OicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzU6NS01OjI5XSBhY3RpdmUKIH0KLWJvZHkubWFp
bnBhZ2U6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wMSc6J3ZhbDEnIG5vbi1wYXJzZWRdIEBbNS0x
N10gYWN0aXZlCi0gICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMjItMzRdIGFjdGl2
ZQorYm9keS5tYWlucGFnZTogW3JlZ3VsYXIsIDg6MC04OjEzXSB7CisgICAgWydwcm9wMSc6J3Zh
bDEnIG5vbi1wYXJzZWRdIEBbOTo0LTk6MTZdIGFjdGl2ZQorICAgIFsncHJvcDInOid2YWwyJyBu
b24tcGFyc2VkXSBAWzEwOjQtMTA6MTZdIGFjdGl2ZQogfQogCiA9PT0gUHNldWRvIHJ1bGVzIGZv
ciBib2R5ID09PQogUHNldWRvSWQ9NAotYm9keTo6YWZ0ZXI6IFtyZWd1bGFyXSB7Ci0gICAgWydj
b250ZW50JzonIkFmdGVyIGJvZHkiJ10gQFs1LTI3XSBhY3RpdmUKK2JvZHk6OmFmdGVyOiBbcmVn
dWxhciwgMjY6MC0yNjoxMV0geworICAgIFsnY29udGVudCc6JyJBZnRlciBib2R5IiddIEBbMjc6
NC0yNzoyNl0gYWN0aXZlCiB9CiAKID09PSBJbmhlcml0ZWQgc3R5bGVzIGZvciBib2R5ID09PQpA
QCAtNjksMTQgKzY5LDE0IEBAIExldmVsPTEKIGh0bWw6IFt1c2VyLWFnZW50XSB7CiAgICAgWydk
aXNwbGF5JzonYmxvY2snXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1odG1sOiBb
cmVndWxhcl0gewotICAgIFsnZm9udC13ZWlnaHQnOic0MDAnXSBAWzUtMjJdIGFjdGl2ZQoraHRt
bDogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKKyAgICBbJ2ZvbnQtd2VpZ2h0JzonNDAwJ10gQFs1OjQt
NToyMV0gYWN0aXZlCiB9CiAKID09PSBJbmxpbmUgc3R5bGUgZm9yIGJvZHkgPT09Ci1bJ2ZvbnQt
d2VpZ2h0Jzonbm9ybWFsJ10gQFswLTIwXSBhY3RpdmUKLVsnd2lkdGgnOic4NSUnXSBAWzIxLTMy
XSBhY3RpdmUKLVsnYmFja2dyb3VuZC1pbWFnZSc6J3VybChiYXIucG5nKSddIEBbMzMtNjNdIGFj
dGl2ZQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMDowLTA6MjBdIGFjdGl2ZQorWyd3aWR0
aCc6Jzg1JSddIEBbMDoyMS0wOjMyXSBhY3RpdmUKK1snYmFja2dyb3VuZC1pbWFnZSc6J3VybChi
YXIucG5nKSddIEBbMDozMy0wOjYzXSBhY3RpdmUKID09PSBCT0RZIHdpdGggZm9yY2VkIDpob3Zl
ciA9PT0KIGJvZHk6IFt1c2VyLWFnZW50XSB7CiAgICAgWydkaXNwbGF5JzonYmxvY2snXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCkBAIC04NSwyOSArODUsMjkgQEAgYm9keTogW3VzZXIt
YWdlbnRdIHsKICAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCiAgICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVk
LW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9k
eTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRp
YS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0K
LWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVl
bi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIs
IDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5
bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1
bGFyXSB7Ci0gICAgWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXSBhY3RpdmUKK2JvZHk6IFty
ZWd1bGFyLCA5OjAtOTo0XSB7CisgICAgWydmb250LXNpemUnOicxMnB4J10gQFsxMDo0LTEwOjIw
XSBhY3RpdmUKICAgICBbJ2Zvbyc6J2JhciAhCiAKLSAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFu
dCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQgbm9u
LXBhcnNlZF0gQFsyNi0xMDRdIGFjdGl2ZQotICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50
JyBpcy1pbXBvcnRhbnRdIEBbMTA5LTEzM10gYWN0aXZlCi0gICAgWydjb2xvcnonOiciIWltcG9y
dGFudCInIG5vbi1wYXJzZWRdIEBbMTM4LTE1OV0gYWN0aXZlCi0gICAgWydpbXBvcnRhbnQnOich
aW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2NC0xODVdIGFjdGl2ZQotICAgIFsnY29sb3InOid5
ZWxsb3cnXSBAWzE5MC0yMDRdIGFjdGl2ZQotICAgIFsnY29sb3InOiciYmFkY29sb3IiICEgaW1w
b3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1pbXBvcnRh
bnQgbm9uLXBhcnNlZF0gQFsyMDktMjc4XSBhY3RpdmUKKyAgICBpbXBvcnRhbnQgLyogIWltcG9y
dGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQg
bm9uLXBhcnNlZF0gQFsxMTo0LTEzOjY2XSBhY3RpdmUKKyAgICBbJ2hlaWdodCc6JzEwMCUgIWlt
cG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzE0OjQtMTQ6MjhdIGFjdGl2ZQorICAgIFsnY29sb3J6
JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzE1OjQtMTU6MjVdIGFjdGl2ZQorICAgIFsn
aW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjo0LTE2OjI1XSBhY3RpdmUK
KyAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsxNzo0LTE3OjE4XSBhY3RpdmUKKyAgICBbJ2NvbG9y
JzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2
YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTg6NC0xODo3M10gYWN0aXZlCiB9
Ci1ib2R5Lm1haW4xOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsxMy0y
OF0gYWN0aXZlCi0gICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25p
emVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzI4LTgxXSBhY3RpdmUKK2JvZHkubWFpbjE6
IFtyZWd1bGFyLCAyMToyOS0yMTo2N10geworICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsyMTo4
MS0yMTo5Nl0gYWN0aXZlCisgICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5y
ZWNvZ25pemVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0aXZl
CiB9Ci1ib2R5Lm1haW4yOiBbcmVndWxhcl0gewotICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8q
IHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwg
dmVyeSAhaW1wb3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMC05NV0gYWN0aXZlCitib2R5Lm1h
aW4yOiBbcmVndWxhciwgMjM6MC0yMzoxMF0geworICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8q
IHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwg
dmVyeSAhaW1wb3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2XSBhY3RpdmUK
ICAgICBbJ2JhY2tncm91bmQtaW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFs
JyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tn
cm91bmQtcmVwZWF0LXknOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVm
aW5lZF0gc3R5bGUKQEAgLTExOSwxNiArMTE5LDE2IEBAIGJvZHkubWFpbjI6IFtyZWd1bGFyXSB7
CiAgICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonZ3JlZW4nIGlzLWltcG9ydGFudF0gQFt1bmRlZmlu
ZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1zaXplJzonaW5pdGlhbCcgaXMt
aW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5Lm1haW5wYWdl
OiBbcmVndWxhcl0gewotICAgIFsndGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNS0yN10gYWN0
aXZlCi0gICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA4LTEz
Ml0gYWN0aXZlCitib2R5Lm1haW5wYWdlOiBbcmVndWxhciwgMzowLTM6MTNdIHsKKyAgICBbJ3Rl
eHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzQ6NC00OjI2XSBhY3RpdmUKKyAgICBbJ2JhZHByb3Bl
cnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFs1OjUtNToyOV0gYWN0aXZlCiB9Ci1ib2R5
Lm1haW5wYWdlOiBbcmVndWxhcl0gewotICAgIFsncHJvcDEnOid2YWwxJyBub24tcGFyc2VkXSBA
WzUtMTddIGFjdGl2ZQotICAgIFsncHJvcDInOid2YWwyJyBub24tcGFyc2VkXSBAWzIyLTM0XSBh
Y3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCA4OjAtODoxM10geworICAgIFsncHJvcDEn
Oid2YWwxJyBub24tcGFyc2VkXSBAWzk6NC05OjE2XSBhY3RpdmUKKyAgICBbJ3Byb3AyJzondmFs
Micgbm9uLXBhcnNlZF0gQFsxMDo0LTEwOjE2XSBhY3RpdmUKIH0KLWJvZHk6aG92ZXI6IFtyZWd1
bGFyXSB7Ci0gICAgWydjb2xvcic6JyNDREUnXSBAWzMtMTVdIGFjdGl2ZQorYm9keTpob3Zlcjog
W3JlZ3VsYXIsIDEzOjAtMTM6MTBdIHsKKyAgICBbJ2NvbG9yJzonI0NERSddIEBbMTQ6Mi0xNDox
NF0gYWN0aXZlCiB9CiAKID09PSBBdHRyaWJ1dGVzIHN0eWxlIGZvciB0YWJsZSA9PT0KQEAgLTE3
MCwyNiArMTcwLDI2IEBAIGgxIHsKICAgICBoZWlnaHQgOiAxMDAlIDsgYm9yZGVyOiAxcHggc29s
aWQ7IGJvcmRlci13aWR0aDogMnB4OyBiYWNrZ3JvdW5kLWNvbG9yIDogIzMzRkYzMzsgZ29vZ2xl
czogYWJyYTsgZm9vOiAuYmFyOyAtbW96LWdvb2c6IDEqKio7IGJvcmRlci13aWR0aDogMHB4Owog
fQogJwotaHRtbDogW3JlZ3VsYXJdIHsKLSAgICBbJ2ZvbnQtd2VpZ2h0JzonNDAwJ10gQFs1LTIy
XSBhY3RpdmUKK2h0bWw6IFtyZWd1bGFyLCA0OjAtNDo0XSB7CisgICAgWydmb250LXdlaWdodCc6
JzQwMCddIEBbNTo0LTU6MjFdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ2Zv
bnQtc2l6ZSc6JzEycHgnXSBAWzUtMjFdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDk6MC05OjRd
IHsKKyAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzEwOjQtMTA6MjBdIGFjdGl2ZQogICAgIFsn
Zm9vJzonYmFyICEKIAotICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCBy
ZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2LTEw
NF0gYWN0aXZlCi0gICAgWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWltcG9ydGFudF0g
QFsxMDktMTMzXSBhY3RpdmUKLSAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNl
ZF0gQFsxMzgtMTU5XSBhY3RpdmUKLSAgICBbJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQnIG5vbi1w
YXJzZWRdIEBbMTY0LTE4NV0gYWN0aXZlCi0gICAgWydjb2xvcic6J3llbGxvdyddIEBbMTkwLTIw
NF0gYWN0aXZlCi0gICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBw
cm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBA
WzIwOS0yNzhdIGFjdGl2ZQorICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5v
dCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzEx
OjQtMTM6NjZdIGFjdGl2ZQorICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50JyBpcy1pbXBv
cnRhbnRdIEBbMTQ6NC0xNDoyOF0gYWN0aXZlCisgICAgWydjb2xvcnonOiciIWltcG9ydGFudCIn
IG5vbi1wYXJzZWRdIEBbMTU6NC0xNToyNV0gYWN0aXZlCisgICAgWydpbXBvcnRhbnQnOichaW1w
b3J0YW50JyBub24tcGFyc2VkXSBAWzE2OjQtMTY6MjVdIGFjdGl2ZQorICAgIFsnY29sb3InOid5
ZWxsb3cnXSBAWzE3OjQtMTc6MThdIGFjdGl2ZQorICAgIFsnY29sb3InOiciYmFkY29sb3IiICEg
aW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1pbXBv
cnRhbnQgbm9uLXBhcnNlZF0gQFsxODo0LTE4OjczXSBhY3RpdmUKIH0KLWJvZHkubWFpbjE6IFty
ZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzEzLTI4XSBhY3RpdmUKLSAgICBb
J3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8n
IG5vbi1wYXJzZWRdIEBbMjgtODFdIGFjdGl2ZQorYm9keS5tYWluMTogW3JlZ3VsYXIsIDIxOjI5
LTIxOjY3XSB7CisgICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzIxOjgxLTIxOjk2XSBhY3RpdmUK
KyAgICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVy
dHkgKi8nIG5vbi1wYXJzZWRdIEBbMjE6OTYtMjE6MTQ5XSBhY3RpdmUKIH0KLWJvZHkubWFpbjI6
IFtyZWd1bGFyXSB7Ci0gICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFu
dCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQg
Ki8nIGlzLWltcG9ydGFudF0gQFswLTk1XSBhY3RpdmUKK2JvZHkubWFpbjI6IFtyZWd1bGFyLCAy
MzowLTIzOjEwXSB7CisgICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFu
dCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQg
Ki8nIGlzLWltcG9ydGFudF0gQFsyMzoxMS0yMzoxMDZdIGFjdGl2ZQogICAgIFsnYmFja2dyb3Vu
ZC1pbWFnZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteCc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0g
QFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteSc6
J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAt
MjAxLDE4ICsyMDEsMTggQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKICAgICBbJ2JhY2tncm91
bmQtY29sb3InOidncmVlbicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0
eWxlCiAgICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHk6OmFmdGVyOiBbcmVndWxhcl0gewotICAg
IFsnY29udGVudCc6JyJBZnRlciBib2R5IiddIEBbNS0yN10gYWN0aXZlCi19Ci1oMTogW3JlZ3Vs
YXJdIHsKLSAgICBbJ2hlaWdodCc6JzEwMCUnXSBAWzUtMjBdIGFjdGl2ZQotICAgIFsnYm9yZGVy
JzonMXB4IHNvbGlkJ10gQFsyMS0zOV0gYWN0aXZlCi0gICAgWydib3JkZXItd2lkdGgnOicycHgn
XSBAWzQwLTU4XSBpbmFjdGl2ZQotICAgIFsnYmFja2dyb3VuZC1jb2xvcic6JyMzM0ZGMzMnXSBA
WzU5LTg2XSBhY3RpdmUKLSAgICBbJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBAWzg3LTEw
MV0gYWN0aXZlCi0gICAgWydmb28nOicuYmFyJyBub24tcGFyc2VkXSBAWzEwMi0xMTJdIGFjdGl2
ZQotICAgIFsnLW1vei1nb29nJzonMSoqKicgbm9uLXBhcnNlZF0gQFsxMTMtMTI5XSBhY3RpdmUK
LSAgICBbJ2JvcmRlci13aWR0aCc6JzBweCddIEBbMTMwLTE0OF0gYWN0aXZlCitib2R5OjphZnRl
cjogW3JlZ3VsYXIsIDI2OjAtMjY6MTFdIHsKKyAgICBbJ2NvbnRlbnQnOiciQWZ0ZXIgYm9keSIn
XSBAWzI3OjQtMjc6MjZdIGFjdGl2ZQorfQoraDE6IFtyZWd1bGFyLCAzMDowLTMwOjJdIHsKKyAg
ICBbJ2hlaWdodCc6JzEwMCUnXSBAWzMxOjQtMzE6MTldIGFjdGl2ZQorICAgIFsnYm9yZGVyJzon
MXB4IHNvbGlkJ10gQFszMToyMC0zMTozOF0gYWN0aXZlCisgICAgWydib3JkZXItd2lkdGgnOicy
cHgnXSBAWzMxOjM5LTMxOjU3XSBpbmFjdGl2ZQorICAgIFsnYmFja2dyb3VuZC1jb2xvcic6JyMz
M0ZGMzMnXSBAWzMxOjU4LTMxOjg1XSBhY3RpdmUKKyAgICBbJ2dvb2dsZXMnOidhYnJhJyBub24t
cGFyc2VkXSBAWzMxOjg2LTMxOjEwMF0gYWN0aXZlCisgICAgWydmb28nOicuYmFyJyBub24tcGFy
c2VkXSBAWzMxOjEwMS0zMToxMTFdIGFjdGl2ZQorICAgIFsnLW1vei1nb29nJzonMSoqKicgbm9u
LXBhcnNlZF0gQFszMToxMTItMzE6MTI4XSBhY3RpdmUKKyAgICBbJ2JvcmRlci13aWR0aCc6JzBw
eCddIEBbMzE6MTI5LTMxOjE0N10gYWN0aXZlCiAgICAgWydib3JkZXItdG9wLXN0eWxlJzonc29s
aWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydib3JkZXItcmlnaHQtc3R5
bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JvcmRlci1i
b3R0b20tc3R5bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAgLTI1
NCwxMCArMjU0LDEwIEBAIGJvZHkgewogCiB9CiAnCi0jYWJzZW50LWlkOiBbcmVndWxhcl0gewor
I2Fic2VudC1pZDogW3JlZ3VsYXIsIDEwOjAtMTA6MTBdIHsKIH0KLWJvZHk6IFtyZWd1bGFyXSB7
Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24t
cGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAg
IFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNl
ZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KIAogU3R5bGVTaGVldDogJ0BpbXBvcnQgdXJsKHN0
eWxlcy1uZXctQVBJLTEuY3NzKTsKQEAgLTI4NiwxMCArMjg2LDEwIEBAIGJvZHkgewogCiB9CiAn
Ci0jYWJzZW50LWlkOiBbcmVndWxhcl0geworI2Fic2VudC1pZDogW3JlZ3VsYXIsIDEwOjAtMTA6
MTBdIHsKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1l
ZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTog
W3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1z
Y3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KIAog
U3R5bGVTaGVldDogJwpAQCAtMzA5LDM4ICszMDksMzggQEAgYm9keTpob3ZlciB7CiAgIGNvbG9y
OiAjQ0RFOwogfQogJwotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJdIHsKLSAgICBbJ3RleHQtZGVj
b3JhdGlvbic6J25vbmUnXSBAWzUtMjddIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicxYmFk
dmFsdWUxJyBub24tcGFyc2VkXSBAWzEwOC0xMzJdIGFjdGl2ZQorYm9keS5tYWlucGFnZTogW3Jl
Z3VsYXIsIDM6MC0zOjEzXSB7CisgICAgWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs0OjQt
NDoyNl0gYWN0aXZlCisgICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRd
IEBbNTo1LTU6MjldIGFjdGl2ZQogfQotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJdIHsKLSAgICBb
J3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0gQFs1LTE3XSBhY3RpdmUKLSAgICBbJ3Byb3AyJzon
dmFsMicgbm9uLXBhcnNlZF0gQFsyMi0zNF0gYWN0aXZlCitib2R5Lm1haW5wYWdlOiBbcmVndWxh
ciwgODowLTg6MTNdIHsKKyAgICBbJ3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0gQFs5OjQtOTox
Nl0gYWN0aXZlCisgICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMTA6NC0xMDoxNl0g
YWN0aXZlCiB9Ci1ib2R5OmhvdmVyOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOicjQ0RFJ10g
QFszLTE1XSBhY3RpdmUKK2JvZHk6aG92ZXI6IFtyZWd1bGFyLCAxMzowLTEzOjEwXSB7CisgICAg
Wydjb2xvcic6JyNDREUnXSBAWzE0OjItMTQ6MTRdIGFjdGl2ZQogfQogCiA9PT0gTGFzdCBzdHls
ZXNoZWV0IHBhdGNoZWQgPT09CiAKIFN0eWxlU2hlZXQ6ICdib2R5Lm1haW5wYWdlIHsgICAgdGV4
dC1kZWNvcmF0aW9uOiBzdHJpa2V0aHJvdWdoOyAgICBiYWRwcm9wZXJ0eTogMmJhZHZhbHVlMjt9
Ym9keSB7ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7fScKLWJvZHkubWFpbnBhZ2U6IFtyZWd1bGFy
XSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRpb24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2VkXSBA
WzQtMzVdIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFyc2Vk
XSBAWzM5LTYzXSBhY3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAwOjAtMDoxM10gewor
ICAgIFsndGV4dC1kZWNvcmF0aW9uJzonc3RyaWtldGhyb3VnaCcgbm9uLXBhcnNlZF0gQFswOjE5
LTA6NTBdIGFjdGl2ZQorICAgIFsnYmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFyc2Vk
XSBAWzA6NTQtMDo3OF0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsndGV4dC1h
bGlnbic6J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDA6NzktMDo4
M10geworICAgIFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzA6ODktMDoxMDldIGFjdGl2ZQog
fQogCiA9PT0gQWZ0ZXIgc2VsZWN0b3Igc2V0ID09PQogCiBTdHlsZVNoZWV0OiAnaHRtbCAqLCBi
b2R5W2Zvbz0iYmFyIl0geyAgICB0ZXh0LWRlY29yYXRpb246IHN0cmlrZXRocm91Z2g7ICAgIGJh
ZHByb3BlcnR5OiAyYmFkdmFsdWUyO31ib2R5IHsgICAgdGV4dC1hbGlnbjoganVzdGlmeTt9Jwot
aHRtbCAqLCBib2R5W2Zvbz0iYmFyIl06IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRp
b24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2VkXSBAWzQtMzVdIGFjdGl2ZQotICAgIFsnYmFk
cHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFyc2VkXSBAWzM5LTYzXSBhY3RpdmUKK2h0bWwg
KiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhciwgMDowLTA6MjNdIHsKKyAgICBbJ3RleHQtZGVj
b3JhdGlvbic6J3N0cmlrZXRocm91Z2gnIG5vbi1wYXJzZWRdIEBbMDoyOS0wOjYwXSBhY3RpdmUK
KyAgICBbJ2JhZHByb3BlcnR5JzonMmJhZHZhbHVlMicgbm9uLXBhcnNlZF0gQFswOjY0LTA6ODhd
IGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5
J10gQFs0LTI0XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAwOjg5LTA6OTNdIHsKKyAgICBbJ3Rl
eHQtYWxpZ24nOidqdXN0aWZ5J10gQFswOjk5LTA6MTE5XSBhY3RpdmUKIH0KIAogPT09IEFmdGVy
IHN0eWxlIHRleHQgc2V0ID09PQpAQCAtMzQ4LDkgKzM0OCw5IEBAIGJvZHk6IFtyZWd1bGFyXSB7
CiBTdHlsZVNoZWV0OiAnaHRtbCAqLCBib2R5W2Zvbz0iYmFyIl0gewogICAgIGNvbG9yOiB3aGl0
ZTsgYmFja2dyb3VuZDogYmxhY2s7CiB9Ym9keSB7ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7fScK
LWh0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOid3aGl0
ZSddIEBbNS0xOF0gYWN0aXZlCi0gICAgWydiYWNrZ3JvdW5kJzonYmxhY2snXSBAWzE5LTM3XSBh
Y3RpdmUKK2h0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhciwgMDowLTA6MjNdIHsKKyAg
ICBbJ2NvbG9yJzond2hpdGUnXSBAWzE6NC0xOjE3XSBhY3RpdmUKKyAgICBbJ2JhY2tncm91bmQn
OidibGFjayddIEBbMToxOC0xOjM2XSBhY3RpdmUKICAgICBbJ2JhY2tncm91bmQtaW1hZ2UnOidp
bml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1y
ZXBlYXQteCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydi
YWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKQEAgLTM2Miw4ICszNjIsOCBAQCBodG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXJd
IHsKICAgICBbJ2JhY2tncm91bmQtY29sb3InOidibGFjayddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsndGV4dC1hbGlnbic6
J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MS0yOjVdIHsKKyAg
ICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFsyOjExLTI6MzFdIGFjdGl2ZQogfQogCiA9PT0g
TWF0Y2hlZCBydWxlcyBhZnRlciBydWxlIGFkZGVkID09PQpAQCAtMzc0LDI2ICszNzQsMjYgQEAg
Ym9keTogW3VzZXItYWdlbnRdIHsKICAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0
eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhd
IGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidp
bXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3
XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVk
LW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9k
eTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRp
YS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0K
LWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXSBhY3Rp
dmUKK2JvZHk6IFtyZWd1bGFyLCA5OjAtOTo0XSB7CisgICAgWydmb250LXNpemUnOicxMnB4J10g
QFsxMDo0LTEwOjIwXSBhY3RpdmUKICAgICBbJ2Zvbyc6J2JhciAhCiAKLSAgICBpbXBvcnRhbnQg
LyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1p
bXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyNi0xMDRdIGFjdGl2ZQotICAgIFsnaGVpZ2h0JzonMTAw
JSAhaW1wb3J0YW50JyBpcy1pbXBvcnRhbnRdIEBbMTA5LTEzM10gYWN0aXZlCi0gICAgWydjb2xv
cnonOiciIWltcG9ydGFudCInIG5vbi1wYXJzZWRdIEBbMTM4LTE1OV0gYWN0aXZlCi0gICAgWydp
bXBvcnRhbnQnOichaW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2NC0xODVdIGFjdGl2ZQotICAg
IFsnY29sb3InOid5ZWxsb3cnXSBAWzE5MC0yMDRdIGFjdGl2ZQotICAgIFsnY29sb3InOiciYmFk
Y29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICov
JyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyMDktMjc4XSBhY3RpdmUKKyAgICBpbXBvcnRh
bnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBp
cy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxMTo0LTEzOjY2XSBhY3RpdmUKKyAgICBbJ2hlaWdo
dCc6JzEwMCUgIWltcG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzE0OjQtMTQ6MjhdIGFjdGl2ZQor
ICAgIFsnY29sb3J6JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzE1OjQtMTU6MjVdIGFj
dGl2ZQorICAgIFsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjo0LTE2
OjI1XSBhY3RpdmUKKyAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsxNzo0LTE3OjE4XSBhY3RpdmUK
KyAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdp
dGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTg6NC0xODo3
M10gYWN0aXZlCiB9Ci1odG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXJdIHsKLSAgICBb
J2NvbG9yJzond2hpdGUnXSBAWzUtMThdIGFjdGl2ZQotICAgIFsnYmFja2dyb3VuZCc6J2JsYWNr
J10gQFsxOS0zN10gYWN0aXZlCitodG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXIsIDA6
MC0wOjIzXSB7CisgICAgWydjb2xvcic6J3doaXRlJ10gQFsxOjQtMToxN10gYWN0aXZlCisgICAg
WydiYWNrZ3JvdW5kJzonYmxhY2snXSBAWzE6MTgtMTozNl0gYWN0aXZlCiAgICAgWydiYWNrZ3Jv
dW5kLWltYWdlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBb
J2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCkBAIC00MDUsMTggKzQwNSwxOCBAQCBodG1sICosIGJvZHlbZm9vPSJi
YXIiXTogW3JlZ3VsYXJdIHsKICAgICBbJ2JhY2tncm91bmQtY29sb3InOidibGFjayddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwn
XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAg
IFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIs
IDI6MS0yOjVdIHsKKyAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFsyOjExLTI6MzFdIGFj
dGl2ZQogfQotYm9keTogW2luc3BlY3Rvcl0gewotICAgIFsnZm9udC1mYW1pbHknOidzZXJpZidd
IEBbNS0yNF0gYWN0aXZlCitib2R5OiBbaW5zcGVjdG9yLCAwOjAtMDo0XSB7CisgICAgWydmb250
LWZhbWlseSc6J3NlcmlmJ10gQFsxOjQtMToyM10gYWN0aXZlCiB9Ci1ib2R5Lm1haW4xOiBbcmVn
dWxhcl0gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0gYWN0aXZlCi0gICAgWyd6
b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovJyBu
b24tcGFyc2VkXSBAWzI4LTgxXSBhY3RpdmUKK2JvZHkubWFpbjE6IFtyZWd1bGFyLCAyMToyOS0y
MTo2N10geworICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsyMTo4MS0yMTo5Nl0gYWN0aXZlCisg
ICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5
ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0aXZlCiB9Ci1ib2R5Lm1haW4yOiBb
cmVndWxhcl0gewotICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQg
Y29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICov
JyBpcy1pbXBvcnRhbnRdIEBbMC05NV0gYWN0aXZlCitib2R5Lm1haW4yOiBbcmVndWxhciwgMjM6
MC0yMzoxMF0geworICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQg
Y29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICov
JyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2XSBhY3RpdmUKICAgICBbJ2JhY2tncm91bmQt
aW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXknOidp
bml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAgLTQz
MSwxMyArNDMxLDEzIEBAIGJvZHkubWFpbjI6IFtyZWd1bGFyXSB7CiAKID09PSBBZnRlciBwcm9w
ZXJ0eSBtYW5pcHVsYXRpb25zID09PQogW3RleHQ9J2hlaWdodCA6IDEwMCUgOyddIGRpc2FibGVk
Ci1bJ2JvcmRlcic6JzFweCBzb2xpZCddIEBbMS0xOV0gYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6
JzJweCddIEBbMjAtMzhdIGluYWN0aXZlCi1bJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBA
WzQwLTU0XSBhY3RpdmUKLVsnZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFs1NS02NV0gYWN0aXZl
Ci1bJy1tb3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbNjYtODJdIGFjdGl2ZQotWydmb250
LXNpemUnOicxMnB4J10gQFs4OC0xMDRdIGFjdGl2ZQotWydib3JkZXItd2lkdGgnOicxcHgnXSBA
WzEwOS0xMjddIGFjdGl2ZQorWydib3JkZXInOicxcHggc29saWQnXSBAWzMwOjUtMzA6MjNdIGFj
dGl2ZQorWydib3JkZXItd2lkdGgnOicycHgnXSBAWzMwOjI0LTMwOjQyXSBpbmFjdGl2ZQorWydn
b29nbGVzJzonYWJyYScgbm9uLXBhcnNlZF0gQFszMDo0NC0zMDo1OF0gYWN0aXZlCitbJ2Zvbyc6
Jy5iYXInIG5vbi1wYXJzZWRdIEBbMzA6NTktMzA6NjldIGFjdGl2ZQorWyctbW96LWdvb2cnOicx
KioqJyBub24tcGFyc2VkXSBAWzMwOjcwLTMwOjg2XSBhY3RpdmUKK1snZm9udC1zaXplJzonMTJw
eCddIEBbMzE6NC0zMToyMF0gYWN0aXZlCitbJ2JvcmRlci13aWR0aCc6JzFweCddIEBbMzI6NC0z
MjoyMl0gYWN0aXZlCiBbdGV4dD0nZm9udC1zaXplOiAxNHB4OyddIGRpc2FibGVkCiBbJ2JvcmRl
ci10b3Atd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRl
ci1yaWdodC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAgLTQ1
NSwxNCArNDU1LDE0IEBAIGJvZHkubWFpbjI6IFtyZWd1bGFyXSB7CiAKID09PSBBZnRlciBwcm9w
ZXJ0eSBlbmFibGVkID09PQogW3RleHQ9J2hlaWdodCA6IDEwMCUgOyddIGRpc2FibGVkCi1bJ2Jv
cmRlcic6JzFweCBzb2xpZCddIEBbMS0xOV0gYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzJweCdd
IEBbMjAtMzhdIGluYWN0aXZlCi1bJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBAWzQwLTU0
XSBhY3RpdmUKLVsnZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFs1NS02NV0gYWN0aXZlCi1bJy1t
b3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbNjYtODJdIGFjdGl2ZQotWydmb250LXNpemUn
OicxMnB4J10gQFs4OC0xMDRdIGluYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzFweCddIEBbMTA5
LTEyN10gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6JzE0cHgnXSBAWzEzMi0xNDhdIGFjdGl2ZQorWydi
b3JkZXInOicxcHggc29saWQnXSBAWzMwOjUtMzA6MjNdIGFjdGl2ZQorWydib3JkZXItd2lkdGgn
OicycHgnXSBAWzMwOjI0LTMwOjQyXSBpbmFjdGl2ZQorWydnb29nbGVzJzonYWJyYScgbm9uLXBh
cnNlZF0gQFszMDo0NC0zMDo1OF0gYWN0aXZlCitbJ2Zvbyc6Jy5iYXInIG5vbi1wYXJzZWRdIEBb
MzA6NTktMzA6NjldIGFjdGl2ZQorWyctbW96LWdvb2cnOicxKioqJyBub24tcGFyc2VkXSBAWzMw
OjcwLTMwOjg2XSBhY3RpdmUKK1snZm9udC1zaXplJzonMTJweCddIEBbMzE6NC0zMToyMF0gaW5h
Y3RpdmUKK1snYm9yZGVyLXdpZHRoJzonMXB4J10gQFszMjo0LTMyOjIyXSBhY3RpdmUKK1snZm9u
dC1zaXplJzonMTRweCddIEBbMzM6NC0zMzoyMF0gYWN0aXZlCiBbJ2JvcmRlci10b3Atd2lkdGgn
OicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1yaWdodC13aWR0
aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWJvdHRvbS13
aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRz
LWV4cGVjdGVkLnR4dAppbmRleCAxZTU3OTk3NzE0NjZiMzI0MmMwNmJmOTFmMzFiNzg1MTQ0MWNi
YjljLi5kNzcyNzI4MmVhYTA2OTlmMDZhMjA5MjQ4ZWE4YjRiMjA3NGRhMmJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNl
LW9mZnNldHMtZXhwZWN0ZWQudHh0CkBAIC0xLDIzICsxLDIzIEBACiBUZXN0cyB0aGF0IHByb3Bl
ciBkYXRhIGFuZCBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENT
UyBzdHlsZSBkZWNsYXJhdGlvbnMgYW5kIHByb3BlcnRpZXMuCiAKLWJvZHk6IFswLTRdIFs2LTI2
Nl0KLVsnZm9udC1zaXplJzonMTJweCddIEBbNS0yMV0KK2JvZHk6IFswOjAtMDo0XSBbMDo2LTk6
MF0KK1snZm9udC1zaXplJzonMTJweCddIEBbMTo0LTE6MjBdCiBbJ2Zvbyc6J2JhciAhCiAKLSAg
ICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJD
b3JlICovJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XQotWydoZWlnaHQnOicxMDAl
ICFpbXBvcnRhbnQnICFpbXBvcnRhbnRdIEBbMTA5LTEzM10KLVsnY29sb3J6JzonIiFpbXBvcnRh
bnQiJyBub24tcGFyc2VkXSBAWzEzOC0xNTldCi1bJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQnIG5v
bi1wYXJzZWRdIEBbMTY0LTE4NV0KLVsnY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8q
IGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50IG5vbi1wYXJz
ZWRdIEBbMTkwLTI1OV0KLWJvZHkubWFpbjE6IFsyOTgtMzM2XSBbMzM3LTQxOF0KLVsnY29sb3In
OicjRjAwQkFBJ10gQFsxMy0yOF0KLVsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVu
cmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyOC04MV0KLWJvZHkubWFpbjI6
IFs0MzQtNDQ0XSBbNDQ1LTU0MF0KLVsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBv
cnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0
YW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVdCi1ib2R5Lm1haW5wYWdlOiBbMi0xNV0gWzE3LTE0
OV0KLVsndGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNS0yN10KLVsnYmFkcHJvcGVydHknOicx
YmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzEwNy0xMzFdCi1lbGVtZW50LnN0eWxlOiBbMC0zMV0K
LVsnZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCi1bJ3dpZHRoJzonODAlJ10gQFsyMS0z
MV0KKyAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBi
eSBXZWJDb3JlICovJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjo0LTQ6NjZdCitbJ2hlaWdo
dCc6JzEwMCUgIWltcG9ydGFudCcgIWltcG9ydGFudF0gQFs1OjQtNToyOF0KK1snY29sb3J6Jzon
IiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzY6NC02OjI1XQorWydpbXBvcnRhbnQnOichaW1w
b3J0YW50JyBub24tcGFyc2VkXSBAWzc6NC03OjI1XQorWydjb2xvcic6JyJiYWRjb2xvciIgISBp
bXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nICFpbXBvcnRh
bnQgbm9uLXBhcnNlZF0gQFs4OjQtODo3M10KK2JvZHkubWFpbjE6IFsxMToyOS0xMTo2N10gWzEx
OjY4LTExOjE0OV0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMTo4MS0xMTo5Nl0KK1snem9vJzon
bW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBh
cnNlZF0gQFsxMTo5Ni0xMToxNDldCitib2R5Lm1haW4yOiBbMTM6MC0xMzoxMF0gWzEzOjExLTEz
OjEwNl0KK1snYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAq
LyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovJyAhaW1wb3J0
YW50XSBAWzEzOjExLTEzOjEwNl0KK2JvZHkubWFpbnBhZ2U6IFsyOjAtMjoxM10gWzI6MTUtNTow
XQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFszOjQtMzoyNl0KK1snYmFkcHJvcGVydHkn
OicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzQ6NC00OjI4XQorZWxlbWVudC5zdHlsZTogWzA6
MC0wOjMxXQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMDowLTA6MjBdCitbJ3dpZHRoJzon
ODAlJ10gQFswOjIxLTA6MzFdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCmluZGV4IGVjMGI0M2U4NTlhY2U2OGRh
YjNlN2NkNmNkNjdkN2NmMTBmODQxOTIuLjE5OTQzYjcyZmY3NGIyNTg3NzkzMzNmNjA1N2IwNTJm
MmI4ZWE3MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgICAgIGlmIChydWxlT3JTdHlsZS5vcmlnaW4gIT09ICJyZWd1bGFyIikKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdHlsZSA9IHJ1bGVPclN0eWxlLnN0
eWxlOwotICAgICAgICAgICAgaGVhZGVyID0gcnVsZU9yU3R5bGUuc2VsZWN0b3JMaXN0LnRleHQg
KyAiOiBbIiArIChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3QucmFuZ2UgPyBydWxlT3JTdHlsZS5z
ZWxlY3Rvckxpc3QucmFuZ2Uuc3RhcnQgKyAiLSIgKyBydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3Qu
cmFuZ2UuZW5kIDogIiIpICArICJdIjsKKyAgICAgICAgICAgIGhlYWRlciA9IHJ1bGVPclN0eWxl
LnNlbGVjdG9yTGlzdC50ZXh0ICsgIjogIiArIChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3QucmFu
Z2UgPyBJbnNwZWN0b3JUZXN0LnJhbmdlVGV4dChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3QucmFu
Z2UpIDogIiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc3R5bGUgPSBydWxlT3JT
dHlsZTsKICAgICAgICAgICAgIGhlYWRlciA9ICJlbGVtZW50LnN0eWxlOiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190690</attachid>
            <date>2013-02-28 03:02:42 -0800</date>
            <delta_ts>2013-02-28 07:57:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110732-20130228145854.patch</filename>
            <type>text/plain</type>
            <size>62967</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxNmYyZWE0MjlhMjFi
NzU1OTRkMjIzOWE3MGEzOTZlMjM2ZmQ1Ny4uMzc1Njc5MmRkZWQzODRjZjdhYmZhODdmNzI2MGQ2
NWNiNGY1ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAyLTI4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU2VsZWN0b3IncyByYXcgc3RhcnQgcG9zaXRpb24gaW4gaXRzIGxpbmUgaXMgY29uc2lk
ZXJlZCB0byBiZSAwIHdoZW4gY29tcHV0aW5nIFVJTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6c2l6ZXRFeHRyYWN0
b3IpOiBVdGlsaXR5IGZvciBiaW5hcnkgc2VhcmNoLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlYXJjaFV0aWxzOjpsaW5lQ29sdW1uRnJvbU9mZnNldCk6IENvbnZlcnRzIGFic29sdXRlIHJh
dyB0ZXh0IG9mZnNldCBpbnRvIGxpbmU6Y29sdW1uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlYXJjaFV0aWxzOjpnZXRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXNCeUxpbmVzKTogUmVmYWN0
b3IuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNoVXRpbHM6OmxpbmVFbmRpbmdzKTog
RmFjdG9yZWQgb3V0IG9mIGdldFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5TGluZXMuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNoVXRpbHM6OmJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0
Y2gpOiBEcml2ZS1ieTogcGFzcyBTdHJpbmcgYnkgcmVmZXJlbmNlLgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb246IFVzZSBsaW5lOmNvbHVtbiBmb3IgU291cmNlUmFuZ2UgYm91bmRhcmllcyByYXRoZXIg
dGhhbiByYXcgb2Zmc2V0cy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHA6CisgICAgICAgIChQYXJzZWRTdHlsZVNoZWV0Ojp0ZXh0KTogQVNTRVJUKG1faGFzVGV4
dCkuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6YnVpbGRPYmplY3RGb3JTdHls
ZSk6IFN1cHBseSB0aGUgbGluZUVuZGluZ3MgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpi
dWlsZFNvdXJjZVJhbmdlT2JqZWN0KTogRm9sbG93IHRoZSBwcm90b2NvbCBjaGFuZ2UuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6c2V0UHJvcGVydHlUZXh0KTogUmVmYWN0b3Iu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9w
ZXJ0aWVzKTogQ29udmVydCByZWxhdGl2ZSBwcm9wZXJ0eSByYW5nZSBvZmZzZXRzIGludG8gYWJz
b2x1dGUgb25lcy4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpleHRyYWN0U291
cmNlRGF0YSk6IEZhY3RvcmVkIG91dC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxl
OjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMpOiBTdXBwbHkgdGhlIGxpbmVFbmRpbmdz
IGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRP
YmplY3RGb3JTZWxlY3Rvckxpc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlU2hlZXQ6OmxpbmVFbmRpbmdzKTogQ29tcHV0ZSBsaW5lIGVuZGluZ3MgZm9yIG9yZGlu
YXJ5IHN0eWxlc2hlZXRzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZv
cklubGluZVN0eWxlOjpsaW5lRW5kaW5ncyk6IERpdHRvIGZvciBib2d1cyBpbmxpbmUgc3R5bGUg
c3R5bGVzaGVldHMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6IFJlbW92ZWQgdGhl
IGJ5dGUgY291bnRpbmcgZm9yIHVudXNlZCBDU1MuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUpOiBT
ZXQgc2VsZWN0b3IgcmF3TG9jYXRpb24gYmFzZWQgb24gdGhlIHNlbGVjdG9yTGlzdCByYW5nZSBv
ciBzb3VyY2VMaW5lLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBlLl9z
ZXRSYXdMb2NhdGlvbik6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBp
bmcucHJvdG90eXBlLl9iaW5kVUlTb3VyY2VDb2RlKTogRml4IGNhbGwgb3JkZXIgd2hlbiBiaW5k
aW5nIHNjc3Mgc291cmNlY29kZXMuCisKIDIwMTMtMDItMjggIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgd29uJ3Qg
Y29tcGlsZSBhZnRlciByMTQ0MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250
ZW50U2VhcmNoVXRpbHMuY3BwCmluZGV4IGEzZjgzYzJkNjg0YjQ4NTg5ODBkMzEwZDM0NWQzMzYy
MWY3MDM5ODguLmNmMGRkODE2ZmFjZmVhMjBjNGU1YTM0NWY1NzY4OGY4OTllZmY3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCkBAIC02
MywzOCArNjMsNjUgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBz
aXplX3Qgc2l6ZXRFeHRyYWN0b3IoY29uc3Qgc2l6ZV90KiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
KnZhbHVlOworfQorCitUZXh0UG9zaXRpb24gbGluZUNvbHVtbkZyb21PZmZzZXQoc2l6ZV90IG9m
ZnNldCwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGxpbmVFbmRpbmdzKQoreworICAgIGNvbnN0IHNp
emVfdCogZm91bmRMaW5lRW5kaW5nID0gYXBwcm94aW1hdGVCaW5hcnlTZWFyY2g8c2l6ZV90LCBz
aXplX3Q+KGxpbmVFbmRpbmdzLCBsaW5lRW5kaW5ncy5zaXplKCksIG9mZnNldCwgc2l6ZXRFeHRy
YWN0b3IpOworICAgIHNpemVfdCBsaW5lSW5kZXggPSBmb3VuZExpbmVFbmRpbmcgLSAmbGluZUVu
ZGluZ3MuYXQoMCk7CisgICAgaWYgKG9mZnNldCA+ICpmb3VuZExpbmVFbmRpbmcpCisgICAgICAg
ICsrbGluZUluZGV4OworICAgIHNpemVfdCBsaW5lU3RhcnRPZmZzZXQgPSBsaW5lSW5kZXggPiAw
ID8gbGluZUVuZGluZ3MuYXQobGluZUluZGV4IC0gMSkgKyAxIDogMDsKKyAgICBzaXplX3QgY29s
dW1uID0gb2Zmc2V0IC0gbGluZVN0YXJ0T2Zmc2V0OworICAgIHJldHVybiBUZXh0UG9zaXRpb24o
T3JkaW5hbE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChsaW5lSW5kZXgpLCBPcmRpbmFsTnVtYmVy
Ojpmcm9tWmVyb0Jhc2VkSW50KGNvbHVtbikpOworfQorCiBzdGF0aWMgVmVjdG9yPHBhaXI8aW50
LCBTdHJpbmc+ID4gZ2V0UmVndWxhckV4cHJlc3Npb25NYXRjaGVzQnlMaW5lcyhjb25zdCBSZWd1
bGFyRXhwcmVzc2lvbiYgcmVnZXgsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBWZWN0b3I8
cGFpcjxpbnQsIFN0cmluZz4gPiByZXN1bHQ7CiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgaW50IGxpbmVOdW1iZXIgPSAwOworICAgIE93blB0
cjxWZWN0b3I8c2l6ZV90PiA+IGVuZGluZ3MobGluZUVuZGluZ3ModGV4dCkpOworICAgIHNpemVf
dCBzaXplID0gZW5kaW5ncy0+c2l6ZSgpOwogICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKLSAgICB3
aGlsZSAoc3RhcnQgPCB0ZXh0Lmxlbmd0aCgpKSB7Ci0gICAgICAgIHNpemVfdCBsaW5lRW5kID0g
dGV4dC5maW5kKCdcbicsIHN0YXJ0KTsKLSAgICAgICAgaWYgKGxpbmVFbmQgPT0gbm90Rm91bmQp
Ci0gICAgICAgICAgICBsaW5lRW5kID0gdGV4dC5sZW5ndGgoKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbGluZUVuZCsrOwotCisgICAgZm9yIChzaXplX3QgbGluZU51bWJlciA9IDA7IGxp
bmVOdW1iZXIgPCBzaXplOyArK2xpbmVOdW1iZXIpIHsKKyAgICAgICAgc2l6ZV90IGxpbmVFbmQg
PSBlbmRpbmdzLT5hdChsaW5lTnVtYmVyKTsKICAgICAgICAgU3RyaW5nIGxpbmUgPSB0ZXh0LnN1
YnN0cmluZyhzdGFydCwgbGluZUVuZCAtIHN0YXJ0KTsKLSAgICAgICAgaWYgKGxpbmUuZW5kc1dp
dGgoIlxyXG4iKSkKLSAgICAgICAgICAgIGxpbmUgPSBsaW5lLmxlZnQobGluZS5sZW5ndGgoKSAt
IDIpOwotICAgICAgICBpZiAobGluZS5lbmRzV2l0aCgnXG4nKSkKKyAgICAgICAgaWYgKGxpbmUu
ZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBsaW5lID0gbGluZS5sZWZ0KGxpbmUubGVuZ3Ro
KCkgLSAxKTsKIAogICAgICAgICBpbnQgbWF0Y2hMZW5ndGg7CiAgICAgICAgIGlmIChyZWdleC5t
YXRjaChsaW5lLCAwLCAmbWF0Y2hMZW5ndGgpICE9IC0xKQogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChwYWlyPGludCwgU3RyaW5nPihsaW5lTnVtYmVyLCBsaW5lKSk7CiAKLSAgICAgICAgc3Rh
cnQgPSBsaW5lRW5kOwotICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgIHN0YXJ0ID0gbGlu
ZUVuZCArIDE7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBQYXNzUmVm
UHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gYnVpbGRPYmplY3RGb3JTZWFyY2hN
YXRjaChpbnQgbGluZU51bWJlciwgU3RyaW5nIGxpbmVDb250ZW50KQorUGFzc093blB0cjxWZWN0
b3I8c2l6ZV90PiA+IGxpbmVFbmRpbmdzKGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBPd25Q
dHI8VmVjdG9yPHNpemVfdD4gPiByZXN1bHQoYWRvcHRQdHIobmV3IFZlY3RvcjxzaXplX3Q+KCkp
KTsKKworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKKyAgICB3aGlsZSAoc3RhcnQgPCB0ZXh0Lmxl
bmd0aCgpKSB7CisgICAgICAgIHNpemVfdCBsaW5lRW5kID0gdGV4dC5maW5kKCdcbicsIHN0YXJ0
KTsKKyAgICAgICAgaWYgKGxpbmVFbmQgPT0gbm90Rm91bmQpCisgICAgICAgICAgICBicmVhazsK
KworICAgICAgICByZXN1bHQtPmFwcGVuZChsaW5lRW5kKTsKKyAgICAgICAgc3RhcnQgPSBsaW5l
RW5kICsgMTsKKyAgICB9CisgICAgcmVzdWx0LT5hcHBlbmQodGV4dC5sZW5ndGgoKSk7CisKKyAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKK30KKworc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiBidWlsZE9iamVjdEZvclNlYXJjaE1hdGNoKGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIGxpbmVDb250ZW50KQogewogICAgIHJldHVybiBUeXBl
QnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRMaW5lTnVt
YmVyKGxpbmVOdW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
dGVudFNlYXJjaFV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJj
aFV0aWxzLmgKaW5kZXggNzlkOTI0YThlMGY3NjNiMGNlNjhhYzFlM2U3YjFkYjMyZjQ2MDBmYS4u
NDJmYWQwYzEzOTFlMTdlNTUwNDE1NDk5M2RhZDJhZWZmMzUwNWFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaApAQCAtMzMsNiArMzMsNyBAQAog
CiAjaW5jbHVkZSAiSW5zcGVjdG9yVHlwZUJ1aWxkZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDYgKzQ2LDggQEAg
bmFtZXNwYWNlIENvbnRlbnRTZWFyY2hVdGlscyB7CiBSZWd1bGFyRXhwcmVzc2lvbiBjcmVhdGVT
ZWFyY2hSZWdleChjb25zdCBTdHJpbmcmIHF1ZXJ5LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wg
aXNSZWdleCk7CiBpbnQgY291bnRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXMoY29uc3QgUmVndWxh
ckV4cHJlc3Npb24mLCBjb25zdCBTdHJpbmcmKTsKIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gPiBzZWFyY2hJblRleHRCeUxpbmVz
KGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCBjYXNl
U2Vuc2l0aXZlLCBjb25zdCBib29sIGlzUmVnZXgpOworVGV4dFBvc2l0aW9uIGxpbmVDb2x1bW5G
cm9tT2Zmc2V0KHNpemVfdCBvZmZzZXQsIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBsaW5lRW5kaW5n
cyk7CitQYXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gbGluZUVuZGluZ3MoY29uc3QgU3RyaW5n
Jik7CiAKIFN0cmluZyBmaW5kU291cmNlVVJMKGNvbnN0IFN0cmluZyYgY29udGVudCk7CiBTdHJp
bmcgZmluZFNvdXJjZU1hcFVSTChjb25zdCBTdHJpbmcmIGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDNlZDMxMTc0YzNkMGE2MTkwNmI2MWU2NDg5
MGRmYTVhNDU0MTg3NWEuLjMzN2Y5ZWVhMzdjMGNkNDdkZmQ4MDIzMWJjZTVmZWEzN2MxNzVhZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTIyNjIsOCArMjI2
MiwxMCBAQAogICAgICAgICAgICAgICAgICJpZCI6ICJTb3VyY2VSYW5nZSIsCiAgICAgICAgICAg
ICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydCIsICJ0eXBlIjogImludGVnZXIi
LCAiZGVzY3JpcHRpb24iOiAiU3RhcnQgb2YgcmFuZ2UgKGluY2x1c2l2ZSkuIn0sCi0gICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJFbmQgb2YgcmFuZ2UgKGV4Y2x1c2l2ZSkuIn0KKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzdGFydExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0IGxpbmUgb2YgcmFuZ2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0YXJ0Q29sdW1uIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydCBj
b2x1bW4gb2YgcmFuZ2UgKGluY2x1c2l2ZSkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVuZExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkVuZCBs
aW5lIG9mIHJhbmdlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZENvbHVt
biIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIGNvbHVtbiBvZiByYW5n
ZSAoZXhjbHVzaXZlKS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJUZXh0IHJhbmdlIHdpdGhpbiBhIHJlc291cmNlLiIKICAgICAgICAgICAg
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAKaW5kZXggZmJiNDU3NmNhYjkwNTkzMzM1NTRhZWNhMTQ1MjUxZmE0Y2M2MWJjYi4uZTQzODkz
Y2ZiZmZhY2ExYWRkNmQ4NWFmZTkxODFmYTM1ZmJiMDY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJDU1NTdXBwb3J0c1J1bGUuaCIKKyNpbmNsdWRlICJDb250ZW50U2VhcmNoVXRpbHMu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTYwLDYgKzYxLDcgQEAKIAogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC03Myw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICBQ
YXJzZWRTdHlsZVNoZWV0KCk7CiAKICAgICBXZWJDb3JlOjpDU1NTdHlsZVNoZWV0KiBjc3NTdHls
ZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXJPdXRwdXQ7IH0KLSAgICBjb25zdCBTdHJp
bmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBjb25zdCBTdHJpbmcmIHRl
eHQoKSBjb25zdCB7IEFTU0VSVChtX2hhc1RleHQpOyByZXR1cm4gbV90ZXh0OyB9CiAgICAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgYm9vbCBoYXNUZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNUZXh0OyB9CiAgICAgUnVsZVNvdXJjZURhdGFMaXN0KiBzb3VyY2VEYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEYXRhLmdldCgpOyB9CkBAIC0xNTAsMTEgKzE1Miwx
OCBAQCBlbnVtIE1lZGlhTGlzdFNvdXJjZSB7CiAgICAgTWVkaWFMaXN0U291cmNlSW1wb3J0UnVs
ZQogfTsKIAotc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U+
IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlKQorc3RhdGlj
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U+IGJ1aWxkU291cmNlUmFu
Z2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlLCBWZWN0b3I8c2l6ZV90PiogbGluZUVu
ZGluZ3MpCiB7CisgICAgaWYgKCFsaW5lRW5kaW5ncykKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
VGV4dFBvc2l0aW9uIHN0YXJ0ID0gQ29udGVudFNlYXJjaFV0aWxzOjpsaW5lQ29sdW1uRnJvbU9m
ZnNldChyYW5nZS5zdGFydCwgKmxpbmVFbmRpbmdzKTsKKyAgICBUZXh0UG9zaXRpb24gZW5kID0g
Q29udGVudFNlYXJjaFV0aWxzOjpsaW5lQ29sdW1uRnJvbU9mZnNldChyYW5nZS5lbmQsICpsaW5l
RW5kaW5ncyk7CisKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U+IHJl
c3VsdCA9IFR5cGVCdWlsZGVyOjpDU1M6OlNvdXJjZVJhbmdlOjpjcmVhdGUoKQotICAgICAgICAu
c2V0U3RhcnQocmFuZ2Uuc3RhcnQpCi0gICAgICAgIC5zZXRFbmQocmFuZ2UuZW5kKTsKKyAgICAg
ICAgLnNldFN0YXJ0TGluZShzdGFydC5tX2xpbmUuemVyb0Jhc2VkSW50KCkpCisgICAgICAgIC5z
ZXRTdGFydENvbHVtbihzdGFydC5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKSkKKyAgICAgICAgLnNl
dEVuZExpbmUoZW5kLm1fbGluZS56ZXJvQmFzZWRJbnQoKSkKKyAgICAgICAgLnNldEVuZENvbHVt
bihlbmQubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFz
ZSgpOwogfQogCkBAIC0zMTAsOSArMzE5LDkgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NT
OjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoKSBjb24KICAg
ICByZXN1bHQtPnNldFdpZHRoKG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUoIndpZHRoIikpOwog
ICAgIHJlc3VsdC0+c2V0SGVpZ2h0KG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUoImhlaWdodCIp
KTsKIAotICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IG1fcGFyZW50
U3R5bGVTaGVldCA/IG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHls
ZS5nZXQoKSkgOiAwOworICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9
IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgaWYgKHNvdXJjZURhdGEpCi0gICAgICAgIHJlc3Vs
dC0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VEYXRhLT5ydWxlQm9keVJh
bmdlKSk7CisgICAgICAgIHJlc3VsdC0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChz
b3VyY2VEYXRhLT5ydWxlQm9keVJhbmdlLCBtX3BhcmVudFN0eWxlU2hlZXQtPmxpbmVFbmRpbmdz
KCkuZ2V0KCkpKTsKIAogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQpAQCAtMzc0LDcg
KzM4Myw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hl
ZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOworICAgIFJlZlB0cjxDU1NSdWxl
U291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgaWYgKCFz
b3VyY2VEYXRhKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNDA5LDcgKzQxOCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVBy
b3BlcnR5KHVuc2lnbmVkIGluZGV4LCBib29sIGRpc2FibGUsIEV4Y2VwdGlvbkNvZGUmCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+
IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5
bGUuZ2V0KCkpOworICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4
dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgaWYgKCFzb3VyY2VEYXRhKSB7CiAgICAgICAgIGVjID0g
Tk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQ1LDcgKzQ1NCw3IEBA
IGJvb2wgSW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVByb3BlcnR5KHVuc2lnbmVkIGluZGV4LCBib29s
IGRpc2FibGUsIEV4Y2VwdGlvbkNvZGUmCiBib29sIEluc3BlY3RvclN0eWxlOjpzdHlsZVRleHQo
U3RyaW5nKiByZXN1bHQpIGNvbnN0CiB7CiAgICAgLy8gUHJlY29uZGl0aW9uOiBtX3BhcmVudFN0
eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpIGhhcyBiZWVuIGNhbGxlZCBzdWNjZXNz
ZnVsbHkuCi0gICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJl
bnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgpKTsKKyAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwog
ICAgIGlmICghc291cmNlRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC00NjksNyAr
NDc4LDcgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZTo6cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3Rv
cjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogcmVzdWwKICAgICBpZiAoZGlzYWJsZWRJbmRleCA8
IGRpc2FibGVkTGVuZ3RoKQogICAgICAgICBkaXNhYmxlZFByb3BlcnR5ID0gbV9kaXNhYmxlZFBy
b3BlcnRpZXMuYXQoZGlzYWJsZWRJbmRleCk7CiAKLSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURh
dGE+IHNvdXJjZURhdGEgPSAobV9wYXJlbnRTdHlsZVNoZWV0ICYmIG1fcGFyZW50U3R5bGVTaGVl
dC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291
cmNlRGF0YUZvcihtX3N0eWxlLmdldCgpKSA6IDA7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VE
YXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKICAgICBWZWN0b3I8Q1NTUHJv
cGVydHlTb3VyY2VEYXRhPiogc291cmNlUHJvcGVydHlEYXRhID0gc291cmNlRGF0YSA/ICYoc291
cmNlRGF0YS0+c3R5bGVTb3VyY2VEYXRhLT5wcm9wZXJ0eURhdGEpIDogMDsKICAgICBpZiAoc291
cmNlUHJvcGVydHlEYXRhKSB7CiAgICAgICAgIFN0cmluZyBzdHlsZURlY2xhcmF0aW9uOwpAQCAt
NTE2LDYgKzUyNSw5IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+IElu
c3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9wZXJ0aWVzKCkgY29uCiAgICAgSGFzaFNldDxTdHJp
bmc+IGZvdW5kU2hvcnRoYW5kczsKICAgICBTdHJpbmcgcHJldmlvdXNQcmlvcml0eTsKICAgICBT
dHJpbmcgcHJldmlvdXNTdGF0dXM7CisgICAgT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gbGluZUVu
ZGluZ3MobV9wYXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5saW5lRW5kaW5n
cygpIDogUGFzc093blB0cjxWZWN0b3I8c2l6ZV90PiA+KCkpOworICAgIFJlZlB0cjxDU1NSdWxl
U291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7CisgICAgdW5zaWdu
ZWQgcnVsZUJvZHlSYW5nZVN0YXJ0ID0gc291cmNlRGF0YSA/IHNvdXJjZURhdGEtPnJ1bGVCb2R5
UmFuZ2Uuc3RhcnQgOiAwOwogCiAgICAgZm9yIChWZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0
eT46Oml0ZXJhdG9yIGl0ID0gcHJvcGVydGllcy5iZWdpbigpLCBpdEVuZCA9IHByb3BlcnRpZXMu
ZW5kKCk7IGl0ICE9IGl0RW5kOyArK2l0KSB7CiAgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5U291
cmNlRGF0YSYgcHJvcGVydHlFbnRyeSA9IGl0LT5zb3VyY2VEYXRhOwpAQCAtNTQwLDggKzU1Miwx
NSBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlPiBJbnNwZWN0b3JTdHls
ZTo6c3R5bGVXaXRoUHJvcGVydGllcygpIGNvbgogICAgICAgICAgICAgcHJvcGVydHktPnNldFBy
aW9yaXR5KCJpbXBvcnRhbnQiKTsKICAgICAgICAgaWYgKCFpdC0+ZGlzYWJsZWQpIHsKICAgICAg
ICAgICAgIGlmIChpdC0+aGFzU291cmNlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJj
ZURhdGEpOwogICAgICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRJbXBsaWNpdChmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgcHJvcGVydHktPnNldFJhbmdlKGJ1aWxkU291cmNlUmFuZ2VPYmplY3Qo
cHJvcGVydHlFbnRyeS5yYW5nZSkpOworICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBy
YW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgc3R5bGUgYm9keSBzdGFydC4KKyAgICAgICAgICAgICAg
ICAvLyBTaG91bGQgYmUgY29udmVydGVkIGludG8gYW4gYWJzb2x1dGUgcmFuZ2UgKHJlbGF0aXZl
IHRvIHRoZSBzdHlsZXNoZWV0IHN0YXJ0KQorICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgcHJv
cGVyIGNvbnZlcnNpb24gaW50byBsaW5lOmNvbHVtbi4KKyAgICAgICAgICAgICAgICBTb3VyY2VS
YW5nZSBhYnNvbHV0ZVByb3BlcnR5UmFuZ2UgPSBwcm9wZXJ0eUVudHJ5LnJhbmdlOworICAgICAg
ICAgICAgICAgIGFic29sdXRlUHJvcGVydHlSYW5nZS5zdGFydCArPSBydWxlQm9keVJhbmdlU3Rh
cnQ7CisgICAgICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLmVuZCArPSBydWxlQm9k
eVJhbmdlU3RhcnQ7CisgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldFJhbmdlKGJ1aWxkU291
cmNlUmFuZ2VPYmplY3QoYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLCBsaW5lRW5kaW5ncy5nZXQoKSkp
OwogCiAgICAgICAgICAgICAgICAgLy8gUGFyc2VkIHByb3BlcnR5IG92ZXJyaWRlcyBhbnkgcHJv
cGVydHkgd2l0aCB0aGUgc2FtZSBuYW1lLiBOb24tcGFyc2VkIHByb3BlcnR5IG92ZXJyaWRlcwog
ICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIG5vbi1wYXJzZWQgcHJvcGVydHkgd2l0aCB0aGUg
c2FtZSBuYW1lIChpZiBhbnkpLgpAQCAtNjA2LDYgKzYyNSwxMyBAQCBQYXNzUmVmUHRyPFR5cGVC
dWlsZGVyOjpDU1M6OkNTU1N0eWxlPiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRoUHJvcGVydGll
cygpIGNvbgogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPENT
U1J1bGVTb3VyY2VEYXRhPiBJbnNwZWN0b3JTdHlsZTo6ZXh0cmFjdFNvdXJjZURhdGEoKSBjb25z
dAoreworICAgIGlmICghbV9wYXJlbnRTdHlsZVNoZWV0IHx8ICFtX3BhcmVudFN0eWxlU2hlZXQt
PmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgpKTsKK30K
KwogYm9vbCBJbnNwZWN0b3JTdHlsZTo6YXBwbHlTdHlsZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
KQogewogICAgIHJldHVybiBtX3BhcmVudFN0eWxlU2hlZXQtPnNldFN0eWxlVGV4dChtX3N0eWxl
LmdldCgpLCB0ZXh0KTsKQEAgLTY2OSw3ICs2OTUsNyBAQCBOZXdMaW5lQW5kV2hpdGVzcGFjZSYg
SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVycygpIGNvbnN0CiAg
ICAgaWYgKG1fZm9ybWF0QWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBtX2Zvcm1hdDsKIAotICAg
IFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IChtX3BhcmVudFN0eWxlU2hl
ZXQgJiYgbV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkgPyBtX3Bh
cmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpIDogMDsKKyAg
ICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0
YSgpOwogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eVNvdXJjZURhdGE+KiBzb3VyY2VQcm9wZXJ0eURh
dGEgPSBzb3VyY2VEYXRhID8gJihzb3VyY2VEYXRhLT5zdHlsZVNvdXJjZURhdGEtPnByb3BlcnR5
RGF0YSkgOiAwOwogICAgIGludCBwcm9wZXJ0eUNvdW50OwogICAgIGlmICghc291cmNlUHJvcGVy
dHlEYXRhIHx8ICEocHJvcGVydHlDb3VudCA9IHNvdXJjZVByb3BlcnR5RGF0YS0+c2l6ZSgpKSkg
ewpAQCAtMTAxMCw3ICsxMDM2LDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTZWxl
Y3Rvckxpc3Q+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU2UKICAgICAgICAg
LnNldFRleHQoc2VsZWN0b3JUZXh0KQogICAgICAgICAucmVsZWFzZSgpOwogICAgIGlmIChzb3Vy
Y2VEYXRhKQotICAgICAgICByZXN1bHQtPnNldFJhbmdlKGJ1aWxkU291cmNlUmFuZ2VPYmplY3Qo
c291cmNlRGF0YS0+cnVsZUhlYWRlclJhbmdlKSk7CisgICAgICAgIHJlc3VsdC0+c2V0UmFuZ2Uo
YnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VEYXRhLT5ydWxlSGVhZGVyUmFuZ2UsIGxpbmVF
bmRpbmdzKCkuZ2V0KCkpKTsKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIApAQCAt
MTE3Miw2ICsxMTk4LDEzIEBAIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gSW5zcGVjdG9yU3R5
bGVTaGVldDo6cnVsZVNvdXJjZURhdGFGb3IoQ1NTU3R5bGVEZWNsYXJhCiAgICAgcmV0dXJuIG1f
cGFyc2VkU3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFBdChydWxlSW5kZXhCeVN0eWxlKHN0eWxl
KSk7CiB9CiAKK1Bhc3NPd25QdHI8VmVjdG9yPHNpemVfdD4gPiBJbnNwZWN0b3JTdHlsZVNoZWV0
OjpsaW5lRW5kaW5ncygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXQtPmhh
c1RleHQoKSkKKyAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8VmVjdG9yPHNpemVfdD4gPigpOwor
ICAgIHJldHVybiBDb250ZW50U2VhcmNoVXRpbHM6OmxpbmVFbmRpbmdzKG1fcGFyc2VkU3R5bGVT
aGVldC0+dGV4dCgpKTsKK30KKwogdW5zaWduZWQgSW5zcGVjdG9yU3R5bGVTaGVldDo6cnVsZUlu
ZGV4QnlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBwYWdlU3R5bGUpIGNvbnN0CiB7CiAgICAg
ZW5zdXJlRmxhdFJ1bGVzKCk7CkBAIC0xNDM0LDYgKzE0NjcsMTEgQEAgYm9vbCBJbnNwZWN0b3JT
dHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dChDU1NTdHlsZURlY2xhcmF0aW9u
KiBzdHlsZSwKICAgICByZXR1cm4gIWVjOwogfQogCitQYXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+
ID4gSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpsaW5lRW5kaW5ncygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIENvbnRlbnRTZWFyY2hVdGlsczo6bGluZUVuZGluZ3MoZWxlbWVudFN0
eWxlVGV4dCgpKTsKK30KKwogRG9jdW1lbnQqIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVT
dHlsZTo6b3duZXJEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5oCmluZGV4IDdjYjdkNDZhZWEwYTRmMTIzZWFlYWYxNjFmZDNlMGViNjljZDA1MDAuLjVlMjY4
YmVhMGMwYTQ1OTMwYTMxZTEzZmY0NzU3Yjg1M2E1ZjRjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaApAQCAtMTUyLDYgKzE1Miw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBzdHlsZVRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0OwogICAgIGJv
b2wgcG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5Piog
cmVzdWx0KSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxl
PiBzdHlsZVdpdGhQcm9wZXJ0aWVzKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxDU1NSdWxlU291
cmNlRGF0YT4gZXh0cmFjdFNvdXJjZURhdGEoKSBjb25zdDsKICAgICBib29sIGFwcGx5U3R5bGVU
ZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBzaG9ydGhhbmRWYWx1ZShjb25zdCBTdHJp
bmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdDsKICAgICBTdHJpbmcgc2hvcnRoYW5kUHJpb3Jp
dHkoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3Q7CkBAIC0yMjAsNiArMjIx
LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gQWxzbyBhY2Nlc3NlZCBieSBmcmllbmQgY2xhc3Mg
SW5zcGVjdG9yU3R5bGUuCiAgICAgdmlydHVhbCBib29sIHNldFN0eWxlVGV4dChDU1NTdHlsZURl
Y2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBQYXNzT3duUHRyPFZlY3Rv
cjxzaXplX3Q+ID4gbGluZUVuZGluZ3MoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB0eXBlZGVm
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVSdWxlPiA+IENTU1N0eWxlUnVsZVZlY3RvcjsKQEAgLTI3
MSw2ICsyNzMsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBBbHNvIGFjY2Vzc2VkIGJ5IGZyaWVu
ZCBjbGFzcyBJbnNwZWN0b3JTdHlsZS4KICAgICB2aXJ0dWFsIGJvb2wgc2V0U3R5bGVUZXh0KENT
U1N0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25Q
dHI8VmVjdG9yPHNpemVfdD4gPiBsaW5lRW5kaW5ncygpIGNvbnN0OwogCiBwcml2YXRlOgogICAg
IENTU1N0eWxlRGVjbGFyYXRpb24qIGlubGluZVN0eWxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggMjdiODRkZWQz
ODNiODJjN2JjYmQ1YTFkMTc2MjI4YTAxNTg1Zjc2MC4uZmI1Njc0NDFmNTgwMWQxODIwMjNmMzBk
NzliZDg5OTY2NTBmMTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtMzcxLDIzICszNzEsMTUgQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHN0eWxlU2hlZXRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHZhciBzdHlsZVNoZWV0ID0gc3R5bGVTaGVldHNbaV07Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBzdHlsZXNoZWV0U2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB1
bnVzZWRTdHlsZXNoZWV0U2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHZhciB1bnVzZWRS
dWxlcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBjdXJSdWxlID0gMDsgY3Vy
UnVsZSA8IHN0eWxlU2hlZXQucnVsZXMubGVuZ3RoOyArK2N1clJ1bGUpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBydWxlID0gc3R5bGVTaGVldC5ydWxlc1tjdXJSdWxlXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEV4YWN0IGNvbXB1dGF0aW9uIHdoZW5ldmVyIHNvdXJjZSBy
YW5nZXMgYXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0TGVu
Z3RoID0gKHJ1bGUuc2VsZWN0b3JSYW5nZSAmJiBydWxlLnN0eWxlLnJhbmdlICYmIHJ1bGUuc3R5
bGUucmFuZ2UuZW5kKSA/IHJ1bGUuc3R5bGUucmFuZ2UuZW5kIC0gcnVsZS5zZWxlY3RvclJhbmdl
LnN0YXJ0ICsgMSA6IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRleHRMZW5ndGgg
JiYgcnVsZS5zdHlsZS5jc3NUZXh0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRM
ZW5ndGggPSBydWxlLnN0eWxlLmNzc1RleHQubGVuZ3RoICsgcnVsZS5zZWxlY3RvclRleHQubGVu
Z3RoOwotICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzaGVldFNpemUgKz0gdGV4dExlbmd0
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdGVkU2VsZWN0b3JzW3J1bGUuc2Vs
ZWN0b3JUZXh0XSB8fCBmb3VuZFNlbGVjdG9yc1tydWxlLnNlbGVjdG9yVGV4dF0pCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1
bnVzZWRTdHlsZXNoZWV0U2l6ZSArPSB0ZXh0TGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAg
ICAgdW51c2VkUnVsZXMucHVzaChydWxlLnNlbGVjdG9yVGV4dCk7CiAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdG90YWxTdHlsZXNoZWV0U2l6ZSArPSBzdHlsZXNo
ZWV0U2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgdG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSAr
PSB1bnVzZWRTdHlsZXNoZWV0U2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxTdHlsZXNo
ZWV0U2l6ZSArPSBzdHlsZVNoZWV0LnJ1bGVzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAg
dG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSArPSB1bnVzZWRSdWxlcy5sZW5ndGg7CiAKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCF1bnVzZWRSdWxlcy5sZW5ndGgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKQEAgLTM5NSwxMCArMzg3LDEwIEBAIFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICB2
YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC5zb3Vy
Y2VVUkwpOwogICAgICAgICAgICAgICAgICAgICB2YXIgaXNJbmxpbmVCbG9jayA9IHJlc291cmNl
ICYmIHJlc291cmNlLnJlcXVlc3QgJiYgcmVzb3VyY2UucmVxdWVzdC50eXBlID09IFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwogICAgICAgICAgICAgICAgICAgICB2YXIgdXJs
ID0gIWlzSW5saW5lQmxvY2sgPyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlE
aXNwbGF5TmFtZShzdHlsZVNoZWV0LnNvdXJjZVVSTCkgOiBTdHJpbmcuc3ByaW50ZigiSW5saW5l
IGJsb2NrICMlZCIsICsraW5saW5lQmxvY2tPcmRpbmFsKTsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIHBjdFVudXNlZCA9IE1hdGgucm91bmQoMTAwICogdW51c2VkU3R5bGVzaGVldFNpemUgLyBz
dHlsZXNoZWV0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIHZhciBwY3RVbnVzZWQgPSBNYXRo
LnJvdW5kKDEwMCAqIHVudXNlZFJ1bGVzLmxlbmd0aCAvIHN0eWxlU2hlZXQucnVsZXMubGVuZ3Ro
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdW1tYXJ5KQogICAgICAgICAgICAgICAgICAg
ICAgICAgc3VtbWFyeSA9IHJlc3VsdC5hZGRDaGlsZCgiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBlbnRyeSA9IHN1bW1hcnkuYWRkRm9ybWF0dGVkKCIlczogJXMgKCVkJSkgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB1cmwsIE51bWJlci5ieXRlc1RvU3RyaW5n
KHVudXNlZFN0eWxlc2hlZXRTaXplKSwgcGN0VW51c2VkKTsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIGVudHJ5ID0gc3VtbWFyeS5hZGRGb3JtYXR0ZWQoIiVzOiAlZCUgaXMgbm90IHVzZWQgYnkg
dGhlIGN1cnJlbnQgcGFnZS4iLCB1cmwsIHBjdFVudXNlZCk7CiAKICAgICAgICAgICAgICAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCB1bnVzZWRSdWxlcy5sZW5ndGg7ICsraikKICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudHJ5LmFkZFNuaXBwZXQodW51c2VkUnVsZXNbal0pOwpAQCAtNDEw
LDcgKzQwMiw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCk7CiAKICAg
ICAgICAgICAgICAgICB2YXIgdG90YWxVbnVzZWRQZXJjZW50ID0gTWF0aC5yb3VuZCgxMDAgKiB0
b3RhbFVudXNlZFN0eWxlc2hlZXRTaXplIC8gdG90YWxTdHlsZXNoZWV0U2l6ZSk7Ci0gICAgICAg
ICAgICAgICAgc3VtbWFyeS52YWx1ZSA9IFN0cmluZy5zcHJpbnRmKCIlcyAoJWQlKSBvZiBDU1Mg
aXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0
b3RhbFVudXNlZFN0eWxlc2hlZXRTaXplKSwgdG90YWxVbnVzZWRQZXJjZW50KTsKKyAgICAgICAg
ICAgICAgICBzdW1tYXJ5LnZhbHVlID0gU3RyaW5nLnNwcmludGYoIiVzIHJ1bGVzICglZCUpIG9m
IENTUyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLiIsIHRvdGFsVW51c2VkU3R5bGVzaGVl
dFNpemUsIHRvdGFsVW51c2VkUGVyY2VudCk7CiAKICAgICAgICAgICAgICAgICBjYWxsYmFjayhy
ZXN1bHQpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDJkYjNjOGZhMTZhZTBjM2FhYjJlZjAz
MzVmZmIwZTA1YTUyMGQ3YjAuLjkzNzBjNDU5NWRmZWQ1NTYxYTUxYmEwNGY1MzU1OTk1ZjE1ZmNh
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0
eWxlTW9kZWwuanMKQEAgLTg1NCwxMyArODU0LDEyIEBAIFdlYkluc3BlY3Rvci5DU1NSdWxlID0g
ZnVuY3Rpb24ocGF5bG9hZCwgbWF0Y2hpbmdTZWxlY3RvcnMpCiAgICAgdGhpcy5zZWxlY3RvclJh
bmdlID0gcGF5bG9hZC5zZWxlY3Rvckxpc3QucmFuZ2U7CiAgICAgdGhpcy5zb3VyY2VMaW5lID0g
cGF5bG9hZC5zb3VyY2VMaW5lOwogICAgIHRoaXMuc291cmNlVVJMID0gcGF5bG9hZC5zb3VyY2VV
Ukw7Ci0gICAgaWYgKHBheWxvYWQuc291cmNlVVJMKQotICAgICAgICB0aGlzLl9yYXdMb2NhdGlv
biA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24ocGF5bG9hZC5zb3VyY2VVUkwsIHBheWxv
YWQuc291cmNlTGluZSk7CiAgICAgdGhpcy5vcmlnaW4gPSBwYXlsb2FkLm9yaWdpbjsKICAgICB0
aGlzLnN0eWxlID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2Fk
KHBheWxvYWQuc3R5bGUpOwogICAgIHRoaXMuc3R5bGUucGFyZW50UnVsZSA9IHRoaXM7CiAgICAg
aWYgKHBheWxvYWQubWVkaWEpCiAgICAgICAgIHRoaXMubWVkaWEgPSBXZWJJbnNwZWN0b3IuQ1NT
TWVkaWEucGFyc2VNZWRpYUFycmF5UGF5bG9hZChwYXlsb2FkLm1lZGlhKTsKKyAgICB0aGlzLl9z
ZXRSYXdMb2NhdGlvbihwYXlsb2FkKTsKIH0KIAogLyoqCkBAIC04NzQsNiArODczLDIwIEBAIFdl
Ykluc3BlY3Rvci5DU1NSdWxlLnBhcnNlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQsIG1hdGNo
aW5nSW5kaWNlcykKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBlID0geworICAg
IF9zZXRSYXdMb2NhdGlvbjogZnVuY3Rpb24ocGF5bG9hZCkKKyAgICB7CisgICAgICAgIGlmICgh
cGF5bG9hZC5zb3VyY2VVUkwpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICh0aGlz
LnNlbGVjdG9yUmFuZ2UpIHsKKyAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChwYXlsb2FkLnNvdXJjZVVSTCk7Cisg
ICAgICAgICAgICBpZiAocmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9y
LnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCkgeworICAgICAgICAgICAgICAgIHRoaXMuX3Jhd0xv
Y2F0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbihwYXlsb2FkLnNvdXJjZVVSTCwg
dGhpcy5zZWxlY3RvclJhbmdlLnN0YXJ0TGluZSwgdGhpcy5zZWxlY3RvclJhbmdlLnN0YXJ0Q29s
dW1uKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5fcmF3TG9jYXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9u
KHBheWxvYWQuc291cmNlVVJMLCBwYXlsb2FkLnNvdXJjZUxpbmUpOworICAgIH0sCisKICAgICBn
ZXQgaXNVc2VyQWdlbnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luID09PSAi
dXNlci1hZ2VudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwppbmRleCAyMGQ4NTU4ZTlmNzM2NmNlNzcxODhmZWY4
NjA0MDhmZjYyOTNmZTkxLi5jNTE2ZGNmM2M5ZGZmY2NmYzMwNDFhOWMzNzg1MmRjMThkNjQ2MTdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3Vy
Y2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanMKQEAgLTIyNiw2ICsyMjYsNyBAQCBXZWJJbnNwZWN0b3IuU0FTU1Nv
dXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9iaW5kVUlTb3VyY2VDb2Rl
OiBmdW5jdGlvbihyYXdVUkwsIHNvdXJjZU1hcCkKICAgICB7CisgICAgICAgIHRoaXMuX2Nzc01v
ZGVsLnNldFNvdXJjZU1hcHBpbmcocmF3VVJMLCB0aGlzKTsKICAgICAgICAgdmFyIHNvdXJjZXMg
PSBzb3VyY2VNYXAuc291cmNlcygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJj
ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1cmwgPSBzb3VyY2VzW2ldOwpAQCAt
MjMzLDEyICsyMzQsMTAgQEAgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IEluc3BlY3RvckZyb250ZW5kSG9z
dC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVybCk7CiAgICAgICAgICAgICAgICAgdmFyIGNv
bnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQsIGNvbnRlbnQsICJ0ZXh0L3gtc2Nz
cyIpOwogICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl9uZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNvbnRlbnRQcm92aWRlciwgdHJ1ZSk7
Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CiAg
ICAgICAgICAgICAgICAgdGhpcy5fYWRkQ1NTVVJMZm9yU0FTU1VSTChyYXdVUkwsIHVybCk7Cisg
ICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLl9jc3NNb2RlbC5zZXRTb3VyY2VN
YXBwaW5nKHJhd1VSTCwgdGhpcyk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlYjQ3NGQ4
ZmMxNzljNTg4OThjZDJmZjM5ZWViMWM3NTg1OTZlODkuLjBlYTUzMDIzNjNjODI5YmRmNDgzZmM0
YTBlZGE2NDAwNDgxNzg5ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wMi0yOCAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFNlbGVjdG9yJ3MgcmF3IHN0YXJ0IHBvc2l0aW9uIGluIGl0cyBsaW5lIGlzIGNvbnNp
ZGVyZWQgdG8gYmUgMCB3aGVuIGNvbXB1dGluZyBVSUxvY2F0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIHRlc3RzIGhhdmUgYmVlbiBy
ZWJhc2VsaW5lZCB0byBmb2xsb3cgdGhlIG5ldyBzb3VyY2UgcmFuZ2Ugc3RydWN0dXJlLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qczoKKyAgICAgICAg
KGluaXRpYWxpemVfRWxlbWVudFRlc3QuSW5zcGVjdG9yVGVzdC5yYW5nZVRleHQpOiBGaXggc291
cmNlIHJhbmdlIGR1bXBpbmcgZm9ybWF0LgorICAgICAgICAqIGluc3BlY3Rvci9hdWRpdHMvYXVk
aXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVj
dG9yLWxpbmUuY3NzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNl
cy9zZWxlY3Rvci1saW5lLmNzcy5tYXA6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuc2NzczogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgorCiAyMDEz
LTAyLTI4ICBUYWthc2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwppbmRleCA2MWY2NmY5MzczMDQyNTYwMDg2OGRj
NjY2MWVmNjc1NDNmNmI3NmQyLi40MjI4NzY3ZTA0MjJmZGIyNTVlZWNiMzk1OGNhNzUzNDEyMWQy
OWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
LXRlc3QuanMKQEAgLTQ3MSw3ICs0NzEsNyBAQCBJbnNwZWN0b3JUZXN0LnJhbmdlVGV4dCA9IGZ1
bmN0aW9uKHJhbmdlKQogewogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybiAiW3VuZGVm
aW5lZC11bmRlZmluZWRdIjsKLSAgICByZXR1cm4gIlsiICsgcmFuZ2Uuc3RhcnQgKyAiLSIgKyBy
YW5nZS5lbmQgKyAiXSI7CisgICAgcmV0dXJuICJbIiArIHJhbmdlLnN0YXJ0TGluZSArICI6IiAr
IHJhbmdlLnN0YXJ0Q29sdW1uICsgIi0iICsgcmFuZ2UuZW5kTGluZSArICI6IiArIHJhbmdlLmVu
ZENvbHVtbiArICJdIjsKIH0KIAogSW5zcGVjdG9yVGVzdC5nZW5lcmF0ZVVuZG9UZXN0ID0gZnVu
Y3Rpb24odGVzdEJvZHkpCkBAIC01MzQsMTAgKzUzNCwxOCBAQCBJbnNwZWN0b3JUZXN0LmR1bXBS
dWxlTWF0Y2hlc0FycmF5ID0gZnVuY3Rpb24obWF0Y2hlcywgY3VycmVudEluZGVudCkKIAogSW5z
cGVjdG9yVGVzdC5kdW1wUnVsZSA9IGZ1bmN0aW9uKHJ1bGUsIGN1cnJlbnRJbmRlbnQpCiB7Cisg
ICAgZnVuY3Rpb24gc2VsZWN0b3JSYW5nZSgpCisgICAgeworICAgICAgICBpZiAoIXJ1bGUuc2Vs
ZWN0b3JMaXN0IHx8ICFydWxlLnNlbGVjdG9yTGlzdC5yYW5nZSkKKyAgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICAgdmFyIHJhbmdlID0gcnVsZS5zZWxlY3Rvckxpc3QucmFuZ2U7CisgICAg
ICAgIHJldHVybiAiLCAiICsgcmFuZ2Uuc3RhcnRMaW5lICsgIjoiICsgcmFuZ2Uuc3RhcnRDb2x1
bW4gKyAiLSIgKyByYW5nZS5lbmRMaW5lICsgIjoiICsgcmFuZ2UuZW5kQ29sdW1uOworICAgIH0K
KwogICAgIGN1cnJlbnRJbmRlbnQgPSBjdXJyZW50SW5kZW50IHx8ICIiOwogCiAgICAgaWYgKCFy
dWxlLnR5cGUgfHwgcnVsZS50eXBlID09PSAic3R5bGUiKSB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyBydWxlLnNlbGVjdG9yTGlzdC50ZXh0ICsgIjog
WyIgKyBydWxlLm9yaWdpbiArICJdIHsiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoY3VycmVudEluZGVudCArIHJ1bGUuc2VsZWN0b3JMaXN0LnRleHQgKyAiOiBbIiArIHJ1bGUu
b3JpZ2luICsgc2VsZWN0b3JSYW5nZSgpICsgIl0geyIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBTdHlsZShydWxlLnN0eWxlLCBjdXJyZW50SW5kZW50ICsgaW5kZW50KTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY3VycmVudEluZGVudCArICJ9Iik7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBh
bmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0
cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggM2YyY2I2Nzk3NGQw
NDQ5ZGI1ZDFhNGQ1NDBlNmFiMTAxNjJiYjY2YS4uZGZiMjI1MDczNzhiMGZjMzU1MjBkZGI0NzY5
NjFiOGYxNzQ3Yzg4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9h
dWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTIz
LDE2ICsyMywxNiBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRo
ZSBkb2N1bWVudCBoZWFkIGluIAogICAgICAgYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAog
ICAgIFJlbW92ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAyMDnigIlCICgxMDAlKSBvZiBD
U1MgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAj
MTogNjnigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICA0
IHJ1bGVzICgxMDAlKSBvZiBDU1Mgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAg
IElubGluZSBibG9jayAjMTogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgog
ICAgICAgIC51bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwotICAgICAgOiA0M+KAiUIg
KDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICA6IDEwMCUgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQotICAgICAg
SW5saW5lIGJsb2NrICMyOiA1NOKAiUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50
IHBhZ2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzI6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1
cnJlbnQgcGFnZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MK
LSAgICAgIDogNDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgor
ICAgICAgOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNv
bWUtc3R5bGUKICAgICBVc2Ugbm9ybWFsIENTUyBwcm9wZXJ0eSBuYW1lcyBpbnN0ZWFkIG9mIHZl
bmRvci1wcmVmaXhlZCBvbmVzICgxKQogICAgICAgYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
bm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAppbmRl
eCBlZmZjMmEzMmFjMmQ4NDMyMDc3MmI3ZTM5Yzc3MjkzNDI4ZTg2NzMxLi4xOWFhN2JmY2MzNzQy
ODJkOWJhNzVjNTQ5OTdjZmFhNTY5ZWUwN2M4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdl
cy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMTksMTUgKzE5LDE1IEBAIFBhZ2UgcmVsb2Fk
ZWQuCiAgICAgICBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgaW4gCiAgICAg
ICBhdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC5odG1sCiAgICAgUmVtb3ZlIHVudXNl
ZCBDU1MgcnVsZXMgKDQpCi0gICAgIDE0MeKAiUIgKDEwMCUpIG9mIENTUyBpcyBub3QgdXNlZCBi
eSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgSW5saW5lIGJsb2NrICMxOiAyOeKAiUIgKDEwMCUp
IGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgIDQgcnVsZXMgKDEwMCUpIG9m
IENTUyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJsb2NrICMx
OiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnVudXNlZAog
ICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCi0gICAgICA6IDQz4oCJQiAoMTAwJSkgaXMgbm90IHVz
ZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgogICAgICAgIC5zb21lLXN0eWxlCi0gICAgICBJbmxpbmUgYmxvY2sgIzI6
IDI24oCJQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElu
bGluZSBibG9jayAjMjogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAg
ICAgIC52aW9sYXRpb24KICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwotICAgICAgOiA0M+KAiUIg
KDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICA6IDEwMCUgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10
ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1z
dHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGJlNTJkMGRjYjIzYjg3ODk4MjhhYzE3
YWNlMzJmZGIyYzZiN2Q5NTcuLjc3Yjk1ODk1ODczNjA2YjgyNTcwNGIzNzA1OWY1Yzg4YTY3Mzli
OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHls
ZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0CkBAIC00MCw1ICs0MCw1IEBA
IGgxOiBbdXNlci1hZ2VudF0KIAogcnVsZQogaDE6IFtyZWd1bGFyXQotWydDT0xPUic6J1JlZCdd
IEBbMS0xMl0gYWN0aXZlCitbJ0NPTE9SJzonUmVkJ10gQFswOjUtMDoxNl0gYWN0aXZlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1l
cnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXJzZS1z
dHlsZXNoZWV0LWVycm9ycy1leHBlY3RlZC50eHQKaW5kZXggYzE3YzM0NDg2MTM0MWI1NWQyZjgy
YzkzZjUxN2EwNWYzMzY5N2Q3ZC4uZTVlY2I3NWU2M2EwMDQwYzk2MmIyZDY5ZDNiOTBhYmQyZjcw
N2JjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXJzZS1zdHls
ZXNoZWV0LWVycm9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9wYXJzZS1zdHlsZXNoZWV0LWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTEsMzYgKzEsMzYg
QEAKIFRlc3RzIHRoYXQgQ1NTUGFyc2VyIHByb2R1Y2VzIHNvdXJjZSBkYXRhIGNvbnNpc3RlbnQg
d2l0aCBDU1NPTSB3aGVuIHBhcnNpbmcgYnJva2VuIHN0eWxlc2hlZXRzLiBCdWcgOTgyNDYKIAot
Ym9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonYmxhY2snXSBAWzUtMThdIGFjdGl2ZQor
Ym9keTogW3JlZ3VsYXIsIDE6MC0xOjRdIHsKKyAgICBbJ2NvbG9yJzonYmxhY2snXSBAWzI6NC0y
OjE3XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydiYWNrZ3JvdW5kLWNvbG9y
JzonYnJva2VuLWRlY2xhcmF0aW9uJyBub24tcGFyc2VkXSBAWzUtNDJdIGFjdGl2ZQorYm9keTog
W3JlZ3VsYXIsIDEyOjAtMTI6NF0geworICAgIFsnYmFja2dyb3VuZC1jb2xvcic6J2Jyb2tlbi1k
ZWNsYXJhdGlvbicgbm9uLXBhcnNlZF0gQFsxMzo0LTEzOjQxXSBhY3RpdmUKIH0KLWJvZHk6IFty
ZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J2ltcG9ydC1lcnJvcicgbm9uLXBhcnNlZF0gQFs1LTI1
XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAyOjAtMjo0XSB7CisgICAgWydjb2xvcic6J2ltcG9y
dC1lcnJvcicgbm9uLXBhcnNlZF0gQFszOjQtMzoyNF0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxh
cl0gewotICAgIFsnY29sb3InOidpbXBvcnQtZXJyb3ItYmxvY2snIG5vbi1wYXJzZWRdIEBbNS0z
MV0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjowLTI6NF0geworICAgIFsnY29sb3InOidpbXBv
cnQtZXJyb3ItYmxvY2snIG5vbi1wYXJzZWRdIEBbMzo0LTM6MzBdIGFjdGl2ZQogfQotYm9keTog
W3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonbWVkaWEtZW1wdHknIG5vbi1wYXJzZWRdIEBbNS0y
NF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjowLTI6NF0geworICAgIFsnY29sb3InOidtZWRp
YS1lbXB0eScgbm9uLXBhcnNlZF0gQFszOjQtMzoyM10gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxh
cl0gewotICAgIFsnY29sb3InOidwYWdlLWVycm9yJyBub24tcGFyc2VkXSBAWzUtMjNdIGFjdGl2
ZQorYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2NvbG9yJzoncGFnZS1lcnJvcicg
bm9uLXBhcnNlZF0gQFszOjQtMzoyMl0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAg
IFsnY29sb3InOidwYWdlLWJsb2NrJyBub24tcGFyc2VkXSBAWzUtMjNdIGFjdGl2ZQorYm9keTog
W3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2NvbG9yJzoncGFnZS1ibG9jaycgbm9uLXBhcnNl
ZF0gQFszOjQtMzoyMl0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnY29sb3In
OidiZWZvcmUtaW1wb3J0JyBub24tcGFyc2VkXSBAWzUtMjZdIGFjdGl2ZQorYm9keTogW3JlZ3Vs
YXIsIDE6MC0xOjRdIHsKKyAgICBbJ2NvbG9yJzonYmVmb3JlLWltcG9ydCcgbm9uLXBhcnNlZF0g
QFsyOjQtMjoyNV0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOidh
ZnRlci1pbXBvcnQnIG5vbi1wYXJzZWRdIEBbNS0yNV0gYWN0aXZlCitib2R5OiBbcmVndWxhciwg
NTowLTU6NF0geworICAgIFsnY29sb3InOidhZnRlci1pbXBvcnQnIG5vbi1wYXJzZWRdIEBbNjo0
LTY6MjRdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonYWZ0ZXIt
aW52YWxpZC1mb250LWZhY2UnIG5vbi1wYXJzZWRdIEBbNS0zNl0gYWN0aXZlCitib2R5OiBbcmVn
dWxhciwgNDowLTQ6NF0geworICAgIFsnY29sb3InOidhZnRlci1pbnZhbGlkLWZvbnQtZmFjZScg
bm9uLXBhcnNlZF0gQFs1OjQtNTozNV0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAg
IFsnY29sb3InOidhZnRlci1pbnZhbGlkLXJlZ2lvbicgbm9uLXBhcnNlZF0gQFs1LTMzXSBhY3Rp
dmUKK2JvZHk6IFtyZWd1bGFyLCAzOjAtMzo0XSB7CisgICAgWydjb2xvcic6J2FmdGVyLWludmFs
aWQtcmVnaW9uJyBub24tcGFyc2VkXSBAWzQ6NC00OjMyXSBhY3RpdmUKIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5j
c3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5l
LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMTE1YjI1MjJiNDU5ZmYzMjg0YjJkYzQ2NzQzN2JhOWE4MGQ0MjY0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJj
ZXMvc2VsZWN0b3ItbGluZS5jc3MKQEAgLTAsMCArMSw2IEBACisjY29udGFpbmVyIHsKKyAgYmFj
a2dyb3VuZDogcGFwYXlhd2hpcDsgfQorICAjY29udGFpbmVyICNpbnNwZWN0ZWQgeworICAgIGNv
bG9yOiBncmVlbjsgfQorCisvKkAgc291cmNlTWFwcGluZ1VSTD1zZWxlY3Rvci1saW5lLmNzcy5t
YXAgKi8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGJmMjc1ODY4NjZlNTBiNWEzYTlmMjBmNzU1OTQ1NmY2NmZhYjI1MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3Nl
bGVjdG9yLWxpbmUuY3NzLm1hcApAQCAtMCwwICsxLDYgQEAKK3sKKyJ2ZXJzaW9uIjogIjMiLAor
Im1hcHBpbmdzIjogIkFBQUEsVUFBVztFQUNQLFVBQVUsRUFBRSxVQUFVO0VBRXRCLHFCQUFXO0lB
Q1AsS0FBSyxFQUFFLEtBQUsiLAorInNvdXJjZXMiOiBbInNlbGVjdG9yLWxpbmUuc2NzcyJdLAor
ImZpbGUiOiAic2VsZWN0b3ItbGluZS5jc3MiCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLnNjc3MgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLnNjc3MKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWM3NGQzNWQyOWIxNjhhOTQ1YjdmOWFmMjhhN2E5M2JiN2VmOTkwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxp
bmUuc2NzcwpAQCAtMCwwICsxLDcgQEAKKyNjb250YWluZXIgeworICAgIGJhY2tncm91bmQ6IHBh
cGF5YXdoaXA7CisKKyAgICAjaW5zcGVjdGVkIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3It
bGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9y
LWxpbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYWFjN2ZjZWVlYjg5MmUwNmY2YWVmYTE2
OTJkNjQ5MjM0YjhkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3NlbGVjdG9yLWxpbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3Rz
IHRoYXQgc2VsZWN0b3IgbGluZSBpcyBjb21wdXRlZCBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBp
dHMgc3RhcnQgY29sdW1uLiBCdWcgMTEwNzMyLgorCitUZXh0CitbZXhwYW5kZWRdIAorZWxlbWVu
dC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4
cGFuZGVkXSAKKyNjb250YWluZXIgI2luc3BlY3RlZCAgeyAoc2VsZWN0b3ItbGluZS5zY3NzOjQp
Citjb2xvcjogZ3JlZW47CisKK1tleHBhbmRlZF0gCisjaW5zcGVjdGVkICB7IChzZWxlY3Rvci1s
aW5lLmh0bWw6NSkKKy8tLSBvdmVybG9hZGVkIC0tLyBjb2xvcjogZ3JlZW47CisKK1tleHBhbmRl
ZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NDk3ZjMzODZkY2ExNDUyOTQxYTgxZDI2NzU2YzBjNmI0NjI4NDhkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5l
Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyNpbnNwZWN0
ZWQKK3sKKyAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0icmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBzYXNzTWFw
cGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcoV2ViSW5zcGVjdG9yLmNz
c01vZGVsLCBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLCBXZWJJbnNwZWN0b3IubmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyKTsKKyAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVB
ZGRlZCwgdWlTb3VyY2VDb2RlQWRkZWQsIG51bGwpOworICAgIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwoImVsZW1lbnRzIik7CisgICAgc3RlcDEoKTsKKworICAgIGZ1bmN0aW9uIHVpU291cmNlQ29k
ZUFkZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUudXJsLmVuZHNXaXRoKCIuc2NzcyIpKQorICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZS5FdmVudHMuU291cmNlTWFwcGluZ0NoYW5nZWQsIHN0ZXAyLCBudWxsKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKGNhbGxiYWNrKTsKKyAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2socmVzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChyZXNvdXJj
ZS51cmwuZW5kc1dpdGgoIi5jc3MiKSkgeworICAgICAgICAgICAgICAgIHNhc3NNYXBwaW5nLl9y
ZXNvdXJjZUFkZGVkKG5ldyBXZWJJbnNwZWN0b3IuRXZlbnQoV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNv
dXJjZUFkZGVkLCByZXNvdXJjZSkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5z
cGVjdGVkIiwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0
PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQg
c2VsZWN0b3IgbGluZSBpcyBjb21wdXRlZCBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBpdHMgc3Rh
cnQgY29sdW1uLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwNzMyIj5CdWcgMTEwNzMyPC9hPi4KKzwvcD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4K
KyAgICA8ZGl2IGlkPSJpbnNwZWN0ZWQiPlRleHQ8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1u
ZXctQVBJLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LW5ldy1BUEktZXhwZWN0ZWQudHh0CmluZGV4IDMxNmEzYTdmNGJiZjU1MzAyOTZjZjNhYTI0Nzhl
MmMzZmY3MDZmMDkuLjM5ZWIwZjU4NzUyNGMxZGJkNzk4MWQ5Yzk1M2QxNTcxYzgyMTQ0NTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1B
UEktZXhwZWN0ZWQudHh0CkBAIC0xNCwyOSArMTQsMjkgQEAgYm9keTogW3VzZXItYWdlbnRdIHsK
ICAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxl
CiAgICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUK
IH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNj
cmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3Vs
YXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4t
c3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KLWJvZHk6IFty
ZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNo
ZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6
NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcg
bm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0g
ICAgWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCA5
OjAtOTo0XSB7CisgICAgWydmb250LXNpemUnOicxMnB4J10gQFsxMDo0LTEwOjIwXSBhY3RpdmUK
ICAgICBbJ2Zvbyc6J2JhciAhCiAKLSAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0
eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0g
QFsyNi0xMDRdIGFjdGl2ZQotICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50JyBpcy1pbXBv
cnRhbnRdIEBbMTA5LTEzM10gYWN0aXZlCi0gICAgWydjb2xvcnonOiciIWltcG9ydGFudCInIG5v
bi1wYXJzZWRdIEBbMTM4LTE1OV0gYWN0aXZlCi0gICAgWydpbXBvcnRhbnQnOichaW1wb3J0YW50
JyBub24tcGFyc2VkXSBAWzE2NC0xODVdIGFjdGl2ZQotICAgIFsnY29sb3InOid5ZWxsb3cnXSBA
WzE5MC0yMDRdIGFjdGl2ZQotICAgIFsnY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8q
IGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1pbXBvcnRhbnQgbm9uLXBh
cnNlZF0gQFsyMDktMjc4XSBhY3RpdmUKKyAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9w
ZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNl
ZF0gQFsxMTo0LTEzOjY2XSBhY3RpdmUKKyAgICBbJ2hlaWdodCc6JzEwMCUgIWltcG9ydGFudCcg
aXMtaW1wb3J0YW50XSBAWzE0OjQtMTQ6MjhdIGFjdGl2ZQorICAgIFsnY29sb3J6JzonIiFpbXBv
cnRhbnQiJyBub24tcGFyc2VkXSBAWzE1OjQtMTU6MjVdIGFjdGl2ZQorICAgIFsnaW1wb3J0YW50
JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjo0LTE2OjI1XSBhY3RpdmUKKyAgICBbJ2Nv
bG9yJzoneWVsbG93J10gQFsxNzo0LTE3OjE4XSBhY3RpdmUKKyAgICBbJ2NvbG9yJzonImJhZGNv
bG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycg
aXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTg6NC0xODo3M10gYWN0aXZlCiB9Ci1ib2R5Lm1h
aW4xOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0gYWN0aXZl
Ci0gICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3Bl
cnR5ICovJyBub24tcGFyc2VkXSBAWzI4LTgxXSBhY3RpdmUKK2JvZHkubWFpbjE6IFtyZWd1bGFy
LCAyMToyOS0yMTo2N10geworICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsyMTo4MS0yMTo5Nl0g
YWN0aXZlCisgICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVk
IHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0aXZlCiB9Ci1ib2R5
Lm1haW4yOiBbcmVndWxhcl0gewotICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFp
bXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1w
b3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMC05NV0gYWN0aXZlCitib2R5Lm1haW4yOiBbcmVn
dWxhciwgMjM6MC0yMzoxMF0geworICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFp
bXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1w
b3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2XSBhY3RpdmUKICAgICBbJ2Jh
Y2tncm91bmQtaW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVm
aW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJyBpcy1pbXBv
cnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVw
ZWF0LXknOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKQEAgLTQ4LDE5ICs0OCwxOSBAQCBib2R5Lm1haW4yOiBbcmVndWxhcl0gewogICAgIFsnYmFj
a2dyb3VuZC1jb2xvcic6J2dyZWVuJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0g
QFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogfQotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJd
IHsKLSAgICBbJ3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzUtMjddIGFjdGl2ZQotICAgIFsn
YmFkcHJvcGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzEwOC0xMzJdIGFjdGl2ZQor
Ym9keS5tYWlucGFnZTogW3JlZ3VsYXIsIDM6MC0zOjEzXSB7CisgICAgWyd0ZXh0LWRlY29yYXRp
b24nOidub25lJ10gQFs0OjQtNDoyNl0gYWN0aXZlCisgICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2
YWx1ZTEnIG5vbi1wYXJzZWRdIEBbNTo1LTU6MjldIGFjdGl2ZQogfQotYm9keS5tYWlucGFnZTog
W3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0gQFs1LTE3XSBhY3Rp
dmUKLSAgICBbJ3Byb3AyJzondmFsMicgbm9uLXBhcnNlZF0gQFsyMi0zNF0gYWN0aXZlCitib2R5
Lm1haW5wYWdlOiBbcmVndWxhciwgODowLTg6MTNdIHsKKyAgICBbJ3Byb3AxJzondmFsMScgbm9u
LXBhcnNlZF0gQFs5OjQtOToxNl0gYWN0aXZlCisgICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJz
ZWRdIEBbMTA6NC0xMDoxNl0gYWN0aXZlCiB9CiAKID09PSBQc2V1ZG8gcnVsZXMgZm9yIGJvZHkg
PT09CiBQc2V1ZG9JZD00Ci1ib2R5OjphZnRlcjogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbnRlbnQn
OiciQWZ0ZXIgYm9keSInXSBAWzUtMjddIGFjdGl2ZQorYm9keTo6YWZ0ZXI6IFtyZWd1bGFyLCAy
NjowLTI2OjExXSB7CisgICAgWydjb250ZW50JzonIkFmdGVyIGJvZHkiJ10gQFsyNzo0LTI3OjI2
XSBhY3RpdmUKIH0KIAogPT09IEluaGVyaXRlZCBzdHlsZXMgZm9yIGJvZHkgPT09CkBAIC02OSwx
NCArNjksMTQgQEAgTGV2ZWw9MQogaHRtbDogW3VzZXItYWdlbnRdIHsKICAgICBbJ2Rpc3BsYXkn
OidibG9jayddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWh0bWw6IFtyZWd1bGFy
XSB7Ci0gICAgWydmb250LXdlaWdodCc6JzQwMCddIEBbNS0yMl0gYWN0aXZlCitodG1sOiBbcmVn
dWxhciwgNDowLTQ6NF0geworICAgIFsnZm9udC13ZWlnaHQnOic0MDAnXSBAWzU6NC01OjIxXSBh
Y3RpdmUKIH0KIAogPT09IElubGluZSBzdHlsZSBmb3IgYm9keSA9PT0KLVsnZm9udC13ZWlnaHQn
Oidub3JtYWwnXSBAWzAtMjBdIGFjdGl2ZQotWyd3aWR0aCc6Jzg1JSddIEBbMjEtMzJdIGFjdGl2
ZQotWydiYWNrZ3JvdW5kLWltYWdlJzondXJsKGJhci5wbmcpJ10gQFszMy02M10gYWN0aXZlCitb
J2ZvbnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswOjAtMDoyMF0gYWN0aXZlCitbJ3dpZHRoJzonODUl
J10gQFswOjIxLTA6MzJdIGFjdGl2ZQorWydiYWNrZ3JvdW5kLWltYWdlJzondXJsKGJhci5wbmcp
J10gQFswOjMzLTA6NjNdIGFjdGl2ZQogPT09IEJPRFkgd2l0aCBmb3JjZWQgOmhvdmVyID09PQog
Ym9keTogW3VzZXItYWdlbnRdIHsKICAgICBbJ2Rpc3BsYXknOidibG9jayddIEBbdW5kZWZpbmVk
LXVuZGVmaW5lZF0gc3R5bGUKQEAgLTg1LDI5ICs4NSwyOSBAQCBib2R5OiBbdXNlci1hZ2VudF0g
ewogICAgIFsnbWFyZ2luLWJvdHRvbSc6JzhweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKICAgICBbJ21hcmdpbi1sZWZ0JzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHls
ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEt
c2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbNS00OF0gYWN0aXZlCitib2R5OiBbcmVn
dWxhciwgMjA6MC0yMDo0XSB7CisgICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVl
bi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQogfQotYm9keTog
W3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxl
c2hlZXQnIG5vbi1wYXJzZWRdIEBbNS00OF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjA6MC0y
MDo0XSB7CisgICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0
JyBub24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsK
LSAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzUtMjFdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIs
IDk6MC05OjRdIHsKKyAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzEwOjQtMTA6MjBdIGFjdGl2
ZQogICAgIFsnZm9vJzonYmFyICEKIAotICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3Bl
cnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2Vk
XSBAWzI2LTEwNF0gYWN0aXZlCi0gICAgWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWlt
cG9ydGFudF0gQFsxMDktMTMzXSBhY3RpdmUKLSAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicg
bm9uLXBhcnNlZF0gQFsxMzgtMTU5XSBhY3RpdmUKLSAgICBbJ2ltcG9ydGFudCc6JyFpbXBvcnRh
bnQnIG5vbi1wYXJzZWRdIEBbMTY0LTE4NV0gYWN0aXZlCi0gICAgWydjb2xvcic6J3llbGxvdydd
IEBbMTkwLTIwNF0gYWN0aXZlCi0gICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQg
LyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9ydGFudCBub24t
cGFyc2VkXSBAWzIwOS0yNzhdIGFjdGl2ZQorICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHBy
b3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFy
c2VkXSBAWzExOjQtMTM6NjZdIGFjdGl2ZQorICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50
JyBpcy1pbXBvcnRhbnRdIEBbMTQ6NC0xNDoyOF0gYWN0aXZlCisgICAgWydjb2xvcnonOiciIWlt
cG9ydGFudCInIG5vbi1wYXJzZWRdIEBbMTU6NC0xNToyNV0gYWN0aXZlCisgICAgWydpbXBvcnRh
bnQnOichaW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2OjQtMTY6MjVdIGFjdGl2ZQorICAgIFsn
Y29sb3InOid5ZWxsb3cnXSBAWzE3OjQtMTc6MThdIGFjdGl2ZQorICAgIFsnY29sb3InOiciYmFk
Y29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICov
JyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxODo0LTE4OjczXSBhY3RpdmUKIH0KLWJvZHku
bWFpbjE6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzEzLTI4XSBhY3Rp
dmUKLSAgICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJv
cGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjgtODFdIGFjdGl2ZQorYm9keS5tYWluMTogW3JlZ3Vs
YXIsIDIxOjI5LTIxOjY3XSB7CisgICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzIxOjgxLTIxOjk2
XSBhY3RpdmUKKyAgICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6
ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjE6OTYtMjE6MTQ5XSBhY3RpdmUKIH0KLWJv
ZHkubWFpbjI6IFtyZWd1bGFyXSB7Ci0gICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUg
IWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFp
bXBvcnRhbnQgKi8nIGlzLWltcG9ydGFudF0gQFswLTk1XSBhY3RpdmUKK2JvZHkubWFpbjI6IFty
ZWd1bGFyLCAyMzowLTIzOjEwXSB7CisgICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUg
IWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFp
bXBvcnRhbnQgKi8nIGlzLWltcG9ydGFudF0gQFsyMzoxMS0yMzoxMDZdIGFjdGl2ZQogICAgIFsn
YmFja2dyb3VuZC1pbWFnZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5k
ZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteCc6J2luaXRpYWwnIGlzLWlt
cG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1y
ZXBlYXQteSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQpAQCAtMTE5LDE2ICsxMTksMTYgQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKICAgICBb
J2JhY2tncm91bmQtY29sb3InOidncmVlbicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1pbXBvcnRh
bnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHkubWFpbnBhZ2U6IFtyZWd1
bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XSBhY3RpdmUKLSAg
ICBbJ2JhZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDgtMTMyXSBhY3Rp
dmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAzOjAtMzoxM10geworICAgIFsndGV4dC1kZWNv
cmF0aW9uJzonbm9uZSddIEBbNDo0LTQ6MjZdIGFjdGl2ZQorICAgIFsnYmFkcHJvcGVydHknOicx
YmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzU6NS01OjI5XSBhY3RpdmUKIH0KLWJvZHkubWFpbnBh
Z2U6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wMSc6J3ZhbDEnIG5vbi1wYXJzZWRdIEBbNS0xN10g
YWN0aXZlCi0gICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMjItMzRdIGFjdGl2ZQor
Ym9keS5tYWlucGFnZTogW3JlZ3VsYXIsIDg6MC04OjEzXSB7CisgICAgWydwcm9wMSc6J3ZhbDEn
IG5vbi1wYXJzZWRdIEBbOTo0LTk6MTZdIGFjdGl2ZQorICAgIFsncHJvcDInOid2YWwyJyBub24t
cGFyc2VkXSBAWzEwOjQtMTA6MTZdIGFjdGl2ZQogfQotYm9keTpob3ZlcjogW3JlZ3VsYXJdIHsK
LSAgICBbJ2NvbG9yJzonI0NERSddIEBbMy0xNV0gYWN0aXZlCitib2R5OmhvdmVyOiBbcmVndWxh
ciwgMTM6MC0xMzoxMF0geworICAgIFsnY29sb3InOicjQ0RFJ10gQFsxNDoyLTE0OjE0XSBhY3Rp
dmUKIH0KIAogPT09IEF0dHJpYnV0ZXMgc3R5bGUgZm9yIHRhYmxlID09PQpAQCAtMTc2LDI2ICsx
NzYsMjYgQEAgaDEgewogICAgIGhlaWdodCA6IDEwMCUgOyBib3JkZXI6IDFweCBzb2xpZDsgYm9y
ZGVyLXdpZHRoOiAycHg7IGJhY2tncm91bmQtY29sb3IgOiAjMzNGRjMzOyBnb29nbGVzOiBhYnJh
OyBmb286IC5iYXI7IC1tb3otZ29vZzogMSoqKjsgYm9yZGVyLXdpZHRoOiAwcHg7CiB9CiAnCi1o
dG1sOiBbcmVndWxhcl0gewotICAgIFsnZm9udC13ZWlnaHQnOic0MDAnXSBAWzUtMjJdIGFjdGl2
ZQoraHRtbDogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKKyAgICBbJ2ZvbnQtd2VpZ2h0JzonNDAwJ10g
QFs1OjQtNToyMV0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnZm9udC1zaXpl
JzonMTJweCddIEBbNS0yMV0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgOTowLTk6NF0geworICAg
IFsnZm9udC1zaXplJzonMTJweCddIEBbMTA6NC0xMDoyMF0gYWN0aXZlCiAgICAgWydmb28nOidi
YXIgIQogCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6
ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XSBhY3Rp
dmUKLSAgICBbJ2hlaWdodCc6JzEwMCUgIWltcG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzEwOS0x
MzNdIGFjdGl2ZQotICAgIFsnY29sb3J6JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzEz
OC0xNTldIGFjdGl2ZQotICAgIFsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0g
QFsxNjQtMTg1XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsxOTAtMjA0XSBhY3Rp
dmUKLSAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5
IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjA5LTI3
OF0gYWN0aXZlCisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29n
bml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTE6NC0xMzo2
Nl0gYWN0aXZlCisgICAgWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWltcG9ydGFudF0g
QFsxNDo0LTE0OjI4XSBhY3RpdmUKKyAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBh
cnNlZF0gQFsxNTo0LTE1OjI1XSBhY3RpdmUKKyAgICBbJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQn
IG5vbi1wYXJzZWRdIEBbMTY6NC0xNjoyNV0gYWN0aXZlCisgICAgWydjb2xvcic6J3llbGxvdydd
IEBbMTc6NC0xNzoxOF0gYWN0aXZlCisgICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRh
bnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9ydGFudCBu
b24tcGFyc2VkXSBAWzE4OjQtMTg6NzNdIGFjdGl2ZQogfQotYm9keS5tYWluMTogW3JlZ3VsYXJd
IHsKLSAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMTMtMjhdIGFjdGl2ZQotICAgIFsnem9vJzon
bW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBh
cnNlZF0gQFsyOC04MV0gYWN0aXZlCitib2R5Lm1haW4xOiBbcmVndWxhciwgMjE6MjktMjE6Njdd
IHsKKyAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMjE6ODEtMjE6OTZdIGFjdGl2ZQorICAgIFsn
em9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycg
bm9uLXBhcnNlZF0gQFsyMTo5Ni0yMToxNDldIGFjdGl2ZQogfQotYm9keS5tYWluMjogW3JlZ3Vs
YXJdIHsKLSAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1l
bnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZlcnkgIWltcG9ydGFudCAqLycgaXMt
aW1wb3J0YW50XSBAWzAtOTVdIGFjdGl2ZQorYm9keS5tYWluMjogW3JlZ3VsYXIsIDIzOjAtMjM6
MTBdIHsKKyAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1l
bnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZlcnkgIWltcG9ydGFudCAqLycgaXMt
aW1wb3J0YW50XSBAWzIzOjExLTIzOjEwNl0gYWN0aXZlCiAgICAgWydiYWNrZ3JvdW5kLWltYWdl
JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAg
ICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlh
bCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCkBAIC0yMDcsMTgg
KzIwNywxOCBAQCBib2R5Lm1haW4yOiBbcmVndWxhcl0gewogICAgIFsnYmFja2dyb3VuZC1jb2xv
cic6J2dyZWVuJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAg
ICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQogfQotYm9keTo6YWZ0ZXI6IFtyZWd1bGFyXSB7Ci0gICAgWydjb250
ZW50JzonIkFmdGVyIGJvZHkiJ10gQFs1LTI3XSBhY3RpdmUKLX0KLWgxOiBbcmVndWxhcl0gewot
ICAgIFsnaGVpZ2h0JzonMTAwJSddIEBbNS0yMF0gYWN0aXZlCi0gICAgWydib3JkZXInOicxcHgg
c29saWQnXSBAWzIxLTM5XSBhY3RpdmUKLSAgICBbJ2JvcmRlci13aWR0aCc6JzJweCddIEBbNDAt
NThdIGluYWN0aXZlCi0gICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonIzMzRkYzMyddIEBbNTktODZd
IGFjdGl2ZQotICAgIFsnZ29vZ2xlcyc6J2FicmEnIG5vbi1wYXJzZWRdIEBbODctMTAxXSBhY3Rp
dmUKLSAgICBbJ2Zvbyc6Jy5iYXInIG5vbi1wYXJzZWRdIEBbMTAyLTExMl0gYWN0aXZlCi0gICAg
WyctbW96LWdvb2cnOicxKioqJyBub24tcGFyc2VkXSBAWzExMy0xMjldIGFjdGl2ZQotICAgIFsn
Ym9yZGVyLXdpZHRoJzonMHB4J10gQFsxMzAtMTQ4XSBhY3RpdmUKK2JvZHk6OmFmdGVyOiBbcmVn
dWxhciwgMjY6MC0yNjoxMV0geworICAgIFsnY29udGVudCc6JyJBZnRlciBib2R5IiddIEBbMjc6
NC0yNzoyNl0gYWN0aXZlCit9CitoMTogW3JlZ3VsYXIsIDMwOjAtMzA6Ml0geworICAgIFsnaGVp
Z2h0JzonMTAwJSddIEBbMzE6NC0zMToxOV0gYWN0aXZlCisgICAgWydib3JkZXInOicxcHggc29s
aWQnXSBAWzMxOjIwLTMxOjM4XSBhY3RpdmUKKyAgICBbJ2JvcmRlci13aWR0aCc6JzJweCddIEBb
MzE6MzktMzE6NTddIGluYWN0aXZlCisgICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonIzMzRkYzMydd
IEBbMzE6NTgtMzE6ODVdIGFjdGl2ZQorICAgIFsnZ29vZ2xlcyc6J2FicmEnIG5vbi1wYXJzZWRd
IEBbMzE6ODYtMzE6MTAwXSBhY3RpdmUKKyAgICBbJ2Zvbyc6Jy5iYXInIG5vbi1wYXJzZWRdIEBb
MzE6MTAxLTMxOjExMV0gYWN0aXZlCisgICAgWyctbW96LWdvb2cnOicxKioqJyBub24tcGFyc2Vk
XSBAWzMxOjExMi0zMToxMjhdIGFjdGl2ZQorICAgIFsnYm9yZGVyLXdpZHRoJzonMHB4J10gQFsz
MToxMjktMzE6MTQ3XSBhY3RpdmUKICAgICBbJ2JvcmRlci10b3Atc3R5bGUnOidzb2xpZCddIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JvcmRlci1yaWdodC1zdHlsZSc6J3Nv
bGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYm9yZGVyLWJvdHRvbS1z
dHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAtMjYwLDEwICsy
NjAsMTAgQEAgYm9keSB7CiAKIH0KICcKLSNhYnNlbnQtaWQ6IFtyZWd1bGFyXSB7CisjYWJzZW50
LWlkOiBbcmVndWxhciwgMTA6MC0xMDoxMF0gewogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBb
J3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRd
IEBbNS00OF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjA6MC0yMDo0XSB7CisgICAgWydwcm9w
ZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIx
OjQtMjE6NDddIGFjdGl2ZQogfQogCiBTdHlsZVNoZWV0OiAnQGltcG9ydCB1cmwoc3R5bGVzLW5l
dy1BUEktMS5jc3MpOwpAQCAtMjkyLDEwICsyOTIsMTAgQEAgYm9keSB7CiAKIH0KICcKLSNhYnNl
bnQtaWQ6IFtyZWd1bGFyXSB7CisjYWJzZW50LWlkOiBbcmVndWxhciwgMTA6MC0xMDoxMF0gewog
fQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2Ny
ZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbNS00OF0gYWN0aXZlCitib2R5OiBbcmVndWxh
ciwgMjA6MC0yMDo0XSB7CisgICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1z
dHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQogfQogCiBTdHlsZVNo
ZWV0OiAnCkBAIC0zMTUsMzggKzMxNSwzOCBAQCBib2R5OmhvdmVyIHsKICAgY29sb3I6ICNDREU7
CiB9CiAnCi1ib2R5Lm1haW5wYWdlOiBbcmVndWxhcl0gewotICAgIFsndGV4dC1kZWNvcmF0aW9u
Jzonbm9uZSddIEBbNS0yN10gYWN0aXZlCi0gICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEn
IG5vbi1wYXJzZWRdIEBbMTA4LTEzMl0gYWN0aXZlCitib2R5Lm1haW5wYWdlOiBbcmVndWxhciwg
MzowLTM6MTNdIHsKKyAgICBbJ3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzQ6NC00OjI2XSBh
Y3RpdmUKKyAgICBbJ2JhZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFs1OjUt
NToyOV0gYWN0aXZlCiB9Ci1ib2R5Lm1haW5wYWdlOiBbcmVndWxhcl0gewotICAgIFsncHJvcDEn
Oid2YWwxJyBub24tcGFyc2VkXSBAWzUtMTddIGFjdGl2ZQotICAgIFsncHJvcDInOid2YWwyJyBu
b24tcGFyc2VkXSBAWzIyLTM0XSBhY3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCA4OjAt
ODoxM10geworICAgIFsncHJvcDEnOid2YWwxJyBub24tcGFyc2VkXSBAWzk6NC05OjE2XSBhY3Rp
dmUKKyAgICBbJ3Byb3AyJzondmFsMicgbm9uLXBhcnNlZF0gQFsxMDo0LTEwOjE2XSBhY3RpdmUK
IH0KLWJvZHk6aG92ZXI6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6JyNDREUnXSBAWzMtMTVd
IGFjdGl2ZQorYm9keTpob3ZlcjogW3JlZ3VsYXIsIDEzOjAtMTM6MTBdIHsKKyAgICBbJ2NvbG9y
JzonI0NERSddIEBbMTQ6Mi0xNDoxNF0gYWN0aXZlCiB9CiAKID09PSBMYXN0IHN0eWxlc2hlZXQg
cGF0Y2hlZCA9PT0KIAogU3R5bGVTaGVldDogJ2JvZHkubWFpbnBhZ2UgeyAgICB0ZXh0LWRlY29y
YXRpb246IHN0cmlrZXRocm91Z2g7ICAgIGJhZHByb3BlcnR5OiAyYmFkdmFsdWUyO31ib2R5IHsg
ICAgdGV4dC1hbGlnbjoganVzdGlmeTt9JwotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJdIHsKLSAg
ICBbJ3RleHQtZGVjb3JhdGlvbic6J3N0cmlrZXRocm91Z2gnIG5vbi1wYXJzZWRdIEBbNC0zNV0g
YWN0aXZlCi0gICAgWydiYWRwcm9wZXJ0eSc6JzJiYWR2YWx1ZTInIG5vbi1wYXJzZWRdIEBbMzkt
NjNdIGFjdGl2ZQorYm9keS5tYWlucGFnZTogW3JlZ3VsYXIsIDA6MC0wOjEzXSB7CisgICAgWyd0
ZXh0LWRlY29yYXRpb24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2VkXSBAWzA6MTktMDo1MF0g
YWN0aXZlCisgICAgWydiYWRwcm9wZXJ0eSc6JzJiYWR2YWx1ZTInIG5vbi1wYXJzZWRdIEBbMDo1
NC0wOjc4XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWFsaWduJzon
anVzdGlmeSddIEBbNC0yNF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMDo3OS0wOjgzXSB7Cisg
ICAgWyd0ZXh0LWFsaWduJzonanVzdGlmeSddIEBbMDo4OS0wOjEwOV0gYWN0aXZlCiB9CiAKID09
PSBBZnRlciBzZWxlY3RvciBzZXQgPT09CiAKIFN0eWxlU2hlZXQ6ICdodG1sICosIGJvZHlbZm9v
PSJiYXIiXSB7ICAgIHRleHQtZGVjb3JhdGlvbjogc3RyaWtldGhyb3VnaDsgICAgYmFkcHJvcGVy
dHk6IDJiYWR2YWx1ZTI7fWJvZHkgeyAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O30nCi1odG1sICos
IGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXJdIHsKLSAgICBbJ3RleHQtZGVjb3JhdGlvbic6J3N0
cmlrZXRocm91Z2gnIG5vbi1wYXJzZWRdIEBbNC0zNV0gYWN0aXZlCi0gICAgWydiYWRwcm9wZXJ0
eSc6JzJiYWR2YWx1ZTInIG5vbi1wYXJzZWRdIEBbMzktNjNdIGFjdGl2ZQoraHRtbCAqLCBib2R5
W2Zvbz0iYmFyIl06IFtyZWd1bGFyLCAwOjAtMDoyM10geworICAgIFsndGV4dC1kZWNvcmF0aW9u
Jzonc3RyaWtldGhyb3VnaCcgbm9uLXBhcnNlZF0gQFswOjI5LTA6NjBdIGFjdGl2ZQorICAgIFsn
YmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFyc2VkXSBAWzA6NjQtMDo4OF0gYWN0aXZl
CiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzQt
MjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDA6ODktMDo5M10geworICAgIFsndGV4dC1hbGln
bic6J2p1c3RpZnknXSBAWzA6OTktMDoxMTldIGFjdGl2ZQogfQogCiA9PT0gQWZ0ZXIgc3R5bGUg
dGV4dCBzZXQgPT09CkBAIC0zNTQsOSArMzU0LDkgQEAgYm9keTogW3JlZ3VsYXJdIHsKIFN0eWxl
U2hlZXQ6ICdodG1sICosIGJvZHlbZm9vPSJiYXIiXSB7CiAgICAgY29sb3I6IHdoaXRlOyBiYWNr
Z3JvdW5kOiBibGFjazsKIH1ib2R5IHsgICAgdGV4dC1hbGlnbjoganVzdGlmeTt9JwotaHRtbCAq
LCBib2R5W2Zvbz0iYmFyIl06IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J3doaXRlJ10gQFs1
LTE4XSBhY3RpdmUKLSAgICBbJ2JhY2tncm91bmQnOidibGFjayddIEBbMTktMzddIGFjdGl2ZQor
aHRtbCAqLCBib2R5W2Zvbz0iYmFyIl06IFtyZWd1bGFyLCAwOjAtMDoyM10geworICAgIFsnY29s
b3InOid3aGl0ZSddIEBbMTo0LTE6MTddIGFjdGl2ZQorICAgIFsnYmFja2dyb3VuZCc6J2JsYWNr
J10gQFsxOjE4LTE6MzZdIGFjdGl2ZQogICAgIFsnYmFja2dyb3VuZC1pbWFnZSc6J2luaXRpYWwn
XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14
JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91
bmQtcmVwZWF0LXknOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAt
MzY4LDggKzM2OCw4IEBAIGh0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhcl0gewogICAg
IFsnYmFja2dyb3VuZC1jb2xvcic6J2JsYWNrJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHls
ZQogICAgIFsnYmFja2dyb3VuZC1zaXplJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWFsaWduJzonanVzdGlm
eSddIEBbNC0yNF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjoxLTI6NV0geworICAgIFsndGV4
dC1hbGlnbic6J2p1c3RpZnknXSBAWzI6MTEtMjozMV0gYWN0aXZlCiB9CiAKID09PSBNYXRjaGVk
IHJ1bGVzIGFmdGVyIHJ1bGUgYWRkZWQgPT09CkBAIC0zODAsMjYgKzM4MCwyNiBAQCBib2R5OiBb
dXNlci1hZ2VudF0gewogICAgIFsnbWFyZ2luLWJvdHRvbSc6JzhweCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKICAgICBbJ21hcmdpbi1sZWZ0JzonOHB4J10gQFt1bmRlZmluZWQtdW5k
ZWZpbmVkXSBzdHlsZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1w
b3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbNS00OF0gYWN0aXZl
Citib2R5OiBbcmVndWxhciwgMjA6MC0yMDo0XSB7CisgICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVk
LW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2
ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEt
c2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbNS00OF0gYWN0aXZlCitib2R5OiBbcmVn
dWxhciwgMjA6MC0yMDo0XSB7CisgICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVl
bi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQogfQotYm9keTog
W3JlZ3VsYXJdIHsKLSAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzUtMjFdIGFjdGl2ZQorYm9k
eTogW3JlZ3VsYXIsIDk6MC05OjRdIHsKKyAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzEwOjQt
MTA6MjBdIGFjdGl2ZQogICAgIFsnZm9vJzonYmFyICEKIAotICAgIGltcG9ydGFudCAvKiAhaW1w
b3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFu
dCBub24tcGFyc2VkXSBAWzI2LTEwNF0gYWN0aXZlCi0gICAgWydoZWlnaHQnOicxMDAlICFpbXBv
cnRhbnQnIGlzLWltcG9ydGFudF0gQFsxMDktMTMzXSBhY3RpdmUKLSAgICBbJ2NvbG9yeic6JyIh
aW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XSBhY3RpdmUKLSAgICBbJ2ltcG9ydGFu
dCc6JyFpbXBvcnRhbnQnIG5vbi1wYXJzZWRdIEBbMTY0LTE4NV0gYWN0aXZlCi0gICAgWydjb2xv
cic6J3llbGxvdyddIEBbMTkwLTIwNF0gYWN0aXZlCi0gICAgWydjb2xvcic6JyJiYWRjb2xvciIg
ISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWlt
cG9ydGFudCBub24tcGFyc2VkXSBAWzIwOS0yNzhdIGFjdGl2ZQorICAgIGltcG9ydGFudCAvKiAh
aW1wb3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9y
dGFudCBub24tcGFyc2VkXSBAWzExOjQtMTM6NjZdIGFjdGl2ZQorICAgIFsnaGVpZ2h0JzonMTAw
JSAhaW1wb3J0YW50JyBpcy1pbXBvcnRhbnRdIEBbMTQ6NC0xNDoyOF0gYWN0aXZlCisgICAgWydj
b2xvcnonOiciIWltcG9ydGFudCInIG5vbi1wYXJzZWRdIEBbMTU6NC0xNToyNV0gYWN0aXZlCisg
ICAgWydpbXBvcnRhbnQnOichaW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2OjQtMTY6MjVdIGFj
dGl2ZQorICAgIFsnY29sb3InOid5ZWxsb3cnXSBAWzE3OjQtMTc6MThdIGFjdGl2ZQorICAgIFsn
Y29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJh
bmdlIHZhbHVlICovJyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxODo0LTE4OjczXSBhY3Rp
dmUKIH0KLWh0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhcl0gewotICAgIFsnY29sb3In
Oid3aGl0ZSddIEBbNS0xOF0gYWN0aXZlCi0gICAgWydiYWNrZ3JvdW5kJzonYmxhY2snXSBAWzE5
LTM3XSBhY3RpdmUKK2h0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhciwgMDowLTA6MjNd
IHsKKyAgICBbJ2NvbG9yJzond2hpdGUnXSBAWzE6NC0xOjE3XSBhY3RpdmUKKyAgICBbJ2JhY2tn
cm91bmQnOidibGFjayddIEBbMToxOC0xOjM2XSBhY3RpdmUKICAgICBbJ2JhY2tncm91bmQtaW1h
Z2UnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dy
b3VuZC1yZXBlYXQteCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAg
ICAgWydiYWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKQEAgLTQxMSwxOCArNDExLDE4IEBAIGh0bWwgKiwgYm9keVtmb289ImJhciJdOiBb
cmVndWxhcl0gewogICAgIFsnYmFja2dyb3VuZC1jb2xvcic6J2JsYWNrJ10gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1zaXplJzonaW5pdGlhbCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0
LWFsaWduJzonanVzdGlmeSddIEBbNC0yNF0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjoxLTI6
NV0geworICAgIFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzI6MTEtMjozMV0gYWN0aXZlCiB9
Ci1ib2R5OiBbaW5zcGVjdG9yXSB7Ci0gICAgWydmb250LWZhbWlseSc6J3NlcmlmJ10gQFs1LTI0
XSBhY3RpdmUKK2JvZHk6IFtpbnNwZWN0b3IsIDA6MC0wOjRdIHsKKyAgICBbJ2ZvbnQtZmFtaWx5
Jzonc2VyaWYnXSBAWzE6NC0xOjIzXSBhY3RpdmUKIH0KLWJvZHkubWFpbjE6IFtyZWd1bGFyXSB7
Ci0gICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzEzLTI4XSBhY3RpdmUKLSAgICBbJ3pvbyc6J21v
byAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJz
ZWRdIEBbMjgtODFdIGFjdGl2ZQorYm9keS5tYWluMTogW3JlZ3VsYXIsIDIxOjI5LTIxOjY3XSB7
CisgICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzIxOjgxLTIxOjk2XSBhY3RpdmUKKyAgICBbJ3pv
byc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5v
bi1wYXJzZWRdIEBbMjE6OTYtMjE6MTQ5XSBhY3RpdmUKIH0KLWJvZHkubWFpbjI6IFtyZWd1bGFy
XSB7Ci0gICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50
ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nIGlzLWlt
cG9ydGFudF0gQFswLTk1XSBhY3RpdmUKK2JvZHkubWFpbjI6IFtyZWd1bGFyLCAyMzowLTIzOjEw
XSB7CisgICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50
ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nIGlzLWlt
cG9ydGFudF0gQFsyMzoxMS0yMzoxMDZdIGFjdGl2ZQogICAgIFsnYmFja2dyb3VuZC1pbWFnZSc6
J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAg
IFsnYmFja2dyb3VuZC1yZXBlYXQteCc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmlu
ZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteSc6J2luaXRpYWwn
IGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAtNDM3LDEzICs0
MzcsMTMgQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKIAogPT09IEFmdGVyIHByb3BlcnR5IG1h
bmlwdWxhdGlvbnMgPT09CiBbdGV4dD0naGVpZ2h0IDogMTAwJSA7J10gZGlzYWJsZWQKLVsnYm9y
ZGVyJzonMXB4IHNvbGlkJ10gQFsxLTE5XSBhY3RpdmUKLVsnYm9yZGVyLXdpZHRoJzonMnB4J10g
QFsyMC0zOF0gaW5hY3RpdmUKLVsnZ29vZ2xlcyc6J2FicmEnIG5vbi1wYXJzZWRdIEBbNDAtNTRd
IGFjdGl2ZQotWydmb28nOicuYmFyJyBub24tcGFyc2VkXSBAWzU1LTY1XSBhY3RpdmUKLVsnLW1v
ei1nb29nJzonMSoqKicgbm9uLXBhcnNlZF0gQFs2Ni04Ml0gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6
JzEycHgnXSBAWzg4LTEwNF0gYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzFweCddIEBbMTA5LTEy
N10gYWN0aXZlCitbJ2JvcmRlcic6JzFweCBzb2xpZCddIEBbMzA6NS0zMDoyM10gYWN0aXZlCitb
J2JvcmRlci13aWR0aCc6JzJweCddIEBbMzA6MjQtMzA6NDJdIGluYWN0aXZlCitbJ2dvb2dsZXMn
OidhYnJhJyBub24tcGFyc2VkXSBAWzMwOjQ0LTMwOjU4XSBhY3RpdmUKK1snZm9vJzonLmJhcicg
bm9uLXBhcnNlZF0gQFszMDo1OS0zMDo2OV0gYWN0aXZlCitbJy1tb3otZ29vZyc6JzEqKionIG5v
bi1wYXJzZWRdIEBbMzA6NzAtMzA6ODZdIGFjdGl2ZQorWydmb250LXNpemUnOicxMnB4J10gQFsz
MTo0LTMxOjIwXSBhY3RpdmUKK1snYm9yZGVyLXdpZHRoJzonMXB4J10gQFszMjo0LTMyOjIyXSBh
Y3RpdmUKIFt0ZXh0PSdmb250LXNpemU6IDE0cHg7J10gZGlzYWJsZWQKIFsnYm9yZGVyLXRvcC13
aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLXJpZ2h0
LXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAtNDYxLDE0ICs0
NjEsMTQgQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKIAogPT09IEFmdGVyIHByb3BlcnR5IGVu
YWJsZWQgPT09CiBbdGV4dD0naGVpZ2h0IDogMTAwJSA7J10gZGlzYWJsZWQKLVsnYm9yZGVyJzon
MXB4IHNvbGlkJ10gQFsxLTE5XSBhY3RpdmUKLVsnYm9yZGVyLXdpZHRoJzonMnB4J10gQFsyMC0z
OF0gaW5hY3RpdmUKLVsnZ29vZ2xlcyc6J2FicmEnIG5vbi1wYXJzZWRdIEBbNDAtNTRdIGFjdGl2
ZQotWydmb28nOicuYmFyJyBub24tcGFyc2VkXSBAWzU1LTY1XSBhY3RpdmUKLVsnLW1vei1nb29n
JzonMSoqKicgbm9uLXBhcnNlZF0gQFs2Ni04Ml0gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6JzEycHgn
XSBAWzg4LTEwNF0gaW5hY3RpdmUKLVsnYm9yZGVyLXdpZHRoJzonMXB4J10gQFsxMDktMTI3XSBh
Y3RpdmUKLVsnZm9udC1zaXplJzonMTRweCddIEBbMTMyLTE0OF0gYWN0aXZlCitbJ2JvcmRlcic6
JzFweCBzb2xpZCddIEBbMzA6NS0zMDoyM10gYWN0aXZlCitbJ2JvcmRlci13aWR0aCc6JzJweCdd
IEBbMzA6MjQtMzA6NDJdIGluYWN0aXZlCitbJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBA
WzMwOjQ0LTMwOjU4XSBhY3RpdmUKK1snZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFszMDo1OS0z
MDo2OV0gYWN0aXZlCitbJy1tb3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbMzA6NzAtMzA6
ODZdIGFjdGl2ZQorWydmb250LXNpemUnOicxMnB4J10gQFszMTo0LTMxOjIwXSBpbmFjdGl2ZQor
Wydib3JkZXItd2lkdGgnOicxcHgnXSBAWzMyOjQtMzI6MjJdIGFjdGl2ZQorWydmb250LXNpemUn
OicxNHB4J10gQFszMzo0LTMzOjIwXSBhY3RpdmUKIFsnYm9yZGVyLXRvcC13aWR0aCc6JzFweCdd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLXJpZ2h0LXdpZHRoJzonMXB4
J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogWydib3JkZXItYm90dG9tLXdpZHRoJzon
MXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0
ZWQudHh0CmluZGV4IDFlNTc5OTc3MTQ2NmIzMjQyYzA2YmY5MWYzMWI3ODUxNDQxY2JiOWMuLmQ3
NzI3MjgyZWFhMDY5OWYwNmEyMDkyNDhlYThiNGIyMDc0ZGEyYmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0
cy1leHBlY3RlZC50eHQKQEAgLTEsMjMgKzEsMjMgQEAKIFRlc3RzIHRoYXQgcHJvcGVyIGRhdGEg
YW5kIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHN0eWxl
IGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIAotYm9keTogWzAtNF0gWzYtMjY2XQotWydm
b250LXNpemUnOicxMnB4J10gQFs1LTIxXQorYm9keTogWzA6MC0wOjRdIFswOjYtOTowXQorWydm
b250LXNpemUnOicxMnB4J10gQFsxOjQtMToyMF0KIFsnZm9vJzonYmFyICEKIAotICAgIGltcG9y
dGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8n
ICFpbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyNi0xMDRdCi1bJ2hlaWdodCc6JzEwMCUgIWltcG9y
dGFudCcgIWltcG9ydGFudF0gQFsxMDktMTMzXQotWydjb2xvcnonOiciIWltcG9ydGFudCInIG5v
bi1wYXJzZWRdIEBbMTM4LTE1OV0KLVsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNl
ZF0gQFsxNjQtMTg1XQotWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBw
cm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nICFpbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsx
OTAtMjU5XQotYm9keS5tYWluMTogWzI5OC0zMzZdIFszMzctNDE4XQotWydjb2xvcic6JyNGMDBC
QUEnXSBAWzEzLTI4XQotWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25p
emVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzI4LTgxXQotYm9keS5tYWluMjogWzQzNC00
NDRdIFs0NDUtNTQwXQotWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBj
b21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8n
ICFpbXBvcnRhbnRdIEBbMC05NV0KLWJvZHkubWFpbnBhZ2U6IFsyLTE1XSBbMTctMTQ5XQotWyd0
ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XQotWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1
ZTEnIG5vbi1wYXJzZWRdIEBbMTA3LTEzMV0KLWVsZW1lbnQuc3R5bGU6IFswLTMxXQotWydmb250
LXdlaWdodCc6J25vcm1hbCddIEBbMC0yMF0KLVsnd2lkdGgnOic4MCUnXSBAWzIxLTMxXQorICAg
IGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNv
cmUgKi8nICFpbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyOjQtNDo2Nl0KK1snaGVpZ2h0JzonMTAw
JSAhaW1wb3J0YW50JyAhaW1wb3J0YW50XSBAWzU6NC01OjI4XQorWydjb2xvcnonOiciIWltcG9y
dGFudCInIG5vbi1wYXJzZWRdIEBbNjo0LTY6MjVdCitbJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQn
IG5vbi1wYXJzZWRdIEBbNzo0LTc6MjVdCitbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFu
dCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgIWltcG9ydGFudCBub24t
cGFyc2VkXSBAWzg6NC04OjczXQorYm9keS5tYWluMTogWzExOjI5LTExOjY3XSBbMTE6NjgtMTE6
MTQ5XQorWydjb2xvcic6JyNGMDBCQUEnXSBAWzExOjgxLTExOjk2XQorWyd6b28nOidtb28gLyog
bm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBA
WzExOjk2LTExOjE0OV0KK2JvZHkubWFpbjI6IFsxMzowLTEzOjEwXSBbMTM6MTEtMTM6MTA2XQor
WydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBv
cnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nICFpbXBvcnRhbnRdIEBb
MTM6MTEtMTM6MTA2XQorYm9keS5tYWlucGFnZTogWzI6MC0yOjEzXSBbMjoxNS01OjBdCitbJ3Rl
eHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzM6NC0zOjI2XQorWydiYWRwcm9wZXJ0eSc6JzFiYWR2
YWx1ZTEnIG5vbi1wYXJzZWRdIEBbNDo0LTQ6MjhdCitlbGVtZW50LnN0eWxlOiBbMDowLTA6MzFd
CitbJ2ZvbnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswOjAtMDoyMF0KK1snd2lkdGgnOic4MCUnXSBA
WzA6MjEtMDozMV0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggZWMwYjQzZTg1OWFjZTY4ZGFiM2U3Y2Q2
Y2Q2N2Q3Y2YxMGY4NDE5Mi4uMTk5NDNiNzJmZjc0YjI1ODc3OTMzM2Y2MDU3YjA1MmYyYjhlYTcy
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNl
LW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1z
b3VyY2Utb2Zmc2V0cy5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICAgICAgaWYgKHJ1bGVPclN0eWxlLm9yaWdpbiAhPT0gInJlZ3VsYXIiKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHN0eWxlID0gcnVsZU9yU3R5bGUuc3R5bGU7Ci0g
ICAgICAgICAgICBoZWFkZXIgPSBydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3QudGV4dCArICI6IFsi
ICsgKHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZSA/IHJ1bGVPclN0eWxlLnNlbGVjdG9y
TGlzdC5yYW5nZS5zdGFydCArICItIiArIHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZS5l
bmQgOiAiIikgICsgIl0iOworICAgICAgICAgICAgaGVhZGVyID0gcnVsZU9yU3R5bGUuc2VsZWN0
b3JMaXN0LnRleHQgKyAiOiAiICsgKHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZSA/IElu
c3BlY3RvclRlc3QucmFuZ2VUZXh0KHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZSkgOiAi
Iik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBzdHlsZSA9IHJ1bGVPclN0eWxlOwog
ICAgICAgICAgICAgaGVhZGVyID0gImVsZW1lbnQuc3R5bGU6IjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190729</attachid>
            <date>2013-02-28 07:57:32 -0800</date>
            <delta_ts>2013-03-01 02:24:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110732-20130228195344.patch</filename>
            <type>text/plain</type>
            <size>62977</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxNmYyZWE0MjlhMjFi
NzU1OTRkMjIzOWE3MGEzOTZlMjM2ZmQ1Ny4uMjI0OTQyMmVlMGU0ZjBiYmNlOWVmY2I2N2RlYzVi
MjEyZmFhMjdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAyLTI4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU2VsZWN0b3IncyByYXcgc3RhcnQgcG9zaXRpb24gaW4gaXRzIGxpbmUgaXMgY29uc2lk
ZXJlZCB0byBiZSAwIHdoZW4gY29tcHV0aW5nIFVJTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6c2l6ZXRFeHRyYWN0
b3IpOiBVdGlsaXR5IGZvciBiaW5hcnkgc2VhcmNoLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlYXJjaFV0aWxzOjp0ZXh0UG9zaXRpb25Gcm9tT2Zmc2V0KTogQ29udmVydHMgYWJzb2x1dGUg
cmF3IHRleHQgb2Zmc2V0IGludG8gbGluZTpjb2x1bW4uCisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VhcmNoVXRpbHM6OmdldFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5TGluZXMpOiBSZWZh
Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6bGluZUVuZGluZ3Mp
OiBGYWN0b3JlZCBvdXQgb2YgZ2V0UmVndWxhckV4cHJlc3Npb25NYXRjaGVzQnlMaW5lcy4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6YnVpbGRPYmplY3RGb3JTZWFyY2hN
YXRjaCk6IERyaXZlLWJ5OiBwYXNzIFN0cmluZyBieSByZWZlcmVuY2UuCisgICAgICAgICogaW5z
cGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3IuanNvbjogVXNlIGxpbmU6Y29sdW1uIGZvciBTb3VyY2VSYW5nZSBib3VuZGFyaWVzIHJhdGhl
ciB0aGFuIHJhdyBvZmZzZXRzLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcDoKKyAgICAgICAgKFBhcnNlZFN0eWxlU2hlZXQ6OnRleHQpOiBBU1NFUlQobV9oYXNU
ZXh0KS4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0
eWxlKTogU3VwcGx5IHRoZSBsaW5lRW5kaW5ncyBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkU291cmNlUmFuZ2VPYmplY3QpOiBGb2xsb3cgdGhlIHByb3RvY29sIGNoYW5nZS4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQpOiBSZWZhY3Rv
ci4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjp0b2dnbGVQcm9wZXJ0eSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnN0eWxlVGV4dCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnBvcHVsYXRlQWxsUHJvcGVydGll
cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFBy
b3BlcnRpZXMpOiBDb252ZXJ0IHJlbGF0aXZlIHByb3BlcnR5IHJhbmdlIG9mZnNldHMgaW50byBh
YnNvbHV0ZSBvbmVzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OmV4dHJhY3RT
b3VyY2VEYXRhKTogRmFjdG9yZWQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5
bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVycyk6IFN1cHBseSB0aGUgbGluZUVuZGlu
Z3MgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWls
ZE9iamVjdEZvclNlbGVjdG9yTGlzdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yU3R5bGVTaGVldDo6bGluZUVuZGluZ3MpOiBDb21wdXRlIGxpbmUgZW5kaW5ncyBmb3Igb3Jk
aW5hcnkgc3R5bGVzaGVldHMuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0
Rm9ySW5saW5lU3R5bGU6OmxpbmVFbmRpbmdzKTogRGl0dG8gZm9yIGJvZ3VzIGlubGluZSBzdHls
ZSBzdHlsZXNoZWV0cy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczogUmVtb3ZlZCB0
aGUgYnl0ZSBjb3VudGluZyBmb3IgdW51c2VkIENTUy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZSk6
IFNldCBzZWxlY3RvciByYXdMb2NhdGlvbiBiYXNlZCBvbiB0aGUgc2VsZWN0b3JMaXN0IHJhbmdl
IG9yIHNvdXJjZUxpbmUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUu
X3NldFJhd0xvY2F0aW9uKTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
QVNTU291cmNlTWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFw
cGluZy5wcm90b3R5cGUuX2JpbmRVSVNvdXJjZUNvZGUpOiBGaXggY2FsbCBvcmRlciB3aGVuIGJp
bmRpbmcgc2NzcyBzb3VyY2Vjb2Rlcy4KKwogMjAxMy0wMi0yOCAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdENGTmV0LmNwcCB3b24n
dCBjb21waWxlIGFmdGVyIHIxNDQyMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
bnRlbnRTZWFyY2hVdGlscy5jcHAKaW5kZXggYTNmODNjMmQ2ODRiNDg1ODk4MGQzMTBkMzQ1ZDMz
NjIxZjcwMzk4OC4uOGZkNGU3ZTJkMmRlYWNjNTA5YmQ3NjU4ODViNGE4YjE3MmZlMGQyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHAKQEAg
LTYzLDM4ICs2Myw2NSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKGNv
bnN0IFN0cmluZyYgdGV4dCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5l
IHNpemVfdCBzaXpldEV4dHJhY3Rvcihjb25zdCBzaXplX3QqIHZhbHVlKQoreworICAgIHJldHVy
biAqdmFsdWU7Cit9CisKK1RleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25Gcm9tT2Zmc2V0KHNpemVf
dCBvZmZzZXQsIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBsaW5lRW5kaW5ncykKK3sKKyAgICBjb25z
dCBzaXplX3QqIGZvdW5kTGluZUVuZGluZyA9IGFwcHJveGltYXRlQmluYXJ5U2VhcmNoPHNpemVf
dCwgc2l6ZV90PihsaW5lRW5kaW5ncywgbGluZUVuZGluZ3Muc2l6ZSgpLCBvZmZzZXQsIHNpemV0
RXh0cmFjdG9yKTsKKyAgICBzaXplX3QgbGluZUluZGV4ID0gZm91bmRMaW5lRW5kaW5nIC0gJmxp
bmVFbmRpbmdzLmF0KDApOworICAgIGlmIChvZmZzZXQgPiAqZm91bmRMaW5lRW5kaW5nKQorICAg
ICAgICArK2xpbmVJbmRleDsKKyAgICBzaXplX3QgbGluZVN0YXJ0T2Zmc2V0ID0gbGluZUluZGV4
ID4gMCA/IGxpbmVFbmRpbmdzLmF0KGxpbmVJbmRleCAtIDEpICsgMSA6IDA7CisgICAgc2l6ZV90
IGNvbHVtbiA9IG9mZnNldCAtIGxpbmVTdGFydE9mZnNldDsKKyAgICByZXR1cm4gVGV4dFBvc2l0
aW9uKE9yZGluYWxOdW1iZXI6OmZyb21aZXJvQmFzZWRJbnQobGluZUluZGV4KSwgT3JkaW5hbE51
bWJlcjo6ZnJvbVplcm9CYXNlZEludChjb2x1bW4pKTsKK30KKwogc3RhdGljIFZlY3RvcjxwYWly
PGludCwgU3RyaW5nPiA+IGdldFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5TGluZXMoY29uc3Qg
UmVndWxhckV4cHJlc3Npb24mIHJlZ2V4LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgVmVj
dG9yPHBhaXI8aW50LCBTdHJpbmc+ID4gcmVzdWx0OwogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICBP
d25QdHI8VmVjdG9yPHNpemVfdD4gPiBlbmRpbmdzKGxpbmVFbmRpbmdzKHRleHQpKTsKKyAgICBz
aXplX3Qgc2l6ZSA9IGVuZGluZ3MtPnNpemUoKTsKICAgICB1bnNpZ25lZCBzdGFydCA9IDA7Ci0g
ICAgd2hpbGUgKHN0YXJ0IDwgdGV4dC5sZW5ndGgoKSkgewotICAgICAgICBzaXplX3QgbGluZUVu
ZCA9IHRleHQuZmluZCgnXG4nLCBzdGFydCk7Ci0gICAgICAgIGlmIChsaW5lRW5kID09IG5vdEZv
dW5kKQotICAgICAgICAgICAgbGluZUVuZCA9IHRleHQubGVuZ3RoKCk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGxpbmVFbmQrKzsKLQorICAgIGZvciAoc2l6ZV90IGxpbmVOdW1iZXIgPSAw
OyBsaW5lTnVtYmVyIDwgc2l6ZTsgKytsaW5lTnVtYmVyKSB7CisgICAgICAgIHNpemVfdCBsaW5l
RW5kID0gZW5kaW5ncy0+YXQobGluZU51bWJlcik7CiAgICAgICAgIFN0cmluZyBsaW5lID0gdGV4
dC5zdWJzdHJpbmcoc3RhcnQsIGxpbmVFbmQgLSBzdGFydCk7Ci0gICAgICAgIGlmIChsaW5lLmVu
ZHNXaXRoKCJcclxuIikpCi0gICAgICAgICAgICBsaW5lID0gbGluZS5sZWZ0KGxpbmUubGVuZ3Ro
KCkgLSAyKTsKLSAgICAgICAgaWYgKGxpbmUuZW5kc1dpdGgoJ1xuJykpCisgICAgICAgIGlmIChs
aW5lLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgbGluZSA9IGxpbmUubGVmdChsaW5lLmxl
bmd0aCgpIC0gMSk7CiAKICAgICAgICAgaW50IG1hdGNoTGVuZ3RoOwogICAgICAgICBpZiAocmVn
ZXgubWF0Y2gobGluZSwgMCwgJm1hdGNoTGVuZ3RoKSAhPSAtMSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQocGFpcjxpbnQsIFN0cmluZz4obGluZU51bWJlciwgbGluZSkpOwogCi0gICAgICAg
IHN0YXJ0ID0gbGluZUVuZDsKLSAgICAgICAgbGluZU51bWJlcisrOworICAgICAgICBzdGFydCA9
IGxpbmVFbmQgKyAxOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+IGJ1aWxkT2JqZWN0Rm9yU2Vh
cmNoTWF0Y2goaW50IGxpbmVOdW1iZXIsIFN0cmluZyBsaW5lQ29udGVudCkKK1Bhc3NPd25QdHI8
VmVjdG9yPHNpemVfdD4gPiBsaW5lRW5kaW5ncyhjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
T3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gcmVzdWx0KGFkb3B0UHRyKG5ldyBWZWN0b3I8c2l6ZV90
PigpKSk7CisKKyAgICB1bnNpZ25lZCBzdGFydCA9IDA7CisgICAgd2hpbGUgKHN0YXJ0IDwgdGV4
dC5sZW5ndGgoKSkgeworICAgICAgICBzaXplX3QgbGluZUVuZCA9IHRleHQuZmluZCgnXG4nLCBz
dGFydCk7CisgICAgICAgIGlmIChsaW5lRW5kID09IG5vdEZvdW5kKQorICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgcmVzdWx0LT5hcHBlbmQobGluZUVuZCk7CisgICAgICAgIHN0YXJ0ID0g
bGluZUVuZCArIDE7CisgICAgfQorICAgIHJlc3VsdC0+YXBwZW5kKHRleHQubGVuZ3RoKCkpOwor
CisgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gYnVpbGRPYmplY3RGb3JTZWFyY2hNYXRjaChp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBsaW5lQ29udGVudCkKIHsKICAgICByZXR1cm4g
VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoOjpjcmVhdGUoKQogICAgICAgICAuc2V0TGlu
ZU51bWJlcihsaW5lTnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnRlbnRTZWFyY2hVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlscy5oCmluZGV4IDc5ZDkyNGE4ZTBmNzYzYjBjZTY4YWMxZTNlN2IxZGIzMmY0NjAw
ZmEuLjNjODc3M2U2NTQ0NTgwNGZhYzEyYTg0NTJkN2IxNWFiNWM2MGM0ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmgKQEAgLTMzLDYgKzMzLDcg
QEAKIAogI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw2ICs0Niw4
IEBAIG5hbWVzcGFjZSBDb250ZW50U2VhcmNoVXRpbHMgewogUmVndWxhckV4cHJlc3Npb24gY3Jl
YXRlU2VhcmNoUmVnZXgoY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBi
b29sIGlzUmVnZXgpOwogaW50IGNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKGNvbnN0IFJl
Z3VsYXJFeHByZXNzaW9uJiwgY29uc3QgU3RyaW5nJik7CiBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+ID4gc2VhcmNoSW5UZXh0QnlM
aW5lcyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wg
Y2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCBpc1JlZ2V4KTsKK1RleHRQb3NpdGlvbiB0ZXh0UG9z
aXRpb25Gcm9tT2Zmc2V0KHNpemVfdCBvZmZzZXQsIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBsaW5l
RW5kaW5ncyk7CitQYXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gbGluZUVuZGluZ3MoY29uc3Qg
U3RyaW5nJik7CiAKIFN0cmluZyBmaW5kU291cmNlVVJMKGNvbnN0IFN0cmluZyYgY29udGVudCk7
CiBTdHJpbmcgZmluZFNvdXJjZU1hcFVSTChjb25zdCBTdHJpbmcmIGNvbnRlbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDNlZDMxMTc0YzNkMGE2MTkwNmI2
MWU2NDg5MGRmYTVhNDU0MTg3NWEuLjMzN2Y5ZWVhMzdjMGNkNDdkZmQ4MDIzMWJjZTVmZWEzN2Mx
NzVhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTIyNjIs
OCArMjI2MiwxMCBAQAogICAgICAgICAgICAgICAgICJpZCI6ICJTb3VyY2VSYW5nZSIsCiAgICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydCIsICJ0eXBlIjogImlu
dGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnQgb2YgcmFuZ2UgKGluY2x1c2l2ZSkuIn0sCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kIiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICJFbmQgb2YgcmFuZ2UgKGV4Y2x1c2l2ZSkuIn0KKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzdGFydExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIlN0YXJ0IGxpbmUgb2YgcmFuZ2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInN0YXJ0Q29sdW1uIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydCBjb2x1bW4gb2YgcmFuZ2UgKGluY2x1c2l2ZSkuIiB9LAorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImVuZExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IkVuZCBsaW5lIG9mIHJhbmdlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVu
ZENvbHVtbiIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIGNvbHVtbiBv
ZiByYW5nZSAoZXhjbHVzaXZlKS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUZXh0IHJhbmdlIHdpdGhpbiBhIHJlc291cmNlLiIKICAgICAg
ICAgICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAKaW5kZXggZmJiNDU3NmNhYjkwNTkzMzM1NTRhZWNhMTQ1MjUxZmE0Y2M2MWJjYi4u
NjEzMzgzMTU1N2Y3ZjZkZWVjOWY4ZWVhMGVmMzZjNzFhNjRhNGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQu
aCIKICNpbmNsdWRlICJDU1NTdXBwb3J0c1J1bGUuaCIKKyNpbmNsdWRlICJDb250ZW50U2VhcmNo
VXRpbHMuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTYwLDYgKzYxLDcgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC03Myw3ICs3NSw3IEBAIHB1YmxpYzoK
ICAgICBQYXJzZWRTdHlsZVNoZWV0KCk7CiAKICAgICBXZWJDb3JlOjpDU1NTdHlsZVNoZWV0KiBj
c3NTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXJPdXRwdXQ7IH0KLSAgICBjb25z
dCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBjb25zdCBTdHJp
bmcmIHRleHQoKSBjb25zdCB7IEFTU0VSVChtX2hhc1RleHQpOyByZXR1cm4gbV90ZXh0OyB9CiAg
ICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgYm9vbCBoYXNUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNUZXh0OyB9CiAgICAgUnVsZVNvdXJjZURhdGFMaXN0KiBzb3Vy
Y2VEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEYXRhLmdldCgpOyB9CkBAIC0xNTAsMTEg
KzE1MiwxOCBAQCBlbnVtIE1lZGlhTGlzdFNvdXJjZSB7CiAgICAgTWVkaWFMaXN0U291cmNlSW1w
b3J0UnVsZQogfTsKIAotc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNl
UmFuZ2U+IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlKQor
c3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U291cmNlUmFuZ2U+IGJ1aWxkU291
cmNlUmFuZ2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlLCBWZWN0b3I8c2l6ZV90Piog
bGluZUVuZGluZ3MpCiB7CisgICAgaWYgKCFsaW5lRW5kaW5ncykKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgVGV4dFBvc2l0aW9uIHN0YXJ0ID0gQ29udGVudFNlYXJjaFV0aWxzOjp0ZXh0UG9zaXRp
b25Gcm9tT2Zmc2V0KHJhbmdlLnN0YXJ0LCAqbGluZUVuZGluZ3MpOworICAgIFRleHRQb3NpdGlv
biBlbmQgPSBDb250ZW50U2VhcmNoVXRpbHM6OnRleHRQb3NpdGlvbkZyb21PZmZzZXQocmFuZ2Uu
ZW5kLCAqbGluZUVuZGluZ3MpOworCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlNvdXJj
ZVJhbmdlPiByZXN1bHQgPSBUeXBlQnVpbGRlcjo6Q1NTOjpTb3VyY2VSYW5nZTo6Y3JlYXRlKCkK
LSAgICAgICAgLnNldFN0YXJ0KHJhbmdlLnN0YXJ0KQotICAgICAgICAuc2V0RW5kKHJhbmdlLmVu
ZCk7CisgICAgICAgIC5zZXRTdGFydExpbmUoc3RhcnQubV9saW5lLnplcm9CYXNlZEludCgpKQor
ICAgICAgICAuc2V0U3RhcnRDb2x1bW4oc3RhcnQubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkpCisg
ICAgICAgIC5zZXRFbmRMaW5lKGVuZC5tX2xpbmUuemVyb0Jhc2VkSW50KCkpCisgICAgICAgIC5z
ZXRFbmRDb2x1bW4oZW5kLm1fY29sdW1uLnplcm9CYXNlZEludCgpKTsKICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2UoKTsKIH0KIApAQCAtMzEwLDkgKzMxOSw5IEBAIFBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OkNTUzo6Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxl
KCkgY29uCiAgICAgcmVzdWx0LT5zZXRXaWR0aChtX3N0eWxlLT5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpKTsKICAgICByZXN1bHQtPnNldEhlaWdodChtX3N0eWxlLT5nZXRQcm9wZXJ0eVZhbHVl
KCJoZWlnaHQiKSk7CiAKLSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEg
PSBtX3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRh
Rm9yKG1fc3R5bGUuZ2V0KCkpIDogMDsKKyAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNv
dXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwogICAgIGlmIChzb3VyY2VEYXRhKQotICAg
ICAgICByZXN1bHQtPnNldFJhbmdlKGJ1aWxkU291cmNlUmFuZ2VPYmplY3Qoc291cmNlRGF0YS0+
cnVsZUJvZHlSYW5nZSkpOworICAgICAgICByZXN1bHQtPnNldFJhbmdlKGJ1aWxkU291cmNlUmFu
Z2VPYmplY3Qoc291cmNlRGF0YS0+cnVsZUJvZHlSYW5nZSwgbV9wYXJlbnRTdHlsZVNoZWV0LT5s
aW5lRW5kaW5ncygpLmdldCgpKSk7CiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0K
QEAgLTM3NCw3ICszODMsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQo
dW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJl
bnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgpKTsKKyAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwog
ICAgIGlmICghc291cmNlRGF0YSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTQwOSw3ICs0MTgsNyBAQCBib29sIEluc3BlY3RvclN0eWxl
Ojp0b2dnbGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCwgYm9vbCBkaXNhYmxlLCBFeGNlcHRpb25D
b2RlJgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgUmVmUHRyPENTU1J1bGVT
b3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0
YUZvcihtX3N0eWxlLmdldCgpKTsKKyAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJj
ZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwogICAgIGlmICghc291cmNlRGF0YSkgewogICAg
ICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ0NSw3
ICs0NTQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjp0b2dnbGVQcm9wZXJ0eSh1bnNpZ25lZCBp
bmRleCwgYm9vbCBkaXNhYmxlLCBFeGNlcHRpb25Db2RlJgogYm9vbCBJbnNwZWN0b3JTdHlsZTo6
c3R5bGVUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdAogewogICAgIC8vIFByZWNvbmRpdGlvbjog
bV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSBoYXMgYmVlbiBjYWxs
ZWQgc3VjY2Vzc2Z1bGx5LgotICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0
YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQoKSk7
CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJj
ZURhdGEoKTsKICAgICBpZiAoIXNvdXJjZURhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtNDY5LDcgKzQ3OCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnBvcHVsYXRlQWxsUHJvcGVy
dGllcyhWZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4qIHJlc3VsCiAgICAgaWYgKGRpc2Fi
bGVkSW5kZXggPCBkaXNhYmxlZExlbmd0aCkKICAgICAgICAgZGlzYWJsZWRQcm9wZXJ0eSA9IG1f
ZGlzYWJsZWRQcm9wZXJ0aWVzLmF0KGRpc2FibGVkSW5kZXgpOwogCi0gICAgUmVmUHRyPENTU1J1
bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gKG1fcGFyZW50U3R5bGVTaGVldCAmJiBtX3BhcmVu
dFN0eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKSA/IG1fcGFyZW50U3R5bGVTaGVl
dC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQoKSkgOiAwOworICAgIFJlZlB0cjxDU1NS
dWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgVmVj
dG9yPENTU1Byb3BlcnR5U291cmNlRGF0YT4qIHNvdXJjZVByb3BlcnR5RGF0YSA9IHNvdXJjZURh
dGEgPyAmKHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+cHJvcGVydHlEYXRhKSA6IDA7CiAg
ICAgaWYgKHNvdXJjZVByb3BlcnR5RGF0YSkgewogICAgICAgICBTdHJpbmcgc3R5bGVEZWNsYXJh
dGlvbjsKQEAgLTUxNiw2ICs1MjUsOSBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNT
U1N0eWxlPiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRoUHJvcGVydGllcygpIGNvbgogICAgIEhh
c2hTZXQ8U3RyaW5nPiBmb3VuZFNob3J0aGFuZHM7CiAgICAgU3RyaW5nIHByZXZpb3VzUHJpb3Jp
dHk7CiAgICAgU3RyaW5nIHByZXZpb3VzU3RhdHVzOworICAgIE93blB0cjxWZWN0b3I8c2l6ZV90
PiA+IGxpbmVFbmRpbmdzKG1fcGFyZW50U3R5bGVTaGVldCA/IG1fcGFyZW50U3R5bGVTaGVldC0+
bGluZUVuZGluZ3MoKSA6IFBhc3NPd25QdHI8VmVjdG9yPHNpemVfdD4gPigpKTsKKyAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwor
ICAgIHVuc2lnbmVkIHJ1bGVCb2R5UmFuZ2VTdGFydCA9IHNvdXJjZURhdGEgPyBzb3VyY2VEYXRh
LT5ydWxlQm9keVJhbmdlLnN0YXJ0IDogMDsKIAogICAgIGZvciAoVmVjdG9yPEluc3BlY3RvclN0
eWxlUHJvcGVydHk+OjppdGVyYXRvciBpdCA9IHByb3BlcnRpZXMuYmVnaW4oKSwgaXRFbmQgPSBw
cm9wZXJ0aWVzLmVuZCgpOyBpdCAhPSBpdEVuZDsgKytpdCkgewogICAgICAgICBjb25zdCBDU1NQ
cm9wZXJ0eVNvdXJjZURhdGEmIHByb3BlcnR5RW50cnkgPSBpdC0+c291cmNlRGF0YTsKQEAgLTU0
MCw4ICs1NTIsMTUgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5z
cGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMoKSBjb24KICAgICAgICAgICAgIHByb3Bl
cnR5LT5zZXRQcmlvcml0eSgiaW1wb3J0YW50Iik7CiAgICAgICAgIGlmICghaXQtPmRpc2FibGVk
KSB7CiAgICAgICAgICAgICBpZiAoaXQtPmhhc1NvdXJjZSkgeworICAgICAgICAgICAgICAgIEFT
U0VSVChzb3VyY2VEYXRhKTsKICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0SW1wbGljaXQo
ZmFsc2UpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRSYW5nZShidWlsZFNvdXJjZVJh
bmdlT2JqZWN0KHByb3BlcnR5RW50cnkucmFuZ2UpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGUg
cHJvcGVydHkgcmFuZ2UgaXMgcmVsYXRpdmUgdG8gdGhlIHN0eWxlIGJvZHkgc3RhcnQuCisgICAg
ICAgICAgICAgICAgLy8gU2hvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIGFuIGFic29sdXRlIHJhbmdl
IChyZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldCBzdGFydCkKKyAgICAgICAgICAgICAgICAvLyBm
b3IgdGhlIHByb3BlciBjb252ZXJzaW9uIGludG8gbGluZTpjb2x1bW4uCisgICAgICAgICAgICAg
ICAgU291cmNlUmFuZ2UgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlID0gcHJvcGVydHlFbnRyeS5yYW5n
ZTsKKyAgICAgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5UmFuZ2Uuc3RhcnQgKz0gcnVsZUJv
ZHlSYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgIGFic29sdXRlUHJvcGVydHlSYW5nZS5lbmQg
Kz0gcnVsZUJvZHlSYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRSYW5n
ZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KGFic29sdXRlUHJvcGVydHlSYW5nZSwgbGluZUVuZGlu
Z3MuZ2V0KCkpKTsKIAogICAgICAgICAgICAgICAgIC8vIFBhcnNlZCBwcm9wZXJ0eSBvdmVycmlk
ZXMgYW55IHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZS4gTm9uLXBhcnNlZCBwcm9wZXJ0eSBv
dmVycmlkZXMKICAgICAgICAgICAgICAgICAvLyBwcmV2aW91cyBub24tcGFyc2VkIHByb3BlcnR5
IHdpdGggdGhlIHNhbWUgbmFtZSAoaWYgYW55KS4KQEAgLTYwNiw2ICs2MjUsMTMgQEAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0
aFByb3BlcnRpZXMoKSBjb24KICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAorUGFz
c1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gSW5zcGVjdG9yU3R5bGU6OmV4dHJhY3RTb3VyY2VE
YXRhKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVldCB8fCAhbV9wYXJlbnRT
dHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5n
ZXQoKSk7Cit9CisKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OmFwcGx5U3R5bGVUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCkKIHsKICAgICByZXR1cm4gbV9wYXJlbnRTdHlsZVNoZWV0LT5zZXRTdHlsZVRl
eHQobV9zdHlsZS5nZXQoKSwgdGV4dCk7CkBAIC02NjksNyArNjk1LDcgQEAgTmV3TGluZUFuZFdo
aXRlc3BhY2UmIEluc3BlY3RvclN0eWxlOjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMo
KSBjb25zdAogICAgIGlmIChtX2Zvcm1hdEFjcXVpcmVkKQogICAgICAgICByZXR1cm4gbV9mb3Jt
YXQ7CiAKLSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSAobV9wYXJl
bnRTdHlsZVNoZWV0ICYmIG1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5
KCkpID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgp
KSA6IDA7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gZXh0cmFj
dFNvdXJjZURhdGEoKTsKICAgICBWZWN0b3I8Q1NTUHJvcGVydHlTb3VyY2VEYXRhPiogc291cmNl
UHJvcGVydHlEYXRhID0gc291cmNlRGF0YSA/ICYoc291cmNlRGF0YS0+c3R5bGVTb3VyY2VEYXRh
LT5wcm9wZXJ0eURhdGEpIDogMDsKICAgICBpbnQgcHJvcGVydHlDb3VudDsKICAgICBpZiAoIXNv
dXJjZVByb3BlcnR5RGF0YSB8fCAhKHByb3BlcnR5Q291bnQgPSBzb3VyY2VQcm9wZXJ0eURhdGEt
PnNpemUoKSkpIHsKQEAgLTEwMTAsNyArMTAzNiw3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6
OkNTUzo6U2VsZWN0b3JMaXN0PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclNl
CiAgICAgICAgIC5zZXRUZXh0KHNlbGVjdG9yVGV4dCkKICAgICAgICAgLnJlbGVhc2UoKTsKICAg
ICBpZiAoc291cmNlRGF0YSkKLSAgICAgICAgcmVzdWx0LT5zZXRSYW5nZShidWlsZFNvdXJjZVJh
bmdlT2JqZWN0KHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZSkpOworICAgICAgICByZXN1bHQt
PnNldFJhbmdlKGJ1aWxkU291cmNlUmFuZ2VPYmplY3Qoc291cmNlRGF0YS0+cnVsZUhlYWRlclJh
bmdlLCBsaW5lRW5kaW5ncygpLmdldCgpKSk7CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7
CiB9CiAKQEAgLTExNzIsNiArMTE5OCwxMyBAQCBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IElu
c3BlY3RvclN0eWxlU2hlZXQ6OnJ1bGVTb3VyY2VEYXRhRm9yKENTU1N0eWxlRGVjbGFyYQogICAg
IHJldHVybiBtX3BhcnNlZFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhQXQocnVsZUluZGV4QnlT
dHlsZShzdHlsZSkpOwogfQogCitQYXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gSW5zcGVjdG9y
U3R5bGVTaGVldDo6bGluZUVuZGluZ3MoKSBjb25zdAoreworICAgIGlmICghbV9wYXJzZWRTdHls
ZVNoZWV0LT5oYXNUZXh0KCkpCisgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxzaXpl
X3Q+ID4oKTsKKyAgICByZXR1cm4gQ29udGVudFNlYXJjaFV0aWxzOjpsaW5lRW5kaW5ncyhtX3Bh
cnNlZFN0eWxlU2hlZXQtPnRleHQoKSk7Cit9CisKIHVuc2lnbmVkIEluc3BlY3RvclN0eWxlU2hl
ZXQ6OnJ1bGVJbmRleEJ5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogcGFnZVN0eWxlKSBjb25z
dAogewogICAgIGVuc3VyZUZsYXRSdWxlcygpOwpAQCAtMTQzNCw2ICsxNDY3LDExIEBAIGJvb2wg
SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpzZXRTdHlsZVRleHQoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogc3R5bGUsCiAgICAgcmV0dXJuICFlYzsKIH0KIAorUGFzc093blB0cjxWZWN0
b3I8c2l6ZV90PiA+IEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6bGluZUVuZGlu
Z3MoKSBjb25zdAoreworICAgIHJldHVybiBDb250ZW50U2VhcmNoVXRpbHM6OmxpbmVFbmRpbmdz
KGVsZW1lbnRTdHlsZVRleHQoKSk7Cit9CisKIERvY3VtZW50KiBJbnNwZWN0b3JTdHlsZVNoZWV0
Rm9ySW5saW5lU3R5bGU6Om93bmVyRG9jdW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuaAppbmRleCA3Y2I3ZDQ2YWVhMGE0ZjEyM2VhZWFmMTYxZmQzZTBlYjY5Y2Qw
NTAwLi41ZTI2OGJlYTBjMGE0NTkzMGEzMWUxM2ZmNDc1N2I4NTNhNWY0Y2I2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKQEAgLTE1Miw2ICsx
NTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3R5bGVUZXh0KFN0cmluZyogcmVzdWx0KSBjb25z
dDsKICAgICBib29sIHBvcHVsYXRlQWxsUHJvcGVydGllcyhWZWN0b3I8SW5zcGVjdG9yU3R5bGVQ
cm9wZXJ0eT4qIHJlc3VsdCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6Q1NT
OjpDU1NTdHlsZT4gc3R5bGVXaXRoUHJvcGVydGllcygpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
Q1NTUnVsZVNvdXJjZURhdGE+IGV4dHJhY3RTb3VyY2VEYXRhKCkgY29uc3Q7CiAgICAgYm9vbCBh
cHBseVN0eWxlVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgc2hvcnRoYW5kVmFsdWUo
Y29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3Q7CiAgICAgU3RyaW5nIHNob3J0
aGFuZFByaW9yaXR5KGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0OwpAQCAt
MjIwLDYgKzIyMSw3IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEFsc28gYWNjZXNzZWQgYnkgZnJp
ZW5kIGNsYXNzIEluc3BlY3RvclN0eWxlLgogICAgIHZpcnR1YWwgYm9vbCBzZXRTdHlsZVRleHQo
Q1NTU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgUGFzc093
blB0cjxWZWN0b3I8c2l6ZV90PiA+IGxpbmVFbmRpbmdzKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPENTU1N0eWxlUnVsZT4gPiBDU1NTdHlsZVJ1bGVWZWN0
b3I7CkBAIC0yNzEsNiArMjczLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gQWxzbyBhY2Nlc3Nl
ZCBieSBmcmllbmQgY2xhc3MgSW5zcGVjdG9yU3R5bGUuCiAgICAgdmlydHVhbCBib29sIHNldFN0
eWxlVGV4dChDU1NTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCBQYXNzT3duUHRyPFZlY3RvcjxzaXplX3Q+ID4gbGluZUVuZGluZ3MoKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCmluZGV4
IDI3Yjg0ZGVkMzgzYjgyYzdiY2JkNWExZDE3NjIyOGEwMTU4NWY3NjAuLmZiNTY3NDQxZjU4MDFk
MTgyMDIzZjMwZDc5YmQ4OTk2NjUwZjE5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKQEAgLTM3MSwyMyArMzcxLDE1IEBAIFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogCiAgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0cy5sZW5ndGg7ICsraSkgewog
ICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGVTaGVldCA9IHN0eWxlU2hlZXRzW2ldOwotICAg
ICAgICAgICAgICAgICAgICB2YXIgc3R5bGVzaGVldFNpemUgPSAwOwotICAgICAgICAgICAgICAg
ICAgICB2YXIgdW51c2VkU3R5bGVzaGVldFNpemUgPSAwOwogICAgICAgICAgICAgICAgICAgICB2
YXIgdW51c2VkUnVsZXMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgY3VyUnVs
ZSA9IDA7IGN1clJ1bGUgPCBzdHlsZVNoZWV0LnJ1bGVzLmxlbmd0aDsgKytjdXJSdWxlKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgcnVsZSA9IHN0eWxlU2hlZXQucnVsZXNbY3VyUnVs
ZV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBFeGFjdCBjb21wdXRhdGlvbiB3aGVuZXZl
ciBzb3VyY2UgcmFuZ2VzIGFyZSBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgICAgICAgICB2
YXIgdGV4dExlbmd0aCA9IChydWxlLnNlbGVjdG9yUmFuZ2UgJiYgcnVsZS5zdHlsZS5yYW5nZSAm
JiBydWxlLnN0eWxlLnJhbmdlLmVuZCkgPyBydWxlLnN0eWxlLnJhbmdlLmVuZCAtIHJ1bGUuc2Vs
ZWN0b3JSYW5nZS5zdGFydCArIDEgOiAwOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXh0TGVuZ3RoICYmIHJ1bGUuc3R5bGUuY3NzVGV4dCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0TGVuZ3RoID0gcnVsZS5zdHlsZS5jc3NUZXh0Lmxlbmd0aCArIHJ1bGUuc2VsZWN0
b3JUZXh0Lmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlc2hlZXRTaXplICs9
IHRleHRMZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RlZFNlbGVjdG9y
c1tydWxlLnNlbGVjdG9yVGV4dF0gfHwgZm91bmRTZWxlY3RvcnNbcnVsZS5zZWxlY3RvclRleHRd
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgdW51c2VkU3R5bGVzaGVldFNpemUgKz0gdGV4dExlbmd0aDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHVudXNlZFJ1bGVzLnB1c2gocnVsZS5zZWxlY3RvclRleHQpOwogICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsU3R5bGVzaGVldFNpemUg
Kz0gc3R5bGVzaGVldFNpemU7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsVW51c2VkU3R5bGVz
aGVldFNpemUgKz0gdW51c2VkU3R5bGVzaGVldFNpemU7CisgICAgICAgICAgICAgICAgICAgIHRv
dGFsU3R5bGVzaGVldFNpemUgKz0gc3R5bGVTaGVldC5ydWxlcy5sZW5ndGg7CisgICAgICAgICAg
ICAgICAgICAgIHRvdGFsVW51c2VkU3R5bGVzaGVldFNpemUgKz0gdW51c2VkUnVsZXMubGVuZ3Ro
OwogCiAgICAgICAgICAgICAgICAgICAgIGlmICghdW51c2VkUnVsZXMubGVuZ3RoKQogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0zOTUsMTAgKzM4NywxMCBAQCBXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHN0eWxl
U2hlZXQuc291cmNlVVJMKTsKICAgICAgICAgICAgICAgICAgICAgdmFyIGlzSW5saW5lQmxvY2sg
PSByZXNvdXJjZSAmJiByZXNvdXJjZS5yZXF1ZXN0ICYmIHJlc291cmNlLnJlcXVlc3QudHlwZSA9
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKICAgICAgICAgICAgICAgICAg
ICAgdmFyIHVybCA9ICFpc0lubGluZUJsb2NrID8gV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3Vs
dC5saW5raWZ5RGlzcGxheU5hbWUoc3R5bGVTaGVldC5zb3VyY2VVUkwpIDogU3RyaW5nLnNwcmlu
dGYoIklubGluZSBibG9jayAjJWQiLCArK2lubGluZUJsb2NrT3JkaW5hbCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciBwY3RVbnVzZWQgPSBNYXRoLnJvdW5kKDEwMCAqIHVudXNlZFN0eWxlc2hl
ZXRTaXplIC8gc3R5bGVzaGVldFNpemUpOworICAgICAgICAgICAgICAgICAgICB2YXIgcGN0VW51
c2VkID0gTWF0aC5yb3VuZCgxMDAgKiB1bnVzZWRSdWxlcy5sZW5ndGggLyBzdHlsZVNoZWV0LnJ1
bGVzLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghc3VtbWFyeSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1bW1hcnkgPSByZXN1bHQuYWRkQ2hpbGQoIiIsIHRydWUpOwotICAg
ICAgICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdW1tYXJ5LmFkZEZvcm1hdHRlZCgiJXM6ICVz
ICglZCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuIiwgdXJsLCBOdW1iZXIuYnl0
ZXNUb1N0cmluZyh1bnVzZWRTdHlsZXNoZWV0U2l6ZSksIHBjdFVudXNlZCk7CisgICAgICAgICAg
ICAgICAgICAgIHZhciBlbnRyeSA9IHN1bW1hcnkuYWRkRm9ybWF0dGVkKCIlczogJWQlIGlzIG5v
dCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuIiwgdXJsLCBwY3RVbnVzZWQpOwogCiAgICAgICAg
ICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdW51c2VkUnVsZXMubGVuZ3RoOyArK2op
CiAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5hZGRTbmlwcGV0KHVudXNlZFJ1bGVzW2pd
KTsKQEAgLTQxMCw3ICs0MDIsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NS
dWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51
bGwpOwogCiAgICAgICAgICAgICAgICAgdmFyIHRvdGFsVW51c2VkUGVyY2VudCA9IE1hdGgucm91
bmQoMTAwICogdG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSAvIHRvdGFsU3R5bGVzaGVldFNpemUp
OwotICAgICAgICAgICAgICAgIHN1bW1hcnkudmFsdWUgPSBTdHJpbmcuc3ByaW50ZigiJXMgKCVk
JSkgb2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuIiwgTnVtYmVyLmJ5dGVz
VG9TdHJpbmcodG90YWxVbnVzZWRTdHlsZXNoZWV0U2l6ZSksIHRvdGFsVW51c2VkUGVyY2VudCk7
CisgICAgICAgICAgICAgICAgc3VtbWFyeS52YWx1ZSA9IFN0cmluZy5zcHJpbnRmKCIlcyBydWxl
cyAoJWQlKSBvZiBDU1Mgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB0b3RhbFVudXNl
ZFN0eWxlc2hlZXRTaXplLCB0b3RhbFVudXNlZFBlcmNlbnQpOwogCiAgICAgICAgICAgICAgICAg
Y2FsbGJhY2socmVzdWx0KTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCAyZGIzYzhmYTE2YWUw
YzNhYWIyZWYwMzM1ZmZiMGUwNWE1MjBkN2IwLi45MzcwYzQ1OTVkZmVkNTU2MWE1MWJhMDRmNTM1
NTk5NWYxNWZjYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC04NTQsMTMgKzg1NCwxMiBAQCBXZWJJbnNwZWN0b3Iu
Q1NTUnVsZSA9IGZ1bmN0aW9uKHBheWxvYWQsIG1hdGNoaW5nU2VsZWN0b3JzKQogICAgIHRoaXMu
c2VsZWN0b3JSYW5nZSA9IHBheWxvYWQuc2VsZWN0b3JMaXN0LnJhbmdlOwogICAgIHRoaXMuc291
cmNlTGluZSA9IHBheWxvYWQuc291cmNlTGluZTsKICAgICB0aGlzLnNvdXJjZVVSTCA9IHBheWxv
YWQuc291cmNlVVJMOwotICAgIGlmIChwYXlsb2FkLnNvdXJjZVVSTCkKLSAgICAgICAgdGhpcy5f
cmF3TG9jYXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uKHBheWxvYWQuc291cmNl
VVJMLCBwYXlsb2FkLnNvdXJjZUxpbmUpOwogICAgIHRoaXMub3JpZ2luID0gcGF5bG9hZC5vcmln
aW47CiAgICAgdGhpcy5zdHlsZSA9IFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBh
cnNlUGF5bG9hZChwYXlsb2FkLnN0eWxlKTsKICAgICB0aGlzLnN0eWxlLnBhcmVudFJ1bGUgPSB0
aGlzOwogICAgIGlmIChwYXlsb2FkLm1lZGlhKQogICAgICAgICB0aGlzLm1lZGlhID0gV2ViSW5z
cGVjdG9yLkNTU01lZGlhLnBhcnNlTWVkaWFBcnJheVBheWxvYWQocGF5bG9hZC5tZWRpYSk7Cisg
ICAgdGhpcy5fc2V0UmF3TG9jYXRpb24ocGF5bG9hZCk7CiB9CiAKIC8qKgpAQCAtODc0LDYgKzg3
MywyMCBAQCBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wYXJzZVBheWxvYWQgPSBmdW5jdGlvbihwYXls
b2FkLCBtYXRjaGluZ0luZGljZXMpCiB9CiAKIFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlw
ZSA9IHsKKyAgICBfc2V0UmF3TG9jYXRpb246IGZ1bmN0aW9uKHBheWxvYWQpCisgICAgeworICAg
ICAgICBpZiAoIXBheWxvYWQuc291cmNlVVJMKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBpZiAodGhpcy5zZWxlY3RvclJhbmdlKSB7CisgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwucmVzb3VyY2VGb3JVUkwocGF5bG9hZC5zb3Vy
Y2VVUkwpOworICAgICAgICAgICAgaWYgKHJlc291cmNlICYmIHJlc291cmNlLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQpIHsKKyAgICAgICAgICAgICAgICB0
aGlzLl9yYXdMb2NhdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTTG9jYXRpb24ocGF5bG9hZC5z
b3VyY2VVUkwsIHRoaXMuc2VsZWN0b3JSYW5nZS5zdGFydExpbmUsIHRoaXMuc2VsZWN0b3JSYW5n
ZS5zdGFydENvbHVtbik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHRoaXMuX3Jhd0xvY2F0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5D
U1NMb2NhdGlvbihwYXlsb2FkLnNvdXJjZVVSTCwgcGF5bG9hZC5zb3VyY2VMaW5lKTsKKyAgICB9
LAorCiAgICAgZ2V0IGlzVXNlckFnZW50KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLm9y
aWdpbiA9PT0gInVzZXItYWdlbnQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKaW5kZXggMjBkODU1OGU5ZjczNjZj
ZTc3MTg4ZmVmODYwNDA4ZmY2MjkzZmU5MS4uYzUxNmRjZjNjOWRmZmNjZmMzMDQxYTljMzc4NTJk
YzE4ZDY0NjE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TQVNTU291cmNlTWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzCkBAIC0yMjYsNiArMjI2LDcgQEAgV2ViSW5zcGVj
dG9yLlNBU1NTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfYmluZFVJ
U291cmNlQ29kZTogZnVuY3Rpb24ocmF3VVJMLCBzb3VyY2VNYXApCiAgICAgeworICAgICAgICB0
aGlzLl9jc3NNb2RlbC5zZXRTb3VyY2VNYXBwaW5nKHJhd1VSTCwgdGhpcyk7CiAgICAgICAgIHZh
ciBzb3VyY2VzID0gc291cmNlTWFwLnNvdXJjZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBzb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgdXJsID0gc291cmNl
c1tpXTsKQEAgLTIzMywxMiArMjM0LDEwIEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGlu
Zy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBJbnNwZWN0b3JG
cm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNseSh1cmwpOwogICAgICAgICAgICAg
ICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQ
cm92aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0LCBjb250ZW50LCAi
dGV4dC94LXNjc3MiKTsKICAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5f
bmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwodXJsLCBjb250ZW50UHJvdmlk
ZXIsIHRydWUpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5n
KHRoaXMpOwogICAgICAgICAgICAgICAgIHRoaXMuX2FkZENTU1VSTGZvclNBU1NVUkwocmF3VVJM
LCB1cmwpOworICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRo
aXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fY3NzTW9kZWwu
c2V0U291cmNlTWFwcGluZyhyYXdVUkwsIHRoaXMpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkZWI0NzRkOGZjMTc5YzU4ODk4Y2QyZmYzOWVlYjFjNzU4NTk2ZTg5Li4wZWE1MzAyMzYzYzgy
OWJkZjQ4M2ZjNGEwZWRhNjQwMDQ4MTc4OWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMt
MDItMjggIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBTZWxlY3RvcidzIHJhdyBzdGFydCBwb3NpdGlvbiBpbiBpdHMgbGlu
ZSBpcyBjb25zaWRlcmVkIHRvIGJlIDAgd2hlbiBjb21wdXRpbmcgVUlMb2NhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCB0ZXN0cyBo
YXZlIGJlZW4gcmViYXNlbGluZWQgdG8gZm9sbG93IHRoZSBuZXcgc291cmNlIHJhbmdlIHN0cnVj
dHVyZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6
CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QucmFuZ2VUZXh0
KTogRml4IHNvdXJjZSByYW5nZSBkdW1waW5nIGZvcm1hdC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
YXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXN0eWxlc2hl
ZXQtZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zZWxlY3Rvci1saW5lLmNzczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MubWFwOiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLnNjc3M6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGluZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGluZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRt
bDoKKwogMjAxMy0wMi0yOCAgVGFrYXNoaSBUb3lvc2hpbWEgIDx0b3lvc2hpbUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggNjFmNjZmOTM3MzA0
MjU2MDA4NjhkYzY2NjFlZjY3NTQzZjZiNzZkMi4uNDIyODc2N2UwNDIyZmRiMjU1ZWVjYjM5NThj
YTc1MzQxMjFkMjljYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzCkBAIC00NzEsNyArNDcxLDcgQEAgSW5zcGVjdG9yVGVzdC5yYW5n
ZVRleHQgPSBmdW5jdGlvbihyYW5nZSkKIHsKICAgICBpZiAoIXJhbmdlKQogICAgICAgICByZXR1
cm4gIlt1bmRlZmluZWQtdW5kZWZpbmVkXSI7Ci0gICAgcmV0dXJuICJbIiArIHJhbmdlLnN0YXJ0
ICsgIi0iICsgcmFuZ2UuZW5kICsgIl0iOworICAgIHJldHVybiAiWyIgKyByYW5nZS5zdGFydExp
bmUgKyAiOiIgKyByYW5nZS5zdGFydENvbHVtbiArICItIiArIHJhbmdlLmVuZExpbmUgKyAiOiIg
KyByYW5nZS5lbmRDb2x1bW4gKyAiXSI7CiB9CiAKIEluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRv
VGVzdCA9IGZ1bmN0aW9uKHRlc3RCb2R5KQpAQCAtNTM0LDEwICs1MzQsMTggQEAgSW5zcGVjdG9y
VGVzdC5kdW1wUnVsZU1hdGNoZXNBcnJheSA9IGZ1bmN0aW9uKG1hdGNoZXMsIGN1cnJlbnRJbmRl
bnQpCiAKIEluc3BlY3RvclRlc3QuZHVtcFJ1bGUgPSBmdW5jdGlvbihydWxlLCBjdXJyZW50SW5k
ZW50KQogeworICAgIGZ1bmN0aW9uIHNlbGVjdG9yUmFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYg
KCFydWxlLnNlbGVjdG9yTGlzdCB8fCAhcnVsZS5zZWxlY3Rvckxpc3QucmFuZ2UpCisgICAgICAg
ICAgICByZXR1cm4gIiI7CisgICAgICAgIHZhciByYW5nZSA9IHJ1bGUuc2VsZWN0b3JMaXN0LnJh
bmdlOworICAgICAgICByZXR1cm4gIiwgIiArIHJhbmdlLnN0YXJ0TGluZSArICI6IiArIHJhbmdl
LnN0YXJ0Q29sdW1uICsgIi0iICsgcmFuZ2UuZW5kTGluZSArICI6IiArIHJhbmdlLmVuZENvbHVt
bjsKKyAgICB9CisKICAgICBjdXJyZW50SW5kZW50ID0gY3VycmVudEluZGVudCB8fCAiIjsKIAog
ICAgIGlmICghcnVsZS50eXBlIHx8IHJ1bGUudHlwZSA9PT0gInN0eWxlIikgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjdXJyZW50SW5kZW50ICsgcnVsZS5zZWxlY3Rvckxpc3Qu
dGV4dCArICI6IFsiICsgcnVsZS5vcmlnaW4gKyAiXSB7Iik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyBydWxlLnNlbGVjdG9yTGlzdC50ZXh0ICsgIjog
WyIgKyBydWxlLm9yaWdpbiArIHNlbGVjdG9yUmFuZ2UoKSArICJdIHsiKTsKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU3R5bGUocnVsZS5zdHlsZSwgY3VycmVudEluZGVudCArIGluZGVudCk7
CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyAifSIpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRz
L2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDNm
MmNiNjc5NzRkMDQ0OWRiNWQxYTRkNTQwZTZhYjEwMTYyYmI2NmEuLmRmYjIyNTA3Mzc4YjBmYzM1
NTIwZGRiNDc2OTYxYjhmMTc0N2M4OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQu
dHh0CkBAIC0yMywxNiArMjMsMTYgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgIHNob3VsZCBiZSBt
b3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKICAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLmh0bWwKICAgICBSZW1vdmUgdW51c2VkIENTUyBydWxlcyAoNCkKLSAgICAgMjA54oCJQiAo
MTAwJSkgb2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCi0gICAgICBJbmxp
bmUgYmxvY2sgIzE6IDY54oCJQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFn
ZS4KKyAgICAgNCBydWxlcyAoMTAwJSkgb2YgQ1NTIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBh
Z2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzE6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJl
bnQgcGFnZS4KICAgICAgICAudW51c2VkCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAg
IDogNDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAg
OiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5
bGUKLSAgICAgIElubGluZSBibG9jayAjMjogNTTigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0
aGUgY3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJsb2NrICMyOiAxMDAlIGlzIG5vdCB1c2Vk
IGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnZpb2xhdGlvbgogICAgICAgIGF1ZGl0cy1z
dHlsZTEuY3NzCi0gICAgICA6IDQz4oCJQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJl
bnQgcGFnZS4KKyAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgog
ICAgICAgIC5zb21lLXN0eWxlCiAgICAgVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5z
dGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAoMSkKICAgICAgIGF1ZGl0cy1wYW5lbC1mdW5j
dGlvbmFsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVk
aXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3Rl
ZC50eHQKaW5kZXggZWZmYzJhMzJhYzJkODQzMjA3NzJiN2UzOWM3NzI5MzQyOGU4NjczMS4uMTlh
YTdiZmNjMzc0MjgyZDliYTc1YzU0OTk3Y2ZhYTU2OWVlMDdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTE5LDE1ICsxOSwxNSBAQCBQ
YWdlIHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFk
IGluIAogICAgICAgYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwuaHRtbAogICAgIFJl
bW92ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAxNDHigIlCICgxMDAlKSBvZiBDU1MgaXMg
bm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAjMTogMjni
gIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICA0IHJ1bGVz
ICgxMDAlKSBvZiBDU1Mgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElubGlu
ZSBibG9jayAjMTogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAg
IC51bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwotICAgICAgOiA0M+KAiUIgKDEwMCUp
IGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICA6IDEwMCUgaXMgbm90IHVz
ZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQotICAgICAgSW5saW5l
IGJsb2NrICMyOiAyNuKAiUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2Uu
CisgICAgICBJbmxpbmUgYmxvY2sgIzI6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQg
cGFnZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAg
IDogNDPigIlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAg
OiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5
bGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9nZXQtc2V0LXN0
eWxlc2hlZXQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiZTUyZDBkY2IyM2I4
Nzg5ODI4YWMxN2FjZTMyZmRiMmM2YjdkOTU3Li43N2I5NTg5NTg3MzYwNmI4MjU3MDRiMzcwNTlm
NWM4OGE2NzM5YjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dl
dC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtNDAs
NSArNDAsNSBAQCBoMTogW3VzZXItYWdlbnRdCiAKIHJ1bGUKIGgxOiBbcmVndWxhcl0KLVsnQ09M
T1InOidSZWQnXSBAWzEtMTJdIGFjdGl2ZQorWydDT0xPUic6J1JlZCddIEBbMDo1LTA6MTZdIGFj
dGl2ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXN0
eWxlc2hlZXQtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGMxN2MzNDQ4NjEz
NDFiNTVkMmY4MmM5M2Y1MTdhMDVmMzM2OTdkN2QuLmU1ZWNiNzVlNjNhMDA0MGM5NjJiMmQ2OWQz
YjkwYWJkMmY3MDdiYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0x
LDM2ICsxLDM2IEBACiBUZXN0cyB0aGF0IENTU1BhcnNlciBwcm9kdWNlcyBzb3VyY2UgZGF0YSBj
b25zaXN0ZW50IHdpdGggQ1NTT00gd2hlbiBwYXJzaW5nIGJyb2tlbiBzdHlsZXNoZWV0cy4gQnVn
IDk4MjQ2CiAKLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J2JsYWNrJ10gQFs1LTE4
XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAxOjAtMTo0XSB7CisgICAgWydjb2xvcic6J2JsYWNr
J10gQFsyOjQtMjoxN10gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnYmFja2dy
b3VuZC1jb2xvcic6J2Jyb2tlbi1kZWNsYXJhdGlvbicgbm9uLXBhcnNlZF0gQFs1LTQyXSBhY3Rp
dmUKK2JvZHk6IFtyZWd1bGFyLCAxMjowLTEyOjRdIHsKKyAgICBbJ2JhY2tncm91bmQtY29sb3In
Oidicm9rZW4tZGVjbGFyYXRpb24nIG5vbi1wYXJzZWRdIEBbMTM6NC0xMzo0MV0gYWN0aXZlCiB9
Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOidpbXBvcnQtZXJyb3InIG5vbi1wYXJz
ZWRdIEBbNS0yNV0gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMjowLTI6NF0geworICAgIFsnY29s
b3InOidpbXBvcnQtZXJyb3InIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjRdIGFjdGl2ZQogfQotYm9k
eTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonaW1wb3J0LWVycm9yLWJsb2NrJyBub24tcGFy
c2VkXSBAWzUtMzFdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2Nv
bG9yJzonaW1wb3J0LWVycm9yLWJsb2NrJyBub24tcGFyc2VkXSBAWzM6NC0zOjMwXSBhY3RpdmUK
IH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6J21lZGlhLWVtcHR5JyBub24tcGFy
c2VkXSBAWzUtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKKyAgICBbJ2Nv
bG9yJzonbWVkaWEtZW1wdHknIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjNdIGFjdGl2ZQogfQotYm9k
eTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzoncGFnZS1lcnJvcicgbm9uLXBhcnNlZF0gQFs1
LTIzXSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAyOjAtMjo0XSB7CisgICAgWydjb2xvcic6J3Bh
Z2UtZXJyb3InIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjJdIGFjdGl2ZQogfQotYm9keTogW3JlZ3Vs
YXJdIHsKLSAgICBbJ2NvbG9yJzoncGFnZS1ibG9jaycgbm9uLXBhcnNlZF0gQFs1LTIzXSBhY3Rp
dmUKK2JvZHk6IFtyZWd1bGFyLCAyOjAtMjo0XSB7CisgICAgWydjb2xvcic6J3BhZ2UtYmxvY2sn
IG5vbi1wYXJzZWRdIEBbMzo0LTM6MjJdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAg
ICBbJ2NvbG9yJzonYmVmb3JlLWltcG9ydCcgbm9uLXBhcnNlZF0gQFs1LTI2XSBhY3RpdmUKK2Jv
ZHk6IFtyZWd1bGFyLCAxOjAtMTo0XSB7CisgICAgWydjb2xvcic6J2JlZm9yZS1pbXBvcnQnIG5v
bi1wYXJzZWRdIEBbMjo0LTI6MjVdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBb
J2NvbG9yJzonYWZ0ZXItaW1wb3J0JyBub24tcGFyc2VkXSBAWzUtMjVdIGFjdGl2ZQorYm9keTog
W3JlZ3VsYXIsIDU6MC01OjRdIHsKKyAgICBbJ2NvbG9yJzonYWZ0ZXItaW1wb3J0JyBub24tcGFy
c2VkXSBAWzY6NC02OjI0XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xv
cic6J2FmdGVyLWludmFsaWQtZm9udC1mYWNlJyBub24tcGFyc2VkXSBAWzUtMzZdIGFjdGl2ZQor
Ym9keTogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKKyAgICBbJ2NvbG9yJzonYWZ0ZXItaW52YWxpZC1m
b250LWZhY2UnIG5vbi1wYXJzZWRdIEBbNTo0LTU6MzVdIGFjdGl2ZQogfQotYm9keTogW3JlZ3Vs
YXJdIHsKLSAgICBbJ2NvbG9yJzonYWZ0ZXItaW52YWxpZC1yZWdpb24nIG5vbi1wYXJzZWRdIEBb
NS0zM10gYWN0aXZlCitib2R5OiBbcmVndWxhciwgMzowLTM6NF0geworICAgIFsnY29sb3InOidh
ZnRlci1pbnZhbGlkLXJlZ2lvbicgbm9uLXBhcnNlZF0gQFs0OjQtNDozMl0gYWN0aXZlCiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVj
dG9yLWxpbmUuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2Vs
ZWN0b3ItbGluZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzExNWIyNTIyYjQ1OWZmMzI4NGIyZGM0Njc0Mzdi
YTlhODBkNDI2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzCkBAIC0wLDAgKzEsNiBAQAorI2NvbnRhaW5l
ciB7CisgIGJhY2tncm91bmQ6IHBhcGF5YXdoaXA7IH0KKyAgI2NvbnRhaW5lciAjaW5zcGVjdGVk
IHsKKyAgICBjb2xvcjogZ3JlZW47IH0KKworLypAIHNvdXJjZU1hcHBpbmdVUkw9c2VsZWN0b3It
bGluZS5jc3MubWFwICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3Mu
bWFwIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGlu
ZS5jc3MubWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZjI3NTg2ODY2ZTUwYjVhM2E5ZjIwZjc1NTk0NTZmNjZm
YWIyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jl
c291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAKQEAgLTAsMCArMSw2IEBACit7CisidmVyc2lv
biI6ICIzIiwKKyJtYXBwaW5ncyI6ICJBQUFBLFVBQVc7RUFDUCxVQUFVLEVBQUUsVUFBVTtFQUV0
QixxQkFBVztJQUNQLEtBQUssRUFBRSxLQUFLIiwKKyJzb3VyY2VzIjogWyJzZWxlY3Rvci1saW5l
LnNjc3MiXSwKKyJmaWxlIjogInNlbGVjdG9yLWxpbmUuY3NzIgorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5zY3NzIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5zY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjNzRkMzVkMjliMTY4YTk0NWI3ZjlhZjI4YTdhOTNiYjdlZjk5MGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9z
ZWxlY3Rvci1saW5lLnNjc3MKQEAgLTAsMCArMSw3IEBACisjY29udGFpbmVyIHsKKyAgICBiYWNr
Z3JvdW5kOiBwYXBheWF3aGlwOworCisgICAgI2luc3BlY3RlZCB7CisgICAgICAgIGNvbG9yOiBn
cmVlbjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3NlbGVjdG9yLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmFhYzdmY2VlZWI4OTJl
MDZmNmFlZmExNjkyZDY0OTIzNGI4ZDYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACitUZXN0cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29tcHV0ZWQgY29ycmVjdGx5IHJlZ2Fy
ZGxlc3Mgb2YgaXRzIHN0YXJ0IGNvbHVtbi4gQnVnIDExMDczMi4KKworVGV4dAorW2V4cGFuZGVk
XSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KK1tleHBhbmRlZF0gCisjY29udGFpbmVyICNpbnNwZWN0ZWQgIHsgKHNlbGVjdG9yLWxp
bmUuc2Nzczo0KQorY29sb3I6IGdyZWVuOworCitbZXhwYW5kZWRdIAorI2luc3BlY3RlZCAgeyAo
c2VsZWN0b3ItbGluZS5odG1sOjUpCisvLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IGdyZWVuOwor
CitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBi
bG9jazsKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1s
aW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ5N2YzMzg2ZGNhMTQ1Mjk0MWE4MWQyNjc1NmMwYzZiNDYy
ODQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGluZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisjaW5zcGVjdGVkCit7CisgIGNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcyIgLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2
YXIgc2Fzc01hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKFdlYklu
c3BlY3Rvci5jc3NNb2RlbCwgV2ViSW5zcGVjdG9yLndvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLm5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlT
b3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkLCBudWxsKTsKKyAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIHN0ZXAxKCk7CisKKyAgICBmdW5jdGlvbiB1
aVNvdXJjZUNvZGVBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBldmVudC5kYXRhOworICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybC5lbmRzV2l0aCgiLnNj
c3MiKSkKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdDaGFuZ2VkLCBzdGVwMiwgbnVs
bCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmZvckFsbFJlc291cmNlcyhjYWxsYmFjayk7CisgICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc291cmNlKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAocmVzb3VyY2UudXJsLmVuZHNXaXRoKCIuY3NzIikpIHsKKyAgICAgICAgICAgICAgICBzYXNz
TWFwcGluZy5fcmVzb3VyY2VBZGRlZChuZXcgV2ViSW5zcGVjdG9yLkV2ZW50KFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbCwgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50
VHlwZXMuUmVzb3VyY2VBZGRlZCwgcmVzb3VyY2UpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JT
dHlsZXMoImluc3BlY3RlZCIsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMygp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMo
dHJ1ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitU
ZXN0cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29tcHV0ZWQgY29ycmVjdGx5IHJlZ2FyZGxlc3Mg
b2YgaXRzIHN0YXJ0IGNvbHVtbi4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDczMiI+QnVnIDExMDczMjwvYT4uCis8L3A+CisKKzxkaXYgaWQ9ImNv
bnRhaW5lciI+CisgICAgPGRpdiBpZD0iaW5zcGVjdGVkIj5UZXh0PC9kaXY+Cis8L2Rpdj4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dAppbmRleCAzMTZhM2E3ZjRiYmY1NTMwMjk2
Y2YzYWEyNDc4ZTJjM2ZmNzA2ZjA5Li4zOWViMGY1ODc1MjRjMWRiZDc5ODFkOWM5NTNkMTU3MWM4
MjE0NDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1u
ZXctQVBJLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dApAQCAtMTQsMjkgKzE0LDI5IEBAIGJvZHk6IFt1c2Vy
LWFnZW50XSB7CiAgICAgWydtYXJnaW4tYm90dG9tJzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZp
bmVkXSBzdHlsZQogICAgIFsnbWFyZ2luLWxlZnQnOic4cHgnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRl
ZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFs1LTQ4XSBhY3RpdmUKK2Jv
ZHk6IFtyZWd1bGFyLCAyMDowLTIwOjRdIHsKKyAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVk
aWEtc2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0aXZlCiB9
Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3Jl
ZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFs1LTQ4XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFy
LCAyMDowLTIwOjRdIHsKKyAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0
eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0aXZlCiB9Ci1ib2R5OiBbcmVn
dWxhcl0gewotICAgIFsnZm9udC1zaXplJzonMTJweCddIEBbNS0yMV0gYWN0aXZlCitib2R5OiBb
cmVndWxhciwgOTowLTk6NF0geworICAgIFsnZm9udC1zaXplJzonMTJweCddIEBbMTA6NC0xMDoy
MF0gYWN0aXZlCiAgICAgWydmb28nOidiYXIgIQogCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRh
bnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5v
bi1wYXJzZWRdIEBbMjYtMTA0XSBhY3RpdmUKLSAgICBbJ2hlaWdodCc6JzEwMCUgIWltcG9ydGFu
dCcgaXMtaW1wb3J0YW50XSBAWzEwOS0xMzNdIGFjdGl2ZQotICAgIFsnY29sb3J6JzonIiFpbXBv
cnRhbnQiJyBub24tcGFyc2VkXSBAWzEzOC0xNTldIGFjdGl2ZQotICAgIFsnaW1wb3J0YW50Jzon
IWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjQtMTg1XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzon
eWVsbG93J10gQFsxOTAtMjA0XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGlt
cG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0
YW50IG5vbi1wYXJzZWRdIEBbMjA5LTI3OF0gYWN0aXZlCisgICAgaW1wb3J0YW50IC8qICFpbXBv
cnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50
IG5vbi1wYXJzZWRdIEBbMTE6NC0xMzo2Nl0gYWN0aXZlCisgICAgWydoZWlnaHQnOicxMDAlICFp
bXBvcnRhbnQnIGlzLWltcG9ydGFudF0gQFsxNDo0LTE0OjI4XSBhY3RpdmUKKyAgICBbJ2NvbG9y
eic6JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxNTo0LTE1OjI1XSBhY3RpdmUKKyAgICBb
J2ltcG9ydGFudCc6JyFpbXBvcnRhbnQnIG5vbi1wYXJzZWRdIEBbMTY6NC0xNjoyNV0gYWN0aXZl
CisgICAgWydjb2xvcic6J3llbGxvdyddIEBbMTc6NC0xNzoxOF0gYWN0aXZlCisgICAgWydjb2xv
cic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2Ug
dmFsdWUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzE4OjQtMTg6NzNdIGFjdGl2ZQog
fQotYm9keS5tYWluMTogW3JlZ3VsYXJdIHsKLSAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMTMt
MjhdIGFjdGl2ZQotICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2du
aXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyOC04MV0gYWN0aXZlCitib2R5Lm1haW4x
OiBbcmVndWxhciwgMjE6MjktMjE6NjddIHsKKyAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMjE6
ODEtMjE6OTZdIGFjdGl2ZQorICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVu
cmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyMTo5Ni0yMToxNDldIGFjdGl2
ZQogfQotYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKLSAgICBbJ2JhY2tncm91bmQnOidncmVlbiAv
KiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24s
IHZlcnkgIWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzAtOTVdIGFjdGl2ZQorYm9keS5t
YWluMjogW3JlZ3VsYXIsIDIzOjAtMjM6MTBdIHsKKyAgICBbJ2JhY2tncm91bmQnOidncmVlbiAv
KiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24s
IHZlcnkgIWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzIzOjExLTIzOjEwNl0gYWN0aXZl
CiAgICAgWydiYWNrZ3JvdW5kLWltYWdlJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14JzonaW5pdGlh
bCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNr
Z3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCkBAIC00OCwxOSArNDgsMTkgQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsK
ICAgICBbJ2JhY2tncm91bmQtY29sb3InOidncmVlbicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1p
bXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHkubWFpbnBhZ2U6
IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XSBhY3Rp
dmUKLSAgICBbJ2JhZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDgtMTMy
XSBhY3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAzOjAtMzoxM10geworICAgIFsndGV4
dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNDo0LTQ6MjZdIGFjdGl2ZQorICAgIFsnYmFkcHJvcGVy
dHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzU6NS01OjI5XSBhY3RpdmUKIH0KLWJvZHku
bWFpbnBhZ2U6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wMSc6J3ZhbDEnIG5vbi1wYXJzZWRdIEBb
NS0xN10gYWN0aXZlCi0gICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMjItMzRdIGFj
dGl2ZQorYm9keS5tYWlucGFnZTogW3JlZ3VsYXIsIDg6MC04OjEzXSB7CisgICAgWydwcm9wMSc6
J3ZhbDEnIG5vbi1wYXJzZWRdIEBbOTo0LTk6MTZdIGFjdGl2ZQorICAgIFsncHJvcDInOid2YWwy
JyBub24tcGFyc2VkXSBAWzEwOjQtMTA6MTZdIGFjdGl2ZQogfQogCiA9PT0gUHNldWRvIHJ1bGVz
IGZvciBib2R5ID09PQogUHNldWRvSWQ9NAotYm9keTo6YWZ0ZXI6IFtyZWd1bGFyXSB7Ci0gICAg
Wydjb250ZW50JzonIkFmdGVyIGJvZHkiJ10gQFs1LTI3XSBhY3RpdmUKK2JvZHk6OmFmdGVyOiBb
cmVndWxhciwgMjY6MC0yNjoxMV0geworICAgIFsnY29udGVudCc6JyJBZnRlciBib2R5IiddIEBb
Mjc6NC0yNzoyNl0gYWN0aXZlCiB9CiAKID09PSBJbmhlcml0ZWQgc3R5bGVzIGZvciBib2R5ID09
PQpAQCAtNjksMTQgKzY5LDE0IEBAIExldmVsPTEKIGh0bWw6IFt1c2VyLWFnZW50XSB7CiAgICAg
WydkaXNwbGF5JzonYmxvY2snXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1odG1s
OiBbcmVndWxhcl0gewotICAgIFsnZm9udC13ZWlnaHQnOic0MDAnXSBAWzUtMjJdIGFjdGl2ZQor
aHRtbDogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKKyAgICBbJ2ZvbnQtd2VpZ2h0JzonNDAwJ10gQFs1
OjQtNToyMV0gYWN0aXZlCiB9CiAKID09PSBJbmxpbmUgc3R5bGUgZm9yIGJvZHkgPT09Ci1bJ2Zv
bnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswLTIwXSBhY3RpdmUKLVsnd2lkdGgnOic4NSUnXSBAWzIx
LTMyXSBhY3RpdmUKLVsnYmFja2dyb3VuZC1pbWFnZSc6J3VybChiYXIucG5nKSddIEBbMzMtNjNd
IGFjdGl2ZQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMDowLTA6MjBdIGFjdGl2ZQorWyd3
aWR0aCc6Jzg1JSddIEBbMDoyMS0wOjMyXSBhY3RpdmUKK1snYmFja2dyb3VuZC1pbWFnZSc6J3Vy
bChiYXIucG5nKSddIEBbMDozMy0wOjYzXSBhY3RpdmUKID09PSBCT0RZIHdpdGggZm9yY2VkIDpo
b3ZlciA9PT0KIGJvZHk6IFt1c2VyLWFnZW50XSB7CiAgICAgWydkaXNwbGF5JzonYmxvY2snXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCkBAIC04NSwyOSArODUsMjkgQEAgYm9keTogW3Vz
ZXItYWdlbnRdIHsKICAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCiAgICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5kZWZpbmVkLXVuZGVm
aW5lZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9y
dGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQor
Ym9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1t
ZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUK
IH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNj
cmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3Vs
YXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4t
c3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KLWJvZHk6IFty
ZWd1bGFyXSB7Ci0gICAgWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXSBhY3RpdmUKK2JvZHk6
IFtyZWd1bGFyLCA5OjAtOTo0XSB7CisgICAgWydmb250LXNpemUnOicxMnB4J10gQFsxMDo0LTEw
OjIwXSBhY3RpdmUKICAgICBbJ2Zvbyc6J2JhciAhCiAKLSAgICBpbXBvcnRhbnQgLyogIWltcG9y
dGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQg
bm9uLXBhcnNlZF0gQFsyNi0xMDRdIGFjdGl2ZQotICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0
YW50JyBpcy1pbXBvcnRhbnRdIEBbMTA5LTEzM10gYWN0aXZlCi0gICAgWydjb2xvcnonOiciIWlt
cG9ydGFudCInIG5vbi1wYXJzZWRdIEBbMTM4LTE1OV0gYWN0aXZlCi0gICAgWydpbXBvcnRhbnQn
OichaW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2NC0xODVdIGFjdGl2ZQotICAgIFsnY29sb3In
Oid5ZWxsb3cnXSBAWzE5MC0yMDRdIGFjdGl2ZQotICAgIFsnY29sb3InOiciYmFkY29sb3IiICEg
aW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1pbXBv
cnRhbnQgbm9uLXBhcnNlZF0gQFsyMDktMjc4XSBhY3RpdmUKKyAgICBpbXBvcnRhbnQgLyogIWlt
cG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRh
bnQgbm9uLXBhcnNlZF0gQFsxMTo0LTEzOjY2XSBhY3RpdmUKKyAgICBbJ2hlaWdodCc6JzEwMCUg
IWltcG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzE0OjQtMTQ6MjhdIGFjdGl2ZQorICAgIFsnY29s
b3J6JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzE1OjQtMTU6MjVdIGFjdGl2ZQorICAg
IFsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjo0LTE2OjI1XSBhY3Rp
dmUKKyAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsxNzo0LTE3OjE4XSBhY3RpdmUKKyAgICBbJ2Nv
bG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5n
ZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTg6NC0xODo3M10gYWN0aXZl
CiB9Ci1ib2R5Lm1haW4xOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsx
My0yOF0gYWN0aXZlCi0gICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNv
Z25pemVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzI4LTgxXSBhY3RpdmUKK2JvZHkubWFp
bjE6IFtyZWd1bGFyLCAyMToyOS0yMTo2N10geworICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsy
MTo4MS0yMTo5Nl0gYWN0aXZlCisgICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQg
dW5yZWNvZ25pemVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0
aXZlCiB9Ci1ib2R5Lm1haW4yOiBbcmVndWxhcl0gewotICAgIFsnYmFja2dyb3VuZCc6J2dyZWVu
IC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xv
biwgdmVyeSAhaW1wb3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMC05NV0gYWN0aXZlCitib2R5
Lm1haW4yOiBbcmVndWxhciwgMjM6MC0yMzoxMF0geworICAgIFsnYmFja2dyb3VuZCc6J2dyZWVu
IC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xv
biwgdmVyeSAhaW1wb3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2XSBhY3Rp
dmUKICAgICBbJ2JhY2tncm91bmQtaW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0
aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2Jh
Y2tncm91bmQtcmVwZWF0LXknOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKQEAgLTExOSwxNiArMTE5LDE2IEBAIGJvZHkubWFpbjI6IFtyZWd1bGFy
XSB7CiAgICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonZ3JlZW4nIGlzLWltcG9ydGFudF0gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1zaXplJzonaW5pdGlhbCcg
aXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5Lm1haW5w
YWdlOiBbcmVndWxhcl0gewotICAgIFsndGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNS0yN10g
YWN0aXZlCi0gICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA4
LTEzMl0gYWN0aXZlCitib2R5Lm1haW5wYWdlOiBbcmVndWxhciwgMzowLTM6MTNdIHsKKyAgICBb
J3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzQ6NC00OjI2XSBhY3RpdmUKKyAgICBbJ2JhZHBy
b3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFs1OjUtNToyOV0gYWN0aXZlCiB9Ci1i
b2R5Lm1haW5wYWdlOiBbcmVndWxhcl0gewotICAgIFsncHJvcDEnOid2YWwxJyBub24tcGFyc2Vk
XSBAWzUtMTddIGFjdGl2ZQotICAgIFsncHJvcDInOid2YWwyJyBub24tcGFyc2VkXSBAWzIyLTM0
XSBhY3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCA4OjAtODoxM10geworICAgIFsncHJv
cDEnOid2YWwxJyBub24tcGFyc2VkXSBAWzk6NC05OjE2XSBhY3RpdmUKKyAgICBbJ3Byb3AyJzon
dmFsMicgbm9uLXBhcnNlZF0gQFsxMDo0LTEwOjE2XSBhY3RpdmUKIH0KLWJvZHk6aG92ZXI6IFty
ZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6JyNDREUnXSBAWzMtMTVdIGFjdGl2ZQorYm9keTpob3Zl
cjogW3JlZ3VsYXIsIDEzOjAtMTM6MTBdIHsKKyAgICBbJ2NvbG9yJzonI0NERSddIEBbMTQ6Mi0x
NDoxNF0gYWN0aXZlCiB9CiAKID09PSBBdHRyaWJ1dGVzIHN0eWxlIGZvciB0YWJsZSA9PT0KQEAg
LTE3NiwyNiArMTc2LDI2IEBAIGgxIHsKICAgICBoZWlnaHQgOiAxMDAlIDsgYm9yZGVyOiAxcHgg
c29saWQ7IGJvcmRlci13aWR0aDogMnB4OyBiYWNrZ3JvdW5kLWNvbG9yIDogIzMzRkYzMzsgZ29v
Z2xlczogYWJyYTsgZm9vOiAuYmFyOyAtbW96LWdvb2c6IDEqKio7IGJvcmRlci13aWR0aDogMHB4
OwogfQogJwotaHRtbDogW3JlZ3VsYXJdIHsKLSAgICBbJ2ZvbnQtd2VpZ2h0JzonNDAwJ10gQFs1
LTIyXSBhY3RpdmUKK2h0bWw6IFtyZWd1bGFyLCA0OjAtNDo0XSB7CisgICAgWydmb250LXdlaWdo
dCc6JzQwMCddIEBbNTo0LTU6MjFdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBb
J2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzUtMjFdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDk6MC05
OjRdIHsKKyAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzEwOjQtMTA6MjBdIGFjdGl2ZQogICAg
IFsnZm9vJzonYmFyICEKIAotICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5v
dCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2
LTEwNF0gYWN0aXZlCi0gICAgWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWltcG9ydGFu
dF0gQFsxMDktMTMzXSBhY3RpdmUKLSAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBh
cnNlZF0gQFsxMzgtMTU5XSBhY3RpdmUKLSAgICBbJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQnIG5v
bi1wYXJzZWRdIEBbMTY0LTE4NV0gYWN0aXZlCi0gICAgWydjb2xvcic6J3llbGxvdyddIEBbMTkw
LTIwNF0gYWN0aXZlCi0gICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29v
ZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2Vk
XSBAWzIwOS0yNzhdIGFjdGl2ZQorICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5
IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBA
WzExOjQtMTM6NjZdIGFjdGl2ZQorICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50JyBpcy1p
bXBvcnRhbnRdIEBbMTQ6NC0xNDoyOF0gYWN0aXZlCisgICAgWydjb2xvcnonOiciIWltcG9ydGFu
dCInIG5vbi1wYXJzZWRdIEBbMTU6NC0xNToyNV0gYWN0aXZlCisgICAgWydpbXBvcnRhbnQnOich
aW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2OjQtMTY6MjVdIGFjdGl2ZQorICAgIFsnY29sb3In
Oid5ZWxsb3cnXSBAWzE3OjQtMTc6MThdIGFjdGl2ZQorICAgIFsnY29sb3InOiciYmFkY29sb3Ii
ICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1p
bXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxODo0LTE4OjczXSBhY3RpdmUKIH0KLWJvZHkubWFpbjE6
IFtyZWd1bGFyXSB7Ci0gICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzEzLTI4XSBhY3RpdmUKLSAg
ICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkg
Ki8nIG5vbi1wYXJzZWRdIEBbMjgtODFdIGFjdGl2ZQorYm9keS5tYWluMTogW3JlZ3VsYXIsIDIx
OjI5LTIxOjY3XSB7CisgICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzIxOjgxLTIxOjk2XSBhY3Rp
dmUKKyAgICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJv
cGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjE6OTYtMjE6MTQ5XSBhY3RpdmUKIH0KLWJvZHkubWFp
bjI6IFtyZWd1bGFyXSB7Ci0gICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9y
dGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRh
bnQgKi8nIGlzLWltcG9ydGFudF0gQFswLTk1XSBhY3RpdmUKK2JvZHkubWFpbjI6IFtyZWd1bGFy
LCAyMzowLTIzOjEwXSB7CisgICAgWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9y
dGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRh
bnQgKi8nIGlzLWltcG9ydGFudF0gQFsyMzoxMS0yMzoxMDZdIGFjdGl2ZQogICAgIFsnYmFja2dy
b3VuZC1pbWFnZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteCc6J2luaXRpYWwnIGlzLWltcG9ydGFu
dF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQt
eSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpA
QCAtMjA3LDE4ICsyMDcsMTggQEAgYm9keS5tYWluMjogW3JlZ3VsYXJdIHsKICAgICBbJ2JhY2tn
cm91bmQtY29sb3InOidncmVlbicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCiAgICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHk6OmFmdGVyOiBbcmVndWxhcl0gewot
ICAgIFsnY29udGVudCc6JyJBZnRlciBib2R5IiddIEBbNS0yN10gYWN0aXZlCi19Ci1oMTogW3Jl
Z3VsYXJdIHsKLSAgICBbJ2hlaWdodCc6JzEwMCUnXSBAWzUtMjBdIGFjdGl2ZQotICAgIFsnYm9y
ZGVyJzonMXB4IHNvbGlkJ10gQFsyMS0zOV0gYWN0aXZlCi0gICAgWydib3JkZXItd2lkdGgnOicy
cHgnXSBAWzQwLTU4XSBpbmFjdGl2ZQotICAgIFsnYmFja2dyb3VuZC1jb2xvcic6JyMzM0ZGMzMn
XSBAWzU5LTg2XSBhY3RpdmUKLSAgICBbJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBAWzg3
LTEwMV0gYWN0aXZlCi0gICAgWydmb28nOicuYmFyJyBub24tcGFyc2VkXSBAWzEwMi0xMTJdIGFj
dGl2ZQotICAgIFsnLW1vei1nb29nJzonMSoqKicgbm9uLXBhcnNlZF0gQFsxMTMtMTI5XSBhY3Rp
dmUKLSAgICBbJ2JvcmRlci13aWR0aCc6JzBweCddIEBbMTMwLTE0OF0gYWN0aXZlCitib2R5Ojph
ZnRlcjogW3JlZ3VsYXIsIDI2OjAtMjY6MTFdIHsKKyAgICBbJ2NvbnRlbnQnOiciQWZ0ZXIgYm9k
eSInXSBAWzI3OjQtMjc6MjZdIGFjdGl2ZQorfQoraDE6IFtyZWd1bGFyLCAzMDowLTMwOjJdIHsK
KyAgICBbJ2hlaWdodCc6JzEwMCUnXSBAWzMxOjQtMzE6MTldIGFjdGl2ZQorICAgIFsnYm9yZGVy
JzonMXB4IHNvbGlkJ10gQFszMToyMC0zMTozOF0gYWN0aXZlCisgICAgWydib3JkZXItd2lkdGgn
OicycHgnXSBAWzMxOjM5LTMxOjU3XSBpbmFjdGl2ZQorICAgIFsnYmFja2dyb3VuZC1jb2xvcic6
JyMzM0ZGMzMnXSBAWzMxOjU4LTMxOjg1XSBhY3RpdmUKKyAgICBbJ2dvb2dsZXMnOidhYnJhJyBu
b24tcGFyc2VkXSBAWzMxOjg2LTMxOjEwMF0gYWN0aXZlCisgICAgWydmb28nOicuYmFyJyBub24t
cGFyc2VkXSBAWzMxOjEwMS0zMToxMTFdIGFjdGl2ZQorICAgIFsnLW1vei1nb29nJzonMSoqKicg
bm9uLXBhcnNlZF0gQFszMToxMTItMzE6MTI4XSBhY3RpdmUKKyAgICBbJ2JvcmRlci13aWR0aCc6
JzBweCddIEBbMzE6MTI5LTMxOjE0N10gYWN0aXZlCiAgICAgWydib3JkZXItdG9wLXN0eWxlJzon
c29saWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydib3JkZXItcmlnaHQt
c3R5bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JvcmRl
ci1ib3R0b20tc3R5bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAg
LTI2MCwxMCArMjYwLDEwIEBAIGJvZHkgewogCiB9CiAnCi0jYWJzZW50LWlkOiBbcmVndWxhcl0g
eworI2Fic2VudC1pZDogW3JlZ3VsYXIsIDEwOjAtMTA6MTBdIHsKIH0KLWJvZHk6IFtyZWd1bGFy
XSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBu
b24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0gewor
ICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBh
cnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0KIAogU3R5bGVTaGVldDogJ0BpbXBvcnQgdXJs
KHN0eWxlcy1uZXctQVBJLTEuY3NzKTsKQEAgLTI5MiwxMCArMjkyLDEwIEBAIGJvZHkgewogCiB9
CiAnCi0jYWJzZW50LWlkOiBbcmVndWxhcl0geworI2Fic2VudC1pZDogW3JlZ3VsYXIsIDEwOjAt
MTA6MTBdIHsKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVk
LW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQorYm9k
eTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRp
YS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKIH0K
IAogU3R5bGVTaGVldDogJwpAQCAtMzE1LDM4ICszMTUsMzggQEAgYm9keTpob3ZlciB7CiAgIGNv
bG9yOiAjQ0RFOwogfQogJwotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJdIHsKLSAgICBbJ3RleHQt
ZGVjb3JhdGlvbic6J25vbmUnXSBAWzUtMjddIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicx
YmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzEwOC0xMzJdIGFjdGl2ZQorYm9keS5tYWlucGFnZTog
W3JlZ3VsYXIsIDM6MC0zOjEzXSB7CisgICAgWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs0
OjQtNDoyNl0gYWN0aXZlCisgICAgWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJz
ZWRdIEBbNTo1LTU6MjldIGFjdGl2ZQogfQotYm9keS5tYWlucGFnZTogW3JlZ3VsYXJdIHsKLSAg
ICBbJ3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0gQFs1LTE3XSBhY3RpdmUKLSAgICBbJ3Byb3Ay
JzondmFsMicgbm9uLXBhcnNlZF0gQFsyMi0zNF0gYWN0aXZlCitib2R5Lm1haW5wYWdlOiBbcmVn
dWxhciwgODowLTg6MTNdIHsKKyAgICBbJ3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0gQFs5OjQt
OToxNl0gYWN0aXZlCisgICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMTA6NC0xMDox
Nl0gYWN0aXZlCiB9Ci1ib2R5OmhvdmVyOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOicjQ0RF
J10gQFszLTE1XSBhY3RpdmUKK2JvZHk6aG92ZXI6IFtyZWd1bGFyLCAxMzowLTEzOjEwXSB7Cisg
ICAgWydjb2xvcic6JyNDREUnXSBAWzE0OjItMTQ6MTRdIGFjdGl2ZQogfQogCiA9PT0gTGFzdCBz
dHlsZXNoZWV0IHBhdGNoZWQgPT09CiAKIFN0eWxlU2hlZXQ6ICdib2R5Lm1haW5wYWdlIHsgICAg
dGV4dC1kZWNvcmF0aW9uOiBzdHJpa2V0aHJvdWdoOyAgICBiYWRwcm9wZXJ0eTogMmJhZHZhbHVl
Mjt9Ym9keSB7ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7fScKLWJvZHkubWFpbnBhZ2U6IFtyZWd1
bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29yYXRpb24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2Vk
XSBAWzQtMzVdIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFy
c2VkXSBAWzM5LTYzXSBhY3RpdmUKK2JvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAwOjAtMDoxM10g
eworICAgIFsndGV4dC1kZWNvcmF0aW9uJzonc3RyaWtldGhyb3VnaCcgbm9uLXBhcnNlZF0gQFsw
OjE5LTA6NTBdIGFjdGl2ZQorICAgIFsnYmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFy
c2VkXSBAWzA6NTQtMDo3OF0gYWN0aXZlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsndGV4
dC1hbGlnbic6J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDA6Nzkt
MDo4M10geworICAgIFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzA6ODktMDoxMDldIGFjdGl2
ZQogfQogCiA9PT0gQWZ0ZXIgc2VsZWN0b3Igc2V0ID09PQogCiBTdHlsZVNoZWV0OiAnaHRtbCAq
LCBib2R5W2Zvbz0iYmFyIl0geyAgICB0ZXh0LWRlY29yYXRpb246IHN0cmlrZXRocm91Z2g7ICAg
IGJhZHByb3BlcnR5OiAyYmFkdmFsdWUyO31ib2R5IHsgICAgdGV4dC1hbGlnbjoganVzdGlmeTt9
JwotaHRtbCAqLCBib2R5W2Zvbz0iYmFyIl06IFtyZWd1bGFyXSB7Ci0gICAgWyd0ZXh0LWRlY29y
YXRpb24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2VkXSBAWzQtMzVdIGFjdGl2ZQotICAgIFsn
YmFkcHJvcGVydHknOicyYmFkdmFsdWUyJyBub24tcGFyc2VkXSBAWzM5LTYzXSBhY3RpdmUKK2h0
bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhciwgMDowLTA6MjNdIHsKKyAgICBbJ3RleHQt
ZGVjb3JhdGlvbic6J3N0cmlrZXRocm91Z2gnIG5vbi1wYXJzZWRdIEBbMDoyOS0wOjYwXSBhY3Rp
dmUKKyAgICBbJ2JhZHByb3BlcnR5JzonMmJhZHZhbHVlMicgbm9uLXBhcnNlZF0gQFswOjY0LTA6
ODhdIGFjdGl2ZQogfQotYm9keTogW3JlZ3VsYXJdIHsKLSAgICBbJ3RleHQtYWxpZ24nOidqdXN0
aWZ5J10gQFs0LTI0XSBhY3RpdmUKK2JvZHk6IFtyZWd1bGFyLCAwOjg5LTA6OTNdIHsKKyAgICBb
J3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFswOjk5LTA6MTE5XSBhY3RpdmUKIH0KIAogPT09IEFm
dGVyIHN0eWxlIHRleHQgc2V0ID09PQpAQCAtMzU0LDkgKzM1NCw5IEBAIGJvZHk6IFtyZWd1bGFy
XSB7CiBTdHlsZVNoZWV0OiAnaHRtbCAqLCBib2R5W2Zvbz0iYmFyIl0gewogICAgIGNvbG9yOiB3
aGl0ZTsgYmFja2dyb3VuZDogYmxhY2s7CiB9Ym9keSB7ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7
fScKLWh0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhcl0gewotICAgIFsnY29sb3InOid3
aGl0ZSddIEBbNS0xOF0gYWN0aXZlCi0gICAgWydiYWNrZ3JvdW5kJzonYmxhY2snXSBAWzE5LTM3
XSBhY3RpdmUKK2h0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVndWxhciwgMDowLTA6MjNdIHsK
KyAgICBbJ2NvbG9yJzond2hpdGUnXSBAWzE6NC0xOjE3XSBhY3RpdmUKKyAgICBbJ2JhY2tncm91
bmQnOidibGFjayddIEBbMToxOC0xOjM2XSBhY3RpdmUKICAgICBbJ2JhY2tncm91bmQtaW1hZ2Un
Oidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogICAgIFsnYmFja2dyb3Vu
ZC1yZXBlYXQteCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAg
WydiYWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0g
c3R5bGUKQEAgLTM2OCw4ICszNjgsOCBAQCBodG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3Vs
YXJdIHsKICAgICBbJ2JhY2tncm91bmQtY29sb3InOidibGFjayddIEBbdW5kZWZpbmVkLXVuZGVm
aW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwnXSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewotICAgIFsndGV4dC1hbGln
bic6J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDI6MS0yOjVdIHsK
KyAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFsyOjExLTI6MzFdIGFjdGl2ZQogfQogCiA9
PT0gTWF0Y2hlZCBydWxlcyBhZnRlciBydWxlIGFkZGVkID09PQpAQCAtMzgwLDI2ICszODAsMjYg
QEAgYm9keTogW3VzZXItYWdlbnRdIHsKICAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiAgICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9w
ZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUt
NDhdIGFjdGl2ZQorYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHkn
OidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIx
OjQ3XSBhY3RpdmUKIH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9y
dGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzUtNDhdIGFjdGl2ZQor
Ym9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0geworICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1t
ZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUK
IH0KLWJvZHk6IFtyZWd1bGFyXSB7Ci0gICAgWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXSBh
Y3RpdmUKK2JvZHk6IFtyZWd1bGFyLCA5OjAtOTo0XSB7CisgICAgWydmb250LXNpemUnOicxMnB4
J10gQFsxMDo0LTEwOjIwXSBhY3RpdmUKICAgICBbJ2Zvbyc6J2JhciAhCiAKLSAgICBpbXBvcnRh
bnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovJyBp
cy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyNi0xMDRdIGFjdGl2ZQotICAgIFsnaGVpZ2h0Jzon
MTAwJSAhaW1wb3J0YW50JyBpcy1pbXBvcnRhbnRdIEBbMTA5LTEzM10gYWN0aXZlCi0gICAgWydj
b2xvcnonOiciIWltcG9ydGFudCInIG5vbi1wYXJzZWRdIEBbMTM4LTE1OV0gYWN0aXZlCi0gICAg
WydpbXBvcnRhbnQnOichaW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzE2NC0xODVdIGFjdGl2ZQot
ICAgIFsnY29sb3InOid5ZWxsb3cnXSBAWzE5MC0yMDRdIGFjdGl2ZQotICAgIFsnY29sb3InOici
YmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVl
ICovJyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsyMDktMjc4XSBhY3RpdmUKKyAgICBpbXBv
cnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICov
JyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxMTo0LTEzOjY2XSBhY3RpdmUKKyAgICBbJ2hl
aWdodCc6JzEwMCUgIWltcG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzE0OjQtMTQ6MjhdIGFjdGl2
ZQorICAgIFsnY29sb3J6JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzE1OjQtMTU6MjVd
IGFjdGl2ZQorICAgIFsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFsxNjo0
LTE2OjI1XSBhY3RpdmUKKyAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsxNzo0LTE3OjE4XSBhY3Rp
dmUKKyAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5
IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTg6NC0x
ODo3M10gYWN0aXZlCiB9Ci1odG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXJdIHsKLSAg
ICBbJ2NvbG9yJzond2hpdGUnXSBAWzUtMThdIGFjdGl2ZQotICAgIFsnYmFja2dyb3VuZCc6J2Js
YWNrJ10gQFsxOS0zN10gYWN0aXZlCitodG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXIs
IDA6MC0wOjIzXSB7CisgICAgWydjb2xvcic6J3doaXRlJ10gQFsxOjQtMToxN10gYWN0aXZlCisg
ICAgWydiYWNrZ3JvdW5kJzonYmxhY2snXSBAWzE6MTgtMTozNl0gYWN0aXZlCiAgICAgWydiYWNr
Z3JvdW5kLWltYWdlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAg
ICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteSc6J2luaXRpYWwnXSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCkBAIC00MTEsMTggKzQxMSwxOCBAQCBodG1sICosIGJvZHlbZm9v
PSJiYXIiXTogW3JlZ3VsYXJdIHsKICAgICBbJ2JhY2tncm91bmQtY29sb3InOidibGFjayddIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRp
YWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiB9Ci1ib2R5OiBbcmVndWxhcl0gewot
ICAgIFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzQtMjRdIGFjdGl2ZQorYm9keTogW3JlZ3Vs
YXIsIDI6MS0yOjVdIHsKKyAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFsyOjExLTI6MzFd
IGFjdGl2ZQogfQotYm9keTogW2luc3BlY3Rvcl0gewotICAgIFsnZm9udC1mYW1pbHknOidzZXJp
ZiddIEBbNS0yNF0gYWN0aXZlCitib2R5OiBbaW5zcGVjdG9yLCAwOjAtMDo0XSB7CisgICAgWydm
b250LWZhbWlseSc6J3NlcmlmJ10gQFsxOjQtMToyM10gYWN0aXZlCiB9Ci1ib2R5Lm1haW4xOiBb
cmVndWxhcl0gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0gYWN0aXZlCi0gICAg
Wyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICov
JyBub24tcGFyc2VkXSBAWzI4LTgxXSBhY3RpdmUKK2JvZHkubWFpbjE6IFtyZWd1bGFyLCAyMToy
OS0yMTo2N10geworICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsyMTo4MS0yMTo5Nl0gYWN0aXZl
CisgICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3Bl
cnR5ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0aXZlCiB9Ci1ib2R5Lm1haW4y
OiBbcmVndWxhcl0gewotICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRh
bnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50
ICovJyBpcy1pbXBvcnRhbnRdIEBbMC05NV0gYWN0aXZlCitib2R5Lm1haW4yOiBbcmVndWxhciwg
MjM6MC0yMzoxMF0geworICAgIFsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRh
bnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50
ICovJyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2XSBhY3RpdmUKICAgICBbJ2JhY2tncm91
bmQtaW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0g
c3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKICAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXkn
Oidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAg
LTQzNywxMyArNDM3LDEzIEBAIGJvZHkubWFpbjI6IFtyZWd1bGFyXSB7CiAKID09PSBBZnRlciBw
cm9wZXJ0eSBtYW5pcHVsYXRpb25zID09PQogW3RleHQ9J2hlaWdodCA6IDEwMCUgOyddIGRpc2Fi
bGVkCi1bJ2JvcmRlcic6JzFweCBzb2xpZCddIEBbMS0xOV0gYWN0aXZlCi1bJ2JvcmRlci13aWR0
aCc6JzJweCddIEBbMjAtMzhdIGluYWN0aXZlCi1bJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2Vk
XSBAWzQwLTU0XSBhY3RpdmUKLVsnZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFs1NS02NV0gYWN0
aXZlCi1bJy1tb3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbNjYtODJdIGFjdGl2ZQotWydm
b250LXNpemUnOicxMnB4J10gQFs4OC0xMDRdIGFjdGl2ZQotWydib3JkZXItd2lkdGgnOicxcHgn
XSBAWzEwOS0xMjddIGFjdGl2ZQorWydib3JkZXInOicxcHggc29saWQnXSBAWzMwOjUtMzA6MjNd
IGFjdGl2ZQorWydib3JkZXItd2lkdGgnOicycHgnXSBAWzMwOjI0LTMwOjQyXSBpbmFjdGl2ZQor
Wydnb29nbGVzJzonYWJyYScgbm9uLXBhcnNlZF0gQFszMDo0NC0zMDo1OF0gYWN0aXZlCitbJ2Zv
byc6Jy5iYXInIG5vbi1wYXJzZWRdIEBbMzA6NTktMzA6NjldIGFjdGl2ZQorWyctbW96LWdvb2cn
OicxKioqJyBub24tcGFyc2VkXSBAWzMwOjcwLTMwOjg2XSBhY3RpdmUKK1snZm9udC1zaXplJzon
MTJweCddIEBbMzE6NC0zMToyMF0gYWN0aXZlCitbJ2JvcmRlci13aWR0aCc6JzFweCddIEBbMzI6
NC0zMjoyMl0gYWN0aXZlCiBbdGV4dD0nZm9udC1zaXplOiAxNHB4OyddIGRpc2FibGVkCiBbJ2Jv
cmRlci10b3Atd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2Jv
cmRlci1yaWdodC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAg
LTQ2MSwxNCArNDYxLDE0IEBAIGJvZHkubWFpbjI6IFtyZWd1bGFyXSB7CiAKID09PSBBZnRlciBw
cm9wZXJ0eSBlbmFibGVkID09PQogW3RleHQ9J2hlaWdodCA6IDEwMCUgOyddIGRpc2FibGVkCi1b
J2JvcmRlcic6JzFweCBzb2xpZCddIEBbMS0xOV0gYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzJw
eCddIEBbMjAtMzhdIGluYWN0aXZlCi1bJ2dvb2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBAWzQw
LTU0XSBhY3RpdmUKLVsnZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFs1NS02NV0gYWN0aXZlCi1b
Jy1tb3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbNjYtODJdIGFjdGl2ZQotWydmb250LXNp
emUnOicxMnB4J10gQFs4OC0xMDRdIGluYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzFweCddIEBb
MTA5LTEyN10gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6JzE0cHgnXSBAWzEzMi0xNDhdIGFjdGl2ZQor
Wydib3JkZXInOicxcHggc29saWQnXSBAWzMwOjUtMzA6MjNdIGFjdGl2ZQorWydib3JkZXItd2lk
dGgnOicycHgnXSBAWzMwOjI0LTMwOjQyXSBpbmFjdGl2ZQorWydnb29nbGVzJzonYWJyYScgbm9u
LXBhcnNlZF0gQFszMDo0NC0zMDo1OF0gYWN0aXZlCitbJ2Zvbyc6Jy5iYXInIG5vbi1wYXJzZWRd
IEBbMzA6NTktMzA6NjldIGFjdGl2ZQorWyctbW96LWdvb2cnOicxKioqJyBub24tcGFyc2VkXSBA
WzMwOjcwLTMwOjg2XSBhY3RpdmUKK1snZm9udC1zaXplJzonMTJweCddIEBbMzE6NC0zMToyMF0g
aW5hY3RpdmUKK1snYm9yZGVyLXdpZHRoJzonMXB4J10gQFszMjo0LTMyOjIyXSBhY3RpdmUKK1sn
Zm9udC1zaXplJzonMTRweCddIEBbMzM6NC0zMzoyMF0gYWN0aXZlCiBbJ2JvcmRlci10b3Atd2lk
dGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1yaWdodC13
aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWJvdHRv
bS13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLWV4cGVjdGVkLnR4dAppbmRleCAxZTU3OTk3NzE0NjZiMzI0MmMwNmJmOTFmMzFiNzg1MTQ0
MWNiYjljLi5kNzcyNzI4MmVhYTA2OTlmMDZhMjA5MjQ4ZWE4YjRiMjA3NGRhMmJmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291
cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0CkBAIC0xLDIzICsxLDIzIEBACiBUZXN0cyB0aGF0IHBy
b3BlciBkYXRhIGFuZCBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9y
IENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgYW5kIHByb3BlcnRpZXMuCiAKLWJvZHk6IFswLTRdIFs2
LTI2Nl0KLVsnZm9udC1zaXplJzonMTJweCddIEBbNS0yMV0KK2JvZHk6IFswOjAtMDo0XSBbMDo2
LTk6MF0KK1snZm9udC1zaXplJzonMTJweCddIEBbMTo0LTE6MjBdCiBbJ2Zvbyc6J2JhciAhCiAK
LSAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBX
ZWJDb3JlICovJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XQotWydoZWlnaHQnOicx
MDAlICFpbXBvcnRhbnQnICFpbXBvcnRhbnRdIEBbMTA5LTEzM10KLVsnY29sb3J6JzonIiFpbXBv
cnRhbnQiJyBub24tcGFyc2VkXSBAWzEzOC0xNTldCi1bJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQn
IG5vbi1wYXJzZWRdIEBbMTY0LTE4NV0KLVsnY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50
IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50IG5vbi1w
YXJzZWRdIEBbMTkwLTI1OV0KLWJvZHkubWFpbjE6IFsyOTgtMzM2XSBbMzM3LTQxOF0KLVsnY29s
b3InOicjRjAwQkFBJ10gQFsxMy0yOF0KLVsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50
IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyOC04MV0KLWJvZHkubWFp
bjI6IFs0MzQtNDQ0XSBbNDQ1LTU0MF0KLVsnYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFp
bXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1w
b3J0YW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVdCi1ib2R5Lm1haW5wYWdlOiBbMi0xNV0gWzE3
LTE0OV0KLVsndGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNS0yN10KLVsnYmFkcHJvcGVydHkn
OicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzEwNy0xMzFdCi1lbGVtZW50LnN0eWxlOiBbMC0z
MV0KLVsnZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCi1bJ3dpZHRoJzonODAlJ10gQFsy
MS0zMV0KKyAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXpl
ZCBieSBXZWJDb3JlICovJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjo0LTQ6NjZdCitbJ2hl
aWdodCc6JzEwMCUgIWltcG9ydGFudCcgIWltcG9ydGFudF0gQFs1OjQtNToyOF0KK1snY29sb3J6
JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2VkXSBAWzY6NC02OjI1XQorWydpbXBvcnRhbnQnOich
aW1wb3J0YW50JyBub24tcGFyc2VkXSBAWzc6NC03OjI1XQorWydjb2xvcic6JyJiYWRjb2xvciIg
ISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nICFpbXBv
cnRhbnQgbm9uLXBhcnNlZF0gQFs4OjQtODo3M10KK2JvZHkubWFpbjE6IFsxMToyOS0xMTo2N10g
WzExOjY4LTExOjE0OV0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMTo4MS0xMTo5Nl0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsxMTo5Ni0xMToxNDldCitib2R5Lm1haW4yOiBbMTM6MC0xMzoxMF0gWzEzOjEx
LTEzOjEwNl0KK1snYmFja2dyb3VuZCc6J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVu
dCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovJyAhaW1w
b3J0YW50XSBAWzEzOjExLTEzOjEwNl0KK2JvZHkubWFpbnBhZ2U6IFsyOjAtMjoxM10gWzI6MTUt
NTowXQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFszOjQtMzoyNl0KK1snYmFkcHJvcGVy
dHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzQ6NC00OjI4XQorZWxlbWVudC5zdHlsZTog
WzA6MC0wOjMxXQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMDowLTA6MjBdCitbJ3dpZHRo
JzonODAlJ10gQFswOjIxLTA6MzFdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCmluZGV4IGVjMGI0M2U4NTlhY2U2
OGRhYjNlN2NkNmNkNjdkN2NmMTBmODQxOTIuLjE5OTQzYjcyZmY3NGIyNTg3NzkzMzNmNjA1N2Iw
NTJmMmI4ZWE3MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgICAgIGlmIChydWxlT3JTdHlsZS5vcmlnaW4gIT09ICJyZWd1bGFyIikK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdHlsZSA9IHJ1bGVPclN0eWxl
LnN0eWxlOwotICAgICAgICAgICAgaGVhZGVyID0gcnVsZU9yU3R5bGUuc2VsZWN0b3JMaXN0LnRl
eHQgKyAiOiBbIiArIChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3QucmFuZ2UgPyBydWxlT3JTdHls
ZS5zZWxlY3Rvckxpc3QucmFuZ2Uuc3RhcnQgKyAiLSIgKyBydWxlT3JTdHlsZS5zZWxlY3Rvckxp
c3QucmFuZ2UuZW5kIDogIiIpICArICJdIjsKKyAgICAgICAgICAgIGhlYWRlciA9IHJ1bGVPclN0
eWxlLnNlbGVjdG9yTGlzdC50ZXh0ICsgIjogIiArIChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3Qu
cmFuZ2UgPyBJbnNwZWN0b3JUZXN0LnJhbmdlVGV4dChydWxlT3JTdHlsZS5zZWxlY3Rvckxpc3Qu
cmFuZ2UpIDogIiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc3R5bGUgPSBydWxl
T3JTdHlsZTsKICAgICAgICAgICAgIGhlYWRlciA9ICJlbGVtZW50LnN0eWxlOiI7Cg==
</data>
<flag name="review"
          id="211489"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>