<?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>213992</bug_id>
          
          <creation_ts>2020-07-06 07:46:53 -0700</creation_ts>
          <short_desc>Set Restrictions for channelCount, channelCountMode for PannerNode</short_desc>
          <delta_ts>2020-07-09 09:32:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Clark Wang">clark_wang</reporter>
          <assigned_to name="Clark Wang">clark_wang</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669033</commentid>
    <comment_count>0</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-06 07:46:53 -0700</bug_when>
    <thetext>Add setter methods to PannerNode that will handle exceptions for setting channelCount, channelCountMode. Phased out sampleRate from AudioNode, using BaseAudioContext&apos;s sampleRate instead for processIfNecessary method instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669836</commentid>
    <comment_count>1</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-08 11:50:34 -0700</bug_when>
    <thetext>Also separated ChannelCountMode, ChannelCount enums into their own files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669840</commentid>
    <comment_count>2</comment_count>
      <attachid>403800</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-08 12:02:55 -0700</bug_when>
    <thetext>Created attachment 403800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669843</commentid>
    <comment_count>3</comment_count>
      <attachid>403800</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-08 12:14:28 -0700</bug_when>
    <thetext>Comment on attachment 403800
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Added setter methods to PannerNode that handle exceptions for channelCount, channelCountMode, according to spec: https://www.w3.org/TR/webaudio/#dom-audionode-channelcount.

Please wrap lines properly so they are not too long like this.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Phased out sampleRate from AudioNode, using BaseAudioContext&apos;s sampleRate for processIfNecessary method. Moved ChannelCount, ChannelCountMode enums into their own files.

Ditto.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:295
&gt; +ChannelCountMode AudioNode::channelCountMode()

This could be inlined in the header now.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:300
&gt; +ExceptionOr&lt;void&gt; AudioNode::setChannelCountMode(const ChannelCountMode mode)

const is not needed.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:309
&gt; +    if (mode == Max)

The whole implementation of this method makes no sense anymore. Should be something like:
m_channelCountMode = mode;

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:324
&gt; +ChannelInterpretation AudioNode::channelInterpretation()

This could be inlined in the header now.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:336
&gt; +    if (interpretation == ChannelInterpretation::Speakers)

The implementation of this method does not make sense anymore.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:381
&gt; +            m_lastNonSilentTime = (context().currentSampleFrame() + framesToProcess) / static_cast&lt;double&gt;(context().sampleRate());

Nothing to do with the enum string. Please split unrelated changes in separate patches.

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:180
&gt; +    virtual ExceptionOr&lt;void&gt; setChannelCountMode(const ChannelCountMode);

No need for const.

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:182
&gt; +    ChannelInterpretation channelInterpretation();

should be const.

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:185
&gt;      ChannelCountMode internalChannelCountMode() const { return m_channelCountMode; }

This method seems identical to channelCountMode() now. It should be dropped.

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:186
&gt; +    ChannelInterpretation internalChannelInterpretation() const { return m_channelInterpretation; }

ditto.

&gt; Source/WebCore/Modules/webaudio/AudioNodeInput.cpp:148
&gt; +    ChannelCountMode mode = node()-&gt;internalChannelCountMode();

auto mode

&gt; Source/WebCore/Modules/webaudio/AudioNodeInput.cpp:161
&gt; +    if (mode == ClampedMax)

Please make that enum an enum class.

&gt; Source/WebCore/Modules/webaudio/AudioNodeInput.cpp:199
&gt; +    ChannelInterpretation interpretation = node()-&gt;internalChannelInterpretation();

auto

&gt; Source/WebCore/Modules/webaudio/ChannelCountMode.h:30
&gt; +enum ChannelCountMode {

Should be an enum class.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:342
&gt; +        return Exception { NotSupportedError };

Please provide an explanation string...

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:344
&gt; +    auto result = this-&gt;AudioNode::setChannelCount(channelCount);

this-&gt; is not needed.

Also, seems like this could be return as:
return AudioNode::setChannelCount(channelCount);

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:352
&gt; +ExceptionOr&lt;void&gt; PannerNode::setChannelCountMode(const ChannelCountMode mode)

No const.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:357
&gt; +    auto result = this-&gt;AudioNode::setChannelCountMode(mode);

Same comments as above.

&gt; Source/WebCore/Modules/webaudio/PannerNode.h:131
&gt; +    ExceptionOr&lt;void&gt; setChannelCount(unsigned) override;

s/override/final

&gt; Source/WebCore/Modules/webaudio/PannerNode.h:132
&gt; +    ExceptionOr&lt;void&gt; setChannelCountMode(const ChannelCountMode) override;

s/override/final</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669875</commentid>
    <comment_count>4</comment_count>
      <attachid>403806</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-08 13:38:40 -0700</bug_when>
    <thetext>Created attachment 403806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669876</commentid>
    <comment_count>5</comment_count>
      <attachid>403807</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-08 13:47:09 -0700</bug_when>
    <thetext>Created attachment 403807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669878</commentid>
    <comment_count>6</comment_count>
      <attachid>403808</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-08 13:57:32 -0700</bug_when>
    <thetext>Created attachment 403808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669890</commentid>
    <comment_count>7</comment_count>
      <attachid>403808</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-08 14:28:00 -0700</bug_when>
    <thetext>Comment on attachment 403808
Patch

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

Patch does not build in debug.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:299
&gt; +    if (mode != ChannelCountMode::Max &amp;&amp; mode != ChannelCountMode::ClampedMax &amp;&amp; mode != ChannelCountMode::Explicit)

Why not we need this check? These seem to be the only values of ChannelCountMode.

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:317
&gt; +    if (interpretation != ChannelInterpretation::Speakers &amp;&amp; interpretation != ChannelInterpretation::Discrete)

Ditto.

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:176
&gt; +    unsigned channelCount() { return m_channelCount; }

const

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:179
&gt; +    ChannelCountMode channelCountMode() { return m_channelCountMode; }

const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669891</commentid>
    <comment_count>8</comment_count>
      <attachid>403808</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-08 14:28:34 -0700</bug_when>
    <thetext>Comment on attachment 403808
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:299
&gt;&gt; +    if (mode != ChannelCountMode::Max &amp;&amp; mode != ChannelCountMode::ClampedMax &amp;&amp; mode != ChannelCountMode::Explicit)
&gt; 
&gt; Why not we need this check? These seem to be the only values of ChannelCountMode.

Why *do* we need this check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669893</commentid>
    <comment_count>9</comment_count>
      <attachid>403808</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-08 14:29:49 -0700</bug_when>
    <thetext>Comment on attachment 403808
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioNode.cpp:310
&gt; +ExceptionOr&lt;void&gt; AudioNode::setChannelInterpretation(const ChannelInterpretation interpretation)

Drop the const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670095</commentid>
    <comment_count>10</comment_count>
      <attachid>403864</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-09 07:22:15 -0700</bug_when>
    <thetext>Created attachment 403864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670111</commentid>
    <comment_count>11</comment_count>
      <attachid>403864</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 08:36:37 -0700</bug_when>
    <thetext>Comment on attachment 403864
Patch

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

r=me with nit fix

&gt; Source/WebCore/Modules/webaudio/AudioNode.h:183
&gt; +    ExceptionOr&lt;void&gt; setChannelInterpretation(const ChannelInterpretation);

Drop the const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670115</commentid>
    <comment_count>12</comment_count>
      <attachid>403868</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-09 08:44:23 -0700</bug_when>
    <thetext>Created attachment 403868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670141</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-09 09:31:38 -0700</bug_when>
    <thetext>Committed r264176: &lt;https://trac.webkit.org/changeset/264176&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670142</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-09 09:32:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/65275132&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403800</attachid>
            <date>2020-07-08 12:02:55 -0700</date>
            <delta_ts>2020-07-08 13:38:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200708150254.patch</filename>
            <type>text/plain</type>
            <size>47198</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU0ZWZlYTg1ZTU4Yzdh
NDFkNmNmZDNkNDU4ODM4MTQxY2YxZDg5Ny4uMWE3ZTJlN2EzMDIyMGQ0MWQ2MzVlOWRjZDA4MGVl
ZTEzY2VjZmRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTA3LTA4ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzZXR0ZXIg
bWV0aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxD
b3VudCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3Lncz
Lm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisgICAgICAgIFBo
YXNlZCBvdXQgc2FtcGxlUmF0ZSBmcm9tIEF1ZGlvTm9kZSwgdXNpbmcgQmFzZUF1ZGlvQ29udGV4
dCdzIHNhbXBsZVJhdGUgZm9yIHByb2Nlc3NJZk5lY2Vzc2FyeSBtZXRob2QuIE1vdmVkIENoYW5u
ZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRoZWlyIG93biBmaWxlcy4KKwor
ICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFzcy4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1ZGlvTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZTo6c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZTo6cHJvY2Vzc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjppbnRlcm5hbENoYW5uZWxJ
bnRlcnByZXRhdGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6Om51bWJlck9mQ2hhbm5lbHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OmJ1cyk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVjdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Ob2RlSW5wdXQ6OnB1bGwpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3B0aW9ucy5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0
aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0
aW9ucy5oLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGw6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0
aW9ucy5pZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRp
b24uaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVPcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0
YXRpb24uaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZU9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpDb252b2x2ZXJOb2Rl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkRl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OlBhbm5lck5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhbm5lck5vZGU6OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpQYW5u
ZXJOb2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L1Bhbm5lck5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBdWRpb1Bhbm5lck5vZGU6Oldl
YktpdEF1ZGlvUGFubmVyTm9kZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpjb3B5RnJvbSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c3VtRnJvbSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQXVkaW9CdXMuaDoKKwogMjAyMC0wNy0wNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5k
cmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIGNvbnRlbnQgcHJvY2VzcyBoYW5ncyBp
biBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJh
bmdlIGluIHNvbWUgY29ybmVyIGNhc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyOThjNjdk
ZmFiOTYxNWRjZDU0NjI5Mjc4NTdkYTk3NDJiZGZjMWQzLi4yNzkzMTIxODFhNjliMjliNmQ5NzJi
YjEzOGFjMmUxNTViZmM2MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDU5LDYgKzQ1OSw4
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmlkbAorICAg
IE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1
ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5u
ZWxNZXJnZXJOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAyMzA3MGVmMTc2
MzE1N2VhZmVkYmJhNzZkN2YyOTYwYjM5OTQ5NjUxLi44MzA5YjI5YjJiYmEyMTU0NzIzMTRlNzJk
MTU5ZmYzZDhhODVhMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTMwOCw2ICszMDgsOCBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWRGaWx0ZXJOb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9DaGFu
bmVsQ291bnRNb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVs
SW50ZXJwcmV0YXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5u
ZWxNZXJnZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVs
U3BsaXR0ZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2
ZXJOb2RlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCBhYWVjOTkzMzk5MTEyNTgzODE0OWNlZmYzNWU5YzBjZmIzYWY2NTEwLi4w
MzQ2YmNlOTRlMDZmN2QzZGExZTk0MWM5MTgyODk3ZGU4ZTE2MjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMzAxLDYgKzMwMSwx
MCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZh
c1RyYW5zZm9ybS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ2FudmFzVHJhbnNmb3JtLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQ2FudmFzVXNlckludGVyZmFjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzVXNlckludGVyZmFjZS5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxDb3VudE1v
ZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0No
YW5uZWxDb3VudE1vZGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDaGFubmVsSW50ZXJwcmV0YXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxJbnRlcnByZXRhdGlvbi5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxNZXJnZXJOb2Rl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFu
bmVsTWVyZ2VyTm9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAzNDFkODc1N2MyYTdjMzJjMDg0NDJiZjlmMDRkNGU1YmJjN2NjODY3Li43ZDgyOWFi
Njc2MTJjNTVkMWE4ZGM0MDE2ZjlhNmNkM2I1MmY5MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTM5MSw2ICszOTEsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAppbmRleCBjZTgyNDY5
ZjY0NmMxNmRhMmE5ODUzYjEzOGE5NGJmZjlkOGMxZmRhLi45NzQyYmRkODZjZTM2MjQxZmJkMjY3
OTM5ZjRiODZhZjE3ZDMzMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgQXVkaW9Ob2RlOjpBdWRpb05vZGUo
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICNlbmRpZgogICAg
ICwgbV9jaGFubmVsQ291bnQoMikKICAgICAsIG1fY2hhbm5lbENvdW50TW9kZShNYXgpCi0gICAg
LCBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbihBdWRpb0J1czo6U3BlYWtlcnMpCisgICAgLCBtX2No
YW5uZWxJbnRlcnByZXRhdGlvbihDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgCkBAIC0yOTIsMjEgKzI5MiwxMiBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBj
aGFubmVsQ291bnQpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotU3RyaW5nIEF1ZGlvTm9kZTo6Y2hh
bm5lbENvdW50TW9kZSgpCitDaGFubmVsQ291bnRNb2RlIEF1ZGlvTm9kZTo6Y2hhbm5lbENvdW50
TW9kZSgpCiB7Ci0gICAgc3dpdGNoIChtX2NoYW5uZWxDb3VudE1vZGUpIHsKLSAgICBjYXNlIE1h
eDoKLSAgICAgICAgcmV0dXJuICJtYXgiX3M7Ci0gICAgY2FzZSBDbGFtcGVkTWF4OgotICAgICAg
ICByZXR1cm4gImNsYW1wZWQtbWF4Il9zOwotICAgIGNhc2UgRXhwbGljaXQ6Ci0gICAgICAgIHJl
dHVybiAiZXhwbGljaXQiX3M7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2NoYW5uZWxDb3VudE1vZGU7CiB9
CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50TW9kZShjb25z
dCBTdHJpbmcmIG1vZGUpCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxD
b3VudE1vZGUoY29uc3QgQ2hhbm5lbENvdW50TW9kZSBtb2RlKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgQmFzZUF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29u
dGV4dCgpKTsKQEAgLTMxNSwxMSArMzA2LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9k
ZTo6c2V0Q2hhbm5lbENvdW50TW9kZShjb25zdCBTdHJpbmcmIG1vZGUpCiAgICAgCiAgICAgQ2hh
bm5lbENvdW50TW9kZSBvbGRNb2RlID0gbV9jaGFubmVsQ291bnRNb2RlOwogCi0gICAgaWYgKG1v
ZGUgPT0gIm1heCIpCisgICAgaWYgKG1vZGUgPT0gTWF4KQogICAgICAgICBtX2NoYW5uZWxDb3Vu
dE1vZGUgPSBNYXg7Ci0gICAgZWxzZSBpZiAobW9kZSA9PSAiY2xhbXBlZC1tYXgiKQorICAgIGVs
c2UgaWYgKG1vZGUgPT0gQ2xhbXBlZE1heCkKICAgICAgICAgbV9jaGFubmVsQ291bnRNb2RlID0g
Q2xhbXBlZE1heDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJleHBsaWNpdCIpCisgICAgZWxzZSBp
ZiAobW9kZSA9PSBFeHBsaWNpdCkKICAgICAgICAgbV9jaGFubmVsQ291bnRNb2RlID0gRXhwbGlj
aXQ7CiAgICAgZWxzZQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKQEAgLTMzMCwyOSArMzIxLDIyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6
c2V0Q2hhbm5lbENvdW50TW9kZShjb25zdCBTdHJpbmcmIG1vZGUpCiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotU3RyaW5nIEF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKCkKK0NoYW5uZWxJ
bnRlcnByZXRhdGlvbiBBdWRpb05vZGU6OmNoYW5uZWxJbnRlcnByZXRhdGlvbigpCiB7Ci0gICAg
c3dpdGNoIChtX2NoYW5uZWxJbnRlcnByZXRhdGlvbikgewotICAgIGNhc2UgQXVkaW9CdXM6OlNw
ZWFrZXJzOgotICAgICAgICByZXR1cm4gInNwZWFrZXJzIl9zOwotICAgIGNhc2UgQXVkaW9CdXM6
OkRpc2NyZXRlOgotICAgICAgICByZXR1cm4gImRpc2NyZXRlIl9zOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICByZXR1cm4g
bV9jaGFubmVsSW50ZXJwcmV0YXRpb247CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9k
ZTo6c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKGNvbnN0IFN0cmluZyYgaW50ZXJwcmV0YXRpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxJbnRlcnByZXRhdGlvbihj
b25zdCBDaGFubmVsSW50ZXJwcmV0YXRpb24gaW50ZXJwcmV0YXRpb24pCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tl
cihjb250ZXh0KCkpOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBpbnRlcnByZXRh
dGlvbik7CiAgICAgCi0gICAgaWYgKGludGVycHJldGF0aW9uID09ICJzcGVha2VycyIpCi0gICAg
ICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOwotICAgIGVs
c2UgaWYgKGludGVycHJldGF0aW9uID09ICJkaXNjcmV0ZSIpCi0gICAgICAgIG1fY2hhbm5lbElu
dGVycHJldGF0aW9uID0gQXVkaW9CdXM6OkRpc2NyZXRlOworICAgIGlmIChpbnRlcnByZXRhdGlv
biA9PSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKQorICAgICAgICBtX2NoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7CisgICAgZWxz
ZSBpZiAoaW50ZXJwcmV0YXRpb24gPT0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0ZSkK
KyAgICAgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246
OkRpc2NyZXRlOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CiAKQEAgLTM5NCw3ICszNzgsNyBAQCB2b2lkIEF1ZGlvTm9kZTo6cHJvY2Vz
c0lmTmVjZXNzYXJ5KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAKICAgICAgICAgYm9vbCBzaWxl
bnRJbnB1dHMgPSBpbnB1dHNBcmVTaWxlbnQoKTsKICAgICAgICAgaWYgKCFzaWxlbnRJbnB1dHMp
Ci0gICAgICAgICAgICBtX2xhc3ROb25TaWxlbnRUaW1lID0gKGNvbnRleHQoKS5jdXJyZW50U2Ft
cGxlRnJhbWUoKSArIGZyYW1lc1RvUHJvY2VzcykgLyBzdGF0aWNfY2FzdDxkb3VibGU+KG1fc2Ft
cGxlUmF0ZSk7CisgICAgICAgICAgICBtX2xhc3ROb25TaWxlbnRUaW1lID0gKGNvbnRleHQoKS5j
dXJyZW50U2FtcGxlRnJhbWUoKSArIGZyYW1lc1RvUHJvY2VzcykgLyBzdGF0aWNfY2FzdDxkb3Vi
bGU+KGNvbnRleHQoKS5zYW1wbGVSYXRlKCkpOwogCiAgICAgICAgIGlmIChzaWxlbnRJbnB1dHMg
JiYgcHJvcGFnYXRlc1NpbGVuY2UoKSkKICAgICAgICAgICAgIHNpbGVuY2VPdXRwdXRzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAppbmRleCBlZjViZWZk
ZWU0NGQ0NGY2OWRiMjg5NmY4MDQ3YTgzZGMxMTcyM2FhLi5kYTRhYjI1MGUwYjhiZDlmMWUzOGYz
MjE3OTNmOWYwYzE2NWI2ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlLmgKQEAgLTI1LDYgKzI1LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
QXVkaW9CdXMuaCIKKyNpbmNsdWRlICJDaGFubmVsQ291bnRNb2RlLmgiCisjaW5jbHVkZSAiQ2hh
bm5lbEludGVycHJldGF0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC05MiwxMiArOTQs
NiBAQCBwdWJsaWM6CiAgICAgICAgIE5vZGVUeXBlRW5kCiAgICAgfTsKIAotICAgIGVudW0gQ2hh
bm5lbENvdW50TW9kZSB7Ci0gICAgICAgIE1heCwKLSAgICAgICAgQ2xhbXBlZE1heCwKLSAgICAg
ICAgRXhwbGljaXQKLSAgICB9OwotCiAgICAgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX25vZGVUeXBlOyB9CiAgICAgdm9pZCBzZXROb2RlVHlwZShOb2RlVHlwZSk7CiAKQEAg
LTE4MCwxNCArMTc2LDE0IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBjaGFubmVsQ291bnQoKTsK
ICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCk7
CiAKLSAgICBTdHJpbmcgY2hhbm5lbENvdW50TW9kZSgpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldENoYW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJik7CisgICAgQ2hhbm5lbENvdW50TW9k
ZSBjaGFubmVsQ291bnRNb2RlKCk7CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRD
aGFubmVsQ291bnRNb2RlKGNvbnN0IENoYW5uZWxDb3VudE1vZGUpOwogCi0gICAgU3RyaW5nIGNo
YW5uZWxJbnRlcnByZXRhdGlvbigpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxJ
bnRlcnByZXRhdGlvbihjb25zdCBTdHJpbmcmKTsKKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24g
Y2hhbm5lbEludGVycHJldGF0aW9uKCk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5l
bEludGVycHJldGF0aW9uKGNvbnN0IENoYW5uZWxJbnRlcnByZXRhdGlvbik7CiAKICAgICBDaGFu
bmVsQ291bnRNb2RlIGludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2hhbm5lbENvdW50TW9kZTsgfQotICAgIEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJwcmV0YXRpb24g
aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxJ
bnRlcnByZXRhdGlvbjsgfQorICAgIENoYW5uZWxJbnRlcnByZXRhdGlvbiBpbnRlcm5hbENoYW5u
ZWxJbnRlcnByZXRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbEludGVycHJldGF0aW9u
OyB9CiAKIHByb3RlY3RlZDoKICAgICAvLyBJbnB1dHMgYW5kIG91dHB1dHMgbXVzdCBiZSBjcmVh
dGVkIGJlZm9yZSB0aGUgQXVkaW9Ob2RlIGlzIGluaXRpYWxpemVkLgpAQCAtMjUxLDcgKzI0Nyw3
IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbV9jaGFubmVsQ291bnQ7CiAg
ICAgQ2hhbm5lbENvdW50TW9kZSBtX2NoYW5uZWxDb3VudE1vZGU7Ci0gICAgQXVkaW9CdXM6OkNo
YW5uZWxJbnRlcnByZXRhdGlvbiBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBDaGFubmVs
SW50ZXJwcmV0YXRpb24gbV9jaGFubmVsSW50ZXJwcmV0YXRpb247CiB9OwogCiBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9Ob2RlOjpOb2RlVHlwZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKaW5kZXggNjM2YTk1YzM4OWQ3
MDhkYTQ5Zjc2YjE3NjdkN2JhMmE0ODkyYTYxMy4uMDRmODBlYjA1ZjFmYTliNGUyZTRiYjdmYmZj
OGViOTE1OGExYTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmlkbApAQCAtMzAsOCArMzAsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIG51bWJlck9mT3V0cHV0czsKIAogICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGNoYW5uZWxDb3VudDsKLSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYW5uZWxDb3VudE1vZGU7
Ci0gICAgYXR0cmlidXRlIERPTVN0cmluZyBjaGFubmVsSW50ZXJwcmV0YXRpb247CisgICAgYXR0
cmlidXRlIENoYW5uZWxDb3VudE1vZGUgY2hhbm5lbENvdW50TW9kZTsKKyAgICBhdHRyaWJ1dGUg
Q2hhbm5lbEludGVycHJldGF0aW9uIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKIAogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gQXVkaW9Ob2RlIGNvbm5lY3QoW1JldHVyblZhbHVlXSBBdWRpb05vZGUg
ZGVzdGluYXRpb24sIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb3V0cHV0ID0gMCwgb3B0aW9uYWwg
dW5zaWduZWQgbG9uZyBpbnB1dCA9IDApOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBj
b25uZWN0KEF1ZGlvUGFyYW0gZGVzdGluYXRpb24sIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb3V0
cHV0ID0gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlSW5wdXQuY3BwCmluZGV4IGNjYWE1MWQ4MjJlMGM4NTU2M2U5ZTJmZDVkZjEzNjBiNGVhY2Zm
N2IuLjU4YTg0NjFiNDcwMDQwMDA1YWQ0NzgxZTQwOWZhMTg1ZWJkY2IxY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9O
b2RlLmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCisjaW5jbHVkZSAiQ2hhbm5lbENv
dW50TW9kZS5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTQ0LDggKzE0NSw4IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnVwZGF0ZUludGVybmFsQnVz
KCkKIAogdW5zaWduZWQgQXVkaW9Ob2RlSW5wdXQ6Om51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAog
ewotICAgIEF1ZGlvTm9kZTo6Q2hhbm5lbENvdW50TW9kZSBtb2RlID0gbm9kZSgpLT5pbnRlcm5h
bENoYW5uZWxDb3VudE1vZGUoKTsKLSAgICBpZiAobW9kZSA9PSBBdWRpb05vZGU6OkV4cGxpY2l0
KQorICAgIENoYW5uZWxDb3VudE1vZGUgbW9kZSA9IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291
bnRNb2RlKCk7CisgICAgaWYgKG1vZGUgPT0gRXhwbGljaXQpCiAgICAgICAgIHJldHVybiBub2Rl
KCktPmNoYW5uZWxDb3VudCgpOwogCiAgICAgLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNoYW5uZWxz
IG9mIHRoZSBjb25uZWN0aW9uIHdpdGggdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYW5uZWxzLgpA
QCAtMTU3LDcgKzE1OCw3IEBAIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5u
ZWxzKCkgY29uc3QKICAgICAgICAgbWF4Q2hhbm5lbHMgPSBzdGQ6Om1heChtYXhDaGFubmVscywg
b3V0cHV0LT5udW1iZXJPZkNoYW5uZWxzKCkpOwogICAgIH0KIAotICAgIGlmIChtb2RlID09IEF1
ZGlvTm9kZTo6Q2xhbXBlZE1heCkKKyAgICBpZiAobW9kZSA9PSBDbGFtcGVkTWF4KQogICAgICAg
ICBtYXhDaGFubmVscyA9IHN0ZDo6bWluKG1heENoYW5uZWxzLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obm9kZSgpLT5jaGFubmVsQ291bnQoKSkpOwogCiAgICAgcmV0dXJuIG1heENoYW5uZWxzOwpA
QCAtMTY4LDcgKzE2OSw3IEBAIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6YnVzKCkKICAgICBB
U1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7CiAKICAgICAvLyBIYW5kbGUgc2luZ2xl
IGNvbm5lY3Rpb24gc3BlY2lhbGx5IHRvIGFsbG93IGZvciBpbi1wbGFjZSBwcm9jZXNzaW5nLgot
ICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmlu
dGVybmFsQ2hhbm5lbENvdW50TW9kZSgpID09IEF1ZGlvTm9kZTo6TWF4KQorICAgIGlmIChudW1i
ZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmludGVybmFsQ2hhbm5l
bENvdW50TW9kZSgpID09IE1heCkKICAgICAgICAgcmV0dXJuIHJlbmRlcmluZ091dHB1dCgwKS0+
YnVzKCk7CiAKICAgICAvLyBNdWx0aXBsZSBjb25uZWN0aW9ucyBjYXNlIG9yIGNvbXBsZXggQ2hh
bm5lbENvdW50TW9kZSAob3Igbm8gY29ubmVjdGlvbnMpLgpAQCAtMTg3LDcgKzE4OCw3IEBAIHZv
aWQgQXVkaW9Ob2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKEF1ZGlvQnVzKiBzdW1taW5nQnVz
LCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFk
KCkpOwogCiAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIGNhbGxpbmcgdGhpcyBtZXRob2QgaWYgdGhl
cmUncyBvbmx5IG9uZSBjb25uZWN0aW9uLCBzaW5jZSBpdCdzIGxlc3MgZWZmaWNpZW50LgotICAg
IEFTU0VSVChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPiAxIHx8IG5vZGUoKS0+aW50
ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgIT0gQXVkaW9Ob2RlOjpNYXgpOworICAgIEFTU0VSVChu
dW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPiAxIHx8IG5vZGUoKS0+aW50ZXJuYWxDaGFu
bmVsQ291bnRNb2RlKCkgIT0gTWF4KTsKIAogICAgIEFTU0VSVChzdW1taW5nQnVzKTsKICAgICBp
ZiAoIXN1bW1pbmdCdXMpCkBAIC0xOTUsNyArMTk2LDcgQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6
c3VtQWxsQ29ubmVjdGlvbnMoQXVkaW9CdXMqIHN1bW1pbmdCdXMsIHNpemVfdCBmcmFtZXNUb1By
b2MKICAgICAgICAgCiAgICAgc3VtbWluZ0J1cy0+emVybygpOwogCi0gICAgQXVkaW9CdXM6OkNo
YW5uZWxJbnRlcnByZXRhdGlvbiBpbnRlcnByZXRhdGlvbiA9IG5vZGUoKS0+aW50ZXJuYWxDaGFu
bmVsSW50ZXJwcmV0YXRpb24oKTsKKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24gaW50ZXJwcmV0
YXRpb24gPSBub2RlKCktPmludGVybmFsQ2hhbm5lbEludGVycHJldGF0aW9uKCk7CiAKICAgICBm
b3IgKGF1dG8mIG91dHB1dCA6IG1fcmVuZGVyaW5nT3V0cHV0cykgewogICAgICAgICBBU1NFUlQo
b3V0cHV0KTsKQEAgLTIxMyw3ICsyMTQsNyBAQCBBdWRpb0J1cyogQXVkaW9Ob2RlSW5wdXQ6OnB1
bGwoQXVkaW9CdXMqIGluUGxhY2VCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNT
RVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAgLy8gSGFuZGxlIHNpbmdsZSBj
b25uZWN0aW9uIGNhc2UuCi0gICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9
PSAxICYmIG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgPT0gQXVkaW9Ob2RlOjpN
YXgpIHsKKyAgICBpZiAobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpID09IDEgJiYgbm9k
ZSgpLT5pbnRlcm5hbENoYW5uZWxDb3VudE1vZGUoKSA9PSBNYXgpIHsKICAgICAgICAgLy8gVGhl
IG91dHB1dCB3aWxsIG9wdGltaXplIHByb2Nlc3NpbmcgdXNpbmcgaW5QbGFjZUJ1cyBpZiBpdCdz
IGFibGUuCiAgICAgICAgIEF1ZGlvTm9kZU91dHB1dCogb3V0cHV0ID0gdGhpcy0+cmVuZGVyaW5n
T3V0cHV0KDApOwogICAgICAgICByZXR1cm4gb3V0cHV0LT5wdWxsKGluUGxhY2VCdXMsIGZyYW1l
c1RvUHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3B0aW9ucy5oCmluZGV4IDdhZDk4MmI1OGI2OGFhODhkMGNiZWE3NmU3OWE1NjQxMGIw
MTliMWUuLjA0MGYwNzg0NjYyMGM3NzEyNWZhNWVmNTMzMzUxZTk1YWNmYmM1YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oCkBA
IC0yNywxNSArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlICJD
aGFubmVsQ291bnRNb2RlLmgiCisjaW5jbHVkZSAiQ2hhbm5lbEludGVycHJldGF0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
IE9wdGlvbmFsPHVuc2lnbmVkPiBjaGFubmVsQ291bnQ7Ci0gICAgU3RyaW5nIGNoYW5uZWxDb3Vu
dE1vZGU7Ci0gICAgU3RyaW5nIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBPcHRpb25hbDxD
aGFubmVsQ291bnRNb2RlPiBjaGFubmVsQ291bnRNb2RlOworICAgIE9wdGlvbmFsPENoYW5uZWxJ
bnRlcnByZXRhdGlvbj4gY2hhbm5lbEludGVycHJldGF0aW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGVPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3B0aW9ucy5pZGwKaW5kZXggMGE0MDMwZTM3ZTM5ODNmNzUyM2RjNGJkYWM0YzA4YzQ4
OTg3NzQwNi4uZTUxNGRiY2QwMjM0MTdhZmU4OWEyYjFmYzg5ZjMzNTVhMzBlOTYwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMu
aWRsCkBAIC0yNiwxMCArMjYsNiBAQAogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKIF0gZGlj
dGlvbmFyeSBBdWRpb05vZGVPcHRpb25zIHsKICAgICB1bnNpZ25lZCBsb25nIGNoYW5uZWxDb3Vu
dDsKLSAgICAKLSAgICAvLyBGSVhNRTogU2hvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIENoYW5uZWxD
b3VudE1vZGUgZW51bSB0eXBlLgotICAgIERPTVN0cmluZyBjaGFubmVsQ291bnRNb2RlOwotICAg
IAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmUgdXBkYXRlZCB0byB1c2UgQ2hhbm5lbEludGVycHJl
dGF0aW9uIGVudW0gdHlwZS4KLSAgICBET01TdHJpbmcgY2hhbm5lbEludGVycHJldGF0aW9uOwor
ICAgIENoYW5uZWxDb3VudE1vZGUgY2hhbm5lbENvdW50TW9kZTsKKyAgICBDaGFubmVsSW50ZXJw
cmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIyYzk2
ZDcxZjViMDEwZmVmMTZlOTAwOGE1MmQxNzU2NGQwOTI5YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIENoYW5uZWxDb3VudE1vZGUgeworICAgIE1heCwKKyAgICBDbGFtcGVkTWF4LAor
ICAgIEV4cGxpY2l0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGMyNWM4OTZmOGEzY2UzY2RiN2NmZGYzZTUyMDdjYTRjN2IxNjhhZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9k
ZS5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VC
X0FVRElPLAorXSBlbnVtIENoYW5uZWxDb3VudE1vZGUgeworICAgICJtYXgiLAorICAgICJjbGFt
cGVkLW1heCIsCisgICAgImV4cGxpY2l0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVi
M2RhMjg3YzIwMGY1ZTRiNmM3YTM3YWY4OGI0NzNmNjVmZDFjZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5o
CkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkF1ZGlvQnVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI5NDFhMTU2OGMzMzIz
MDJmNDFjZDY4NGI4ZWZmOWI4NTUzMzYzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbApAQCAtMCwwICsx
LDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGVudW0g
Q2hhbm5lbEludGVycHJldGF0aW9uIHsKKyAgICAic3BlYWtlcnMiLAorICAgICJkaXNjcmV0ZSIK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZl
ck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmNwcAppbmRleCA3ZTEzOGQ0ZDMxMzZiNzE5N2QzYjdlYmJmYTAwMjFjODRmNzMyYjhhLi5mNzMz
OWRhZWNmYmE3MmFlZGQ3MjVjYTExZDBlNmU5NTIwNzg5YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKQEAgLTU4LDcgKzU4LDcg
QEAgQ29udm9sdmVyTm9kZTo6Q29udm9sdmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0
LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcg
cnVsZXMuCiAgICAgbV9jaGFubmVsQ291bnQgPSAyOwogICAgIG1fY2hhbm5lbENvdW50TW9kZSA9
IENsYW1wZWRNYXg7Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3Bl
YWtlcnM7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRp
b246OlNwZWFrZXJzOwogICAgIAogICAgIGluaXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcAppbmRleCA0ZGQ5OWMxOTJiNmEzMzVhNjAxZmZkNTE1NTFiMDFiMGQ5NmNi
NjA5Li4xMDgwYzhlMWJmODc0MzM5YmUyZTdkNDdiNDMwODUxMTdjYTFlOTUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00OSw3ICs0OSw3IEBAIERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRlCiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBt
X2NoYW5uZWxDb3VudCA9IDI7CiAgICAgbV9jaGFubmVsQ291bnRNb2RlID0gRXhwbGljaXQ7Ci0g
ICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAgbV9j
aGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwog
fQogCiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6On5EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5j
cHAKaW5kZXggNTJjMDRjMjU3YTA2OTgwNGUyMmEwZjNjZTY3OWI0ZGQ2MDkyYmZhYi4uYTEyNTA2
MGI3NTI1ODg0Y2FmN2ExYTc0NmVmYjE2MjFkNWM0OTM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNs
dWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJDaGFubmVsQ291bnRNb2RlLmgiCiAj
aW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTc2LDcgKzc3LDcgQEAgUGFu
bmVyTm9kZTo6UGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1w
bGVSYXRlKQogICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMuCiAgICAg
bV9jaGFubmVsQ291bnQgPSAyOwogICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7
Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAg
bV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJz
OwogCiAgICAgbV9kaXN0YW5jZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRp
c3RhbmNlR2FpbiIsIDEuMCwgMC4wLCAxLjApOwogICAgIG1fY29uZUdhaW4gPSBBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgImNvbmVHYWluIiwgMS4wLCAwLjAsIDEuMCk7CkBAIC0xMTMsMTEg
KzExNCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8UGFubmVyTm9kZT4+IFBhbm5lck5vZGU6OmNyZWF0
ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAg
IAotICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0Q2hhbm5lbENvdW50TW9kZShvcHRpb25zLmNoYW5u
ZWxDb3VudE1vZGUuaXNOdWxsKCkgPyAiY2xhbXBlZC1tYXgiX3N0ciA6IG9wdGlvbnMuY2hhbm5l
bENvdW50TW9kZSk7CisgICAgcmVzdWx0ID0gcGFubmVyLT5zZXRDaGFubmVsQ291bnRNb2RlKG9w
dGlvbnMuY2hhbm5lbENvdW50TW9kZS52YWx1ZU9yKENsYW1wZWRNYXgpKTsKICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKTsKICAgICAKLSAgICByZXN1bHQgPSBwYW5uZXItPnNldENoYW5uZWxJbnRlcnByZXRhdGlv
bihvcHRpb25zLmNoYW5uZWxJbnRlcnByZXRhdGlvbi5pc051bGwoKSA/ICJzcGVha2VycyJfc3Ry
IDogb3B0aW9ucy5jaGFubmVsSW50ZXJwcmV0YXRpb24pOworICAgIHJlc3VsdCA9IHBhbm5lci0+
c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKG9wdGlvbnMuY2hhbm5lbEludGVycHJldGF0aW9uLnZh
bHVlT3IoQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycykpOwogICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgIApAQCAtMzM1LDYgKzMzNiwzMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2Rl
OjpzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSBnYWluKQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4
Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBjaGFu
bmVsQ291bnQpCit7CisgICAgaWYgKGNoYW5uZWxDb3VudCA+IDIpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIAorICAgIGF1dG8gcmVzdWx0ID0g
dGhpcy0+QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnQoY2hhbm5lbENvdW50KTsKKyAgICAKKyAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKKyAgICAKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2
b2lkPiBQYW5uZXJOb2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0IENoYW5uZWxDb3VudE1v
ZGUgbW9kZSkKK3sKKyAgICBpZiAobW9kZSA9PSBNYXgpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIAorICAgIGF1dG8gcmVzdWx0ID0gdGhpcy0+
QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKG1vZGUpOworICAgIAorICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOworICAgIAorICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgUGFubmVyTm9kZTo6Z2V0QXpp
bXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKQog
ewogICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgY2FjaGUgYXppbXV0aCBhbmQgZWxldmF0aW9uIChp
ZiBwb3NzaWJsZSksIHNvIHdlIG9ubHkgcmUtY2FsY3VsYXRlIGlmIGEgY2hhbmdlIGhhcyBiZWVu
IG1hZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCmlu
ZGV4IDM5ZDVjMzcyMmU5MjZkNDhkYzg1ODllYzliMTdhMGY0NWZjNzZhNWIuLmQyODJmNzhlNTQ2
NjYzNjhlZTAzYjBkMGM0MzI1NzJkZDhhZTQ4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCkBAIC0xMjcsNiArMTI3LDkgQEAgcHVibGljOgogCiAg
ICAgZG91YmxlIGNvbmVPdXRlckdhaW4oKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3Qub3V0
ZXJHYWluKCk7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDb25lT3V0ZXJHYWluKGRvdWJs
ZSk7CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVk
KSBvdmVycmlkZTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnRNb2RlKGNv
bnN0IENoYW5uZWxDb3VudE1vZGUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBnZXRBemltdXRoRWxl
dmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pOwogICAgIGZs
b2F0IGRvcHBsZXJSYXRlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHAKaW5kZXggMjU4ZjQ1ZTdj
ZmQ5MWM4MjJjNjk5MmU3NThkYWE3NThhZDc5MDJlMi4uYmQyMWE0ZDZkZGJlNTk3N2FmOGMzYTJl
MzNmYjNkZmEzNDc3NDc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmNwcApAQCAtNjUsNyArNjUsNyBAQCBX
ZWJLaXRBdWRpb1Bhbm5lck5vZGU6OldlYktpdEF1ZGlvUGFubmVyTm9kZShXZWJLaXRBdWRpb0Nv
bnRleHQmIGNvbnRleHQsIGZsb2F0CiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZhdWx0IG1peGlu
ZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9IDI7CiAgICAgbV9jaGFubmVsQ291bnRNb2Rl
ID0gQ2xhbXBlZE1heDsKLSAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpT
cGVha2VyczsKKyAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRh
dGlvbjo6U3BlYWtlcnM7CiAKICAgICBtX2Rpc3RhbmNlR2FpbiA9IEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAiZGlzdGFuY2VHYWluIiwgMS4wLCAwLjAsIDEuMCk7CiAgICAgbV9jb25lR2Fp
biA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiY29uZUdhaW4iLCAxLjAsIDAuMCwgMS4w
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMThlZTAwYTQ3NzFhMGU4NmVlNTE0ODBjNzhiYjAzNjY1NWZj
Y2QxNS4uODlhYjk5NmVhMTE0OTBkYTRjYTg0NDUzMGE4NmFjM2JkNGFjOWVhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTI3MDEsNiArMjcwMSw4IEBAIEpTQ2FudmFzVGV4dEJhc2VsaW5lLmNwcAogSlND
YW52YXNUZXh0RHJhd2luZ1N0eWxlcy5jcHAKIEpTQ2FudmFzVHJhbnNmb3JtLmNwcAogSlNDYW52
YXNVc2VySW50ZXJmYWNlLmNwcAorSlNDaGFubmVsQ291bnRNb2RlLmNwcAorSlNDaGFubmVsSW50
ZXJwcmV0YXRpb24uY3BwCiBKU0NoYW5uZWxNZXJnZXJOb2RlLmNwcAogSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcAogSlNDaGFyYWN0ZXJEYXRhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM0NjllMDZlY2E5MjhlMTQxMzIx
NDZkMjE1YTk5ZjY4ZWQxZjkzYWQuLmY1OTAzMTEzZGY0ZmMwZWY2YTQyOGM2OTg2M2FmYmNhZDA5
N2U0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTUwNDAsNiArNTA0MCw4IEBACiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUz
RiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0
NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUw
IC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87
IH07CisJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkxMTI0QjRE
MUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovOyB9OworCQlFNzg1RDkzNDI0QjYz
NkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyog
Q2hhbm5lbEludGVycHJldGF0aW9uLmggKi87IH07CiAJCUVCRTVCMjI2MjQ1QTI2RUYwMDNBNUE4
OCAvKiBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJFNUIyMjQyNDVBMjZFRTAwM0E1QTg4IC8qIFNR
TGl0ZVN0YXRlbWVudEF1dG9SZXNldFNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlw
ZUNvbnZlcnNpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEVCRjUxMjFBMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAg
Ki87IH07CiAJCUVCRjUxMjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUIx
Njk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggKi87IH07CkBAIC0xNTc4MCw2
ICsxNTc4MiwxMCBAQAogCQlFNzE0NjdCNDI0QUJBRjBCMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQXVkaW9Ob2RlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjcyNEFCQUYyQzAwRkIyRjUwIC8qIFBhbm5lck9w
dGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hh
bm5lbENvdW50TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFu
bmVsQ291bnRNb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRl
cnByZXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5MzMyNEI2MzZGRjAwMTREQjIxIC8qIENo
YW5uZWxJbnRlcnByZXRhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8q
IFR5cGVDb252ZXJzaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5
cGVDb252ZXJzaW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVHlwZUNvbnZlcnNpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRUJFNUIyMjQyNDVBMjZFRTAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRl
bWVudEF1dG9SZXNldFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNR
TGl0ZVN0YXRlbWVudEF1dG9SZXNldFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yOTM1NSw2ICsyOTM2MSwxMCBAQAogCQkJCUZEQzU0RjAzMTM5OUIwREEwMDhEOTExNyAv
KiBCaXF1YWRGaWx0ZXJOb2RlLmlkbCAqLywKIAkJCQlGRDMxNUZEQzEyQjAyNjc2MDBDMUEzNTkg
LyogQmlxdWFkUHJvY2Vzc29yLmNwcCAqLywKIAkJCQlGRDMxNUZERDEyQjAyNjc2MDBDMUEzNTkg
LyogQmlxdWFkUHJvY2Vzc29yLmggKi8sCisJCQkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8q
IENoYW5uZWxDb3VudE1vZGUuaCAqLywKKwkJCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5pZGwgKi8sCisJCQkJRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8q
IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oICovLAorCQkJCUU3ODVEOTMzMjRCNjM2RkYwMDE0REIy
MSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsICovLAogCQkJCUZEMzE1RkI0MTJCMDI2NzUw
MEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5jcHAgKi8sCiAJCQkJRkQzMTVGQjUxMkIwMjY3
NTAwQzFBMzU5IC8qIENoYW5uZWxNZXJnZXJOb2RlLmggKi8sCiAJCQkJRkQzMTVGQjYxMkIwMjY3
NTAwQzFBMzU5IC8qIENoYW5uZWxNZXJnZXJOb2RlLmlkbCAqLywKQEAgLTMwMDYyLDYgKzMwMDcy
LDggQEAKIAkJCQk5MUI4RjBCNTIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUzNkZEMTUxNkM3ODI2NTAwRjg4N0MxIC8qIENoYW5n
ZVZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDNjlERDE1MDVGMDc2MDAxQjc0
QUMgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU3ODVEOTE1
MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNzg1RDkzNDI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNUZGRjEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdl
ck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDAyMTJCMDI2NzYwMEMxQTM1OSAvKiBD
aGFubmVsU3BsaXR0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjZBMDA5OURGMDI3
MDA5MEQ3ODEgLyogQ2hhcmFjdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDA5Nyw2ICsz
MDEwOSw3IEBACiAJCQkJQzM3Q0RFQkQxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENv
bG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQUM2QUYwMjQ3RjQxMTAwMEU2MUQ1OSAv
KiBDb2xvckNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDNTE0RTAzMjRBRjgwNUUw
MDUwNzEwRiAvKiBDb2xvckNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDNCN0RG
MURCMDE1NjcwMDhCQjg5MCAvKiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIz
REI0MTI1MUYxMkQwMDNFRjI2OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVycyAqLywK
QEAgLTMzOTIzLDcgKzMzOTM2LDYgQEAKIAkJCQk5MTI3OEQ2MjIxREVEQUYwMDBCNTcxODQgLyog
V29ya2VyQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBN0QzNTMxRjQzOEQxNjAw
ODk4OERFIC8qIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1QjgxQ0NEMUZBQTQ0REUwMDM3RDFFNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTdDNTE0RTAzMjRBRjgwNUUwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTYzOUQxMUM2RjA5RTMwMDgwNkQ4RSAvKiBXb3Jr
ZXJDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRTFGQUE0NERFMDAz
N0QxRTYgLyogV29ya2VyRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUyQjM0
OUUxRkE0MTcwMzAwOEI2MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4IGU3MGQ0
NmQwYjlmMjQwN2Y5MDg1NDhmYThmMmU5OGM5ZGE0NTYzYjcuLmRmMjNhMGU2MDNkYmQyZjA0N2Fm
ZWE5ZGYzMWE2YzBjODhiZjZhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5jcHAKQEAgLTI1MywxMCArMjUzLDEwIEBAIHZvaWQgQXVkaW9CdXM6OmNvcHlGcm9t
KGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVs
CiAgICAgICAgICAgICBjaGFubmVsKGkpLT5jb3B5RnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgc3dpdGNoIChjaGFubmVsSW50ZXJwcmV0YXRpb24pIHsK
LSAgICAgICAgY2FzZSBTcGVha2VyczoKKyAgICAgICAgY2FzZSBDaGFubmVsSW50ZXJwcmV0YXRp
b246OlNwZWFrZXJzOgogICAgICAgICAgICAgc3BlYWtlcnNDb3B5RnJvbShzb3VyY2VCdXMpOwog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGlzY3JldGU6CisgICAgICAgIGNhc2Ug
Q2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0ZToKICAgICAgICAgICAgIGRpc2NyZXRlQ29w
eUZyb20oc291cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpA
QCAtMjc4LDEwICsyNzgsMTAgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1
cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEkKICAgICAgICAgICAg
IGNoYW5uZWwoaSktPnN1bUZyb20oc291cmNlQnVzLmNoYW5uZWwoaSkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHN3aXRjaCAoY2hhbm5lbEludGVycHJldGF0aW9uKSB7Ci0gICAgICAgIGNhc2Ug
U3BlYWtlcnM6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczoK
ICAgICAgICAgICAgIHNwZWFrZXJzU3VtRnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgRGlzY3JldGU6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpEaXNjcmV0ZToKICAgICAgICAgICAgIGRpc2NyZXRlU3VtRnJvbShzb3VyY2VCdXMp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9CdXMuaAppbmRleCAxNjgwMzQ3MzZhN2QyNzY4OGVkZTQwOTlhZGQw
YzE4YzkxYTI4NjRjLi5iNWE4ZjhhZjA1ZTQ4ZDJjNWYzOWRiMmE4ZjZiODRiOGZjNzQyOGUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKQEAgLTQwLDYgKzQwLDEy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEFuIEF1ZGlvQnVzIHJlcHJlc2VudHMgYSBjb2xs
ZWN0aW9uIG9mIG9uZSBvciBtb3JlIEF1ZGlvQ2hhbm5lbHMuCiAvLyBUaGUgZGF0YSBsYXlvdXQg
aXMgInBsYW5hciIgYXMgb3Bwb3NlZCB0byAiaW50ZXJsZWF2ZWQiLgogLy8gQW4gQXVkaW9CdXMg
d2l0aCBvbmUgY2hhbm5lbCBpcyBtb25vLCBhbiBBdWRpb0J1cyB3aXRoIHR3byBjaGFubmVscyBp
cyBzdGVyZW8sIGV0Yy4KKworZW51bSBjbGFzcyBDaGFubmVsSW50ZXJwcmV0YXRpb24geworICAg
IFNwZWFrZXJzLAorICAgIERpc2NyZXRlLAorfTsKKwogY2xhc3MgQXVkaW9CdXMgZmluYWwgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9CdXM+IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBdWRpb0J1cyk7CiBwdWJsaWM6CkBAIC01OCwxMSArNjQsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vIENhbiBkZWZpbmUgbm9uLXN0YW5kYXJkIGxheW91dHMgaGVyZQogICAgIH07CiAK
LSAgICBlbnVtIENoYW5uZWxJbnRlcnByZXRhdGlvbiB7Ci0gICAgICAgIFNwZWFrZXJzLAotICAg
ICAgICBEaXNjcmV0ZSwKLSAgICB9OwotCiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRo
ZXIgb3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0
aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBo
ZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0
aGVpciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENo
YW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwg
YmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCkBAIC0xMjYsMTEgKzEyNywxMSBAQCBw
dWJsaWM6CiAKICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0
byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29w
eSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9y
IGRvd24tbWl4IGlzIGRvbmUuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25z
dCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNl
QnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFr
ZXJzKTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0
aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgc3VtbWlu
ZyBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9y
IGRvd24tbWl4IGlzIGRvbmUuCi0gICAgdm9pZCBzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3Vy
Y2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICB2b2lkIHN1bUZy
b20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hh
bm5lbEludGVycHJldGF0aW9uOjpTcGVha2Vycyk7CiAKICAgICAvLyBDb3B5IGVhY2ggY2hhbm5l
bCBmcm9tIHNvdXJjZUJ1cyBpbnRvIG91ciBjb3JyZXNwb25kaW5nIGNoYW5uZWwuCiAgICAgLy8g
V2Ugc2NhbGUgYnkgdGFyZ2V0R2FpbiAoYW5kIG91ciBvd24gaW50ZXJuYWwgZ2FpbiBtX2J1c0dh
aW4pLCBwZXJmb3JtaW5nICJkZS16aXBwZXJpbmciIHRvIHNtb290aGx5IGNoYW5nZSBmcm9tICps
YXN0TWl4R2FpbiB0byAodGFyZ2V0R2FpbiptX2J1c0dhaW4pLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggOWM0ZDY3MWNiZGNhMzJlNTk4YTBmOWYyYTY3Y2NmM2ZmMTc1ODVlMy4u
MjVlZmQ4MTI0ZGE2OTI3ODViYzM1MjkzMWY0ZGY4MGFiYTRlYTZlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMDggIENsYXJrIFdhbmcg
IDxjbGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgUmVzdHJpY3Rpb25zIGZvciBj
aGFubmVsQ291bnQsIGNoYW5uZWxDb3VudE1vZGUgZm9yIFBhbm5lck5vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzk5MgorCisgICAgICAgIFJl
LWJhc2VsaW5lZCB0ZXN0cyB0aGF0IG5vdyBwYXNzLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL2N0
b3ItcGFubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNy0wNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9l
ZGl0aW5nIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9k
ZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5u
ZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKaW5kZXggNWE1OWRmYjRh
ZjM0Mjc5MGQ1ZTY1ZDJjYjU0MmEzMTViOGJiMmZhNS4uNjVlZTI4OThmMDUyY2NiMjg4ODVhOGFi
NGIwZGM4NWZjOGM2OTVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWlu
dGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5u
ZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKQEAgLTQ0LDI3ICs0NCwy
NyBAQCBQQVNTICAgbm9kZTIuY2hhbm5lbENvdW50IGlzIGVxdWFsIHRvIDIuCiBQQVNTICAgbmV3
IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjB9KSB0aHJldyBJbnZhbGlkU3RhdGVFcnJv
cjogIlRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiAKIFBBU1MgICBub2RlLmNo
YW5uZWxDb3VudCA9IDAgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGlu
IGFuIGludmFsaWQgc3RhdGUuIi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0
dGluZyB0byAwIGlzIGVxdWFsIHRvIDIuIAotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hh
bm5lbENvdW50IjozfSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50ID0gMyBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0byAzIGlzIG5vdCBl
cXVhbCB0byAyLiBHb3QgMy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1Q
QVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkgdGhyZXcgSW52YWxp
ZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCi1QQVNT
ICAgbm9kZS5jaGFubmVsQ291bnQgPSA5OSB0aHJldyBJbnZhbGlkU3RhdGVFcnJvcjogIlRoZSBv
YmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiAKK1BBU1MgICBuZXcgUGFubmVyTm9kZShj
LCB7ImNoYW5uZWxDb3VudCI6M30pIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiVGhlIG9wZXJh
dGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50ID0gMyB0
aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4i
LiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudCBhZnRlciBzZXR0aW5nIHRvIDMgaXMgZXF1YWwg
dG8gMi4gCitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkgdGhy
ZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIi4g
CitQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSA5OSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjog
IlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iLiAKIFBBU1MgICBub2RlLmNoYW5uZWxD
b3VudCBhZnRlciBzZXR0aW5nIHRvIDk5IGlzIGVxdWFsIHRvIDIuIAogUEFTUyAgIG5vZGUzID0g
bmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnRNb2RlIjoiY2xhbXBlZC1tYXgifSkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGUzLmNoYW5uZWxDb3VudE1vZGUg
aXMgZXF1YWwgdG8gY2xhbXBlZC1tYXguIAogUEFTUyAgIG5vZGU0ID0gbmV3IFBhbm5lck5vZGUo
YywgeyJjaGFubmVsQ291bnRNb2RlIjoiZXhwbGljaXQifSkgZGlkIG5vdCB0aHJvdyBhbiBleGNl
cHRpb24uIAogUEFTUyAgIG5vZGU0LmNoYW5uZWxDb3VudE1vZGUgaXMgZXF1YWwgdG8gZXhwbGlj
aXQuIAotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6Im1heCJ9
KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRNb2RlID0gbWF4IGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgWCBub2RlLmNoYW5uZWxDb3VudE1vZGUgYWZ0ZXIgc2V0dGluZyB0byBtYXggaXMgbm90IGVx
dWFsIHRvIGNsYW1wZWQtbWF4LiBHb3QgbWF4LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCAiICsgSlNPTi5zdHJpbmdpZnkob3B0
aW9ucykgKyAiKSB0aHJldyAiSW52YWxpZFN0YXRlRXJyb3IiIGluc3RlYWQgb2YgRWNtYVNjcmlw
dCBlcnJvciBUeXBlRXJyb3IuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBYIG5vZGUuY2hhbm5lbENvdW50TW9kZSA9IGZvb2JhciBpbmNvcnJlY3RseSB0aHJldyBJ
bnZhbGlkU3RhdGVFcnJvcjogIlRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBuZXcgUGFubmVyTm9k
ZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJtYXgifSkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6
ICJUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIi4gCitQQVNTICAgbm9kZS5jaGFubmVs
Q291bnRNb2RlID0gbWF4IHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiVGhlIG9wZXJhdGlvbiBp
cyBub3Qgc3VwcG9ydGVkLiIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSBhZnRlciBz
ZXR0aW5nIHRvIG1heCBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4gCitQQVNTICAgbmV3IFBhbm5l
ck5vZGUoYywgIiArIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpICsgIikgdGhyZXcgVHlwZUVycm9y
OiAiVHlwZSBlcnJvciIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSA9IGZvb2JhciBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2Rl
IGFmdGVyIHNldHRpbmcgdG8gZm9vYmFyIGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKIFBBU1Mg
ICBub2RlNSA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbEludGVycHJldGF0aW9uIjoic3Bl
YWtlcnMifSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGU1LmNoYW5u
ZWxJbnRlcnByZXRhdGlvbiBpcyBlcXVhbCB0byBzcGVha2Vycy4gCiBQQVNTICAgbm9kZTYgPSBu
ZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJbnRlcnByZXRhdGlvbiI6ImRpc2NyZXRlIn0pIGRp
ZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlNi5jaGFubmVsSW50ZXJwcmV0
YXRpb24gaXMgZXF1YWwgdG8gZGlzY3JldGUuIAotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsIHsi
Y2hhbm5lbEludGVycHJldGF0aW9uIjoiZm9vYmFyIn0pIHRocmV3ICJJbnZhbGlkU3RhdGVFcnJv
ciIgaW5zdGVhZCBvZiBFY21hU2NyaXB0IGVycm9yIFR5cGVFcnJvci4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVs
SW50ZXJwcmV0YXRpb24iOiJmb29iYXIifSkgdGhyZXcgVHlwZUVycm9yOiAiVHlwZSBlcnJvciIu
IAogUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsibWF4RGlzdGFuY2UiOi0xfSkgdGhyZXcgUmFu
Z2VFcnJvcjogIm1heERpc3RhbmNlIGNhbm5vdCBiZSBzZXQgdG8gYSBub24tcG9zaXRpdmUgdmFs
dWUiLiAKIFBBU1MgICBub2RlLm1heERpc3RhbmNlID0gLTEgdGhyZXcgUmFuZ2VFcnJvcjogIm1h
eERpc3RhbmNlIGNhbm5vdCBiZSBzZXQgdG8gYSBub24tcG9zaXRpdmUgdmFsdWUiLiAKIFBBU1Mg
ICBub2RlLm1heERpc3RhbmNlIGFmdGVyIHNldHRpbmcgdG8gLTEgaXMgZXF1YWwgdG8gMTAwMDAu
IApAQCAtOTEsNyArOTEsNyBAQCBQQVNTICAgbm9kZTkgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNv
bmVPdXRlckdhaW4iOjAuNX0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aQogUEFTUyAgIG5vZGU5
LmNvbmVPdXRlckdhaW4gaXMgZXF1YWwgdG8gMC41LiAKIFBBU1MgICBub2RlOSA9IG5ldyBQYW5u
ZXJOb2RlKGMsIHsiY29uZU91dGVyR2FpbiI6MX0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9u
LiAKIFBBU1MgICBub2RlOS5jb25lT3V0ZXJHYWluIGlzIGVxdWFsIHRvIDEuIAotRkFJTCA8IFt0
ZXN0IEF1ZGlvTm9kZU9wdGlvbnNdIDkgb3V0IG9mIDU0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA8IFt0ZXN0IEF1ZGlv
Tm9kZU9wdGlvbnNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDU0IGFzc2VydGlvbnMp
IAogUEFTUyA+IFtjb25zdHJ1Y3RvciB3aXRoIG9wdGlvbnNdICAKIFBBU1MgICBub2RlID0gbmV3
IFBhbm5lck5vZGUoYywgeyJwYW5uaW5nTW9kZWwiOiJIUlRGIiwicG9zaXRpb25YIjoxLjQxNDIx
MzU2MjM3MzA5NTEsInBvc2l0aW9uWSI6Mi44Mjg0MjcxMjQ3NDYxOTAzLCJwb3NpdGlvbloiOjQu
MjQyNjQwNjg3MTE5Mjg2LCJvcmllbnRhdGlvblgiOi0xLjQxNDIxMzU2MjM3MzA5NTEsIm9yaWVu
dGF0aW9uWSI6LTIuODI4NDI3MTI0NzQ2MTkwMywib3JpZW50YXRpb25aIjotNC4yNDI2NDA2ODcx
MTkyODYsImRpc3RhbmNlTW9kZWwiOiJsaW5lYXIiLCJyZWZEaXN0YW5jZSI6My4xNDE1OTI2NTM1
ODk3OTMsIm1heERpc3RhbmNlIjo2LjI4MzE4NTMwNzE3OTU4Niwicm9sbG9mZkZhY3RvciI6OS40
MjQ3Nzc5NjA3NjkzOCwiY29uZUlubmVyQW5nbGUiOjEyLjU2NjM3MDYxNDM1OTE3MiwiY29uZU91
dGVyQW5nbGUiOjE1LjcwNzk2MzI2Nzk0ODk2NiwiY29uZU91dGVyR2FpbiI6MC4zMTQxNTkyNjUz
NTg5NzkzfSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGUgaW5zdGFu
Y2VvZiBQYW5uZXJOb2RlIGlzIGVxdWFsIHRvIHRydWUuIApAQCAtMTEzLDUgKzExMyw1IEBAIFBB
U1MgICBub2RlLmNoYW5uZWxDb3VudCBpcyBlcXVhbCB0byAyLgogUEFTUyAgIG5vZGUuY2hhbm5l
bENvdW50TW9kZSBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4gCiBQQVNTICAgbm9kZS5jaGFubmVs
SW50ZXJwcmV0YXRpb24gaXMgZXF1YWwgdG8gc3BlYWtlcnMuIAogUEFTUyA8IFtjb25zdHJ1Y3Rv
ciB3aXRoIG9wdGlvbnNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDE5IGFzc2VydGlv
bnMpIAotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiA1IHRhc2tz
IHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
IyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogNSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403806</attachid>
            <date>2020-07-08 13:38:40 -0700</date>
            <delta_ts>2020-07-08 13:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200708163839.patch</filename>
            <type>text/plain</type>
            <size>47568</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU0ZWZlYTg1ZTU4Yzdh
NDFkNmNmZDNkNDU4ODM4MTQxY2YxZDg5Ny4uZTZjODI0OTcyNTk1YTUxZDk0NjI3NzI4NmMxZWQ0
MmUxZmI5ODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA3LTA4ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzZXR0ZXIg
bWV0aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxD
b3VudCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6CisgICAgICAgIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisg
ICAgICAgIE1vdmVkIENoYW5uZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRo
ZWlyIG93biBmaWxlcy4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1
ZGlvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6cHJvY2Vzc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
OjppbnRlcm5hbENoYW5uZWxJbnRlcnByZXRhdGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlSW5wdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6Om51bWJl
ck9mQ2hhbm5lbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OmJ1
cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVjdGlvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OnB1bGwpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9D
aGFubmVsQ291bnRNb2RlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hh
bm5lbENvdW50TW9kZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9D
aGFubmVsSW50ZXJwcmV0YXRpb24uaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJO
b2RlOjpDb252b2x2ZXJOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5l
ck5vZGU6OlBhbm5lck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENoYW5uZWxDb3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRB
dWRpb1Bhbm5lck5vZGU6OldlYktpdEF1ZGlvUGFubmVyTm9kZSk6CisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVzOjpjb3B5RnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c3VtRnJvbSk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaDoKKwogMjAyMC0wNy0wNyAgQW5k
cmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIGNvbnRl
bnQgcHJvY2VzcyBoYW5ncyBpbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFZpc2libGVQb3NpdGlvblJhbmdlIGluIHNvbWUgY29ybmVyIGNhc2VzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyOThjNjdkZmFiOTYxNWRjZDU0NjI5Mjc4NTdkYTk3NDJiZGZjMWQzLi4yNzkz
MTIxODFhNjliMjliNmQ5NzJiYjEzOGFjMmUxNTViZmM2MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtNDU5LDYgKzQ1OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICAgICBNb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRG
aWx0ZXJOb2RlLmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwK
KyAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwKICAgICBNb2R1
bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
Q2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5v
ZGUuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAyMzA3MGVmMTc2MzE1N2VhZmVkYmJhNzZkN2YyOTYwYjM5OTQ5NjUxLi44MzA5YjI5
YjJiYmEyMTU0NzIzMTRlNzJkMTU5ZmYzZDhhODVhMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMwOCw2ICszMDgsOCBAQCAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBhYWVjOTkzMzk5MTEyNTgzODE0OWNlZmYz
NWU5YzBjZmIzYWY2NTEwLi4wMzQ2YmNlOTRlMDZmN2QzZGExZTk0MWM5MTgyODk3ZGU4ZTE2Mjdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtMzAxLDYgKzMwMSwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0NhbnZhc1RyYW5zZm9ybS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzVHJhbnNmb3JtLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzVXNlckludGVyZmFjZS5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzVXNl
ckludGVyZmFjZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NoYW5uZWxDb3VudE1vZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxDb3VudE1vZGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsSW50ZXJwcmV0YXRpb24uY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxJbnRlcnBy
ZXRhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0NoYW5uZWxNZXJnZXJOb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDaGFubmVsTWVyZ2VyTm9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNDFkODc1N2MyYTdjMzJjMDg0NDJiZjlmMDRkNGU1
YmJjN2NjODY3Li43ZDgyOWFiNjc2MTJjNTVkMWE4ZGM0MDE2ZjlhNmNkM2I1MmY5MDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5MSw2ICszOTEsOCBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2lu
Z0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVy
Tm9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRN
b2RlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnBy
ZXRhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVy
Z2VyTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsU3Bs
aXR0ZXJOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZl
ck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmNwcAppbmRleCBjZTgyNDY5ZjY0NmMxNmRhMmE5ODUzYjEzOGE5NGJmZjlkOGMxZmRhLi5kYThj
OTk2MDAwMDlmZGFhNDEyMmY5MDljODllYjBjMjVmNTlkZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCkBAIC0xMDYsOCArMTA2LDggQEAgQXVk
aW9Ob2RlOjpBdWRpb05vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxl
UmF0ZSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihjb250ZXh0Lm5leHRBdWRpb05vZGVMb2dJZGVu
dGlmaWVyKCkpCiAjZW5kaWYKICAgICAsIG1fY2hhbm5lbENvdW50KDIpCi0gICAgLCBtX2NoYW5u
ZWxDb3VudE1vZGUoTWF4KQotICAgICwgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24oQXVkaW9CdXM6
OlNwZWFrZXJzKQorICAgICwgbV9jaGFubmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGU6Ok1h
eCkKKyAgICAsIG1fY2hhbm5lbEludGVycHJldGF0aW9uKENoYW5uZWxJbnRlcnByZXRhdGlvbjo6
U3BlYWtlcnMpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICAKQEAgLTI2
OCwxMSArMjY4LDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpkaXNjb25uZWN0KHVu
c2lnbmVkIG91dHB1dEluZGV4KQogICAgIHJldHVybiB7IH07CiB9CiAKLXVuc2lnbmVkIEF1ZGlv
Tm9kZTo6Y2hhbm5lbENvdW50KCkKLXsKLSAgICByZXR1cm4gbV9jaGFubmVsQ291bnQ7Ci19Ci0K
IEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNo
YW5uZWxDb3VudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjg3LDI2ICsy
ODIsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnQodW5z
aWduZWQgY2hhbm5lbENvdW50KQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgbV9jaGFubmVs
Q291bnQgPSBjaGFubmVsQ291bnQ7Ci0gICAgaWYgKG1fY2hhbm5lbENvdW50TW9kZSAhPSBNYXgp
CisgICAgaWYgKG1fY2hhbm5lbENvdW50TW9kZSAhPSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCiAg
ICAgICAgIHVwZGF0ZUNoYW5uZWxzRm9ySW5wdXRzKCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
U3RyaW5nIEF1ZGlvTm9kZTo6Y2hhbm5lbENvdW50TW9kZSgpCi17Ci0gICAgc3dpdGNoIChtX2No
YW5uZWxDb3VudE1vZGUpIHsKLSAgICBjYXNlIE1heDoKLSAgICAgICAgcmV0dXJuICJtYXgiX3M7
Ci0gICAgY2FzZSBDbGFtcGVkTWF4OgotICAgICAgICByZXR1cm4gImNsYW1wZWQtbWF4Il9zOwot
ICAgIGNhc2UgRXhwbGljaXQ6Ci0gICAgICAgIHJldHVybiAiZXhwbGljaXQiX3M7Ci0gICAgfQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQot
Ci1FeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUoY29uc3Qg
U3RyaW5nJiBtb2RlKQorRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291
bnRNb2RlKENoYW5uZWxDb3VudE1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgbG9ja2VyKGNvbnRleHQoKSk7
CkBAIC0zMTUsMTQgKzI5NiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENo
YW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQogICAgIAogICAgIENoYW5uZWxDb3Vu
dE1vZGUgb2xkTW9kZSA9IG1fY2hhbm5lbENvdW50TW9kZTsKIAotICAgIGlmIChtb2RlID09ICJt
YXgiKQotICAgICAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBNYXg7Ci0gICAgZWxzZSBpZiAobW9k
ZSA9PSAiY2xhbXBlZC1tYXgiKQotICAgICAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVk
TWF4OwotICAgIGVsc2UgaWYgKG1vZGUgPT0gImV4cGxpY2l0IikKLSAgICAgICAgbV9jaGFubmVs
Q291bnRNb2RlID0gRXhwbGljaXQ7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBpZiAobW9kZSAhPSBDaGFubmVsQ291bnRNb2Rl
OjpNYXggJiYgbW9kZSAhPSBDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4ICYmIG1vZGUgIT0g
Q2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vdCBhIHZhbGlkIENoYW5uZWxDb3VudE1vZGUiX3MgfTsKKyAg
ICAKKyAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBtb2RlOwogCiAgICAgaWYgKG1fY2hhbm5lbENv
dW50TW9kZSAhPSBvbGRNb2RlKQogICAgICAgICB1cGRhdGVDaGFubmVsc0ZvcklucHV0cygpOwpA
QCAtMzMwLDMxICszMDcsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFu
bmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKICAgICByZXR1cm4geyB9OwogfQogCi1T
dHJpbmcgQXVkaW9Ob2RlOjpjaGFubmVsSW50ZXJwcmV0YXRpb24oKQotewotICAgIHN3aXRjaCAo
bV9jaGFubmVsSW50ZXJwcmV0YXRpb24pIHsKLSAgICBjYXNlIEF1ZGlvQnVzOjpTcGVha2VyczoK
LSAgICAgICAgcmV0dXJuICJzcGVha2VycyJfczsKLSAgICBjYXNlIEF1ZGlvQnVzOjpEaXNjcmV0
ZToKLSAgICAgICAgcmV0dXJuICJkaXNjcmV0ZSJfczsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKGNvbnN0IFN0cmluZyYgaW50
ZXJwcmV0YXRpb24pCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxJbnRl
cnByZXRhdGlvbihjb25zdCBDaGFubmVsSW50ZXJwcmV0YXRpb24gaW50ZXJwcmV0YXRpb24pCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRv
TG9ja2VyIGxvY2tlcihjb250ZXh0KCkpOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCBpbnRlcnByZXRhdGlvbik7CiAgICAgCi0gICAgaWYgKGludGVycHJldGF0aW9uID09ICJzcGVh
a2VycyIpCi0gICAgICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFr
ZXJzOwotICAgIGVsc2UgaWYgKGludGVycHJldGF0aW9uID09ICJkaXNjcmV0ZSIpCi0gICAgICAg
IG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OkRpc2NyZXRlOwotICAgIGVsc2UK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgaWYg
KGludGVycHJldGF0aW9uICE9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMgJiYgaW50
ZXJwcmV0YXRpb24gIT0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0ZSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm90IGEgdmFsaWQgQ2hhbm5l
bEludGVycHJldGF0aW9uIl9zIH07CisgICAgCisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24g
PSBpbnRlcnByZXRhdGlvbjsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAppbmRleCBlZjViZWZkZWU0NGQ0NGY2OWRiMjg5
NmY4MDQ3YTgzZGMxMTcyM2FhLi5jZTU4OWNhNDFmNTM0NDVjNTYwZTFjNDMzMTMzMTk0ZDBmZDYx
MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAg
LTI1LDYgKzI1LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNp
bmNsdWRlICJDaGFubmVsQ291bnRNb2RlLmgiCisjaW5jbHVkZSAiQ2hhbm5lbEludGVycHJldGF0
aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC05MiwxMiArOTQsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIE5vZGVUeXBlRW5kCiAgICAgfTsKIAotICAgIGVudW0gQ2hhbm5lbENvdW50TW9kZSB7
Ci0gICAgICAgIE1heCwKLSAgICAgICAgQ2xhbXBlZE1heCwKLSAgICAgICAgRXhwbGljaXQKLSAg
ICB9OwotCiAgICAgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX25vZGVUeXBl
OyB9CiAgICAgdm9pZCBzZXROb2RlVHlwZShOb2RlVHlwZSk7CiAKQEAgLTE3NywxNyArMTczLDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZU91dHB1dHNJZk5lY2Vzc2FyeSgpOwogICAgIHZv
aWQgZGlzYWJsZU91dHB1dHNJZk5lY2Vzc2FyeSgpOwogCi0gICAgdW5zaWduZWQgY2hhbm5lbENv
dW50KCk7CisgICAgdW5zaWduZWQgY2hhbm5lbENvdW50KCkgeyByZXR1cm4gbV9jaGFubmVsQ291
bnQ7IH0KICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNp
Z25lZCk7CiAKLSAgICBTdHJpbmcgY2hhbm5lbENvdW50TW9kZSgpOwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldENoYW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJik7Ci0KLSAgICBTdHJpbmcg
Y2hhbm5lbEludGVycHJldGF0aW9uKCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5l
bEludGVycHJldGF0aW9uKGNvbnN0IFN0cmluZyYpOworICAgIENoYW5uZWxDb3VudE1vZGUgY2hh
bm5lbENvdW50TW9kZSgpIHsgcmV0dXJuIG1fY2hhbm5lbENvdW50TW9kZTsgfQorICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2Rl
KTsKIAotICAgIENoYW5uZWxDb3VudE1vZGUgaW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9jaGFubmVsQ291bnRNb2RlOyB9Ci0gICAgQXVkaW9CdXM6OkNoYW5uZWxJ
bnRlcnByZXRhdGlvbiBpbnRlcm5hbENoYW5uZWxJbnRlcnByZXRhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fY2hhbm5lbEludGVycHJldGF0aW9uOyB9CisgICAgQ2hhbm5lbEludGVycHJldGF0aW9u
IGNoYW5uZWxJbnRlcnByZXRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbEludGVycHJl
dGF0aW9uOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbEludGVycHJldGF0aW9u
KGNvbnN0IENoYW5uZWxJbnRlcnByZXRhdGlvbik7CiAKIHByb3RlY3RlZDoKICAgICAvLyBJbnB1
dHMgYW5kIG91dHB1dHMgbXVzdCBiZSBjcmVhdGVkIGJlZm9yZSB0aGUgQXVkaW9Ob2RlIGlzIGlu
aXRpYWxpemVkLgpAQCAtMjUxLDcgKzI0NCw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAg
dW5zaWduZWQgbV9jaGFubmVsQ291bnQ7CiAgICAgQ2hhbm5lbENvdW50TW9kZSBtX2NoYW5uZWxD
b3VudE1vZGU7Ci0gICAgQXVkaW9CdXM6OkNoYW5uZWxJbnRlcnByZXRhdGlvbiBtX2NoYW5uZWxJ
bnRlcnByZXRhdGlvbjsKKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24gbV9jaGFubmVsSW50ZXJw
cmV0YXRpb247CiB9OwogCiBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9O
b2RlOjpOb2RlVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5pZGwKaW5kZXggNjM2YTk1YzM4OWQ3MDhkYTQ5Zjc2YjE3NjdkN2JhMmE0ODkyYTYxMy4u
MDRmODBlYjA1ZjFmYTliNGUyZTRiYjdmYmZjOGViOTE1OGExYTMxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbApAQCAtMzAsOCArMzAsOCBAQAog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0czsKIAog
ICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNoYW5uZWxDb3VudDsKLSAgICBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGNoYW5uZWxDb3VudE1vZGU7Ci0gICAgYXR0cmlidXRlIERPTVN0cmluZyBjaGFu
bmVsSW50ZXJwcmV0YXRpb247CisgICAgYXR0cmlidXRlIENoYW5uZWxDb3VudE1vZGUgY2hhbm5l
bENvdW50TW9kZTsKKyAgICBhdHRyaWJ1dGUgQ2hhbm5lbEludGVycHJldGF0aW9uIGNoYW5uZWxJ
bnRlcnByZXRhdGlvbjsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXVkaW9Ob2RlIGNvbm5l
Y3QoW1JldHVyblZhbHVlXSBBdWRpb05vZGUgZGVzdGluYXRpb24sIG9wdGlvbmFsIHVuc2lnbmVk
IGxvbmcgb3V0cHV0ID0gMCwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbnB1dCA9IDApOwogICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBjb25uZWN0KEF1ZGlvUGFyYW0gZGVzdGluYXRpb24s
IG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb3V0cHV0ID0gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwCmluZGV4IGNjYWE1MWQ4MjJl
MGM4NTU2M2U5ZTJmZDVkZjEzNjBiNGVhY2ZmN2IuLjY0YmRmNjFlYzAyZDA0NWU2NjA0MDZhZTYy
Y2E3M2JjZDJlYTFiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlSW5wdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlSW5wdXQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0
cHV0LmgiCisjaW5jbHVkZSAiQ2hhbm5lbENvdW50TW9kZS5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ0LDggKzE0NSw4IEBAIHZvaWQgQXVkaW9O
b2RlSW5wdXQ6OnVwZGF0ZUludGVybmFsQnVzKCkKIAogdW5zaWduZWQgQXVkaW9Ob2RlSW5wdXQ6
Om51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAogewotICAgIEF1ZGlvTm9kZTo6Q2hhbm5lbENvdW50
TW9kZSBtb2RlID0gbm9kZSgpLT5pbnRlcm5hbENoYW5uZWxDb3VudE1vZGUoKTsKLSAgICBpZiAo
bW9kZSA9PSBBdWRpb05vZGU6OkV4cGxpY2l0KQorICAgIGF1dG8gbW9kZSA9IG5vZGUoKS0+Y2hh
bm5lbENvdW50TW9kZSgpOworICAgIGlmIChtb2RlID09IENoYW5uZWxDb3VudE1vZGU6OkV4cGxp
Y2l0KQogICAgICAgICByZXR1cm4gbm9kZSgpLT5jaGFubmVsQ291bnQoKTsKIAogICAgIC8vIEZp
bmQgdGhlIG51bWJlciBvZiBjaGFubmVscyBvZiB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBsYXJn
ZXN0IG51bWJlciBvZiBjaGFubmVscy4KQEAgLTE1Nyw3ICsxNTgsNyBAQCB1bnNpZ25lZCBBdWRp
b05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0CiAgICAgICAgIG1heENoYW5uZWxz
ID0gc3RkOjptYXgobWF4Q2hhbm5lbHMsIG91dHB1dC0+bnVtYmVyT2ZDaGFubmVscygpKTsKICAg
ICB9CiAKLSAgICBpZiAobW9kZSA9PSBBdWRpb05vZGU6OkNsYW1wZWRNYXgpCisgICAgaWYgKG1v
ZGUgPT0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heCkKICAgICAgICAgbWF4Q2hhbm5lbHMg
PSBzdGQ6Om1pbihtYXhDaGFubmVscywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG5vZGUoKS0+Y2hh
bm5lbENvdW50KCkpKTsKIAogICAgIHJldHVybiBtYXhDaGFubmVsczsKQEAgLTE2OCw3ICsxNjks
NyBAQCBBdWRpb0J1cyogQXVkaW9Ob2RlSW5wdXQ6OmJ1cygpCiAgICAgQVNTRVJUKGNvbnRleHQo
KS5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAgLy8gSGFuZGxlIHNpbmdsZSBjb25uZWN0aW9uIHNw
ZWNpYWxseSB0byBhbGxvdyBmb3IgaW4tcGxhY2UgcHJvY2Vzc2luZy4KLSAgICBpZiAobnVtYmVy
T2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpID09IDEgJiYgbm9kZSgpLT5pbnRlcm5hbENoYW5uZWxD
b3VudE1vZGUoKSA9PSBBdWRpb05vZGU6Ok1heCkKKyAgICBpZiAobnVtYmVyT2ZSZW5kZXJpbmdD
b25uZWN0aW9ucygpID09IDEgJiYgbm9kZSgpLT5jaGFubmVsQ291bnRNb2RlKCkgPT0gQ2hhbm5l
bENvdW50TW9kZTo6TWF4KQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nT3V0cHV0KDApLT5idXMo
KTsKIAogICAgIC8vIE11bHRpcGxlIGNvbm5lY3Rpb25zIGNhc2Ugb3IgY29tcGxleCBDaGFubmVs
Q291bnRNb2RlIChvciBubyBjb25uZWN0aW9ucykuCkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBB
dWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVjdGlvbnMoQXVkaW9CdXMqIHN1bW1pbmdCdXMsIHNp
emVfdCBmcmFtZXNUb1Byb2MKICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7
CiAKICAgICAvLyBXZSBzaG91bGRuJ3QgYmUgY2FsbGluZyB0aGlzIG1ldGhvZCBpZiB0aGVyZSdz
IG9ubHkgb25lIGNvbm5lY3Rpb24sIHNpbmNlIGl0J3MgbGVzcyBlZmZpY2llbnQuCi0gICAgQVNT
RVJUKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA+IDEgfHwgbm9kZSgpLT5pbnRlcm5h
bENoYW5uZWxDb3VudE1vZGUoKSAhPSBBdWRpb05vZGU6Ok1heCk7CisgICAgQVNTRVJUKG51bWJl
ck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA+IDEgfHwgbm9kZSgpLT5jaGFubmVsQ291bnRNb2Rl
KCkgIT0gTWF4KTsKIAogICAgIEFTU0VSVChzdW1taW5nQnVzKTsKICAgICBpZiAoIXN1bW1pbmdC
dXMpCkBAIC0xOTUsNyArMTk2LDcgQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6c3VtQWxsQ29ubmVj
dGlvbnMoQXVkaW9CdXMqIHN1bW1pbmdCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICAgICAg
CiAgICAgc3VtbWluZ0J1cy0+emVybygpOwogCi0gICAgQXVkaW9CdXM6OkNoYW5uZWxJbnRlcnBy
ZXRhdGlvbiBpbnRlcnByZXRhdGlvbiA9IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0
YXRpb24oKTsKKyAgICBhdXRvIGludGVycHJldGF0aW9uID0gbm9kZSgpLT5jaGFubmVsSW50ZXJw
cmV0YXRpb24oKTsKIAogICAgIGZvciAoYXV0byYgb3V0cHV0IDogbV9yZW5kZXJpbmdPdXRwdXRz
KSB7CiAgICAgICAgIEFTU0VSVChvdXRwdXQpOwpAQCAtMjEzLDcgKzIxNCw3IEBAIEF1ZGlvQnVz
KiBBdWRpb05vZGVJbnB1dDo6cHVsbChBdWRpb0J1cyogaW5QbGFjZUJ1cywgc2l6ZV90IGZyYW1l
c1RvUHJvY2VzcykKICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7CiAKICAg
ICAvLyBIYW5kbGUgc2luZ2xlIGNvbm5lY3Rpb24gY2FzZS4KLSAgICBpZiAobnVtYmVyT2ZSZW5k
ZXJpbmdDb25uZWN0aW9ucygpID09IDEgJiYgbm9kZSgpLT5pbnRlcm5hbENoYW5uZWxDb3VudE1v
ZGUoKSA9PSBBdWRpb05vZGU6Ok1heCkgeworICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5l
Y3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKSA9PSBDaGFubmVsQ291
bnRNb2RlOjpNYXgpIHsKICAgICAgICAgLy8gVGhlIG91dHB1dCB3aWxsIG9wdGltaXplIHByb2Nl
c3NpbmcgdXNpbmcgaW5QbGFjZUJ1cyBpZiBpdCdzIGFibGUuCiAgICAgICAgIEF1ZGlvTm9kZU91
dHB1dCogb3V0cHV0ID0gdGhpcy0+cmVuZGVyaW5nT3V0cHV0KDApOwogICAgICAgICByZXR1cm4g
b3V0cHV0LT5wdWxsKGluUGxhY2VCdXMsIGZyYW1lc1RvUHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oCmluZGV4IDdhZDk4
MmI1OGI2OGFhODhkMGNiZWE3NmU3OWE1NjQxMGIwMTliMWUuLjA0MGYwNzg0NjYyMGM3NzEyNWZh
NWVmNTMzMzUxZTk1YWNmYmM1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oCkBAIC0yNywxNSArMjcsMTYgQEAKIAogI2lmIEVO
QUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlICJDaGFubmVsQ291bnRNb2RlLmgiCisjaW5jbHVk
ZSAiQ2hhbm5lbEludGVycHJldGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RydWN0IEF1ZGlvTm9kZU9wdGlvbnMgewogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjaGFubmVs
Q291bnQ7Ci0gICAgU3RyaW5nIGNoYW5uZWxDb3VudE1vZGU7Ci0gICAgU3RyaW5nIGNoYW5uZWxJ
bnRlcnByZXRhdGlvbjsKKyAgICBPcHRpb25hbDxDaGFubmVsQ291bnRNb2RlPiBjaGFubmVsQ291
bnRNb2RlOworICAgIE9wdGlvbmFsPENoYW5uZWxJbnRlcnByZXRhdGlvbj4gY2hhbm5lbEludGVy
cHJldGF0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwKaW5kZXggMGE0
MDMwZTM3ZTM5ODNmNzUyM2RjNGJkYWM0YzA4YzQ4OTg3NzQwNi4uZTUxNGRiY2QwMjM0MTdhZmU4
OWEyYjFmYzg5ZjMzNTVhMzBlOTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsCkBAIC0yNiwxMCArMjYsNiBAQAogICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTywKIF0gZGljdGlvbmFyeSBBdWRpb05vZGVPcHRpb25zIHsK
ICAgICB1bnNpZ25lZCBsb25nIGNoYW5uZWxDb3VudDsKLSAgICAKLSAgICAvLyBGSVhNRTogU2hv
dWxkIGJlIHVwZGF0ZWQgdG8gdXNlIENoYW5uZWxDb3VudE1vZGUgZW51bSB0eXBlLgotICAgIERP
TVN0cmluZyBjaGFubmVsQ291bnRNb2RlOwotICAgIAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmUg
dXBkYXRlZCB0byB1c2UgQ2hhbm5lbEludGVycHJldGF0aW9uIGVudW0gdHlwZS4KLSAgICBET01T
dHJpbmcgY2hhbm5lbEludGVycHJldGF0aW9uOworICAgIENoYW5uZWxDb3VudE1vZGUgY2hhbm5l
bENvdW50TW9kZTsKKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0
aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hh
bm5lbENvdW50TW9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVs
Q291bnRNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVmYmU5YWJlZDNhZjIyNTYxMTEwYjJlNDFkODQxNWU5
M2JhN2E2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQ2hhbm5lbENvdW50TW9kZS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIENoYW5uZWxDb3Vu
dE1vZGUgeworICAgIE1heCwKKyAgICBDbGFtcGVkTWF4LAorICAgIEV4cGxpY2l0LAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMyNWM4OTZmOGEzY2Uz
Y2RiN2NmZGYzZTUyMDdjYTRjN2IxNjhhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKQEAgLTAsMCArMSwzMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBlbnVtIENoYW5u
ZWxDb3VudE1vZGUgeworICAgICJtYXgiLAorICAgICJjbGFtcGVkLW1heCIsCisgICAgImV4cGxp
Y2l0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hh
bm5lbEludGVycHJldGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0No
YW5uZWxJbnRlcnByZXRhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViM2RhMjg3YzIwMGY1ZTRiNmM3YTM3
YWY4OGI0NzNmNjVmZDFjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5oCkBAIC0wLDAgKzEsMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRh
dGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI5NDFhMTU2OGMzMzIzMDJmNDFjZDY4NGI4ZWZmOWI4NTUz
MzYzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q2hhbm5lbEludGVycHJldGF0aW9uLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sK
KyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGVudW0gQ2hhbm5lbEludGVycHJldGF0aW9u
IHsKKyAgICAic3BlYWtlcnMiLAorICAgICJkaXNjcmV0ZSIKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCA3ZTEzOGQ0ZDMx
MzZiNzE5N2QzYjdlYmJmYTAwMjFjODRmNzMyYjhhLi43NDdmNTUwMGU0NDViOGE5ZmYyYWEwODky
NDFjZmQwNGU0ZjQzMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQ29udm9sdmVyTm9kZS5jcHAKQEAgLTU3LDggKzU3LDggQEAgQ29udm9sdmVyTm9kZTo6Q29u
dm9sdmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQog
CiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5u
ZWxDb3VudCA9IDI7Ci0gICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBt
X2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5u
ZWxDb3VudE1vZGUgPSBDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4OworICAgIG1fY2hhbm5l
bEludGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKICAgICAK
ICAgICBpbml0aWFsaXplKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXgg
NGRkOTljMTkyYjZhMzM1YTYwMWZmZDUxNTUxYjAxYjBkOTZjYjYwOS4uN2UzZmY5NTMzNjY3ZTQ1
MDliNDljZDhhYmQ2N2Q0NDMwNjU1NzIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cApAQCAtNDgsOCArNDgsOCBAQCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZQogewogICAgIC8vIE5v
ZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMuCiAgICAgbV9jaGFubmVsQ291bnQgPSAy
OwotICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IEV4cGxpY2l0OwotICAgIG1fY2hhbm5lbEludGVy
cHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9
IENoYW5uZWxDb3VudE1vZGU6OkV4cGxpY2l0OworICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9u
ID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKIH0KIAogRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjp+RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDUyYzA0YzI1N2Ew
Njk4MDRlMjJhMGYzY2U2NzliNGRkNjA5MmJmYWIuLjI4OThkNTAxNjM3YzdkZGQ4YjI5OWUxNzhl
OWUwODg2NDY0NTQ3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5o
IgogI2luY2x1ZGUgIkF1ZGlvTm9kZUlucHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0
LmgiCisjaW5jbHVkZSAiQ2hhbm5lbENvdW50TW9kZS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFz
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkhSVEZQYW5uZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCkBAIC03NSw4ICs3Niw4IEBAIFBhbm5lck5vZGU6OlBhbm5lck5vZGUo
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKIAogICAgIC8vIE5v
ZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMuCiAgICAgbV9jaGFubmVsQ291bnQgPSAy
OwotICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7Ci0gICAgbV9jaGFubmVsSW50
ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAgbV9jaGFubmVsQ291bnRNb2Rl
ID0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heDsKKyAgICBtX2NoYW5uZWxJbnRlcnByZXRh
dGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7CiAKICAgICBtX2Rpc3RhbmNl
R2FpbiA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGlzdGFuY2VHYWluIiwgMS4wLCAw
LjAsIDEuMCk7CiAgICAgbV9jb25lR2FpbiA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
Y29uZUdhaW4iLCAxLjAsIDAuMCwgMS4wKTsKQEAgLTExMywxMSArMTE0LDExIEBAIEV4Y2VwdGlv
bk9yPFJlZjxQYW5uZXJOb2RlPj4gUGFubmVyTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgCi0gICAgcmVzdWx0ID0gcGFu
bmVyLT5zZXRDaGFubmVsQ291bnRNb2RlKG9wdGlvbnMuY2hhbm5lbENvdW50TW9kZS5pc051bGwo
KSA/ICJjbGFtcGVkLW1heCJfc3RyIDogb3B0aW9ucy5jaGFubmVsQ291bnRNb2RlKTsKKyAgICBy
ZXN1bHQgPSBwYW5uZXItPnNldENoYW5uZWxDb3VudE1vZGUob3B0aW9ucy5jaGFubmVsQ291bnRN
b2RlLnZhbHVlT3IoQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heCkpOwogICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgIAotICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0Q2hhbm5lbEludGVycHJldGF0aW9u
KG9wdGlvbnMuY2hhbm5lbEludGVycHJldGF0aW9uLmlzTnVsbCgpID8gInNwZWFrZXJzIl9zdHIg
OiBvcHRpb25zLmNoYW5uZWxJbnRlcnByZXRhdGlvbik7CisgICAgcmVzdWx0ID0gcGFubmVyLT5z
ZXRDaGFubmVsSW50ZXJwcmV0YXRpb24ob3B0aW9ucy5jaGFubmVsSW50ZXJwcmV0YXRpb24udmFs
dWVPcihDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKSk7CiAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAgICAgCkBAIC0zMzUsNiArMzM2LDIyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6
OnNldENvbmVPdXRlckdhaW4oZG91YmxlIGdhaW4pCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorRXhj
ZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNoYW5u
ZWxDb3VudCkKK3sKKyAgICBpZiAoY2hhbm5lbENvdW50ID4gMikKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudCBj
YW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiX3MgfTsKKyAgICAKKyAgICByZXR1cm4gQXVkaW9Ob2Rl
OjpzZXRDaGFubmVsQ291bnQoY2hhbm5lbENvdW50KTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4g
UGFubmVyTm9kZTo6c2V0Q2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlIG1vZGUpCit7
CisgICAgaWYgKG1vZGUgPT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50
TW9kZSBjYW5ub3QgYmUgbWF4Il9zIH07CisgICAgCisgICAgcmV0dXJuIEF1ZGlvTm9kZTo6c2V0
Q2hhbm5lbENvdW50TW9kZShtb2RlKTsKK30KKwogdm9pZCBQYW5uZXJOb2RlOjpnZXRBemltdXRo
RWxldmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pCiB7CiAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBjYWNoZSBhemltdXRoIGFuZCBlbGV2YXRpb24gKGlmIHBv
c3NpYmxlKSwgc28gd2Ugb25seSByZS1jYWxjdWxhdGUgaWYgYSBjaGFuZ2UgaGFzIGJlZW4gbWFk
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKaW5kZXgg
MzlkNWMzNzIyZTkyNmQ0OGRjODU4OWVjOWIxN2EwZjQ1ZmM3NmE1Yi4uNjJmMDZlOTcwYjZhMTkx
NmIyZTFmY2IyNGViYjVhYjk3NjQ3YTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9QYW5uZXJOb2RlLmgKQEAgLTEyNyw2ICsxMjcsOSBAQCBwdWJsaWM6CiAKICAgICBk
b3VibGUgY29uZU91dGVyR2FpbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZUVmZmVjdC5vdXRlckdh
aW4oKTsgfQogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENvbmVPdXRlckdhaW4oZG91YmxlKTsK
KyAgICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZp
bmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudE1vZGUoQ2hhbm5lbENv
dW50TW9kZSkgZmluYWw7CiAKICAgICB2b2lkIGdldEF6aW11dGhFbGV2YXRpb24oZG91YmxlKiBv
dXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbik7CiAgICAgZmxvYXQgZG9wcGxlclJhdGUo
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
V2ViS2l0QXVkaW9QYW5uZXJOb2RlLmNwcAppbmRleCAyNThmNDVlN2NmZDkxYzgyMmM2OTkyZTc1
OGRhYTc1OGFkNzkwMmUyLi42MDk3YzQxNjY2NDIzZTFkN2M4ZDVkNWZiNGVjYTgwNWI0MDI2Yjhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlv
UGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJL
aXRBdWRpb1Bhbm5lck5vZGUuY3BwCkBAIC02NCw4ICs2NCw4IEBAIFdlYktpdEF1ZGlvUGFubmVy
Tm9kZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlKFdlYktpdEF1ZGlvQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQKIAogICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMuCiAgICAg
bV9jaGFubmVsQ291bnQgPSAyOwotICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7
Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAg
bV9jaGFubmVsQ291bnRNb2RlID0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heDsKKyAgICBt
X2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7
CiAKICAgICBtX2Rpc3RhbmNlR2FpbiA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGlz
dGFuY2VHYWluIiwgMS4wLCAwLjAsIDEuMCk7CiAgICAgbV9jb25lR2FpbiA9IEF1ZGlvUGFyYW06
OmNyZWF0ZShjb250ZXh0LCAiY29uZUdhaW4iLCAxLjAsIDAuMCwgMS4wKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggMThlZTAwYTQ3NzFhMGU4NmVlNTE0ODBjNzhiYjAzNjY1NWZjY2QxNS4uODlhYjk5NmVh
MTE0OTBkYTRjYTg0NDUzMGE4NmFjM2JkNGFjOWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI3MDEs
NiArMjcwMSw4IEBAIEpTQ2FudmFzVGV4dEJhc2VsaW5lLmNwcAogSlNDYW52YXNUZXh0RHJhd2lu
Z1N0eWxlcy5jcHAKIEpTQ2FudmFzVHJhbnNmb3JtLmNwcAogSlNDYW52YXNVc2VySW50ZXJmYWNl
LmNwcAorSlNDaGFubmVsQ291bnRNb2RlLmNwcAorSlNDaGFubmVsSW50ZXJwcmV0YXRpb24uY3Bw
CiBKU0NoYW5uZWxNZXJnZXJOb2RlLmNwcAogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcAogSlND
aGFyYWN0ZXJEYXRhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGM0NjllMDZlY2E5MjhlMTQxMzIxNDZkMjE1YTk5ZjY4ZWQx
ZjkzYWQuLmY1OTAzMTEzZGY0ZmMwZWY2YTQyOGM2OTg2M2FmYmNhZDA5N2U0OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUw
NDAsNiArNTA0MCw4IEBACiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5j
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9w
dGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2
N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87IH07CisJCUU3ODVEOTE1
MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5oICovOyB9OworCQlFNzg1RDkzNDI0QjYzNkZGMDAxNERCMjEgLyog
Q2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJl
dGF0aW9uLmggKi87IH07CiAJCUVCRTVCMjI2MjQ1QTI2RUYwMDNBNUE4OCAvKiBTUUxpdGVTdGF0
ZW1lbnRBdXRvUmVzZXRTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRUJFNUIyMjQyNDVBMjZFRTAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1
dG9SZXNldFNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFB
MTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgKi87IH07CiAJCUVCRjUx
MjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUIxNjk2NDk2QzAwNTZCRDI1
IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggKi87IH07CkBAIC0xNTc4MCw2ICsxNTc4MiwxMCBAQAog
CQlFNzE0NjdCNDI0QUJBRjBCMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QXVkaW9Ob2RlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2
N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTcxNDY3QjcyNEFCQUYyQzAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUU3ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTc4NUQ5MzMyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRh
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gVHlwZUNvbnZlcnNpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRUJFNUIyMjQyNDVBMjZFRTAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1dG9SZXNldFNj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTGl0ZVN0YXRlbWVudEF1
dG9SZXNldFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTM1NSw2ICsy
OTM2MSwxMCBAQAogCQkJCUZEQzU0RjAzMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJO
b2RlLmlkbCAqLywKIAkJCQlGRDMxNUZEQzEyQjAyNjc2MDBDMUEzNTkgLyogQmlxdWFkUHJvY2Vz
c29yLmNwcCAqLywKIAkJCQlGRDMxNUZERDEyQjAyNjc2MDBDMUEzNTkgLyogQmlxdWFkUHJvY2Vz
c29yLmggKi8sCisJCQkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1v
ZGUuaCAqLywKKwkJCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9k
ZS5pZGwgKi8sCisJCQkJRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbi5oICovLAorCQkJCUU3ODVEOTMzMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50
ZXJwcmV0YXRpb24uaWRsICovLAogCQkJCUZEMzE1RkI0MTJCMDI2NzUwMEMxQTM1OSAvKiBDaGFu
bmVsTWVyZ2VyTm9kZS5jcHAgKi8sCiAJCQkJRkQzMTVGQjUxMkIwMjY3NTAwQzFBMzU5IC8qIENo
YW5uZWxNZXJnZXJOb2RlLmggKi8sCiAJCQkJRkQzMTVGQjYxMkIwMjY3NTAwQzFBMzU5IC8qIENo
YW5uZWxNZXJnZXJOb2RlLmlkbCAqLywKQEAgLTMwMDYyLDYgKzMwMDcyLDggQEAKIAkJCQk5MUI4
RjBCNTIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkUzNkZEMTUxNkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDNjlERDE1MDVGMDc2MDAxQjc0QUMgLyogQ2hhbmdlVmVy
c2lvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIy
MSAvKiBDaGFubmVsQ291bnRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzg1RDkzNDI0QjYz
NkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDMxNUZGRjEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDAyMTJCMDI2NzYwMEMxQTM1OSAvKiBDaGFubmVsU3BsaXR0ZXJO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjZBMDA5OURGMDI3MDA5MEQ3ODEgLyogQ2hh
cmFjdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDA5Nyw2ICszMDEwOSw3IEBACiAJCQkJ
QzM3Q0RFQkQxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDQUM2QUYwMjQ3RjQxMTAwMEU2MUQ1OSAvKiBDb2xvckNvbXBvbmVu
dHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDNTE0RTAzMjRBRjgwNUUwMDUwNzEwRiAvKiBDb2xv
ckNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDNCN0RGMURCMDE1NjcwMDhCQjg5
MCAvKiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREI0MTI1MUYxMkQwMDNF
RjI2OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1MTY5RTcyMUYx
Qjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVycyAqLywKQEAgLTMzOTIzLDcgKzMz
OTM2LDYgQEAKIAkJCQk5MTI3OEQ2MjIxREVEQUYwMDBCNTcxODQgLyogV29ya2VyQXVkaXRBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBN0QzNTMxRjQzOEQxNjAwODk4OERFIC8qIFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0NEMUZB
QTQ0REUwMDM3RDFFNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTdDNTE0RTAzMjRBRjgwNUUwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1NTYzOUQxMUM2RjA5RTMwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xlQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRTFGQUE0NERFMDAzN0QxRTYgLyogV29ya2Vy
RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUyQjM0OUUxRkE0MTcwMzAwOEI2
MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4IGU3MGQ0NmQwYjlmMjQwN2Y5MDg1
NDhmYThmMmU5OGM5ZGE0NTYzYjcuLmRmMjNhMGU2MDNkYmQyZjA0N2FmZWE5ZGYzMWE2YzBjODhi
ZjZhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKQEAg
LTI1MywxMCArMjUzLDEwIEBAIHZvaWQgQXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVz
JiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsCiAgICAgICAgICAgICBj
aGFubmVsKGkpLT5jb3B5RnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgc3dpdGNoIChjaGFubmVsSW50ZXJwcmV0YXRpb24pIHsKLSAgICAgICAgY2FzZSBT
cGVha2VyczoKKyAgICAgICAgY2FzZSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOgog
ICAgICAgICAgICAgc3BlYWtlcnNDb3B5RnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgRGlzY3JldGU6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpEaXNjcmV0ZToKICAgICAgICAgICAgIGRpc2NyZXRlQ29weUZyb20oc291cmNlQnVz
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpAQCAtMjc4LDEwICsyNzgs
MTAgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBD
aGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPnN1
bUZyb20oc291cmNlQnVzLmNoYW5uZWwoaSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRj
aCAoY2hhbm5lbEludGVycHJldGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU3BlYWtlcnM6CisgICAg
ICAgIGNhc2UgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczoKICAgICAgICAgICAgIHNw
ZWFrZXJzU3VtRnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgRGlzY3JldGU6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0
ZToKICAgICAgICAgICAgIGRpc2NyZXRlU3VtRnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9CdXMuaAppbmRleCAxNjgwMzQ3MzZhN2QyNzY4OGVkZTQwOTlhZGQwYzE4YzkxYTI4NjRjLi5i
NWE4ZjhhZjA1ZTQ4ZDJjNWYzOWRiMmE4ZjZiODRiOGZjNzQyOGUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKQEAgLTQwLDYgKzQwLDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEFuIEF1ZGlvQnVzIHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIG9uZSBv
ciBtb3JlIEF1ZGlvQ2hhbm5lbHMuCiAvLyBUaGUgZGF0YSBsYXlvdXQgaXMgInBsYW5hciIgYXMg
b3Bwb3NlZCB0byAiaW50ZXJsZWF2ZWQiLgogLy8gQW4gQXVkaW9CdXMgd2l0aCBvbmUgY2hhbm5l
bCBpcyBtb25vLCBhbiBBdWRpb0J1cyB3aXRoIHR3byBjaGFubmVscyBpcyBzdGVyZW8sIGV0Yy4K
KworZW51bSBjbGFzcyBDaGFubmVsSW50ZXJwcmV0YXRpb24geworICAgIFNwZWFrZXJzLAorICAg
IERpc2NyZXRlLAorfTsKKwogY2xhc3MgQXVkaW9CdXMgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8QXVkaW9CdXM+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb0J1
cyk7CiBwdWJsaWM6CkBAIC01OCwxMSArNjQsNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIENhbiBk
ZWZpbmUgbm9uLXN0YW5kYXJkIGxheW91dHMgaGVyZQogICAgIH07CiAKLSAgICBlbnVtIENoYW5u
ZWxJbnRlcnByZXRhdGlvbiB7Ci0gICAgICAgIFNwZWFrZXJzLAotICAgICAgICBEaXNjcmV0ZSwK
LSAgICB9OwotCiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGlu
aXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3Jh
Z2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBj
YXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFn
ZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBo
YXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRp
b0J1cyBpcyB1c2VhYmxlLi4uCkBAIC0xMjYsMTEgKzEyNywxMSBAQCBwdWJsaWM6CiAKICAgICAv
LyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAg
ICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUgbnVtYmVy
IG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRv
bmUuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291
cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50
ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKTsKIAogICAgIC8v
IFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAv
LyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgc3VtbWluZyBpZiB0aGUgbnVtYmVy
IG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRv
bmUuCi0gICAgdm9pZCBzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICB2b2lkIHN1bUZyb20oY29uc3QgQXVkaW9C
dXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0
aW9uOjpTcGVha2Vycyk7CiAKICAgICAvLyBDb3B5IGVhY2ggY2hhbm5lbCBmcm9tIHNvdXJjZUJ1
cyBpbnRvIG91ciBjb3JyZXNwb25kaW5nIGNoYW5uZWwuCiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFy
Z2V0R2FpbiAoYW5kIG91ciBvd24gaW50ZXJuYWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5n
ICJkZS16aXBwZXJpbmciIHRvIHNtb290aGx5IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAo
dGFyZ2V0R2FpbiptX2J1c0dhaW4pLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
OWM0ZDY3MWNiZGNhMzJlNTk4YTBmOWYyYTY3Y2NmM2ZmMTc1ODVlMy4uMjVlZmQ4MTI0ZGE2OTI3
ODViYzM1MjkzMWY0ZGY4MGFiYTRlYTZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMDggIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFw
cGxlLmNvbT4KKworICAgICAgICBTZXQgUmVzdHJpY3Rpb25zIGZvciBjaGFubmVsQ291bnQsIGNo
YW5uZWxDb3VudE1vZGUgZm9yIFBhbm5lck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzk5MgorCisgICAgICAgIFJlLWJhc2VsaW5lZCB0ZXN0
cyB0aGF0IG5vdyBwYXNzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL2N0b3ItcGFubmVyLWV4cGVj
dGVkLnR4dDoKKwogMjAyMC0wNy0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9lZGl0aW5nIGZyb20gdXBz
dHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZhY2UvY3Rv
ci1wYW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFj
ZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKaW5kZXggNWE1OWRmYjRhZjM0Mjc5MGQ1ZTY1ZDJj
YjU0MmEzMTViOGJiMmZhNS4uNWI0YTI4NWZhYTI3YmU2ZmZmNGNkMDYzMzUxOWVjOGI4OTcyOGFk
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBh
bm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFj
ZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKQEAgLTQ0LDI3ICs0NCwyNyBAQCBQQVNTICAgbm9k
ZTIuY2hhbm5lbENvdW50IGlzIGVxdWFsIHRvIDIuCiBQQVNTICAgbmV3IFBhbm5lck5vZGUoYywg
eyJjaGFubmVsQ291bnQiOjB9KSB0aHJldyBJbnZhbGlkU3RhdGVFcnJvcjogIlRoZSBvYmplY3Qg
aXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiAKIFBBU1MgICBub2RlLmNoYW5uZWxDb3VudCA9IDAg
dGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3Rh
dGUuIi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0byAwIGlzIGVx
dWFsIHRvIDIuIAotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50IjozfSkg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50ID0gMyBkaWQgbm90IHRocm93IGFuIGV4
Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggbm9k
ZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0byAzIGlzIG5vdCBlcXVhbCB0byAyLiBHb3Qg
My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTICAgbmV3IFBhbm5l
ck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJU
aGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCi1QQVNTICAgbm9kZS5jaGFubmVs
Q291bnQgPSA5OSB0aHJldyBJbnZhbGlkU3RhdGVFcnJvcjogIlRoZSBvYmplY3QgaXMgaW4gYW4g
aW52YWxpZCBzdGF0ZS4iLiAKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3Vu
dCI6M30pIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3Vu
dCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudCA9
IDMgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNh
bm5vdCBiZSBncmVhdGVyIHRoYW4gMiIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVy
IHNldHRpbmcgdG8gMyBpcyBlcXVhbCB0byAyLiAKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7
ImNoYW5uZWxDb3VudCI6OTl9KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUn
cyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIi4gCitQQVNTICAgbm9kZS5j
aGFubmVsQ291bnQgPSA5OSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBj
aGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIi4gCiBQQVNTICAgbm9kZS5jaGFu
bmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0byA5OSBpcyBlcXVhbCB0byAyLiAKIFBBU1MgICBub2Rl
MyA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6ImNsYW1wZWQtbWF4In0p
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlMy5jaGFubmVsQ291bnRN
b2RlIGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKIFBBU1MgICBub2RlNCA9IG5ldyBQYW5uZXJO
b2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6ImV4cGxpY2l0In0pIGRpZCBub3QgdGhyb3cgYW4g
ZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlNC5jaGFubmVsQ291bnRNb2RlIGlzIGVxdWFsIHRvIGV4
cGxpY2l0LiAKLUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJt
YXgifSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50TW9kZSA9IG1heCBkaWQgbm90
IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRNb2RlIGFmdGVyIHNldHRpbmcgdG8gbWF4IGlzIG5v
dCBlcXVhbCB0byBjbGFtcGVkLW1heC4gR290IG1heC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgIiArIEpTT04uc3RyaW5naWZ5
KG9wdGlvbnMpICsgIikgdGhyZXcgIkludmFsaWRTdGF0ZUVycm9yIiBpbnN0ZWFkIG9mIEVjbWFT
Y3JpcHQgZXJyb3IgVHlwZUVycm9yLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBmb29iYXIgaW5jb3JyZWN0bHkgdGhy
ZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUu
Ii4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgbmV3IFBhbm5l
ck5vZGUoYywgeyJjaGFubmVsQ291bnRNb2RlIjoibWF4In0pIHRocmV3IE5vdFN1cHBvcnRlZEVy
cm9yOiAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudE1vZGUgY2Fubm90IGJlIG1heCIuIAorUEFT
UyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSA9IG1heCB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjog
IlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2RlIGNhbm5vdCBiZSBtYXgiLiAKK1BBU1MgICBu
b2RlLmNoYW5uZWxDb3VudE1vZGUgYWZ0ZXIgc2V0dGluZyB0byBtYXggaXMgZXF1YWwgdG8gY2xh
bXBlZC1tYXguIAorUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsICIgKyBKU09OLnN0cmluZ2lmeShv
cHRpb25zKSArICIpIHRocmV3IFR5cGVFcnJvcjogIlR5cGUgZXJyb3IiLiAKK1BBU1MgICBub2Rl
LmNoYW5uZWxDb3VudE1vZGUgPSBmb29iYXIgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAog
UEFTUyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSBhZnRlciBzZXR0aW5nIHRvIGZvb2JhciBpcyBl
cXVhbCB0byBjbGFtcGVkLW1heC4gCiBQQVNTICAgbm9kZTUgPSBuZXcgUGFubmVyTm9kZShjLCB7
ImNoYW5uZWxJbnRlcnByZXRhdGlvbiI6InNwZWFrZXJzIn0pIGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uLiAKIFBBU1MgICBub2RlNS5jaGFubmVsSW50ZXJwcmV0YXRpb24gaXMgZXF1YWwgdG8g
c3BlYWtlcnMuIAogUEFTUyAgIG5vZGU2ID0gbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50
ZXJwcmV0YXRpb24iOiJkaXNjcmV0ZSJ9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQ
QVNTICAgbm9kZTYuY2hhbm5lbEludGVycHJldGF0aW9uIGlzIGVxdWFsIHRvIGRpc2NyZXRlLiAK
LUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJbnRlcnByZXRhdGlvbiI6ImZvb2Jh
ciJ9KSB0aHJldyAiSW52YWxpZFN0YXRlRXJyb3IiIGluc3RlYWQgb2YgRWNtYVNjcmlwdCBlcnJv
ciBUeXBlRXJyb3IuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAg
IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbEludGVycHJldGF0aW9uIjoiZm9vYmFyIn0pIHRo
cmV3IFR5cGVFcnJvcjogIlR5cGUgZXJyb3IiLiAKIFBBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7
Im1heERpc3RhbmNlIjotMX0pIHRocmV3IFJhbmdlRXJyb3I6ICJtYXhEaXN0YW5jZSBjYW5ub3Qg
YmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVlIi4gCiBQQVNTICAgbm9kZS5tYXhEaXN0YW5j
ZSA9IC0xIHRocmV3IFJhbmdlRXJyb3I6ICJtYXhEaXN0YW5jZSBjYW5ub3QgYmUgc2V0IHRvIGEg
bm9uLXBvc2l0aXZlIHZhbHVlIi4gCiBQQVNTICAgbm9kZS5tYXhEaXN0YW5jZSBhZnRlciBzZXR0
aW5nIHRvIC0xIGlzIGVxdWFsIHRvIDEwMDAwLiAKQEAgLTkxLDcgKzkxLDcgQEAgUEFTUyAgIG5v
ZGU5ID0gbmV3IFBhbm5lck5vZGUoYywgeyJjb25lT3V0ZXJHYWluIjowLjV9KSBkaWQgbm90IHRo
cm93IGFuIGV4Y2VwdGkKIFBBU1MgICBub2RlOS5jb25lT3V0ZXJHYWluIGlzIGVxdWFsIHRvIDAu
NS4gCiBQQVNTICAgbm9kZTkgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNvbmVPdXRlckdhaW4iOjF9
KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTkuY29uZU91dGVyR2Fp
biBpcyBlcXVhbCB0byAxLiAKLUZBSUwgPCBbdGVzdCBBdWRpb05vZGVPcHRpb25zXSA5IG91dCBv
ZiA1NCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK1BBU1MgPCBbdGVzdCBBdWRpb05vZGVPcHRpb25zXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCA1NCBhc3NlcnRpb25zKSAKIFBBU1MgPiBbY29uc3RydWN0b3Igd2l0aCBv
cHRpb25zXSAgCiBQQVNTICAgbm9kZSA9IG5ldyBQYW5uZXJOb2RlKGMsIHsicGFubmluZ01vZGVs
IjoiSFJURiIsInBvc2l0aW9uWCI6MS40MTQyMTM1NjIzNzMwOTUxLCJwb3NpdGlvblkiOjIuODI4
NDI3MTI0NzQ2MTkwMywicG9zaXRpb25aIjo0LjI0MjY0MDY4NzExOTI4Niwib3JpZW50YXRpb25Y
IjotMS40MTQyMTM1NjIzNzMwOTUxLCJvcmllbnRhdGlvblkiOi0yLjgyODQyNzEyNDc0NjE5MDMs
Im9yaWVudGF0aW9uWiI6LTQuMjQyNjQwNjg3MTE5Mjg2LCJkaXN0YW5jZU1vZGVsIjoibGluZWFy
IiwicmVmRGlzdGFuY2UiOjMuMTQxNTkyNjUzNTg5NzkzLCJtYXhEaXN0YW5jZSI6Ni4yODMxODUz
MDcxNzk1ODYsInJvbGxvZmZGYWN0b3IiOjkuNDI0Nzc3OTYwNzY5MzgsImNvbmVJbm5lckFuZ2xl
IjoxMi41NjYzNzA2MTQzNTkxNzIsImNvbmVPdXRlckFuZ2xlIjoxNS43MDc5NjMyNjc5NDg5NjYs
ImNvbmVPdXRlckdhaW4iOjAuMzE0MTU5MjY1MzU4OTc5M30pIGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uLiAKIFBBU1MgICBub2RlIGluc3RhbmNlb2YgUGFubmVyTm9kZSBpcyBlcXVhbCB0byB0
cnVlLiAKQEAgLTExMyw1ICsxMTMsNSBAQCBQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgaXMgZXF1
YWwgdG8gMi4KIFBBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgaXMgZXF1YWwgdG8gY2xhbXBl
ZC1tYXguIAogUEFTUyAgIG5vZGUuY2hhbm5lbEludGVycHJldGF0aW9uIGlzIGVxdWFsIHRvIHNw
ZWFrZXJzLiAKIFBBU1MgPCBbY29uc3RydWN0b3Igd2l0aCBvcHRpb25zXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAxOSBhc3NlcnRpb25zKSAKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMSBvdXQgb2YgNSB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6
IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403807</attachid>
            <date>2020-07-08 13:47:09 -0700</date>
            <delta_ts>2020-07-08 13:57:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200708164708.patch</filename>
            <type>text/plain</type>
            <size>47911</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU0ZWZlYTg1ZTU4Yzdh
NDFkNmNmZDNkNDU4ODM4MTQxY2YxZDg5Ny4uOTYwY2I1OWM3Y2U5M2Y4MWJmMDllOWUxN2Q3ZDM3
NDJhN2NmMmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA3LTA4ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzZXR0ZXIg
bWV0aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxD
b3VudCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6CisgICAgICAgIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisg
ICAgICAgIE1vdmVkIENoYW5uZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRo
ZWlyIG93biBmaWxlcy4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1
ZGlvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnRNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
OjpjaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5l
bEludGVycHJldGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6aW50
ZXJuYWxDaGFubmVsQ291bnRNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvTm9kZTo6aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24gY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvTm9kZUlucHV0OjpidXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6
OnN1bUFsbENvbm5lY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojpw
dWxsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6Q29udm9sdmVyTm9kZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhbm5lck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRD
aGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q2hhbm5lbENv
dW50TW9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRpb1Bhbm5lck5vZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OnN1bUZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmg6
CisKIDIwMjAtMDctMDcgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBjb250ZW50IHByb2Nlc3MgaGFuZ3MgaW4gQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSBpbiBzb21lIGNvcm5lciBj
YXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjk4YzY3ZGZhYjk2MTVkY2Q1NDYyOTI3ODU3
ZGE5NzQyYmRmYzFkMy4uMjc5MzEyMTgxYTY5YjI5YjZkOTcyYmIxMzhhYzJlMTU1YmZjNjJmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ1OSw2ICs0NTksOCBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQu
aWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0No
YW5uZWxDb3VudE1vZGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0
YXRpb24uaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICAg
ICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjMwNzBlZjE3NjMxNTdlYWZlZGJiYTc2ZDdmMjk2
MGIzOTk0OTY1MS4uODMwOWIyOWIyYmJhMjE1NDcyMzE0ZTcyZDE1OWZmM2Q4YTg1YTBmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0z
MDgsNiArMzA4LDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVu
dC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwK
KyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWFlYzk5
MzM5OTExMjU4MzgxNDljZWZmMzVlOWMwY2ZiM2FmNjUxMC4uMDM0NmJjZTk0ZTA2ZjdkM2RhMWU5
NDFjOTE4Mjg5N2RlOGUxNjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTMwMSw2ICszMDEsMTAgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDYW52YXNUcmFuc2Zvcm0uY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1RyYW5zZm9y
bS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZh
c1VzZXJJbnRlcmZhY2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0NhbnZhc1VzZXJJbnRlcmZhY2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbEludGVy
cHJldGF0aW9uLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDaGFubmVsSW50ZXJwcmV0YXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbE1lcmdlck5vZGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzQxZDg3NTdjMmE3
YzMyYzA4NDQyYmY5ZjA0ZDRlNWJiYzdjYzg2Ny4uN2Q4MjlhYjY3NjEyYzU1ZDFhOGRjNDAxNmY5
YTZjZDNiNTJmOTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOTEsNiAr
MzkxLDggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggY2U4MjQ2OWY2NDZjMTZkYTJhOTg1M2IxMzhh
OTRiZmY5ZDhjMWZkYS4uZGE4Yzk5NjAwMDA5ZmRhYTQxMjJmOTA5Yzg5ZWIwYzI1ZjU5ZGRjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAt
MTA2LDggKzEwNiw4IEBAIEF1ZGlvTm9kZTo6QXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoY29udGV4dC5u
ZXh0QXVkaW9Ob2RlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX2NoYW5uZWxDb3Vu
dCgyKQotICAgICwgbV9jaGFubmVsQ291bnRNb2RlKE1heCkKLSAgICAsIG1fY2hhbm5lbEludGVy
cHJldGF0aW9uKEF1ZGlvQnVzOjpTcGVha2VycykKKyAgICAsIG1fY2hhbm5lbENvdW50TW9kZShD
aGFubmVsQ291bnRNb2RlOjpNYXgpCisgICAgLCBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbihDaGFu
bmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CiAgICAgCkBAIC0yNjgsMTEgKzI2OCw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlv
Tm9kZTo6ZGlzY29ubmVjdCh1bnNpZ25lZCBvdXRwdXRJbmRleCkKICAgICByZXR1cm4geyB9Owog
fQogCi11bnNpZ25lZCBBdWRpb05vZGU6OmNoYW5uZWxDb3VudCgpCi17Ci0gICAgcmV0dXJuIG1f
Y2hhbm5lbENvdW50OwotfQotCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5u
ZWxDb3VudCh1bnNpZ25lZCBjaGFubmVsQ291bnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTI4NywyNiArMjgyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6
c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNoYW5uZWxDb3VudCkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIG1fY2hhbm5lbENvdW50ID0gY2hhbm5lbENvdW50OwotICAgIGlmIChtX2NoYW5u
ZWxDb3VudE1vZGUgIT0gTWF4KQorICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gQ2hhbm5l
bENvdW50TW9kZTo6TWF4KQogICAgICAgICB1cGRhdGVDaGFubmVsc0ZvcklucHV0cygpOwogICAg
IHJldHVybiB7IH07CiB9CiAKLVN0cmluZyBBdWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUoKQot
ewotICAgIHN3aXRjaCAobV9jaGFubmVsQ291bnRNb2RlKSB7Ci0gICAgY2FzZSBNYXg6Ci0gICAg
ICAgIHJldHVybiAibWF4Il9zOwotICAgIGNhc2UgQ2xhbXBlZE1heDoKLSAgICAgICAgcmV0dXJu
ICJjbGFtcGVkLW1heCJfczsKLSAgICBjYXNlIEV4cGxpY2l0OgotICAgICAgICByZXR1cm4gImV4
cGxpY2l0Il9zOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFu
bmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlv
Tm9kZTo6c2V0Q2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlIG1vZGUpCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2Vy
IGxvY2tlcihjb250ZXh0KCkpOwpAQCAtMzE1LDE0ICsyOTYsMTAgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKICAg
ICAKICAgICBDaGFubmVsQ291bnRNb2RlIG9sZE1vZGUgPSBtX2NoYW5uZWxDb3VudE1vZGU7CiAK
LSAgICBpZiAobW9kZSA9PSAibWF4IikKLSAgICAgICAgbV9jaGFubmVsQ291bnRNb2RlID0gTWF4
OwotICAgIGVsc2UgaWYgKG1vZGUgPT0gImNsYW1wZWQtbWF4IikKLSAgICAgICAgbV9jaGFubmVs
Q291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJleHBsaWNpdCIp
Ci0gICAgICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IEV4cGxpY2l0OwotICAgIGVsc2UKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgaWYgKG1vZGUg
IT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4ICYmIG1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6Q2xh
bXBlZE1heCAmJiBtb2RlICE9IENoYW5uZWxDb3VudE1vZGU6OkV4cGxpY2l0KQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJOb3QgYSB2YWxpZCBDaGFubmVs
Q291bnRNb2RlIl9zIH07CisgICAgCisgICAgbV9jaGFubmVsQ291bnRNb2RlID0gbW9kZTsKIAog
ICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gb2xkTW9kZSkKICAgICAgICAgdXBkYXRlQ2hh
bm5lbHNGb3JJbnB1dHMoKTsKQEAgLTMzMCwzMSArMzA3LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50TW9kZShjb25zdCBTdHJpbmcmIG1vZGUpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotU3RyaW5nIEF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9u
KCkKLXsKLSAgICBzd2l0Y2ggKG1fY2hhbm5lbEludGVycHJldGF0aW9uKSB7Ci0gICAgY2FzZSBB
dWRpb0J1czo6U3BlYWtlcnM6Ci0gICAgICAgIHJldHVybiAic3BlYWtlcnMiX3M7Ci0gICAgY2Fz
ZSBBdWRpb0J1czo6RGlzY3JldGU6Ci0gICAgICAgIHJldHVybiAiZGlzY3JldGUiX3M7Ci0gICAg
fQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwot
fQotCi1FeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxJbnRlcnByZXRhdGlv
bihjb25zdCBTdHJpbmcmIGludGVycHJldGF0aW9uKQorRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9O
b2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgQ2hhbm5lbEludGVycHJldGF0aW9u
IGludGVycHJldGF0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQmFz
ZUF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29udGV4dCgpKTsKIAogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgaW50ZXJwcmV0YXRpb24pOwogICAgIAotICAgIGlmIChpbnRl
cnByZXRhdGlvbiA9PSAic3BlYWtlcnMiKQotICAgICAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlv
biA9IEF1ZGlvQnVzOjpTcGVha2VyczsKLSAgICBlbHNlIGlmIChpbnRlcnByZXRhdGlvbiA9PSAi
ZGlzY3JldGUiKQotICAgICAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpE
aXNjcmV0ZTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OworICAgIGlmIChpbnRlcnByZXRhdGlvbiAhPSBDaGFubmVsSW50ZXJwcmV0YXRp
b246OlNwZWFrZXJzICYmIGludGVycHJldGF0aW9uICE9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6
RGlzY3JldGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vdCBhIHZhbGlkIENoYW5uZWxJbnRlcnByZXRhdGlvbiJfcyB9OworICAgIAorICAgIG1fY2hh
bm5lbEludGVycHJldGF0aW9uID0gaW50ZXJwcmV0YXRpb247CiAKICAgICByZXR1cm4geyB9Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKaW5kZXggZWY1
YmVmZGVlNDRkNDRmNjlkYjI4OTZmODA0N2E4M2RjMTE3MjNhYS4uY2U1ODljYTQxZjUzNDQ1YzU2
MGUxYzQzMzEzMzE5NGQwZmQ2MTA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkF1ZGlvQnVzLmgiCisjaW5jbHVkZSAiQ2hhbm5lbENvdW50TW9kZS5oIgorI2luY2x1ZGUg
IkNoYW5uZWxJbnRlcnByZXRhdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtOTIsMTIg
Kzk0LDYgQEAgcHVibGljOgogICAgICAgICBOb2RlVHlwZUVuZAogICAgIH07CiAKLSAgICBlbnVt
IENoYW5uZWxDb3VudE1vZGUgewotICAgICAgICBNYXgsCi0gICAgICAgIENsYW1wZWRNYXgsCi0g
ICAgICAgIEV4cGxpY2l0Ci0gICAgfTsKLQogICAgIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9ub2RlVHlwZTsgfQogICAgIHZvaWQgc2V0Tm9kZVR5cGUoTm9kZVR5cGUpOwog
CkBAIC0xNzcsMTcgKzE3MywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZO
ZWNlc3NhcnkoKTsKICAgICB2b2lkIGRpc2FibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKIAotICAg
IHVuc2lnbmVkIGNoYW5uZWxDb3VudCgpOworICAgIHVuc2lnbmVkIGNoYW5uZWxDb3VudCgpIHsg
cmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpOwogCi0gICAgU3RyaW5nIGNoYW5uZWxDb3VudE1vZGUo
KTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0IFN0cmlu
ZyYpOwotCi0gICAgU3RyaW5nIGNoYW5uZWxJbnRlcnByZXRhdGlvbigpOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldENoYW5uZWxJbnRlcnByZXRhdGlvbihjb25zdCBTdHJpbmcmKTsKKyAgICBD
aGFubmVsQ291bnRNb2RlIGNoYW5uZWxDb3VudE1vZGUoKSB7IHJldHVybiBtX2NoYW5uZWxDb3Vu
dE1vZGU7IH0KKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudE1v
ZGUoQ2hhbm5lbENvdW50TW9kZSk7CiAKLSAgICBDaGFubmVsQ291bnRNb2RlIGludGVybmFsQ2hh
bm5lbENvdW50TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENvdW50TW9kZTsgfQotICAg
IEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJwcmV0YXRpb24gaW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsgfQorICAgIENo
YW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsgfQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENo
YW5uZWxJbnRlcnByZXRhdGlvbihjb25zdCBDaGFubmVsSW50ZXJwcmV0YXRpb24pOwogCiBwcm90
ZWN0ZWQ6CiAgICAgLy8gSW5wdXRzIGFuZCBvdXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUg
dGhlIEF1ZGlvTm9kZSBpcyBpbml0aWFsaXplZC4KQEAgLTI1MSw3ICsyNDQsNyBAQCBwcml2YXRl
OgogcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIG1fY2hhbm5lbENvdW50OwogICAgIENoYW5uZWxD
b3VudE1vZGUgbV9jaGFubmVsQ291bnRNb2RlOwotICAgIEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJw
cmV0YXRpb24gbV9jaGFubmVsSW50ZXJwcmV0YXRpb247CisgICAgQ2hhbm5lbEludGVycHJldGF0
aW9uIG1fY2hhbm5lbEludGVycHJldGF0aW9uOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKEF1ZGlvTm9kZTo6Tm9kZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaWRsCmluZGV4IDYzNmE5NWMzODlkNzA4ZGE0OWY3NmIx
NzY3ZDdiYTJhNDg5MmE2MTMuLjA0ZjgwZWIwNWYxZmE5YjRlMmU0YmI3ZmJmYzhlYjkxNThhMWEz
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwK
QEAgLTMwLDggKzMwLDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBu
dW1iZXJPZk91dHB1dHM7CiAKICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjaGFubmVsQ291
bnQ7Ci0gICAgYXR0cmlidXRlIERPTVN0cmluZyBjaGFubmVsQ291bnRNb2RlOwotICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgY2hhbm5lbEludGVycHJldGF0aW9uOworICAgIGF0dHJpYnV0ZSBDaGFu
bmVsQ291bnRNb2RlIGNoYW5uZWxDb3VudE1vZGU7CisgICAgYXR0cmlidXRlIENoYW5uZWxJbnRl
cnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0YXRpb247CiAKICAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIEF1ZGlvTm9kZSBjb25uZWN0KFtSZXR1cm5WYWx1ZV0gQXVkaW9Ob2RlIGRlc3RpbmF0aW9u
LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG91dHB1dCA9IDAsIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgaW5wdXQgPSAwKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY29ubmVjdChBdWRp
b1BhcmFtIGRlc3RpbmF0aW9uLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG91dHB1dCA9IDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNw
cAppbmRleCBjY2FhNTFkODIyZTBjODU1NjNlOWUyZmQ1ZGYxMzYwYjRlYWNmZjdiLi42NGJkZjYx
ZWMwMmQwNDVlNjYwNDA2YWU2MmNhNzNiY2QyZWExYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIK
ICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0NCw4ICsx
NDUsOCBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAKIHVuc2ln
bmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QKIHsKLSAgICBBdWRp
b05vZGU6OkNoYW5uZWxDb3VudE1vZGUgbW9kZSA9IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291
bnRNb2RlKCk7Ci0gICAgaWYgKG1vZGUgPT0gQXVkaW9Ob2RlOjpFeHBsaWNpdCkKKyAgICBhdXRv
IG1vZGUgPSBub2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKTsKKyAgICBpZiAobW9kZSA9PSBDaGFu
bmVsQ291bnRNb2RlOjpFeHBsaWNpdCkKICAgICAgICAgcmV0dXJuIG5vZGUoKS0+Y2hhbm5lbENv
dW50KCk7CiAKICAgICAvLyBGaW5kIHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgb2YgdGhlIGNvbm5l
Y3Rpb24gd2l0aCB0aGUgbGFyZ2VzdCBudW1iZXIgb2YgY2hhbm5lbHMuCkBAIC0xNTcsNyArMTU4
LDcgQEAgdW5zaWduZWQgQXVkaW9Ob2RlSW5wdXQ6Om51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAog
ICAgICAgICBtYXhDaGFubmVscyA9IHN0ZDo6bWF4KG1heENoYW5uZWxzLCBvdXRwdXQtPm51bWJl
ck9mQ2hhbm5lbHMoKSk7CiAgICAgfQogCi0gICAgaWYgKG1vZGUgPT0gQXVkaW9Ob2RlOjpDbGFt
cGVkTWF4KQorICAgIGlmIChtb2RlID09IENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXgpCiAg
ICAgICAgIG1heENoYW5uZWxzID0gc3RkOjptaW4obWF4Q2hhbm5lbHMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihub2RlKCktPmNoYW5uZWxDb3VudCgpKSk7CiAKICAgICByZXR1cm4gbWF4Q2hhbm5l
bHM7CkBAIC0xNjgsNyArMTY5LDcgQEAgQXVkaW9CdXMqIEF1ZGlvTm9kZUlucHV0OjpidXMoKQog
ICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIEhhbmRsZSBz
aW5nbGUgY29ubmVjdGlvbiBzcGVjaWFsbHkgdG8gYWxsb3cgZm9yIGluLXBsYWNlIHByb2Nlc3Np
bmcuCi0gICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUo
KS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgPT0gQXVkaW9Ob2RlOjpNYXgpCisgICAgaWYg
KG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+Y2hhbm5lbENv
dW50TW9kZSgpID09IENoYW5uZWxDb3VudE1vZGU6Ok1heCkKICAgICAgICAgcmV0dXJuIHJlbmRl
cmluZ091dHB1dCgwKS0+YnVzKCk7CiAKICAgICAvLyBNdWx0aXBsZSBjb25uZWN0aW9ucyBjYXNl
IG9yIGNvbXBsZXggQ2hhbm5lbENvdW50TW9kZSAob3Igbm8gY29ubmVjdGlvbnMpLgpAQCAtMTg3
LDcgKzE4OCw3IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKEF1ZGlv
QnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgQVNTRVJUKGNvbnRleHQo
KS5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIGNhbGxpbmcgdGhp
cyBtZXRob2QgaWYgdGhlcmUncyBvbmx5IG9uZSBjb25uZWN0aW9uLCBzaW5jZSBpdCdzIGxlc3Mg
ZWZmaWNpZW50LgotICAgIEFTU0VSVChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPiAx
IHx8IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgIT0gQXVkaW9Ob2RlOjpNYXgp
OworICAgIEFTU0VSVChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPiAxIHx8IG5vZGUo
KS0+Y2hhbm5lbENvdW50TW9kZSgpICE9IE1heCk7CiAKICAgICBBU1NFUlQoc3VtbWluZ0J1cyk7
CiAgICAgaWYgKCFzdW1taW5nQnVzKQpAQCAtMTk1LDcgKzE5Niw3IEBAIHZvaWQgQXVkaW9Ob2Rl
SW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKEF1ZGlvQnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJh
bWVzVG9Qcm9jCiAgICAgICAgIAogICAgIHN1bW1pbmdCdXMtPnplcm8oKTsKIAotICAgIEF1ZGlv
QnVzOjpDaGFubmVsSW50ZXJwcmV0YXRpb24gaW50ZXJwcmV0YXRpb24gPSBub2RlKCktPmludGVy
bmFsQ2hhbm5lbEludGVycHJldGF0aW9uKCk7CisgICAgYXV0byBpbnRlcnByZXRhdGlvbiA9IG5v
ZGUoKS0+Y2hhbm5lbEludGVycHJldGF0aW9uKCk7CiAKICAgICBmb3IgKGF1dG8mIG91dHB1dCA6
IG1fcmVuZGVyaW5nT3V0cHV0cykgewogICAgICAgICBBU1NFUlQob3V0cHV0KTsKQEAgLTIxMyw3
ICsyMTQsNyBAQCBBdWRpb0J1cyogQXVkaW9Ob2RlSW5wdXQ6OnB1bGwoQXVkaW9CdXMqIGluUGxh
Y2VCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1
ZGlvVGhyZWFkKCkpOwogCiAgICAgLy8gSGFuZGxlIHNpbmdsZSBjb25uZWN0aW9uIGNhc2UuCi0g
ICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+aW50
ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgPT0gQXVkaW9Ob2RlOjpNYXgpIHsKKyAgICBpZiAobnVt
YmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpID09IDEgJiYgbm9kZSgpLT5jaGFubmVsQ291bnRN
b2RlKCkgPT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4KSB7CiAgICAgICAgIC8vIFRoZSBvdXRwdXQg
d2lsbCBvcHRpbWl6ZSBwcm9jZXNzaW5nIHVzaW5nIGluUGxhY2VCdXMgaWYgaXQncyBhYmxlLgog
ICAgICAgICBBdWRpb05vZGVPdXRwdXQqIG91dHB1dCA9IHRoaXMtPnJlbmRlcmluZ091dHB1dCgw
KTsKICAgICAgICAgcmV0dXJuIG91dHB1dC0+cHVsbChpblBsYWNlQnVzLCBmcmFtZXNUb1Byb2Nl
c3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9w
dGlvbnMuaAppbmRleCA3YWQ5ODJiNThiNjhhYTg4ZDBjYmVhNzZlNzlhNTY0MTBiMDE5YjFlLi4w
NDBmMDc4NDY2MjBjNzcxMjVmYTVlZjUzMzM1MWU5NWFjZmJjNWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaApAQCAtMjcsMTUg
KzI3LDE2IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSAiQ2hhbm5lbENv
dW50TW9kZS5oIgorI2luY2x1ZGUgIkNoYW5uZWxJbnRlcnByZXRhdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBBdWRpb05vZGVPcHRpb25zIHsKICAgICBPcHRpb25h
bDx1bnNpZ25lZD4gY2hhbm5lbENvdW50OwotICAgIFN0cmluZyBjaGFubmVsQ291bnRNb2RlOwot
ICAgIFN0cmluZyBjaGFubmVsSW50ZXJwcmV0YXRpb247CisgICAgT3B0aW9uYWw8Q2hhbm5lbENv
dW50TW9kZT4gY2hhbm5lbENvdW50TW9kZTsKKyAgICBPcHRpb25hbDxDaGFubmVsSW50ZXJwcmV0
YXRpb24+IGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
T3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9w
dGlvbnMuaWRsCmluZGV4IDBhNDAzMGUzN2UzOTgzZjc1MjNkYzRiZGFjNGMwOGM0ODk4Nzc0MDYu
LmU1MTRkYmNkMDIzNDE3YWZlODlhMmIxZmM4OWYzMzU1YTMwZTk2MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbApAQCAt
MjYsMTAgKzI2LDYgQEAKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiBdIGRpY3Rpb25hcnkg
QXVkaW9Ob2RlT3B0aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBjaGFubmVsQ291bnQ7Ci0gICAg
Ci0gICAgLy8gRklYTUU6IFNob3VsZCBiZSB1cGRhdGVkIHRvIHVzZSBDaGFubmVsQ291bnRNb2Rl
IGVudW0gdHlwZS4KLSAgICBET01TdHJpbmcgY2hhbm5lbENvdW50TW9kZTsKLSAgICAKLSAgICAv
LyBGSVhNRTogU2hvdWxkIGJlIHVwZGF0ZWQgdG8gdXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbiBl
bnVtIHR5cGUuCi0gICAgRE9NU3RyaW5nIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBDaGFu
bmVsQ291bnRNb2RlIGNoYW5uZWxDb3VudE1vZGU7CisgICAgQ2hhbm5lbEludGVycHJldGF0aW9u
IGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZmJlOWFiZWQzYWYy
MjU2MTExMGIyZTQxZDg0MTVlOTNiYTdhNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaApAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBDaGFubmVsQ291bnRNb2RlIHsKKyAgICBNYXgsCisgICAgQ2xhbXBlZE1heCwKKyAg
ICBFeHBsaWNpdCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhjMjVjODk2ZjhhM2NlM2NkYjdjZmRmM2U1MjA3Y2E0YzdiMTY4YWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUu
aWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFsPVdFQl9B
VURJTywKK10gZW51bSBDaGFubmVsQ291bnRNb2RlIHsKKyAgICAibWF4IiwKKyAgICAiY2xhbXBl
ZC1tYXgiLAorICAgICJleHBsaWNpdCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjNk
YTI4N2MyMDBmNWU0YjZjN2EzN2FmODhiNDczZjY1ZmQxY2UxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaApA
QCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJB
dWRpb0J1cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9D
aGFubmVsSW50ZXJwcmV0YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyOTQxYTE1NjhjMzMyMzAy
ZjQxY2Q2ODRiOGVmZjliODU1MzM2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwKQEAgLTAsMCArMSwz
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBlbnVtIENo
YW5uZWxJbnRlcnByZXRhdGlvbiB7CisgICAgInNwZWFrZXJzIiwKKyAgICAiZGlzY3JldGUiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5j
cHAKaW5kZXggN2UxMzhkNGQzMTM2YjcxOTdkM2I3ZWJiZmEwMDIxYzg0ZjczMmI4YS4uNzQ3ZjU1
MDBlNDQ1YjhhOWZmMmFhMDg5MjQxY2ZkMDRlNGY0MzE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC01Nyw4ICs1Nyw4IEBA
IENvbnZvbHZlck5vZGU6OkNvbnZvbHZlck5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQgc2FtcGxlUmF0ZSkKIAogICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcg
cnVsZXMuCiAgICAgbV9jaGFubmVsQ291bnQgPSAyOwotICAgIG1fY2hhbm5lbENvdW50TW9kZSA9
IENsYW1wZWRNYXg7Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3Bl
YWtlcnM7CisgICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBl
ZE1heDsKKyAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlv
bjo6U3BlYWtlcnM7CiAgICAgCiAgICAgaW5pdGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCmluZGV4IDRkZDk5YzE5MmI2YTMzNWE2MDFmZmQ1MTU1MWIwMWIwZDk2Y2I2
MDkuLjdlM2ZmOTUzMzY2N2U0NTA5YjQ5Y2Q4YWJkNjdkNDQzMDY1NTcyM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQ4LDggKzQ4LDggQEAgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYg
Y29udGUKIHsKICAgICAvLyBOb2RlLXNwZWNpZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAg
IG1fY2hhbm5lbENvdW50ID0gMjsKLSAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBFeHBsaWNpdDsK
LSAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBt
X2NoYW5uZWxDb3VudE1vZGUgPSBDaGFubmVsQ291bnRNb2RlOjpFeHBsaWNpdDsKKyAgICBtX2No
YW5uZWxJbnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7CiB9
CiAKIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6fkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNw
cAppbmRleCA1MmMwNGMyNTdhMDY5ODA0ZTIyYTBmM2NlNjc5YjRkZDYwOTJiZmFiLi4yODk4ZDUw
MTYzN2M3ZGRkOGIyOTllMTc4ZTllMDg4NjQ2NDU0NzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1
ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKICNp
bmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKICNpbmNsdWRlICJIUlRGUGFubmVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNzUsOCArNzYsOCBAQCBQYW5u
ZXJOb2RlOjpQYW5uZXJOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCiAKICAgICAvLyBOb2RlLXNwZWNpZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAg
IG1fY2hhbm5lbENvdW50ID0gMjsKLSAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4
OwotICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAg
IG1fY2hhbm5lbENvdW50TW9kZSA9IENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXg7CisgICAg
bV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJz
OwogCiAgICAgbV9kaXN0YW5jZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRp
c3RhbmNlR2FpbiIsIDEuMCwgMC4wLCAxLjApOwogICAgIG1fY29uZUdhaW4gPSBBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgImNvbmVHYWluIiwgMS4wLCAwLjAsIDEuMCk7CkBAIC0xMTMsMTEg
KzExNCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8UGFubmVyTm9kZT4+IFBhbm5lck5vZGU6OmNyZWF0
ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAg
IAotICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0Q2hhbm5lbENvdW50TW9kZShvcHRpb25zLmNoYW5u
ZWxDb3VudE1vZGUuaXNOdWxsKCkgPyAiY2xhbXBlZC1tYXgiX3N0ciA6IG9wdGlvbnMuY2hhbm5l
bENvdW50TW9kZSk7CisgICAgcmVzdWx0ID0gcGFubmVyLT5zZXRDaGFubmVsQ291bnRNb2RlKG9w
dGlvbnMuY2hhbm5lbENvdW50TW9kZS52YWx1ZU9yKENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRN
YXgpKTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAKLSAgICByZXN1bHQgPSBwYW5uZXItPnNldENo
YW5uZWxJbnRlcnByZXRhdGlvbihvcHRpb25zLmNoYW5uZWxJbnRlcnByZXRhdGlvbi5pc051bGwo
KSA/ICJzcGVha2VycyJfc3RyIDogb3B0aW9ucy5jaGFubmVsSW50ZXJwcmV0YXRpb24pOworICAg
IHJlc3VsdCA9IHBhbm5lci0+c2V0Q2hhbm5lbEludGVycHJldGF0aW9uKG9wdGlvbnMuY2hhbm5l
bEludGVycHJldGF0aW9uLnZhbHVlT3IoQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2Vycykp
OwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIApAQCAtMzM1LDYgKzMzNiwyMiBAQCBFeGNlcHRpb25P
cjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSBnYWluKQogICAgIHJl
dHVybiB7IH07CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENoYW5uZWxD
b3VudCh1bnNpZ25lZCBjaGFubmVsQ291bnQpCit7CisgICAgaWYgKGNoYW5uZWxDb3VudCA+IDIp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIlBhbm5lck5v
ZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIl9zIH07CisgICAgCisg
ICAgcmV0dXJuIEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50KGNoYW5uZWxDb3VudCk7Cit9CisK
K0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENoYW5uZWxDb3VudE1vZGUoQ2hhbm5l
bENvdW50TW9kZSBtb2RlKQoreworICAgIGlmIChtb2RlID09IENoYW5uZWxDb3VudE1vZGU6Ok1h
eCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiUGFubmVy
Tm9kZSdzIGNoYW5uZWxDb3VudE1vZGUgY2Fubm90IGJlIG1heCJfcyB9OworICAgIAorICAgIHJl
dHVybiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUobW9kZSk7Cit9CisKIHZvaWQgUGFu
bmVyTm9kZTo6Z2V0QXppbXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSog
b3V0RWxldmF0aW9uKQogewogICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgY2FjaGUgYXppbXV0aCBh
bmQgZWxldmF0aW9uIChpZiBwb3NzaWJsZSksIHNvIHdlIG9ubHkgcmUtY2FsY3VsYXRlIGlmIGEg
Y2hhbmdlIGhhcyBiZWVuIG1hZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGFubmVyTm9kZS5oCmluZGV4IDM5ZDVjMzcyMmU5MjZkNDhkYzg1ODllYzliMTdhMGY0NWZjNzZh
NWIuLjYyZjA2ZTk3MGI2YTE5MTZiMmUxZmNiMjRlYmI1YWI5NzY0N2E0YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCkBAIC0xMjcsNiArMTI3LDkg
QEAgcHVibGljOgogCiAgICAgZG91YmxlIGNvbmVPdXRlckdhaW4oKSBjb25zdCB7IHJldHVybiBt
X2NvbmVFZmZlY3Qub3V0ZXJHYWluKCk7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDb25l
T3V0ZXJHYWluKGRvdWJsZSk7CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5l
bENvdW50KHVuc2lnbmVkKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVs
Q291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUpIGZpbmFsOwogCiAgICAgdm9pZCBnZXRBemltdXRo
RWxldmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pOwogICAg
IGZsb2F0IGRvcHBsZXJSYXRlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHAKaW5kZXggMjU4ZjQ1
ZTdjZmQ5MWM4MjJjNjk5MmU3NThkYWE3NThhZDc5MDJlMi4uNjA5N2M0MTY2NjQyM2UxZDdjOGQ1
ZDVmYjRlY2E4MDViNDAyNmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmNwcApAQCAtNjQsOCArNjQsOCBA
QCBXZWJLaXRBdWRpb1Bhbm5lck5vZGU6OldlYktpdEF1ZGlvUGFubmVyTm9kZShXZWJLaXRBdWRp
b0NvbnRleHQmIGNvbnRleHQsIGZsb2F0CiAKICAgICAvLyBOb2RlLXNwZWNpZmljIGRlZmF1bHQg
bWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5lbENvdW50ID0gMjsKLSAgICBtX2NoYW5uZWxDb3Vu
dE1vZGUgPSBDbGFtcGVkTWF4OwotICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9C
dXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENoYW5uZWxDb3VudE1vZGU6
OkNsYW1wZWRNYXg7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJw
cmV0YXRpb246OlNwZWFrZXJzOwogCiAgICAgbV9kaXN0YW5jZUdhaW4gPSBBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgImRpc3RhbmNlR2FpbiIsIDEuMCwgMC4wLCAxLjApOwogICAgIG1fY29u
ZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImNvbmVHYWluIiwgMS4wLCAwLjAs
IDEuMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDE4ZWUwMGE0NzcxYTBlODZlZTUxNDgwYzc4YmIwMzY2
NTVmY2NkMTUuLjg5YWI5OTZlYTExNDkwZGE0Y2E4NDQ1MzBhODZhYzNiZDRhYzllYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0yNzAxLDYgKzI3MDEsOCBAQCBKU0NhbnZhc1RleHRCYXNlbGluZS5jcHAK
IEpTQ2FudmFzVGV4dERyYXdpbmdTdHlsZXMuY3BwCiBKU0NhbnZhc1RyYW5zZm9ybS5jcHAKIEpT
Q2FudmFzVXNlckludGVyZmFjZS5jcHAKK0pTQ2hhbm5lbENvdW50TW9kZS5jcHAKK0pTQ2hhbm5l
bEludGVycHJldGF0aW9uLmNwcAogSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAKIEpTQ2hhbm5lbFNw
bGl0dGVyTm9kZS5jcHAKIEpTQ2hhcmFjdGVyRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNDY5ZTA2ZWNhOTI4ZTE0
MTMyMTQ2ZDIxNWE5OWY2OGVkMWY5M2FkLi5mNTkwMzExM2RmNGZjMGVmNmE0MjhjNjk4NjNhZmJj
YWQwOTdlNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01MDQwLDYgKzUwNDAsOCBAQAogCQlFNUJBN0Q2MzE1MTQzN0NBMDBG
RTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0IxMjRBQkFFRjEwMEZC
MkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi87IH07CiAJCUU3MTQ2N0I2MjRBQkFGMUQwMEZC
MkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5o
ICovOyB9OworCQlFNzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEy
NEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLzsgfTsKKwkJRTc4NUQ5MzQy
NEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIx
IC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oICovOyB9OwogCQlFQkU1QjIyNjI0NUEyNkVGMDAz
QTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRTVCMjI0MjQ1QTI2RUUwMDNBNUE4OCAv
KiBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQyNSAvKiBK
U1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQkY1MTIxQTE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMu
Y3BwICovOyB9OwogCQlFQkY1MTIxRDE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUx
MjFCMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oICovOyB9OwpAQCAtMTU3
ODAsNiArMTU3ODIsMTAgQEAKIAkJRTcxNDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9k
ZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I3MjRBQkFGMkMwMEZCMkY1MCAvKiBQYW5u
ZXJPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYW5uZXJPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8q
IENoYW5uZWxDb3VudE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVs
SW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVEOTMzMjRCNjM2RkYwMDE0REIyMSAv
KiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1Mzcz
MCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZUNvbnZlcnNpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAv
KiBUeXBlQ29udmVyc2lvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFR5cGVDb252ZXJzaW9ucy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCRTVCMjI0MjQ1QTI2RUUwMDNBNUE4OCAvKiBTUUxpdGVT
dGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjkzNTUsNiArMjkzNjEsMTAgQEAKIAkJCQlGREM1NEYwMzEzOTlCMERBMDA4RDkx
MTcgLyogQmlxdWFkRmlsdGVyTm9kZS5pZGwgKi8sCiAJCQkJRkQzMTVGREMxMkIwMjY3NjAwQzFB
MzU5IC8qIEJpcXVhZFByb2Nlc3Nvci5jcHAgKi8sCiAJCQkJRkQzMTVGREQxMkIwMjY3NjAwQzFB
MzU5IC8qIEJpcXVhZFByb2Nlc3Nvci5oICovLAorCQkJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIy
MSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi8sCisJCQkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIx
IC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICovLAorCQkJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIy
MSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCAqLywKKwkJCQlFNzg1RDkzMzI0QjYzNkZGMDAx
NERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbCAqLywKIAkJCQlGRDMxNUZCNDEyQjAy
Njc1MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUuY3BwICovLAogCQkJCUZEMzE1RkI1MTJC
MDI2NzUwMEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5oICovLAogCQkJCUZEMzE1RkI2MTJC
MDI2NzUwMEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5pZGwgKi8sCkBAIC0zMDA2Miw2ICsz
MDA3Miw4IEBACiAJCQkJOTFCOEYwQjUyMTk1M0Q2NTAwMEMyQjAwIC8qIENlcnRpZmljYXRlSW5m
b0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMzZGRDE1MTZDNzgyNjUwMEY4ODdDMSAvKiBD
aGFuZ2VWZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzY5REQxNTA1RjA3NjAw
MUI3NEFDIC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzg1
RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTc4NUQ5MzQyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTVGRkYxMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxN
ZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAwMjEyQjAyNjc2MDBDMUEzNTkg
LyogQ2hhbm5lbFNwbGl0dGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTAwOTlE
RjAyNzAwOTBENzgxIC8qIENoYXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMzAwOTcs
NiArMzAxMDksNyBAQAogCQkJCUMzN0NERUJEMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29z
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEQyQUE1MjE1OTc0MEQwMEM2NzUyQiAv
KiBDb2xvckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0FDNkFGMDI0N0Y0MTEwMDBFNjFE
NTkgLyogQ29sb3JDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QzUxNEUwMzI0QUY4
MDVFMDA1MDcxMEYgLyogQ29sb3JDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTAz
QjdERjFEQjAxNTY3MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NTVCM0RCNDEyNTFGMTJEMDAzRUYyNjkgLyogQ29sb3JJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFNTE2OUU3MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMzkyMyw3ICszMzkzNiw2IEBACiAJCQkJOTEyNzhENjIyMURFREFGMDAwQjU3MTg0
IC8qIFdvcmtlckF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTdEMzUzMUY0MzhE
MTYwMDg5ODhERSAvKiBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUI4MUNDRDFGQUE0NERFMDAzN0QxRTYgLyogV29ya2VyQ29uc29sZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3QzUxNEUwMzI0QUY4MDVFMDA1MDcxMEYgLyogQ29sb3JDb252
ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTU2MzlEMTFDNkYwOUUzMDA4MDZEOEUgLyog
V29ya2VyQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0UxRkFBNDRE
RTAwMzdEMUU2IC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MkIzNDlFMUZBNDE3MDMwMDhCNjI0NiAvKiBXb3JrZXJEZWJ1Z2dlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCBl
NzBkNDZkMGI5ZjI0MDdmOTA4NTQ4ZmE4ZjJlOThjOWRhNDU2M2I3Li5kZjIzYTBlNjAzZGJkMmYw
NDdhZmVhOWRmMzFhNmMwYzg4YmY2YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuY3BwCkBAIC0yNTMsMTAgKzI1MywxMCBAQCB2b2lkIEF1ZGlvQnVzOjpjb3B5
RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hh
bm5lbAogICAgICAgICAgICAgY2hhbm5lbChpKS0+Y29weUZyb20oc291cmNlQnVzLmNoYW5uZWwo
aSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY2hhbm5lbEludGVycHJldGF0aW9u
KSB7Ci0gICAgICAgIGNhc2UgU3BlYWtlcnM6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpTcGVha2VyczoKICAgICAgICAgICAgIHNwZWFrZXJzQ29weUZyb20oc291cmNlQnVz
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERpc2NyZXRlOgorICAgICAgICBj
YXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAgICAgICAgICBkaXNjcmV0
ZUNvcHlGcm9tKHNvdXJjZUJ1cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVs
dDoKQEAgLTI3OCwxMCArMjc4LDEwIEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29uc3QgQXVk
aW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uIGNoYW5uZWxJCiAgICAgICAg
ICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKICAgICB9IGVs
c2UgewogICAgICAgICBzd2l0Y2ggKGNoYW5uZWxJbnRlcnByZXRhdGlvbikgewotICAgICAgICBj
YXNlIFNwZWFrZXJzOgorICAgICAgICBjYXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtl
cnM6CiAgICAgICAgICAgICBzcGVha2Vyc1N1bUZyb20oc291cmNlQnVzKTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIERpc2NyZXRlOgorICAgICAgICBjYXNlIENoYW5uZWxJbnRl
cnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAgICAgICAgICBkaXNjcmV0ZVN1bUZyb20oc291cmNl
QnVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5kZXggMTY4MDM0NzM2YTdkMjc2ODhlZGU0MDk5
YWRkMGMxOGM5MWEyODY0Yy4uYjVhOGY4YWYwNWU0OGQyYzVmMzlkYjJhOGY2Yjg0YjhmYzc0Mjhl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCkBAIC00MCw2ICs0
MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBBbiBBdWRpb0J1cyByZXByZXNlbnRzIGEg
Y29sbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBBdWRpb0NoYW5uZWxzLgogLy8gVGhlIGRhdGEgbGF5
b3V0IGlzICJwbGFuYXIiIGFzIG9wcG9zZWQgdG8gImludGVybGVhdmVkIi4KIC8vIEFuIEF1ZGlv
QnVzIHdpdGggb25lIGNoYW5uZWwgaXMgbW9ubywgYW4gQXVkaW9CdXMgd2l0aCB0d28gY2hhbm5l
bHMgaXMgc3RlcmVvLCBldGMuCisKK2VudW0gY2xhc3MgQ2hhbm5lbEludGVycHJldGF0aW9uIHsK
KyAgICBTcGVha2VycywKKyAgICBEaXNjcmV0ZSwKK307CisKIGNsYXNzIEF1ZGlvQnVzIGZpbmFs
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvQnVzPiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQXVkaW9CdXMpOwogcHVibGljOgpAQCAtNTgsMTEgKzY0LDYgQEAgcHVibGlj
OgogICAgICAgICAvLyBDYW4gZGVmaW5lIG5vbi1zdGFuZGFyZCBsYXlvdXRzIGhlcmUKICAgICB9
OwogCi0gICAgZW51bSBDaGFubmVsSW50ZXJwcmV0YXRpb24gewotICAgICAgICBTcGVha2VycywK
LSAgICAgICAgRGlzY3JldGUsCi0gICAgfTsKLQogICAgIC8vIGFsbG9jYXRlIGluZGljYXRlcyB3
aGV0aGVyIG9yIG5vdCB0byBpbml0aWFsbHkgaGF2ZSB0aGUgQXVkaW9DaGFubmVscyBjcmVhdGVk
IHdpdGggbWFuYWdlZCBzdG9yYWdlLgogICAgIC8vIE5vcm1hbCB1c2FnZSBpcyB0byBwYXNzIHRy
dWUgaGVyZSwgaW4gd2hpY2ggY2FzZSB0aGUgQXVkaW9DaGFubmVscyB3aWxsIG1lbW9yeS1tYW5h
Z2UgdGhlaXIgb3duIHN0b3JhZ2UuCiAgICAgLy8gSWYgYWxsb2NhdGUgaXMgZmFsc2UgdGhlbiBz
ZXRDaGFubmVsTWVtb3J5KCkgaGFzIHRvIGJlIGNhbGxlZCBsYXRlciBvbiBmb3IgZWFjaCBjaGFu
bmVsIGJlZm9yZSB0aGUgQXVkaW9CdXMgaXMgdXNlYWJsZS4uLgpAQCAtMTI2LDExICsxMjcsMTEg
QEAgcHVibGljOgogCiAgICAgLy8gQ29waWVzIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBi
dXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVs
IGNvcHkgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1p
eCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weUZyb20o
Y29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gU3BlYWtl
cnMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNv
dXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpT
cGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMg
dG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVsIHN1
bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1p
eCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIHZvaWQgc3VtRnJvbShjb25zdCBBdWRpb0J1cyYg
c291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgdm9pZCBz
dW1Gcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9
IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpOwogCiAgICAgLy8gQ29weSBlYWNoIGNo
YW5uZWwgZnJvbSBzb3VyY2VCdXMgaW50byBvdXIgY29ycmVzcG9uZGluZyBjaGFubmVsLgogICAg
IC8vIFdlIHNjYWxlIGJ5IHRhcmdldEdhaW4gKGFuZCBvdXIgb3duIGludGVybmFsIGdhaW4gbV9i
dXNHYWluKSwgcGVyZm9ybWluZyAiZGUtemlwcGVyaW5nIiB0byBzbW9vdGhseSBjaGFuZ2UgZnJv
bSAqbGFzdE1peEdhaW4gdG8gKHRhcmdldEdhaW4qbV9idXNHYWluKS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDljNGQ2NzFjYmRjYTMyZTU5OGEwZjlmMmE2N2NjZjNmZjE3NTg1
ZTMuLjdhOWQ4NDEyNzg4YTVlMzRkZjk1NTgwMjdiYWM3M2I4MzJmNDFkYmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTA4ICBDbGFyayBX
YW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9ucyBm
b3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVz
dHMgdGhhdCBub3cgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBl
Y3RlZC50eHQ6CisKIDIwMjAtMDctMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZWRpdGluZyBmcm9tIHVw
c3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL2N0
b3ItcGFubmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZh
Y2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CmluZGV4IDVhNTlkZmI0YWYzNDI3OTBkNWU2NWQy
Y2I1NDJhMzE1YjhiYjJmYTUuLjViNGEyODVmYWEyN2JlNmZmZjRjZDA2MzM1MTllYzhiODk3Mjhh
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZhY2UvY3Rvci1w
YW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZh
Y2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CkBAIC00NCwyNyArNDQsMjcgQEAgUEFTUyAgIG5v
ZGUyLmNoYW5uZWxDb3VudCBpcyBlcXVhbCB0byAyLgogUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMs
IHsiY2hhbm5lbENvdW50IjowfSkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSAw
IHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0
YXRlLiIuIAogUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gMCBpcyBl
cXVhbCB0byAyLiAKLUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudCI6M30p
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudCA9IDMgZGlkIG5vdCB0aHJvdyBhbiBl
eGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5v
ZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gMyBpcyBub3QgZXF1YWwgdG8gMi4gR290
IDMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyAgIG5ldyBQYW5u
ZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50Ijo5OX0pIHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAi
VGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIuIAotUEFTUyAgIG5vZGUuY2hhbm5l
bENvdW50ID0gOTkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFu
IGludmFsaWQgc3RhdGUuIi4gCitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291
bnQiOjN9KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291
bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIi4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnQg
PSAzIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudCBj
YW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudCBhZnRl
ciBzZXR0aW5nIHRvIDMgaXMgZXF1YWwgdG8gMi4gCitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywg
eyJjaGFubmVsQ291bnQiOjk5fSkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2Rl
J3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMiIuIAorUEFTUyAgIG5vZGUu
Y2hhbm5lbENvdW50ID0gOTkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3Mg
Y2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMiIuIAogUEFTUyAgIG5vZGUuY2hh
bm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gOTkgaXMgZXF1YWwgdG8gMi4gCiBQQVNTICAgbm9k
ZTMgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJjbGFtcGVkLW1heCJ9
KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTMuY2hhbm5lbENvdW50
TW9kZSBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4gCiBQQVNTICAgbm9kZTQgPSBuZXcgUGFubmVy
Tm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJleHBsaWNpdCJ9KSBkaWQgbm90IHRocm93IGFu
IGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTQuY2hhbm5lbENvdW50TW9kZSBpcyBlcXVhbCB0byBl
eHBsaWNpdC4gCi1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnRNb2RlIjoi
bWF4In0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBtYXggZGlkIG5v
dCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50TW9kZSBhZnRlciBzZXR0aW5nIHRvIG1heCBpcyBu
b3QgZXF1YWwgdG8gY2xhbXBlZC1tYXguIEdvdCBtYXguIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsICIgKyBKU09OLnN0cmluZ2lm
eShvcHRpb25zKSArICIpIHRocmV3ICJJbnZhbGlkU3RhdGVFcnJvciIgaW5zdGVhZCBvZiBFY21h
U2NyaXB0IGVycm9yIFR5cGVFcnJvci4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRNb2RlID0gZm9vYmFyIGluY29ycmVjdGx5IHRo
cmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRl
LiIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIG5ldyBQYW5u
ZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6Im1heCJ9KSB0aHJldyBOb3RTdXBwb3J0ZWRF
cnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2RlIGNhbm5vdCBiZSBtYXgiLiAKK1BB
U1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBtYXggdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6
ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50TW9kZSBjYW5ub3QgYmUgbWF4Ii4gCitQQVNTICAg
bm9kZS5jaGFubmVsQ291bnRNb2RlIGFmdGVyIHNldHRpbmcgdG8gbWF4IGlzIGVxdWFsIHRvIGNs
YW1wZWQtbWF4LiAKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCAiICsgSlNPTi5zdHJpbmdpZnko
b3B0aW9ucykgKyAiKSB0aHJldyBUeXBlRXJyb3I6ICJUeXBlIGVycm9yIi4gCitQQVNTICAgbm9k
ZS5jaGFubmVsQ291bnRNb2RlID0gZm9vYmFyIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAK
IFBBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgYWZ0ZXIgc2V0dGluZyB0byBmb29iYXIgaXMg
ZXF1YWwgdG8gY2xhbXBlZC1tYXguIAogUEFTUyAgIG5vZGU1ID0gbmV3IFBhbm5lck5vZGUoYywg
eyJjaGFubmVsSW50ZXJwcmV0YXRpb24iOiJzcGVha2VycyJ9KSBkaWQgbm90IHRocm93IGFuIGV4
Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTUuY2hhbm5lbEludGVycHJldGF0aW9uIGlzIGVxdWFsIHRv
IHNwZWFrZXJzLiAKIFBBU1MgICBub2RlNiA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbElu
dGVycHJldGF0aW9uIjoiZGlzY3JldGUifSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAog
UEFTUyAgIG5vZGU2LmNoYW5uZWxJbnRlcnByZXRhdGlvbiBpcyBlcXVhbCB0byBkaXNjcmV0ZS4g
Ci1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50ZXJwcmV0YXRpb24iOiJmb29i
YXIifSkgdGhyZXcgIkludmFsaWRTdGF0ZUVycm9yIiBpbnN0ZWFkIG9mIEVjbWFTY3JpcHQgZXJy
b3IgVHlwZUVycm9yLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
ICBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJbnRlcnByZXRhdGlvbiI6ImZvb2JhciJ9KSB0
aHJldyBUeXBlRXJyb3I6ICJUeXBlIGVycm9yIi4gCiBQQVNTICAgbmV3IFBhbm5lck5vZGUoYywg
eyJtYXhEaXN0YW5jZSI6LTF9KSB0aHJldyBSYW5nZUVycm9yOiAibWF4RGlzdGFuY2UgY2Fubm90
IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1ZSIuIAogUEFTUyAgIG5vZGUubWF4RGlzdGFu
Y2UgPSAtMSB0aHJldyBSYW5nZUVycm9yOiAibWF4RGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBh
IG5vbi1wb3NpdGl2ZSB2YWx1ZSIuIAogUEFTUyAgIG5vZGUubWF4RGlzdGFuY2UgYWZ0ZXIgc2V0
dGluZyB0byAtMSBpcyBlcXVhbCB0byAxMDAwMC4gCkBAIC05MSw3ICs5MSw3IEBAIFBBU1MgICBu
b2RlOSA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY29uZU91dGVyR2FpbiI6MC41fSkgZGlkIG5vdCB0
aHJvdyBhbiBleGNlcHRpCiBQQVNTICAgbm9kZTkuY29uZU91dGVyR2FpbiBpcyBlcXVhbCB0byAw
LjUuIAogUEFTUyAgIG5vZGU5ID0gbmV3IFBhbm5lck5vZGUoYywgeyJjb25lT3V0ZXJHYWluIjox
fSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGU5LmNvbmVPdXRlckdh
aW4gaXMgZXF1YWwgdG8gMS4gCi1GQUlMIDwgW3Rlc3QgQXVkaW9Ob2RlT3B0aW9uc10gOSBvdXQg
b2YgNTQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTIDwgW3Rlc3QgQXVkaW9Ob2RlT3B0aW9uc10gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgNTQgYXNzZXJ0aW9ucykgCiBQQVNTID4gW2NvbnN0cnVjdG9yIHdpdGgg
b3B0aW9uc10gIAogUEFTUyAgIG5vZGUgPSBuZXcgUGFubmVyTm9kZShjLCB7InBhbm5pbmdNb2Rl
bCI6IkhSVEYiLCJwb3NpdGlvblgiOjEuNDE0MjEzNTYyMzczMDk1MSwicG9zaXRpb25ZIjoyLjgy
ODQyNzEyNDc0NjE5MDMsInBvc2l0aW9uWiI6NC4yNDI2NDA2ODcxMTkyODYsIm9yaWVudGF0aW9u
WCI6LTEuNDE0MjEzNTYyMzczMDk1MSwib3JpZW50YXRpb25ZIjotMi44Mjg0MjcxMjQ3NDYxOTAz
LCJvcmllbnRhdGlvbloiOi00LjI0MjY0MDY4NzExOTI4NiwiZGlzdGFuY2VNb2RlbCI6ImxpbmVh
ciIsInJlZkRpc3RhbmNlIjozLjE0MTU5MjY1MzU4OTc5MywibWF4RGlzdGFuY2UiOjYuMjgzMTg1
MzA3MTc5NTg2LCJyb2xsb2ZmRmFjdG9yIjo5LjQyNDc3Nzk2MDc2OTM4LCJjb25lSW5uZXJBbmds
ZSI6MTIuNTY2MzcwNjE0MzU5MTcyLCJjb25lT3V0ZXJBbmdsZSI6MTUuNzA3OTYzMjY3OTQ4OTY2
LCJjb25lT3V0ZXJHYWluIjowLjMxNDE1OTI2NTM1ODk3OTN9KSBkaWQgbm90IHRocm93IGFuIGV4
Y2VwdGlvbi4gCiBQQVNTICAgbm9kZSBpbnN0YW5jZW9mIFBhbm5lck5vZGUgaXMgZXF1YWwgdG8g
dHJ1ZS4gCkBAIC0xMTMsNSArMTEzLDUgQEAgUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGlzIGVx
dWFsIHRvIDIuCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlIGlzIGVxdWFsIHRvIGNsYW1w
ZWQtbWF4LiAKIFBBU1MgICBub2RlLmNoYW5uZWxJbnRlcnByZXRhdGlvbiBpcyBlcXVhbCB0byBz
cGVha2Vycy4gCiBQQVNTIDwgW2NvbnN0cnVjdG9yIHdpdGggb3B0aW9uc10gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMTkgYXNzZXJ0aW9ucykgCi1GQUlMICMgQVVESVQgVEFTSyBSVU5O
RVIgRklOSVNIRUQ6IDEgb3V0IG9mIDUgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiA1IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403808</attachid>
            <date>2020-07-08 13:57:32 -0700</date>
            <delta_ts>2020-07-09 07:22:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200708165729.patch</filename>
            <type>text/plain</type>
            <size>46911</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYwYjc3OGY4YWRiODQ2
M2JmYWJmYzNjNWYwMWY2ZjgzMjU5NGNmZS4uY2I1YTFmNTYwOWU0ZmJiZWIzMDVjM2MwYTI2YTcx
YWJmZTRlNDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA3LTA4ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzZXR0ZXIg
bWV0aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxD
b3VudCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6CisgICAgICAgIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisg
ICAgICAgIE1vdmVkIENoYW5uZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRo
ZWlyIG93biBmaWxlcy4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1
ZGlvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnRNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
OjpjaGFubmVsQ291bnRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5l
bEludGVycHJldGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6aW50
ZXJuYWxDaGFubmVsQ291bnRNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvTm9kZTo6aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24gY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvTm9kZUlucHV0OjpidXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6
OnN1bUFsbENvbm5lY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojpw
dWxsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6Q29udm9sdmVyTm9kZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhbm5lck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRD
aGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q2hhbm5lbENv
dW50TW9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRpb1Bhbm5lck5vZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OnN1bUZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmg6
CisKIDIwMjAtMDctMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gTWFrZSBpdCBwb3NzaWJsZSB0byBlc3RhYmxpc2ggZGlyZWN0IFhQQyBj
b25uZWN0aW9ucyBiZXR3ZWVuIFdlYktpdCBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMjk4YzY3ZGZhYjk2MTVkY2Q1NDYyOTI3ODU3ZGE5NzQyYmRmYzFkMy4uMjc5MzEyMTgxYTY5
YjI5YjZkOTcyYmIxMzhhYzJlMTU1YmZjNjJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ1
OSw2ICs0NTksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9k
ZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsCisgICAgTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxT
cGxpdHRlck5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
MjMwNzBlZjE3NjMxNTdlYWZlZGJiYTc2ZDdmMjk2MGIzOTk0OTY1MS4uODMwOWIyOWIyYmJhMjE1
NDcyMzE0ZTcyZDE1OWZmM2Q4YTg1YTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMDgsNiArMzA4LDggQEAgJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
d2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQ29udm9sdmVyTm9kZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWFlYzk5MzM5OTExMjU4MzgxNDljZWZmMzVlOWMwY2Zi
M2FmNjUxMC4uMDM0NmJjZTk0ZTA2ZjdkM2RhMWU5NDFjOTE4Mjg5N2RlOGUxNjI3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTMw
MSw2ICszMDEsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDYW52YXNUcmFuc2Zvcm0uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NhbnZhc1RyYW5zZm9ybS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1VzZXJJbnRlcmZhY2UuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1VzZXJJbnRlcmZh
Y2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFu
bmVsQ291bnRNb2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbEludGVycHJldGF0aW9uLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsSW50ZXJwcmV0YXRpb24u
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVs
TWVyZ2VyTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ2hhbm5lbE1lcmdlck5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggMzQxZDg3NTdjMmE3YzMyYzA4NDQyYmY5ZjA0ZDRlNWJiYzdjYzg2
Ny4uN2Q4MjlhYjY3NjEyYzU1ZDFhOGRjNDAxNmY5YTZjZDNiNTJmOTAzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOTEsNiArMzkxLDggQEAgSlNfQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24u
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9k
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5k
ZXggY2U4MjQ2OWY2NDZjMTZkYTJhOTg1M2IxMzhhOTRiZmY5ZDhjMWZkYS4uZGE4Yzk5NjAwMDA5
ZmRhYTQxMjJmOTA5Yzg5ZWIwYzI1ZjU5ZGRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtMTA2LDggKzEwNiw4IEBAIEF1ZGlvTm9kZTo6
QXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIoY29udGV4dC5uZXh0QXVkaW9Ob2RlTG9nSWRlbnRpZmllcigp
KQogI2VuZGlmCiAgICAgLCBtX2NoYW5uZWxDb3VudCgyKQotICAgICwgbV9jaGFubmVsQ291bnRN
b2RlKE1heCkKLSAgICAsIG1fY2hhbm5lbEludGVycHJldGF0aW9uKEF1ZGlvQnVzOjpTcGVha2Vy
cykKKyAgICAsIG1fY2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlOjpNYXgpCisgICAg
LCBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbihDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJz
KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgCkBAIC0yNjgsMTEgKzI2
OCw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdCh1bnNpZ25lZCBv
dXRwdXRJbmRleCkKICAgICByZXR1cm4geyB9OwogfQogCi11bnNpZ25lZCBBdWRpb05vZGU6OmNo
YW5uZWxDb3VudCgpCi17Ci0gICAgcmV0dXJuIG1fY2hhbm5lbENvdW50OwotfQotCiBFeGNlcHRp
b25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBjaGFubmVsQ291
bnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI4NywyNiArMjgyLDEyIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNo
YW5uZWxDb3VudCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIG1fY2hhbm5lbENvdW50ID0g
Y2hhbm5lbENvdW50OwotICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gTWF4KQorICAgIGlm
IChtX2NoYW5uZWxDb3VudE1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4KQogICAgICAgICB1
cGRhdGVDaGFubmVsc0ZvcklucHV0cygpOwogICAgIHJldHVybiB7IH07CiB9CiAKLVN0cmluZyBB
dWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUoKQotewotICAgIHN3aXRjaCAobV9jaGFubmVsQ291
bnRNb2RlKSB7Ci0gICAgY2FzZSBNYXg6Ci0gICAgICAgIHJldHVybiAibWF4Il9zOwotICAgIGNh
c2UgQ2xhbXBlZE1heDoKLSAgICAgICAgcmV0dXJuICJjbGFtcGVkLW1heCJfczsKLSAgICBjYXNl
IEV4cGxpY2l0OgotICAgICAgICByZXR1cm4gImV4cGxpY2l0Il9zOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotRXhjZXB0
aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYg
bW9kZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50TW9kZShD
aGFubmVsQ291bnRNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihjb250ZXh0KCkpOwpAQCAtMzE1
LDE0ICsyOTYsMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291
bnRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKICAgICAKICAgICBDaGFubmVsQ291bnRNb2RlIG9s
ZE1vZGUgPSBtX2NoYW5uZWxDb3VudE1vZGU7CiAKLSAgICBpZiAobW9kZSA9PSAibWF4IikKLSAg
ICAgICAgbV9jaGFubmVsQ291bnRNb2RlID0gTWF4OwotICAgIGVsc2UgaWYgKG1vZGUgPT0gImNs
YW1wZWQtbWF4IikKLSAgICAgICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAg
ICBlbHNlIGlmIChtb2RlID09ICJleHBsaWNpdCIpCi0gICAgICAgIG1fY2hhbm5lbENvdW50TW9k
ZSA9IEV4cGxpY2l0OwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisgICAgaWYgKG1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4ICYm
IG1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heCAmJiBtb2RlICE9IENoYW5uZWxD
b3VudE1vZGU6OkV4cGxpY2l0KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJOb3QgYSB2YWxpZCBDaGFubmVsQ291bnRNb2RlIl9zIH07CisgICAgCisgICAg
bV9jaGFubmVsQ291bnRNb2RlID0gbW9kZTsKIAogICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUg
IT0gb2xkTW9kZSkKICAgICAgICAgdXBkYXRlQ2hhbm5lbHNGb3JJbnB1dHMoKTsKQEAgLTMzMCwz
MSArMzA3LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50
TW9kZShjb25zdCBTdHJpbmcmIG1vZGUpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotU3RyaW5nIEF1
ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKCkKLXsKLSAgICBzd2l0Y2ggKG1fY2hhbm5l
bEludGVycHJldGF0aW9uKSB7Ci0gICAgY2FzZSBBdWRpb0J1czo6U3BlYWtlcnM6Ci0gICAgICAg
IHJldHVybiAic3BlYWtlcnMiX3M7Ci0gICAgY2FzZSBBdWRpb0J1czo6RGlzY3JldGU6Ci0gICAg
ICAgIHJldHVybiAiZGlzY3JldGUiX3M7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b05vZGU6OnNldENoYW5uZWxJbnRlcnByZXRhdGlvbihjb25zdCBTdHJpbmcmIGludGVycHJldGF0
aW9uKQorRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRp
b24oY29uc3QgQ2hhbm5lbEludGVycHJldGF0aW9uIGludGVycHJldGF0aW9uKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQmFzZUF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBs
b2NrZXIoY29udGV4dCgpKTsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgaW50ZXJw
cmV0YXRpb24pOwogICAgIAotICAgIGlmIChpbnRlcnByZXRhdGlvbiA9PSAic3BlYWtlcnMiKQot
ICAgICAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKLSAg
ICBlbHNlIGlmIChpbnRlcnByZXRhdGlvbiA9PSAiZGlzY3JldGUiKQotICAgICAgICBtX2NoYW5u
ZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpEaXNjcmV0ZTsKLSAgICBlbHNlCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIGlmIChpbnRlcnBy
ZXRhdGlvbiAhPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzICYmIGludGVycHJldGF0
aW9uICE9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vdCBhIHZhbGlkIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbiJfcyB9OworICAgIAorICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gaW50ZXJw
cmV0YXRpb247CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmgKaW5kZXggZWY1YmVmZGVlNDRkNDRmNjlkYjI4OTZmODA0N2E4
M2RjMTE3MjNhYS4uY2U1ODljYTQxZjUzNDQ1YzU2MGUxYzQzMzEzMzE5NGQwZmQ2MTA5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCkBAIC0yNSw2ICsy
NSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisjaW5jbHVkZSAi
Q2hhbm5lbENvdW50TW9kZS5oIgorI2luY2x1ZGUgIkNoYW5uZWxJbnRlcnByZXRhdGlvbi5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtOTIsMTIgKzk0LDYgQEAgcHVibGljOgogICAgICAgICBO
b2RlVHlwZUVuZAogICAgIH07CiAKLSAgICBlbnVtIENoYW5uZWxDb3VudE1vZGUgewotICAgICAg
ICBNYXgsCi0gICAgICAgIENsYW1wZWRNYXgsCi0gICAgICAgIEV4cGxpY2l0Ci0gICAgfTsKLQog
ICAgIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZTsgfQogICAg
IHZvaWQgc2V0Tm9kZVR5cGUoTm9kZVR5cGUpOwogCkBAIC0xNzcsMTcgKzE3MywxNCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIGRpc2Fi
bGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKIAotICAgIHVuc2lnbmVkIGNoYW5uZWxDb3VudCgpOwor
ICAgIHVuc2lnbmVkIGNoYW5uZWxDb3VudCgpIHsgcmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CiAg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnQodW5zaWduZWQpOwog
Ci0gICAgU3RyaW5nIGNoYW5uZWxDb3VudE1vZGUoKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0IFN0cmluZyYpOwotCi0gICAgU3RyaW5nIGNoYW5uZWxJ
bnRlcnByZXRhdGlvbigpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxJbnRlcnBy
ZXRhdGlvbihjb25zdCBTdHJpbmcmKTsKKyAgICBDaGFubmVsQ291bnRNb2RlIGNoYW5uZWxDb3Vu
dE1vZGUoKSB7IHJldHVybiBtX2NoYW5uZWxDb3VudE1vZGU7IH0KKyAgICB2aXJ0dWFsIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudE1vZGUoQ2hhbm5lbENvdW50TW9kZSk7CiAKLSAg
ICBDaGFubmVsQ291bnRNb2RlIGludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2hhbm5lbENvdW50TW9kZTsgfQotICAgIEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJwcmV0
YXRpb24gaW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2No
YW5uZWxJbnRlcnByZXRhdGlvbjsgfQorICAgIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVs
SW50ZXJwcmV0YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxJbnRlcnByZXRhdGlvbihjb25zdCBD
aGFubmVsSW50ZXJwcmV0YXRpb24pOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gSW5wdXRzIGFuZCBv
dXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUgdGhlIEF1ZGlvTm9kZSBpcyBpbml0aWFsaXpl
ZC4KQEAgLTI1MSw3ICsyNDQsNyBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIHVuc2lnbmVk
IG1fY2hhbm5lbENvdW50OwogICAgIENoYW5uZWxDb3VudE1vZGUgbV9jaGFubmVsQ291bnRNb2Rl
OwotICAgIEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJwcmV0YXRpb24gbV9jaGFubmVsSW50ZXJwcmV0
YXRpb247CisgICAgQ2hhbm5lbEludGVycHJldGF0aW9uIG1fY2hhbm5lbEludGVycHJldGF0aW9u
OwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvTm9kZTo6Tm9k
ZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaWRs
CmluZGV4IDYzNmE5NWMzODlkNzA4ZGE0OWY3NmIxNzY3ZDdiYTJhNDg5MmE2MTMuLjA0ZjgwZWIw
NWYxZmE5YjRlMmU0YmI3ZmJmYzhlYjkxNThhMWEzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKQEAgLTMwLDggKzMwLDggQEAKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZk91dHB1dHM7CiAKICAgICBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBjaGFubmVsQ291bnQ7Ci0gICAgYXR0cmlidXRlIERPTVN0cmlu
ZyBjaGFubmVsQ291bnRNb2RlOwotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhbm5lbEludGVy
cHJldGF0aW9uOworICAgIGF0dHJpYnV0ZSBDaGFubmVsQ291bnRNb2RlIGNoYW5uZWxDb3VudE1v
ZGU7CisgICAgYXR0cmlidXRlIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0
YXRpb247CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEF1ZGlvTm9kZSBjb25uZWN0KFtSZXR1
cm5WYWx1ZV0gQXVkaW9Ob2RlIGRlc3RpbmF0aW9uLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG91
dHB1dCA9IDAsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgaW5wdXQgPSAwKTsKICAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHZvaWQgY29ubmVjdChBdWRpb1BhcmFtIGRlc3RpbmF0aW9uLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIG91dHB1dCA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAppbmRleCBjY2FhNTFkODIyZTBjODU1NjNl
OWUyZmQ1ZGYxMzYwYjRlYWNmZjdiLi42NGJkZjYxZWMwMmQwNDVlNjYwNDA2YWU2MmNhNzNiY2Qy
ZWExYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZUlucHV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZUlucHV0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5o
IgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgor
I2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0NCw4ICsxNDUsOCBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0
Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJP
ZkNoYW5uZWxzKCkgY29uc3QKIHsKLSAgICBBdWRpb05vZGU6OkNoYW5uZWxDb3VudE1vZGUgbW9k
ZSA9IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCk7Ci0gICAgaWYgKG1vZGUgPT0g
QXVkaW9Ob2RlOjpFeHBsaWNpdCkKKyAgICBhdXRvIG1vZGUgPSBub2RlKCktPmNoYW5uZWxDb3Vu
dE1vZGUoKTsKKyAgICBpZiAobW9kZSA9PSBDaGFubmVsQ291bnRNb2RlOjpFeHBsaWNpdCkKICAg
ICAgICAgcmV0dXJuIG5vZGUoKS0+Y2hhbm5lbENvdW50KCk7CiAKICAgICAvLyBGaW5kIHRoZSBu
dW1iZXIgb2YgY2hhbm5lbHMgb2YgdGhlIGNvbm5lY3Rpb24gd2l0aCB0aGUgbGFyZ2VzdCBudW1i
ZXIgb2YgY2hhbm5lbHMuCkBAIC0xNTcsNyArMTU4LDcgQEAgdW5zaWduZWQgQXVkaW9Ob2RlSW5w
dXQ6Om51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAogICAgICAgICBtYXhDaGFubmVscyA9IHN0ZDo6
bWF4KG1heENoYW5uZWxzLCBvdXRwdXQtPm51bWJlck9mQ2hhbm5lbHMoKSk7CiAgICAgfQogCi0g
ICAgaWYgKG1vZGUgPT0gQXVkaW9Ob2RlOjpDbGFtcGVkTWF4KQorICAgIGlmIChtb2RlID09IENo
YW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXgpCiAgICAgICAgIG1heENoYW5uZWxzID0gc3RkOjpt
aW4obWF4Q2hhbm5lbHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihub2RlKCktPmNoYW5uZWxDb3Vu
dCgpKSk7CiAKICAgICByZXR1cm4gbWF4Q2hhbm5lbHM7CkBAIC0xNjgsNyArMTY5LDcgQEAgQXVk
aW9CdXMqIEF1ZGlvTm9kZUlucHV0OjpidXMoKQogICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRp
b1RocmVhZCgpKTsKIAogICAgIC8vIEhhbmRsZSBzaW5nbGUgY29ubmVjdGlvbiBzcGVjaWFsbHkg
dG8gYWxsb3cgZm9yIGluLXBsYWNlIHByb2Nlc3NpbmcuCi0gICAgaWYgKG51bWJlck9mUmVuZGVy
aW5nQ29ubmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2Rl
KCkgPT0gQXVkaW9Ob2RlOjpNYXgpCisgICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlv
bnMoKSA9PSAxICYmIG5vZGUoKS0+Y2hhbm5lbENvdW50TW9kZSgpID09IENoYW5uZWxDb3VudE1v
ZGU6Ok1heCkKICAgICAgICAgcmV0dXJuIHJlbmRlcmluZ091dHB1dCgwKS0+YnVzKCk7CiAKICAg
ICAvLyBNdWx0aXBsZSBjb25uZWN0aW9ucyBjYXNlIG9yIGNvbXBsZXggQ2hhbm5lbENvdW50TW9k
ZSAob3Igbm8gY29ubmVjdGlvbnMpLgpAQCAtMTg3LDcgKzE4OCw3IEBAIHZvaWQgQXVkaW9Ob2Rl
SW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKEF1ZGlvQnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJh
bWVzVG9Qcm9jCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAg
Ly8gV2Ugc2hvdWxkbid0IGJlIGNhbGxpbmcgdGhpcyBtZXRob2QgaWYgdGhlcmUncyBvbmx5IG9u
ZSBjb25uZWN0aW9uLCBzaW5jZSBpdCdzIGxlc3MgZWZmaWNpZW50LgotICAgIEFTU0VSVChudW1i
ZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPiAxIHx8IG5vZGUoKS0+aW50ZXJuYWxDaGFubmVs
Q291bnRNb2RlKCkgIT0gQXVkaW9Ob2RlOjpNYXgpOworICAgIEFTU0VSVChudW1iZXJPZlJlbmRl
cmluZ0Nvbm5lY3Rpb25zKCkgPiAxIHx8IG5vZGUoKS0+Y2hhbm5lbENvdW50TW9kZSgpICE9IE1h
eCk7CiAKICAgICBBU1NFUlQoc3VtbWluZ0J1cyk7CiAgICAgaWYgKCFzdW1taW5nQnVzKQpAQCAt
MTk1LDcgKzE5Niw3IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKEF1
ZGlvQnVzKiBzdW1taW5nQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIAogICAgIHN1
bW1pbmdCdXMtPnplcm8oKTsKIAotICAgIEF1ZGlvQnVzOjpDaGFubmVsSW50ZXJwcmV0YXRpb24g
aW50ZXJwcmV0YXRpb24gPSBub2RlKCktPmludGVybmFsQ2hhbm5lbEludGVycHJldGF0aW9uKCk7
CisgICAgYXV0byBpbnRlcnByZXRhdGlvbiA9IG5vZGUoKS0+Y2hhbm5lbEludGVycHJldGF0aW9u
KCk7CiAKICAgICBmb3IgKGF1dG8mIG91dHB1dCA6IG1fcmVuZGVyaW5nT3V0cHV0cykgewogICAg
ICAgICBBU1NFUlQob3V0cHV0KTsKQEAgLTIxMyw3ICsyMTQsNyBAQCBBdWRpb0J1cyogQXVkaW9O
b2RlSW5wdXQ6OnB1bGwoQXVkaW9CdXMqIGluUGxhY2VCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwogCiAgICAgLy8gSGFu
ZGxlIHNpbmdsZSBjb25uZWN0aW9uIGNhc2UuCi0gICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29u
bmVjdGlvbnMoKSA9PSAxICYmIG5vZGUoKS0+aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlKCkgPT0g
QXVkaW9Ob2RlOjpNYXgpIHsKKyAgICBpZiAobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygp
ID09IDEgJiYgbm9kZSgpLT5jaGFubmVsQ291bnRNb2RlKCkgPT0gQ2hhbm5lbENvdW50TW9kZTo6
TWF4KSB7CiAgICAgICAgIC8vIFRoZSBvdXRwdXQgd2lsbCBvcHRpbWl6ZSBwcm9jZXNzaW5nIHVz
aW5nIGluUGxhY2VCdXMgaWYgaXQncyBhYmxlLgogICAgICAgICBBdWRpb05vZGVPdXRwdXQqIG91
dHB1dCA9IHRoaXMtPnJlbmRlcmluZ091dHB1dCgwKTsKICAgICAgICAgcmV0dXJuIG91dHB1dC0+
cHVsbChpblBsYWNlQnVzLCBmcmFtZXNUb1Byb2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaAppbmRleCA3YWQ5ODJiNThiNjhh
YTg4ZDBjYmVhNzZlNzlhNTY0MTBiMDE5YjFlLi4wNDBmMDc4NDY2MjBjNzcxMjVmYTVlZjUzMzM1
MWU5NWFjZmJjNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZU9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZU9wdGlvbnMuaApAQCAtMjcsMTUgKzI3LDE2IEBACiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQogCisjaW5jbHVkZSAiQ2hhbm5lbENvdW50TW9kZS5oIgorI2luY2x1ZGUgIkNoYW5u
ZWxJbnRlcnByZXRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBB
dWRpb05vZGVPcHRpb25zIHsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gY2hhbm5lbENvdW50Owot
ICAgIFN0cmluZyBjaGFubmVsQ291bnRNb2RlOwotICAgIFN0cmluZyBjaGFubmVsSW50ZXJwcmV0
YXRpb247CisgICAgT3B0aW9uYWw8Q2hhbm5lbENvdW50TW9kZT4gY2hhbm5lbENvdW50TW9kZTsK
KyAgICBPcHRpb25hbDxDaGFubmVsSW50ZXJwcmV0YXRpb24+IGNoYW5uZWxJbnRlcnByZXRhdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsCmluZGV4IDBhNDAzMGUzN2Uz
OTgzZjc1MjNkYzRiZGFjNGMwOGM0ODk4Nzc0MDYuLmU1MTRkYmNkMDIzNDE3YWZlODlhMmIxZmM4
OWYzMzU1YTMwZTk2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGVPcHRpb25zLmlkbApAQCAtMjYsMTAgKzI2LDYgQEAKICAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8sCiBdIGRpY3Rpb25hcnkgQXVkaW9Ob2RlT3B0aW9ucyB7CiAgICAgdW5z
aWduZWQgbG9uZyBjaGFubmVsQ291bnQ7Ci0gICAgCi0gICAgLy8gRklYTUU6IFNob3VsZCBiZSB1
cGRhdGVkIHRvIHVzZSBDaGFubmVsQ291bnRNb2RlIGVudW0gdHlwZS4KLSAgICBET01TdHJpbmcg
Y2hhbm5lbENvdW50TW9kZTsKLSAgICAKLSAgICAvLyBGSVhNRTogU2hvdWxkIGJlIHVwZGF0ZWQg
dG8gdXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbiBlbnVtIHR5cGUuCi0gICAgRE9NU3RyaW5nIGNo
YW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBDaGFubmVsQ291bnRNb2RlIGNoYW5uZWxDb3VudE1v
ZGU7CisgICAgQ2hhbm5lbEludGVycHJldGF0aW9uIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3Vu
dE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9k
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlZmJlOWFiZWQzYWYyMjU2MTExMGIyZTQxZDg0MTVlOTNiYTdhNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5u
ZWxDb3VudE1vZGUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBDaGFubmVsQ291bnRNb2RlIHsK
KyAgICBNYXgsCisgICAgQ2xhbXBlZE1heCwKKyAgICBFeHBsaWNpdCwKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQ2hhbm5lbENvdW50TW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0NoYW5uZWxDb3VudE1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMjVjODk2ZjhhM2NlM2NkYjdjZmRm
M2U1MjA3Y2E0YzdiMTY4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10gZW51bSBDaGFubmVsQ291bnRN
b2RlIHsKKyAgICAibWF4IiwKKyAgICAiY2xhbXBlZC1tYXgiLAorICAgICJleHBsaWNpdCIKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJbnRl
cnByZXRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50
ZXJwcmV0YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjNkYTI4N2MyMDBmNWU0YjZjN2EzN2FmODhiNDcz
ZjY1ZmQxY2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBdWRpb0J1cy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYyOTQxYTE1NjhjMzMyMzAyZjQxY2Q2ODRiOGVmZjliODU1MzM2M2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxJ
bnRlcnByZXRhdGlvbi5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVRElPLAorXSBlbnVtIENoYW5uZWxJbnRlcnByZXRhdGlvbiB7CisgICAg
InNwZWFrZXJzIiwKKyAgICAiZGlzY3JldGUiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggN2UxMzhkNGQzMTM2YjcxOTdk
M2I3ZWJiZmEwMDIxYzg0ZjczMmI4YS4uNzQ3ZjU1MDBlNDQ1YjhhOWZmMmFhMDg5MjQxY2ZkMDRl
NGY0MzE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252
b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZv
bHZlck5vZGUuY3BwCkBAIC01Nyw4ICs1Nyw4IEBAIENvbnZvbHZlck5vZGU6OkNvbnZvbHZlck5v
ZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKIAogICAgIC8v
IE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMuCiAgICAgbV9jaGFubmVsQ291bnQg
PSAyOwotICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7Ci0gICAgbV9jaGFubmVs
SW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAgbV9jaGFubmVsQ291bnRN
b2RlID0gQ2hhbm5lbENvdW50TW9kZTo6Q2xhbXBlZE1heDsKKyAgICBtX2NoYW5uZWxJbnRlcnBy
ZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7CiAgICAgCiAgICAgaW5p
dGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDRkZDk5YzE5
MmI2YTMzNWE2MDFmZmQ1MTU1MWIwMWIwZDk2Y2I2MDkuLjdlM2ZmOTUzMzY2N2U0NTA5YjQ5Y2Q4
YWJkNjdkNDQzMDY1NTcyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQ4
LDggKzQ4LDggQEAgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGUKIHsKICAgICAvLyBOb2RlLXNwZWNp
ZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5lbENvdW50ID0gMjsKLSAgICBt
X2NoYW5uZWxDb3VudE1vZGUgPSBFeHBsaWNpdDsKLSAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlv
biA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDaGFubmVs
Q291bnRNb2RlOjpFeHBsaWNpdDsKKyAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IENoYW5u
ZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnM7CiB9CiAKIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6fkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAppbmRleCA1MmMwNGMyNTdhMDY5ODA0ZTIy
YTBmM2NlNjc5YjRkZDYwOTJiZmFiLi4yODk4ZDUwMTYzN2M3ZGRkOGIyOTllMTc4ZTllMDg4NjQ2
NDU0NzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNs
dWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2lu
Y2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIu
aCIKICNpbmNsdWRlICJIUlRGUGFubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgpAQCAtNzUsOCArNzYsOCBAQCBQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAKICAgICAvLyBOb2RlLXNwZWNp
ZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5lbENvdW50ID0gMjsKLSAgICBt
X2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4OwotICAgIG1fY2hhbm5lbEludGVycHJldGF0
aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENoYW5u
ZWxDb3VudE1vZGU6OkNsYW1wZWRNYXg7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBD
aGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwogCiAgICAgbV9kaXN0YW5jZUdhaW4gPSBB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRpc3RhbmNlR2FpbiIsIDEuMCwgMC4wLCAxLjAp
OwogICAgIG1fY29uZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImNvbmVHYWlu
IiwgMS4wLCAwLjAsIDEuMCk7CkBAIC0xMTMsMTEgKzExNCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8
UGFubmVyTm9kZT4+IFBhbm5lck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0
LCBjb25zdAogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIAotICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0
Q2hhbm5lbENvdW50TW9kZShvcHRpb25zLmNoYW5uZWxDb3VudE1vZGUuaXNOdWxsKCkgPyAiY2xh
bXBlZC1tYXgiX3N0ciA6IG9wdGlvbnMuY2hhbm5lbENvdW50TW9kZSk7CisgICAgcmVzdWx0ID0g
cGFubmVyLT5zZXRDaGFubmVsQ291bnRNb2RlKG9wdGlvbnMuY2hhbm5lbENvdW50TW9kZS52YWx1
ZU9yKENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXgpKTsKICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAg
ICAKLSAgICByZXN1bHQgPSBwYW5uZXItPnNldENoYW5uZWxJbnRlcnByZXRhdGlvbihvcHRpb25z
LmNoYW5uZWxJbnRlcnByZXRhdGlvbi5pc051bGwoKSA/ICJzcGVha2VycyJfc3RyIDogb3B0aW9u
cy5jaGFubmVsSW50ZXJwcmV0YXRpb24pOworICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0Q2hhbm5l
bEludGVycHJldGF0aW9uKG9wdGlvbnMuY2hhbm5lbEludGVycHJldGF0aW9uLnZhbHVlT3IoQ2hh
bm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycykpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIApA
QCAtMzM1LDYgKzMzNiwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDb25l
T3V0ZXJHYWluKGRvdWJsZSBnYWluKQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2VwdGlvbk9y
PHZvaWQ+IFBhbm5lck5vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBjaGFubmVsQ291bnQp
Cit7CisgICAgaWYgKGNoYW5uZWxDb3VudCA+IDIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciwgIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJl
IGdyZWF0ZXIgdGhhbiAyIl9zIH07CisgICAgCisgICAgcmV0dXJuIEF1ZGlvTm9kZTo6c2V0Q2hh
bm5lbENvdW50KGNoYW5uZWxDb3VudCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5v
ZGU6OnNldENoYW5uZWxDb3VudE1vZGUoQ2hhbm5lbENvdW50TW9kZSBtb2RlKQoreworICAgIGlm
IChtb2RlID09IENoYW5uZWxDb3VudE1vZGU6Ok1heCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yLCAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudE1vZGUgY2Fu
bm90IGJlIG1heCJfcyB9OworICAgIAorICAgIHJldHVybiBBdWRpb05vZGU6OnNldENoYW5uZWxD
b3VudE1vZGUobW9kZSk7Cit9CisKIHZvaWQgUGFubmVyTm9kZTo6Z2V0QXppbXV0aEVsZXZhdGlv
bihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKQogewogICAgIC8vIEZJ
WE1FOiB3ZSBzaG91bGQgY2FjaGUgYXppbXV0aCBhbmQgZWxldmF0aW9uIChpZiBwb3NzaWJsZSks
IHNvIHdlIG9ubHkgcmUtY2FsY3VsYXRlIGlmIGEgY2hhbmdlIGhhcyBiZWVuIG1hZGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCmluZGV4IDM5ZDVjMzcy
MmU5MjZkNDhkYzg1ODllYzliMTdhMGY0NWZjNzZhNWIuLjYyZjA2ZTk3MGI2YTE5MTZiMmUxZmNi
MjRlYmI1YWI5NzY0N2E0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGFubmVyTm9kZS5oCkBAIC0xMjcsNiArMTI3LDkgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGNv
bmVPdXRlckdhaW4oKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3Qub3V0ZXJHYWluKCk7IH0K
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSk7CisgICAgCisg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKSBmaW5hbDsKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUp
IGZpbmFsOwogCiAgICAgdm9pZCBnZXRBemltdXRoRWxldmF0aW9uKGRvdWJsZSogb3V0QXppbXV0
aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pOwogICAgIGZsb2F0IGRvcHBsZXJSYXRlKCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlv
UGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1
ZGlvUGFubmVyTm9kZS5jcHAKaW5kZXggMjU4ZjQ1ZTdjZmQ5MWM4MjJjNjk5MmU3NThkYWE3NThh
ZDc5MDJlMi4uNjA5N2M0MTY2NjQyM2UxZDdjOGQ1ZDVmYjRlY2E4MDViNDAyNmI4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Q
YW5uZXJOb2RlLmNwcApAQCAtNjQsOCArNjQsOCBAQCBXZWJLaXRBdWRpb1Bhbm5lck5vZGU6Oldl
YktpdEF1ZGlvUGFubmVyTm9kZShXZWJLaXRBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0CiAK
ICAgICAvLyBOb2RlLXNwZWNpZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5l
bENvdW50ID0gMjsKLSAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4OwotICAgIG1f
Y2hhbm5lbEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5l
bENvdW50TW9kZSA9IENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXg7CisgICAgbV9jaGFubmVs
SW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwogCiAgICAg
bV9kaXN0YW5jZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRpc3RhbmNlR2Fp
biIsIDEuMCwgMC4wLCAxLjApOwogICAgIG1fY29uZUdhaW4gPSBBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImNvbmVHYWluIiwgMS4wLCAwLjAsIDEuMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDE4
ZWUwMGE0NzcxYTBlODZlZTUxNDgwYzc4YmIwMzY2NTVmY2NkMTUuLjg5YWI5OTZlYTExNDkwZGE0
Y2E4NDQ1MzBhODZhYzNiZDRhYzllYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNzAxLDYgKzI3MDEs
OCBAQCBKU0NhbnZhc1RleHRCYXNlbGluZS5jcHAKIEpTQ2FudmFzVGV4dERyYXdpbmdTdHlsZXMu
Y3BwCiBKU0NhbnZhc1RyYW5zZm9ybS5jcHAKIEpTQ2FudmFzVXNlckludGVyZmFjZS5jcHAKK0pT
Q2hhbm5lbENvdW50TW9kZS5jcHAKK0pTQ2hhbm5lbEludGVycHJldGF0aW9uLmNwcAogSlNDaGFu
bmVsTWVyZ2VyTm9kZS5jcHAKIEpTQ2hhbm5lbFNwbGl0dGVyTm9kZS5jcHAKIEpTQ2hhcmFjdGVy
RGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiZWQxODIyNTg1OWI3YzdjMTA3YzliYjllNTA0OWQ0OTNkY2E2OWI0Li42
ODYzOTJiMDMyZmYyODMxNTMyNzliMmRlZDA4ZjJmZDJhMDhlNDAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDQ0LDYgKzUw
NDQsOCBAQAogCQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2MjE1
MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8q
IEF1ZGlvTm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmgg
Ki87IH07CiAJCUU3MTQ2N0I2MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJB
RjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovOyB9OworCQlFNzg1RDkxNTI0QjREMUNB
MDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxD
b3VudE1vZGUuaCAqLzsgfTsKKwkJRTc4NUQ5MzQyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJ
bnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5o
ICovOyB9OwogCQlFQkU1QjIyNjI0NUEyNkVGMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0
b1Jlc2V0U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEVCRTVCMjI0MjQ1QTI2RUUwMDNBNUE4OCAvKiBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRT
Y29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQTE2OTY0OTZD
MDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwICovOyB9OwogCQlFQkY1MTIxRDE2OTY0
OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFCMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5
cGVDb252ZXJzaW9ucy5oICovOyB9OwpAQCAtMTU3ODgsNiArMTU3OTAsMTAgQEAKIAkJRTcxNDY3
QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9k
ZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJB
RjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3
MTQ2N0I3MjRBQkFGMkMwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBQYW5uZXJPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Q2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVE
OTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU3ODVEOTMzMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVHlwZUNvbnZlcnNpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFR5cGVDb252ZXJzaW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCRTVC
MjI0MjQ1QTI2RUUwMDNBNUE4OCAvKiBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRT
Y29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkzNjcsNiArMjkzNzMsMTAg
QEAKIAkJCQlGREM1NEYwMzEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmlsdGVyTm9kZS5pZGwg
Ki8sCiAJCQkJRkQzMTVGREMxMkIwMjY3NjAwQzFBMzU5IC8qIEJpcXVhZFByb2Nlc3Nvci5jcHAg
Ki8sCiAJCQkJRkQzMTVGREQxMkIwMjY3NjAwQzFBMzU5IC8qIEJpcXVhZFByb2Nlc3Nvci5oICov
LAorCQkJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi8s
CisJCQkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICov
LAorCQkJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24u
aCAqLywKKwkJCQlFNzg1RDkzMzI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0
aW9uLmlkbCAqLywKIAkJCQlGRDMxNUZCNDEyQjAyNjc1MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdl
ck5vZGUuY3BwICovLAogCQkJCUZEMzE1RkI1MTJCMDI2NzUwMEMxQTM1OSAvKiBDaGFubmVsTWVy
Z2VyTm9kZS5oICovLAogCQkJCUZEMzE1RkI2MTJCMDI2NzUwMEMxQTM1OSAvKiBDaGFubmVsTWVy
Z2VyTm9kZS5pZGwgKi8sCkBAIC0zMDA3NCw2ICszMDA4NCw4IEBACiAJCQkJOTFCOEYwQjUyMTk1
M0Q2NTAwMEMyQjAwIC8qIENlcnRpZmljYXRlSW5mb0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFMzZGRDE1MTZDNzgyNjUwMEY4ODdDMSAvKiBDaGFuZ2VWZXJzaW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTdCQzY5REQxNTA1RjA3NjAwMUI3NEFDIC8qIENoYW5nZVZlcnNpb25XcmFw
cGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hh
bm5lbENvdW50TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc4NUQ5MzQyNEI2MzZGRjAwMTRE
QjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTVG
RkYxMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAwMjEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbFNwbGl0dGVyTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTAwOTlERjAyNzAwOTBENzgxIC8qIENoYXJhY3RlckRh
dGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuY3BwCmluZGV4IGU3MGQ0NmQwYjlmMjQwN2Y5MDg1NDhmYThmMmU5OGM5ZGE0NTYzYjcuLmRm
MjNhMGU2MDNkYmQyZjA0N2FmZWE5ZGYzMWE2YzBjODhiZjZhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKQEAgLTI1MywxMCArMjUzLDEwIEBAIHZvaWQg
QXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRl
cnByZXRhdGlvbiBjaGFubmVsCiAgICAgICAgICAgICBjaGFubmVsKGkpLT5jb3B5RnJvbShzb3Vy
Y2VCdXMuY2hhbm5lbChpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc3dpdGNoIChjaGFubmVs
SW50ZXJwcmV0YXRpb24pIHsKLSAgICAgICAgY2FzZSBTcGVha2VyczoKKyAgICAgICAgY2FzZSBD
aGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOgogICAgICAgICAgICAgc3BlYWtlcnNDb3B5
RnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGlzY3Jl
dGU6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0ZToKICAgICAg
ICAgICAgIGRpc2NyZXRlQ29weUZyb20oc291cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgpAQCAtMjc4LDEwICsyNzgsMTAgQEAgdm9pZCBBdWRpb0J1czo6c3Vt
RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hh
bm5lbEkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPnN1bUZyb20oc291cmNlQnVzLmNoYW5uZWwo
aSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY2hhbm5lbEludGVycHJldGF0aW9u
KSB7Ci0gICAgICAgIGNhc2UgU3BlYWtlcnM6CisgICAgICAgIGNhc2UgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpTcGVha2VyczoKICAgICAgICAgICAgIHNwZWFrZXJzU3VtRnJvbShzb3VyY2VCdXMp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGlzY3JldGU6CisgICAgICAgIGNh
c2UgQ2hhbm5lbEludGVycHJldGF0aW9uOjpEaXNjcmV0ZToKICAgICAgICAgICAgIGRpc2NyZXRl
U3VtRnJvbShzb3VyY2VCdXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAppbmRleCAxNjgwMzQ3MzZh
N2QyNzY4OGVkZTQwOTlhZGQwYzE4YzkxYTI4NjRjLi5iNWE4ZjhhZjA1ZTQ4ZDJjNWYzOWRiMmE4
ZjZiODRiOGZjNzQyOGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0J1cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmgKQEAgLTQwLDYgKzQwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEFuIEF1ZGlvQnVz
IHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIG9uZSBvciBtb3JlIEF1ZGlvQ2hhbm5lbHMuCiAv
LyBUaGUgZGF0YSBsYXlvdXQgaXMgInBsYW5hciIgYXMgb3Bwb3NlZCB0byAiaW50ZXJsZWF2ZWQi
LgogLy8gQW4gQXVkaW9CdXMgd2l0aCBvbmUgY2hhbm5lbCBpcyBtb25vLCBhbiBBdWRpb0J1cyB3
aXRoIHR3byBjaGFubmVscyBpcyBzdGVyZW8sIGV0Yy4KKworZW51bSBjbGFzcyBDaGFubmVsSW50
ZXJwcmV0YXRpb24geworICAgIFNwZWFrZXJzLAorICAgIERpc2NyZXRlLAorfTsKKwogY2xhc3Mg
QXVkaW9CdXMgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9CdXM+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb0J1cyk7CiBwdWJsaWM6CkBAIC01OCwxMSAr
NjQsNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIENhbiBkZWZpbmUgbm9uLXN0YW5kYXJkIGxheW91
dHMgaGVyZQogICAgIH07CiAKLSAgICBlbnVtIENoYW5uZWxJbnRlcnByZXRhdGlvbiB7Ci0gICAg
ICAgIFNwZWFrZXJzLAotICAgICAgICBEaXNjcmV0ZSwKLSAgICB9OwotCiAgICAgLy8gYWxsb2Nh
dGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0No
YW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdl
IGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdp
bGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBp
cyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9u
IGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCkBAIC0x
MjYsMTEgKzEyNywxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJv
bSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhl
cndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUuCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0
YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25z
dCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50
ZXJwcmV0YXRpb246OlNwZWFrZXJzKTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0
aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUg
cGVyLWNoYW5uZWwgc3VtbWluZyBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhl
cndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUuCi0gICAgdm9pZCBzdW1Gcm9tKGNv
bnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNwZWFrZXJz
KTsKKyAgICB2b2lkIHN1bUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbElu
dGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2Vycyk7CiAKICAgICAv
LyBDb3B5IGVhY2ggY2hhbm5lbCBmcm9tIHNvdXJjZUJ1cyBpbnRvIG91ciBjb3JyZXNwb25kaW5n
IGNoYW5uZWwuCiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFyZ2V0R2FpbiAoYW5kIG91ciBvd24gaW50
ZXJuYWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5nICJkZS16aXBwZXJpbmciIHRvIHNtb290
aGx5IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAodGFyZ2V0R2FpbiptX2J1c0dhaW4pLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNGY2NmU3NjQzMzgzNjEzZGNhOTQzNmRh
MzQwYzFiNmQwMDJjOGY0My4uZjQ2NTRjOGZjYzgzMWYzODE2ZjlhN2JmODE5NjJkYjA5NTU3Zjhl
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MDctMDggIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQg
UmVzdHJpY3Rpb25zIGZvciBjaGFubmVsQ291bnQsIGNoYW5uZWxDb3VudE1vZGUgZm9yIFBhbm5l
ck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
Mzk5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
LWJhc2VsaW5lZCB0ZXN0cyB0aGF0IG5vdyBwYXNzLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL2N0
b3ItcGFubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNy0wOCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyBhbGwgcmVtYWluaW5nIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sIHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtcGFubmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKaW5k
ZXggNWE1OWRmYjRhZjM0Mjc5MGQ1ZTY1ZDJjYjU0MmEzMTViOGJiMmZhNS4uNWI0YTI4NWZhYTI3
YmU2ZmZmNGNkMDYzMzUxOWVjOGI4OTcyOGFkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1w
YW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1leHBlY3RlZC50eHQKQEAg
LTQ0LDI3ICs0NCwyNyBAQCBQQVNTICAgbm9kZTIuY2hhbm5lbENvdW50IGlzIGVxdWFsIHRvIDIu
CiBQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjB9KSB0aHJldyBJbnZh
bGlkU3RhdGVFcnJvcjogIlRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiAKIFBB
U1MgICBub2RlLmNoYW5uZWxDb3VudCA9IDAgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUg
b2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291
bnQgYWZ0ZXIgc2V0dGluZyB0byAwIGlzIGVxdWFsIHRvIDIuIAotRkFJTCBYIG5ldyBQYW5uZXJO
b2RlKGMsIHsiY2hhbm5lbENvdW50IjozfSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENv
dW50ID0gMyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0
byAzIGlzIG5vdCBlcXVhbCB0byAyLiBHb3QgMy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1QQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkg
dGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3Rh
dGUuIi4gCi1QQVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSA5OSB0aHJldyBJbnZhbGlkU3RhdGVF
cnJvcjogIlRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLiAKK1BBU1MgICBuZXcg
UGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudCI6M30pIHRocmV3IE5vdFN1cHBvcnRlZEVycm9y
OiAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiLiAK
K1BBU1MgICBub2RlLmNoYW5uZWxDb3VudCA9IDMgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJQ
YW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMiIuIAorUEFT
UyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gMyBpcyBlcXVhbCB0byAyLiAK
K1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudCI6OTl9KSB0aHJldyBOb3RT
dXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0
ZXIgdGhhbiAyIi4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSA5OSB0aHJldyBOb3RTdXBw
b3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIg
dGhhbiAyIi4gCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgYWZ0ZXIgc2V0dGluZyB0byA5OSBp
cyBlcXVhbCB0byAyLiAKIFBBU1MgICBub2RlMyA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5l
bENvdW50TW9kZSI6ImNsYW1wZWQtbWF4In0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAK
IFBBU1MgICBub2RlMy5jaGFubmVsQ291bnRNb2RlIGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAK
IFBBU1MgICBub2RlNCA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6ImV4
cGxpY2l0In0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlNC5jaGFu
bmVsQ291bnRNb2RlIGlzIGVxdWFsIHRvIGV4cGxpY2l0LiAKLUZBSUwgWCBuZXcgUGFubmVyTm9k
ZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJtYXgifSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRp
b24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hh
bm5lbENvdW50TW9kZSA9IG1heCBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRNb2Rl
IGFmdGVyIHNldHRpbmcgdG8gbWF4IGlzIG5vdCBlcXVhbCB0byBjbGFtcGVkLW1heC4gR290IG1h
eC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggbmV3IFBhbm5l
ck5vZGUoYywgIiArIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpICsgIikgdGhyZXcgIkludmFsaWRT
dGF0ZUVycm9yIiBpbnN0ZWFkIG9mIEVjbWFTY3JpcHQgZXJyb3IgVHlwZUVycm9yLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudE1v
ZGUgPSBmb29iYXIgaW5jb3JyZWN0bHkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2Jq
ZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnRNb2RlIjoi
bWF4In0pIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiUGFubmVyTm9kZSdzIGNoYW5uZWxDb3Vu
dE1vZGUgY2Fubm90IGJlIG1heCIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSA9IG1h
eCB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2Rl
IGNhbm5vdCBiZSBtYXgiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgYWZ0ZXIgc2V0
dGluZyB0byBtYXggaXMgZXF1YWwgdG8gY2xhbXBlZC1tYXguIAorUEFTUyAgIG5ldyBQYW5uZXJO
b2RlKGMsICIgKyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSArICIpIHRocmV3IFR5cGVFcnJvcjog
IlR5cGUgZXJyb3IiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBmb29iYXIgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50TW9kZSBh
ZnRlciBzZXR0aW5nIHRvIGZvb2JhciBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4gCiBQQVNTICAg
bm9kZTUgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJbnRlcnByZXRhdGlvbiI6InNwZWFr
ZXJzIn0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlNS5jaGFubmVs
SW50ZXJwcmV0YXRpb24gaXMgZXF1YWwgdG8gc3BlYWtlcnMuIAogUEFTUyAgIG5vZGU2ID0gbmV3
IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50ZXJwcmV0YXRpb24iOiJkaXNjcmV0ZSJ9KSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTYuY2hhbm5lbEludGVycHJldGF0
aW9uIGlzIGVxdWFsIHRvIGRpc2NyZXRlLiAKLUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCB7ImNo
YW5uZWxJbnRlcnByZXRhdGlvbiI6ImZvb2JhciJ9KSB0aHJldyAiSW52YWxpZFN0YXRlRXJyb3Ii
IGluc3RlYWQgb2YgRWNtYVNjcmlwdCBlcnJvciBUeXBlRXJyb3IuIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbElu
dGVycHJldGF0aW9uIjoiZm9vYmFyIn0pIHRocmV3IFR5cGVFcnJvcjogIlR5cGUgZXJyb3IiLiAK
IFBBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7Im1heERpc3RhbmNlIjotMX0pIHRocmV3IFJhbmdl
RXJyb3I6ICJtYXhEaXN0YW5jZSBjYW5ub3QgYmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVl
Ii4gCiBQQVNTICAgbm9kZS5tYXhEaXN0YW5jZSA9IC0xIHRocmV3IFJhbmdlRXJyb3I6ICJtYXhE
aXN0YW5jZSBjYW5ub3QgYmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVlIi4gCiBQQVNTICAg
bm9kZS5tYXhEaXN0YW5jZSBhZnRlciBzZXR0aW5nIHRvIC0xIGlzIGVxdWFsIHRvIDEwMDAwLiAK
QEAgLTkxLDcgKzkxLDcgQEAgUEFTUyAgIG5vZGU5ID0gbmV3IFBhbm5lck5vZGUoYywgeyJjb25l
T3V0ZXJHYWluIjowLjV9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGkKIFBBU1MgICBub2RlOS5j
b25lT3V0ZXJHYWluIGlzIGVxdWFsIHRvIDAuNS4gCiBQQVNTICAgbm9kZTkgPSBuZXcgUGFubmVy
Tm9kZShjLCB7ImNvbmVPdXRlckdhaW4iOjF9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4g
CiBQQVNTICAgbm9kZTkuY29uZU91dGVyR2FpbiBpcyBlcXVhbCB0byAxLiAKLUZBSUwgPCBbdGVz
dCBBdWRpb05vZGVPcHRpb25zXSA5IG91dCBvZiA1NCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPCBbdGVzdCBBdWRpb05v
ZGVPcHRpb25zXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1NCBhc3NlcnRpb25zKSAK
IFBBU1MgPiBbY29uc3RydWN0b3Igd2l0aCBvcHRpb25zXSAgCiBQQVNTICAgbm9kZSA9IG5ldyBQ
YW5uZXJOb2RlKGMsIHsicGFubmluZ01vZGVsIjoiSFJURiIsInBvc2l0aW9uWCI6MS40MTQyMTM1
NjIzNzMwOTUxLCJwb3NpdGlvblkiOjIuODI4NDI3MTI0NzQ2MTkwMywicG9zaXRpb25aIjo0LjI0
MjY0MDY4NzExOTI4Niwib3JpZW50YXRpb25YIjotMS40MTQyMTM1NjIzNzMwOTUxLCJvcmllbnRh
dGlvblkiOi0yLjgyODQyNzEyNDc0NjE5MDMsIm9yaWVudGF0aW9uWiI6LTQuMjQyNjQwNjg3MTE5
Mjg2LCJkaXN0YW5jZU1vZGVsIjoibGluZWFyIiwicmVmRGlzdGFuY2UiOjMuMTQxNTkyNjUzNTg5
NzkzLCJtYXhEaXN0YW5jZSI6Ni4yODMxODUzMDcxNzk1ODYsInJvbGxvZmZGYWN0b3IiOjkuNDI0
Nzc3OTYwNzY5MzgsImNvbmVJbm5lckFuZ2xlIjoxMi41NjYzNzA2MTQzNTkxNzIsImNvbmVPdXRl
ckFuZ2xlIjoxNS43MDc5NjMyNjc5NDg5NjYsImNvbmVPdXRlckdhaW4iOjAuMzE0MTU5MjY1MzU4
OTc5M30pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlIGluc3RhbmNl
b2YgUGFubmVyTm9kZSBpcyBlcXVhbCB0byB0cnVlLiAKQEAgLTExMyw1ICsxMTMsNSBAQCBQQVNT
ICAgbm9kZS5jaGFubmVsQ291bnQgaXMgZXF1YWwgdG8gMi4KIFBBU1MgICBub2RlLmNoYW5uZWxD
b3VudE1vZGUgaXMgZXF1YWwgdG8gY2xhbXBlZC1tYXguIAogUEFTUyAgIG5vZGUuY2hhbm5lbElu
dGVycHJldGF0aW9uIGlzIGVxdWFsIHRvIHNwZWFrZXJzLiAKIFBBU1MgPCBbY29uc3RydWN0b3Ig
d2l0aCBvcHRpb25zXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxOSBhc3NlcnRpb25z
KSAKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgNSB0YXNrcyB3
ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICMg
QVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403864</attachid>
            <date>2020-07-09 07:22:15 -0700</date>
            <delta_ts>2020-07-09 08:44:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200709102214.patch</filename>
            <type>text/plain</type>
            <size>46570</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYwYjc3OGY4YWRiODQ2
M2JmYWJmYzNjNWYwMWY2ZjgzMjU5NGNmZS4uYTk2NGQyNDg1YmViZDgwZDE3YmQwMDdkNDIzNmRj
NDBkMjMxNjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA3LTA5ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzZXR0ZXIg
bWV0aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxD
b3VudCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6CisgICAgICAgIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisg
ICAgICAgIE1vdmVkIENoYW5uZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRo
ZWlyIG93biBmaWxlcy4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1
ZGlvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnRNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Ob2RlOjpjaGFubmVsQ291bnRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZTo6aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZTo6aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24gY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpidXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Ob2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZUlucHV0OjpwdWxsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9w
dGlvbnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRs
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9u
cy5oLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlk
bDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVP
cHRpb25zLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6Q29udm9sdmVyTm9kZSk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5u
ZXJOb2RlOjpzZXRDaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6
c2V0Q2hhbm5lbENvdW50TW9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJO
b2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRp
b1Bhbm5lck5vZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9CdXM6OnN1bUZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L0F1ZGlvQnVzLmg6CisKIDIwMjAtMDctMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBpdCBwb3NzaWJsZSB0byBlc3RhYmxpc2gg
ZGlyZWN0IFhQQyBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYktpdCBwcm9jZXNzZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggMjk4YzY3ZGZhYjk2MTVkY2Q1NDYyOTI3ODU3ZGE5NzQyYmRmYzFkMy4u
Mjc5MzEyMTgxYTY5YjI5YjZkOTcyYmIxMzhhYzJlMTU1YmZjNjJmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1OSw2ICs0NTksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsCiAgICAgTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmlx
dWFkRmlsdGVyTm9kZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUu
aWRsCisgICAgTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsCiAgICAg
TW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9Db252b2x2
ZXJOb2RlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggMjMwNzBlZjE3NjMxNTdlYWZlZGJiYTc2ZDdmMjk2MGIzOTk0OTY1MS4uODMw
OWIyOWIyYmJhMjE1NDcyMzE0ZTcyZDE1OWZmM2Q4YTg1YTBmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMDgsNiArMzA4LDggQEAg
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWFlYzk5MzM5OTExMjU4MzgxNDlj
ZWZmMzVlOWMwY2ZiM2FmNjUxMC4uMDM0NmJjZTk0ZTA2ZjdkM2RhMWU5NDFjOTE4Mjg5N2RlOGUx
NjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTMwMSw2ICszMDEsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDYW52YXNUcmFuc2Zvcm0uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1RyYW5zZm9ybS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1VzZXJJbnRlcmZhY2Uu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZh
c1VzZXJJbnRlcmZhY2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbEludGVycHJldGF0aW9uLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsSW50
ZXJwcmV0YXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbE1lcmdlck5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzQxZDg3NTdjMmE3YzMyYzA4NDQyYmY5ZjA0
ZDRlNWJiYzdjYzg2Ny4uN2Q4MjlhYjY3NjEyYzU1ZDFhOGRjNDAxNmY5YTZjZDNiNTJmOTAzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOTEsNiArMzkxLDggQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZp
bHRlck5vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENv
dW50TW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50
ZXJwcmV0YXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5l
bE1lcmdlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5l
bFNwbGl0dGVyTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Db252
b2x2ZXJOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5jcHAKaW5kZXggY2U4MjQ2OWY2NDZjMTZkYTJhOTg1M2IxMzhhOTRiZmY5ZDhjMWZkYS4u
MjFjZTdkNDg3ODI5NjZiYWM4NThkYmEwODNjYmMzZmM3ODg5N2UxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtMTA2LDggKzEwNiw4IEBA
IEF1ZGlvTm9kZTo6QXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNh
bXBsZVJhdGUpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoY29udGV4dC5uZXh0QXVkaW9Ob2RlTG9n
SWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX2NoYW5uZWxDb3VudCgyKQotICAgICwgbV9j
aGFubmVsQ291bnRNb2RlKE1heCkKLSAgICAsIG1fY2hhbm5lbEludGVycHJldGF0aW9uKEF1ZGlv
QnVzOjpTcGVha2VycykKKyAgICAsIG1fY2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2Rl
OjpNYXgpCisgICAgLCBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbihDaGFubmVsSW50ZXJwcmV0YXRp
b246OlNwZWFrZXJzKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgCkBA
IC0yNjgsMTEgKzI2OCw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVj
dCh1bnNpZ25lZCBvdXRwdXRJbmRleCkKICAgICByZXR1cm4geyB9OwogfQogCi11bnNpZ25lZCBB
dWRpb05vZGU6OmNoYW5uZWxDb3VudCgpCi17Ci0gICAgcmV0dXJuIG1fY2hhbm5lbENvdW50Owot
fQotCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25l
ZCBjaGFubmVsQ291bnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI4Nywy
NiArMjgyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDb3VudCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIG1fY2hh
bm5lbENvdW50ID0gY2hhbm5lbENvdW50OwotICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0g
TWF4KQorICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4
KQogICAgICAgICB1cGRhdGVDaGFubmVsc0ZvcklucHV0cygpOwogICAgIHJldHVybiB7IH07CiB9
CiAKLVN0cmluZyBBdWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUoKQotewotICAgIHN3aXRjaCAo
bV9jaGFubmVsQ291bnRNb2RlKSB7Ci0gICAgY2FzZSBNYXg6Ci0gICAgICAgIHJldHVybiAibWF4
Il9zOwotICAgIGNhc2UgQ2xhbXBlZE1heDoKLSAgICAgICAgcmV0dXJuICJjbGFtcGVkLW1heCJf
czsKLSAgICBjYXNlIEV4cGxpY2l0OgotICAgICAgICByZXR1cm4gImV4cGxpY2l0Il9zOwotICAg
IH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKGNv
bnN0IFN0cmluZyYgbW9kZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5l
bENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihjb250ZXh0
KCkpOwpAQCAtMzE0LDE1ICsyOTUsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNl
dENoYW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgbW9kZSk7CiAgICAgCiAgICAgQ2hhbm5lbENvdW50TW9kZSBvbGRNb2RlID0g
bV9jaGFubmVsQ291bnRNb2RlOwotCi0gICAgaWYgKG1vZGUgPT0gIm1heCIpCi0gICAgICAgIG1f
Y2hhbm5lbENvdW50TW9kZSA9IE1heDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJjbGFtcGVkLW1h
eCIpCi0gICAgICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7Ci0gICAgZWxzZSBp
ZiAobW9kZSA9PSAiZXhwbGljaXQiKQotICAgICAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBFeHBs
aWNpdDsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IG1vZGU7CiAKICAgICBpZiAobV9jaGFu
bmVsQ291bnRNb2RlICE9IG9sZE1vZGUpCiAgICAgICAgIHVwZGF0ZUNoYW5uZWxzRm9ySW5wdXRz
KCk7CkBAIC0zMzAsMzEgKzMwMywxNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNl
dENoYW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQogICAgIHJldHVybiB7IH07CiB9
CiAKLVN0cmluZyBBdWRpb05vZGU6OmNoYW5uZWxJbnRlcnByZXRhdGlvbigpCi17Ci0gICAgc3dp
dGNoIChtX2NoYW5uZWxJbnRlcnByZXRhdGlvbikgewotICAgIGNhc2UgQXVkaW9CdXM6OlNwZWFr
ZXJzOgotICAgICAgICByZXR1cm4gInNwZWFrZXJzIl9zOwotICAgIGNhc2UgQXVkaW9CdXM6OkRp
c2NyZXRlOgotICAgICAgICByZXR1cm4gImRpc2NyZXRlIl9zOwotICAgIH0KLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotRXhjZXB0aW9u
T3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgU3RyaW5n
JiBpbnRlcnByZXRhdGlvbikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5l
bEludGVycHJldGF0aW9uKENoYW5uZWxJbnRlcnByZXRhdGlvbiBpbnRlcnByZXRhdGlvbikKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9M
b2NrZXIgbG9ja2VyKGNvbnRleHQoKSk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IGludGVycHJldGF0aW9uKTsKICAgICAKLSAgICBpZiAoaW50ZXJwcmV0YXRpb24gPT0gInNwZWFr
ZXJzIikKLSAgICAgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtl
cnM7Ci0gICAgZWxzZSBpZiAoaW50ZXJwcmV0YXRpb24gPT0gImRpc2NyZXRlIikKLSAgICAgICAg
bV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6RGlzY3JldGU7Ci0gICAgZWxzZQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBtX2No
YW5uZWxJbnRlcnByZXRhdGlvbiA9IGludGVycHJldGF0aW9uOwogCiAgICAgcmV0dXJuIHsgfTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IGVm
NWJlZmRlZTQ0ZDQ0ZjY5ZGIyODk2ZjgwNDdhODNkYzExNzIzYWEuLjllOGU5OGVjYTBlNjUwOGRl
YzA2ZmQ0ODYyMDQ0Mjk5MjBhNDViYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGUuaApAQCAtMjUsNiArMjUsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKKyNpbmNsdWRl
ICJDaGFubmVsSW50ZXJwcmV0YXRpb24uaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTkyLDEy
ICs5NCw2IEBAIHB1YmxpYzoKICAgICAgICAgTm9kZVR5cGVFbmQKICAgICB9OwogCi0gICAgZW51
bSBDaGFubmVsQ291bnRNb2RlIHsKLSAgICAgICAgTWF4LAotICAgICAgICBDbGFtcGVkTWF4LAot
ICAgICAgICBFeHBsaWNpdAotICAgIH07Ci0KICAgICBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbm9kZVR5cGU7IH0KICAgICB2b2lkIHNldE5vZGVUeXBlKE5vZGVUeXBlKTsK
IApAQCAtMTc3LDE3ICsxNzMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlT3V0cHV0c0lm
TmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBkaXNhYmxlT3V0cHV0c0lmTmVjZXNzYXJ5KCk7CiAKLSAg
ICB1bnNpZ25lZCBjaGFubmVsQ291bnQoKTsKKyAgICB1bnNpZ25lZCBjaGFubmVsQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX2NoYW5uZWxDb3VudDsgfQogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAotICAgIFN0cmluZyBjaGFubmVsQ291
bnRNb2RlKCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50TW9kZShjb25z
dCBTdHJpbmcmKTsKLQotICAgIFN0cmluZyBjaGFubmVsSW50ZXJwcmV0YXRpb24oKTsKLSAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgU3RyaW5nJik7
CisgICAgQ2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9jaGFubmVsQ291bnRNb2RlOyB9CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRD
aGFubmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUpOwogCi0gICAgQ2hhbm5lbENvdW50TW9k
ZSBpbnRlcm5hbENoYW5uZWxDb3VudE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxDb3Vu
dE1vZGU7IH0KLSAgICBBdWRpb0J1czo6Q2hhbm5lbEludGVycHJldGF0aW9uIGludGVybmFsQ2hh
bm5lbEludGVycHJldGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVsSW50ZXJwcmV0YXRp
b247IH0KKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9jaGFubmVsSW50ZXJwcmV0YXRpb247IH0KKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgQ2hhbm5lbEludGVycHJldGF0
aW9uKTsKIAogcHJvdGVjdGVkOgogICAgIC8vIElucHV0cyBhbmQgb3V0cHV0cyBtdXN0IGJlIGNy
ZWF0ZWQgYmVmb3JlIHRoZSBBdWRpb05vZGUgaXMgaW5pdGlhbGl6ZWQuCkBAIC0yNTEsNyArMjQ0
LDcgQEAgcHJpdmF0ZToKIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBtX2NoYW5uZWxDb3VudDsK
ICAgICBDaGFubmVsQ291bnRNb2RlIG1fY2hhbm5lbENvdW50TW9kZTsKLSAgICBBdWRpb0J1czo6
Q2hhbm5lbEludGVycHJldGF0aW9uIG1fY2hhbm5lbEludGVycHJldGF0aW9uOworICAgIENoYW5u
ZWxJbnRlcnByZXRhdGlvbiBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsKIH07CiAKIFN0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb05vZGU6Ok5vZGVUeXBlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAppbmRleCA2MzZhOTVjMzg5
ZDcwOGRhNDlmNzZiMTc2N2Q3YmEyYTQ4OTJhNjEzLi4wNGY4MGViMDVmMWZhOWI0ZTJlNGJiN2Zi
ZmM4ZWI5MTU4YTFhMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuaWRsCkBAIC0zMCw4ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzOwogCiAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgY2hhbm5lbENvdW50OwotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhbm5lbENvdW50TW9k
ZTsKLSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBh
dHRyaWJ1dGUgQ2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRNb2RlOworICAgIGF0dHJpYnV0
ZSBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uOwogCiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSBBdWRpb05vZGUgY29ubmVjdChbUmV0dXJuVmFsdWVdIEF1ZGlvTm9k
ZSBkZXN0aW5hdGlvbiwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvdXRwdXQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGlucHV0ID0gMCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lk
IGNvbm5lY3QoQXVkaW9QYXJhbSBkZXN0aW5hdGlvbiwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBv
dXRwdXQgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGVJbnB1dC5jcHAKaW5kZXggY2NhYTUxZDgyMmUwYzg1NTYzZTllMmZkNWRmMTM2MGI0ZWFj
ZmY3Yi4uMzEzODc4NmMwNWM1YjIyNDU0MDMzMjkxN2JiY2NlZTYzY2NmNGE5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRp
b05vZGUuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJDaGFubmVs
Q291bnRNb2RlLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0xNDQsOCArMTQ1LDggQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxC
dXMoKQogCiB1bnNpZ25lZCBBdWRpb05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
CiB7Ci0gICAgQXVkaW9Ob2RlOjpDaGFubmVsQ291bnRNb2RlIG1vZGUgPSBub2RlKCktPmludGVy
bmFsQ2hhbm5lbENvdW50TW9kZSgpOwotICAgIGlmIChtb2RlID09IEF1ZGlvTm9kZTo6RXhwbGlj
aXQpCisgICAgYXV0byBtb2RlID0gbm9kZSgpLT5jaGFubmVsQ291bnRNb2RlKCk7CisgICAgaWYg
KG1vZGUgPT0gQ2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQpCiAgICAgICAgIHJldHVybiBub2Rl
KCktPmNoYW5uZWxDb3VudCgpOwogCiAgICAgLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNoYW5uZWxz
IG9mIHRoZSBjb25uZWN0aW9uIHdpdGggdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYW5uZWxzLgpA
QCAtMTU3LDcgKzE1OCw3IEBAIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5u
ZWxzKCkgY29uc3QKICAgICAgICAgbWF4Q2hhbm5lbHMgPSBzdGQ6Om1heChtYXhDaGFubmVscywg
b3V0cHV0LT5udW1iZXJPZkNoYW5uZWxzKCkpOwogICAgIH0KIAotICAgIGlmIChtb2RlID09IEF1
ZGlvTm9kZTo6Q2xhbXBlZE1heCkKKyAgICBpZiAobW9kZSA9PSBDaGFubmVsQ291bnRNb2RlOjpD
bGFtcGVkTWF4KQogICAgICAgICBtYXhDaGFubmVscyA9IHN0ZDo6bWluKG1heENoYW5uZWxzLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obm9kZSgpLT5jaGFubmVsQ291bnQoKSkpOwogCiAgICAgcmV0
dXJuIG1heENoYW5uZWxzOwpAQCAtMTY4LDcgKzE2OSw3IEBAIEF1ZGlvQnVzKiBBdWRpb05vZGVJ
bnB1dDo6YnVzKCkKICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7CiAKICAg
ICAvLyBIYW5kbGUgc2luZ2xlIGNvbm5lY3Rpb24gc3BlY2lhbGx5IHRvIGFsbG93IGZvciBpbi1w
bGFjZSBwcm9jZXNzaW5nLgotICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkg
PT0gMSAmJiBub2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpID09IEF1ZGlvTm9kZTo6
TWF4KQorICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBub2Rl
KCktPmNoYW5uZWxDb3VudE1vZGUoKSA9PSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCiAgICAgICAg
IHJldHVybiByZW5kZXJpbmdPdXRwdXQoMCktPmJ1cygpOwogCiAgICAgLy8gTXVsdGlwbGUgY29u
bmVjdGlvbnMgY2FzZSBvciBjb21wbGV4IENoYW5uZWxDb3VudE1vZGUgKG9yIG5vIGNvbm5lY3Rp
b25zKS4KQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25u
ZWN0aW9ucyhBdWRpb0J1cyogc3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgIEFT
U0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZG4ndCBi
ZSBjYWxsaW5nIHRoaXMgbWV0aG9kIGlmIHRoZXJlJ3Mgb25seSBvbmUgY29ubmVjdGlvbiwgc2lu
Y2UgaXQncyBsZXNzIGVmZmljaWVudC4KLSAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdDb25u
ZWN0aW9ucygpID4gMSB8fCBub2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpICE9IEF1
ZGlvTm9kZTo6TWF4KTsKKyAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygp
ID4gMSB8fCBub2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKSAhPSBDaGFubmVsQ291bnRNb2RlOjpN
YXgpOwogCiAgICAgQVNTRVJUKHN1bW1pbmdCdXMpOwogICAgIGlmICghc3VtbWluZ0J1cykKQEAg
LTE5NSw3ICsxOTYsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25uZWN0aW9ucyhB
dWRpb0J1cyogc3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgICAgICAKICAgICBz
dW1taW5nQnVzLT56ZXJvKCk7CiAKLSAgICBBdWRpb0J1czo6Q2hhbm5lbEludGVycHJldGF0aW9u
IGludGVycHJldGF0aW9uID0gbm9kZSgpLT5pbnRlcm5hbENoYW5uZWxJbnRlcnByZXRhdGlvbigp
OworICAgIGF1dG8gaW50ZXJwcmV0YXRpb24gPSBub2RlKCktPmNoYW5uZWxJbnRlcnByZXRhdGlv
bigpOwogCiAgICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX3JlbmRlcmluZ091dHB1dHMpIHsKICAg
ICAgICAgQVNTRVJUKG91dHB1dCk7CkBAIC0yMTMsNyArMjE0LDcgQEAgQXVkaW9CdXMqIEF1ZGlv
Tm9kZUlucHV0OjpwdWxsKEF1ZGlvQnVzKiBpblBsYWNlQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIEhh
bmRsZSBzaW5nbGUgY29ubmVjdGlvbiBjYXNlLgotICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nv
bm5lY3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpID09
IEF1ZGlvTm9kZTo6TWF4KSB7CisgICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMo
KSA9PSAxICYmIG5vZGUoKS0+Y2hhbm5lbENvdW50TW9kZSgpID09IENoYW5uZWxDb3VudE1vZGU6
Ok1heCkgewogICAgICAgICAvLyBUaGUgb3V0cHV0IHdpbGwgb3B0aW1pemUgcHJvY2Vzc2luZyB1
c2luZyBpblBsYWNlQnVzIGlmIGl0J3MgYWJsZS4KICAgICAgICAgQXVkaW9Ob2RlT3V0cHV0KiBv
dXRwdXQgPSB0aGlzLT5yZW5kZXJpbmdPdXRwdXQoMCk7CiAgICAgICAgIHJldHVybiBvdXRwdXQt
PnB1bGwoaW5QbGFjZUJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmgKaW5kZXggN2FkOTgyYjU4YjY4
YWE4OGQwY2JlYTc2ZTc5YTU2NDEwYjAxOWIxZS4uMDQwZjA3ODQ2NjIwYzc3MTI1ZmE1ZWY1MzMz
NTFlOTVhY2ZiYzVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVPcHRpb25zLmgKQEAgLTI3LDE1ICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9BVURJTykKIAorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKKyNpbmNsdWRlICJDaGFu
bmVsSW50ZXJwcmV0YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
QXVkaW9Ob2RlT3B0aW9ucyB7CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNoYW5uZWxDb3VudDsK
LSAgICBTdHJpbmcgY2hhbm5lbENvdW50TW9kZTsKLSAgICBTdHJpbmcgY2hhbm5lbEludGVycHJl
dGF0aW9uOworICAgIE9wdGlvbmFsPENoYW5uZWxDb3VudE1vZGU+IGNoYW5uZWxDb3VudE1vZGU7
CisgICAgT3B0aW9uYWw8Q2hhbm5lbEludGVycHJldGF0aW9uPiBjaGFubmVsSW50ZXJwcmV0YXRp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbAppbmRleCAwYTQwMzBlMzdl
Mzk4M2Y3NTIzZGM0YmRhYzRjMDhjNDg5ODc3NDA2Li5lNTE0ZGJjZDAyMzQxN2FmZTg5YTJiMWZj
ODlmMzM1NWEzMGU5NjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5pZGwKQEAgLTI2LDEwICsyNiw2IEBACiAgICAgQ29uZGl0
aW9uYWw9V0VCX0FVRElPLAogXSBkaWN0aW9uYXJ5IEF1ZGlvTm9kZU9wdGlvbnMgewogICAgIHVu
c2lnbmVkIGxvbmcgY2hhbm5lbENvdW50OwotICAgIAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmUg
dXBkYXRlZCB0byB1c2UgQ2hhbm5lbENvdW50TW9kZSBlbnVtIHR5cGUuCi0gICAgRE9NU3RyaW5n
IGNoYW5uZWxDb3VudE1vZGU7Ci0gICAgCi0gICAgLy8gRklYTUU6IFNob3VsZCBiZSB1cGRhdGVk
IHRvIHVzZSBDaGFubmVsSW50ZXJwcmV0YXRpb24gZW51bSB0eXBlLgotICAgIERPTVN0cmluZyBj
aGFubmVsSW50ZXJwcmV0YXRpb247CisgICAgQ2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRN
b2RlOworICAgIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0YXRpb247CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291
bnRNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1v
ZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZWZiZTlhYmVkM2FmMjI1NjExMTBiMmU0MWQ4NDE1ZTkzYmE3YTZm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFu
bmVsQ291bnRNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQ2hhbm5lbENvdW50TW9kZSB7
CisgICAgTWF4LAorICAgIENsYW1wZWRNYXgsCisgICAgRXhwbGljaXQsCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9DaGFubmVsQ291bnRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzI1Yzg5NmY4YTNjZTNjZGI3Y2Zk
ZjNlNTIwN2NhNGM3YjE2OGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGVudW0gQ2hhbm5lbENvdW50
TW9kZSB7CisgICAgIm1heCIsCisgICAgImNsYW1wZWQtbWF4IiwKKyAgICAiZXhwbGljaXQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50
ZXJwcmV0YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbElu
dGVycHJldGF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIzZGEyODdjMjAwZjVlNGI2YzdhMzdhZjg4YjQ3
M2Y2NWZkMWNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42Mjk0MWExNTY4YzMzMjMwMmY0MWNkNjg0YjhlZmY5Yjg1NTMzNjNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVs
SW50ZXJwcmV0YXRpb24uaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENv
bmRpdGlvbmFsPVdFQl9BVURJTywKK10gZW51bSBDaGFubmVsSW50ZXJwcmV0YXRpb24geworICAg
ICJzcGVha2VycyIsCisgICAgImRpc2NyZXRlIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4IDdlMTM4ZDRkMzEzNmI3MTk3
ZDNiN2ViYmZhMDAyMWM4NGY3MzJiOGEuLjc0N2Y1NTAwZTQ0NWI4YTlmZjJhYTA4OTI0MWNmZDA0
ZTRmNDMxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29u
dm9sdmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252
b2x2ZXJOb2RlLmNwcApAQCAtNTcsOCArNTcsOCBAQCBDb252b2x2ZXJOb2RlOjpDb252b2x2ZXJO
b2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAKICAgICAv
LyBOb2RlLXNwZWNpZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5lbENvdW50
ID0gMjsKLSAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4OwotICAgIG1fY2hhbm5l
bEludGVycHJldGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5lbENvdW50
TW9kZSA9IENoYW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXg7CisgICAgbV9jaGFubmVsSW50ZXJw
cmV0YXRpb24gPSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwogICAgIAogICAgIGlu
aXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA0ZGQ5OWMx
OTJiNmEzMzVhNjAxZmZkNTE1NTFiMDFiMGQ5NmNiNjA5Li43ZTNmZjk1MzM2NjdlNDUwOWI0OWNk
OGFiZDY3ZDQ0MzA2NTU3MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00
OCw4ICs0OCw4IEBAIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRlCiB7CiAgICAgLy8gTm9kZS1zcGVj
aWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9IDI7Ci0gICAg
bV9jaGFubmVsQ291bnRNb2RlID0gRXhwbGljaXQ7Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRp
b24gPSBBdWRpb0J1czo6U3BlYWtlcnM7CisgICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2hhbm5l
bENvdW50TW9kZTo6RXhwbGljaXQ7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFu
bmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwogfQogCiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGU6On5EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggNTJjMDRjMjU3YTA2OTgwNGUy
MmEwZjNjZTY3OWI0ZGQ2MDkyYmZhYi4uMjg5OGQ1MDE2MzdjN2RkZDhiMjk5ZTE3OGU5ZTA4ODY0
NjQ1NDc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5j
bHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNp
bmNsdWRlICJDaGFubmVsQ291bnRNb2RlLmgiCiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKQEAgLTc1LDggKzc2LDggQEAgUGFubmVyTm9kZTo6UGFubmVyTm9kZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogCiAgICAgLy8gTm9kZS1zcGVj
aWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9IDI7Ci0gICAg
bV9jaGFubmVsQ291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBtX2NoYW5uZWxJbnRlcnByZXRh
dGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDaGFu
bmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4OworICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0g
Q2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKIAogICAgIG1fZGlzdGFuY2VHYWluID0g
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkaXN0YW5jZUdhaW4iLCAxLjAsIDAuMCwgMS4w
KTsKICAgICBtX2NvbmVHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJjb25lR2Fp
biIsIDEuMCwgMC4wLCAxLjApOwpAQCAtMTEzLDExICsxMTQsMTEgQEAgRXhjZXB0aW9uT3I8UmVm
PFBhbm5lck5vZGU+PiBQYW5uZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4
dCwgY29uc3QKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAKLSAgICByZXN1bHQgPSBwYW5uZXItPnNl
dENoYW5uZWxDb3VudE1vZGUob3B0aW9ucy5jaGFubmVsQ291bnRNb2RlLmlzTnVsbCgpID8gImNs
YW1wZWQtbWF4Il9zdHIgOiBvcHRpb25zLmNoYW5uZWxDb3VudE1vZGUpOworICAgIHJlc3VsdCA9
IHBhbm5lci0+c2V0Q2hhbm5lbENvdW50TW9kZShvcHRpb25zLmNoYW5uZWxDb3VudE1vZGUudmFs
dWVPcihDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4KSk7CiAgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAg
ICAgCi0gICAgcmVzdWx0ID0gcGFubmVyLT5zZXRDaGFubmVsSW50ZXJwcmV0YXRpb24ob3B0aW9u
cy5jaGFubmVsSW50ZXJwcmV0YXRpb24uaXNOdWxsKCkgPyAic3BlYWtlcnMiX3N0ciA6IG9wdGlv
bnMuY2hhbm5lbEludGVycHJldGF0aW9uKTsKKyAgICByZXN1bHQgPSBwYW5uZXItPnNldENoYW5u
ZWxJbnRlcnByZXRhdGlvbihvcHRpb25zLmNoYW5uZWxJbnRlcnByZXRhdGlvbi52YWx1ZU9yKENo
YW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpKTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAK
QEAgLTMzNSw2ICszMzYsMjIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q29u
ZU91dGVyR2Fpbihkb3VibGUgZ2FpbikKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25P
cjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbENvdW50
KQoreworICAgIGlmIChjaGFubmVsQ291bnQgPiAyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IsICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBi
ZSBncmVhdGVyIHRoYW4gMiJfcyB9OworICAgIAorICAgIHJldHVybiBBdWRpb05vZGU6OnNldENo
YW5uZWxDb3VudChjaGFubmVsQ291bnQpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJO
b2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUgbW9kZSkKK3sKKyAgICBp
ZiAobW9kZSA9PSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2RlIGNh
bm5vdCBiZSBtYXgiX3MgfTsKKyAgICAKKyAgICByZXR1cm4gQXVkaW9Ob2RlOjpzZXRDaGFubmVs
Q291bnRNb2RlKG1vZGUpOworfQorCiB2b2lkIFBhbm5lck5vZGU6OmdldEF6aW11dGhFbGV2YXRp
b24oZG91YmxlKiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbikKIHsKICAgICAvLyBG
SVhNRTogd2Ugc2hvdWxkIGNhY2hlIGF6aW11dGggYW5kIGVsZXZhdGlvbiAoaWYgcG9zc2libGUp
LCBzbyB3ZSBvbmx5IHJlLWNhbGN1bGF0ZSBpZiBhIGNoYW5nZSBoYXMgYmVlbiBtYWRlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAppbmRleCAzOWQ1YzM3
MjJlOTI2ZDQ4ZGM4NTg5ZWM5YjE3YTBmNDVmYzc2YTViLi42MmYwNmU5NzBiNmExOTE2YjJlMWZj
YjI0ZWJiNWFiOTc2NDdhNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1Bhbm5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1Bhbm5lck5vZGUuaApAQCAtMTI3LDYgKzEyNyw5IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBj
b25lT3V0ZXJHYWluKCkgY29uc3QgeyByZXR1cm4gbV9jb25lRWZmZWN0Lm91dGVyR2FpbigpOyB9
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q29uZU91dGVyR2Fpbihkb3VibGUpOworICAgIAor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7Cisg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2Rl
KSBmaW5hbDsKIAogICAgIHZvaWQgZ2V0QXppbXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11
dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKTsKICAgICBmbG9hdCBkb3BwbGVyUmF0ZSgpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRp
b1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRB
dWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IDI1OGY0NWU3Y2ZkOTFjODIyYzY5OTJlNzU4ZGFhNzU4
YWQ3OTAyZTIuLjYwOTdjNDE2NjY0MjNlMWQ3YzhkNWQ1ZmI0ZWNhODA1YjQwMjZiOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlv
UGFubmVyTm9kZS5jcHAKQEAgLTY0LDggKzY0LDggQEAgV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpX
ZWJLaXRBdWRpb1Bhbm5lck5vZGUoV2ViS2l0QXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdAog
CiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5u
ZWxDb3VudCA9IDI7Ci0gICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBt
X2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5u
ZWxDb3VudE1vZGUgPSBDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4OworICAgIG1fY2hhbm5l
bEludGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKIAogICAg
IG1fZGlzdGFuY2VHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkaXN0YW5jZUdh
aW4iLCAxLjAsIDAuMCwgMS4wKTsKICAgICBtX2NvbmVHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJjb25lR2FpbiIsIDEuMCwgMC4wLCAxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
OGVlMDBhNDc3MWEwZTg2ZWU1MTQ4MGM3OGJiMDM2NjU1ZmNjZDE1Li44OWFiOTk2ZWExMTQ5MGRh
NGNhODQ0NTMwYTg2YWMzYmQ0YWM5ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjcwMSw2ICsyNzAx
LDggQEAgSlNDYW52YXNUZXh0QmFzZWxpbmUuY3BwCiBKU0NhbnZhc1RleHREcmF3aW5nU3R5bGVz
LmNwcAogSlNDYW52YXNUcmFuc2Zvcm0uY3BwCiBKU0NhbnZhc1VzZXJJbnRlcmZhY2UuY3BwCitK
U0NoYW5uZWxDb3VudE1vZGUuY3BwCitKU0NoYW5uZWxJbnRlcnByZXRhdGlvbi5jcHAKIEpTQ2hh
bm5lbE1lcmdlck5vZGUuY3BwCiBKU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwCiBKU0NoYXJhY3Rl
ckRhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYmVkMTgyMjU4NTliN2M3YzEwN2M5YmI5ZTUwNDlkNDkzZGNhNjliNC4u
Njg2MzkyYjAzMmZmMjgzMTUzMjc5YjJkZWQwOGYyZmQyYTA4ZTQwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0NCw2ICs1
MDQ0LDggQEAKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIx
NTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAv
KiBBdWRpb05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5o
ICovOyB9OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFC
QUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKKwkJRTc4NUQ5MTUyNEI0RDFD
QTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVs
Q291bnRNb2RlLmggKi87IH07CisJCUU3ODVEOTM0MjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVs
SW50ZXJwcmV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24u
aCAqLzsgfTsKIAkJRUJFNUIyMjYyNDVBMjZFRjAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1
dG9SZXNldFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFQkU1QjIyNDI0NUEyNkVFMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0
U2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFQkY1MTIxQzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUExNjk2NDk2
QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLzsgfTsKIAkJRUJGNTEyMUQxNjk2
NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQjE2OTY0OTZDMDA1NkJEMjUgLyogSlNU
eXBlQ29udmVyc2lvbnMuaCAqLzsgfTsKQEAgLTE1Nzg4LDYgKzE1NzkwLDEwIEBACiAJCUU3MTQ2
N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05v
ZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFC
QUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NzE0NjdCNzI0QUJBRjJDMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUGFubmVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENoYW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzg1
RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNzg1RDkzMzI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFR5cGVDb252ZXJzaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBUeXBlQ29udmVyc2lvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQkU1
QjIyNDI0NUEyNkVFMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0
U2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MzY3LDYgKzI5MzczLDEw
IEBACiAJCQkJRkRDNTRGMDMxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaWRs
ICovLAogCQkJCUZEMzE1RkRDMTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuY3Bw
ICovLAogCQkJCUZEMzE1RkREMTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuaCAq
LywKKwkJCQlFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICov
LAorCQkJCUU3ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmlkbCAq
LywKKwkJCQlFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9u
LmggKi8sCisJCQkJRTc4NUQ5MzMyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRh
dGlvbi5pZGwgKi8sCiAJCQkJRkQzMTVGQjQxMkIwMjY3NTAwQzFBMzU5IC8qIENoYW5uZWxNZXJn
ZXJOb2RlLmNwcCAqLywKIAkJCQlGRDMxNUZCNTEyQjAyNjc1MDBDMUEzNTkgLyogQ2hhbm5lbE1l
cmdlck5vZGUuaCAqLywKIAkJCQlGRDMxNUZCNjEyQjAyNjc1MDBDMUEzNTkgLyogQ2hhbm5lbE1l
cmdlck5vZGUuaWRsICovLApAQCAtMzAwNzQsNiArMzAwODQsOCBAQAogCQkJCTkxQjhGMEI1MjE5
NTNENjUwMDBDMkIwMCAvKiBDZXJ0aWZpY2F0ZUluZm9CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRTM2RkQxNTE2Qzc4MjY1MDBGODg3QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3QkM2OUREMTUwNUYwNzYwMDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc4NUQ5MTUyNEI0RDFDQTAwMTREQjIxIC8qIENo
YW5uZWxDb3VudE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU3ODVEOTM0MjRCNjM2RkYwMDE0
REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE1
RkZGMTJCMDI2NzYwMEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwMDIxMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEwMDk5REYwMjcwMDkwRDc4MSAvKiBDaGFyYWN0ZXJE
YXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
QnVzLmNwcAppbmRleCBlNzBkNDZkMGI5ZjI0MDdmOTA4NTQ4ZmE4ZjJlOThjOWRhNDU2M2I3Li5k
ZjIzYTBlNjAzZGJkMmYwNDdhZmVhOWRmMzFhNmMwYzg4YmY2YWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC0yNTMsMTAgKzI1MywxMCBAQCB2b2lk
IEF1ZGlvQnVzOjpjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50
ZXJwcmV0YXRpb24gY2hhbm5lbAogICAgICAgICAgICAgY2hhbm5lbChpKS0+Y29weUZyb20oc291
cmNlQnVzLmNoYW5uZWwoaSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY2hhbm5l
bEludGVycHJldGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU3BlYWtlcnM6CisgICAgICAgIGNhc2Ug
Q2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczoKICAgICAgICAgICAgIHNwZWFrZXJzQ29w
eUZyb20oc291cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERpc2Ny
ZXRlOgorICAgICAgICBjYXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAg
ICAgICAgICBkaXNjcmV0ZUNvcHlGcm9tKHNvdXJjZUJ1cyk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKQEAgLTI3OCwxMCArMjc4LDEwIEBAIHZvaWQgQXVkaW9CdXM6OnN1
bUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uIGNo
YW5uZWxJCiAgICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1cy5jaGFubmVs
KGkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBzd2l0Y2ggKGNoYW5uZWxJbnRlcnByZXRhdGlv
bikgewotICAgICAgICBjYXNlIFNwZWFrZXJzOgorICAgICAgICBjYXNlIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbjo6U3BlYWtlcnM6CiAgICAgICAgICAgICBzcGVha2Vyc1N1bUZyb20oc291cmNlQnVz
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERpc2NyZXRlOgorICAgICAgICBj
YXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAgICAgICAgICBkaXNjcmV0
ZVN1bUZyb20oc291cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5kZXggMTY4MDM0NzM2
YTdkMjc2ODhlZGU0MDk5YWRkMGMxOGM5MWEyODY0Yy4uYjVhOGY4YWYwNWU0OGQyYzVmMzlkYjJh
OGY2Yjg0YjhmYzc0MjhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1
cy5oCkBAIC00MCw2ICs0MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBBbiBBdWRpb0J1
cyByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBBdWRpb0NoYW5uZWxzLgog
Ly8gVGhlIGRhdGEgbGF5b3V0IGlzICJwbGFuYXIiIGFzIG9wcG9zZWQgdG8gImludGVybGVhdmVk
Ii4KIC8vIEFuIEF1ZGlvQnVzIHdpdGggb25lIGNoYW5uZWwgaXMgbW9ubywgYW4gQXVkaW9CdXMg
d2l0aCB0d28gY2hhbm5lbHMgaXMgc3RlcmVvLCBldGMuCisKK2VudW0gY2xhc3MgQ2hhbm5lbElu
dGVycHJldGF0aW9uIHsKKyAgICBTcGVha2VycywKKyAgICBEaXNjcmV0ZSwKK307CisKIGNsYXNz
IEF1ZGlvQnVzIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvQnVzPiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9CdXMpOwogcHVibGljOgpAQCAtNTgsMTEg
KzY0LDYgQEAgcHVibGljOgogICAgICAgICAvLyBDYW4gZGVmaW5lIG5vbi1zdGFuZGFyZCBsYXlv
dXRzIGhlcmUKICAgICB9OwogCi0gICAgZW51bSBDaGFubmVsSW50ZXJwcmV0YXRpb24gewotICAg
ICAgICBTcGVha2VycywKLSAgICAgICAgRGlzY3JldGUsCi0gICAgfTsKLQogICAgIC8vIGFsbG9j
YXRlIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0byBpbml0aWFsbHkgaGF2ZSB0aGUgQXVkaW9D
aGFubmVscyBjcmVhdGVkIHdpdGggbWFuYWdlZCBzdG9yYWdlLgogICAgIC8vIE5vcm1hbCB1c2Fn
ZSBpcyB0byBwYXNzIHRydWUgaGVyZSwgaW4gd2hpY2ggY2FzZSB0aGUgQXVkaW9DaGFubmVscyB3
aWxsIG1lbW9yeS1tYW5hZ2UgdGhlaXIgb3duIHN0b3JhZ2UuCiAgICAgLy8gSWYgYWxsb2NhdGUg
aXMgZmFsc2UgdGhlbiBzZXRDaGFubmVsTWVtb3J5KCkgaGFzIHRvIGJlIGNhbGxlZCBsYXRlciBv
biBmb3IgZWFjaCBjaGFubmVsIGJlZm9yZSB0aGUgQXVkaW9CdXMgaXMgdXNlYWJsZS4uLgpAQCAt
MTI2LDExICsxMjcsMTEgQEAgcHVibGljOgogCiAgICAgLy8gQ29waWVzIHRoZSBzYW1wbGVzIGZy
b20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2lt
cGxlIHBlci1jaGFubmVsIGNvcHkgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3Ro
ZXJ3aXNlIGFuIHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJl
dGF0aW9uID0gU3BlYWtlcnMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weUZyb20oY29u
c3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hhbm5lbElu
dGVycHJldGF0aW9uOjpTcGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20g
dGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxl
IHBlci1jaGFubmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3Ro
ZXJ3aXNlIGFuIHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIHZvaWQgc3VtRnJvbShj
b25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vy
cyk7CisgICAgdm9pZCBzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpOwogCiAgICAg
Ly8gQ29weSBlYWNoIGNoYW5uZWwgZnJvbSBzb3VyY2VCdXMgaW50byBvdXIgY29ycmVzcG9uZGlu
ZyBjaGFubmVsLgogICAgIC8vIFdlIHNjYWxlIGJ5IHRhcmdldEdhaW4gKGFuZCBvdXIgb3duIGlu
dGVybmFsIGdhaW4gbV9idXNHYWluKSwgcGVyZm9ybWluZyAiZGUtemlwcGVyaW5nIiB0byBzbW9v
dGhseSBjaGFuZ2UgZnJvbSAqbGFzdE1peEdhaW4gdG8gKHRhcmdldEdhaW4qbV9idXNHYWluKS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDRmNjZlNzY0MzM4MzYxM2RjYTk0MzZk
YTM0MGMxYjZkMDAyYzhmNDMuLjQ1NDc0ZWE2MzdiZmVhZGExZDk5ZmQxM2FkMGNkYWZlZWU0YWRk
N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA3LTA5ICBDbGFyayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0
IFJlc3RyaWN0aW9ucyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5u
ZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM5OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9j
dG9yLXBhbm5lci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMDggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgYWxsIHJlbWFpbmluZyB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL2N0b3ItcGFubmVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDVhNTlkZmI0YWYzNDI3OTBkNWU2NWQyY2I1NDJhMzE1YjhiYjJmYTUuLjViNGEyODVmYWEy
N2JlNmZmZjRjZDA2MzM1MTllYzhiODk3MjhhZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
cGFubmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtcGFubmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CkBA
IC00NCwyNyArNDQsMjcgQEAgUEFTUyAgIG5vZGUyLmNoYW5uZWxDb3VudCBpcyBlcXVhbCB0byAy
LgogUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50IjowfSkgdGhyZXcgSW52
YWxpZFN0YXRlRXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCiBQ
QVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSAwIHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhl
IG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIuIAogUEFTUyAgIG5vZGUuY2hhbm5lbENv
dW50IGFmdGVyIHNldHRpbmcgdG8gMCBpcyBlcXVhbCB0byAyLiAKLUZBSUwgWCBuZXcgUGFubmVy
Tm9kZShjLCB7ImNoYW5uZWxDb3VudCI6M30pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxD
b3VudCA9IDMgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcg
dG8gMyBpcyBub3QgZXF1YWwgdG8gMi4gR290IDMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50Ijo5OX0p
IHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0
YXRlLiIuIAotUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50ID0gOTkgdGhyZXcgSW52YWxpZFN0YXRl
RXJyb3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCitQQVNTICAgbmV3
IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjN9KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJv
cjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIi4g
CitQQVNTICAgbm9kZS5jaGFubmVsQ291bnQgPSAzIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAi
UGFubmVyTm9kZSdzIGNoYW5uZWxDb3VudCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiLiAKK1BB
U1MgICBub2RlLmNoYW5uZWxDb3VudCBhZnRlciBzZXR0aW5nIHRvIDMgaXMgZXF1YWwgdG8gMi4g
CitQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkgdGhyZXcgTm90
U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVh
dGVyIHRoYW4gMiIuIAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50ID0gOTkgdGhyZXcgTm90U3Vw
cG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVy
IHRoYW4gMiIuIAogUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gOTkg
aXMgZXF1YWwgdG8gMi4gCiBQQVNTICAgbm9kZTMgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5u
ZWxDb3VudE1vZGUiOiJjbGFtcGVkLW1heCJ9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4g
CiBQQVNTICAgbm9kZTMuY2hhbm5lbENvdW50TW9kZSBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4g
CiBQQVNTICAgbm9kZTQgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJl
eHBsaWNpdCJ9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTQuY2hh
bm5lbENvdW50TW9kZSBpcyBlcXVhbCB0byBleHBsaWNpdC4gCi1GQUlMIFggbmV3IFBhbm5lck5v
ZGUoYywgeyJjaGFubmVsQ291bnRNb2RlIjoibWF4In0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0
aW9uLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNo
YW5uZWxDb3VudE1vZGUgPSBtYXggZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50TW9k
ZSBhZnRlciBzZXR0aW5nIHRvIG1heCBpcyBub3QgZXF1YWwgdG8gY2xhbXBlZC1tYXguIEdvdCBt
YXguIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5ldyBQYW5u
ZXJOb2RlKGMsICIgKyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSArICIpIHRocmV3ICJJbnZhbGlk
U3RhdGVFcnJvciIgaW5zdGVhZCBvZiBFY21hU2NyaXB0IGVycm9yIFR5cGVFcnJvci4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRN
b2RlID0gZm9vYmFyIGluY29ycmVjdGx5IHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9i
amVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorUEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6
Im1heCJ9KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291
bnRNb2RlIGNhbm5vdCBiZSBtYXgiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBt
YXggdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50TW9k
ZSBjYW5ub3QgYmUgbWF4Ii4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlIGFmdGVyIHNl
dHRpbmcgdG8gbWF4IGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKK1BBU1MgICBuZXcgUGFubmVy
Tm9kZShjLCAiICsgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgKyAiKSB0aHJldyBUeXBlRXJyb3I6
ICJUeXBlIGVycm9yIi4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlID0gZm9vYmFyIGRp
ZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUg
YWZ0ZXIgc2V0dGluZyB0byBmb29iYXIgaXMgZXF1YWwgdG8gY2xhbXBlZC1tYXguIAogUEFTUyAg
IG5vZGU1ID0gbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50ZXJwcmV0YXRpb24iOiJzcGVh
a2VycyJ9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTUuY2hhbm5l
bEludGVycHJldGF0aW9uIGlzIGVxdWFsIHRvIHNwZWFrZXJzLiAKIFBBU1MgICBub2RlNiA9IG5l
dyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbEludGVycHJldGF0aW9uIjoiZGlzY3JldGUifSkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5vZGU2LmNoYW5uZWxJbnRlcnByZXRh
dGlvbiBpcyBlcXVhbCB0byBkaXNjcmV0ZS4gCi1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgeyJj
aGFubmVsSW50ZXJwcmV0YXRpb24iOiJmb29iYXIifSkgdGhyZXcgIkludmFsaWRTdGF0ZUVycm9y
IiBpbnN0ZWFkIG9mIEVjbWFTY3JpcHQgZXJyb3IgVHlwZUVycm9yLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJ
bnRlcnByZXRhdGlvbiI6ImZvb2JhciJ9KSB0aHJldyBUeXBlRXJyb3I6ICJUeXBlIGVycm9yIi4g
CiBQQVNTICAgbmV3IFBhbm5lck5vZGUoYywgeyJtYXhEaXN0YW5jZSI6LTF9KSB0aHJldyBSYW5n
ZUVycm9yOiAibWF4RGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1
ZSIuIAogUEFTUyAgIG5vZGUubWF4RGlzdGFuY2UgPSAtMSB0aHJldyBSYW5nZUVycm9yOiAibWF4
RGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1ZSIuIAogUEFTUyAg
IG5vZGUubWF4RGlzdGFuY2UgYWZ0ZXIgc2V0dGluZyB0byAtMSBpcyBlcXVhbCB0byAxMDAwMC4g
CkBAIC05MSw3ICs5MSw3IEBAIFBBU1MgICBub2RlOSA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY29u
ZU91dGVyR2FpbiI6MC41fSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpCiBQQVNTICAgbm9kZTku
Y29uZU91dGVyR2FpbiBpcyBlcXVhbCB0byAwLjUuIAogUEFTUyAgIG5vZGU5ID0gbmV3IFBhbm5l
ck5vZGUoYywgeyJjb25lT3V0ZXJHYWluIjoxfSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24u
IAogUEFTUyAgIG5vZGU5LmNvbmVPdXRlckdhaW4gaXMgZXF1YWwgdG8gMS4gCi1GQUlMIDwgW3Rl
c3QgQXVkaW9Ob2RlT3B0aW9uc10gOSBvdXQgb2YgNTQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDwgW3Rlc3QgQXVkaW9O
b2RlT3B0aW9uc10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNTQgYXNzZXJ0aW9ucykg
CiBQQVNTID4gW2NvbnN0cnVjdG9yIHdpdGggb3B0aW9uc10gIAogUEFTUyAgIG5vZGUgPSBuZXcg
UGFubmVyTm9kZShjLCB7InBhbm5pbmdNb2RlbCI6IkhSVEYiLCJwb3NpdGlvblgiOjEuNDE0MjEz
NTYyMzczMDk1MSwicG9zaXRpb25ZIjoyLjgyODQyNzEyNDc0NjE5MDMsInBvc2l0aW9uWiI6NC4y
NDI2NDA2ODcxMTkyODYsIm9yaWVudGF0aW9uWCI6LTEuNDE0MjEzNTYyMzczMDk1MSwib3JpZW50
YXRpb25ZIjotMi44Mjg0MjcxMjQ3NDYxOTAzLCJvcmllbnRhdGlvbloiOi00LjI0MjY0MDY4NzEx
OTI4NiwiZGlzdGFuY2VNb2RlbCI6ImxpbmVhciIsInJlZkRpc3RhbmNlIjozLjE0MTU5MjY1MzU4
OTc5MywibWF4RGlzdGFuY2UiOjYuMjgzMTg1MzA3MTc5NTg2LCJyb2xsb2ZmRmFjdG9yIjo5LjQy
NDc3Nzk2MDc2OTM4LCJjb25lSW5uZXJBbmdsZSI6MTIuNTY2MzcwNjE0MzU5MTcyLCJjb25lT3V0
ZXJBbmdsZSI6MTUuNzA3OTYzMjY3OTQ4OTY2LCJjb25lT3V0ZXJHYWluIjowLjMxNDE1OTI2NTM1
ODk3OTN9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZSBpbnN0YW5j
ZW9mIFBhbm5lck5vZGUgaXMgZXF1YWwgdG8gdHJ1ZS4gCkBAIC0xMTMsNSArMTEzLDUgQEAgUEFT
UyAgIG5vZGUuY2hhbm5lbENvdW50IGlzIGVxdWFsIHRvIDIuCiBQQVNTICAgbm9kZS5jaGFubmVs
Q291bnRNb2RlIGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKIFBBU1MgICBub2RlLmNoYW5uZWxJ
bnRlcnByZXRhdGlvbiBpcyBlcXVhbCB0byBzcGVha2Vycy4gCiBQQVNTIDwgW2NvbnN0cnVjdG9y
IHdpdGggb3B0aW9uc10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTkgYXNzZXJ0aW9u
cykgCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDUgdGFza3Mg
d2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA1IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403868</attachid>
            <date>2020-07-09 08:44:23 -0700</date>
            <delta_ts>2020-07-09 09:31:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213992-20200709114422.patch</filename>
            <type>text/plain</type>
            <size>46558</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYwYjc3OGY4YWRiODQ2
M2JmYWJmYzNjNWYwMWY2ZjgzMjU5NGNmZS4uOWUxMmZiZTE0MGFjODUxZjMyOGFhMTMxZjdjMjg1
OTFjZjJmOWZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA3LTA5ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0aW9u
cyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBBZGRlZCBzZXR0ZXIgbWV0
aG9kcyB0byBQYW5uZXJOb2RlIHRoYXQgaGFuZGxlIGV4Y2VwdGlvbnMgZm9yIGNoYW5uZWxDb3Vu
dCwgY2hhbm5lbENvdW50TW9kZSwgYWNjb3JkaW5nIHRvIHNwZWM6CisgICAgICAgIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvbm9kZS1jaGFubmVsY291bnQuCisgICAg
ICAgIE1vdmVkIENoYW5uZWxDb3VudCwgQ2hhbm5lbENvdW50TW9kZSBlbnVtcyBpbnRvIHRoZWly
IG93biBmaWxlcy4KKworICAgICAgICBSZS1iYXNlbGluZWQgdGVzdHMgdGhhdCBub3cgcGFzcy4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OkF1ZGlv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudE1vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Ob2RlOjpjaGFubmVsQ291bnRNb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZTo6Y2hhbm5lbEludGVycHJldGF0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Ob2RlOjpjaGFubmVsQ291bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9O
b2RlOjpjaGFubmVsQ291bnRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9k
ZTo6Y2hhbm5lbEludGVycHJldGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZTo6aW50ZXJuYWxDaGFubmVsQ291bnRNb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZTo6aW50ZXJuYWxDaGFubmVsSW50ZXJwcmV0YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpidXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9O
b2RlSW5wdXQ6OnN1bUFsbENvbm5lY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9k
ZUlucHV0OjpwdWxsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlv
bnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRsOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5o
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPcHRp
b25zLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6Q29udm9sdmVyTm9kZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhbm5lck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJO
b2RlOjpzZXRDaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0
Q2hhbm5lbENvdW50TW9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2Rl
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRpb1Bh
bm5lck5vZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdXM6OnN1bUZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmg6CisKIDIwMjAtMDctMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBpdCBwb3NzaWJsZSB0byBlc3RhYmxpc2ggZGly
ZWN0IFhQQyBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYktpdCBwcm9jZXNzZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggMjk4YzY3ZGZhYjk2MTVkY2Q1NDYyOTI3ODU3ZGE5NzQyYmRmYzFkMy4uMjc5
MzEyMTgxYTY5YjI5YjZkOTcyYmIxMzhhYzJlMTU1YmZjNjJmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTQ1OSw2ICs0NTksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFk
RmlsdGVyTm9kZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaWRs
CisgICAgTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlv
L0NoYW5uZWxTcGxpdHRlck5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJO
b2RlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKaW5kZXggMjMwNzBlZjE3NjMxNTdlYWZlZGJiYTc2ZDdmMjk2MGIzOTk0OTY1MS4uODMwOWIy
OWIyYmJhMjE1NDcyMzE0ZTcyZDE1OWZmM2Q4YTg1YTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMDgsNiArMzA4LDggQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50TW9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWFlYzk5MzM5OTExMjU4MzgxNDljZWZm
MzVlOWMwY2ZiM2FmNjUxMC4uMDM0NmJjZTk0ZTA2ZjdkM2RhMWU5NDFjOTE4Mjg5N2RlOGUxNjI3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKQEAgLTMwMSw2ICszMDEsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDYW52YXNUcmFuc2Zvcm0uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1RyYW5zZm9ybS5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1VzZXJJbnRlcmZhY2UuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZhc1Vz
ZXJJbnRlcmZhY2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDaGFubmVsQ291bnRNb2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsQ291bnRNb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbEludGVycHJldGF0aW9uLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsSW50ZXJw
cmV0YXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQ2hhbm5lbE1lcmdlck5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzQxZDg3NTdjMmE3YzMyYzA4NDQyYmY5ZjA0ZDRl
NWJiYzdjYzg2Ny4uN2Q4MjlhYjY3NjEyYzU1ZDFhOGRjNDAxNmY5YTZjZDNiNTJmOTAzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOTEsNiArMzkxLDggQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3Np
bmdFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbENvdW50
TW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJw
cmV0YXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1l
cmdlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbFNw
bGl0dGVyTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2
ZXJOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZS5jcHAKaW5kZXggY2U4MjQ2OWY2NDZjMTZkYTJhOTg1M2IxMzhhOTRiZmY5ZDhjMWZkYS4uMjFj
ZTdkNDg3ODI5NjZiYWM4NThkYmEwODNjYmMzZmM3ODg5N2UxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtMTA2LDggKzEwNiw4IEBAIEF1
ZGlvTm9kZTo6QXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoY29udGV4dC5uZXh0QXVkaW9Ob2RlTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX2NoYW5uZWxDb3VudCgyKQotICAgICwgbV9jaGFu
bmVsQ291bnRNb2RlKE1heCkKLSAgICAsIG1fY2hhbm5lbEludGVycHJldGF0aW9uKEF1ZGlvQnVz
OjpTcGVha2VycykKKyAgICAsIG1fY2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlOjpN
YXgpCisgICAgLCBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbihDaGFubmVsSW50ZXJwcmV0YXRpb246
OlNwZWFrZXJzKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgCkBAIC0y
NjgsMTEgKzI2OCw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdCh1
bnNpZ25lZCBvdXRwdXRJbmRleCkKICAgICByZXR1cm4geyB9OwogfQogCi11bnNpZ25lZCBBdWRp
b05vZGU6OmNoYW5uZWxDb3VudCgpCi17Ci0gICAgcmV0dXJuIG1fY2hhbm5lbENvdW50OwotfQot
CiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBj
aGFubmVsQ291bnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI4NywyNiAr
MjgyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVu
c2lnbmVkIGNoYW5uZWxDb3VudCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIG1fY2hhbm5l
bENvdW50ID0gY2hhbm5lbENvdW50OwotICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gTWF4
KQorICAgIGlmIChtX2NoYW5uZWxDb3VudE1vZGUgIT0gQ2hhbm5lbENvdW50TW9kZTo6TWF4KQog
ICAgICAgICB1cGRhdGVDaGFubmVsc0ZvcklucHV0cygpOwogICAgIHJldHVybiB7IH07CiB9CiAK
LVN0cmluZyBBdWRpb05vZGU6OmNoYW5uZWxDb3VudE1vZGUoKQotewotICAgIHN3aXRjaCAobV9j
aGFubmVsQ291bnRNb2RlKSB7Ci0gICAgY2FzZSBNYXg6Ci0gICAgICAgIHJldHVybiAibWF4Il9z
OwotICAgIGNhc2UgQ2xhbXBlZE1heDoKLSAgICAgICAgcmV0dXJuICJjbGFtcGVkLW1heCJfczsK
LSAgICBjYXNlIEV4cGxpY2l0OgotICAgICAgICByZXR1cm4gImV4cGxpY2l0Il9zOwotICAgIH0K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0K
LQotRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2RlKGNvbnN0
IFN0cmluZyYgbW9kZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbENv
dW50TW9kZShDaGFubmVsQ291bnRNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihjb250ZXh0KCkp
OwpAQCAtMzE0LDE1ICsyOTUsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENo
YW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQogICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgbW9kZSk7CiAgICAgCiAgICAgQ2hhbm5lbENvdW50TW9kZSBvbGRNb2RlID0gbV9j
aGFubmVsQ291bnRNb2RlOwotCi0gICAgaWYgKG1vZGUgPT0gIm1heCIpCi0gICAgICAgIG1fY2hh
bm5lbENvdW50TW9kZSA9IE1heDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJjbGFtcGVkLW1heCIp
Ci0gICAgICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENsYW1wZWRNYXg7Ci0gICAgZWxzZSBpZiAo
bW9kZSA9PSAiZXhwbGljaXQiKQotICAgICAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBFeHBsaWNp
dDsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IG1vZGU7CiAKICAgICBpZiAobV9jaGFubmVs
Q291bnRNb2RlICE9IG9sZE1vZGUpCiAgICAgICAgIHVwZGF0ZUNoYW5uZWxzRm9ySW5wdXRzKCk7
CkBAIC0zMzAsMzEgKzMwMywxNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OnNldENo
YW5uZWxDb3VudE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQogICAgIHJldHVybiB7IH07CiB9CiAK
LVN0cmluZyBBdWRpb05vZGU6OmNoYW5uZWxJbnRlcnByZXRhdGlvbigpCi17Ci0gICAgc3dpdGNo
IChtX2NoYW5uZWxJbnRlcnByZXRhdGlvbikgewotICAgIGNhc2UgQXVkaW9CdXM6OlNwZWFrZXJz
OgotICAgICAgICByZXR1cm4gInNwZWFrZXJzIl9zOwotICAgIGNhc2UgQXVkaW9CdXM6OkRpc2Ny
ZXRlOgotICAgICAgICByZXR1cm4gImRpc2NyZXRlIl9zOwotICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotRXhjZXB0aW9uT3I8
dm9pZD4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgU3RyaW5nJiBp
bnRlcnByZXRhdGlvbikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9kZTo6c2V0Q2hhbm5lbElu
dGVycHJldGF0aW9uKENoYW5uZWxJbnRlcnByZXRhdGlvbiBpbnRlcnByZXRhdGlvbikKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2Nr
ZXIgbG9ja2VyKGNvbnRleHQoKSk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGlu
dGVycHJldGF0aW9uKTsKICAgICAKLSAgICBpZiAoaW50ZXJwcmV0YXRpb24gPT0gInNwZWFrZXJz
IikKLSAgICAgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6U3BlYWtlcnM7
Ci0gICAgZWxzZSBpZiAoaW50ZXJwcmV0YXRpb24gPT0gImRpc2NyZXRlIikKLSAgICAgICAgbV9j
aGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRpb0J1czo6RGlzY3JldGU7Ci0gICAgZWxzZQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBtX2NoYW5u
ZWxJbnRlcnByZXRhdGlvbiA9IGludGVycHJldGF0aW9uOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IGVmNWJl
ZmRlZTQ0ZDQ0ZjY5ZGIyODk2ZjgwNDdhODNkYzExNzIzYWEuLjcxOTZkOTBjOTRjYzY1MGIzZDk2
NTJiNTI1NDZhZDU1ZTdiY2FhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuaApAQCAtMjUsNiArMjUsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKKyNpbmNsdWRlICJD
aGFubmVsSW50ZXJwcmV0YXRpb24uaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTkyLDEyICs5
NCw2IEBAIHB1YmxpYzoKICAgICAgICAgTm9kZVR5cGVFbmQKICAgICB9OwogCi0gICAgZW51bSBD
aGFubmVsQ291bnRNb2RlIHsKLSAgICAgICAgTWF4LAotICAgICAgICBDbGFtcGVkTWF4LAotICAg
ICAgICBFeHBsaWNpdAotICAgIH07Ci0KICAgICBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbm9kZVR5cGU7IH0KICAgICB2b2lkIHNldE5vZGVUeXBlKE5vZGVUeXBlKTsKIApA
QCAtMTc3LDE3ICsxNzMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlT3V0cHV0c0lmTmVj
ZXNzYXJ5KCk7CiAgICAgdm9pZCBkaXNhYmxlT3V0cHV0c0lmTmVjZXNzYXJ5KCk7CiAKLSAgICB1
bnNpZ25lZCBjaGFubmVsQ291bnQoKTsKKyAgICB1bnNpZ25lZCBjaGFubmVsQ291bnQoKSBjb25z
dCB7IHJldHVybiBtX2NoYW5uZWxDb3VudDsgfQogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAotICAgIFN0cmluZyBjaGFubmVsQ291bnRN
b2RlKCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50TW9kZShjb25zdCBT
dHJpbmcmKTsKLQotICAgIFN0cmluZyBjaGFubmVsSW50ZXJwcmV0YXRpb24oKTsKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oY29uc3QgU3RyaW5nJik7Cisg
ICAgQ2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9j
aGFubmVsQ291bnRNb2RlOyB9CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFu
bmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUpOwogCi0gICAgQ2hhbm5lbENvdW50TW9kZSBp
bnRlcm5hbENoYW5uZWxDb3VudE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxDb3VudE1v
ZGU7IH0KLSAgICBBdWRpb0J1czo6Q2hhbm5lbEludGVycHJldGF0aW9uIGludGVybmFsQ2hhbm5l
bEludGVycHJldGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVsSW50ZXJwcmV0YXRpb247
IH0KKyAgICBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9jaGFubmVsSW50ZXJwcmV0YXRpb247IH0KKyAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRDaGFubmVsSW50ZXJwcmV0YXRpb24oQ2hhbm5lbEludGVycHJldGF0aW9uKTsKIAog
cHJvdGVjdGVkOgogICAgIC8vIElucHV0cyBhbmQgb3V0cHV0cyBtdXN0IGJlIGNyZWF0ZWQgYmVm
b3JlIHRoZSBBdWRpb05vZGUgaXMgaW5pdGlhbGl6ZWQuCkBAIC0yNTEsNyArMjQ0LDcgQEAgcHJp
dmF0ZToKIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBtX2NoYW5uZWxDb3VudDsKICAgICBDaGFu
bmVsQ291bnRNb2RlIG1fY2hhbm5lbENvdW50TW9kZTsKLSAgICBBdWRpb0J1czo6Q2hhbm5lbElu
dGVycHJldGF0aW9uIG1fY2hhbm5lbEludGVycHJldGF0aW9uOworICAgIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbiBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbjsKIH07CiAKIFN0cmluZyBjb252ZXJ0RW51
bWVyYXRpb25Ub1N0cmluZyhBdWRpb05vZGU6Ok5vZGVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAppbmRleCA2MzZhOTVjMzg5ZDcwOGRhNDlm
NzZiMTc2N2Q3YmEyYTQ4OTJhNjEzLi4wNGY4MGViMDVmMWZhOWI0ZTJlNGJiN2ZiZmM4ZWI5MTU4
YTFhMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aWRsCkBAIC0zMCw4ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZPdXRwdXRzOwogCiAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgY2hhbm5l
bENvdW50OwotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhbm5lbENvdW50TW9kZTsKLSAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGNoYW5uZWxJbnRlcnByZXRhdGlvbjsKKyAgICBhdHRyaWJ1dGUg
Q2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRNb2RlOworICAgIGF0dHJpYnV0ZSBDaGFubmVs
SW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uOwogCiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSBBdWRpb05vZGUgY29ubmVjdChbUmV0dXJuVmFsdWVdIEF1ZGlvTm9kZSBkZXN0aW5h
dGlvbiwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvdXRwdXQgPSAwLCBvcHRpb25hbCB1bnNpZ25l
ZCBsb25nIGlucHV0ID0gMCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIGNvbm5lY3Qo
QXVkaW9QYXJhbSBkZXN0aW5hdGlvbiwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvdXRwdXQgPSAw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
SW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1
dC5jcHAKaW5kZXggY2NhYTUxZDgyMmUwYzg1NTYzZTllMmZkNWRmMTM2MGI0ZWFjZmY3Yi4uMzEz
ODc4NmMwNWM1YjIyNDU0MDMzMjkxN2JiY2NlZTYzY2NmNGE5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIK
ICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJDaGFubmVsQ291bnRNb2Rl
LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNDQs
OCArMTQ1LDggQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogCiB1
bnNpZ25lZCBBdWRpb05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0CiB7Ci0gICAg
QXVkaW9Ob2RlOjpDaGFubmVsQ291bnRNb2RlIG1vZGUgPSBub2RlKCktPmludGVybmFsQ2hhbm5l
bENvdW50TW9kZSgpOwotICAgIGlmIChtb2RlID09IEF1ZGlvTm9kZTo6RXhwbGljaXQpCisgICAg
YXV0byBtb2RlID0gbm9kZSgpLT5jaGFubmVsQ291bnRNb2RlKCk7CisgICAgaWYgKG1vZGUgPT0g
Q2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQpCiAgICAgICAgIHJldHVybiBub2RlKCktPmNoYW5u
ZWxDb3VudCgpOwogCiAgICAgLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG9mIHRoZSBj
b25uZWN0aW9uIHdpdGggdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYW5uZWxzLgpAQCAtMTU3LDcg
KzE1OCw3IEBAIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxzKCkgY29u
c3QKICAgICAgICAgbWF4Q2hhbm5lbHMgPSBzdGQ6Om1heChtYXhDaGFubmVscywgb3V0cHV0LT5u
dW1iZXJPZkNoYW5uZWxzKCkpOwogICAgIH0KIAotICAgIGlmIChtb2RlID09IEF1ZGlvTm9kZTo6
Q2xhbXBlZE1heCkKKyAgICBpZiAobW9kZSA9PSBDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4
KQogICAgICAgICBtYXhDaGFubmVscyA9IHN0ZDo6bWluKG1heENoYW5uZWxzLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obm9kZSgpLT5jaGFubmVsQ291bnQoKSkpOwogCiAgICAgcmV0dXJuIG1heENo
YW5uZWxzOwpAQCAtMTY4LDcgKzE2OSw3IEBAIEF1ZGlvQnVzKiBBdWRpb05vZGVJbnB1dDo6YnVz
KCkKICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7CiAKICAgICAvLyBIYW5k
bGUgc2luZ2xlIGNvbm5lY3Rpb24gc3BlY2lhbGx5IHRvIGFsbG93IGZvciBpbi1wbGFjZSBwcm9j
ZXNzaW5nLgotICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBu
b2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpID09IEF1ZGlvTm9kZTo6TWF4KQorICAg
IGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgPT0gMSAmJiBub2RlKCktPmNoYW5u
ZWxDb3VudE1vZGUoKSA9PSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCiAgICAgICAgIHJldHVybiBy
ZW5kZXJpbmdPdXRwdXQoMCktPmJ1cygpOwogCiAgICAgLy8gTXVsdGlwbGUgY29ubmVjdGlvbnMg
Y2FzZSBvciBjb21wbGV4IENoYW5uZWxDb3VudE1vZGUgKG9yIG5vIGNvbm5lY3Rpb25zKS4KQEAg
LTE4Nyw3ICsxODgsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25uZWN0aW9ucyhB
dWRpb0J1cyogc3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgIEFTU0VSVChjb250
ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZG4ndCBiZSBjYWxsaW5n
IHRoaXMgbWV0aG9kIGlmIHRoZXJlJ3Mgb25seSBvbmUgY29ubmVjdGlvbiwgc2luY2UgaXQncyBs
ZXNzIGVmZmljaWVudC4KLSAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygp
ID4gMSB8fCBub2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpICE9IEF1ZGlvTm9kZTo6
TWF4KTsKKyAgICBBU1NFUlQobnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpID4gMSB8fCBu
b2RlKCktPmNoYW5uZWxDb3VudE1vZGUoKSAhPSBDaGFubmVsQ291bnRNb2RlOjpNYXgpOwogCiAg
ICAgQVNTRVJUKHN1bW1pbmdCdXMpOwogICAgIGlmICghc3VtbWluZ0J1cykKQEAgLTE5NSw3ICsx
OTYsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0OjpzdW1BbGxDb25uZWN0aW9ucyhBdWRpb0J1cyog
c3VtbWluZ0J1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgICAgICAKICAgICBzdW1taW5nQnVz
LT56ZXJvKCk7CiAKLSAgICBBdWRpb0J1czo6Q2hhbm5lbEludGVycHJldGF0aW9uIGludGVycHJl
dGF0aW9uID0gbm9kZSgpLT5pbnRlcm5hbENoYW5uZWxJbnRlcnByZXRhdGlvbigpOworICAgIGF1
dG8gaW50ZXJwcmV0YXRpb24gPSBub2RlKCktPmNoYW5uZWxJbnRlcnByZXRhdGlvbigpOwogCiAg
ICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX3JlbmRlcmluZ091dHB1dHMpIHsKICAgICAgICAgQVNT
RVJUKG91dHB1dCk7CkBAIC0yMTMsNyArMjE0LDcgQEAgQXVkaW9CdXMqIEF1ZGlvTm9kZUlucHV0
OjpwdWxsKEF1ZGlvQnVzKiBpblBsYWNlQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAg
IEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKIAogICAgIC8vIEhhbmRsZSBzaW5n
bGUgY29ubmVjdGlvbiBjYXNlLgotICAgIGlmIChudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25z
KCkgPT0gMSAmJiBub2RlKCktPmludGVybmFsQ2hhbm5lbENvdW50TW9kZSgpID09IEF1ZGlvTm9k
ZTo6TWF4KSB7CisgICAgaWYgKG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSA9PSAxICYm
IG5vZGUoKS0+Y2hhbm5lbENvdW50TW9kZSgpID09IENoYW5uZWxDb3VudE1vZGU6Ok1heCkgewog
ICAgICAgICAvLyBUaGUgb3V0cHV0IHdpbGwgb3B0aW1pemUgcHJvY2Vzc2luZyB1c2luZyBpblBs
YWNlQnVzIGlmIGl0J3MgYWJsZS4KICAgICAgICAgQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQgPSB0
aGlzLT5yZW5kZXJpbmdPdXRwdXQoMCk7CiAgICAgICAgIHJldHVybiBvdXRwdXQtPnB1bGwoaW5Q
bGFjZUJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmgKaW5kZXggN2FkOTgyYjU4YjY4YWE4OGQwY2Jl
YTc2ZTc5YTU2NDEwYjAxOWIxZS4uMDQwZjA3ODQ2NjIwYzc3MTI1ZmE1ZWY1MzMzNTFlOTVhY2Zi
YzVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVPcHRpb25zLmgKQEAgLTI3LDE1ICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
IAorI2luY2x1ZGUgIkNoYW5uZWxDb3VudE1vZGUuaCIKKyNpbmNsdWRlICJDaGFubmVsSW50ZXJw
cmV0YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQXVkaW9Ob2Rl
T3B0aW9ucyB7CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNoYW5uZWxDb3VudDsKLSAgICBTdHJp
bmcgY2hhbm5lbENvdW50TW9kZTsKLSAgICBTdHJpbmcgY2hhbm5lbEludGVycHJldGF0aW9uOwor
ICAgIE9wdGlvbmFsPENoYW5uZWxDb3VudE1vZGU+IGNoYW5uZWxDb3VudE1vZGU7CisgICAgT3B0
aW9uYWw8Q2hhbm5lbEludGVycHJldGF0aW9uPiBjaGFubmVsSW50ZXJwcmV0YXRpb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPcHRpb25zLmlkbAppbmRleCAwYTQwMzBlMzdlMzk4M2Y3NTIz
ZGM0YmRhYzRjMDhjNDg5ODc3NDA2Li5lNTE0ZGJjZDAyMzQxN2FmZTg5YTJiMWZjODlmMzM1NWEz
MGU5NjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZU9wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3B0aW9ucy5pZGwKQEAgLTI2LDEwICsyNiw2IEBACiAgICAgQ29uZGl0aW9uYWw9V0VC
X0FVRElPLAogXSBkaWN0aW9uYXJ5IEF1ZGlvTm9kZU9wdGlvbnMgewogICAgIHVuc2lnbmVkIGxv
bmcgY2hhbm5lbENvdW50OwotICAgIAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmUgdXBkYXRlZCB0
byB1c2UgQ2hhbm5lbENvdW50TW9kZSBlbnVtIHR5cGUuCi0gICAgRE9NU3RyaW5nIGNoYW5uZWxD
b3VudE1vZGU7Ci0gICAgCi0gICAgLy8gRklYTUU6IFNob3VsZCBiZSB1cGRhdGVkIHRvIHVzZSBD
aGFubmVsSW50ZXJwcmV0YXRpb24gZW51bSB0eXBlLgotICAgIERPTVN0cmluZyBjaGFubmVsSW50
ZXJwcmV0YXRpb247CisgICAgQ2hhbm5lbENvdW50TW9kZSBjaGFubmVsQ291bnRNb2RlOworICAg
IENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0YXRpb247CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRNb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxDb3VudE1vZGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZWZiZTlhYmVkM2FmMjI1NjExMTBiMmU0MWQ4NDE1ZTkzYmE3YTZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsQ291bnRN
b2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQ2hhbm5lbENvdW50TW9kZSB7CisgICAgTWF4
LAorICAgIENsYW1wZWRNYXgsCisgICAgRXhwbGljaXQsCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5u
ZWxDb3VudE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVs
Q291bnRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzI1Yzg5NmY4YTNjZTNjZGI3Y2ZkZjNlNTIwN2Nh
NGM3YjE2OGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9DaGFubmVsQ291bnRNb2RlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sK
KyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGVudW0gQ2hhbm5lbENvdW50TW9kZSB7Cisg
ICAgIm1heCIsCisgICAgImNsYW1wZWQtbWF4IiwKKyAgICAiZXhwbGljaXQiCit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWIzZGEyODdjMjAwZjVlNGI2YzdhMzdhZjg4YjQ3M2Y2NWZkMWNl
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hh
bm5lbEludGVycHJldGF0aW9uLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42Mjk0MWExNTY4YzMzMjMwMmY0MWNkNjg0YjhlZmY5Yjg1NTMzNjNlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsSW50ZXJwcmV0
YXRpb24uaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKK10gZW51bSBDaGFubmVsSW50ZXJwcmV0YXRpb24geworICAgICJzcGVha2Vy
cyIsCisgICAgImRpc2NyZXRlIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4IDdlMTM4ZDRkMzEzNmI3MTk3ZDNiN2ViYmZh
MDAyMWM4NGY3MzJiOGEuLjc0N2Y1NTAwZTQ0NWI4YTlmZjJhYTA4OTI0MWNmZDA0ZTRmNDMxNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmNwcApAQCAtNTcsOCArNTcsOCBAQCBDb252b2x2ZXJOb2RlOjpDb252b2x2ZXJOb2RlKEJhc2VB
dWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAKICAgICAvLyBOb2RlLXNw
ZWNpZmljIGRlZmF1bHQgbWl4aW5nIHJ1bGVzLgogICAgIG1fY2hhbm5lbENvdW50ID0gMjsKLSAg
ICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDbGFtcGVkTWF4OwotICAgIG1fY2hhbm5lbEludGVycHJl
dGF0aW9uID0gQXVkaW9CdXM6OlNwZWFrZXJzOworICAgIG1fY2hhbm5lbENvdW50TW9kZSA9IENo
YW5uZWxDb3VudE1vZGU6OkNsYW1wZWRNYXg7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24g
PSBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzOwogICAgIAogICAgIGluaXRpYWxpemUo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA0ZGQ5OWMxOTJiNmEzMzVh
NjAxZmZkNTE1NTFiMDFiMGQ5NmNiNjA5Li43ZTNmZjk1MzM2NjdlNDUwOWI0OWNkOGFiZDY3ZDQ0
MzA2NTU3MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00OCw4ICs0OCw4
IEBAIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRlCiB7CiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZh
dWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9IDI7Ci0gICAgbV9jaGFubmVs
Q291bnRNb2RlID0gRXhwbGljaXQ7Ci0gICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBBdWRp
b0J1czo6U3BlYWtlcnM7CisgICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2hhbm5lbENvdW50TW9k
ZTo6RXhwbGljaXQ7CisgICAgbV9jaGFubmVsSW50ZXJwcmV0YXRpb24gPSBDaGFubmVsSW50ZXJw
cmV0YXRpb246OlNwZWFrZXJzOwogfQogCiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6On5E
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggNTJjMDRjMjU3YTA2OTgwNGUyMmEwZjNjZTY3
OWI0ZGQ2MDkyYmZhYi4uMjg5OGQ1MDE2MzdjN2RkZDhiMjk5ZTE3OGU5ZTA4ODY0NjQ1NDc2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVk
aW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJD
aGFubmVsQ291bnRNb2RlLmgiCiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiSFJURlBhbm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
QEAgLTc1LDggKzc2LDggQEAgUGFubmVyTm9kZTo6UGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogCiAgICAgLy8gTm9kZS1zcGVjaWZpYyBkZWZh
dWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9IDI7Ci0gICAgbV9jaGFubmVs
Q291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBtX2NoYW5uZWxJbnRlcnByZXRhdGlvbiA9IEF1
ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5uZWxDb3VudE1vZGUgPSBDaGFubmVsQ291bnRN
b2RlOjpDbGFtcGVkTWF4OworICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hhbm5lbElu
dGVycHJldGF0aW9uOjpTcGVha2VyczsKIAogICAgIG1fZGlzdGFuY2VHYWluID0gQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJkaXN0YW5jZUdhaW4iLCAxLjAsIDAuMCwgMS4wKTsKICAgICBt
X2NvbmVHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJjb25lR2FpbiIsIDEuMCwg
MC4wLCAxLjApOwpAQCAtMTEzLDExICsxMTQsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPFBhbm5lck5v
ZGU+PiBQYW5uZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgY29uc3QK
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKICAgICAKLSAgICByZXN1bHQgPSBwYW5uZXItPnNldENoYW5uZWxD
b3VudE1vZGUob3B0aW9ucy5jaGFubmVsQ291bnRNb2RlLmlzTnVsbCgpID8gImNsYW1wZWQtbWF4
Il9zdHIgOiBvcHRpb25zLmNoYW5uZWxDb3VudE1vZGUpOworICAgIHJlc3VsdCA9IHBhbm5lci0+
c2V0Q2hhbm5lbENvdW50TW9kZShvcHRpb25zLmNoYW5uZWxDb3VudE1vZGUudmFsdWVPcihDaGFu
bmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4KSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgCi0gICAg
cmVzdWx0ID0gcGFubmVyLT5zZXRDaGFubmVsSW50ZXJwcmV0YXRpb24ob3B0aW9ucy5jaGFubmVs
SW50ZXJwcmV0YXRpb24uaXNOdWxsKCkgPyAic3BlYWtlcnMiX3N0ciA6IG9wdGlvbnMuY2hhbm5l
bEludGVycHJldGF0aW9uKTsKKyAgICByZXN1bHQgPSBwYW5uZXItPnNldENoYW5uZWxJbnRlcnBy
ZXRhdGlvbihvcHRpb25zLmNoYW5uZWxJbnRlcnByZXRhdGlvbi52YWx1ZU9yKENoYW5uZWxJbnRl
cnByZXRhdGlvbjo6U3BlYWtlcnMpKTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAKQEAgLTMzNSw2
ICszMzYsMjIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q29uZU91dGVyR2Fp
bihkb3VibGUgZ2FpbikKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBQ
YW5uZXJOb2RlOjpzZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbENvdW50KQoreworICAg
IGlmIChjaGFubmVsQ291bnQgPiAyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IsICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVy
IHRoYW4gMiJfcyB9OworICAgIAorICAgIHJldHVybiBBdWRpb05vZGU6OnNldENoYW5uZWxDb3Vu
dChjaGFubmVsQ291bnQpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRD
aGFubmVsQ291bnRNb2RlKENoYW5uZWxDb3VudE1vZGUgbW9kZSkKK3sKKyAgICBpZiAobW9kZSA9
PSBDaGFubmVsQ291bnRNb2RlOjpNYXgpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2RlIGNhbm5vdCBiZSBt
YXgiX3MgfTsKKyAgICAKKyAgICByZXR1cm4gQXVkaW9Ob2RlOjpzZXRDaGFubmVsQ291bnRNb2Rl
KG1vZGUpOworfQorCiB2b2lkIFBhbm5lck5vZGU6OmdldEF6aW11dGhFbGV2YXRpb24oZG91Ymxl
KiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbikKIHsKICAgICAvLyBGSVhNRTogd2Ug
c2hvdWxkIGNhY2hlIGF6aW11dGggYW5kIGVsZXZhdGlvbiAoaWYgcG9zc2libGUpLCBzbyB3ZSBv
bmx5IHJlLWNhbGN1bGF0ZSBpZiBhIGNoYW5nZSBoYXMgYmVlbiBtYWRlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAppbmRleCAzOWQ1YzM3MjJlOTI2ZDQ4
ZGM4NTg5ZWM5YjE3YTBmNDVmYzc2YTViLi42MmYwNmU5NzBiNmExOTE2YjJlMWZjYjI0ZWJiNWFi
OTc2NDdhNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuaApAQCAtMTI3LDYgKzEyNyw5IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBjb25lT3V0ZXJH
YWluKCkgY29uc3QgeyByZXR1cm4gbV9jb25lRWZmZWN0Lm91dGVyR2FpbigpOyB9CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0Q29uZU91dGVyR2Fpbihkb3VibGUpOworICAgIAorICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CisgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50TW9kZShDaGFubmVsQ291bnRNb2RlKSBmaW5hbDsK
IAogICAgIHZvaWQgZ2V0QXppbXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJs
ZSogb3V0RWxldmF0aW9uKTsKICAgICBmbG9hdCBkb3BwbGVyUmF0ZSgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5l
ck5vZGUuY3BwCmluZGV4IDI1OGY0NWU3Y2ZkOTFjODIyYzY5OTJlNzU4ZGFhNzU4YWQ3OTAyZTIu
LjYwOTdjNDE2NjY0MjNlMWQ3YzhkNWQ1ZmI0ZWNhODA1YjQwMjZiOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9k
ZS5jcHAKQEAgLTY0LDggKzY0LDggQEAgV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpXZWJLaXRBdWRp
b1Bhbm5lck5vZGUoV2ViS2l0QXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdAogCiAgICAgLy8g
Tm9kZS1zcGVjaWZpYyBkZWZhdWx0IG1peGluZyBydWxlcy4KICAgICBtX2NoYW5uZWxDb3VudCA9
IDI7Ci0gICAgbV9jaGFubmVsQ291bnRNb2RlID0gQ2xhbXBlZE1heDsKLSAgICBtX2NoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IEF1ZGlvQnVzOjpTcGVha2VyczsKKyAgICBtX2NoYW5uZWxDb3VudE1v
ZGUgPSBDaGFubmVsQ291bnRNb2RlOjpDbGFtcGVkTWF4OworICAgIG1fY2hhbm5lbEludGVycHJl
dGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKIAogICAgIG1fZGlzdGFu
Y2VHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkaXN0YW5jZUdhaW4iLCAxLjAs
IDAuMCwgMS4wKTsKICAgICBtX2NvbmVHYWluID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQs
ICJjb25lR2FpbiIsIDEuMCwgMC4wLCAxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxOGVlMDBhNDc3
MWEwZTg2ZWU1MTQ4MGM3OGJiMDM2NjU1ZmNjZDE1Li44OWFiOTk2ZWExMTQ5MGRhNGNhODQ0NTMw
YTg2YWMzYmQ0YWM5ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjcwMSw2ICsyNzAxLDggQEAgSlND
YW52YXNUZXh0QmFzZWxpbmUuY3BwCiBKU0NhbnZhc1RleHREcmF3aW5nU3R5bGVzLmNwcAogSlND
YW52YXNUcmFuc2Zvcm0uY3BwCiBKU0NhbnZhc1VzZXJJbnRlcmZhY2UuY3BwCitKU0NoYW5uZWxD
b3VudE1vZGUuY3BwCitKU0NoYW5uZWxJbnRlcnByZXRhdGlvbi5jcHAKIEpTQ2hhbm5lbE1lcmdl
ck5vZGUuY3BwCiBKU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwCiBKU0NoYXJhY3RlckRhdGEuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYmVkMTgyMjU4NTliN2M3YzEwN2M5YmI5ZTUwNDlkNDkzZGNhNjliNC4uNjg2MzkyYjAz
MmZmMjgzMTUzMjc5YjJkZWQwOGYyZmQyYTA4ZTQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0NCw2ICs1MDQ0LDggQEAK
IAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAw
RkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05v
ZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9Owog
CQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIy
RjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKKwkJRTc4NUQ5MTUyNEI0RDFDQTAwMTREQjIx
IC8qIENoYW5uZWxDb3VudE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2Rl
LmggKi87IH07CisJCUU3ODVEOTM0MjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3
ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCAqLzsgfTsK
IAkJRUJFNUIyMjYyNDVBMjZFRjAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1dG9SZXNldFNj
b3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkU1
QjIyNDI0NUEyNkVFMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFQkY1MTIx
QzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUExNjk2NDk2QzAwNTZCRDI1
IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCAqLzsgfTsKIAkJRUJGNTEyMUQxNjk2NDk2QzAwNTZC
RDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQjE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVy
c2lvbnMuaCAqLzsgfTsKQEAgLTE1Nzg4LDYgKzE1NzkwLDEwIEBACiAJCUU3MTQ2N0I0MjRBQkFG
MEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25z
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIy
RjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNzI0
QUJBRjJDMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGFubmVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVE
OTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENoYW5uZWxDb3VudE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5
MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoYW5uZWxD
b3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzg1RDkzMTI0QjYz
NkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENo
YW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzg1
RDkzMzI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBD
aGFubmVsSW50ZXJwcmV0YXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
QjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFR5cGVDb252ZXJzaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjA4
MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUeXBlQ29u
dmVyc2lvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQkU1QjIyNDI0NUEy
NkVFMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MzY3LDYgKzI5MzczLDEwIEBACiAJCQkJ
RkRDNTRGMDMxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaWRsICovLAogCQkJ
CUZEMzE1RkRDMTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuY3BwICovLAogCQkJ
CUZEMzE1RkREMTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuaCAqLywKKwkJCQlF
Nzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovLAorCQkJCUU3
ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmlkbCAqLywKKwkJCQlF
Nzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi8sCisJ
CQkJRTc4NUQ5MzMyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5pZGwg
Ki8sCiAJCQkJRkQzMTVGQjQxMkIwMjY3NTAwQzFBMzU5IC8qIENoYW5uZWxNZXJnZXJOb2RlLmNw
cCAqLywKIAkJCQlGRDMxNUZCNTEyQjAyNjc1MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUu
aCAqLywKIAkJCQlGRDMxNUZCNjEyQjAyNjc1MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUu
aWRsICovLApAQCAtMzAwNzQsNiArMzAwODQsOCBAQAogCQkJCTkxQjhGMEI1MjE5NTNENjUwMDBD
MkIwMCAvKiBDZXJ0aWZpY2F0ZUluZm9CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM2RkQx
NTE2Qzc4MjY1MDBGODg3QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3QkM2OUREMTUwNUYwNzYwMDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTc4NUQ5MTUyNEI0RDFDQTAwMTREQjIxIC8qIENoYW5uZWxDb3Vu
dE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU3ODVEOTM0MjRCNjM2RkYwMDE0REIyMSAvKiBD
aGFubmVsSW50ZXJwcmV0YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE1RkZGMTJCMDI2
NzYwMEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMDIxMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NTBCNkEwMDk5REYwMjcwMDkwRDc4MSAvKiBDaGFyYWN0ZXJEYXRhLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApp
bmRleCBlNzBkNDZkMGI5ZjI0MDdmOTA4NTQ4ZmE4ZjJlOThjOWRhNDU2M2I3Li5kZjIzYTBlNjAz
ZGJkMmYwNDdhZmVhOWRmMzFhNmMwYzg4YmY2YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC0yNTMsMTAgKzI1MywxMCBAQCB2b2lkIEF1ZGlvQnVz
Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRp
b24gY2hhbm5lbAogICAgICAgICAgICAgY2hhbm5lbChpKS0+Y29weUZyb20oc291cmNlQnVzLmNo
YW5uZWwoaSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY2hhbm5lbEludGVycHJl
dGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU3BlYWtlcnM6CisgICAgICAgIGNhc2UgQ2hhbm5lbElu
dGVycHJldGF0aW9uOjpTcGVha2VyczoKICAgICAgICAgICAgIHNwZWFrZXJzQ29weUZyb20oc291
cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERpc2NyZXRlOgorICAg
ICAgICBjYXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAgICAgICAgICBk
aXNjcmV0ZUNvcHlGcm9tKHNvdXJjZUJ1cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ZGVmYXVsdDoKQEAgLTI3OCwxMCArMjc4LDEwIEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29u
c3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uIGNoYW5uZWxJCiAg
ICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBzd2l0Y2ggKGNoYW5uZWxJbnRlcnByZXRhdGlvbikgewotICAg
ICAgICBjYXNlIFNwZWFrZXJzOgorICAgICAgICBjYXNlIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6
U3BlYWtlcnM6CiAgICAgICAgICAgICBzcGVha2Vyc1N1bUZyb20oc291cmNlQnVzKTsKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERpc2NyZXRlOgorICAgICAgICBjYXNlIENoYW5u
ZWxJbnRlcnByZXRhdGlvbjo6RGlzY3JldGU6CiAgICAgICAgICAgICBkaXNjcmV0ZVN1bUZyb20o
c291cmNlQnVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5kZXggMTY4MDM0NzM2YTdkMjc2ODhl
ZGU0MDk5YWRkMGMxOGM5MWEyODY0Yy4uYjVhOGY4YWYwNWU0OGQyYzVmMzlkYjJhOGY2Yjg0Yjhm
Yzc0MjhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCkBAIC00
MCw2ICs0MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBBbiBBdWRpb0J1cyByZXByZXNl
bnRzIGEgY29sbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBBdWRpb0NoYW5uZWxzLgogLy8gVGhlIGRh
dGEgbGF5b3V0IGlzICJwbGFuYXIiIGFzIG9wcG9zZWQgdG8gImludGVybGVhdmVkIi4KIC8vIEFu
IEF1ZGlvQnVzIHdpdGggb25lIGNoYW5uZWwgaXMgbW9ubywgYW4gQXVkaW9CdXMgd2l0aCB0d28g
Y2hhbm5lbHMgaXMgc3RlcmVvLCBldGMuCisKK2VudW0gY2xhc3MgQ2hhbm5lbEludGVycHJldGF0
aW9uIHsKKyAgICBTcGVha2VycywKKyAgICBEaXNjcmV0ZSwKK307CisKIGNsYXNzIEF1ZGlvQnVz
IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvQnVzPiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQXVkaW9CdXMpOwogcHVibGljOgpAQCAtNTgsMTEgKzY0LDYgQEAg
cHVibGljOgogICAgICAgICAvLyBDYW4gZGVmaW5lIG5vbi1zdGFuZGFyZCBsYXlvdXRzIGhlcmUK
ICAgICB9OwogCi0gICAgZW51bSBDaGFubmVsSW50ZXJwcmV0YXRpb24gewotICAgICAgICBTcGVh
a2VycywKLSAgICAgICAgRGlzY3JldGUsCi0gICAgfTsKLQogICAgIC8vIGFsbG9jYXRlIGluZGlj
YXRlcyB3aGV0aGVyIG9yIG5vdCB0byBpbml0aWFsbHkgaGF2ZSB0aGUgQXVkaW9DaGFubmVscyBj
cmVhdGVkIHdpdGggbWFuYWdlZCBzdG9yYWdlLgogICAgIC8vIE5vcm1hbCB1c2FnZSBpcyB0byBw
YXNzIHRydWUgaGVyZSwgaW4gd2hpY2ggY2FzZSB0aGUgQXVkaW9DaGFubmVscyB3aWxsIG1lbW9y
eS1tYW5hZ2UgdGhlaXIgb3duIHN0b3JhZ2UuCiAgICAgLy8gSWYgYWxsb2NhdGUgaXMgZmFsc2Ug
dGhlbiBzZXRDaGFubmVsTWVtb3J5KCkgaGFzIHRvIGJlIGNhbGxlZCBsYXRlciBvbiBmb3IgZWFj
aCBjaGFubmVsIGJlZm9yZSB0aGUgQXVkaW9CdXMgaXMgdXNlYWJsZS4uLgpAQCAtMTI2LDExICsx
MjcsMTEgQEAgcHVibGljOgogCiAgICAgLy8gQ29waWVzIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNv
dXJjZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1j
aGFubmVsIGNvcHkgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFu
IHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29w
eUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0g
U3BlYWtlcnMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weUZyb20oY29uc3QgQXVkaW9C
dXMmIHNvdXJjZUJ1cywgQ2hhbm5lbEludGVycHJldGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0
aW9uOjpTcGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJj
ZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFu
bmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFu
IHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgotICAgIHZvaWQgc3VtRnJvbShjb25zdCBBdWRp
b0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAg
dm9pZCBzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRh
dGlvbiA9IENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpOwogCiAgICAgLy8gQ29weSBl
YWNoIGNoYW5uZWwgZnJvbSBzb3VyY2VCdXMgaW50byBvdXIgY29ycmVzcG9uZGluZyBjaGFubmVs
LgogICAgIC8vIFdlIHNjYWxlIGJ5IHRhcmdldEdhaW4gKGFuZCBvdXIgb3duIGludGVybmFsIGdh
aW4gbV9idXNHYWluKSwgcGVyZm9ybWluZyAiZGUtemlwcGVyaW5nIiB0byBzbW9vdGhseSBjaGFu
Z2UgZnJvbSAqbGFzdE1peEdhaW4gdG8gKHRhcmdldEdhaW4qbV9idXNHYWluKS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDRmNjZlNzY0MzM4MzYxM2RjYTk0MzZkYTM0MGMxYjZk
MDAyYzhmNDMuLmI3MWIwMjljNGQ0MzgwOTMwZDU2ZTdiNzRlZTRmYTFmNjQ3MDZkNDcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTA5ICBD
bGFyayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFJlc3RyaWN0
aW9ucyBmb3IgY2hhbm5lbENvdW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5OTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQg
dGVzdHMgdGhhdCBub3cgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1wYW5uZXJub2RlLWludGVyZmFjZS9jdG9yLXBhbm5lci1l
eHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXN5bmMgYWxsIHJlbWFpbmluZyB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5v
ZGUtaW50ZXJmYWNlL2N0b3ItcGFubmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFu
bmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CmluZGV4IDVhNTlkZmI0
YWYzNDI3OTBkNWU2NWQyY2I1NDJhMzE1YjhiYjJmYTUuLjViNGEyODVmYWEyN2JlNmZmZjRjZDA2
MzM1MTllYzhiODk3MjhhZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFubmVybm9kZS1p
bnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtcGFu
bmVybm9kZS1pbnRlcmZhY2UvY3Rvci1wYW5uZXItZXhwZWN0ZWQudHh0CkBAIC00NCwyNyArNDQs
MjcgQEAgUEFTUyAgIG5vZGUyLmNoYW5uZWxDb3VudCBpcyBlcXVhbCB0byAyLgogUEFTUyAgIG5l
dyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50IjowfSkgdGhyZXcgSW52YWxpZFN0YXRlRXJy
b3I6ICJUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCiBQQVNTICAgbm9kZS5j
aGFubmVsQ291bnQgPSAwIHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBp
biBhbiBpbnZhbGlkIHN0YXRlLiIuIAogUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNl
dHRpbmcgdG8gMCBpcyBlcXVhbCB0byAyLiAKLUZBSUwgWCBuZXcgUGFubmVyTm9kZShjLCB7ImNo
YW5uZWxDb3VudCI6M30pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudCA9IDMgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gMyBpcyBub3Qg
ZXF1YWwgdG8gMi4gR290IDMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
UEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50Ijo5OX0pIHRocmV3IEludmFs
aWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIuIAotUEFT
UyAgIG5vZGUuY2hhbm5lbENvdW50ID0gOTkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJUaGUg
b2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIi4gCitQQVNTICAgbmV3IFBhbm5lck5vZGUo
YywgeyJjaGFubmVsQ291bnQiOjN9KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5v
ZGUncyBjaGFubmVsQ291bnQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAyIi4gCitQQVNTICAgbm9k
ZS5jaGFubmVsQ291bnQgPSAzIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiUGFubmVyTm9kZSdz
IGNoYW5uZWxDb3VudCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDIiLiAKK1BBU1MgICBub2RlLmNo
YW5uZWxDb3VudCBhZnRlciBzZXR0aW5nIHRvIDMgaXMgZXF1YWwgdG8gMi4gCitQQVNTICAgbmV3
IFBhbm5lck5vZGUoYywgeyJjaGFubmVsQ291bnQiOjk5fSkgdGhyZXcgTm90U3VwcG9ydGVkRXJy
b3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMiIu
IAorUEFTUyAgIG5vZGUuY2hhbm5lbENvdW50ID0gOTkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6
ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMiIuIAog
UEFTUyAgIG5vZGUuY2hhbm5lbENvdW50IGFmdGVyIHNldHRpbmcgdG8gOTkgaXMgZXF1YWwgdG8g
Mi4gCiBQQVNTICAgbm9kZTMgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUi
OiJjbGFtcGVkLW1heCJ9KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9k
ZTMuY2hhbm5lbENvdW50TW9kZSBpcyBlcXVhbCB0byBjbGFtcGVkLW1heC4gCiBQQVNTICAgbm9k
ZTQgPSBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxDb3VudE1vZGUiOiJleHBsaWNpdCJ9KSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTQuY2hhbm5lbENvdW50TW9k
ZSBpcyBlcXVhbCB0byBleHBsaWNpdC4gCi1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgeyJjaGFu
bmVsQ291bnRNb2RlIjoibWF4In0pIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBub2RlLmNoYW5uZWxDb3VudE1v
ZGUgPSBtYXggZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5vZGUuY2hhbm5lbENvdW50TW9kZSBhZnRlciBzZXR0
aW5nIHRvIG1heCBpcyBub3QgZXF1YWwgdG8gY2xhbXBlZC1tYXguIEdvdCBtYXguIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIG5ldyBQYW5uZXJOb2RlKGMsICIg
KyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSArICIpIHRocmV3ICJJbnZhbGlkU3RhdGVFcnJvciIg
aW5zdGVhZCBvZiBFY21hU2NyaXB0IGVycm9yIFR5cGVFcnJvci4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggbm9kZS5jaGFubmVsQ291bnRNb2RlID0gZm9vYmFy
IGluY29ycmVjdGx5IHRocmV3IEludmFsaWRTdGF0ZUVycm9yOiAiVGhlIG9iamVjdCBpcyBpbiBh
biBpbnZhbGlkIHN0YXRlLiIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyAgIG5ldyBQYW5uZXJOb2RlKGMsIHsiY2hhbm5lbENvdW50TW9kZSI6Im1heCJ9KSB0aHJl
dyBOb3RTdXBwb3J0ZWRFcnJvcjogIlBhbm5lck5vZGUncyBjaGFubmVsQ291bnRNb2RlIGNhbm5v
dCBiZSBtYXgiLiAKK1BBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgPSBtYXggdGhyZXcgTm90
U3VwcG9ydGVkRXJyb3I6ICJQYW5uZXJOb2RlJ3MgY2hhbm5lbENvdW50TW9kZSBjYW5ub3QgYmUg
bWF4Ii4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlIGFmdGVyIHNldHRpbmcgdG8gbWF4
IGlzIGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCAiICsg
SlNPTi5zdHJpbmdpZnkob3B0aW9ucykgKyAiKSB0aHJldyBUeXBlRXJyb3I6ICJUeXBlIGVycm9y
Ii4gCitQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlID0gZm9vYmFyIGRpZCBub3QgdGhyb3cg
YW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlLmNoYW5uZWxDb3VudE1vZGUgYWZ0ZXIgc2V0dGlu
ZyB0byBmb29iYXIgaXMgZXF1YWwgdG8gY2xhbXBlZC1tYXguIAogUEFTUyAgIG5vZGU1ID0gbmV3
IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50ZXJwcmV0YXRpb24iOiJzcGVha2VycyJ9KSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZTUuY2hhbm5lbEludGVycHJldGF0
aW9uIGlzIGVxdWFsIHRvIHNwZWFrZXJzLiAKIFBBU1MgICBub2RlNiA9IG5ldyBQYW5uZXJOb2Rl
KGMsIHsiY2hhbm5lbEludGVycHJldGF0aW9uIjoiZGlzY3JldGUifSkgZGlkIG5vdCB0aHJvdyBh
biBleGNlcHRpb24uIAogUEFTUyAgIG5vZGU2LmNoYW5uZWxJbnRlcnByZXRhdGlvbiBpcyBlcXVh
bCB0byBkaXNjcmV0ZS4gCi1GQUlMIFggbmV3IFBhbm5lck5vZGUoYywgeyJjaGFubmVsSW50ZXJw
cmV0YXRpb24iOiJmb29iYXIifSkgdGhyZXcgIkludmFsaWRTdGF0ZUVycm9yIiBpbnN0ZWFkIG9m
IEVjbWFTY3JpcHQgZXJyb3IgVHlwZUVycm9yLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK1BBU1MgICBuZXcgUGFubmVyTm9kZShjLCB7ImNoYW5uZWxJbnRlcnByZXRhdGlv
biI6ImZvb2JhciJ9KSB0aHJldyBUeXBlRXJyb3I6ICJUeXBlIGVycm9yIi4gCiBQQVNTICAgbmV3
IFBhbm5lck5vZGUoYywgeyJtYXhEaXN0YW5jZSI6LTF9KSB0aHJldyBSYW5nZUVycm9yOiAibWF4
RGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1ZSIuIAogUEFTUyAg
IG5vZGUubWF4RGlzdGFuY2UgPSAtMSB0aHJldyBSYW5nZUVycm9yOiAibWF4RGlzdGFuY2UgY2Fu
bm90IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1ZSIuIAogUEFTUyAgIG5vZGUubWF4RGlz
dGFuY2UgYWZ0ZXIgc2V0dGluZyB0byAtMSBpcyBlcXVhbCB0byAxMDAwMC4gCkBAIC05MSw3ICs5
MSw3IEBAIFBBU1MgICBub2RlOSA9IG5ldyBQYW5uZXJOb2RlKGMsIHsiY29uZU91dGVyR2FpbiI6
MC41fSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpCiBQQVNTICAgbm9kZTkuY29uZU91dGVyR2Fp
biBpcyBlcXVhbCB0byAwLjUuIAogUEFTUyAgIG5vZGU5ID0gbmV3IFBhbm5lck5vZGUoYywgeyJj
b25lT3V0ZXJHYWluIjoxfSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAogUEFTUyAgIG5v
ZGU5LmNvbmVPdXRlckdhaW4gaXMgZXF1YWwgdG8gMS4gCi1GQUlMIDwgW3Rlc3QgQXVkaW9Ob2Rl
T3B0aW9uc10gOSBvdXQgb2YgNTQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDwgW3Rlc3QgQXVkaW9Ob2RlT3B0aW9uc10g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNTQgYXNzZXJ0aW9ucykgCiBQQVNTID4gW2Nv
bnN0cnVjdG9yIHdpdGggb3B0aW9uc10gIAogUEFTUyAgIG5vZGUgPSBuZXcgUGFubmVyTm9kZShj
LCB7InBhbm5pbmdNb2RlbCI6IkhSVEYiLCJwb3NpdGlvblgiOjEuNDE0MjEzNTYyMzczMDk1MSwi
cG9zaXRpb25ZIjoyLjgyODQyNzEyNDc0NjE5MDMsInBvc2l0aW9uWiI6NC4yNDI2NDA2ODcxMTky
ODYsIm9yaWVudGF0aW9uWCI6LTEuNDE0MjEzNTYyMzczMDk1MSwib3JpZW50YXRpb25ZIjotMi44
Mjg0MjcxMjQ3NDYxOTAzLCJvcmllbnRhdGlvbloiOi00LjI0MjY0MDY4NzExOTI4NiwiZGlzdGFu
Y2VNb2RlbCI6ImxpbmVhciIsInJlZkRpc3RhbmNlIjozLjE0MTU5MjY1MzU4OTc5MywibWF4RGlz
dGFuY2UiOjYuMjgzMTg1MzA3MTc5NTg2LCJyb2xsb2ZmRmFjdG9yIjo5LjQyNDc3Nzk2MDc2OTM4
LCJjb25lSW5uZXJBbmdsZSI6MTIuNTY2MzcwNjE0MzU5MTcyLCJjb25lT3V0ZXJBbmdsZSI6MTUu
NzA3OTYzMjY3OTQ4OTY2LCJjb25lT3V0ZXJHYWluIjowLjMxNDE1OTI2NTM1ODk3OTN9KSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZSBpbnN0YW5jZW9mIFBhbm5lck5v
ZGUgaXMgZXF1YWwgdG8gdHJ1ZS4gCkBAIC0xMTMsNSArMTEzLDUgQEAgUEFTUyAgIG5vZGUuY2hh
bm5lbENvdW50IGlzIGVxdWFsIHRvIDIuCiBQQVNTICAgbm9kZS5jaGFubmVsQ291bnRNb2RlIGlz
IGVxdWFsIHRvIGNsYW1wZWQtbWF4LiAKIFBBU1MgICBub2RlLmNoYW5uZWxJbnRlcnByZXRhdGlv
biBpcyBlcXVhbCB0byBzcGVha2Vycy4gCiBQQVNTIDwgW2NvbnN0cnVjdG9yIHdpdGggb3B0aW9u
c10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTkgYXNzZXJ0aW9ucykgCi1GQUlMICMg
QVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDUgdGFza3Mgd2VyZSBmYWlsZWQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiA1IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>