<?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>211038</bug_id>
          
          <creation_ts>2020-04-25 19:54:32 -0700</creation_ts>
          <short_desc>[JSC] ValueAdd, VaueSub, ValueMul, Inc, Dec should say SpecBigInt32 prediction based on ArithProfile</short_desc>
          <delta_ts>2020-04-27 18:43:38 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645733</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 19:54:32 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645746</commentid>
    <comment_count>1</comment_count>
      <attachid>397608</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 21:17:57 -0700</bug_when>
    <thetext>Created attachment 397608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645747</commentid>
    <comment_count>2</comment_count>
      <attachid>397608</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 21:25:42 -0700</bug_when>
    <thetext>Comment on attachment 397608
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1112
&gt; +        if (arithProfile-&gt;didObserveBigInt32())
&gt; +            node-&gt;mergeFlags(NodeMayHaveBigInt32Result);
&gt; +        if (arithProfile-&gt;didObserveHeapBigInt() || m_inlineStackTop-&gt;m_exitProfile.hasExitSite(m_currentIndex, BigInt32Overflow))
&gt; +            node-&gt;mergeFlags(NodeMayHaveHeapBigIntResult);

We are currently telling this but not using it yet for ValueDiv.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645748</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 21:27:12 -0700</bug_when>
    <thetext>I&apos;ll do Inc / Dec too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645753</commentid>
    <comment_count>4</comment_count>
      <attachid>397609</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 22:04:33 -0700</bug_when>
    <thetext>Created attachment 397609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645758</commentid>
    <comment_count>5</comment_count>
      <attachid>397610</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 22:48:56 -0700</bug_when>
    <thetext>Created attachment 397610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645759</commentid>
    <comment_count>6</comment_count>
      <attachid>397611</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 22:52:14 -0700</bug_when>
    <thetext>Created attachment 397611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645760</commentid>
    <comment_count>7</comment_count>
      <attachid>397612</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 22:55:36 -0700</bug_when>
    <thetext>Created attachment 397612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645832</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-26 14:11:55 -0700</bug_when>
    <thetext>Committed r260730: &lt;https://trac.webkit.org/changeset/260730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645833</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-26 14:12:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/62408278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646346</commentid>
    <comment_count>10</comment_count>
      <attachid>397612</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-27 18:36:16 -0700</bug_when>
    <thetext>Comment on attachment 397612
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:328
&gt; +                // Shift can throw RangeError.

is this specified though? But maybe it&apos;s best to be consistent amongst the tiers.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:763
&gt; +            if (Node::shouldSpeculateHeapBigInt(node-&gt;child1().node(), node-&gt;child2().node())) {

nice: I commented on this in Robin&apos;s patch but I&apos;m glad you&apos;re fixing it here

&gt; Source/JavaScriptCore/dfg/DFGNode.h:2880
&gt; +    bool canSpeculateBigInt32(RareCaseProfilingSource source)

we&apos;re not using the rare case profiling for this, so do we really need it passed around?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4136
&gt; +    // FIXME: Introduce another BigInt32 code generation: binary use kinds are BigIntUse32, but result is SpecAnyInt and accepting overflow.

Not super important, but it&apos;s not SpecAnyInt, it&apos;s:
SpecAnyInt =&gt; SpecAnyBigInt or SpecBigInt

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4986
&gt; +    // FIXME: Introduce another BigInt32 code generation: binary use kinds are BigIntUse32, but result is SpecAnyInt and accepting overflow.

ditto

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:2146
&gt; +        // FIXME: Introduce another BigInt32 code generation: binary use kinds are BigIntUse32, but result is SpecAnyInt and accepting overflow.

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646350</commentid>
    <comment_count>11</comment_count>
      <attachid>397612</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 18:43:38 -0700</bug_when>
    <thetext>Comment on attachment 397612
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:328
&gt;&gt; +                // Shift can throw RangeError.
&gt; 
&gt; is this specified though? But maybe it&apos;s best to be consistent amongst the tiers.

I think, to make it consistent with JSString etc. we should throw OOM error instead of RangeError.
And in that case, we can clear MustGenerate.
https://bugs.webkit.org/show_bug.cgi?id=211111

&gt;&gt; Source/JavaScriptCore/dfg/DFGNode.h:2880
&gt;&gt; +    bool canSpeculateBigInt32(RareCaseProfilingSource source)
&gt; 
&gt; we&apos;re not using the rare case profiling for this, so do we really need it passed around?

Currently not using it. But I left it for the future extension.

 168    // We always attempt to produce BigInt32 as much as possible. If we see HeapBigInt, we observed overflow.
 169    // FIXME: Extend this information by tiered profiling (from Baseline, DFG etc.).
 170    // https://bugs.webkit.org/show_bug.cgi?id=211039</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397608</attachid>
            <date>2020-04-25 21:17:57 -0700</date>
            <delta_ts>2020-04-25 22:04:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211038-20200425211749.patch</filename>
            <type>text/plain</type>
            <size>34552</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li44M2UzNTM3M2NlMTFhYmE1
ZGYxNmUyNjY4MjdlNGI1OWNiYjEyMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1ZU11bCBzaG91bGQgc2F5
IFNwZWNCaWdJbnQzMiBwcmVkaWN0aW9uIGJhc2VkIG9uIEFyaXRoUHJvZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHBy
b2ZpbGUgZmVlZGJhY2sgdG8gVmFsdWVBZGQsIFZhbHVlU3ViLCBWYWx1ZU11bCB0byBzYXkgU3Bl
Y0JpZ0ludDMyIHByZWRpY3Rpb24uCisKKyAgICAgICAgT3VyIEhlYXBCaWdJbnQgdi5zLiBCaWdJ
bnQzMiBzdHJhdGVneSBpcyBzaW1wbGVyIHRoYW4gRG91YmxlIHYucy4gSW50MzIgc3RyYXRlZ3k6
IHdlIGFsd2F5cworICAgICAgICBwcmVmZXIgQmlnSW50MzIgb3ZlciBIZWFwQmlnSW50LiBUaGlz
IGlzIGJlY2F1c2UgSGVhcEJpZ0ludCBjYWxjdWxhdGlvbiBhbmQgY29udmVyc2lvbiByZXF1aXJl
cworICAgICAgICBzbyBtdWNoIGhpZ2hlciBjb3N0IHRoYW4gQmlnSW50MzIuIFRoaXMgdHJhZGVv
ZmYgaXMgbGFyZ2VseSBkaWZmZXJlbnQgZnJvbSBEb3VibGUgdi5zLiBJbnQzMi4KKyAgICAgICAg
U28ga2VlcGluZyBIZWFwQmlnSW50IGlzIHNpbXBseSBpbmVmZmljaWVudCBpZiB3ZSBjYW4gdXNl
IEJpZ0ludDMyLgorCisgICAgICAgIFRoaXMgbWVhbnMgdGhhdCBBcml0aFByb2ZpbGUncyBmZWVk
YmFjayBpcyBhbHNvIHZlcnkgc2ltcGxlLiBJZiB3ZSBzZWUgSGVhcEJpZ0ludCwgdGhpcyBtZWFu
cworICAgICAgICBvdmVyZmxvdyBoYXBwZW5zLiBJbiBERkcsIHdlIHByb3BhZ2F0ZSB0aGlzIGlu
Zm9ybWF0aW9uIHRvIFZhbHVlQWRkLCBWYWx1ZVN1YiwgYW5kIFZhbHVlTXVsIG5vZGVzCisgICAg
ICAgIGFuZCByZWNvcmQgaXQgaW4gREZHTm9kZUZsYWdzLiBBbmQgYmFzZWQgb24gdGhpcyBpbmZv
cm1hdGlvbiwgd2UgY2hhbmdlIHRoZSBwcmVkaWN0aW9uIGFuZAorICAgICAgICBzcGVjdWxhdGlv
biBpbiBwcmVkaWN0aW9uIHByb3BhZ2F0aW9uIGFuZCBmaXh1cCBwaGFzZS4KKworICAgICAgICBX
ZSBhbHNvIGNoYW5nZSBleGl0IHJlYXNvbiBmcm9tIG92ZXJmbG93aW5nIGZyb20gT3ZlcmZsb3cg
dG8gQmlnSW50MzJPdmVyZmxvdyBzaW5jZSBPdmVyZmxvdyBpcyBzb2xlbHkKKyAgICAgICAgdXNl
ZCBmb3IgSW50MzIgY2FzZSwgYW5kIHdlIGhhdmUgSW50NTJPdmVyZmxvdyBmb3IgSW50NTIgY2Fz
ZS4gV2Ugc2hvdWxkIGhhdmUgQmlnSW50MzJPdmVyZmxvdyBmb3IgQmlnSW50MzIKKyAgICAgICAg
dG8gcHJlY2lzZWx5IHJlY29yZCBhbmQgdGVsbCB0ZWxsIGFib3V0IHdoYXQgaGFwcGVucyBpbiBE
RkcgYXMgYSBmZWVkYmFjayBmb3IgdGhlIG5leHQgY29tcGlsYXRpb24uCisKKyAgICAgICAgV2Ug
YWxzbyBhZGQgQmlnSW50MzIgc3BlY3VsYXRpb24gZm9yIFZhbHVlU3ViLiBQcmV2aW91c2x5LCB3
ZSBtaXNzZWQgdGhhdCBpbiBmaXh1cCBwaGFzZSBhbmQgd2UgYWx3YXlzCisgICAgICAgIHNwZWN1
bGF0ZSBWYWx1ZVN1YiB3aXRoIEFueUJpZ0ludFVzZSBvciBIZWFwQmlnSW50VXNlLiBOb3QgaXQg
Y2FuIHVzZSBCaWdJbnQzMlVzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG9mZmVycyA0LjclIHBl
cmZvcm1hbmNlIGltcHJvdmVtZW50IGluIHN1bnNwaWRlci1zaGExLWJpZy1pbnQuCisKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAgICAgICAg
ICAgICAgICAgUGF0Y2hlZAorCisgICAgICAgICAgICBzdW5zcGlkZXItc2hhMS1iaWctaW50ICAg
ICAgMTMzLjc0MjArLTAuNzUwMyAgICAgXiAgICAxMjcuNjY4MSstMS45MDM4ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4wNDc2eCBmYXN0ZXIKKworICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNw
cDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6bWFrZURpdlNhZmUpOgorICAgICAgICAqIGRm
Zy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoSlNDOjpERkc6Okdy
YXBoOjpiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKToKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVCaWdJbnQzMlJlc3Vs
dCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6bWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVCaWdJbnRSZXN1bHQpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6OmNhblNwZWN1bGF0ZUJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6REZH
OjpOb2RlOjpjYW5TcGVjdWxhdGVJbnQ1Mik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RG
R05vZGVGbGFncy5oOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVNYXlIYXZlSGVhcEJpZ0ludCk6
CisgICAgICAgIChKU0M6OkRGRzo6bm9kZUNhblNwZWN1bGF0ZUJpZ0ludDMyKToKKyAgICAgICAg
KiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVWYWx1ZVN1Yik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVWYWx1ZU11bCk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVWYWx1ZUFkZCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVWYWx1ZVN1Yik6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVWYWx1ZU11bCk6CisKIDIwMjAt
MDQtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0g
RGVhbCB3aXRoIGFub3RoZXIgcm91bmQgb2YgWGNvZGUgdXBncmFkZSBjaGVja3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmluZGV4IGZmMjc2MTZjNGM4OTEw
OGNiNTIwYTlhYmQ1Y2Q0Y2MwMGRkZWQzZTIuLjIzNDYwNTJjMDE4Njc5ZjVmY2YyNGIzZDBkZTVl
OTdhZDBiNTM0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9F
eGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5k
LmNwcApAQCAtODgsNiArODgsOCBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRL
aW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiRXhjZXB0aW9uQ2hlY2siOwogICAgIGNhc2UgR2Vu
ZXJpY1Vud2luZDoKICAgICAgICAgcmV0dXJuICJHZW5lcmljVW53aW5kIjsKKyAgICBjYXNlIEJp
Z0ludDMyT3ZlcmZsb3c6CisgICAgICAgIHJldHVybiAiQmlnSW50MzJPdmVyZmxvdyI7CiAgICAg
fQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICJVbmtub3du
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggOTEwNWRh
Y2E1ZDgxZDNlZTE3M2E5ZDE1ZWFjYTFkY2VmODlkNTA2OS4uNjExZDQ3YWY0NTlmMjkyYzQxNTA2
Yzc2ZmNmYjNkNDFlZDgwNDQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4
aXRLaW5kLmgKQEAgLTU1LDYgKzU1LDcgQEAgZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAg
IERlYnVnZ2VyRXZlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG5lZWQgdG8gc2VydmljZSB0
aGUgZGVidWdnZXIuCiAgICAgRXhjZXB0aW9uQ2hlY2ssIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEg
ZGlyZWN0IGV4Y2VwdGlvbiBjaGVjayBzaG93ZWQgdGhhdCB3ZSB0aHJldyBhbiBleGNlcHRpb24g
ZnJvbSBhIEMgY2FsbC4KICAgICBHZW5lcmljVW53aW5kLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3
ZSBhcnJpdmVkIGF0IHRoaXMgT1NSIGV4aXQgZnJvbSBnZW5lcmljVW53aW5kLgorICAgIEJpZ0lu
dDMyT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEJpZ0ludDMyIG92ZXJmbG93
LgogfTsKIAogY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggNjEwMWE3OTdjMDI0OTQ4MDE2ZjY1ZDA3MWZhZGFkZjkzZmIyYjk1Yy4u
YmZjMTZkOWRhMjllMDg1YTgzYTA4OTk2NTMyODY1NjVmNDU1NTI2MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtNzY2LDggKzc2NiwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICAgICAgLy8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0
VHlwZUZvck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+
YmluYXJ5VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkg
PT0gQmlnSW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5k
KEFueUJpZ0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmln
SW50KTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNl
KSkKKyAgICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBub2RlLT5i
aW5hcnlVc2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQo
KTsKQEAgLTEwNTYsOCArMTA1OCwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICAgICAgLy8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0
VHlwZUZvck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+
YmluYXJ5VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkg
PT0gQmlnSW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5k
KEFueUJpZ0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmln
SW50KTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNl
KSkKKyAgICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRU
eXBlRm9yTm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDE5
MzdmZTQ3YmUxMGQwNTIwMjZlYjNjNmQ1ZTIzZjVhYzZhYTk4YS4uMjA1NDRjY2Q3MzBlMWMxYjRi
NjhmYmVjNmZhMTk2OTJmZWNhYjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBjbGFzcyBCeXRl
Q29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2
ZURvdWJsZVJlc3VsdCk7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZU5vbk51
bWVyaWMoKSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9u
TnVtZXJpY1Jlc3VsdCk7Ci0gICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUJpZ0lu
dCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnRS
ZXN1bHQpOworICAgICAgICAgICAgaWYgKG9ic2VydmVkLmRpZE9ic2VydmVCaWdJbnQzMigpKQor
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnQzMlJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBt
X2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4
LCBCaWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5v
ZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIFZhbHVlTXVsOgpAQCAtMTAzMCw4ICsxMDMyLDEwIEBAIGNsYXNzIEJ5
dGVDb2RlUGFyc2VyIHsKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlRG91YmxlUmVzdWx0KTsKICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2Vy
dmVOb25OdW1lcmljKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5
SGF2ZU5vbk51bWVyaWNSZXN1bHQpOwotICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlk
T2JzZXJ2ZUJpZ0ludCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eUhhdmVCaWdJbnRSZXN1bHQpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2Jz
ZXJ2ZUJpZ0ludDMyKCkpCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5
SGF2ZUJpZ0ludDMyUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9i
c2VydmVIZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKQEAgLTEw
NDksOCArMTA1MywxMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwogICAgICAg
ICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWVyaWMoKSkKICAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCk7Ci0g
ICAgICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCk7CisgICAg
ICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpOworICAg
ICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBC
aWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
CkBAIC0xMDk5LDggKzExMDUsMTEgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8IE5vZGVNYXlO
ZWdaZXJvSW5CYXNlbGluZSk7CiAKICAgICAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFBy
b2ZpbGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmJpbmFyeUFyaXRoUHJv
ZmlsZUZvckJ5dGVjb2RlSW5kZXgobV9jdXJyZW50SW5kZXgpOwotICAgICAgICBpZiAoYXJpdGhQ
cm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdz
KE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0KTsKKworICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5k
aWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eUhhdmVCaWdJbnQzMlJlc3VsdCk7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2Vy
dmVIZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICBub2Rl
LT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAKICAgICAgICAgcmV0
dXJuIG5vZGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggOWZmYjBlMWNkMjdiNTQ0ODZmOTU1MjQwNWYyOTUyNmQyYjhmMWRhNS4uMWRh
ZmQxM2Y5NDVjMWMzYTNkNjUyYTUyOTA1YzlmNjg1YTI0ZGRkNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yNjIsMTAgKzI2MiwxNiBAQCBjbGFz
cyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIH0KIAogI2lmIFVTRShC
SUdJTlQzMikKKyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3Vs
YXRlQmlnSW50MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8
QmlnSW50MzJVc2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVz
ZT4oY2hpbGQyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBj
aGlsZDIubm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihj
aGlsZDEpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICNlbmRpZgogCkBAIC01MTMsNyArNTE5LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihjaGls
ZDEpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4oY2hpbGQyKTsKICNp
ZiBVU0UoQklHSU5UMzIpCi0gICAgICAgICAgICB9IGVsc2UgaWYgKE5vZGU6OnNob3VsZFNwZWN1
bGF0ZUJpZ0ludDMyKGNoaWxkMS5ub2RlKCksIGNoaWxkMi5ub2RlKCkpKSB7CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1fZ3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihu
b2RlLCBGaXh1cFBhc3MpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4o
Y2hpbGQxKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihjaGlsZDIpOwog
ICAgICAgICAgICAgfSBlbHNlIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJbnQoY2hpbGQx
Lm5vZGUoKSwgY2hpbGQyLm5vZGUoKSkpIHsKQEAgLTYwNiw3ICs2MTIsNyBAQCBjbGFzcyBGaXh1
cFBoYXNlIDogcHVibGljIFBoYXNlIHsKIAogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNw
ZWN1bGF0ZUJpZ0ludChsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKICNp
ZiBVU0UoQklHSU5UMzIpCi0gICAgICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0
ZUJpZ0ludDMyKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkgeworICAgICAg
ICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIo
bm9kZSwgRml4dXBQYXNzKSkgewogICAgICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMy
VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50
MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKE5vZGU6
OnNob3VsZFNwZWN1bGF0ZUhlYXBCaWdJbnQobGVmdENoaWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5u
b2RlKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKaW5kZXggMjhiZjE1MjA0
MWQzMzg2Mzc2YTY2ZGNiYjFiZTk1NWI5YjNmNDQ1OS4uNDMwZDAzN2U2MTg3MmM3MTIyZWFhNmQw
NDZhMDBiMTE5NGM4NWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAt
NDEwLDYgKzQxMCwxNyBAQCBjbGFzcyBHcmFwaCA6IHB1YmxpYyB2aXJ0dWFsIFNjYW5uYWJsZSB7
CiAgICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUobm9kZSwgSW50NTJPdmVyZmxvdyk7CiAgICAg
fQogCisjaWYgVVNFKEJJR0lOVDMyKQorICAgIGJvb2wgYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxh
dGVCaWdJbnQzMihOb2RlKiBub2RlLCBQcmVkaWN0aW9uUGFzcyBwYXNzKQorICAgIHsKKyAgICAg
ICAgaWYgKCFub2RlLT5jYW5TcGVjdWxhdGVCaWdJbnQzMihwYXNzKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGhhc0V4aXRTaXRlKG5vZGUsIEJpZ0ludDMyT3ZlcmZs
b3cpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gTm9kZTo6c2hv
dWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDEo
KS5ub2RlKCkpOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmluZ09i
amVjdEFjY2Vzcyhjb25zdCBDb2RlT3JpZ2luJik7CiAKICAgICBib29sIGdldFJlZ0V4cFByb3Rv
dHlwZVByb3BlcnR5KEpTT2JqZWN0KiByZWdFeHBQcm90b3R5cGUsIFN0cnVjdHVyZSogcmVnRXhw
UHJvdG90eXBlU3RydWN0dXJlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKU1ZhbHVlJiByZXR1
cm5KU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggOWY5ODA5NTNk
MGYwNzU5ODA3NDhjOGE3MDFkNjRhMTMxNDgwN2ZiMS4uZWJlMDE1ODY2YmI3OTkxNGFkMjRhOGJi
YzY2ZGE5MWQ4Nzc1N2FmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEy
MDIsOSArMTIwMiwxOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX2ZsYWdzICYg
Tm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0OwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZUJp
Z0ludDMyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhh
dmVCaWdJbnQzMlJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIG1heUhhdmVIZWFwQmlnSW50UmVz
dWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVIZWFwQmln
SW50UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgbWF5SGF2ZUJpZ0ludFJlc3VsdCgpCiAgICAg
ewotICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0OworICAg
ICAgICByZXR1cm4gbWF5SGF2ZUJpZ0ludDMyUmVzdWx0KCkgfHwgbWF5SGF2ZUhlYXBCaWdJbnRS
ZXN1bHQoKTsKICAgICB9CiAKICAgICBib29sIGhhc05ld0FycmF5QnVmZmVyRGF0YSgpCkBAIC0y
ODY2LDYgKzI4NzYsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJuIG5v
ZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFncygpLCBzb3VyY2UpOwogICAgIH0KKwor
ICAgIGJvb2wgY2FuU3BlY3VsYXRlQmlnSW50MzIoUmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ugc291
cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVCaWdJbnQzMihhcml0
aE5vZGVGbGFncygpLCBzb3VyY2UpOworICAgIH0KICAgICAKICAgICBSYXJlQ2FzZVByb2ZpbGlu
Z1NvdXJjZSBzb3VyY2VGb3IoUHJlZGljdGlvblBhc3MgcGFzcykKICAgICB7CkBAIC0yODg0LDYg
KzI4OTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gY2FuU3BlY3VsYXRlSW50
NTIoc291cmNlRm9yKHBhc3MpKTsKICAgICB9CiAKKyAgICBib29sIGNhblNwZWN1bGF0ZUJpZ0lu
dDMyKFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICByZXR1cm4gY2FuU3BlY3Vs
YXRlQmlnSW50MzIoc291cmNlRm9yKHBhc3MpKTsKKyAgICB9CisKICAgICBib29sIGhhc1R5cGVM
b2NhdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBQcm9maWxlVHlwZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAppbmRleCBhMDkxYzA5OGQ1
MDk1ZWUxMmQxOGI2ZDVmZTgzOTQxZjY2Y2Y0NzE3Li5kNmNlNmE2MGMxMzA1Nzg2ZTkxM2JiMzM3
M2U0MjAwMzRjMzA2ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVGbGFncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxh
Z3MuY3BwCkBAIC04OCw4ICs4OCwxMSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0m
IGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgIGlmIChmbGFncyAmIE5vZGVNYXlIYXZl
RG91YmxlUmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91YmxlUmVz
dWx0Iik7CiAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCkKLSAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZUJpZ0ludFJlc3VsdCIpOworICAgIGlmIChmbGFn
cyAmIE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwg
Ik1heUhhdmVCaWdJbnQzMlJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVI
ZWFwQmlnSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlSGVhcEJp
Z0ludFJlc3VsdCIpOwogCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1lcmljUmVz
dWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKaW5kZXggYjBiYTZiYjdl
OGFmZjRmYjEyNjY3YjFmYzg5NzY2MmQ1ZWJmZDJkNi4uMmViZTM1NDRmNjAxMWRiZjVmYjFkMTA2
MmZhNGQxYTI4ZjBhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5oCkBAIC00MiwzNyArNDIsMzcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
I2RlZmluZSBOb2RlUmVzdWx0SW50NTIgICAgICAgICAgICAgICAgICAweDAwMDUKICNkZWZpbmUg
Tm9kZVJlc3VsdEJvb2xlYW4gICAgICAgICAgICAgICAgMHgwMDA2CiAjZGVmaW5lIE5vZGVSZXN1
bHRTdG9yYWdlICAgICAgICAgICAgICAgIDB4MDAwNwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKKwogI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAweDAw
MDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90IHRy
aXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAg
ICAgICAgICAgICAgMHgwMDEwCi0gICAgCi0jZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAg
ICAgICAgICAgIDB4MDA3ZTAKKwogI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAgICAg
ICAgICAweDAwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAgIDB4
MDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDA4MAog
I2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAwMTAwCiAjZGVmaW5l
IE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDAyMDAKICNkZWZpbmUgTm9kZU1h
eU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwMDQwMAotI2RlZmluZSBOb2RlTWF5SGF2ZU5v
bk51bWVyaWNSZXN1bHQgICAgICAweDAwODAwCi0vLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUgc2Vw
YXJhdGUgZmxhZ3MgZm9yIEhlYXBCaWdJbnQgYW5kIEJpZ0ludDMyLCBjdXJyZW50bHkgcHJlZGlj
dGlvbiBwcm9wYWdhdGlvbiB3aWxsIHBlc3NpbWl6ZSB0aGluZ3MuCi0jZGVmaW5lIE5vZGVNYXlI
YXZlQmlnSW50UmVzdWx0ICAgICAgICAgIDB4MDEwMDAKLSNkZWZpbmUgTm9kZU1heUhhdmVOb25J
bnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhhdmVO
b25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAg
ICAgIDB4M2UwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAweDAw
MDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAvLyBU
aGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRo
YXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUgcmVz
dWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2Jz
ZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgMHgwODAw
MCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250
ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtl
IHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgKE5v
ZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVC
eXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAgICAg
ICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRv
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUs
IGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAg
IDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJl
IHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVlcywg
dG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQgYWxs
IHBvc3NpYmxlLgorI2RlZmluZSBOb2RlTWF5SGF2ZUJpZ0ludDMyUmVzdWx0ICAgICAgICAweDAw
ODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCAgICAgIDB4MDEwMDAKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0ICAgICAgMHgwMjAwMAorI2RlZmluZSBO
b2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQg
fCBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8
IE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgfCBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgfCBO
b2RlTWF5TmVnWmVyb0luREZHIHwgTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCB8IE5vZGVNYXlI
YXZlSGVhcEJpZ0ludFJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCkKKyNkZWZp
bmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVz
dWx0IHwgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnQzMlJl
c3VsdCB8IE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCkKKworI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VCb3R0b20gICAgICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNB
c051bWJlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9yIGJp
Z2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05lZ1pl
cm8gICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkg
YmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzT3RoZXIgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3
ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVC
eXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlz
IGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVy
cywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDQwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBj
b21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5
IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9p
ZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2Rl
VXNlc0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRl
Y29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwg
Tm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBOb2Rl
Qnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KQogCiAjZGVm
aW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNrIHwg
Tm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAg
ICAgICAgICAgICAgMHg0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3
aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZy
b20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAgMHg4
MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdo
aWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAot
I2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKLSNkZWZpbmUg
Tm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAwMAorI2RlZmluZSBOb2RlTWlz
Y0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzIg
ICAgICAgICAgICAgICAgICAgMHgyMDAwMDAKIAogdHlwZWRlZiB1aW50MzJfdCBOb2RlRmxhZ3M7
CiAKQEAgLTE1OCw2ICsxNTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVjdWxh
dGVJbnQ1MihOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG5vZGVNYXlIYXZlSGVhcEJpZ0ludChO
b2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmNlKQoreworICAgIHJldHVybiAh
IShmbGFncyAmIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlQmlnSW50MzIoTm9kZUZsYWdzIGZsYWdzLCBSYXJlQ2Fz
ZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCit7CisgICAgLy8gV2UgYWx3YXlzIGF0dGVtcHQgdG8g
cHJvZHVjZSBCaWdJbnQzMiBhcyBtdWNoIGFzIHBvc3NpYmxlLiBJZiB3ZSBzZWUgSGVhcEJpZ0lu
dCwgd2Ugb2JzZXJ2ZWQgb3ZlcmZsb3cuCisgICAgLy8gRklYTUU6IEV4dGVuZCB0aGlzIGluZm9y
bWF0aW9uIGJ5IHRpZXJlZCBwcm9maWxpbmcgKGZyb20gQmFzZWxpbmUsIERGRyBldGMuKS4KKyAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM5CisgICAg
cmV0dXJuICFub2RlTWF5SGF2ZUhlYXBCaWdJbnQoZmxhZ3MsIHNvdXJjZSk7Cit9CisKIC8vIEZJ
WE1FOiBHZXQgcmlkIG9mIHRoaXMuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxNjg5CiBzdGF0aWMgaW5saW5lIE5vZGVGbGFncyBjYW5vbmljYWxSZXN1bHRS
ZXByZXNlbnRhdGlvbihOb2RlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4
IDY2YjlkNjBhMzQwYTY4MmE4MmM4ZjQzYzU0YzZiMmY2MWU1MjFlZjguLjkyMmEwZDhjY2Y1NGU4
MWU3ZWZjNjg4Yjk4MzIxODZkMmEyZmRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0y
MTAsNyArMjEwLDkgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmdPclN0cmluZ09iamVj
dFNwZWN1bGF0aW9uKGxlZnQpIHx8IGlzU3RyaW5nT3JTdHJpbmdPYmplY3RTcGVjdWxhdGlvbihy
aWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gbGVmdCBvciByaWdodCBpcyBkZWZpbml0
ZWx5IHNvbWV0aGluZyBvdGhlciB0aGFuIGEgbnVtYmVyLgogICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nKTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlv
bihyaWdodCkpCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5jYW5TcGVjdWxhdGVC
aWdJbnQzMihtX3Bhc3MpICYmIGlzQmlnSW50MzJTcGVjdWxhdGlvbihsZWZ0KSAmJiBpc0JpZ0lu
dDMyU3BlY3VsYXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1l
cmdlUHJlZGljdGlvbihTcGVjQmlnSW50MzIpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlz
QmlnSW50U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCiAg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQp
OwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKQEAgLTI3OCw3ICsyODAsOSBAQCBjbGFz
cyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJBbnkpOwog
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxl
ZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0
aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAobm9kZS0+Y2FuU3BlY3VsYXRlQmlnSW50MzIobV9wYXNzKSAmJiBpc0JpZ0lu
dDMyU3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnQzMlNwZWN1bGF0aW9uKHJpZ2h0KSkKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludDMy
KTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYm
IGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50KTsKICAgICAgICAgICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMy
T25seSk7CkBAIC0zODYsNyArMzkwLDkgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyQW55KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3Vs
YXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAob3AgPT0gVmFsdWVNdWwgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihsZWZ0
KSAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKHJpZ2h0KSkKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKG9wID09IFZhbHVlTXVsICYmIG5vZGUtPmNhblNwZWN1bGF0ZUJpZ0ludDMyKG1fcGFzcykg
JiYgaXNCaWdJbnQzMlNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50MzJTcGVjdWxhdGlvbihy
aWdodCkpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNw
ZWNCaWdJbnQzMik7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3AgPT0gVmFsdWVNdWwgJiYg
aXNCaWdJbnRTcGVjdWxhdGlvbihsZWZ0KSAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKHJpZ2h0KSkK
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0lu
dCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA3YTBhMjUwZmNjMTQxM2FlOTEw
ZmM5ODkxZWI0MzkwMzI5OTIwMWRmLi5hNmJkMGJjYjk4NGFlOWNhYzQ1ZjRiNjczNDVmMjNjYzJi
NWYyMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcApAQCAtNDAyNiw2ICs0MDI2LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGls
ZDIoKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAgICAvLyBGSVhNRTogSW50cm9kdWNlIGFub3Ro
ZXIgQmlnSW50MzIgY29kZSBnZW5lcmF0aW9uOiBiaW5hcnkgdXNlIGtpbmRzIGFyZSBCaWdJbnRV
c2UzMiwgYnV0IHJlc3VsdCBpcyBTcGVjQW55SW50IGFuZCBhY2NlcHRpbmcgb3ZlcmZsb3cuCisg
ICAgLy8gTGV0J3MgZGlzdGluZ3Vpc2ggdGhlc2UgbW9kZXMgYmFzZWQgb24gcmVzdWx0IHR5cGUg
aW5mb3JtYXRpb24gYnkgaW50cm9kdWNpbmcgTm9kZVJlc3VsdEJpZ0ludDMyLgorICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQwCiAgICAgaWYgKG5vZGUt
PmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkpIHsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50
MzJPcGVyYW5kIGxlZnQodGhpcywgbGVmdENoaWxkKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50
MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIHJpZ2h0Q2hpbGQpOwpAQCAtNDA0MCwxMCArNDA0NCw5IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAgICAg
ICBtX2ppdC51bmJveEJpZ0ludDMyKGxlZnRHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgIG1faml0
LnVuYm94QmlnSW50MzIocmlnaHRHUFIsIHRlbXBHUFIpOwogCi0gICAgICAgIC8vIEZJWE1FOiBh
ZGQgc29tZSB3YXkgdG8gZWxpbWluYXRlIHRoZSBvdmVyZmxvdyBjaGVjawogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBjaGVjayA9IG1faml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVy
OjpPdmVyZmxvdywgcmVzdWx0R1BSLCB0ZW1wR1BSLCByZXN1bHRHUFIpOwogCi0gICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNrKTsKKyAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhCaWdJbnQzMk92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBj
aGVjayk7CiAKICAgICAgICAgbV9qaXQuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKICAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwpAQCAtNDEzMCw2ICs0MTMzLDEwIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVN1YihOb2RlKiBub2RlKQogICAgIEVkZ2Um
IHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAgICAv
LyBGSVhNRTogSW50cm9kdWNlIGFub3RoZXIgQmlnSW50MzIgY29kZSBnZW5lcmF0aW9uOiBiaW5h
cnkgdXNlIGtpbmRzIGFyZSBCaWdJbnRVc2UzMiwgYnV0IHJlc3VsdCBpcyBTcGVjQW55SW50IGFu
ZCBhY2NlcHRpbmcgb3ZlcmZsb3cuCisgICAgLy8gTGV0J3MgZGlzdGluZ3Vpc2ggdGhlc2UgbW9k
ZXMgYmFzZWQgb24gcmVzdWx0IHR5cGUgaW5mb3JtYXRpb24gYnkgaW50cm9kdWNpbmcgTm9kZVJl
c3VsdEJpZ0ludDMyLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTA5NTcKKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMDQwCiAgICAgaWYgKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSA9PSBCaWdJbnQzMlVzZSkg
ewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgbGVmdCh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCByaWdodCh0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CkBAIC00MTQ0LDEwICs0MTUxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIo
bGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyaWdodEdQ
UiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBzb21lIHdheSB0byBlbGltaW5h
dGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNoZWNr
ID0gbV9qaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIs
IHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxv
dywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJp
Z0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNrKTsKIAogICAgICAgICBtX2pp
dC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQ
Uiwgbm9kZSk7CkBAIC00OTc3LDYgKzQ5ODMsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNo
aWxkMigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW5v
dGhlciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2luZHMgYXJlIEJpZ0lu
dFVzZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGluZyBvdmVyZmxvdy4K
KyAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlw
ZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1NworICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAKICAgICBpZiAobm9k
ZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CiAgICAgICAgIC8vIEZJWE1FOiB0
aGUgY29kZSBiZXR3ZWVuIGNvbXBpbGVWYWx1ZUFkZCwgY29tcGlsZVZhbHVlU3ViIGFuZCBjb21w
aWxlVmFsdWVNdWwgZm9yIEJpZ0ludDMyIGlzIG5lYXJseSBpZGVudGljYWwsIHNvIHRyeSB0byBn
ZXQgcmlkIG9mIHRoZSBkdXBsaWNhdGlvbi4KICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVy
YW5kIGxlZnQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNDk5MiwxMCArNTAwMiw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bChOb2RlKiBub2RlKQogICAgICAgICBt
X2ppdC51bmJveEJpZ0ludDMyKGxlZnRHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgIG1faml0LnVu
Ym94QmlnSW50MzIocmlnaHRHUFIsIHRlbXBHUFIpOwogCi0gICAgICAgIC8vIEZJWE1FOiBhZGQg
c29tZSB3YXkgdG8gZWxpbWluYXRlIHRoZSBvdmVyZmxvdyBjaGVjawogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBjaGVjayA9IG1faml0LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVyOjpP
dmVyZmxvdywgcmVzdWx0R1BSLCB0ZW1wR1BSLCByZXN1bHRHUFIpOwogCi0gICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNrKTsKKyAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhCaWdJbnQzMk92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBjaGVj
ayk7CiAKICAgICAgICAgbV9qaXQuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKICAgICAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDU4NzMyNjY2ZWQ4YTU1OWY1MTJkZGZiYjUzOWZl
YzgwMGQ4NjdiYjYuLjdmOWI3N2VhZGI5OTM3ZGU1MDY4YjRlMmZjZTc4ZGU5NDFmMWI5YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTIx
NDMsNiArMjE0MywxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5vcmln
aW4uc2VtYW50aWMpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAvLyBGSVhNRTogSW50
cm9kdWNlIGFub3RoZXIgQmlnSW50MzIgY29kZSBnZW5lcmF0aW9uOiBiaW5hcnkgdXNlIGtpbmRz
IGFyZSBCaWdJbnRVc2UzMiwgYnV0IHJlc3VsdCBpcyBTcGVjQW55SW50IGFuZCBhY2NlcHRpbmcg
b3ZlcmZsb3cuCisgICAgICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJhc2Vk
IG9uIHJlc3VsdCB0eXBlIGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRCaWdJ
bnQzMi4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDk1NworICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMDQwCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVz
ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dCaWdJbnQzMihtX25vZGUtPmNo
aWxkMigpKTsKQEAgLTIxNTEsNyArMjE1NSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAg
ICAgICAgICBMVmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7CiAKICAg
ICAgICAgICAgIENoZWNrVmFsdWUqIHJlc3VsdCA9IG1fb3V0LnNwZWN1bGF0ZUFkZCh1bmJveGVk
TGVmdCwgdW5ib3hlZFJpZ2h0KTsKLSAgICAgICAgICAgIGJsZXNzU3BlY3VsYXRpb24ocmVzdWx0
LCBPdmVyZmxvdywgbm9WYWx1ZSgpLCBudWxscHRyLCBtX29yaWdpbik7CisgICAgICAgICAgICBi
bGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgQmlnSW50MzJPdmVyZmxvdywgbm9WYWx1ZSgpLCBudWxs
cHRyLCBtX29yaWdpbik7CiAKICAgICAgICAgICAgIExWYWx1ZSBib3hlZFJlc3VsdCA9IGJveEJp
Z0ludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKGJveGVkUmVzdWx0KTsKQEAg
LTIxODEsNiArMjE4NSwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5v
cmlnaW4uc2VtYW50aWMpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAvLyBGSVhNRTog
SW50cm9kdWNlIGFub3RoZXIgQmlnSW50MzIgY29kZSBnZW5lcmF0aW9uOiBiaW5hcnkgdXNlIGtp
bmRzIGFyZSBCaWdJbnRVc2UzMiwgYnV0IHJlc3VsdCBpcyBTcGVjQW55SW50IGFuZCBhY2NlcHRp
bmcgb3ZlcmZsb3cuCisgICAgICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJh
c2VkIG9uIHJlc3VsdCB0eXBlIGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRC
aWdJbnQzMi4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDk1NworICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExMDQwCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQz
MlVzZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93QmlnSW50MzIobV9ub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dCaWdJbnQzMihtX25vZGUt
PmNoaWxkMigpKTsKQEAgLTIxODksNyArMjE5Nyw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAg
ICAgICAgICAgICBMVmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7CiAK
ICAgICAgICAgICAgIENoZWNrVmFsdWUqIHJlc3VsdCA9IG1fb3V0LnNwZWN1bGF0ZVN1Yih1bmJv
eGVkTGVmdCwgdW5ib3hlZFJpZ2h0KTsKLSAgICAgICAgICAgIGJsZXNzU3BlY3VsYXRpb24ocmVz
dWx0LCBPdmVyZmxvdywgbm9WYWx1ZSgpLCBudWxscHRyLCBtX29yaWdpbik7CisgICAgICAgICAg
ICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgQmlnSW50MzJPdmVyZmxvdywgbm9WYWx1ZSgpLCBu
dWxscHRyLCBtX29yaWdpbik7CiAKICAgICAgICAgICAgIExWYWx1ZSBib3hlZFJlc3VsdCA9IGJv
eEJpZ0ludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKGJveGVkUmVzdWx0KTsK
QEAgLTIyMTksNiArMjIyNywxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2Rl
LT5vcmlnaW4uc2VtYW50aWMpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAvLyBGSVhN
RTogSW50cm9kdWNlIGFub3RoZXIgQmlnSW50MzIgY29kZSBnZW5lcmF0aW9uOiBiaW5hcnkgdXNl
IGtpbmRzIGFyZSBCaWdJbnRVc2UzMiwgYnV0IHJlc3VsdCBpcyBTcGVjQW55SW50IGFuZCBhY2Nl
cHRpbmcgb3ZlcmZsb3cuCisgICAgICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVz
IGJhc2VkIG9uIHJlc3VsdCB0eXBlIGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1
bHRCaWdJbnQzMi4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMDk1NworICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExMDQwCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJ
bnQzMlVzZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93QmlnSW50MzIobV9ub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dCaWdJbnQzMihtX25v
ZGUtPmNoaWxkMigpKTsKQEAgLTIyMjcsNyArMjIzOSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7
CiAgICAgICAgICAgICBMVmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7
CiAKICAgICAgICAgICAgIENoZWNrVmFsdWUqIHJlc3VsdCA9IG1fb3V0LnNwZWN1bGF0ZU11bCh1
bmJveGVkTGVmdCwgdW5ib3hlZFJpZ2h0KTsKLSAgICAgICAgICAgIGJsZXNzU3BlY3VsYXRpb24o
cmVzdWx0LCBPdmVyZmxvdywgbm9WYWx1ZSgpLCBudWxscHRyLCBtX29yaWdpbik7CisgICAgICAg
ICAgICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgQmlnSW50MzJPdmVyZmxvdywgbm9WYWx1ZSgp
LCBudWxscHRyLCBtX29yaWdpbik7CiAKICAgICAgICAgICAgIExWYWx1ZSBib3hlZFJlc3VsdCA9
IGJveEJpZ0ludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKGJveGVkUmVzdWx0
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjk3ZTc1ZjI5ZWEyYTc1MmYzOTI4NWRjZTYzMGQ1MzI0MTMxMjc1ZS4uZDVjNWY0MWM3YmFk
MGZiMzliMDYzZjI4Njg5YmNhNzE2MTIwOGJmZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0wNC0yNSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFZhbHVl
QWRkLCBWYXVlU3ViLCBWYWx1ZU11bCBzaG91bGQgc2F5IFNwZWNCaWdJbnQzMiBwcmVkaWN0aW9u
IGJhc2VkIG9uIEFyaXRoUHJvZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExMDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzdHJlc3MvYmlnaW50MzItYWRkLW92ZXJmbG93LmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGFkZCk6CisgICAgICAgIChub0lubGluZSk6
CisgICAgICAgICogc3RyZXNzL2JpZ2ludDMyLW11bC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgIChtdWwpOgorICAgICAgICAobm9JbmxpbmUpOgorICAg
ICAgICAqIHN0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAoc3ViKToKKyAgICAgICAgKG5vSW5saW5lKToKKwogMjAyMC0w
NC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0Nd
IEFkZCBmYXN0IHBhdGggZm9yIEJpZ0ludDMyIGxlZnQtc2hpZnQKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2lu
dDMyLWFkZC1vdmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDkyN2EyZWEzYTAwNmFjYzFmNGJkZDM0
MTcyNTNlODAwYmUxYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50
MzItYWRkLW92ZXJmbG93LmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBh
ZGQoYSwgYikgeworICAgIHJldHVybiBhICsgYjsKK30KK25vSW5saW5lKGFkZCk7CisKK3sKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShhZGQo
QmlnSW50KGkpLCAybiksIEJpZ0ludChpICsgMikpOworfQoreworICAgIGxldCBtYXggPSAweDdm
ZmZmZmZmbjsKKyAgICBsZXQgcmVzdWx0ID0gMHg4MDAwMDAwMW47CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoYWRkKG1heCwgMm4pLCByZXN1
bHQpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVsLW92ZXJmbG93
LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVsLW92ZXJmbG93LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZiZDRlMzliYTZiYTU4Y2YzYWU0NGZmODNmZmIyYjdjYzA5ZmM5OWEKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1tdWwtb3ZlcmZsb3cuanMKQEAgLTAsMCArMSwy
MCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG11bChhLCBiKSB7CisgICAgcmV0dXJuIGEgKiBiOwor
fQorbm9JbmxpbmUobXVsKTsKKworeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpCisgICAgICAgIHNob3VsZEJlKG11bChCaWdJbnQoaSksIDJuKSwgQmlnSW50KGkgKiAyKSk7
Cit9Cit7CisgICAgbGV0IG1heCA9IDB4N2ZmZmZmZmZuOworICAgIGxldCByZXN1bHQgPSAweGZm
ZmZmZmZlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShtdWwobWF4LCAybiksIHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1z
dWItb3ZlcmZsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3N2EzYzU4ODVkMWFiNzU0ZTgzNmNlYTdmN2I1
NTc4MGZlM2FlZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLXN1
Yi1vdmVyZmxvdy5qcwpAQCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gc3ViKGEs
IGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9Citub0lubGluZShzdWIpOworCit7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoc3ViKEJpZ0lu
dChpKSwgMm4pLCBCaWdJbnQoaSAtIDIpKTsKK30KK3sKKyAgICBsZXQgbWluID0gLTB4N2ZmZmZm
ZmZuIC0gMW47CisgICAgbGV0IHJlc3VsdCA9IC0weDgwMDAwMDAybjsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShzdWIobWluLCAybiksIHJl
c3VsdCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397609</attachid>
            <date>2020-04-25 22:04:33 -0700</date>
            <delta_ts>2020-04-25 22:48:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211038-20200425220425.patch</filename>
            <type>text/plain</type>
            <size>46822</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5lZTRhNWRmNjJmMWQyOTYx
MGQ1ODY4ZTRjMzEyNjU0ZjllYjYzYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMg
c2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbiBiYXNlZCBvbiBBcml0aFByb2ZpbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBwcm9maWxlIGZlZWRiYWNrIHRvIFZhbHVlQWRkLCBWYWx1ZVN1YiwgVmFsdWVNdWws
IEluYywgRGVjIHRvIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbi4KKworICAgICAgICBPdXIg
SGVhcEJpZ0ludCB2LnMuIEJpZ0ludDMyIHN0cmF0ZWd5IGlzIHNpbXBsZXIgdGhhbiBEb3VibGUg
di5zLiBJbnQzMiBzdHJhdGVneTogd2UgYWx3YXlzCisgICAgICAgIHByZWZlciBCaWdJbnQzMiBv
dmVyIEhlYXBCaWdJbnQuIFRoaXMgaXMgYmVjYXVzZSBIZWFwQmlnSW50IGNhbGN1bGF0aW9uIGFu
ZCBjb252ZXJzaW9uIHJlcXVpcmVzCisgICAgICAgIHNvIG11Y2ggaGlnaGVyIGNvc3QgdGhhbiBC
aWdJbnQzMi4gVGhpcyB0cmFkZW9mZiBpcyBsYXJnZWx5IGRpZmZlcmVudCBmcm9tIERvdWJsZSB2
LnMuIEludDMyLgorICAgICAgICBTbyBrZWVwaW5nIEhlYXBCaWdJbnQgaXMgc2ltcGx5IGluZWZm
aWNpZW50IGlmIHdlIGNhbiB1c2UgQmlnSW50MzIuCisKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IEFyaXRoUHJvZmlsZSdzIGZlZWRiYWNrIGlzIGFsc28gdmVyeSBzaW1wbGUuIElmIHdlIHNlZSBI
ZWFwQmlnSW50LCB0aGlzIG1lYW5zCisgICAgICAgIG92ZXJmbG93IGhhcHBlbnMuIEluIERGRywg
d2UgcHJvcGFnYXRlIHRoaXMgaW5mb3JtYXRpb24gdG8gVmFsdWVBZGQsIFZhbHVlU3ViLCBhbmQg
VmFsdWVNdWwgbm9kZXMKKyAgICAgICAgYW5kIHJlY29yZCBpdCBpbiBERkdOb2RlRmxhZ3MuIEFu
ZCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uLCB3ZSBjaGFuZ2UgdGhlIHByZWRpY3Rpb24gYW5k
CisgICAgICAgIHNwZWN1bGF0aW9uIGluIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGZpeHVw
IHBoYXNlLgorCisgICAgICAgIFdlIGNoYW5nZSBleGl0IHJlYXNvbiBmcm9tIG92ZXJmbG93aW5n
IGZyb20gT3ZlcmZsb3cgdG8gQmlnSW50MzJPdmVyZmxvdyBzaW5jZSBPdmVyZmxvdyBpcyBzb2xl
bHkKKyAgICAgICAgdXNlZCBmb3IgSW50MzIgY2FzZSwgYW5kIHdlIGhhdmUgSW50NTJPdmVyZmxv
dyBmb3IgSW50NTIgY2FzZS4gV2Ugc2hvdWxkIGhhdmUgQmlnSW50MzJPdmVyZmxvdyBmb3IgQmln
SW50MzIKKyAgICAgICAgdG8gcHJlY2lzZWx5IHJlY29yZCBhbmQgdGVsbCB0ZWxsIGFib3V0IHdo
YXQgaGFwcGVucyBpbiBERkcgYXMgYSBmZWVkYmFjayBmb3IgdGhlIG5leHQgY29tcGlsYXRpb24u
CisKKyAgICAgICAgV2UgYWRkIEJpZ0ludDMyIHNwZWN1bGF0aW9uIGZvciBWYWx1ZVN1Yi4gUHJl
dmlvdXNseSwgd2UgbWlzc2VkIHRoYXQgaW4gZml4dXAgcGhhc2UgYW5kIHdlIGFsd2F5cworICAg
ICAgICBzcGVjdWxhdGUgVmFsdWVTdWIgd2l0aCBBbnlCaWdJbnRVc2Ugb3IgSGVhcEJpZ0ludFVz
ZS4gTm90IGl0IGNhbiB1c2UgQmlnSW50MzJVc2UuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW5j
IC8gRGVjJ3MgZml4dXAgcGhhc2UgdG8gdXNlIEJpZ0ludCBwYXRoLiBQcmV2aW91c2x5LCBpdCB3
YXMgYWx3YXlzIHVzaW5nIFVudHlwZWRVc2Ugc2luY2UKKyAgICAgICAgbm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKCkgcmV0dXJucyB0cnVlIGZvciBC
aWdJbnQuIFdlIGZpeCB0aGUgb3JkZXJpbmcgb2YKKyAgICAgICAgc3BlY3VsYXRpb24gYXR0ZW1w
dHMgYXMgaXQgaXMgZG9uZSBpbiB0aGUgb3RoZXIgcGxhY2VzIGluIGZpeHVwIHBoYXNlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggb2ZmZXJzIDcuOSUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4g
c3Vuc3BpZGVyLXNoYTEtYmlnLWludC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAgICAgICAgICBQYXRjaGVkCisKKyAgICAg
ICAgICAgIHN1bnNwaWRlci1zaGExLWJpZy1pbnQgICAgICAxMzQuNTY2OCstMi44Njk1ICAgICBe
ICAgIDEyNC42NzQzKy0wLjc1NDEgICAgICAgIF4gZGVmaW5pdGVseSAxLjA3OTN4IGZhc3Rlcgor
CisgICAgICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2lu
ZFRvU3RyaW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtl
U2FmZSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VEaXZTYWZlKToK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6YmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQz
Mik6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpt
YXlIYXZlQmlnSW50MzJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVI
ZWFwQmlnSW50UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlQmlnSW50
UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjYW5TcGVjdWxhdGVCaWdJbnQzMik6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6Y2FuU3BlY3VsYXRlSW50NTIpOgorICAgICAgICAq
IGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmR1bXBOb2RlRmxhZ3Mp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuaDoKKyAgICAgICAgKEpTQzo6REZHOjpub2Rl
TWF5SGF2ZUhlYXBCaWdJbnQpOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVDYW5TcGVjdWxhdGVC
aWdJbnQzMik6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVIZWFwQmlnSW50KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlRGl2KToKKwogMjAyMC0wNC0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBEZWFsIHdpdGggYW5vdGhlciByb3VuZCBvZiBYY29kZSB1cGdyYWRl
IGNoZWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5k
ZXggZmYyNzYxNmM0Yzg5MTA4Y2I1MjBhOWFiZDVjZDRjYzAwZGRlZDNlMi4uMjM0NjA1MmMwMTg2
NzlmNWZjZjI0YjNkMGRlNWU5N2FkMGI1MzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC04OCw2ICs4OCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRL
aW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJFeGNlcHRpb25DaGVj
ayI7CiAgICAgY2FzZSBHZW5lcmljVW53aW5kOgogICAgICAgICByZXR1cm4gIkdlbmVyaWNVbndp
bmQiOworICAgIGNhc2UgQmlnSW50MzJPdmVyZmxvdzoKKyAgICAgICAgcmV0dXJuICJCaWdJbnQz
Mk92ZXJmbG93IjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gIlVua25vd24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuaAppbmRleCA5MTA1ZGFjYTVkODFkM2VlMTczYTlkMTVlYWNhMWRjZWY4OWQ1MDY5Li42MTFk
NDdhZjQ1OWYyOTJjNDE1MDZjNzZmY2ZiM2Q0MWVkODA0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtNTUsNiArNTUsNyBAQCBlbnVtIEV4aXRLaW5k
IDogdWludDhfdCB7CiAgICAgRGVidWdnZXJFdmVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2Ug
bmVlZCB0byBzZXJ2aWNlIHRoZSBkZWJ1Z2dlci4KICAgICBFeGNlcHRpb25DaGVjaywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYSBkaXJlY3QgZXhjZXB0aW9uIGNoZWNrIHNob3dlZCB0aGF0IHdlIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmcm9tIGEgQyBjYWxsLgogICAgIEdlbmVyaWNVbndpbmQsIC8vIFdl
IGV4aXRlZCBiZWNhdXNlIHdlIGFycml2ZWQgYXQgdGhpcyBPU1IgZXhpdCBmcm9tIGdlbmVyaWNV
bndpbmQuCisgICAgQmlnSW50MzJPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2YgYW4g
QmlnSW50MzIgb3ZlcmZsb3cuCiB9OwogCiBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4
aXRLaW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKaW5kZXggOWUzNTcxZmI5OWYxMjE2NzU1ZjE5Yzg0YzhiYmJjMWMyMDEzNjkyNi4uOWY2
M2Q4NDdkOTMyOTY0YmRiNWUyM2IyMjlkOWQ2NTg5NTczNTRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTEwMCw3ICsxMDAsMTIg
QEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2wKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQgdGhhdCBpcyBhbGxvY2F0ZWQg
b24gdGhlIGhlYXAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIHNtYWxsIEJpZ0ludCB0aGF0IGlzIGlubGluZSB0aGUgSlNWYWx1ZQorI2lmIFVTRShCSUdJ
TlQzMikKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCaWdJbnQzMiB8IFNwZWNIZWFwQmlnSW50OworI2Vs
c2UKKy8vIFdlIHNob3VsZCBub3QgaW5jbHVkZSBTcGVjQmlnSW50MzIuIFdlIGFyZSB1c2luZyBT
cGVjQmlnSW50IGluIHZhcmlvdXMgcGxhY2VzIGxpa2UgcHJlZGljdGlvbi4gSWYgdGhpcyBpbmNs
dWRlcyBTcGVjQmlnSW50MzIsIGZpeHVwIHBoYXNlIGlzIGNvbmZ1c2VkIGlmICFVU0UoQklHSU5U
MzIpIHNpbmNlIGl0IGlzIG5vdCB1c2luZyBBbnlCaWdJbnRVc2UuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjSGVhcEJpZ0ludDsKKyNlbmRpZgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRGF0YVZpZXdPYmplY3QgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNEYXRhVmlldy4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBT
cGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2MgfCBTcGVjQmlnSW50OyAv
LyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxP
YmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBT
cGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmpl
Y3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKaW5kZXggNjEwMWE3OTdjMDI0OTQ4MDE2ZjY1ZDA3MWZhZGFkZjkzZmIyYjk1Yy4uYmZjMTZk
OWRhMjllMDg1YTgzYTA4OTk2NTMyODY1NjVmNDU1NTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtNzY2LDggKzc2NiwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBub2RlLT5iaW5hcnlV
c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQoKTsKQEAg
LTEwNTYsOCArMTA1OCwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDE5MzdmZTQ3
YmUxMGQwNTIwMjZlYjNjNmQ1ZTIzZjVhYzZhYTk4YS4uMjA1NDRjY2Q3MzBlMWMxYjRiNjhmYmVj
NmZhMTk2OTJmZWNhYjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBjbGFzcyBCeXRlQ29kZVBh
cnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJs
ZVJlc3VsdCk7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZU5vbk51bWVyaWMo
KSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJp
Y1Jlc3VsdCk7Ci0gICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUJpZ0ludCgpKQot
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQp
OworICAgICAgICAgICAgaWYgKG9ic2VydmVkLmRpZE9ic2VydmVCaWdJbnQzMigpKQorICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCk7Cisg
ICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJ
bnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIFZhbHVlTXVsOgpAQCAtMTAzMCw4ICsxMDMyLDEwIEBAIGNsYXNzIEJ5dGVDb2Rl
UGFyc2VyIHsKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25O
dW1lcmljKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5v
bk51bWVyaWNSZXN1bHQpOwotICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZUJpZ0ludCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnRSZXN1bHQpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUJp
Z0ludDMyKCkpCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJp
Z0ludDMyUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVI
ZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKQEAgLTEwNDksOCAr
MTA1MywxMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwogICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWVyaWMoKSkKICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCk7Ci0gICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCk7CisgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpOworICAgICAgICAg
ICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGluZVN0
YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJbnQz
Mk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZl
SGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0x
MDk5LDggKzExMDUsMTEgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8IE5vZGVNYXlOZWdaZXJv
SW5CYXNlbGluZSk7CiAKICAgICAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZUZv
ckJ5dGVjb2RlSW5kZXgobV9jdXJyZW50SW5kZXgpOwotICAgICAgICBpZiAoYXJpdGhQcm9maWxl
LT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0KTsKKworICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNl
cnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnQzMlJlc3VsdCk7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVIZWFw
QmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAKICAgICAgICAgcmV0dXJuIG5v
ZGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggOWZmYjBlMWNkMjdiNTQ0ODZmOTU1MjQwNWYyOTUyNmQyYjhmMWRhNS4uZjU4NTA1Yjdh
MTMzNmU1NGJhMDcyZDBjNmY0YTU3MmNiOTMyNDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODgsNiArMTg4LDQyIEBAIGNsYXNzIEZpeHVw
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogCiAgICAgICAgIGNhc2UgSW5jOgogICAgICAgICBjYXNl
IERlYzogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlSGVhcEJpZ0ludCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBtaWdodCBvcHRpbWl6ZSBpbmMvZGVjIHRvIGEg
c3BlY2lhbGl6ZWQgZnVuY3Rpb24gY2FsbCBpbnN0ZWFkIGluIHRoYXQgY2FzZS4KKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7
CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9u
U2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50
LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25z
dGFudE9uZS5nZXQoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0
Q2hpbGQyKEVkZ2Uobm9kZUNvbnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVk
Z2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICBm
aXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gSGVhcEJpZ0ludHMgYXJlIGNlbGxzLCBzbyB0aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0
SlMgaXMgZ29vZCBoZXJlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5h
cnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1
Yik7CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNCaWdJbnQzMiwgSlNDb25zdGFu
dCwgbm9kZS0+b3JpZ2luLCBPcEluZm8obV9ncmFwaC5mcmVlemUoanNCaWdJbnQzMigxKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0Q2hpbGQyKEVkZ2Uobm9kZUNv
bnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVmYXVsdCBvZiBO
b2RlUmVzdWx0SlMgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNt
YWxsIEJpZ0ludHMgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBkb2Vz
IG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkgdm0p
LCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1bmN0
aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgICAgbm9kZS0+c2V0
T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7CisgICAgICAgICAgICAgICAgTm9k
ZSogbm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5C
bG9jaywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dy
YXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxk
cmVuLnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOworICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgZml4
RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAvLyBU
aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCisjZW5kaWYgLy8gVVNFKEJJ
R0lOVDMyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1l
dGljKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIwMiwzNCArMjM4LDYgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEludDMyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZUhlYXBCaWdJbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCi0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIG1pZ2h0IG9wdGltaXplIGluYy9kZWMgdG8gYSBzcGVj
aWFsaXplZCBmdW5jdGlvbiBjYWxsIGluc3RlYWQgaW4gdGhhdCBjYXNlLgotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IFZhbHVlQWRkIDogVmFsdWVTdWIpOwotICAgICAg
ICAgICAgICAgIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9p
bmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9w
SW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25zdGFudE9uZS5nZXQoKSkpKTsK
LSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZHJlbi5zZXRDaGlsZDIoRWRnZShub2RlQ29uc3Rh
bnRPbmUpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBIZWFwQmlnSW50cyBhcmUgY2VsbHMsIHNvIHRo
ZSBkZWZhdWx0IG9mIE5vZGVSZXN1bHRKUyBpcyBnb29kIGhlcmUKLSNpZiBVU0UoQklHSU5UMzIp
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFs
dWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAgbm9kZUNvbnN0YW50T25lID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3BlY0JpZ0ludDMyLCBKU0Nv
bnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEp
KSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuLnNldENoaWxkMihFZGdlKG5vZGVD
b25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5j
aGlsZDIoKSk7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgb2YgTm9kZVJlc3VsdEpT
IGlzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGNvbnNp
ZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNtYWxsIEJpZ0ludHMgaW5z
dGVhZC4KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBk
b2VzIG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkg
dm0pLCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1
bmN0aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCi0gICAgICAgICAgICAgICAgbm9kZS0+
c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAg
bm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
aywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBo
LmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVk
Z2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RWRn
ZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCi0jZW5kaWYgLy8gVVNFKEJJR0lO
VDMyKQogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3Vs
YXRlSW50NTIoKSkgewogICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IEFy
aXRoQWRkIDogQXJpdGhTdWIpOwogICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShB
cml0aDo6Q2hlY2tPdmVyZmxvdyk7CkBAIC0yNjIsMTAgKzI3MCwxNiBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50
MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJV
c2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4oY2hpbGQy
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
aWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIubm9k
ZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDEpOwog
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDIpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICNl
bmRpZgogCkBAIC0zMTEsNyArMzI1LDE2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdl
bmVyYXRlKTsKKyAgICAgICAgICAgICAgICAvLyBTaGlmdCBjYW4gdGhyb3cgUmFuZ2VFcnJvci4K
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIFZhbHVlQml0WG9yOgorICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKKyAgICAg
ICAgICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgorICAgICAgICAgICAgICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAK
QEAgLTUxMyw3ICs1MzYsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KGNoaWxkMSk7CiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihjaGlsZDIpOwogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoY2hp
bGQxLm5vZGUoKSwgY2hpbGQyLm5vZGUoKSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykp
IHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihjaGlsZDEpOwogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIu
bm9kZSgpKSkgewpAQCAtNjA2LDcgKzYyOSw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogCiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50KGxl
ZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkgewogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobGVmdENo
aWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1f
Z3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBGaXh1cFBhc3Mp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
SGVhcEJpZ0ludChsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAyOGJmMTUyMDQxZDMzODYzNzZhNjZkY2Ji
MWJlOTU1YjliM2Y0NDU5Li4zNjlmZDkxMjEzYzM4MzRhNzljODgwMTU4OTMxYWVhY2Y1N2U3Yzlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00MTAsNiArNDEwLDI2IEBA
IGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgICAgICYm
ICFoYXNFeGl0U2l0ZShub2RlLCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAKKyNpZiBVU0UoQklH
SU5UMzIpCisgICAgYm9vbCBiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKE5vZGUq
IG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICBpZiAoIW5vZGUtPmNh
blNwZWN1bGF0ZUJpZ0ludDMyKHBhc3MpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoaGFzRXhpdFNpdGUobm9kZSwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJ
bnQzMihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAg
fQorCisgICAgYm9vbCB1bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoTm9kZSogbm9k
ZSwgUHJlZGljdGlvblBhc3MgcGFzcykKKyAgICB7CisgICAgICAgIGlmICghbm9kZS0+Y2FuU3Bl
Y3VsYXRlQmlnSW50MzIocGFzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChoYXNFeGl0U2l0ZShub2RlLCBCaWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVCaWdJbnQzMigpOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmlu
Z09iamVjdEFjY2Vzcyhjb25zdCBDb2RlT3JpZ2luJik7CiAKICAgICBib29sIGdldFJlZ0V4cFBy
b3RvdHlwZVByb3BlcnR5KEpTT2JqZWN0KiByZWdFeHBQcm90b3R5cGUsIFN0cnVjdHVyZSogcmVn
RXhwUHJvdG90eXBlU3RydWN0dXJlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKU1ZhbHVlJiBy
ZXR1cm5KU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggOWY5ODA5
NTNkMGYwNzU5ODA3NDhjOGE3MDFkNjRhMTMxNDgwN2ZiMS4uZWJlMDE1ODY2YmI3OTkxNGFkMjRh
OGJiYzY2ZGE5MWQ4Nzc1N2FmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAg
LTEyMDIsOSArMTIwMiwxOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX2ZsYWdz
ICYgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0OwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2
ZUJpZ0ludDMyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVCaWdJbnQzMlJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIG1heUhhdmVIZWFwQmlnSW50
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVIZWFw
QmlnSW50UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgbWF5SGF2ZUJpZ0ludFJlc3VsdCgpCiAg
ICAgewotICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0Owor
ICAgICAgICByZXR1cm4gbWF5SGF2ZUJpZ0ludDMyUmVzdWx0KCkgfHwgbWF5SGF2ZUhlYXBCaWdJ
bnRSZXN1bHQoKTsKICAgICB9CiAKICAgICBib29sIGhhc05ld0FycmF5QnVmZmVyRGF0YSgpCkBA
IC0yODY2LDYgKzI4NzYsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJu
IG5vZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFncygpLCBzb3VyY2UpOwogICAgIH0K
KworICAgIGJvb2wgY2FuU3BlY3VsYXRlQmlnSW50MzIoUmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ug
c291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVCaWdJbnQzMihh
cml0aE5vZGVGbGFncygpLCBzb3VyY2UpOworICAgIH0KICAgICAKICAgICBSYXJlQ2FzZVByb2Zp
bGluZ1NvdXJjZSBzb3VyY2VGb3IoUHJlZGljdGlvblBhc3MgcGFzcykKICAgICB7CkBAIC0yODg0
LDYgKzI4OTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gY2FuU3BlY3VsYXRl
SW50NTIoc291cmNlRm9yKHBhc3MpKTsKICAgICB9CiAKKyAgICBib29sIGNhblNwZWN1bGF0ZUJp
Z0ludDMyKFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICByZXR1cm4gY2FuU3Bl
Y3VsYXRlQmlnSW50MzIoc291cmNlRm9yKHBhc3MpKTsKKyAgICB9CisKICAgICBib29sIGhhc1R5
cGVMb2NhdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBQcm9maWxlVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAppbmRleCBhMDkxYzA5
OGQ1MDk1ZWUxMmQxOGI2ZDVmZTgzOTQxZjY2Y2Y0NzE3Li5kNmNlNmE2MGMxMzA1Nzg2ZTkxM2Ji
MzM3M2U0MjAwMzRjMzA2ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
RmxhZ3MuY3BwCkBAIC04OCw4ICs4OCwxMSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJl
YW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgIGlmIChmbGFncyAmIE5vZGVNYXlI
YXZlRG91YmxlUmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91Ymxl
UmVzdWx0Iik7CiAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCkKLSAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZUJpZ0ludFJlc3VsdCIpOworICAgIGlmIChm
bGFncyAmIE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heUhhdmVCaWdJbnQzMlJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVIZWFwQmlnSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlSGVh
cEJpZ0ludFJlc3VsdCIpOwogCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1lcmlj
UmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtZXJpY1Jlc3Vs
dCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKaW5kZXggYjBiYTZi
YjdlOGFmZjRmYjEyNjY3YjFmYzg5NzY2MmQ1ZWJmZDJkNi4uMmViZTM1NDRmNjAxMWRiZjVmYjFk
MTA2MmZhNGQxYTI4ZjBhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVG
bGFncy5oCkBAIC00MiwzNyArNDIsMzcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogI2RlZmluZSBOb2RlUmVzdWx0SW50NTIgICAgICAgICAgICAgICAgICAweDAwMDUKICNkZWZp
bmUgTm9kZVJlc3VsdEJvb2xlYW4gICAgICAgICAgICAgICAgMHgwMDA2CiAjZGVmaW5lIE5vZGVS
ZXN1bHRTdG9yYWdlICAgICAgICAgICAgICAgIDB4MDAwNwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKwogI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAw
eDAwMDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90
IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAg
ICAgICAgICAgICAgICAgMHgwMDEwCi0gICAgCi0jZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAg
ICAgICAgICAgICAgIDB4MDA3ZTAKKwogI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAg
ICAgICAgICAweDAwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAg
IDB4MDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDA4
MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAwMTAwCiAjZGVm
aW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDAyMDAKICNkZWZpbmUgTm9k
ZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwMDQwMAotI2RlZmluZSBOb2RlTWF5SGF2
ZU5vbk51bWVyaWNSZXN1bHQgICAgICAweDAwODAwCi0vLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUg
c2VwYXJhdGUgZmxhZ3MgZm9yIEhlYXBCaWdJbnQgYW5kIEJpZ0ludDMyLCBjdXJyZW50bHkgcHJl
ZGljdGlvbiBwcm9wYWdhdGlvbiB3aWxsIHBlc3NpbWl6ZSB0aGluZ3MuCi0jZGVmaW5lIE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0ICAgICAgICAgIDB4MDEwMDAKLSNkZWZpbmUgTm9kZU1heUhhdmVO
b25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhh
dmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sg
ICAgICAgIDB4M2UwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAw
eDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAv
LyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0
IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMu
Ci0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUg
cmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQg
b2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgMHgw
ODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBj
b250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChs
aWtlIHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAg
KE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5v
ZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAg
ICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3du
IHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVp
cmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4
ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRv
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVl
cywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQg
YWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlTWF5SGF2ZUJpZ0ludDMyUmVzdWx0ICAgICAgICAw
eDAwODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCAgICAgIDB4MDEwMDAK
KyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0ICAgICAgMHgwMjAwMAorI2RlZmlu
ZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1
bHQgfCBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGlu
ZSB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgfCBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUg
fCBOb2RlTWF5TmVnWmVyb0luREZHIHwgTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCB8IE5vZGVN
YXlIYXZlSGVhcEJpZ0ludFJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCkKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnQz
MlJlc3VsdCB8IE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCkKKworI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VCb3R0b20gICAgICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc051bWJlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9y
IGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05l
Z1plcm8gICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBi
ZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJl
ZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDQwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhp
cyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9u
Z2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBh
dm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVC
eXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBO
b2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
IHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBO
b2RlQnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KQogCiAj
ZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNr
IHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAg
ICAgICAgICAgICAgICAgMHg0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNl
LCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxl
IGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAg
MHg4MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAwMAorI2RlZmluZSBOb2Rl
TWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxh
ZzIgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAKIAogdHlwZWRlZiB1aW50MzJfdCBOb2RlRmxh
Z3M7CiAKQEAgLTE1OCw2ICsxNTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVj
dWxhdGVJbnQ1MihOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG5vZGVNYXlIYXZlSGVhcEJpZ0lu
dChOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmNlKQoreworICAgIHJldHVy
biAhIShmbGFncyAmIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlQmlnSW50MzIoTm9kZUZsYWdzIGZsYWdzLCBSYXJl
Q2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCit7CisgICAgLy8gV2UgYWx3YXlzIGF0dGVtcHQg
dG8gcHJvZHVjZSBCaWdJbnQzMiBhcyBtdWNoIGFzIHBvc3NpYmxlLiBJZiB3ZSBzZWUgSGVhcEJp
Z0ludCwgd2Ugb2JzZXJ2ZWQgb3ZlcmZsb3cuCisgICAgLy8gRklYTUU6IEV4dGVuZCB0aGlzIGlu
Zm9ybWF0aW9uIGJ5IHRpZXJlZCBwcm9maWxpbmcgKGZyb20gQmFzZWxpbmUsIERGRyBldGMuKS4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM5Cisg
ICAgcmV0dXJuICFub2RlTWF5SGF2ZUhlYXBCaWdJbnQoZmxhZ3MsIHNvdXJjZSk7Cit9CisKIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNjg5CiBzdGF0aWMgaW5saW5lIE5vZGVGbGFncyBjYW5vbmljYWxSZXN1
bHRSZXByZXNlbnRhdGlvbihOb2RlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDY2YjlkNjBhMzQwYTY4MmE4MmM4ZjQzYzU0YzZiMmY2MWU1MjFlZjguLmJiMjk2OGExNTQ2
NGFiZDdjZTc2MTU5OGJlNTIwZGM3YWY3ZDA5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0yMTAsNyArMjEwLDkgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmdPclN0cmluZ09i
amVjdFNwZWN1bGF0aW9uKGxlZnQpIHx8IGlzU3RyaW5nT3JTdHJpbmdPYmplY3RTcGVjdWxhdGlv
bihyaWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gbGVmdCBvciByaWdodCBpcyBkZWZp
bml0ZWx5IHNvbWV0aGluZyBvdGhlciB0aGFuIGEgbnVtYmVyLgogICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nKTsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxh
dGlvbihyaWdodCkpCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBoLmJpbmFyeUFy
aXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZSwgbV9wYXNzKSkKKyAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludDMyKTsKKyAgICAgICAg
ICAgICAgICBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3Bl
Y3VsYXRpb24ocmlnaHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJl
ZGljdGlvbihTcGVjQmlnSW50KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CkBAIC0y
NzgsNyArMjgwLDkgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY0ludDUyQW55KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5
cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaXNCaWdJbnRTcGVjdWxhdGlvbihsZWZ0KSAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKHJpZ2h0
KSkKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fZ3JhcGguYmluYXJ5QXJpdGhTaG91bGRT
cGVjdWxhdGVCaWdJbnQzMihub2RlLCBtX3Bhc3MpKQorICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50MzIpOworICAgICAgICAgICAgICAgIGVs
c2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihy
aWdodCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNw
ZWNCaWdJbnQpOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKQEAgLTMwNCw3ICszMDgs
OSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50
NTJBbnkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb24ocHJlZGljdGlvbikpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCaWdJbnRT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fZ3Jh
cGgudW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIG1fcGFzcykpCisgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQzMik7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNCaWdJbnRTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0Jp
Z0ludCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGNoYW5n
ZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwpAQCAtMzg2LDcgKzM5Miw5IEBA
IGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1MkFu
eSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlv
bnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wID09IFZhbHVl
TXVsICYmIGlzQmlnSW50U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihy
aWdodCkpCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBtX2dy
YXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZSwgbV9wYXNzKSkKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludDMy
KTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBpc0JpZ0ludFNw
ZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQogICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50KTsKICAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDdhMGEyNTBmY2MxNDEzYWU5MTBmYzk4OTFlYjQz
OTAzMjk5MjAxZGYuLmQyMDczMmQ2ZTdjMzhiNzk3MTAyODE3OTc5YWYwMWQ3OWU0ZDU2NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC00MDI2LDYgKzQwMjYsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRk
KE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwogCiAj
aWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhlciBCaWdJbnQz
MiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2luZHMgYXJlIEJpZ0ludFVzZTMyLCBidXQg
cmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGluZyBvdmVyZmxvdy4KKyAgICAvLyBMZXQn
cyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlv
biBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1NworICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAKICAgICBpZiAobm9kZS0+aXNCaW5hcnlV
c2VLaW5kKEJpZ0ludDMyVXNlKSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQg
bGVmdCh0aGlzLCBsZWZ0Q2hpbGQpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQg
cmlnaHQodGhpcywgcmlnaHRDaGlsZCk7CkBAIC00MDQwLDEwICs0MDQ0LDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LnVu
Ym94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5ib3hCaWdJ
bnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBzb21lIHdh
eSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93
LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3VsYXRpb25D
aGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNrKTsKIAog
ICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC00MTMwLDYgKzQxMzMsMTAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGls
ZCA9IG5vZGUtPmNoaWxkMigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJ
bnRyb2R1Y2UgYW5vdGhlciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2lu
ZHMgYXJlIEJpZ0ludFVzZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGlu
ZyBvdmVyZmxvdy4KKyAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBv
biByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50
MzIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1
NworICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAK
ICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CiAgICAgICAg
IFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIG5vZGUtPmNoaWxkMigp
KTsKQEAgLTQxNDQsMTAgKzQxNTEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFs
dWVTdWIoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihsZWZ0R1BSLCBy
ZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BSLCB0ZW1wR1BS
KTsKIAotICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0ZSB0aGUgb3Zl
cmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sgPSBtX2ppdC5i
cmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgdGVtcEdQUiwg
cmVzdWx0R1BSKTsKIAotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVl
UmVncygpLCAwLCBjaGVjayk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmlnSW50MzJPdmVy
ZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOwogCiAgICAgICAgIG1faml0LmJveEJpZ0lu
dDMyKHJlc3VsdEdQUik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
QEAgLTQ5NzcsNiArNDk4MywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVN
dWwoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdodENoaWxkID0gbm9kZS0+Y2hpbGQyKCk7CiAK
ICNpZiBVU0UoQklHSU5UMzIpCisgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0lu
dDMyIGNvZGUgZ2VuZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1
dCByZXN1bHQgaXMgU3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgIC8vIExl
dCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJhc2VkIG9uIHJlc3VsdCB0eXBlIGluZm9ybWF0
aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRCaWdJbnQzMi4KKyAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTU3CisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgIGlmIChub2RlLT5iaW5hcnlV
c2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKICAgICAgICAgLy8gRklYTUU6IHRoZSBjb2RlIGJl
dHdlZW4gY29tcGlsZVZhbHVlQWRkLCBjb21waWxlVmFsdWVTdWIgYW5kIGNvbXBpbGVWYWx1ZU11
bCBmb3IgQmlnSW50MzIgaXMgbmVhcmx5IGlkZW50aWNhbCwgc28gdHJ5IHRvIGdldCByaWQgb2Yg
dGhlIGR1cGxpY2F0aW9uLgogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgbGVmdCh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC00OTkyLDEwICs1MDAyLDkgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LnVuYm94
QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQz
MihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBzb21lIHdheSB0
byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBy
ZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNrKTsKIAogICAg
ICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC01MjA5LDYgKzUyMTgsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlVmFsdWVEaXYoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdodENoaWxkID0g
bm9kZS0+Y2hpbGQyKCk7CiAKICAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRoIGZvciBCaWdJ
bnQzMi4gQ3VycmVudGx5IHdlIGdvIHRocm91Z2ggdGhlIHNsb3cgcGF0aCwgYmVjYXVzZSBvZiBo
b3cgdWdseSB0aGUgY29kZSBmb3IgRGl2IGdldHMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MQogCiAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNl
S2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBsZWZ0
KHRoaXMsIGxlZnRDaGlsZCk7CkBAIC0xMDgwMiw3ICsxMDgxMiw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZUhlYXBCaWdJbnQoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKIAogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludChFZGdlIGVkZ2UpCiB7Ci0gICAg
aWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjQmlnSW50KSkKKyAgICBpZiAoIW5lZWRzVHlw
ZUNoZWNrKGVkZ2UsIFNwZWNIZWFwQmlnSW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1ODczMjY2NmVkOGE1NTlmNTEy
ZGRmYmI1MzlmZWM4MDBkODY3YmI2Li44NWIxOWU4ZWE1ZTU3NDZiZTViNWFkNTRhNjMyMDRiMTFi
NjI0YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC0yMTQzLDYgKzIxNDMsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1f
bm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgLy8g
RklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjogYmluYXJ5
IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUludCBhbmQg
YWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBt
b2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2Rl
UmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQo
QmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0JpZ0ludDMyKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93QmlnSW50MzIo
bV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTUxLDcgKzIxNTUsNyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94QmlnSW50MzIocmln
aHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5zcGVjdWxhdGVB
ZGQodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVzc1NwZWN1bGF0
aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOworICAg
ICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZsb3csIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUgYm94ZWRSZXN1
bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShib3hlZFJl
c3VsdCk7CkBAIC0yMTgxLDYgKzIxODUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAg
Ly8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjogYmlu
YXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUludCBh
bmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVz
ZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBO
b2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtp
bmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0JpZ0ludDMy
KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93QmlnSW50
MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTg5LDcgKzIxOTcsNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94QmlnSW50MzIo
cmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5zcGVjdWxh
dGVTdWIodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVzc1NwZWN1
bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwor
ICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZsb3csIG5v
VmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUgYm94ZWRS
ZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShib3hl
ZFJlc3VsdCk7CkBAIC0yMjE5LDYgKzIyMjcsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAgICAg
ICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjog
YmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUlu
dCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0
aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2lu
ZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVz
ZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0JpZ0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93Qmln
SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMjI3LDcgKzIyMzksNyBAQCBjbGFzcyBMb3dl
ckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94QmlnSW50
MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5zcGVj
dWxhdGVNdWwodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVzc1Nw
ZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4p
OworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZsb3cs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUgYm94
ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZShi
b3hlZFJlc3VsdCk7CkBAIC0yNjI3LDYgKzI2MzksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgLy8gRklYTUU6
IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVyZQorICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQxCiAgICAgICAgIGlmIChtX25vZGUt
PmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICAgICAgTFZhbHVlIGxl
ZnQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVl
IHJpZ2h0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNoaWxkMigpKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjk3ZTc1ZjI5ZWEyYTc1
MmYzOTI4NWRjZTYzMGQ1MzI0MTMxMjc1ZS4uODc2ZThmODQyMzY1ZGFlZjQ2NDU3M2ZiZTQzMjA2
MDEzYTExZWE4ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1
ZU11bCwgSW5jLCBEZWMgc2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbiBiYXNlZCBv
biBBcml0aFByb2ZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgIChhZGQpOgorICAgICAgICAobm9JbmxpbmUpOgorICAgICAg
ICAqIHN0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAoZGVjKToKKyAgICAgICAgKG5vSW5saW5lKToKKyAgICAgICAgKiBz
dHJlc3MvYmlnaW50MzItaW5jLW92ZXJmbG93LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJl
KToKKyAgICAgICAgKGluYyk6CisgICAgICAgIChub0lubGluZSk6CisgICAgICAgICogc3RyZXNz
L2JpZ2ludDMyLW11bC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6Cisg
ICAgICAgIChtdWwpOgorICAgICAgICAobm9JbmxpbmUpOgorICAgICAgICAqIHN0cmVzcy9iaWdp
bnQzMi1zdWItb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAg
ICAoc3ViKToKKyAgICAgICAgKG5vSW5saW5lKToKKwogMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBmYXN0IHBhdGggZm9y
IEJpZ0ludDMyIGxlZnQtc2hpZnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMy
LWFkZC1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MDkyN2EyZWEzYTAwNmFjYzFmNGJkZDM0MTcyNTNlODAwYmUxYWE3Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItYWRkLW92ZXJmbG93Lmpz
CkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBhZGQoYSwgYikgeworICAgIHJl
dHVybiBhICsgYjsKK30KK25vSW5saW5lKGFkZCk7CisKK3sKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShhZGQoQmlnSW50KGkpLCAybiksIEJp
Z0ludChpICsgMikpOworfQoreworICAgIGxldCBtYXggPSAweDdmZmZmZmZmbjsKKyAgICBsZXQg
cmVzdWx0ID0gMHg4MDAwMDAwMW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkKKyAgICAgICAgc2hvdWxkQmUoYWRkKG1heCwgMm4pLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzIGIvSlNUZXN0cy9zdHJl
c3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTViZDY5MmMyOGUyZGEx
ODlhOTgzYWI4NzI2ODE2NDZlMjRmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1
bmN0aW9uIGRlYyhhKSB7CisgICAgcmV0dXJuIC0tYTsKK30KK25vSW5saW5lKGRlYyk7CisKK3sK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShk
ZWMoQmlnSW50KGkpKSwgQmlnSW50KGkgLSAxKSk7Cit9Cit7CisgICAgbGV0IG1pbiA9IC0weDdm
ZmZmZmZmbiAtIDFuOworICAgIGxldCByZXN1bHQgPSAtMHg4MDAwMDAwMW47CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoZGVjKG1pbiksIHJl
c3VsdCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1pbmMtb3ZlcmZs
b3cuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1pbmMtb3ZlcmZsb3cuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTJmMWYyMDUxZDRmZjUzOWMxZjJkOGM5NThlNjY0NzY1YjM0ZjI1OQotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWluYy1vdmVyZmxvdy5qcwpAQCAtMCwwICsx
LDIwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gaW5jKGEpIHsKKyAgICByZXR1cm4gKythOworfQor
bm9JbmxpbmUoaW5jKTsKKworeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
CisgICAgICAgIHNob3VsZEJlKGluYyhCaWdJbnQoaSkpLCBCaWdJbnQoaSArIDEpKTsKK30KK3sK
KyAgICBsZXQgbWF4ID0gMHg3ZmZmZmZmZm47CisgICAgbGV0IHJlc3VsdCA9IDB4ODAwMDAwMDBu
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIHNob3VsZEJl
KGluYyhtYXgpLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50
MzItbXVsLW92ZXJmbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVsLW92ZXJmbG93
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZiZDRlMzliYTZiYTU4Y2YzYWU0NGZmODNmZmIyYjdjYzA5ZmM5OWEK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1tdWwtb3ZlcmZsb3cu
anMKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkg
eworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG11bChhLCBiKSB7CisgICAg
cmV0dXJuIGEgKiBiOworfQorbm9JbmxpbmUobXVsKTsKKworeworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKG11bChCaWdJbnQoaSksIDJuKSwg
QmlnSW50KGkgKiAyKSk7Cit9Cit7CisgICAgbGV0IG1heCA9IDB4N2ZmZmZmZmZuOworICAgIGxl
dCByZXN1bHQgPSAweGZmZmZmZmZlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKQorICAgICAgICBzaG91bGRCZShtdWwobWF4LCAybiksIHJlc3VsdCk7Cit9CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3N0
cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3N2EzYzU4ODVkMWFi
NzU0ZTgzNmNlYTdmN2I1NTc4MGZlM2FlZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2JpZ2ludDMyLXN1Yi1vdmVyZmxvdy5qcwpAQCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwor
ZnVuY3Rpb24gc3ViKGEsIGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9Citub0lubGluZShzdWIp
OworCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hv
dWxkQmUoc3ViKEJpZ0ludChpKSwgMm4pLCBCaWdJbnQoaSAtIDIpKTsKK30KK3sKKyAgICBsZXQg
bWluID0gLTB4N2ZmZmZmZmZuIC0gMW47CisgICAgbGV0IHJlc3VsdCA9IC0weDgwMDAwMDAybjsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShz
dWIobWluLCAybiksIHJlc3VsdCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397610</attachid>
            <date>2020-04-25 22:48:56 -0700</date>
            <delta_ts>2020-04-25 22:52:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211038-20200425224848.patch</filename>
            <type>text/plain</type>
            <size>47002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5lZTRhNWRmNjJmMWQyOTYx
MGQ1ODY4ZTRjMzEyNjU0ZjllYjYzYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMg
c2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbiBiYXNlZCBvbiBBcml0aFByb2ZpbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBwcm9maWxlIGZlZWRiYWNrIHRvIFZhbHVlQWRkLCBWYWx1ZVN1YiwgVmFsdWVNdWws
IEluYywgRGVjIHRvIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbi4KKworICAgICAgICBPdXIg
SGVhcEJpZ0ludCB2LnMuIEJpZ0ludDMyIHN0cmF0ZWd5IGlzIHNpbXBsZXIgdGhhbiBEb3VibGUg
di5zLiBJbnQzMiBzdHJhdGVneTogd2UgYWx3YXlzCisgICAgICAgIHByZWZlciBCaWdJbnQzMiBv
dmVyIEhlYXBCaWdJbnQuIFRoaXMgaXMgYmVjYXVzZSBIZWFwQmlnSW50IGNhbGN1bGF0aW9uIGFu
ZCBjb252ZXJzaW9uIHJlcXVpcmVzCisgICAgICAgIHNvIG11Y2ggaGlnaGVyIGNvc3QgdGhhbiBC
aWdJbnQzMi4gVGhpcyB0cmFkZW9mZiBpcyBsYXJnZWx5IGRpZmZlcmVudCBmcm9tIERvdWJsZSB2
LnMuIEludDMyLgorICAgICAgICBTbyBrZWVwaW5nIEhlYXBCaWdJbnQgaXMgc2ltcGx5IGluZWZm
aWNpZW50IGlmIHdlIGNhbiB1c2UgQmlnSW50MzIuCisKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IEFyaXRoUHJvZmlsZSdzIGZlZWRiYWNrIGlzIGFsc28gdmVyeSBzaW1wbGUuIElmIHdlIHNlZSBI
ZWFwQmlnSW50LCB0aGlzIG1lYW5zCisgICAgICAgIG92ZXJmbG93IGhhcHBlbnMuIEluIERGRywg
d2UgcHJvcGFnYXRlIHRoaXMgaW5mb3JtYXRpb24gdG8gVmFsdWVBZGQsIFZhbHVlU3ViLCBhbmQg
VmFsdWVNdWwgbm9kZXMKKyAgICAgICAgYW5kIHJlY29yZCBpdCBpbiBERkdOb2RlRmxhZ3MuIEFu
ZCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uLCB3ZSBjaGFuZ2UgdGhlIHByZWRpY3Rpb24gYW5k
CisgICAgICAgIHNwZWN1bGF0aW9uIGluIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGZpeHVw
IHBoYXNlLgorCisgICAgICAgIFdlIGNoYW5nZSBleGl0IHJlYXNvbiBmcm9tIG92ZXJmbG93aW5n
IGZyb20gT3ZlcmZsb3cgdG8gQmlnSW50MzJPdmVyZmxvdyBzaW5jZSBPdmVyZmxvdyBpcyBzb2xl
bHkKKyAgICAgICAgdXNlZCBmb3IgSW50MzIgY2FzZSwgYW5kIHdlIGhhdmUgSW50NTJPdmVyZmxv
dyBmb3IgSW50NTIgY2FzZS4gV2Ugc2hvdWxkIGhhdmUgQmlnSW50MzJPdmVyZmxvdyBmb3IgQmln
SW50MzIKKyAgICAgICAgdG8gcHJlY2lzZWx5IHJlY29yZCBhbmQgdGVsbCB0ZWxsIGFib3V0IHdo
YXQgaGFwcGVucyBpbiBERkcgYXMgYSBmZWVkYmFjayBmb3IgdGhlIG5leHQgY29tcGlsYXRpb24u
CisKKyAgICAgICAgV2UgYWRkIEJpZ0ludDMyIHNwZWN1bGF0aW9uIGZvciBWYWx1ZVN1Yi4gUHJl
dmlvdXNseSwgd2UgbWlzc2VkIHRoYXQgaW4gZml4dXAgcGhhc2UgYW5kIHdlIGFsd2F5cworICAg
ICAgICBzcGVjdWxhdGUgVmFsdWVTdWIgd2l0aCBBbnlCaWdJbnRVc2Ugb3IgSGVhcEJpZ0ludFVz
ZS4gTm90IGl0IGNhbiB1c2UgQmlnSW50MzJVc2UuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW5j
IC8gRGVjJ3MgZml4dXAgcGhhc2UgdG8gdXNlIEJpZ0ludCBwYXRoLiBQcmV2aW91c2x5LCBpdCB3
YXMgYWx3YXlzIHVzaW5nIFVudHlwZWRVc2Ugc2luY2UKKyAgICAgICAgbm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKCkgcmV0dXJucyB0cnVlIGZvciBC
aWdJbnQuIFdlIGZpeCB0aGUgb3JkZXJpbmcgb2YKKyAgICAgICAgc3BlY3VsYXRpb24gYXR0ZW1w
dHMgYXMgaXQgaXMgZG9uZSBpbiB0aGUgb3RoZXIgcGxhY2VzIGluIGZpeHVwIHBoYXNlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggb2ZmZXJzIDcuOSUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4g
c3Vuc3BpZGVyLXNoYTEtYmlnLWludC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAgICAgICAgICBQYXRjaGVkCisKKyAgICAg
ICAgICAgIHN1bnNwaWRlci1zaGExLWJpZy1pbnQgICAgICAxMzQuNTY2OCstMi44Njk1ICAgICBe
ICAgIDEyNC42NzQzKy0wLjc1NDEgICAgICAgIF4gZGVmaW5pdGVseSAxLjA3OTN4IGZhc3Rlcgor
CisgICAgICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2lu
ZFRvU3RyaW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtl
U2FmZSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VEaXZTYWZlKToK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6YmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQz
Mik6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpt
YXlIYXZlQmlnSW50MzJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVI
ZWFwQmlnSW50UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlQmlnSW50
UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjYW5TcGVjdWxhdGVCaWdJbnQzMik6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6Y2FuU3BlY3VsYXRlSW50NTIpOgorICAgICAgICAq
IGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmR1bXBOb2RlRmxhZ3Mp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuaDoKKyAgICAgICAgKEpTQzo6REZHOjpub2Rl
TWF5SGF2ZUhlYXBCaWdJbnQpOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVDYW5TcGVjdWxhdGVC
aWdJbnQzMik6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVIZWFwQmlnSW50KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlRGl2KToKKwogMjAyMC0wNC0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBEZWFsIHdpdGggYW5vdGhlciByb3VuZCBvZiBYY29kZSB1cGdyYWRl
IGNoZWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5k
ZXggZmYyNzYxNmM0Yzg5MTA4Y2I1MjBhOWFiZDVjZDRjYzAwZGRlZDNlMi4uMjM0NjA1MmMwMTg2
NzlmNWZjZjI0YjNkMGRlNWU5N2FkMGI1MzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC04OCw2ICs4OCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRL
aW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJFeGNlcHRpb25DaGVj
ayI7CiAgICAgY2FzZSBHZW5lcmljVW53aW5kOgogICAgICAgICByZXR1cm4gIkdlbmVyaWNVbndp
bmQiOworICAgIGNhc2UgQmlnSW50MzJPdmVyZmxvdzoKKyAgICAgICAgcmV0dXJuICJCaWdJbnQz
Mk92ZXJmbG93IjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gIlVua25vd24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuaAppbmRleCA5MTA1ZGFjYTVkODFkM2VlMTczYTlkMTVlYWNhMWRjZWY4OWQ1MDY5Li42MTFk
NDdhZjQ1OWYyOTJjNDE1MDZjNzZmY2ZiM2Q0MWVkODA0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtNTUsNiArNTUsNyBAQCBlbnVtIEV4aXRLaW5k
IDogdWludDhfdCB7CiAgICAgRGVidWdnZXJFdmVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2Ug
bmVlZCB0byBzZXJ2aWNlIHRoZSBkZWJ1Z2dlci4KICAgICBFeGNlcHRpb25DaGVjaywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYSBkaXJlY3QgZXhjZXB0aW9uIGNoZWNrIHNob3dlZCB0aGF0IHdlIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmcm9tIGEgQyBjYWxsLgogICAgIEdlbmVyaWNVbndpbmQsIC8vIFdl
IGV4aXRlZCBiZWNhdXNlIHdlIGFycml2ZWQgYXQgdGhpcyBPU1IgZXhpdCBmcm9tIGdlbmVyaWNV
bndpbmQuCisgICAgQmlnSW50MzJPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2YgYW4g
QmlnSW50MzIgb3ZlcmZsb3cuCiB9OwogCiBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4
aXRLaW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKaW5kZXggOWUzNTcxZmI5OWYxMjE2NzU1ZjE5Yzg0YzhiYmJjMWMyMDEzNjkyNi4uOWY2
M2Q4NDdkOTMyOTY0YmRiNWUyM2IyMjlkOWQ2NTg5NTczNTRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTEwMCw3ICsxMDAsMTIg
QEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2wKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQgdGhhdCBpcyBhbGxvY2F0ZWQg
b24gdGhlIGhlYXAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIHNtYWxsIEJpZ0ludCB0aGF0IGlzIGlubGluZSB0aGUgSlNWYWx1ZQorI2lmIFVTRShCSUdJ
TlQzMikKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCaWdJbnQzMiB8IFNwZWNIZWFwQmlnSW50OworI2Vs
c2UKKy8vIFdlIHNob3VsZCBub3QgaW5jbHVkZSBTcGVjQmlnSW50MzIuIFdlIGFyZSB1c2luZyBT
cGVjQmlnSW50IGluIHZhcmlvdXMgcGxhY2VzIGxpa2UgcHJlZGljdGlvbi4gSWYgdGhpcyBpbmNs
dWRlcyBTcGVjQmlnSW50MzIsIGZpeHVwIHBoYXNlIGlzIGNvbmZ1c2VkIGlmICFVU0UoQklHSU5U
MzIpIHNpbmNlIGl0IGlzIG5vdCB1c2luZyBBbnlCaWdJbnRVc2UuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjSGVhcEJpZ0ludDsKKyNlbmRpZgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRGF0YVZpZXdPYmplY3QgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNEYXRhVmlldy4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBT
cGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2MgfCBTcGVjQmlnSW50OyAv
LyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxP
YmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBT
cGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmpl
Y3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKaW5kZXggNjEwMWE3OTdjMDI0OTQ4MDE2ZjY1ZDA3MWZhZGFkZjkzZmIyYjk1Yy4uYmZjMTZk
OWRhMjllMDg1YTgzYTA4OTk2NTMyODY1NjVmNDU1NTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtNzY2LDggKzc2NiwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBub2RlLT5iaW5hcnlV
c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQoKTsKQEAg
LTEwNTYsOCArMTA1OCwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDE5MzdmZTQ3
YmUxMGQwNTIwMjZlYjNjNmQ1ZTIzZjVhYzZhYTk4YS4uMjA1NDRjY2Q3MzBlMWMxYjRiNjhmYmVj
NmZhMTk2OTJmZWNhYjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBjbGFzcyBCeXRlQ29kZVBh
cnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJs
ZVJlc3VsdCk7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZU5vbk51bWVyaWMo
KSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJp
Y1Jlc3VsdCk7Ci0gICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUJpZ0ludCgpKQot
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQp
OworICAgICAgICAgICAgaWYgKG9ic2VydmVkLmRpZE9ic2VydmVCaWdJbnQzMigpKQorICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCk7Cisg
ICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJ
bnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIFZhbHVlTXVsOgpAQCAtMTAzMCw4ICsxMDMyLDEwIEBAIGNsYXNzIEJ5dGVDb2Rl
UGFyc2VyIHsKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25O
dW1lcmljKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5v
bk51bWVyaWNSZXN1bHQpOwotICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZUJpZ0ludCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnRSZXN1bHQpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUJp
Z0ludDMyKCkpCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJp
Z0ludDMyUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVI
ZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKQEAgLTEwNDksOCAr
MTA1MywxMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwogICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWVyaWMoKSkKICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCk7Ci0gICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCk7CisgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpOworICAgICAgICAg
ICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGluZVN0
YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJbnQz
Mk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZl
SGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0x
MDk5LDggKzExMDUsMTEgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8IE5vZGVNYXlOZWdaZXJv
SW5CYXNlbGluZSk7CiAKICAgICAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZUZv
ckJ5dGVjb2RlSW5kZXgobV9jdXJyZW50SW5kZXgpOwotICAgICAgICBpZiAoYXJpdGhQcm9maWxl
LT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0KTsKKworICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNl
cnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnQzMlJlc3VsdCk7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVIZWFw
QmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAKICAgICAgICAgcmV0dXJuIG5v
ZGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggOWZmYjBlMWNkMjdiNTQ0ODZmOTU1MjQwNWYyOTUyNmQyYjhmMWRhNS4uZjU4NTA1Yjdh
MTMzNmU1NGJhMDcyZDBjNmY0YTU3MmNiOTMyNDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODgsNiArMTg4LDQyIEBAIGNsYXNzIEZpeHVw
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogCiAgICAgICAgIGNhc2UgSW5jOgogICAgICAgICBjYXNl
IERlYzogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlSGVhcEJpZ0ludCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBtaWdodCBvcHRpbWl6ZSBpbmMvZGVjIHRvIGEg
c3BlY2lhbGl6ZWQgZnVuY3Rpb24gY2FsbCBpbnN0ZWFkIGluIHRoYXQgY2FzZS4KKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7
CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9u
U2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50
LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25z
dGFudE9uZS5nZXQoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0
Q2hpbGQyKEVkZ2Uobm9kZUNvbnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVk
Z2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICBm
aXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gSGVhcEJpZ0ludHMgYXJlIGNlbGxzLCBzbyB0aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0
SlMgaXMgZ29vZCBoZXJlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5h
cnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1
Yik7CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNCaWdJbnQzMiwgSlNDb25zdGFu
dCwgbm9kZS0+b3JpZ2luLCBPcEluZm8obV9ncmFwaC5mcmVlemUoanNCaWdJbnQzMigxKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0Q2hpbGQyKEVkZ2Uobm9kZUNv
bnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVmYXVsdCBvZiBO
b2RlUmVzdWx0SlMgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNt
YWxsIEJpZ0ludHMgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBkb2Vz
IG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkgdm0p
LCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1bmN0
aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgICAgbm9kZS0+c2V0
T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7CisgICAgICAgICAgICAgICAgTm9k
ZSogbm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5C
bG9jaywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dy
YXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxk
cmVuLnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOworICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgZml4
RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAvLyBU
aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCisjZW5kaWYgLy8gVVNFKEJJ
R0lOVDMyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1l
dGljKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIwMiwzNCArMjM4LDYgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEludDMyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZUhlYXBCaWdJbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCi0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIG1pZ2h0IG9wdGltaXplIGluYy9kZWMgdG8gYSBzcGVj
aWFsaXplZCBmdW5jdGlvbiBjYWxsIGluc3RlYWQgaW4gdGhhdCBjYXNlLgotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IFZhbHVlQWRkIDogVmFsdWVTdWIpOwotICAgICAg
ICAgICAgICAgIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9p
bmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9w
SW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25zdGFudE9uZS5nZXQoKSkpKTsK
LSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZHJlbi5zZXRDaGlsZDIoRWRnZShub2RlQ29uc3Rh
bnRPbmUpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBIZWFwQmlnSW50cyBhcmUgY2VsbHMsIHNvIHRo
ZSBkZWZhdWx0IG9mIE5vZGVSZXN1bHRKUyBpcyBnb29kIGhlcmUKLSNpZiBVU0UoQklHSU5UMzIp
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFs
dWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAgbm9kZUNvbnN0YW50T25lID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3BlY0JpZ0ludDMyLCBKU0Nv
bnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEp
KSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuLnNldENoaWxkMihFZGdlKG5vZGVD
b25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5j
aGlsZDIoKSk7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgb2YgTm9kZVJlc3VsdEpT
IGlzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGNvbnNp
ZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNtYWxsIEJpZ0ludHMgaW5z
dGVhZC4KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBk
b2VzIG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkg
dm0pLCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1
bmN0aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCi0gICAgICAgICAgICAgICAgbm9kZS0+
c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAg
bm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
aywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBo
LmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVk
Z2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RWRn
ZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCi0jZW5kaWYgLy8gVVNFKEJJR0lO
VDMyKQogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3Vs
YXRlSW50NTIoKSkgewogICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IEFy
aXRoQWRkIDogQXJpdGhTdWIpOwogICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShB
cml0aDo6Q2hlY2tPdmVyZmxvdyk7CkBAIC0yNjIsMTAgKzI3MCwxNiBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50
MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJV
c2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4oY2hpbGQy
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
aWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIubm9k
ZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDEpOwog
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDIpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICNl
bmRpZgogCkBAIC0zMTEsNyArMzI1LDE2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdl
bmVyYXRlKTsKKyAgICAgICAgICAgICAgICAvLyBTaGlmdCBjYW4gdGhyb3cgUmFuZ2VFcnJvci4K
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIFZhbHVlQml0WG9yOgorICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKKyAgICAg
ICAgICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgorICAgICAgICAgICAgICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAK
QEAgLTUxMyw3ICs1MzYsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KGNoaWxkMSk7CiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihjaGlsZDIpOwogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoY2hp
bGQxLm5vZGUoKSwgY2hpbGQyLm5vZGUoKSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykp
IHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihjaGlsZDEpOwogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIu
bm9kZSgpKSkgewpAQCAtNjA2LDcgKzYyOSw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogCiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50KGxl
ZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkgewogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobGVmdENo
aWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1f
Z3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBGaXh1cFBhc3Mp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
SGVhcEJpZ0ludChsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAyOGJmMTUyMDQxZDMzODYzNzZhNjZkY2Ji
MWJlOTU1YjliM2Y0NDU5Li4zNjlmZDkxMjEzYzM4MzRhNzljODgwMTU4OTMxYWVhY2Y1N2U3Yzlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00MTAsNiArNDEwLDI2IEBA
IGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgICAgICYm
ICFoYXNFeGl0U2l0ZShub2RlLCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAKKyNpZiBVU0UoQklH
SU5UMzIpCisgICAgYm9vbCBiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKE5vZGUq
IG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICBpZiAoIW5vZGUtPmNh
blNwZWN1bGF0ZUJpZ0ludDMyKHBhc3MpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoaGFzRXhpdFNpdGUobm9kZSwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJ
bnQzMihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAg
fQorCisgICAgYm9vbCB1bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoTm9kZSogbm9k
ZSwgUHJlZGljdGlvblBhc3MgcGFzcykKKyAgICB7CisgICAgICAgIGlmICghbm9kZS0+Y2FuU3Bl
Y3VsYXRlQmlnSW50MzIocGFzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChoYXNFeGl0U2l0ZShub2RlLCBCaWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVCaWdJbnQzMigpOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmlu
Z09iamVjdEFjY2Vzcyhjb25zdCBDb2RlT3JpZ2luJik7CiAKICAgICBib29sIGdldFJlZ0V4cFBy
b3RvdHlwZVByb3BlcnR5KEpTT2JqZWN0KiByZWdFeHBQcm90b3R5cGUsIFN0cnVjdHVyZSogcmVn
RXhwUHJvdG90eXBlU3RydWN0dXJlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKU1ZhbHVlJiBy
ZXR1cm5KU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggOWY5ODA5
NTNkMGYwNzU5ODA3NDhjOGE3MDFkNjRhMTMxNDgwN2ZiMS4uZWJlMDE1ODY2YmI3OTkxNGFkMjRh
OGJiYzY2ZGE5MWQ4Nzc1N2FmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAg
LTEyMDIsOSArMTIwMiwxOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX2ZsYWdz
ICYgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0OwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2
ZUJpZ0ludDMyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVCaWdJbnQzMlJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIG1heUhhdmVIZWFwQmlnSW50
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVIZWFw
QmlnSW50UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgbWF5SGF2ZUJpZ0ludFJlc3VsdCgpCiAg
ICAgewotICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0Owor
ICAgICAgICByZXR1cm4gbWF5SGF2ZUJpZ0ludDMyUmVzdWx0KCkgfHwgbWF5SGF2ZUhlYXBCaWdJ
bnRSZXN1bHQoKTsKICAgICB9CiAKICAgICBib29sIGhhc05ld0FycmF5QnVmZmVyRGF0YSgpCkBA
IC0yODY2LDYgKzI4NzYsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJu
IG5vZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFncygpLCBzb3VyY2UpOwogICAgIH0K
KworICAgIGJvb2wgY2FuU3BlY3VsYXRlQmlnSW50MzIoUmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ug
c291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVCaWdJbnQzMihh
cml0aE5vZGVGbGFncygpLCBzb3VyY2UpOworICAgIH0KICAgICAKICAgICBSYXJlQ2FzZVByb2Zp
bGluZ1NvdXJjZSBzb3VyY2VGb3IoUHJlZGljdGlvblBhc3MgcGFzcykKICAgICB7CkBAIC0yODg0
LDYgKzI4OTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gY2FuU3BlY3VsYXRl
SW50NTIoc291cmNlRm9yKHBhc3MpKTsKICAgICB9CiAKKyAgICBib29sIGNhblNwZWN1bGF0ZUJp
Z0ludDMyKFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICByZXR1cm4gY2FuU3Bl
Y3VsYXRlQmlnSW50MzIoc291cmNlRm9yKHBhc3MpKTsKKyAgICB9CisKICAgICBib29sIGhhc1R5
cGVMb2NhdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBQcm9maWxlVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAppbmRleCBhMDkxYzA5
OGQ1MDk1ZWUxMmQxOGI2ZDVmZTgzOTQxZjY2Y2Y0NzE3Li5kNmNlNmE2MGMxMzA1Nzg2ZTkxM2Ji
MzM3M2U0MjAwMzRjMzA2ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
RmxhZ3MuY3BwCkBAIC04OCw4ICs4OCwxMSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJl
YW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgIGlmIChmbGFncyAmIE5vZGVNYXlI
YXZlRG91YmxlUmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91Ymxl
UmVzdWx0Iik7CiAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCkKLSAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZUJpZ0ludFJlc3VsdCIpOworICAgIGlmIChm
bGFncyAmIE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heUhhdmVCaWdJbnQzMlJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVIZWFwQmlnSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlSGVh
cEJpZ0ludFJlc3VsdCIpOwogCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1lcmlj
UmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtZXJpY1Jlc3Vs
dCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKaW5kZXggYjBiYTZi
YjdlOGFmZjRmYjEyNjY3YjFmYzg5NzY2MmQ1ZWJmZDJkNi4uMmViZTM1NDRmNjAxMWRiZjVmYjFk
MTA2MmZhNGQxYTI4ZjBhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVG
bGFncy5oCkBAIC00MiwzNyArNDIsMzcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogI2RlZmluZSBOb2RlUmVzdWx0SW50NTIgICAgICAgICAgICAgICAgICAweDAwMDUKICNkZWZp
bmUgTm9kZVJlc3VsdEJvb2xlYW4gICAgICAgICAgICAgICAgMHgwMDA2CiAjZGVmaW5lIE5vZGVS
ZXN1bHRTdG9yYWdlICAgICAgICAgICAgICAgIDB4MDAwNwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKwogI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAw
eDAwMDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90
IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAg
ICAgICAgICAgICAgICAgMHgwMDEwCi0gICAgCi0jZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAg
ICAgICAgICAgICAgIDB4MDA3ZTAKKwogI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAg
ICAgICAgICAweDAwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAg
IDB4MDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDA4
MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAwMTAwCiAjZGVm
aW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDAyMDAKICNkZWZpbmUgTm9k
ZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwMDQwMAotI2RlZmluZSBOb2RlTWF5SGF2
ZU5vbk51bWVyaWNSZXN1bHQgICAgICAweDAwODAwCi0vLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUg
c2VwYXJhdGUgZmxhZ3MgZm9yIEhlYXBCaWdJbnQgYW5kIEJpZ0ludDMyLCBjdXJyZW50bHkgcHJl
ZGljdGlvbiBwcm9wYWdhdGlvbiB3aWxsIHBlc3NpbWl6ZSB0aGluZ3MuCi0jZGVmaW5lIE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0ICAgICAgICAgIDB4MDEwMDAKLSNkZWZpbmUgTm9kZU1heUhhdmVO
b25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhh
dmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sg
ICAgICAgIDB4M2UwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAw
eDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAv
LyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0
IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMu
Ci0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUg
cmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQg
b2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgMHgw
ODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBj
b250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChs
aWtlIHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAg
KE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5v
ZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAg
ICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3du
IHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVp
cmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4
ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRv
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVl
cywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQg
YWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlTWF5SGF2ZUJpZ0ludDMyUmVzdWx0ICAgICAgICAw
eDAwODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCAgICAgIDB4MDEwMDAK
KyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0ICAgICAgMHgwMjAwMAorI2RlZmlu
ZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1
bHQgfCBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGlu
ZSB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgfCBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUg
fCBOb2RlTWF5TmVnWmVyb0luREZHIHwgTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCB8IE5vZGVN
YXlIYXZlSGVhcEJpZ0ludFJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCkKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnQz
MlJlc3VsdCB8IE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCkKKworI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VCb3R0b20gICAgICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc051bWJlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9y
IGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05l
Z1plcm8gICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBi
ZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJl
ZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDQwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhp
cyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9u
Z2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBh
dm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVC
eXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBO
b2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
IHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBO
b2RlQnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KQogCiAj
ZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNr
IHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAg
ICAgICAgICAgICAgICAgMHg0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNl
LCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxl
IGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAg
MHg4MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAwMAorI2RlZmluZSBOb2Rl
TWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxh
ZzIgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAKIAogdHlwZWRlZiB1aW50MzJfdCBOb2RlRmxh
Z3M7CiAKQEAgLTE1OCw2ICsxNTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVj
dWxhdGVJbnQ1MihOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG5vZGVNYXlIYXZlSGVhcEJpZ0lu
dChOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmNlKQoreworICAgIHJldHVy
biAhIShmbGFncyAmIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlQmlnSW50MzIoTm9kZUZsYWdzIGZsYWdzLCBSYXJl
Q2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCit7CisgICAgLy8gV2UgYWx3YXlzIGF0dGVtcHQg
dG8gcHJvZHVjZSBCaWdJbnQzMiBhcyBtdWNoIGFzIHBvc3NpYmxlLiBJZiB3ZSBzZWUgSGVhcEJp
Z0ludCwgd2Ugb2JzZXJ2ZWQgb3ZlcmZsb3cuCisgICAgLy8gRklYTUU6IEV4dGVuZCB0aGlzIGlu
Zm9ybWF0aW9uIGJ5IHRpZXJlZCBwcm9maWxpbmcgKGZyb20gQmFzZWxpbmUsIERGRyBldGMuKS4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM5Cisg
ICAgcmV0dXJuICFub2RlTWF5SGF2ZUhlYXBCaWdJbnQoZmxhZ3MsIHNvdXJjZSk7Cit9CisKIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNjg5CiBzdGF0aWMgaW5saW5lIE5vZGVGbGFncyBjYW5vbmljYWxSZXN1
bHRSZXByZXNlbnRhdGlvbihOb2RlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDY2YjlkNjBhMzQwYTY4MmE4MmM4ZjQzYzU0YzZiMmY2MWU1MjFlZjguLjBhYmRiNWI1MmQy
Mzc5OWE4YTNiNzlkNzAyYWViNDM2MDA5MzlmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0yMTAsNyArMjEwLDEyIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTdHJpbmdP
YmplY3RTcGVjdWxhdGlvbihsZWZ0KSB8fCBpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRp
b24ocmlnaHQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVm
aW5pdGVseSBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3Vs
YXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJp
Z0ludDMyKG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQzMik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNl
IGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmln
aHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
QmlnSW50KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CkBAIC0yNzgsNyArMjgzLDEy
IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1
MkFueSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50
U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCisgICAgICAg
ICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBlbHNlIGlmICht
X2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZSwgbV9wYXNzKSkK
KyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0lu
dDMyKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRp
b24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQpOwogICAgICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5KTsKQEAgLTMwNCw3ICszMTQsMTIgQEAgY2xhc3MgUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyQW55KTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9uKHByZWRpY3Rpb24pKTsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24ocHJlZGljdGlvbikp
CisgICAgICAgICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChtX2dyYXBoLnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBt
X3Bhc3MpKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihT
cGVjQmlnSW50MzIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNCaWdJbnRT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkp
OwpAQCAtMzg2LDcgKzQwMSwxMiBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjSW50NTJBbnkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVk
RG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYm
IGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0Uo
QklHSU5UMzIpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3AgPT0gVmFsdWVNdWwgJiYgbV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIG1fcGFzcykpCisg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQz
Mik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBp
c0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQog
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDdhMGEyNTBmY2MxNDEzYWU5MTBm
Yzk4OTFlYjQzOTAzMjk5MjAxZGYuLmQyMDczMmQ2ZTdjMzhiNzk3MTAyODE3OTc5YWYwMWQ3OWU0
ZDU2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC00MDI2LDYgKzQwMjYsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxk
MigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhl
ciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2luZHMgYXJlIEJpZ0ludFVz
ZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGluZyBvdmVyZmxvdy4KKyAg
ICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBp
bmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1NworICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAKICAgICBpZiAobm9kZS0+
aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgbGVmdCh0aGlzLCBsZWZ0Q2hpbGQpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgcmlnaHQodGhpcywgcmlnaHRDaGlsZCk7CkBAIC00MDQwLDEwICs0MDQ0LDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgICAg
IG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQu
dW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFk
ZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6
Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNo
ZWNrKTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC00MTMwLDYgKzQxMzMsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYg
cmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8v
IEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhlciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFy
eSB1c2Uga2luZHMgYXJlIEJpZ0ludFVzZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5k
IGFjY2VwdGluZyBvdmVyZmxvdy4KKyAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2Rl
cyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVz
dWx0QmlnSW50MzIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDk1NworICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTEwNDAKICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7
CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIG5vZGUt
PmNoaWxkMigpKTsKQEAgLTQxNDQsMTAgKzQxNTEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVTdWIoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihs
ZWZ0R1BSLCByZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BS
LCB0ZW1wR1BSKTsKIAotICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0
ZSB0aGUgb3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sg
PSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwg
dGVtcEdQUiwgcmVzdWx0R1BSKTsKIAotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLCBjaGVjayk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmln
SW50MzJPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOwogCiAgICAgICAgIG1faml0
LmJveEJpZ0ludDMyKHJlc3VsdEdQUik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKQEAgLTQ5NzcsNiArNDk4MywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlVmFsdWVNdWwoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdodENoaWxkID0gbm9kZS0+Y2hp
bGQyKCk7CiAKICNpZiBVU0UoQklHSU5UMzIpCisgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90
aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50
VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93Lgor
ICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJhc2VkIG9uIHJlc3VsdCB0eXBl
IGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRCaWdJbnQzMi4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTU3CisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgIGlmIChub2Rl
LT5iaW5hcnlVc2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKICAgICAgICAgLy8gRklYTUU6IHRo
ZSBjb2RlIGJldHdlZW4gY29tcGlsZVZhbHVlQWRkLCBjb21waWxlVmFsdWVTdWIgYW5kIGNvbXBp
bGVWYWx1ZU11bCBmb3IgQmlnSW50MzIgaXMgbmVhcmx5IGlkZW50aWNhbCwgc28gdHJ5IHRvIGdl
dCByaWQgb2YgdGhlIGR1cGxpY2F0aW9uLgogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJh
bmQgbGVmdCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC00OTkyLDEwICs1MDAyLDkgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBz
b21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92
ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNr
KTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1Zh
bHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC01MjA5LDYgKzUyMTgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdo
dENoaWxkID0gbm9kZS0+Y2hpbGQyKCk7CiAKICAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRo
IGZvciBCaWdJbnQzMi4gQ3VycmVudGx5IHdlIGdvIHRocm91Z2ggdGhlIHNsb3cgcGF0aCwgYmVj
YXVzZSBvZiBob3cgdWdseSB0aGUgY29kZSBmb3IgRGl2IGdldHMuCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MQogCiAgICAgaWYgKG5vZGUtPmlz
QmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBsZWZ0KHRoaXMsIGxlZnRDaGlsZCk7CkBAIC0xMDgwMiw3ICsxMDgxMiw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUhlYXBCaWdJbnQoRWRnZSBlZGdlLCBHUFJSZWcgY2Vs
bCkKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludChFZGdlIGVkZ2Up
CiB7Ci0gICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjQmlnSW50KSkKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNIZWFwQmlnSW50KSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1ODczMjY2NmVk
OGE1NTlmNTEyZGRmYmI1MzlmZWM4MDBkODY3YmI2Li44NWIxOWU4ZWE1ZTU3NDZiZTViNWFkNTRh
NjMyMDRiMTFiNjI0YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCkBAIC0yMTQzLDYgKzIxNDMsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAg
ICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlv
bjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0Fu
eUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlz
aCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1
Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFy
eVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0Jp
Z0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93
QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTUxLDcgKzIxNTUsNyBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94Qmln
SW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5z
cGVjdWxhdGVBZGQodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVz
c1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmln
aW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZs
b3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUg
Ym94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1
ZShib3hlZFJlc3VsdCk7CkBAIC0yMTgxLDYgKzIxODUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFs
T2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJh
dGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3Bl
Y0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5n
dWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRy
b2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxv
d0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0g
bG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTg5LDcgKzIxOTcsNyBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94
QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291
dC5zcGVjdWxhdGVTdWIodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBi
bGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
cmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3Zl
cmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFs
dWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNW
YWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yMjE5LDYgKzIyMjcsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQz
MikKKyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2Vu
ZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMg
U3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0
aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBp
bnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5p
c0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9
IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0
ID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMjI3LDcgKzIyMzksNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVu
Ym94QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBt
X291dC5zcGVjdWxhdGVNdWwodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAg
ICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwg
bV9vcmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMy
T3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBM
VmFsdWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0
SlNWYWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yNjI3LDYgKzI2MzksNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAg
Ly8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVyZQorICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQxCiAgICAgICAgIGlm
IChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICAgICAg
TFZhbHVlIGxlZnQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgTFZhbHVlIHJpZ2h0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNoaWxkMigpKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjk3ZTc1
ZjI5ZWEyYTc1MmYzOTI4NWRjZTYzMGQ1MzI0MTMxMjc1ZS4uODc2ZThmODQyMzY1ZGFlZjQ2NDU3
M2ZiZTQzMjA2MDEzYTExZWE4ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVl
U3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMgc2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlv
biBiYXNlZCBvbiBBcml0aFByb2ZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChhZGQpOgorICAgICAgICAobm9JbmxpbmUp
OgorICAgICAgICAqIHN0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZGVjKToKKyAgICAgICAgKG5vSW5saW5lKToKKyAg
ICAgICAgKiBzdHJlc3MvYmlnaW50MzItaW5jLW92ZXJmbG93LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKGluYyk6CisgICAgICAgIChub0lubGluZSk6CisgICAgICAg
ICogc3RyZXNzL2JpZ2ludDMyLW11bC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChtdWwpOgorICAgICAgICAobm9JbmxpbmUpOgorICAgICAgICAqIHN0
cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoc3ViKToKKyAgICAgICAgKG5vSW5saW5lKToKKwogMjAyMC0wNC0yNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBmYXN0
IHBhdGggZm9yIEJpZ0ludDMyIGxlZnQtc2hpZnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWFkZC1v
dmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDkyN2EyZWEzYTAwNmFjYzFmNGJkZDM0MTcyNTNlODAw
YmUxYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItYWRkLW92
ZXJmbG93LmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBhZGQoYSwgYikg
eworICAgIHJldHVybiBhICsgYjsKK30KK25vSW5saW5lKGFkZCk7CisKK3sKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShhZGQoQmlnSW50KGkp
LCAybiksIEJpZ0ludChpICsgMikpOworfQoreworICAgIGxldCBtYXggPSAweDdmZmZmZmZmbjsK
KyAgICBsZXQgcmVzdWx0ID0gMHg4MDAwMDAwMW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoYWRkKG1heCwgMm4pLCByZXN1bHQpOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTViZDY5
MmMyOGUyZGExODlhOTgzYWI4NzI2ODE2NDZlMjRmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGRlYyhhKSB7CisgICAgcmV0dXJuIC0tYTsKK30KK25vSW5saW5lKGRl
Yyk7CisKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShkZWMoQmlnSW50KGkpKSwgQmlnSW50KGkgLSAxKSk7Cit9Cit7CisgICAgbGV0IG1p
biA9IC0weDdmZmZmZmZmbiAtIDFuOworICAgIGxldCByZXN1bHQgPSAtMHg4MDAwMDAwMW47Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoZGVj
KG1pbiksIHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1p
bmMtb3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1pbmMtb3ZlcmZsb3cuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTJmMWYyMDUxZDRmZjUzOWMxZjJkOGM5NThlNjY0NzY1YjM0ZjI1OQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWluYy1vdmVyZmxvdy5qcwpA
QCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gaW5jKGEpIHsKKyAgICByZXR1cm4g
KythOworfQorbm9JbmxpbmUoaW5jKTsKKworeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKGluYyhCaWdJbnQoaSkpLCBCaWdJbnQoaSArIDEp
KTsKK30KK3sKKyAgICBsZXQgbWF4ID0gMHg3ZmZmZmZmZm47CisgICAgbGV0IHJlc3VsdCA9IDB4
ODAwMDAwMDBuOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAg
IHNob3VsZEJlKGluYyhtYXgpLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvYmlnaW50MzItbXVsLW92ZXJmbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVs
LW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZDRlMzliYTZiYTU4Y2YzYWU0NGZmODNmZmIyYjdj
YzA5ZmM5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1tdWwt
b3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG11bChhLCBi
KSB7CisgICAgcmV0dXJuIGEgKiBiOworfQorbm9JbmxpbmUobXVsKTsKKworeworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKG11bChCaWdJbnQo
aSksIDJuKSwgQmlnSW50KGkgKiAyKSk7Cit9Cit7CisgICAgbGV0IG1heCA9IDB4N2ZmZmZmZmZu
OworICAgIGxldCByZXN1bHQgPSAweGZmZmZmZmZlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShtdWwobWF4LCAybiksIHJlc3VsdCk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMgYi9K
U1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3N2Ez
YzU4ODVkMWFiNzU0ZTgzNmNlYTdmN2I1NTc4MGZlM2FlZQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2JpZ2ludDMyLXN1Yi1vdmVyZmxvdy5qcwpAQCAtMCwwICsxLDIwIEBACitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gc3ViKGEsIGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9Citub0lu
bGluZShzdWIpOworCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAg
ICAgICAgc2hvdWxkQmUoc3ViKEJpZ0ludChpKSwgMm4pLCBCaWdJbnQoaSAtIDIpKTsKK30KK3sK
KyAgICBsZXQgbWluID0gLTB4N2ZmZmZmZmZuIC0gMW47CisgICAgbGV0IHJlc3VsdCA9IC0weDgw
MDAwMDAybjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShzdWIobWluLCAybiksIHJlc3VsdCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397611</attachid>
            <date>2020-04-25 22:52:14 -0700</date>
            <delta_ts>2020-04-25 22:55:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211038-20200425225206.patch</filename>
            <type>text/plain</type>
            <size>47002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5lZTRhNWRmNjJmMWQyOTYx
MGQ1ODY4ZTRjMzEyNjU0ZjllYjYzYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMg
c2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbiBiYXNlZCBvbiBBcml0aFByb2ZpbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBwcm9maWxlIGZlZWRiYWNrIHRvIFZhbHVlQWRkLCBWYWx1ZVN1YiwgVmFsdWVNdWws
IEluYywgRGVjIHRvIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbi4KKworICAgICAgICBPdXIg
SGVhcEJpZ0ludCB2LnMuIEJpZ0ludDMyIHN0cmF0ZWd5IGlzIHNpbXBsZXIgdGhhbiBEb3VibGUg
di5zLiBJbnQzMiBzdHJhdGVneTogd2UgYWx3YXlzCisgICAgICAgIHByZWZlciBCaWdJbnQzMiBv
dmVyIEhlYXBCaWdJbnQuIFRoaXMgaXMgYmVjYXVzZSBIZWFwQmlnSW50IGNhbGN1bGF0aW9uIGFu
ZCBjb252ZXJzaW9uIHJlcXVpcmVzCisgICAgICAgIHNvIG11Y2ggaGlnaGVyIGNvc3QgdGhhbiBC
aWdJbnQzMi4gVGhpcyB0cmFkZW9mZiBpcyBsYXJnZWx5IGRpZmZlcmVudCBmcm9tIERvdWJsZSB2
LnMuIEludDMyLgorICAgICAgICBTbyBrZWVwaW5nIEhlYXBCaWdJbnQgaXMgc2ltcGx5IGluZWZm
aWNpZW50IGlmIHdlIGNhbiB1c2UgQmlnSW50MzIuCisKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IEFyaXRoUHJvZmlsZSdzIGZlZWRiYWNrIGlzIGFsc28gdmVyeSBzaW1wbGUuIElmIHdlIHNlZSBI
ZWFwQmlnSW50LCB0aGlzIG1lYW5zCisgICAgICAgIG92ZXJmbG93IGhhcHBlbnMuIEluIERGRywg
d2UgcHJvcGFnYXRlIHRoaXMgaW5mb3JtYXRpb24gdG8gVmFsdWVBZGQsIFZhbHVlU3ViLCBhbmQg
VmFsdWVNdWwgbm9kZXMKKyAgICAgICAgYW5kIHJlY29yZCBpdCBpbiBERkdOb2RlRmxhZ3MuIEFu
ZCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uLCB3ZSBjaGFuZ2UgdGhlIHByZWRpY3Rpb24gYW5k
CisgICAgICAgIHNwZWN1bGF0aW9uIGluIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGZpeHVw
IHBoYXNlLgorCisgICAgICAgIFdlIGNoYW5nZSBleGl0IHJlYXNvbiBmcm9tIG92ZXJmbG93aW5n
IGZyb20gT3ZlcmZsb3cgdG8gQmlnSW50MzJPdmVyZmxvdyBzaW5jZSBPdmVyZmxvdyBpcyBzb2xl
bHkKKyAgICAgICAgdXNlZCBmb3IgSW50MzIgY2FzZSwgYW5kIHdlIGhhdmUgSW50NTJPdmVyZmxv
dyBmb3IgSW50NTIgY2FzZS4gV2Ugc2hvdWxkIGhhdmUgQmlnSW50MzJPdmVyZmxvdyBmb3IgQmln
SW50MzIKKyAgICAgICAgdG8gcHJlY2lzZWx5IHJlY29yZCBhbmQgdGVsbCB0ZWxsIGFib3V0IHdo
YXQgaGFwcGVucyBpbiBERkcgYXMgYSBmZWVkYmFjayBmb3IgdGhlIG5leHQgY29tcGlsYXRpb24u
CisKKyAgICAgICAgV2UgYWRkIEJpZ0ludDMyIHNwZWN1bGF0aW9uIGZvciBWYWx1ZVN1Yi4gUHJl
dmlvdXNseSwgd2UgbWlzc2VkIHRoYXQgaW4gZml4dXAgcGhhc2UgYW5kIHdlIGFsd2F5cworICAg
ICAgICBzcGVjdWxhdGUgVmFsdWVTdWIgd2l0aCBBbnlCaWdJbnRVc2Ugb3IgSGVhcEJpZ0ludFVz
ZS4gTm90IGl0IGNhbiB1c2UgQmlnSW50MzJVc2UuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW5j
IC8gRGVjJ3MgZml4dXAgcGhhc2UgdG8gdXNlIEJpZ0ludCBwYXRoLiBQcmV2aW91c2x5LCBpdCB3
YXMgYWx3YXlzIHVzaW5nIFVudHlwZWRVc2Ugc2luY2UKKyAgICAgICAgbm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKCkgcmV0dXJucyB0cnVlIGZvciBC
aWdJbnQuIFdlIGZpeCB0aGUgb3JkZXJpbmcgb2YKKyAgICAgICAgc3BlY3VsYXRpb24gYXR0ZW1w
dHMgYXMgaXQgaXMgZG9uZSBpbiB0aGUgb3RoZXIgcGxhY2VzIGluIGZpeHVwIHBoYXNlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggb2ZmZXJzIDcuOSUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4g
c3Vuc3BpZGVyLXNoYTEtYmlnLWludC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAgICAgICAgICBQYXRjaGVkCisKKyAgICAg
ICAgICAgIHN1bnNwaWRlci1zaGExLWJpZy1pbnQgICAgICAxMzQuNTY2OCstMi44Njk1ICAgICBe
ICAgIDEyNC42NzQzKy0wLjc1NDEgICAgICAgIF4gZGVmaW5pdGVseSAxLjA3OTN4IGZhc3Rlcgor
CisgICAgICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2lu
ZFRvU3RyaW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtl
U2FmZSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VEaXZTYWZlKToK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6YmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQz
Mik6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpt
YXlIYXZlQmlnSW50MzJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVI
ZWFwQmlnSW50UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlQmlnSW50
UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjYW5TcGVjdWxhdGVCaWdJbnQzMik6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6Y2FuU3BlY3VsYXRlSW50NTIpOgorICAgICAgICAq
IGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmR1bXBOb2RlRmxhZ3Mp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuaDoKKyAgICAgICAgKEpTQzo6REZHOjpub2Rl
TWF5SGF2ZUhlYXBCaWdJbnQpOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVDYW5TcGVjdWxhdGVC
aWdJbnQzMik6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVIZWFwQmlnSW50KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlRGl2KToKKwogMjAyMC0wNC0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBEZWFsIHdpdGggYW5vdGhlciByb3VuZCBvZiBYY29kZSB1cGdyYWRl
IGNoZWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5k
ZXggZmYyNzYxNmM0Yzg5MTA4Y2I1MjBhOWFiZDVjZDRjYzAwZGRlZDNlMi4uMjM0NjA1MmMwMTg2
NzlmNWZjZjI0YjNkMGRlNWU5N2FkMGI1MzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC04OCw2ICs4OCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRL
aW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJFeGNlcHRpb25DaGVj
ayI7CiAgICAgY2FzZSBHZW5lcmljVW53aW5kOgogICAgICAgICByZXR1cm4gIkdlbmVyaWNVbndp
bmQiOworICAgIGNhc2UgQmlnSW50MzJPdmVyZmxvdzoKKyAgICAgICAgcmV0dXJuICJCaWdJbnQz
Mk92ZXJmbG93IjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gIlVua25vd24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuaAppbmRleCA5MTA1ZGFjYTVkODFkM2VlMTczYTlkMTVlYWNhMWRjZWY4OWQ1MDY5Li42MTFk
NDdhZjQ1OWYyOTJjNDE1MDZjNzZmY2ZiM2Q0MWVkODA0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtNTUsNiArNTUsNyBAQCBlbnVtIEV4aXRLaW5k
IDogdWludDhfdCB7CiAgICAgRGVidWdnZXJFdmVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2Ug
bmVlZCB0byBzZXJ2aWNlIHRoZSBkZWJ1Z2dlci4KICAgICBFeGNlcHRpb25DaGVjaywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYSBkaXJlY3QgZXhjZXB0aW9uIGNoZWNrIHNob3dlZCB0aGF0IHdlIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmcm9tIGEgQyBjYWxsLgogICAgIEdlbmVyaWNVbndpbmQsIC8vIFdl
IGV4aXRlZCBiZWNhdXNlIHdlIGFycml2ZWQgYXQgdGhpcyBPU1IgZXhpdCBmcm9tIGdlbmVyaWNV
bndpbmQuCisgICAgQmlnSW50MzJPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2YgYW4g
QmlnSW50MzIgb3ZlcmZsb3cuCiB9OwogCiBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4
aXRLaW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKaW5kZXggOWUzNTcxZmI5OWYxMjE2NzU1ZjE5Yzg0YzhiYmJjMWMyMDEzNjkyNi4uOWY2
M2Q4NDdkOTMyOTY0YmRiNWUyM2IyMjlkOWQ2NTg5NTczNTRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTEwMCw3ICsxMDAsMTIg
QEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2wKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQgdGhhdCBpcyBhbGxvY2F0ZWQg
b24gdGhlIGhlYXAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIHNtYWxsIEJpZ0ludCB0aGF0IGlzIGlubGluZSB0aGUgSlNWYWx1ZQorI2lmIFVTRShCSUdJ
TlQzMikKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCaWdJbnQzMiB8IFNwZWNIZWFwQmlnSW50OworI2Vs
c2UKKy8vIFdlIHNob3VsZCBub3QgaW5jbHVkZSBTcGVjQmlnSW50MzIuIFdlIGFyZSB1c2luZyBT
cGVjQmlnSW50IGluIHZhcmlvdXMgcGxhY2VzIGxpa2UgcHJlZGljdGlvbi4gSWYgdGhpcyBpbmNs
dWRlcyBTcGVjQmlnSW50MzIsIGZpeHVwIHBoYXNlIGlzIGNvbmZ1c2VkIGlmICFVU0UoQklHSU5U
MzIpIHNpbmNlIGl0IGlzIG5vdCB1c2luZyBBbnlCaWdJbnRVc2UuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjSGVhcEJpZ0ludDsKKyNlbmRpZgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRGF0YVZpZXdPYmplY3QgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNEYXRhVmlldy4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBT
cGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2MgfCBTcGVjQmlnSW50OyAv
LyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxP
YmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBT
cGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmpl
Y3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKaW5kZXggNjEwMWE3OTdjMDI0OTQ4MDE2ZjY1ZDA3MWZhZGFkZjkzZmIyYjk1Yy4uYmZjMTZk
OWRhMjllMDg1YTgzYTA4OTk2NTMyODY1NjVmNDU1NTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtNzY2LDggKzc2NiwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBub2RlLT5iaW5hcnlV
c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQoKTsKQEAg
LTEwNTYsOCArMTA1OCwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDE5MzdmZTQ3
YmUxMGQwNTIwMjZlYjNjNmQ1ZTIzZjVhYzZhYTk4YS4uMjA1NDRjY2Q3MzBlMWMxYjRiNjhmYmVj
NmZhMTk2OTJmZWNhYjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBjbGFzcyBCeXRlQ29kZVBh
cnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJs
ZVJlc3VsdCk7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZU5vbk51bWVyaWMo
KSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJp
Y1Jlc3VsdCk7Ci0gICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUJpZ0ludCgpKQot
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQp
OworICAgICAgICAgICAgaWYgKG9ic2VydmVkLmRpZE9ic2VydmVCaWdJbnQzMigpKQorICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCk7Cisg
ICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJ
bnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIFZhbHVlTXVsOgpAQCAtMTAzMCw4ICsxMDMyLDEwIEBAIGNsYXNzIEJ5dGVDb2Rl
UGFyc2VyIHsKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25O
dW1lcmljKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5v
bk51bWVyaWNSZXN1bHQpOwotICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZUJpZ0ludCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnRSZXN1bHQpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUJp
Z0ludDMyKCkpCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJp
Z0ludDMyUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVI
ZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKQEAgLTEwNDksOCAr
MTA1MywxMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwogICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWVyaWMoKSkKICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCk7Ci0gICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCk7CisgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpOworICAgICAgICAg
ICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGluZVN0
YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJbnQz
Mk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZl
SGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0x
MDk5LDggKzExMDUsMTEgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8IE5vZGVNYXlOZWdaZXJv
SW5CYXNlbGluZSk7CiAKICAgICAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZUZv
ckJ5dGVjb2RlSW5kZXgobV9jdXJyZW50SW5kZXgpOwotICAgICAgICBpZiAoYXJpdGhQcm9maWxl
LT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0KTsKKworICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNl
cnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnQzMlJlc3VsdCk7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVIZWFw
QmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAKICAgICAgICAgcmV0dXJuIG5v
ZGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggOWZmYjBlMWNkMjdiNTQ0ODZmOTU1MjQwNWYyOTUyNmQyYjhmMWRhNS4uZjU4NTA1Yjdh
MTMzNmU1NGJhMDcyZDBjNmY0YTU3MmNiOTMyNDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODgsNiArMTg4LDQyIEBAIGNsYXNzIEZpeHVw
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogCiAgICAgICAgIGNhc2UgSW5jOgogICAgICAgICBjYXNl
IERlYzogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlSGVhcEJpZ0ludCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBtaWdodCBvcHRpbWl6ZSBpbmMvZGVjIHRvIGEg
c3BlY2lhbGl6ZWQgZnVuY3Rpb24gY2FsbCBpbnN0ZWFkIGluIHRoYXQgY2FzZS4KKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7
CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9u
U2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50
LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25z
dGFudE9uZS5nZXQoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0
Q2hpbGQyKEVkZ2Uobm9kZUNvbnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVk
Z2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICBm
aXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gSGVhcEJpZ0ludHMgYXJlIGNlbGxzLCBzbyB0aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0
SlMgaXMgZ29vZCBoZXJlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5h
cnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1
Yik7CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNCaWdJbnQzMiwgSlNDb25zdGFu
dCwgbm9kZS0+b3JpZ2luLCBPcEluZm8obV9ncmFwaC5mcmVlemUoanNCaWdJbnQzMigxKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0Q2hpbGQyKEVkZ2Uobm9kZUNv
bnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVmYXVsdCBvZiBO
b2RlUmVzdWx0SlMgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNt
YWxsIEJpZ0ludHMgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBkb2Vz
IG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkgdm0p
LCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1bmN0
aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgICAgbm9kZS0+c2V0
T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7CisgICAgICAgICAgICAgICAgTm9k
ZSogbm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5C
bG9jaywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dy
YXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxk
cmVuLnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOworICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgZml4
RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAvLyBU
aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCisjZW5kaWYgLy8gVVNFKEJJ
R0lOVDMyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1l
dGljKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIwMiwzNCArMjM4LDYgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEludDMyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZUhlYXBCaWdJbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCi0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIG1pZ2h0IG9wdGltaXplIGluYy9kZWMgdG8gYSBzcGVj
aWFsaXplZCBmdW5jdGlvbiBjYWxsIGluc3RlYWQgaW4gdGhhdCBjYXNlLgotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IFZhbHVlQWRkIDogVmFsdWVTdWIpOwotICAgICAg
ICAgICAgICAgIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9p
bmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9w
SW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25zdGFudE9uZS5nZXQoKSkpKTsK
LSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZHJlbi5zZXRDaGlsZDIoRWRnZShub2RlQ29uc3Rh
bnRPbmUpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBIZWFwQmlnSW50cyBhcmUgY2VsbHMsIHNvIHRo
ZSBkZWZhdWx0IG9mIE5vZGVSZXN1bHRKUyBpcyBnb29kIGhlcmUKLSNpZiBVU0UoQklHSU5UMzIp
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFs
dWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAgbm9kZUNvbnN0YW50T25lID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3BlY0JpZ0ludDMyLCBKU0Nv
bnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEp
KSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuLnNldENoaWxkMihFZGdlKG5vZGVD
b25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5j
aGlsZDIoKSk7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgb2YgTm9kZVJlc3VsdEpT
IGlzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGNvbnNp
ZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNtYWxsIEJpZ0ludHMgaW5z
dGVhZC4KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBk
b2VzIG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkg
dm0pLCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1
bmN0aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCi0gICAgICAgICAgICAgICAgbm9kZS0+
c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAg
bm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
aywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBo
LmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVk
Z2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RWRn
ZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCi0jZW5kaWYgLy8gVVNFKEJJR0lO
VDMyKQogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3Vs
YXRlSW50NTIoKSkgewogICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IEFy
aXRoQWRkIDogQXJpdGhTdWIpOwogICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShB
cml0aDo6Q2hlY2tPdmVyZmxvdyk7CkBAIC0yNjIsMTAgKzI3MCwxNiBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50
MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJV
c2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4oY2hpbGQy
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
aWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIubm9k
ZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDEpOwog
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDIpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICNl
bmRpZgogCkBAIC0zMTEsNyArMzI1LDE2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdl
bmVyYXRlKTsKKyAgICAgICAgICAgICAgICAvLyBTaGlmdCBjYW4gdGhyb3cgUmFuZ2VFcnJvci4K
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIFZhbHVlQml0WG9yOgorICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKKyAgICAg
ICAgICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgorICAgICAgICAgICAgICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAK
QEAgLTUxMyw3ICs1MzYsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KGNoaWxkMSk7CiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihjaGlsZDIpOwogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoY2hp
bGQxLm5vZGUoKSwgY2hpbGQyLm5vZGUoKSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykp
IHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihjaGlsZDEpOwogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIu
bm9kZSgpKSkgewpAQCAtNjA2LDcgKzYyOSw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogCiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50KGxl
ZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkgewogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobGVmdENo
aWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1f
Z3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBGaXh1cFBhc3Mp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
SGVhcEJpZ0ludChsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAyOGJmMTUyMDQxZDMzODYzNzZhNjZkY2Ji
MWJlOTU1YjliM2Y0NDU5Li43OTY1ZDI3MGRiMGUwODcxYTcyZDVhNmMyNWIxNDRjOTM0NWM1NmVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00MTAsNiArNDEwLDI2IEBA
IGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgICAgICYm
ICFoYXNFeGl0U2l0ZShub2RlLCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAKKyNpZiBVU0UoQklH
SU5UMzIpCisgICAgYm9vbCBiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKE5vZGUq
IG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICBpZiAoIW5vZGUtPmNh
blNwZWN1bGF0ZUJpZ0ludDMyKHBhc3MpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoaGFzRXhpdFNpdGUobm9kZSwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJ
bnQzMihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7CisgICAg
fQorCisgICAgYm9vbCB1bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoTm9kZSogbm9k
ZSwgUHJlZGljdGlvblBhc3MgcGFzcykKKyAgICB7CisgICAgICAgIGlmICghbm9kZS0+Y2FuU3Bl
Y3VsYXRlQmlnSW50MzIocGFzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChoYXNFeGl0U2l0ZShub2RlLCBCaWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVCaWdJbnQzMigpOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmlu
Z09iamVjdEFjY2Vzcyhjb25zdCBDb2RlT3JpZ2luJik7CiAKICAgICBib29sIGdldFJlZ0V4cFBy
b3RvdHlwZVByb3BlcnR5KEpTT2JqZWN0KiByZWdFeHBQcm90b3R5cGUsIFN0cnVjdHVyZSogcmVn
RXhwUHJvdG90eXBlU3RydWN0dXJlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKU1ZhbHVlJiBy
ZXR1cm5KU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggOWY5ODA5
NTNkMGYwNzU5ODA3NDhjOGE3MDFkNjRhMTMxNDgwN2ZiMS4uZWJlMDE1ODY2YmI3OTkxNGFkMjRh
OGJiYzY2ZGE5MWQ4Nzc1N2FmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAg
LTEyMDIsOSArMTIwMiwxOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX2ZsYWdz
ICYgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0OwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2
ZUJpZ0ludDMyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVCaWdJbnQzMlJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIG1heUhhdmVIZWFwQmlnSW50
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVIZWFw
QmlnSW50UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgbWF5SGF2ZUJpZ0ludFJlc3VsdCgpCiAg
ICAgewotICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0Owor
ICAgICAgICByZXR1cm4gbWF5SGF2ZUJpZ0ludDMyUmVzdWx0KCkgfHwgbWF5SGF2ZUhlYXBCaWdJ
bnRSZXN1bHQoKTsKICAgICB9CiAKICAgICBib29sIGhhc05ld0FycmF5QnVmZmVyRGF0YSgpCkBA
IC0yODY2LDYgKzI4NzYsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJu
IG5vZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFncygpLCBzb3VyY2UpOwogICAgIH0K
KworICAgIGJvb2wgY2FuU3BlY3VsYXRlQmlnSW50MzIoUmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ug
c291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVCaWdJbnQzMihh
cml0aE5vZGVGbGFncygpLCBzb3VyY2UpOworICAgIH0KICAgICAKICAgICBSYXJlQ2FzZVByb2Zp
bGluZ1NvdXJjZSBzb3VyY2VGb3IoUHJlZGljdGlvblBhc3MgcGFzcykKICAgICB7CkBAIC0yODg0
LDYgKzI4OTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gY2FuU3BlY3VsYXRl
SW50NTIoc291cmNlRm9yKHBhc3MpKTsKICAgICB9CiAKKyAgICBib29sIGNhblNwZWN1bGF0ZUJp
Z0ludDMyKFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICByZXR1cm4gY2FuU3Bl
Y3VsYXRlQmlnSW50MzIoc291cmNlRm9yKHBhc3MpKTsKKyAgICB9CisKICAgICBib29sIGhhc1R5
cGVMb2NhdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBQcm9maWxlVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAppbmRleCBhMDkxYzA5
OGQ1MDk1ZWUxMmQxOGI2ZDVmZTgzOTQxZjY2Y2Y0NzE3Li5kNmNlNmE2MGMxMzA1Nzg2ZTkxM2Ji
MzM3M2U0MjAwMzRjMzA2ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
RmxhZ3MuY3BwCkBAIC04OCw4ICs4OCwxMSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJl
YW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgIGlmIChmbGFncyAmIE5vZGVNYXlI
YXZlRG91YmxlUmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91Ymxl
UmVzdWx0Iik7CiAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCkKLSAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZUJpZ0ludFJlc3VsdCIpOworICAgIGlmIChm
bGFncyAmIE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heUhhdmVCaWdJbnQzMlJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVIZWFwQmlnSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlSGVh
cEJpZ0ludFJlc3VsdCIpOwogCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1lcmlj
UmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtZXJpY1Jlc3Vs
dCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKaW5kZXggYjBiYTZi
YjdlOGFmZjRmYjEyNjY3YjFmYzg5NzY2MmQ1ZWJmZDJkNi4uMmViZTM1NDRmNjAxMWRiZjVmYjFk
MTA2MmZhNGQxYTI4ZjBhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVG
bGFncy5oCkBAIC00MiwzNyArNDIsMzcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogI2RlZmluZSBOb2RlUmVzdWx0SW50NTIgICAgICAgICAgICAgICAgICAweDAwMDUKICNkZWZp
bmUgTm9kZVJlc3VsdEJvb2xlYW4gICAgICAgICAgICAgICAgMHgwMDA2CiAjZGVmaW5lIE5vZGVS
ZXN1bHRTdG9yYWdlICAgICAgICAgICAgICAgIDB4MDAwNwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKwogI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAw
eDAwMDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90
IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAg
ICAgICAgICAgICAgICAgMHgwMDEwCi0gICAgCi0jZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAg
ICAgICAgICAgICAgIDB4MDA3ZTAKKwogI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAg
ICAgICAgICAweDAwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAg
IDB4MDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDA4
MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAwMTAwCiAjZGVm
aW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDAyMDAKICNkZWZpbmUgTm9k
ZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwMDQwMAotI2RlZmluZSBOb2RlTWF5SGF2
ZU5vbk51bWVyaWNSZXN1bHQgICAgICAweDAwODAwCi0vLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUg
c2VwYXJhdGUgZmxhZ3MgZm9yIEhlYXBCaWdJbnQgYW5kIEJpZ0ludDMyLCBjdXJyZW50bHkgcHJl
ZGljdGlvbiBwcm9wYWdhdGlvbiB3aWxsIHBlc3NpbWl6ZSB0aGluZ3MuCi0jZGVmaW5lIE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0ICAgICAgICAgIDB4MDEwMDAKLSNkZWZpbmUgTm9kZU1heUhhdmVO
b25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhh
dmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sg
ICAgICAgIDB4M2UwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAw
eDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAv
LyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0
IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMu
Ci0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUg
cmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQg
b2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgMHgw
ODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBj
b250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChs
aWtlIHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAg
KE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5v
ZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAg
ICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3du
IHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVp
cmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4
ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRv
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVl
cywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQg
YWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlTWF5SGF2ZUJpZ0ludDMyUmVzdWx0ICAgICAgICAw
eDAwODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCAgICAgIDB4MDEwMDAK
KyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0ICAgICAgMHgwMjAwMAorI2RlZmlu
ZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1
bHQgfCBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGlu
ZSB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgfCBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUg
fCBOb2RlTWF5TmVnWmVyb0luREZHIHwgTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCB8IE5vZGVN
YXlIYXZlSGVhcEJpZ0ludFJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCkKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnQz
MlJlc3VsdCB8IE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCkKKworI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VCb3R0b20gICAgICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc051bWJlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9y
IGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05l
Z1plcm8gICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBi
ZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJl
ZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDQwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhp
cyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9u
Z2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBh
dm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVC
eXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBO
b2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
IHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBO
b2RlQnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KQogCiAj
ZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNr
IHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAg
ICAgICAgICAgICAgICAgMHg0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNl
LCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxl
IGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAg
MHg4MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAwMAorI2RlZmluZSBOb2Rl
TWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxh
ZzIgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAKIAogdHlwZWRlZiB1aW50MzJfdCBOb2RlRmxh
Z3M7CiAKQEAgLTE1OCw2ICsxNTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVj
dWxhdGVJbnQ1MihOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG5vZGVNYXlIYXZlSGVhcEJpZ0lu
dChOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmNlKQoreworICAgIHJldHVy
biAhIShmbGFncyAmIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlQmlnSW50MzIoTm9kZUZsYWdzIGZsYWdzLCBSYXJl
Q2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCit7CisgICAgLy8gV2UgYWx3YXlzIGF0dGVtcHQg
dG8gcHJvZHVjZSBCaWdJbnQzMiBhcyBtdWNoIGFzIHBvc3NpYmxlLiBJZiB3ZSBzZWUgSGVhcEJp
Z0ludCwgd2Ugb2JzZXJ2ZWQgb3ZlcmZsb3cuCisgICAgLy8gRklYTUU6IEV4dGVuZCB0aGlzIGlu
Zm9ybWF0aW9uIGJ5IHRpZXJlZCBwcm9maWxpbmcgKGZyb20gQmFzZWxpbmUsIERGRyBldGMuKS4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM5Cisg
ICAgcmV0dXJuICFub2RlTWF5SGF2ZUhlYXBCaWdJbnQoZmxhZ3MsIHNvdXJjZSk7Cit9CisKIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNjg5CiBzdGF0aWMgaW5saW5lIE5vZGVGbGFncyBjYW5vbmljYWxSZXN1
bHRSZXByZXNlbnRhdGlvbihOb2RlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDY2YjlkNjBhMzQwYTY4MmE4MmM4ZjQzYzU0YzZiMmY2MWU1MjFlZjguLjBhYmRiNWI1MmQy
Mzc5OWE4YTNiNzlkNzAyYWViNDM2MDA5MzlmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0yMTAsNyArMjEwLDEyIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTdHJpbmdP
YmplY3RTcGVjdWxhdGlvbihsZWZ0KSB8fCBpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRp
b24ocmlnaHQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVm
aW5pdGVseSBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3Vs
YXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJp
Z0ludDMyKG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQzMik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNl
IGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmln
aHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
QmlnSW50KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CkBAIC0yNzgsNyArMjgzLDEy
IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1
MkFueSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50
U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCisgICAgICAg
ICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBlbHNlIGlmICht
X2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZSwgbV9wYXNzKSkK
KyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0lu
dDMyKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRp
b24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQpOwogICAgICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5KTsKQEAgLTMwNCw3ICszMTQsMTIgQEAgY2xhc3MgUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyQW55KTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9uKHByZWRpY3Rpb24pKTsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24ocHJlZGljdGlvbikp
CisgICAgICAgICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChtX2dyYXBoLnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBt
X3Bhc3MpKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihT
cGVjQmlnSW50MzIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNCaWdJbnRT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkp
OwpAQCAtMzg2LDcgKzQwMSwxMiBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjSW50NTJBbnkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVk
RG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYm
IGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0Uo
QklHSU5UMzIpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3AgPT0gVmFsdWVNdWwgJiYgbV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIG1fcGFzcykpCisg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQz
Mik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBp
c0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQog
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDdhMGEyNTBmY2MxNDEzYWU5MTBm
Yzk4OTFlYjQzOTAzMjk5MjAxZGYuLmQyMDczMmQ2ZTdjMzhiNzk3MTAyODE3OTc5YWYwMWQ3OWU0
ZDU2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC00MDI2LDYgKzQwMjYsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxk
MigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhl
ciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2luZHMgYXJlIEJpZ0ludFVz
ZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGluZyBvdmVyZmxvdy4KKyAg
ICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBp
bmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1NworICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAKICAgICBpZiAobm9kZS0+
aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgbGVmdCh0aGlzLCBsZWZ0Q2hpbGQpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgcmlnaHQodGhpcywgcmlnaHRDaGlsZCk7CkBAIC00MDQwLDEwICs0MDQ0LDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgICAg
IG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQu
dW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFk
ZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6
Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNo
ZWNrKTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC00MTMwLDYgKzQxMzMsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYg
cmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8v
IEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhlciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFy
eSB1c2Uga2luZHMgYXJlIEJpZ0ludFVzZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5k
IGFjY2VwdGluZyBvdmVyZmxvdy4KKyAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2Rl
cyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVz
dWx0QmlnSW50MzIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDk1NworICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTEwNDAKICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7
CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIG5vZGUt
PmNoaWxkMigpKTsKQEAgLTQxNDQsMTAgKzQxNTEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVTdWIoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihs
ZWZ0R1BSLCByZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BS
LCB0ZW1wR1BSKTsKIAotICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0
ZSB0aGUgb3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sg
PSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwg
dGVtcEdQUiwgcmVzdWx0R1BSKTsKIAotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLCBjaGVjayk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmln
SW50MzJPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOwogCiAgICAgICAgIG1faml0
LmJveEJpZ0ludDMyKHJlc3VsdEdQUik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKQEAgLTQ5NzcsNiArNDk4MywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlVmFsdWVNdWwoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdodENoaWxkID0gbm9kZS0+Y2hp
bGQyKCk7CiAKICNpZiBVU0UoQklHSU5UMzIpCisgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90
aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50
VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93Lgor
ICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJhc2VkIG9uIHJlc3VsdCB0eXBl
IGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRCaWdJbnQzMi4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTU3CisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgIGlmIChub2Rl
LT5iaW5hcnlVc2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKICAgICAgICAgLy8gRklYTUU6IHRo
ZSBjb2RlIGJldHdlZW4gY29tcGlsZVZhbHVlQWRkLCBjb21waWxlVmFsdWVTdWIgYW5kIGNvbXBp
bGVWYWx1ZU11bCBmb3IgQmlnSW50MzIgaXMgbmVhcmx5IGlkZW50aWNhbCwgc28gdHJ5IHRvIGdl
dCByaWQgb2YgdGhlIGR1cGxpY2F0aW9uLgogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJh
bmQgbGVmdCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC00OTkyLDEwICs1MDAyLDkgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBz
b21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92
ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNr
KTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1Zh
bHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC01MjA5LDYgKzUyMTgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdo
dENoaWxkID0gbm9kZS0+Y2hpbGQyKCk7CiAKICAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRo
IGZvciBCaWdJbnQzMi4gQ3VycmVudGx5IHdlIGdvIHRocm91Z2ggdGhlIHNsb3cgcGF0aCwgYmVj
YXVzZSBvZiBob3cgdWdseSB0aGUgY29kZSBmb3IgRGl2IGdldHMuCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MQogCiAgICAgaWYgKG5vZGUtPmlz
QmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBsZWZ0KHRoaXMsIGxlZnRDaGlsZCk7CkBAIC0xMDgwMiw3ICsxMDgxMiw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUhlYXBCaWdJbnQoRWRnZSBlZGdlLCBHUFJSZWcgY2Vs
bCkKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludChFZGdlIGVkZ2Up
CiB7Ci0gICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjQmlnSW50KSkKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNIZWFwQmlnSW50KSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1ODczMjY2NmVk
OGE1NTlmNTEyZGRmYmI1MzlmZWM4MDBkODY3YmI2Li44NWIxOWU4ZWE1ZTU3NDZiZTViNWFkNTRh
NjMyMDRiMTFiNjI0YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCkBAIC0yMTQzLDYgKzIxNDMsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAg
ICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlv
bjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0Fu
eUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlz
aCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1
Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFy
eVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0Jp
Z0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93
QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTUxLDcgKzIxNTUsNyBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94Qmln
SW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5z
cGVjdWxhdGVBZGQodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVz
c1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmln
aW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZs
b3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUg
Ym94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1
ZShib3hlZFJlc3VsdCk7CkBAIC0yMTgxLDYgKzIxODUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFs
T2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJh
dGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3Bl
Y0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5n
dWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRy
b2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxv
d0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0g
bG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTg5LDcgKzIxOTcsNyBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94
QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291
dC5zcGVjdWxhdGVTdWIodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBi
bGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
cmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3Zl
cmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFs
dWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNW
YWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yMjE5LDYgKzIyMjcsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQz
MikKKyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2Vu
ZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMg
U3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0
aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBp
bnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5p
c0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9
IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0
ID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMjI3LDcgKzIyMzksNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVu
Ym94QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBt
X291dC5zcGVjdWxhdGVNdWwodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAg
ICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwg
bV9vcmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMy
T3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBM
VmFsdWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0
SlNWYWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yNjI3LDYgKzI2MzksNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAg
Ly8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVyZQorICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQxCiAgICAgICAgIGlm
IChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICAgICAg
TFZhbHVlIGxlZnQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgTFZhbHVlIHJpZ2h0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNoaWxkMigpKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjk3ZTc1
ZjI5ZWEyYTc1MmYzOTI4NWRjZTYzMGQ1MzI0MTMxMjc1ZS4uODc2ZThmODQyMzY1ZGFlZjQ2NDU3
M2ZiZTQzMjA2MDEzYTExZWE4ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVl
U3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMgc2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlv
biBiYXNlZCBvbiBBcml0aFByb2ZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChhZGQpOgorICAgICAgICAobm9JbmxpbmUp
OgorICAgICAgICAqIHN0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZGVjKToKKyAgICAgICAgKG5vSW5saW5lKToKKyAg
ICAgICAgKiBzdHJlc3MvYmlnaW50MzItaW5jLW92ZXJmbG93LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKGluYyk6CisgICAgICAgIChub0lubGluZSk6CisgICAgICAg
ICogc3RyZXNzL2JpZ2ludDMyLW11bC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChtdWwpOgorICAgICAgICAobm9JbmxpbmUpOgorICAgICAgICAqIHN0
cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoc3ViKToKKyAgICAgICAgKG5vSW5saW5lKToKKwogMjAyMC0wNC0yNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBmYXN0
IHBhdGggZm9yIEJpZ0ludDMyIGxlZnQtc2hpZnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWFkZC1v
dmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDkyN2EyZWEzYTAwNmFjYzFmNGJkZDM0MTcyNTNlODAw
YmUxYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItYWRkLW92
ZXJmbG93LmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBhZGQoYSwgYikg
eworICAgIHJldHVybiBhICsgYjsKK30KK25vSW5saW5lKGFkZCk7CisKK3sKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShhZGQoQmlnSW50KGkp
LCAybiksIEJpZ0ludChpICsgMikpOworfQoreworICAgIGxldCBtYXggPSAweDdmZmZmZmZmbjsK
KyAgICBsZXQgcmVzdWx0ID0gMHg4MDAwMDAwMW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoYWRkKG1heCwgMm4pLCByZXN1bHQpOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTViZDY5
MmMyOGUyZGExODlhOTgzYWI4NzI2ODE2NDZlMjRmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGRlYyhhKSB7CisgICAgcmV0dXJuIC0tYTsKK30KK25vSW5saW5lKGRl
Yyk7CisKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShkZWMoQmlnSW50KGkpKSwgQmlnSW50KGkgLSAxKSk7Cit9Cit7CisgICAgbGV0IG1p
biA9IC0weDdmZmZmZmZmbiAtIDFuOworICAgIGxldCByZXN1bHQgPSAtMHg4MDAwMDAwMW47Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoZGVj
KG1pbiksIHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1p
bmMtb3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1pbmMtb3ZlcmZsb3cuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTJmMWYyMDUxZDRmZjUzOWMxZjJkOGM5NThlNjY0NzY1YjM0ZjI1OQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWluYy1vdmVyZmxvdy5qcwpA
QCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gaW5jKGEpIHsKKyAgICByZXR1cm4g
KythOworfQorbm9JbmxpbmUoaW5jKTsKKworeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKGluYyhCaWdJbnQoaSkpLCBCaWdJbnQoaSArIDEp
KTsKK30KK3sKKyAgICBsZXQgbWF4ID0gMHg3ZmZmZmZmZm47CisgICAgbGV0IHJlc3VsdCA9IDB4
ODAwMDAwMDBuOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAg
IHNob3VsZEJlKGluYyhtYXgpLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvYmlnaW50MzItbXVsLW92ZXJmbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVs
LW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZDRlMzliYTZiYTU4Y2YzYWU0NGZmODNmZmIyYjdj
YzA5ZmM5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1tdWwt
b3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG11bChhLCBi
KSB7CisgICAgcmV0dXJuIGEgKiBiOworfQorbm9JbmxpbmUobXVsKTsKKworeworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKG11bChCaWdJbnQo
aSksIDJuKSwgQmlnSW50KGkgKiAyKSk7Cit9Cit7CisgICAgbGV0IG1heCA9IDB4N2ZmZmZmZmZu
OworICAgIGxldCByZXN1bHQgPSAweGZmZmZmZmZlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShtdWwobWF4LCAybiksIHJlc3VsdCk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMgYi9K
U1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3N2Ez
YzU4ODVkMWFiNzU0ZTgzNmNlYTdmN2I1NTc4MGZlM2FlZQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2JpZ2ludDMyLXN1Yi1vdmVyZmxvdy5qcwpAQCAtMCwwICsxLDIwIEBACitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gc3ViKGEsIGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9Citub0lu
bGluZShzdWIpOworCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAg
ICAgICAgc2hvdWxkQmUoc3ViKEJpZ0ludChpKSwgMm4pLCBCaWdJbnQoaSAtIDIpKTsKK30KK3sK
KyAgICBsZXQgbWluID0gLTB4N2ZmZmZmZmZuIC0gMW47CisgICAgbGV0IHJlc3VsdCA9IC0weDgw
MDAwMDAybjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShzdWIobWluLCAybiksIHJlc3VsdCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397612</attachid>
            <date>2020-04-25 22:55:36 -0700</date>
            <delta_ts>2020-04-26 13:40:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211038-20200425225528.patch</filename>
            <type>text/plain</type>
            <size>47458</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5lZTRhNWRmNjJmMWQyOTYx
MGQ1ODY4ZTRjMzEyNjU0ZjllYjYzYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVlU3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMg
c2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbiBiYXNlZCBvbiBBcml0aFByb2ZpbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBwcm9maWxlIGZlZWRiYWNrIHRvIFZhbHVlQWRkLCBWYWx1ZVN1YiwgVmFsdWVNdWws
IEluYywgRGVjIHRvIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlvbi4KKworICAgICAgICBPdXIg
SGVhcEJpZ0ludCB2LnMuIEJpZ0ludDMyIHN0cmF0ZWd5IGlzIHNpbXBsZXIgdGhhbiBEb3VibGUg
di5zLiBJbnQzMiBzdHJhdGVneTogd2UgYWx3YXlzCisgICAgICAgIHByZWZlciBCaWdJbnQzMiBv
dmVyIEhlYXBCaWdJbnQuIFRoaXMgaXMgYmVjYXVzZSBIZWFwQmlnSW50IGNhbGN1bGF0aW9uIGFu
ZCBjb252ZXJzaW9uIHJlcXVpcmVzCisgICAgICAgIHNvIG11Y2ggaGlnaGVyIGNvc3QgdGhhbiBC
aWdJbnQzMi4gVGhpcyB0cmFkZW9mZiBpcyBsYXJnZWx5IGRpZmZlcmVudCBmcm9tIERvdWJsZSB2
LnMuIEludDMyLgorICAgICAgICBTbyBrZWVwaW5nIEhlYXBCaWdJbnQgaXMgc2ltcGx5IGluZWZm
aWNpZW50IGlmIHdlIGNhbiB1c2UgQmlnSW50MzIuCisKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IEFyaXRoUHJvZmlsZSdzIGZlZWRiYWNrIGlzIGFsc28gdmVyeSBzaW1wbGUuIElmIHdlIHNlZSBI
ZWFwQmlnSW50LCB0aGlzIG1lYW5zCisgICAgICAgIG92ZXJmbG93IGhhcHBlbnMuIEluIERGRywg
d2UgcHJvcGFnYXRlIHRoaXMgaW5mb3JtYXRpb24gdG8gVmFsdWVBZGQsIFZhbHVlU3ViLCBhbmQg
VmFsdWVNdWwgbm9kZXMKKyAgICAgICAgYW5kIHJlY29yZCBpdCBpbiBERkdOb2RlRmxhZ3MuIEFu
ZCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uLCB3ZSBjaGFuZ2UgdGhlIHByZWRpY3Rpb24gYW5k
CisgICAgICAgIHNwZWN1bGF0aW9uIGluIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGZpeHVw
IHBoYXNlLgorCisgICAgICAgIFdlIGNoYW5nZSBleGl0IHJlYXNvbiBmcm9tIG92ZXJmbG93aW5n
IGZyb20gT3ZlcmZsb3cgdG8gQmlnSW50MzJPdmVyZmxvdyBzaW5jZSBPdmVyZmxvdyBpcyBzb2xl
bHkKKyAgICAgICAgdXNlZCBmb3IgSW50MzIgY2FzZSwgYW5kIHdlIGhhdmUgSW50NTJPdmVyZmxv
dyBmb3IgSW50NTIgY2FzZS4gV2Ugc2hvdWxkIGhhdmUgQmlnSW50MzJPdmVyZmxvdyBmb3IgQmln
SW50MzIKKyAgICAgICAgdG8gcHJlY2lzZWx5IHJlY29yZCBhbmQgdGVsbCB0ZWxsIGFib3V0IHdo
YXQgaGFwcGVucyBpbiBERkcgYXMgYSBmZWVkYmFjayBmb3IgdGhlIG5leHQgY29tcGlsYXRpb24u
CisKKyAgICAgICAgV2UgYWRkIEJpZ0ludDMyIHNwZWN1bGF0aW9uIGZvciBWYWx1ZVN1Yi4gUHJl
dmlvdXNseSwgd2UgbWlzc2VkIHRoYXQgaW4gZml4dXAgcGhhc2UgYW5kIHdlIGFsd2F5cworICAg
ICAgICBzcGVjdWxhdGUgVmFsdWVTdWIgd2l0aCBBbnlCaWdJbnRVc2Ugb3IgSGVhcEJpZ0ludFVz
ZS4gTm90IGl0IGNhbiB1c2UgQmlnSW50MzJVc2UuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW5j
IC8gRGVjJ3MgZml4dXAgcGhhc2UgdG8gdXNlIEJpZ0ludCBwYXRoLiBQcmV2aW91c2x5LCBpdCB3
YXMgYWx3YXlzIHVzaW5nIFVudHlwZWRVc2Ugc2luY2UKKyAgICAgICAgbm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKCkgcmV0dXJucyB0cnVlIGZvciBC
aWdJbnQuIFdlIGZpeCB0aGUgb3JkZXJpbmcgb2YKKyAgICAgICAgc3BlY3VsYXRpb24gYXR0ZW1w
dHMgYXMgaXQgaXMgZG9uZSBpbiB0aGUgb3RoZXIgcGxhY2VzIGluIGZpeHVwIHBoYXNlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggb2ZmZXJzIDcuOSUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4g
c3Vuc3BpZGVyLXNoYTEtYmlnLWludC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAgICAgICAgICBQYXRjaGVkCisKKyAgICAg
ICAgICAgIHN1bnNwaWRlci1zaGExLWJpZy1pbnQgICAgICAxMzQuNTY2OCstMi44Njk1ICAgICBe
ICAgIDEyNC42NzQzKy0wLjc1NDEgICAgICAgIF4gZGVmaW5pdGVseSAxLjA3OTN4IGZhc3Rlcgor
CisgICAgICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2lu
ZFRvU3RyaW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtl
U2FmZSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VEaXZTYWZlKToK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6YmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQz
Mik6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpt
YXlIYXZlQmlnSW50MzJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVI
ZWFwQmlnSW50UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlQmlnSW50
UmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjYW5TcGVjdWxhdGVCaWdJbnQzMik6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6Y2FuU3BlY3VsYXRlSW50NTIpOgorICAgICAgICAq
IGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmR1bXBOb2RlRmxhZ3Mp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuaDoKKyAgICAgICAgKEpTQzo6REZHOjpub2Rl
TWF5SGF2ZUhlYXBCaWdJbnQpOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVDYW5TcGVjdWxhdGVC
aWdJbnQzMik6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVIZWFwQmlnSW50KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVZh
bHVlRGl2KToKKwogMjAyMC0wNC0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBEZWFsIHdpdGggYW5vdGhlciByb3VuZCBvZiBYY29kZSB1cGdyYWRl
IGNoZWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5k
ZXggZmYyNzYxNmM0Yzg5MTA4Y2I1MjBhOWFiZDVjZDRjYzAwZGRlZDNlMi4uMjM0NjA1MmMwMTg2
NzlmNWZjZjI0YjNkMGRlNWU5N2FkMGI1MzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC04OCw2ICs4OCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRL
aW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJFeGNlcHRpb25DaGVj
ayI7CiAgICAgY2FzZSBHZW5lcmljVW53aW5kOgogICAgICAgICByZXR1cm4gIkdlbmVyaWNVbndp
bmQiOworICAgIGNhc2UgQmlnSW50MzJPdmVyZmxvdzoKKyAgICAgICAgcmV0dXJuICJCaWdJbnQz
Mk92ZXJmbG93IjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gIlVua25vd24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuaAppbmRleCA5MTA1ZGFjYTVkODFkM2VlMTczYTlkMTVlYWNhMWRjZWY4OWQ1MDY5Li42MTFk
NDdhZjQ1OWYyOTJjNDE1MDZjNzZmY2ZiM2Q0MWVkODA0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtNTUsNiArNTUsNyBAQCBlbnVtIEV4aXRLaW5k
IDogdWludDhfdCB7CiAgICAgRGVidWdnZXJFdmVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2Ug
bmVlZCB0byBzZXJ2aWNlIHRoZSBkZWJ1Z2dlci4KICAgICBFeGNlcHRpb25DaGVjaywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYSBkaXJlY3QgZXhjZXB0aW9uIGNoZWNrIHNob3dlZCB0aGF0IHdlIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmcm9tIGEgQyBjYWxsLgogICAgIEdlbmVyaWNVbndpbmQsIC8vIFdl
IGV4aXRlZCBiZWNhdXNlIHdlIGFycml2ZWQgYXQgdGhpcyBPU1IgZXhpdCBmcm9tIGdlbmVyaWNV
bndpbmQuCisgICAgQmlnSW50MzJPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2YgYW4g
QmlnSW50MzIgb3ZlcmZsb3cuCiB9OwogCiBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4
aXRLaW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKaW5kZXggOWUzNTcxZmI5OWYxMjE2NzU1ZjE5Yzg0YzhiYmJjMWMyMDEzNjkyNi4uOWY2
M2Q4NDdkOTMyOTY0YmRiNWUyM2IyMjlkOWQ2NTg5NTczNTRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTEwMCw3ICsxMDAsMTIg
QEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2wKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQgdGhhdCBpcyBhbGxvY2F0ZWQg
b24gdGhlIGhlYXAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIHNtYWxsIEJpZ0ludCB0aGF0IGlzIGlubGluZSB0aGUgSlNWYWx1ZQorI2lmIFVTRShCSUdJ
TlQzMikKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCaWdJbnQzMiB8IFNwZWNIZWFwQmlnSW50OworI2Vs
c2UKKy8vIFdlIHNob3VsZCBub3QgaW5jbHVkZSBTcGVjQmlnSW50MzIuIFdlIGFyZSB1c2luZyBT
cGVjQmlnSW50IGluIHZhcmlvdXMgcGxhY2VzIGxpa2UgcHJlZGljdGlvbi4gSWYgdGhpcyBpbmNs
dWRlcyBTcGVjQmlnSW50MzIsIGZpeHVwIHBoYXNlIGlzIGNvbmZ1c2VkIGlmICFVU0UoQklHSU5U
MzIpIHNpbmNlIGl0IGlzIG5vdCB1c2luZyBBbnlCaWdJbnRVc2UuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjSGVhcEJpZ0ludDsKKyNlbmRpZgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRGF0YVZpZXdPYmplY3QgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNEYXRhVmlldy4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBT
cGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2MgfCBTcGVjQmlnSW50OyAv
LyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxP
YmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBT
cGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmpl
Y3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKaW5kZXggNjEwMWE3OTdjMDI0OTQ4MDE2ZjY1ZDA3MWZhZGFkZjkzZmIyYjk1Yy4uYmZjMTZk
OWRhMjllMDg1YTgzYTA4OTk2NTMyODY1NjVmNDU1NTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtNzY2LDggKzc2NiwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBub2RlLT5iaW5hcnlV
c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQoKTsKQEAg
LTEwNTYsOCArMTA1OCwxMCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Ly8gdGhlIGZvcm1hdCBvZiBvdXIgcmVzdWx0OgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk4MgogICAgICAgICAgICAgc2V0VHlwZUZv
ck5vZGUobm9kZSwgU3BlY0JpZ0ludCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+YmluYXJ5
VXNlS2luZCgpID09IEFueUJpZ0ludFVzZSB8fCBub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmln
SW50MzJVc2UpCisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJp
Z0ludFVzZSkpCiAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQmlnSW50KTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkKKyAg
ICAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCaWdJbnQzMik7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDE5MzdmZTQ3
YmUxMGQwNTIwMjZlYjNjNmQ1ZTIzZjVhYzZhYTk4YS4uMjA1NDRjY2Q3MzBlMWMxYjRiNjhmYmVj
NmZhMTk2OTJmZWNhYjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBjbGFzcyBCeXRlQ29kZVBh
cnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJs
ZVJlc3VsdCk7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZU5vbk51bWVyaWMo
KSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJp
Y1Jlc3VsdCk7Ci0gICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUJpZ0ludCgpKQot
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQp
OworICAgICAgICAgICAgaWYgKG9ic2VydmVkLmRpZE9ic2VydmVCaWdJbnQzMigpKQorICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCk7Cisg
ICAgICAgICAgICBpZiAob2JzZXJ2ZWQuZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJ
bnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlI
YXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIFZhbHVlTXVsOgpAQCAtMTAzMCw4ICsxMDMyLDEwIEBAIGNsYXNzIEJ5dGVDb2Rl
UGFyc2VyIHsKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKICAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVOb25O
dW1lcmljKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5v
bk51bWVyaWNSZXN1bHQpOwotICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2
ZUJpZ0ludCgpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnRSZXN1bHQpOworICAgICAgICAgICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUJp
Z0ludDMyKCkpCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJp
Z0ludDMyUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVI
ZWFwQmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUhlYXBCaWdJbnRSZXN1bHQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKQEAgLTEwNDksOCAr
MTA1MywxMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwogICAgICAgICAgICAg
aWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWVyaWMoKSkKICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCk7Ci0gICAgICAg
ICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICAg
ICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCk7CisgICAgICAgICAg
ICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNlcnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpOworICAgICAgICAg
ICAgaWYgKGFyaXRoUHJvZmlsZS0+ZGlkT2JzZXJ2ZUhlYXBCaWdJbnQoKSB8fCBtX2lubGluZVN0
YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCaWdJbnQz
Mk92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZl
SGVhcEJpZ0ludFJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0x
MDk5LDggKzExMDUsMTEgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSB8IE5vZGVNYXlOZWdaZXJv
SW5CYXNlbGluZSk7CiAKICAgICAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZUZv
ckJ5dGVjb2RlSW5kZXgobV9jdXJyZW50SW5kZXgpOwotICAgICAgICBpZiAoYXJpdGhQcm9maWxl
LT5kaWRPYnNlcnZlQmlnSW50KCkpCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0KTsKKworICAgICAgICBpZiAoYXJpdGhQcm9maWxlLT5kaWRPYnNl
cnZlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVC
aWdJbnQzMlJlc3VsdCk7CisgICAgICAgIGlmIChhcml0aFByb2ZpbGUtPmRpZE9ic2VydmVIZWFw
QmlnSW50KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7CiAKICAgICAgICAgcmV0dXJuIG5v
ZGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggOWZmYjBlMWNkMjdiNTQ0ODZmOTU1MjQwNWYyOTUyNmQyYjhmMWRhNS4uM2E2ZmRjNzcy
NmVjYjc0YzFkYWMyZjBjNGE1ZjIzMDJjMGQ1MzU3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODgsNiArMTg4LDQyIEBAIGNsYXNzIEZpeHVw
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogCiAgICAgICAgIGNhc2UgSW5jOgogICAgICAgICBjYXNl
IERlYzogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlSGVhcEJpZ0ludCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBtaWdodCBvcHRpbWl6ZSBpbmMvZGVjIHRvIGEg
c3BlY2lhbGl6ZWQgZnVuY3Rpb24gY2FsbCBpbnN0ZWFkIGluIHRoYXQgY2FzZS4KKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7
CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9u
U2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50
LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25z
dGFudE9uZS5nZXQoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0
Q2hpbGQyKEVkZ2Uobm9kZUNvbnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVk
Z2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICBm
aXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gSGVhcEJpZ0ludHMgYXJlIGNlbGxzLCBzbyB0aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0
SlMgaXMgZ29vZCBoZXJlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5h
cnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1
Yik7CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNCaWdJbnQzMiwgSlNDb25zdGFu
dCwgbm9kZS0+b3JpZ2luLCBPcEluZm8obV9ncmFwaC5mcmVlemUoanNCaWdJbnQzMigxKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4uc2V0Q2hpbGQyKEVkZ2Uobm9kZUNv
bnN0YW50T25lKSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVmYXVsdCBvZiBO
b2RlUmVzdWx0SlMgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNt
YWxsIEJpZ0ludHMgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBkb2Vz
IG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkgdm0p
LCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1bmN0
aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgICAgbm9kZS0+c2V0
T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7CisgICAgICAgICAgICAgICAgTm9k
ZSogbm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5C
bG9jaywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dy
YXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxk
cmVuLnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOworICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgZml4
RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAvLyBU
aGUgZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCisjZW5kaWYgLy8gVVNFKEJJ
R0lOVDMyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1l
dGljKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIwMiwzNCArMjM4LDYgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEludDMyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZUhlYXBCaWdJbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUg
ZnJlZXppbmcgZG9lcyBub3QgYXBwZWFyIHVzZWZ1bCAoc2luY2UgdGhlIEpTQ2VsbCBpcyBrZXB0
IGFsaXZlIGJ5IHZtKSwgYnV0IGl0IHJlZnVzZXMgdG8gY29tcGlsZSBvdGhlcndpc2UuCi0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIG1pZ2h0IG9wdGltaXplIGluYy9kZWMgdG8gYSBzcGVj
aWFsaXplZCBmdW5jdGlvbiBjYWxsIGluc3RlYWQgaW4gdGhhdCBjYXNlLgotICAgICAgICAgICAg
ICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IFZhbHVlQWRkIDogVmFsdWVTdWIpOwotICAgICAg
ICAgICAgICAgIG5vZGVDb25zdGFudE9uZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9p
bmRleEluQmxvY2ssIFNwZWNIZWFwQmlnSW50LCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9w
SW5mbyhtX2dyYXBoLmZyZWV6ZSh2bSgpLmhlYXBCaWdJbnRDb25zdGFudE9uZS5nZXQoKSkpKTsK
LSAgICAgICAgICAgICAgICBub2RlLT5jaGlsZHJlbi5zZXRDaGlsZDIoRWRnZShub2RlQ29uc3Rh
bnRPbmUpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBIZWFwQmlnSW50cyBhcmUgY2VsbHMsIHNvIHRo
ZSBkZWZhdWx0IG9mIE5vZGVSZXN1bHRKUyBpcyBnb29kIGhlcmUKLSNpZiBVU0UoQklHSU5UMzIp
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+c2V0T3Aob3AgPT0gSW5jID8gVmFs
dWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAgbm9kZUNvbnN0YW50T25lID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3BlY0JpZ0ludDMyLCBKU0Nv
bnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShqc0JpZ0ludDMyKDEp
KSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuLnNldENoaWxkMihFZGdlKG5vZGVD
b25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5j
aGlsZDIoKSk7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgb2YgTm9kZVJlc3VsdEpT
IGlzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGNvbnNp
ZGVyIGhhdmluZyBhIHNwZWNpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNtYWxsIEJpZ0ludHMgaW5z
dGVhZC4KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBmcmVlemluZyBk
b2VzIG5vdCBhcHBlYXIgdXNlZnVsIChzaW5jZSB0aGUgSlNDZWxsIGlzIGtlcHQgYWxpdmUgYnkg
dm0pLCBidXQgaXQgcmVmdXNlcyB0byBjb21waWxlIG90aGVyd2lzZS4KLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogd2UgbWlnaHQgb3B0aW1pemUgaW5jL2RlYyB0byBhIHNwZWNpYWxpemVkIGZ1
bmN0aW9uIGNhbGwgaW5zdGVhZCBpbiB0aGF0IGNhc2UuCi0gICAgICAgICAgICAgICAgbm9kZS0+
c2V0T3Aob3AgPT0gSW5jID8gVmFsdWVBZGQgOiBWYWx1ZVN1Yik7Ci0gICAgICAgICAgICAgICAg
bm9kZUNvbnN0YW50T25lID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
aywgU3BlY0JpZ0ludDMyLCBKU0NvbnN0YW50LCBub2RlLT5vcmlnaW4sIE9wSW5mbyhtX2dyYXBo
LmZyZWV6ZShqc0JpZ0ludDMyKDEpKSkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnNldENoaWxkMihFZGdlKG5vZGVDb25zdGFudE9uZSkpOwotICAgICAgICAgICAgICAgIGZpeEVk
Z2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RWRn
ZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBvZiBOb2RlUmVzdWx0SlMgaXMgZ29vZCBoZXJlCi0jZW5kaWYgLy8gVVNFKEJJR0lO
VDMyKQogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3Vs
YXRlSW50NTIoKSkgewogICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKG9wID09IEluYyA/IEFy
aXRoQWRkIDogQXJpdGhTdWIpOwogICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShB
cml0aDo6Q2hlY2tPdmVyZmxvdyk7CkBAIC0yNjIsMTAgKzI3MCwxNiBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50
MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJV
c2U+KGNoaWxkMSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4oY2hpbGQy
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
aWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIubm9k
ZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDEpOwog
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihjaGlsZDIpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICNl
bmRpZgogCkBAIC0zMTEsNyArMzI1LDE2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdl
bmVyYXRlKTsKKyAgICAgICAgICAgICAgICAvLyBTaGlmdCBjYW4gdGhyb3cgUmFuZ2VFcnJvci4K
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIFZhbHVlQml0WG9yOgorICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKKyAgICAg
ICAgICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgorICAgICAgICAgICAgICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAK
QEAgLTUxMyw3ICs1MzYsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KGNoaWxkMSk7CiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihjaGlsZDIpOwogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoY2hp
bGQxLm5vZGUoKSwgY2hpbGQyLm5vZGUoKSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIEZpeHVwUGFzcykp
IHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihjaGlsZDEpOwogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChjaGlsZDEubm9kZSgpLCBjaGlsZDIu
bm9kZSgpKSkgewpAQCAtNjA2LDcgKzYyOSw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogCiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50KGxl
ZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkgewogI2lmIFVTRShCSUdJTlQzMikK
LSAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobGVmdENo
aWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1f
Z3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBGaXh1cFBhc3Mp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
SGVhcEJpZ0ludChsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKQEAgLTcz
Nyw3ICs3NjAsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
fQogCiAgICAgICAgIGNhc2UgVmFsdWVQb3c6IHsKLSAgICAgICAgICAgIGlmIChOb2RlOjpzaG91
bGRTcGVjdWxhdGVIZWFwQmlnSW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQx
KCkubm9kZSgpKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUhlYXBC
aWdJbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAg
ICAgICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDIoKSk7CiAg
ICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAyOGJmMTUyMDQxZDMzODYzNzZhNjZkY2Ji
MWJlOTU1YjliM2Y0NDU5Li43OTY1ZDI3MGRiMGUwODcxYTcyZDVhNmMyNWIxNDRjOTM0NWM1NmVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00MTAsNiArNDEwLDI2IEBA
IGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgICAgICYm
ICFoYXNFeGl0U2l0ZShub2RlLCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAKKyNpZiBVU0UoQklH
SU5UMzIpCisgICAgYm9vbCBiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKE5vZGUq
IG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICBpZiAoIW5vZGUtPmNh
blNwZWN1bGF0ZUJpZ0ludDMyKHBhc3MpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoaGFzRXhpdFNpdGUobm9kZSwgQmlnSW50MzJPdmVyZmxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJ
bnQzMihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7CisgICAg
fQorCisgICAgYm9vbCB1bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoTm9kZSogbm9k
ZSwgUHJlZGljdGlvblBhc3MgcGFzcykKKyAgICB7CisgICAgICAgIGlmICghbm9kZS0+Y2FuU3Bl
Y3VsYXRlQmlnSW50MzIocGFzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChoYXNFeGl0U2l0ZShub2RlLCBCaWdJbnQzMk92ZXJmbG93KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVCaWdJbnQzMigpOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmlu
Z09iamVjdEFjY2Vzcyhjb25zdCBDb2RlT3JpZ2luJik7CiAKICAgICBib29sIGdldFJlZ0V4cFBy
b3RvdHlwZVByb3BlcnR5KEpTT2JqZWN0KiByZWdFeHBQcm90b3R5cGUsIFN0cnVjdHVyZSogcmVn
RXhwUHJvdG90eXBlU3RydWN0dXJlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKU1ZhbHVlJiBy
ZXR1cm5KU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggOWY5ODA5
NTNkMGYwNzU5ODA3NDhjOGE3MDFkNjRhMTMxNDgwN2ZiMS4uZWJlMDE1ODY2YmI3OTkxNGFkMjRh
OGJiYzY2ZGE5MWQ4Nzc1N2FmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAg
LTEyMDIsOSArMTIwMiwxOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX2ZsYWdz
ICYgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0OwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2
ZUJpZ0ludDMyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVCaWdJbnQzMlJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIG1heUhhdmVIZWFwQmlnSW50
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVIZWFw
QmlnSW50UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgbWF5SGF2ZUJpZ0ludFJlc3VsdCgpCiAg
ICAgewotICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlQmlnSW50UmVzdWx0Owor
ICAgICAgICByZXR1cm4gbWF5SGF2ZUJpZ0ludDMyUmVzdWx0KCkgfHwgbWF5SGF2ZUhlYXBCaWdJ
bnRSZXN1bHQoKTsKICAgICB9CiAKICAgICBib29sIGhhc05ld0FycmF5QnVmZmVyRGF0YSgpCkBA
IC0yODY2LDYgKzI4NzYsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJu
IG5vZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFncygpLCBzb3VyY2UpOwogICAgIH0K
KworICAgIGJvb2wgY2FuU3BlY3VsYXRlQmlnSW50MzIoUmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ug
c291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVCaWdJbnQzMihh
cml0aE5vZGVGbGFncygpLCBzb3VyY2UpOworICAgIH0KICAgICAKICAgICBSYXJlQ2FzZVByb2Zp
bGluZ1NvdXJjZSBzb3VyY2VGb3IoUHJlZGljdGlvblBhc3MgcGFzcykKICAgICB7CkBAIC0yODg0
LDYgKzI4OTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gY2FuU3BlY3VsYXRl
SW50NTIoc291cmNlRm9yKHBhc3MpKTsKICAgICB9CiAKKyAgICBib29sIGNhblNwZWN1bGF0ZUJp
Z0ludDMyKFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgeworICAgICAgICByZXR1cm4gY2FuU3Bl
Y3VsYXRlQmlnSW50MzIoc291cmNlRm9yKHBhc3MpKTsKKyAgICB9CisKICAgICBib29sIGhhc1R5
cGVMb2NhdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBQcm9maWxlVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAppbmRleCBhMDkxYzA5
OGQ1MDk1ZWUxMmQxOGI2ZDVmZTgzOTQxZjY2Y2Y0NzE3Li5kNmNlNmE2MGMxMzA1Nzg2ZTkxM2Ji
MzM3M2U0MjAwMzRjMzA2ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
RmxhZ3MuY3BwCkBAIC04OCw4ICs4OCwxMSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJl
YW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgIGlmIChmbGFncyAmIE5vZGVNYXlI
YXZlRG91YmxlUmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91Ymxl
UmVzdWx0Iik7CiAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZUJpZ0ludFJlc3VsdCkKLSAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZUJpZ0ludFJlc3VsdCIpOworICAgIGlmIChm
bGFncyAmIE5vZGVNYXlIYXZlQmlnSW50MzJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heUhhdmVCaWdJbnQzMlJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVIZWFwQmlnSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlSGVh
cEJpZ0ludFJlc3VsdCIpOwogCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1lcmlj
UmVzdWx0KQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtZXJpY1Jlc3Vs
dCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKaW5kZXggYjBiYTZi
YjdlOGFmZjRmYjEyNjY3YjFmYzg5NzY2MmQ1ZWJmZDJkNi4uMmViZTM1NDRmNjAxMWRiZjVmYjFk
MTA2MmZhNGQxYTI4ZjBhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVG
bGFncy5oCkBAIC00MiwzNyArNDIsMzcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogI2RlZmluZSBOb2RlUmVzdWx0SW50NTIgICAgICAgICAgICAgICAgICAweDAwMDUKICNkZWZp
bmUgTm9kZVJlc3VsdEJvb2xlYW4gICAgICAgICAgICAgICAgMHgwMDA2CiAjZGVmaW5lIE5vZGVS
ZXN1bHRTdG9yYWdlICAgICAgICAgICAgICAgIDB4MDAwNwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKwogI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAw
eDAwMDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90
IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAg
ICAgICAgICAgICAgICAgMHgwMDEwCi0gICAgCi0jZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAg
ICAgICAgICAgICAgIDB4MDA3ZTAKKwogI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAg
ICAgICAgICAweDAwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAg
IDB4MDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDA4
MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAwMTAwCiAjZGVm
aW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDAyMDAKICNkZWZpbmUgTm9k
ZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwMDQwMAotI2RlZmluZSBOb2RlTWF5SGF2
ZU5vbk51bWVyaWNSZXN1bHQgICAgICAweDAwODAwCi0vLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUg
c2VwYXJhdGUgZmxhZ3MgZm9yIEhlYXBCaWdJbnQgYW5kIEJpZ0ludDMyLCBjdXJyZW50bHkgcHJl
ZGljdGlvbiBwcm9wYWdhdGlvbiB3aWxsIHBlc3NpbWl6ZSB0aGluZ3MuCi0jZGVmaW5lIE5vZGVN
YXlIYXZlQmlnSW50UmVzdWx0ICAgICAgICAgIDB4MDEwMDAKLSNkZWZpbmUgTm9kZU1heUhhdmVO
b25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhh
dmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnRSZXN1bHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sg
ICAgICAgIDB4M2UwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAw
eDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAv
LyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0
IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMu
Ci0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUg
cmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQg
b2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgMHgw
ODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBj
b250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChs
aWtlIHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAg
KE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5v
ZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAg
ICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3du
IHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVp
cmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4
ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRv
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVl
cywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQg
YWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlTWF5SGF2ZUJpZ0ludDMyUmVzdWx0ICAgICAgICAw
eDAwODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCAgICAgIDB4MDEwMDAK
KyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0ICAgICAgMHgwMjAwMAorI2RlZmlu
ZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1
bHQgfCBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGlu
ZSB8IE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgfCBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUg
fCBOb2RlTWF5TmVnWmVyb0luREZHIHwgTm9kZU1heUhhdmVCaWdJbnQzMlJlc3VsdCB8IE5vZGVN
YXlIYXZlSGVhcEJpZ0ludFJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtZXJpY1Jlc3VsdCkKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1lcmljUmVzdWx0IHwgTm9kZU1heUhhdmVCaWdJbnQz
MlJlc3VsdCB8IE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCkKKworI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VCb3R0b20gICAgICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc051bWJlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9y
IGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05l
Z1plcm8gICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBi
ZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJl
ZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDQwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhp
cyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9u
Z2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBh
dm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVC
eXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBO
b2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
IHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBO
b2RlQnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KQogCiAj
ZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNr
IHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAg
ICAgICAgICAgICAgICAgMHg0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNl
LCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxl
IGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAg
MHg4MDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAwMAorI2RlZmluZSBOb2Rl
TWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxh
ZzIgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAKIAogdHlwZWRlZiB1aW50MzJfdCBOb2RlRmxh
Z3M7CiAKQEAgLTE1OCw2ICsxNTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVj
dWxhdGVJbnQ1MihOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG5vZGVNYXlIYXZlSGVhcEJpZ0lu
dChOb2RlRmxhZ3MgZmxhZ3MsIFJhcmVDYXNlUHJvZmlsaW5nU291cmNlKQoreworICAgIHJldHVy
biAhIShmbGFncyAmIE5vZGVNYXlIYXZlSGVhcEJpZ0ludFJlc3VsdCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlQmlnSW50MzIoTm9kZUZsYWdzIGZsYWdzLCBSYXJl
Q2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCit7CisgICAgLy8gV2UgYWx3YXlzIGF0dGVtcHQg
dG8gcHJvZHVjZSBCaWdJbnQzMiBhcyBtdWNoIGFzIHBvc3NpYmxlLiBJZiB3ZSBzZWUgSGVhcEJp
Z0ludCwgd2Ugb2JzZXJ2ZWQgb3ZlcmZsb3cuCisgICAgLy8gRklYTUU6IEV4dGVuZCB0aGlzIGlu
Zm9ybWF0aW9uIGJ5IHRpZXJlZCBwcm9maWxpbmcgKGZyb20gQmFzZWxpbmUsIERGRyBldGMuKS4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDM5Cisg
ICAgcmV0dXJuICFub2RlTWF5SGF2ZUhlYXBCaWdJbnQoZmxhZ3MsIHNvdXJjZSk7Cit9CisKIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNjg5CiBzdGF0aWMgaW5saW5lIE5vZGVGbGFncyBjYW5vbmljYWxSZXN1
bHRSZXByZXNlbnRhdGlvbihOb2RlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDY2YjlkNjBhMzQwYTY4MmE4MmM4ZjQzYzU0YzZiMmY2MWU1MjFlZjguLjBhYmRiNWI1MmQy
Mzc5OWE4YTNiNzlkNzAyYWViNDM2MDA5MzlmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0yMTAsNyArMjEwLDEyIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTdHJpbmdP
YmplY3RTcGVjdWxhdGlvbihsZWZ0KSB8fCBpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRp
b24ocmlnaHQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVm
aW5pdGVseSBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3Vs
YXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJp
Z0ludDMyKG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQzMik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNl
IGlmIChpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmln
aHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
QmlnSW50KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CkBAIC0yNzgsNyArMjgzLDEy
IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1
MkFueSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50
U3BlY3VsYXRpb24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCisgICAgICAg
ICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBlbHNlIGlmICht
X2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZSwgbV9wYXNzKSkK
KyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0lu
dDMyKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRp
b24obGVmdCkgJiYgaXNCaWdJbnRTcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQpOwogICAgICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5KTsKQEAgLTMwNCw3ICszMTQsMTIgQEAgY2xhc3MgUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyQW55KTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9uKHByZWRpY3Rpb24pKTsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmlnSW50U3BlY3VsYXRpb24ocHJlZGljdGlvbikp
CisgICAgICAgICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChtX2dyYXBoLnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLCBt
X3Bhc3MpKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihT
cGVjQmlnSW50MzIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNCaWdJbnRT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oU3BlY0JpZ0ludCk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkp
OwpAQCAtMzg2LDcgKzQwMSwxMiBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjSW50NTJBbnkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVk
RG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBpc0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYm
IGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQorICAgICAgICAgICAgICAgIH0KKyNpZiBVU0Uo
QklHSU5UMzIpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3AgPT0gVmFsdWVNdWwgJiYgbV9n
cmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUsIG1fcGFzcykpCisg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCaWdJbnQz
Mik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcCA9PSBWYWx1ZU11bCAmJiBp
c0JpZ0ludFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzQmlnSW50U3BlY3VsYXRpb24ocmlnaHQpKQog
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQmlnSW50
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDdhMGEyNTBmY2MxNDEzYWU5MTBm
Yzk4OTFlYjQzOTAzMjk5MjAxZGYuLmQyMDczMmQ2ZTdjMzhiNzk3MTAyODE3OTc5YWYwMWQ3OWU0
ZDU2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC00MDI2LDYgKzQwMjYsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxk
MigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhl
ciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFyeSB1c2Uga2luZHMgYXJlIEJpZ0ludFVz
ZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5kIGFjY2VwdGluZyBvdmVyZmxvdy4KKyAg
ICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBp
bmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDk1NworICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDAKICAgICBpZiAobm9kZS0+
aXNCaW5hcnlVc2VLaW5kKEJpZ0ludDMyVXNlKSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgbGVmdCh0aGlzLCBsZWZ0Q2hpbGQpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQz
Mk9wZXJhbmQgcmlnaHQodGhpcywgcmlnaHRDaGlsZCk7CkBAIC00MDQwLDEwICs0MDQ0LDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgICAg
IG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQu
dW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFk
ZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6
Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNo
ZWNrKTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC00MTMwLDYgKzQxMzMsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgRWRnZSYg
cmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQorICAgIC8v
IEZJWE1FOiBJbnRyb2R1Y2UgYW5vdGhlciBCaWdJbnQzMiBjb2RlIGdlbmVyYXRpb246IGJpbmFy
eSB1c2Uga2luZHMgYXJlIEJpZ0ludFVzZTMyLCBidXQgcmVzdWx0IGlzIFNwZWNBbnlJbnQgYW5k
IGFjY2VwdGluZyBvdmVyZmxvdy4KKyAgICAvLyBMZXQncyBkaXN0aW5ndWlzaCB0aGVzZSBtb2Rl
cyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1Y2luZyBOb2RlUmVz
dWx0QmlnSW50MzIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDk1NworICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTEwNDAKICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7
CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIG5vZGUt
PmNoaWxkMigpKTsKQEAgLTQxNDQsMTAgKzQxNTEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVTdWIoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihs
ZWZ0R1BSLCByZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BS
LCB0ZW1wR1BSKTsKIAotICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0
ZSB0aGUgb3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sg
PSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwg
dGVtcEdQUiwgcmVzdWx0R1BSKTsKIAotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLCBjaGVjayk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmln
SW50MzJPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOwogCiAgICAgICAgIG1faml0
LmJveEJpZ0ludDMyKHJlc3VsdEdQUik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKQEAgLTQ5NzcsNiArNDk4MywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlVmFsdWVNdWwoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdodENoaWxkID0gbm9kZS0+Y2hp
bGQyKCk7CiAKICNpZiBVU0UoQklHSU5UMzIpCisgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90
aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50
VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93Lgor
ICAgIC8vIExldCdzIGRpc3Rpbmd1aXNoIHRoZXNlIG1vZGVzIGJhc2VkIG9uIHJlc3VsdCB0eXBl
IGluZm9ybWF0aW9uIGJ5IGludHJvZHVjaW5nIE5vZGVSZXN1bHRCaWdJbnQzMi4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTU3CisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgIGlmIChub2Rl
LT5iaW5hcnlVc2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKICAgICAgICAgLy8gRklYTUU6IHRo
ZSBjb2RlIGJldHdlZW4gY29tcGlsZVZhbHVlQWRkLCBjb21waWxlVmFsdWVTdWIgYW5kIGNvbXBp
bGVWYWx1ZU11bCBmb3IgQmlnSW50MzIgaXMgbmVhcmx5IGlkZW50aWNhbCwgc28gdHJ5IHRvIGdl
dCByaWQgb2YgdGhlIGR1cGxpY2F0aW9uLgogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJh
bmQgbGVmdCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC00OTkyLDEwICs1MDAyLDkgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKLSAgICAgICAgLy8gRklYTUU6IGFkZCBz
b21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92
ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CiAKLSAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgY2hlY2spOworICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJpZ0ludDMyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGNoZWNr
KTsKIAogICAgICAgICBtX2ppdC5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwogICAgICAgICBqc1Zh
bHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CkBAIC01MjA5LDYgKzUyMTgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVEaXYoTm9kZSogbm9kZSkKICAgICBFZGdlJiByaWdo
dENoaWxkID0gbm9kZS0+Y2hpbGQyKCk7CiAKICAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRo
IGZvciBCaWdJbnQzMi4gQ3VycmVudGx5IHdlIGdvIHRocm91Z2ggdGhlIHNsb3cgcGF0aCwgYmVj
YXVzZSBvZiBob3cgdWdseSB0aGUgY29kZSBmb3IgRGl2IGdldHMuCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MQogCiAgICAgaWYgKG5vZGUtPmlz
QmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBsZWZ0KHRoaXMsIGxlZnRDaGlsZCk7CkBAIC0xMDgwMiw3ICsxMDgxMiw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUhlYXBCaWdJbnQoRWRnZSBlZGdlLCBHUFJSZWcgY2Vs
bCkKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludChFZGdlIGVkZ2Up
CiB7Ci0gICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjQmlnSW50KSkKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNIZWFwQmlnSW50KSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1ODczMjY2NmVk
OGE1NTlmNTEyZGRmYmI1MzlmZWM4MDBkODY3YmI2Li44NWIxOWU4ZWE1ZTU3NDZiZTViNWFkNTRh
NjMyMDRiMTFiNjI0YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCkBAIC0yMTQzLDYgKzIxNDMsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikKKyAg
ICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJhdGlv
bjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3BlY0Fu
eUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5ndWlz
aCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRyb2R1
Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFy
eVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0Jp
Z0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93
QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTUxLDcgKzIxNTUsNyBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94Qmln
SW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291dC5z
cGVjdWxhdGVBZGQodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBibGVz
c1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmln
aW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3ZlcmZs
b3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFsdWUg
Ym94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNWYWx1
ZShib3hlZFJlc3VsdCk7CkBAIC0yMTgxLDYgKzIxODUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFs
T2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQzMikK
KyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2VuZXJh
dGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMgU3Bl
Y0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0aW5n
dWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBpbnRy
b2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxv
d0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0g
bG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMTg5LDcgKzIxOTcsNyBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94
QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBtX291
dC5zcGVjdWxhdGVTdWIodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAgICBi
bGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
cmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMyT3Zl
cmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBMVmFs
dWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0SlNW
YWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yMjE5LDYgKzIyMjcsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAogI2lmIFVTRShCSUdJTlQz
MikKKyAgICAgICAgLy8gRklYTUU6IEludHJvZHVjZSBhbm90aGVyIEJpZ0ludDMyIGNvZGUgZ2Vu
ZXJhdGlvbjogYmluYXJ5IHVzZSBraW5kcyBhcmUgQmlnSW50VXNlMzIsIGJ1dCByZXN1bHQgaXMg
U3BlY0FueUludCBhbmQgYWNjZXB0aW5nIG92ZXJmbG93LgorICAgICAgICAvLyBMZXQncyBkaXN0
aW5ndWlzaCB0aGVzZSBtb2RlcyBiYXNlZCBvbiByZXN1bHQgdHlwZSBpbmZvcm1hdGlvbiBieSBp
bnRyb2R1Y2luZyBOb2RlUmVzdWx0QmlnSW50MzIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA5NTcKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MAogICAgICAgICBpZiAobV9ub2RlLT5p
c0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9
IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0
ID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0yMjI3LDcgKzIyMzksNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVu
Ym94QmlnSW50MzIocmlnaHQpOwogCiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBt
X291dC5zcGVjdWxhdGVNdWwodW5ib3hlZExlZnQsIHVuYm94ZWRSaWdodCk7Ci0gICAgICAgICAg
ICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgT3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwg
bV9vcmlnaW4pOworICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEJpZ0ludDMy
T3ZlcmZsb3csIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwogCiAgICAgICAgICAgICBM
VmFsdWUgYm94ZWRSZXN1bHQgPSBib3hCaWdJbnQzMihyZXN1bHQpOwogICAgICAgICAgICAgc2V0
SlNWYWx1ZShib3hlZFJlc3VsdCk7CkBAIC0yNjI3LDYgKzI2MzksNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAg
Ly8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVyZQorICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQxCiAgICAgICAgIGlm
IChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSkgewogICAgICAgICAgICAg
TFZhbHVlIGxlZnQgPSBsb3dIZWFwQmlnSW50KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgTFZhbHVlIHJpZ2h0ID0gbG93SGVhcEJpZ0ludChtX25vZGUtPmNoaWxkMigpKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjk3ZTc1
ZjI5ZWEyYTc1MmYzOTI4NWRjZTYzMGQ1MzI0MTMxMjc1ZS4uODc2ZThmODQyMzY1ZGFlZjQ2NDU3
M2ZiZTQzMjA2MDEzYTExZWE4ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0yNSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFZhbHVlQWRkLCBWYXVl
U3ViLCBWYWx1ZU11bCwgSW5jLCBEZWMgc2hvdWxkIHNheSBTcGVjQmlnSW50MzIgcHJlZGljdGlv
biBiYXNlZCBvbiBBcml0aFByb2ZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChhZGQpOgorICAgICAgICAobm9JbmxpbmUp
OgorICAgICAgICAqIHN0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZGVjKToKKyAgICAgICAgKG5vSW5saW5lKToKKyAg
ICAgICAgKiBzdHJlc3MvYmlnaW50MzItaW5jLW92ZXJmbG93LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKGluYyk6CisgICAgICAgIChub0lubGluZSk6CisgICAgICAg
ICogc3RyZXNzL2JpZ2ludDMyLW11bC1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChtdWwpOgorICAgICAgICAobm9JbmxpbmUpOgorICAgICAgICAqIHN0
cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoc3ViKToKKyAgICAgICAgKG5vSW5saW5lKToKKwogMjAyMC0wNC0yNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBmYXN0
IHBhdGggZm9yIEJpZ0ludDMyIGxlZnQtc2hpZnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2JpZ2ludDMyLWFkZC1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWFkZC1v
dmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDkyN2EyZWEzYTAwNmFjYzFmNGJkZDM0MTcyNTNlODAw
YmUxYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItYWRkLW92
ZXJmbG93LmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBhZGQoYSwgYikg
eworICAgIHJldHVybiBhICsgYjsKK30KK25vSW5saW5lKGFkZCk7CisKK3sKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShhZGQoQmlnSW50KGkp
LCAybiksIEJpZ0ludChpICsgMikpOworfQoreworICAgIGxldCBtYXggPSAweDdmZmZmZmZmbjsK
KyAgICBsZXQgcmVzdWx0ID0gMHg4MDAwMDAwMW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoYWRkKG1heCwgMm4pLCByZXN1bHQpOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnaW50MzItZGVjLW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTViZDY5
MmMyOGUyZGExODlhOTgzYWI4NzI2ODE2NDZlMjRmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9iaWdpbnQzMi1kZWMtb3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGRlYyhhKSB7CisgICAgcmV0dXJuIC0tYTsKK30KK25vSW5saW5lKGRl
Yyk7CisKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShkZWMoQmlnSW50KGkpKSwgQmlnSW50KGkgLSAxKSk7Cit9Cit7CisgICAgbGV0IG1p
biA9IC0weDdmZmZmZmZmbiAtIDFuOworICAgIGxldCByZXN1bHQgPSAtMHg4MDAwMDAwMW47Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICAgICAgc2hvdWxkQmUoZGVj
KG1pbiksIHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1p
bmMtb3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1pbmMtb3ZlcmZsb3cuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTJmMWYyMDUxZDRmZjUzOWMxZjJkOGM5NThlNjY0NzY1YjM0ZjI1OQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZ2ludDMyLWluYy1vdmVyZmxvdy5qcwpA
QCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gaW5jKGEpIHsKKyAgICByZXR1cm4g
KythOworfQorbm9JbmxpbmUoaW5jKTsKKworeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKGluYyhCaWdJbnQoaSkpLCBCaWdJbnQoaSArIDEp
KTsKK30KK3sKKyAgICBsZXQgbWF4ID0gMHg3ZmZmZmZmZm47CisgICAgbGV0IHJlc3VsdCA9IDB4
ODAwMDAwMDBuOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAg
IHNob3VsZEJlKGluYyhtYXgpLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvYmlnaW50MzItbXVsLW92ZXJmbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnaW50MzItbXVs
LW92ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZDRlMzliYTZiYTU4Y2YzYWU0NGZmODNmZmIyYjdj
YzA5ZmM5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1tdWwt
b3ZlcmZsb3cuanMKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG11bChhLCBi
KSB7CisgICAgcmV0dXJuIGEgKiBiOworfQorbm9JbmxpbmUobXVsKTsKKworeworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIHNob3VsZEJlKG11bChCaWdJbnQo
aSksIDJuKSwgQmlnSW50KGkgKiAyKSk7Cit9Cit7CisgICAgbGV0IG1heCA9IDB4N2ZmZmZmZmZu
OworICAgIGxldCByZXN1bHQgPSAweGZmZmZmZmZlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKQorICAgICAgICBzaG91bGRCZShtdWwobWF4LCAybiksIHJlc3VsdCk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMgYi9K
U1Rlc3RzL3N0cmVzcy9iaWdpbnQzMi1zdWItb3ZlcmZsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3N2Ez
YzU4ODVkMWFiNzU0ZTgzNmNlYTdmN2I1NTc4MGZlM2FlZQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2JpZ2ludDMyLXN1Yi1vdmVyZmxvdy5qcwpAQCAtMCwwICsxLDIwIEBACitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gc3ViKGEsIGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9Citub0lu
bGluZShzdWIpOworCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAg
ICAgICAgc2hvdWxkQmUoc3ViKEJpZ0ludChpKSwgMm4pLCBCaWdJbnQoaSAtIDIpKTsKK30KK3sK
KyAgICBsZXQgbWluID0gLTB4N2ZmZmZmZmZuIC0gMW47CisgICAgbGV0IHJlc3VsdCA9IC0weDgw
MDAwMDAybjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBz
aG91bGRCZShzdWIobWluLCAybiksIHJlc3VsdCk7Cit9Cg==
</data>
<flag name="review"
          id="413001"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>