<?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>244033</bug_id>
          
          <creation_ts>2022-08-17 08:26:02 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add support for out-of-flow content</short_desc>
          <delta_ts>2022-09-05 11:14:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=244787</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ntim</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1891947</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-08-17 08:26:02 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891948</commentid>
    <comment_count>1</comment_count>
      <attachid>461692</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-17 08:35:04 -0700</bug_when>
    <thetext>Created attachment 461692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891968</commentid>
    <comment_count>2</comment_count>
      <attachid>461693</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-17 10:07:52 -0700</bug_when>
    <thetext>Created attachment 461693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891972</commentid>
    <comment_count>3</comment_count>
      <attachid>461693</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-17 10:28:39 -0700</bug_when>
    <thetext>Comment on attachment 461693
Patch

very nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891973</commentid>
    <comment_count>4</comment_count>
      <attachid>461693</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-17 10:31:37 -0700</bug_when>
    <thetext>Comment on attachment 461693
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:268
&gt; +static inline std::tuple&lt;const InlineDisplay::Box*, const InlineDisplay::Box*&gt; previousAndNextDisplayBox(const Box&amp; outOfFlowBox, const DisplayBoxes&amp; displayBoxes)

&apos;inline&apos; is probably unnecessary

This sound rather generic, maybe it could be something like previousAndNextDisplayBoxForStaticPosition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892090</commentid>
    <comment_count>5</comment_count>
      <attachid>461700</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-17 16:45:04 -0700</bug_when>
    <thetext>Created attachment 461700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892091</commentid>
    <comment_count>6</comment_count>
      <attachid>461701</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-17 16:51:21 -0700</bug_when>
    <thetext>Created attachment 461701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892642</commentid>
    <comment_count>7</comment_count>
      <attachid>461761</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-20 07:45:14 -0700</bug_when>
    <thetext>Created attachment 461761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892671</commentid>
    <comment_count>8</comment_count>
      <attachid>461767</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-20 11:02:19 -0700</bug_when>
    <thetext>Created attachment 461767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892677</commentid>
    <comment_count>9</comment_count>
      <attachid>461767</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-08-20 11:39:11 -0700</bug_when>
    <thetext>Comment on attachment 461767
Patch

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

&gt; Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:374
&gt; +    auto isSpportedFloatingOrPositioned = [&amp;] (auto&amp; renderer) {

typo: isSupportedFloatingOrPositioned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892762</commentid>
    <comment_count>10</comment_count>
      <attachid>461776</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-20 22:32:38 -0700</bug_when>
    <thetext>Created attachment 461776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892791</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-21 07:27:28 -0700</bug_when>
    <thetext>Committed 253628@main (669ac300289c): &lt;https://commits.webkit.org/253628@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461776.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892792</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-21 07:28:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/98945681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461692</attachid>
            <date>2022-08-17 08:35:04 -0700</date>
            <delta_ts>2022-08-17 10:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220817083504.patch</filename>
            <type>text/plain</type>
            <size>17248</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2YTViOGNkYTQwYjZmMDEzMWRmMWY2M2FkNzIzNDgyMzg3MjNkNDk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDA4OjI2OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y2FuVXNlRm9yQ2hpbGQpOgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25z
dHJ1Y3RDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0TW9kZXJuTGluZXMpOgotLS0K
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwICAgICB8ICAgNSArLQog
Li4uL2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgIHwgICA2ICsKIC4u
Li9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICAgICAgICB8IDE0MCArKysrKysr
Ky0tLS0tLS0tLS0KIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNw
cCB8ICAgMiArLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwICAg
IHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAg
fCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCmluZGV4IDM5NDdj
ZDE2ZmZhYy4uZWQ0MjgxOTc0YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmNwcApAQCAtNTAsOCArNTAsOSBAQCBGb3JtYXR0aW5nU3RhdGU6On5Gb3JtYXR0aW5n
U3RhdGUoKQogCiBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ1N0YXRlOjpib3hHZW9tZXRyeShjb25z
dCBCb3gmIGxheW91dEJveCkKIHsKLSAgICAvLyBTaG91bGQgbmV2ZXIgbmVlZCB0byBtdXRhdGUg
YSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCi0gICAgQVNT
RVJUKCZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGxh
eW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CisgICAgLy8gU2hvdWxk
IG5ldmVyIG5lZWQgdG8gbXV0YXRlIGEgZGlzcGxheSBib3ggb3V0c2lkZSBvZiB0aGUgZm9ybWF0
dGluZyBjb250ZXh0LCB1bmxlc3Mgd2UgYXJlIHRyeWluZworICAgIC8vIHRvIGNvbXB1dGUgdGhl
IHN0YXRpYyBwb3NpdGlvbiBvZiBhbiBvdXQtb2YtZmxvdyBib3guCisgICAgQVNTRVJUKChsYXlv
dXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgaXNJbmxpbmVGb3JtYXR0aW5nU3RhdGUo
KSkgfHwgJmxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQo
bGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKSA9PSB0aGlzKTsKICAgICAvLyBBbm9u
eW1vdXMgdGV4dCB3cmFwcGVycyBkbyBub3QgbmVlZCB0byBjb21wdXRlIGJveCBnZW9tZXRyeS4g
VGhleSBpbml0aWF0ZSBpbmxpbmUgcnVucy4KICAgICBBU1NFUlQoIWxheW91dEJveC5pc0lubGlu
ZVRleHRCb3goKSk7CiAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNzRiNmUwOGZj
NDE4Li5hNWVlNDg4ZmI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNzEs
NiArMTcxLDEyIEBAIGNvbnN0IEJveEdlb21ldHJ5JiBGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0
cnlGb3JCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6CiAgICAgVU5VU0VEX1BBUkFNKGVz
Y2FwZVJlYXNvbik7CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBhdXRvIGlzT2tUb0FjY2Vzc0Jv
eEdlb21ldHJ5ID0gWyZdIHsKKyAgICAgICAgaWYgKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSAmJiBpc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgIC8v
IFRoaXMgaXMgdGhlIG5vbi1lc2NhcGUgY2FzZSBvZiBhY2Nlc3NpbmcgYSBib3gncyBnZW9tZXRy
eSBpbmZvcm1hdGlvbiB3aXRoaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250ZXh0IHdoZW4KKyAg
ICAgICAgICAgIC8vIGNvbXB1dGluZyBzdGF0aWMgcG9zaXRpb24gZm9yIG91dC1vZi1mbG93IGJv
eGVzLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
IWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KGxheW91dEJveCkgJiYgJmxheW91dEJveC5mb3Jt
YXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2VvbWV0cnkgaW5mb3Jt
YXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dC4KICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IDk4YmU1Nzg3Zjc5NC4uMGRkMzg4N2M3OGUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yNjUsNiArMjY1LDM4
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxpbmVMYXlvdXQoSW5saW5lSXRlbXMm
IGlubGluZUl0ZW1zLCBMaW5lQnVpbGRlcjo6CiAgICAgfQogfQogCitzdGF0aWMgaW5saW5lIHN0
ZDo6dHVwbGU8Y29uc3QgSW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6
Qm94Kj4gcHJldmlvdXNBbmROZXh0RGlzcGxheUJveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCwg
Y29uc3QgRGlzcGxheUJveGVzJiBkaXNwbGF5Qm94ZXMpCit7CisgICAgLy8gQm90aCBwcmV2aW91
cyBmbG9hdCBhbmQgb3V0LW9mLWZsb3cgYm94ZXMgYXJlIHNraXBwZWQgaGVyZS4gQSBzZXJpZXMg
b2YgYWRqb2luaW5nIG91dC1vZi1mbG93IGJveGVzIHNob3VsZCBhbGwgYmUgcGxhY2VkCisgICAg
Ly8gYXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNp
YmxpbmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBp
bmxpbmUgbGF5b3V0CisgICAgLy8gdGhlaXIgcG9zaXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIHRh
a2VuIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGlubGluZSBsYXlvdXQuCisgICAgYXV0byBwcmV2
aW91c0luRmxvd0JveCA9IFsmXSAoKSAtPiBjb25zdCBCb3gqIHsKKyAgICAgICAgaWYgKGF1dG8q
IHByZXZpb3VzSW5GbG93U2libGluZyA9IG91dE9mRmxvd0JveC5wcmV2aW91c0luRmxvd1NpYmxp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0luRmxvd1NpYmxpbmc7CisgICAgICAg
IC8vIFBhcmVudCBpcyBlaXRoZXIgdGhlIHJvb3QgaGVyZSBvciBhbm90aGVyIGlubGluZSBib3gg
KGUuZy4gPHNwYW4+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L3NwYW4+KQorICAg
ICAgICBhdXRvJiBwYXJlbnQgPSBvdXRPZkZsb3dCb3gucGFyZW50KCk7CisgICAgICAgIHJldHVy
biBwYXJlbnQuaXNJbmxpbmVCb3goKSA/ICZwYXJlbnQgOiBudWxscHRyOworICAgIH0oKTsKKwor
ICAgIGlmICghcHJldmlvdXNJbkZsb3dCb3gpIHsKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmly
c3QgY29udGVudC4gSXQgc2l0cyBvbiB0aGUgZWRnZSBvZiB0aGUgZmlyc3Qgcm9vdCBpbmxpbmUg
Ym94LiBXZSBkb24ndCBuZWVkIHRvIHByb3ZpZGUgdGhlIG5leHQgZGlzcGxheSBib3guCisgICAg
ICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICB9CisKKyAgICAvLyBUaGlzIGlz
IHN1cHBvc2VkIHRvIGZpbmQgdGhlIGxhc3QgZGlzcGxheSBib3ggb2YgdGhlICJpbmZsb3dCb3gi
IGFuZCByZXR1cm4gaXQgd2l0aCB0aGUgbmV4dCBkaXNwbGF5IGJveCAoZmlyc3QgYm94IG9mIHRo
ZSBuZXh0IGluZmxvdyBjb250ZW50KS4KKyAgICBhdXRvIGZvdW5kRmlyc3REaXNwbGF5Qm94ID0g
ZmFsc2U7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGRpc3BsYXlCb3hlcy5z
aXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGZvdW5kRmlyc3REaXNwbGF5Qm94ICYmICZk
aXNwbGF5Qm94ZXNbaW5kZXhdLmxheW91dEJveCgpICE9IHByZXZpb3VzSW5GbG93Qm94KSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlC
b3hlc1tpbmRleCAtIDFdLCAmZGlzcGxheUJveGVzW2luZGV4XSB9OworICAgICAgICB9CisgICAg
ICAgIGZvdW5kRmlyc3REaXNwbGF5Qm94ID0gZm91bmRGaXJzdERpc3BsYXlCb3ggfHwgJmRpc3Bs
YXlCb3hlc1tpbmRleF0ubGF5b3V0Qm94KCkgPT0gcHJldmlvdXNJbkZsb3dCb3g7CisgICAgfQor
ICAgIGlmIChmb3VuZEZpcnN0RGlzcGxheUJveCkKKyAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlC
b3hlc1tkaXNwbGF5Qm94ZXMuc2l6ZSgpIC0gMV0sIG51bGxwdHIgfTsKKyAgICByZXR1cm4geyBu
dWxscHRyLCBudWxscHRyIH07Cit9CisKIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVTdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgRm9ybWF0dGluZ1N0
YXRlOjpPdXRPZkZsb3dCb3hMaXN0JiBvdXRPZkZsb3dCb3hlcykKIHsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGNvbXB1dGVzIHRoZSBzdGF0aWMgcG9zaXRpb24gZm9yIG91dC1vZi1mbG93IGNvbnRl
bnQgaW5zaWRlIHRoZSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LgpAQCAtMjc3LDg4ICszMDks
MzggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9u
Rm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9IGZvcm1hdHRp
bmdTdGF0ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBvdXRPZkZs
b3dCb3hlcykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpOwotICAgICAgICAvLyBCb3RoIHByZXZpb3Vz
IGZsb2F0IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBv
ZiBhZGpvaW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKLSAgICAg
ICAgLy8gYXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0
LXNpYmxpbmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRo
ZSBpbmxpbmUgbGF5b3V0Ci0gICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkg
YmVlbiB0YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgotICAgICAg
ICBhdXRvIHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID0gWyZdKCkgLT4gY29uc3QgTGF5
b3V0OjpCb3gqIHsKLSAgICAgICAgICAgIGF1dG8qIHByZXZpb3VzU2libGluZyA9IG91dE9mRmxv
d0JveC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICBmb3IgKDsgcHJldmlvdXNTaWJs
aW5nICYmIHByZXZpb3VzU2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgcHJldmlvdXNT
aWJsaW5nID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKSkgeyB9Ci0gICAgICAg
ICAgICBpZiAocHJldmlvdXNTaWJsaW5nKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91
c1NpYmxpbmc7Ci0gICAgICAgICAgICAvLyBQYXJlbnQgaXMgZWl0aGVyIHRoZSByb290IGhlcmUg
b3IgYW5vdGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZSI+PC9zcGFuPikKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0Jv
eC0+cGFyZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gJnBhcmVudCA9PSAmcm9vdCgpID8gbnVs
bHB0ciA6ICZwYXJlbnQ7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBpZiAoIXByZXZpb3VzQ29u
dGVudFNraXBwaW5nRmxvYXRzKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCAo
bm9uLWZsb2F0KWNoaWxkLiBMZXQncyBwbGFjZSBpdCB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3Qg
Ym94LgotICAgICAgICAgICAgLy8gPGRpdj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PnRleHQgY29udGVudDwvZGl2PgotICAgICAgICAgICAgQVNTRVJUKGJveGVzLnNpemUoKSk7Ci0g
ICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGJveGVzWzBd
LmxlZnQoKSwgbGluZXNbMF0udG9wKCkgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnNlcXVlbnQgb3V0LW9mLWZs
b3cgcG9zaXRpb25lZCBib3hlcyBzaGFyZSB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24uCi0gICAg
ICAgICAgICAvLyA8ZGl2PnRleHQgY29udGVudDxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAgIG91
dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hU
b3BMZWZ0KGdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykpKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKHByZXZp
b3VzQ29udGVudFNraXBwaW5nRmxvYXRzLT5pc0luRmxvdygpKTsKLSAgICAgICAgYXV0byBwbGFj
ZU91dE9mRmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3ggPSBbJl0gewotICAgICAgICAgICAg
Ly8gVGhlIG91dC1vZi1mbG93IGJveCBzaG91bGQgYmUgcGxhY2VkIGFmdGVyIHRoaXMgaW5mbG93
IGJveC4KLSAgICAgICAgICAgIC8vIFNraXAgdG8gdGhlIGxhc3QgYm94IG9mIHRoaXMgbGF5b3V0
IGJveC4gVGhlIGxhc3QgYm94J3MgZ2VvbWV0cnkgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBvdXQt
b2YtZmxvdyBib3gncyBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAgICBzaXplX3QgbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveCA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0Qm94KCkgIT0gcHJldmlvdXNDb250ZW50
U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0g
ICAgICAgICAgICBpZiAobGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9PSBib3hlcy5z
aXplKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdmVyeSByYXJlIGNhc2VzLCB0
aGUgcHJldmlvdXMgYm94J3MgY29udGVudCBtaWdodCBoYXZlIGJlZW4gY29tcGxldGVseSBjb2xs
YXBzZWQgYW5kIGxlZnQgdXMgd2l0aCBubyBib3guCi0gICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA8
IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF0u
bGF5b3V0Qm94KCkgPT0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveElu
ZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAgICAgICAgICAgLS1sYXN0Qm94SW5k
ZXhPblByZXZpb3VzTGF5b3V0Qm94OwotICAgICAgICAgICAgLy8gTGV0J3MgY2hlY2sgaWYgdGhl
IHByZXZpb3VzIGJveCBpcyB0aGUgbGFzdCBib3ggb24gdGhlIGN1cnJlbnQgbGluZSBhbmQgdXNl
IHRoZSBuZXh0IGJveCdzIGxlZnQgaW5zdGVhZC4KLSAgICAgICAgICAgIGF1dG8mIHByZXZpb3Vz
Qm94ID0gYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF07Ci0gICAgICAgICAg
ICBhdXRvKiBuZXh0Qm94ID0gbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDEgPCBi
b3hlcy5zaXplKCkgPyAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDFd
IDogbnVsbHB0cjsKLQotICAgICAgICAgICAgaWYgKG5leHRCb3ggJiYgbmV4dEJveC0+bGluZUlu
ZGV4KCkgPT0gcHJldmlvdXNCb3gubGluZUluZGV4KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBQ
cmV2aW91cyBhbmQgbmV4dCBib3hlcyBhcmUgb24gdGhlIHNhbWUgbGluZS4gVGhlIG91dC1vZi1m
bG93IGJveCBpcyByaWdodCBhdCB0aGUgcHJldmlvdXMgYm94J3MgbG9naWNhbCByaWdodC4KLSAg
ICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PmNvbnRlbnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBhdXRvIGxlZnQgPSBwcmV2aW91c0JveC5y
aWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0
cy0+aXNJbmxpbmVCb3goKSAmJiAhcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlzQW5v
bnltb3VzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGltZyBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgotICAgICAgICAg
ICAgICAgICAgICAvLyBvcgotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5j
b250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAg
ICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JC
b3goKnByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzKTsKLSAgICAgICAgICAgICAgICAgICAg
bGVmdCA9IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID09ICZvdXRPZkZsb3dCb3gtPnBh
cmVudCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hM
ZWZ0KGlubGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRC
b3hMZWZ0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogQm94R2VvbWV0cnk6OmJvcmRlckJv
eFJlY3QoaW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbGVm
dCwgbGluZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCldLnRvcCgpIH0pOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgYXV0byB0b3BMZWZ0ID0gTGF5b3V0
UG9pbnQgeyB9OworICAgICAgICBhdXRvIFtwcmV2aW91c0Rpc3BsYXlCb3gsIG5leHREaXNwbGF5
Qm94XSA9IHByZXZpb3VzQW5kTmV4dERpc3BsYXlCb3gob3V0T2ZGbG93Qm94LCBib3hlcyk7CisK
KyAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveCAmJiBuZXh0RGlzcGxheUJveCkgeworICAg
ICAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveC0+aXNJbmxpbmVCb3goKSkgeworICAgICAg
ICAgICAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNhc2VzIHdoZW4gdGhlIHByZXZpb3Vz
IGNvbnRlbnQgaXMgYW4gaW5saW5lIGJveDoKKyAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8
c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRlbnQ8L3NwYW4+PC9kaXY+
CisgICAgICAgICAgICAgICAgLy8gb3IKKyAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bh
bj5jb250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Cisg
ICAgICAgICAgICAgICAgYXV0byBpc0ZpcnN0Q29udGVudEluc2lkZUlubGluZUJveCA9ICZvdXRP
ZkZsb3dCb3gtPnBhcmVudCgpID09ICZwcmV2aW91c0Rpc3BsYXlCb3gtPmxheW91dEJveCgpOwor
ICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JC
b3gocHJldmlvdXNEaXNwbGF5Qm94LT5sYXlvdXRCb3goKSk7CisKKyAgICAgICAgICAgICAgICB0
b3BMZWZ0ID0geworICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0Q29udGVudEluc2lkZUlubGlu
ZUJveCA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlubGluZUJveEJveEdlb21ldHJ5KSAr
IGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCkgOiBCb3hHZW9tZXRyeTo6bWFy
Z2luQm94UmVjdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkucmlnaHQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgbGluZXNbcHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV0udG9wKCkKKyAgICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRv
IHNob3VsZEZpdExpbmUgPSBwcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpID09IG5leHRE
aXNwbGF5Qm94LT5saW5lSW5kZXgoKQorICAgICAgICAgICAgICAgICAgICB8fCAocHJldmlvdXNE
aXNwbGF5Qm94LT5yaWdodCgpIDw9IGxpbmVzW3ByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4
KCldLmxpbmVCb3hSZWN0KCkud2lkdGgoKSAmJiAhcHJldmlvdXNEaXNwbGF5Qm94LT5pc0xpbmVC
cmVha0JveCgpKTsKIAotICAgICAgICAgICAgaWYgKG5leHRCb3gpIHsKLSAgICAgICAgICAgICAg
ICAvLyBUaGUgb3V0IG9mIGZsb3cgYm94IGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBuZXh0IGxpbmUgKHdoZXJlIHRoZSBmaXJzdCBib3ggb24gdGhlIGxpbmUgaXMpLgotICAgICAg
ICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvZGl2PgotICAgICAgICAg
ICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbmV4dEJveC0+bGVm
dCgpLCBsaW5lc1tuZXh0Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHRvcExlZnQgPSBzaG91bGRGaXRMaW5lCisgICAg
ICAgICAgICAgICAgICAgID8gTGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0
KCksIGxpbmVzW3ByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCldLnRvcCgpIH0KKyAgICAg
ICAgICAgICAgICAgICAgOiBMYXlvdXRQb2ludCB7IG5leHREaXNwbGF5Qm94LT5sZWZ0KCksIGxp
bmVzW25leHREaXNwbGF5Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfTsKICAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIGlmICghcHJldmlvdXNEaXNwbGF5Qm94KQorICAgICAgICAgICAgdG9w
TGVmdCA9IHsgYm94ZXNbMF0ubGVmdCgpLCBsaW5lc1swXS50b3AoKSB9OworICAgICAgICBlbHNl
IGlmICghbmV4dERpc3BsYXlCb3gpCisgICAgICAgICAgICB0b3BMZWZ0ID0geyBwcmV2aW91c0Rp
c3BsYXlCb3gtPnJpZ2h0KCksIGxpbmVzW3ByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCld
LnRvcCgpIH07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogCi0gICAgICAgICAgICBhdXRvJiBsYXN0TGluZSA9IGxpbmVzW3ByZXZpb3VzQm94LmxpbmVJ
bmRleCgpXTsKLSAgICAgICAgICAgIC8vIFRoaXMgb3V0LW9mLWZsb3cgYm94IGlzIHRoZSBsYXN0
IGJveC4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgaXNMaW5lQnJlYWsgaW5zdGVhZCB0byBj
b3ZlciBwcmVzZXJ2ZWQgbmV3IGxpbmVzIHRvby4KLSAgICAgICAgICAgIGlmIChwcmV2aW91c0Jv
eC5sYXlvdXRCb3goKS5pc0xpbmVCcmVha0JveCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gPGRp
dj50ZXh0PGJyPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PGltZyBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRy
eS5zZXRMb2dpY2FsVG9wTGVmdCh7IGxhc3RMaW5lLmxlZnQoKSwgbGFzdExpbmUuYm90dG9tKCkg
fSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIG1heSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgYm94IGFjdHVhbGx5IGZpdHMg
dGhlIGxhc3QgbGluZSBhbmQgbW92ZSBpdCBvdmVyIHRvIHRoZSAibmV4dCIgbGluZS4KLSAgICAg
ICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgcHJldmlvdXNCb3gu
cmlnaHQoKSwgbGFzdExpbmUudG9wKCkgfSk7Ci0gICAgICAgIH07Ci0gICAgICAgIHBsYWNlT3V0
T2ZGbG93Qm94QWZ0ZXJQcmV2aW91c0luRmxvd0JveCgpOworICAgICAgICBmb3JtYXR0aW5nU3Rh
dGUuYm94R2VvbWV0cnkob3V0T2ZGbG93Qm94KS5zZXRMb2dpY2FsVG9wTGVmdCh0b3BMZWZ0KTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCAwMDUyZWJkOTMx
MDMuLjMyMTA0ZGYyNTY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtMzgw
LDcgKzM4MCw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JD
aGlsZChjb25zdCBSZW5kZXJPYmplY3QmIGNoaWxkLCBJbmNsCiAKICAgICBpZiAoaXM8UmVuZGVy
UmVwbGFjZWQ+KGNoaWxkKSkgewogICAgICAgICBhdXRvJiByZXBsYWNlZCA9IGRvd25jYXN0PFJl
bmRlclJlcGxhY2VkPihjaGlsZCk7Ci0gICAgICAgIGlmIChyZXBsYWNlZC5pc0Zsb2F0aW5nKCkg
fHwgcmVwbGFjZWQuaXNQb3NpdGlvbmVkKCkpCisgICAgICAgIGlmIChyZXBsYWNlZC5pc0Zsb2F0
aW5nKCkpCiAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKENoaWxk
Qm94SXNGbG9hdGluZ09yUG9zaXRpb25lZCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpCiAKICAg
ICAgICAgaWYgKHJlcGxhY2VkLmlzU1ZHUm9vdE9yTGVnYWN5U1ZHUm9vdCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lu
bGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGM5OGJlMzg0Y2Q2Yi4u
NTY3YmU3ZjBlNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUu
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpbmVCcmVhay5o
IgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5o
IgpAQCAtNDA5LDcgKzQxMCwxNCBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQo
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3du
Y2FzdDxSZW5kZXJCb3g+KCpib3hBbmRSZW5kZXJlci5yZW5kZXJlcik7Ci0gICAgICAgIHJlbmRl
cmVyLnNldExvY2F0aW9uKExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFRvcExlZnQobV9p
bmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KSkpOworICAgICAgICBh
dXRvIHRvcExlZnQgPSBMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KG1faW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91dEJveCkpOworICAgICAgICBpZiAo
bGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CisgICAgICAgICAgICBhdXRvJiBs
YXllciA9ICpyZW5kZXJlci5sYXllcigpOworICAgICAgICAgICAgbGF5ZXIuc2V0U3RhdGljQmxv
Y2tQb3NpdGlvbih0b3BMZWZ0LnkoKSk7CisgICAgICAgICAgICBsYXllci5zZXRTdGF0aWNJbmxp
bmVQb3NpdGlvbih0b3BMZWZ0LngoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbih0b3BMZWZ0KTsKICAgICB9CiAKICAgICBt
X2lubGluZUNvbnRlbnQtPmNsZWFyR2FwQWZ0ZXJMYXN0TGluZSA9IG1faW5saW5lRm9ybWF0dGlu
Z1N0YXRlLmNsZWFyR2FwQWZ0ZXJMYXN0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA2ZDRlODE3YzczZGUuLjljMzZlMWQyYjgyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM1
NzEsNiArMzU3MSw5IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyhi
b29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlcGFpCiAgICAgICAgIGlmICghcmVu
ZGVyZXIubmVlZHNMYXlvdXQoKSAmJiAhbmVlZHNVcGRhdGVSZXBsYWNlZERpbWVuc2lvbnMpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAocmVuZGVyZXIuaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZW5kZXJlci5jb250YWluaW5nQmxvY2soKS0+aW5z
ZXJ0UG9zaXRpb25lZE9iamVjdChkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSk7CisKICAg
ICAgICAgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKICAgICAgICAgICAgIGF1
dG8mIHJlcGxhY2VkID0gZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKTsKICAgICAg
ICAgICAgIHJlcGxhY2VkLmxheW91dElmTmVlZGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461693</attachid>
            <date>2022-08-17 10:07:52 -0700</date>
            <delta_ts>2022-08-17 16:45:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220817100751.patch</filename>
            <type>text/plain</type>
            <size>17486</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiZDE5MjNkMWViOWU1OWFmYjQ4OTZmZDZmNmQ1YmZiMGNiNTMzMjlmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDA4OjI2OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y2FuVXNlRm9yQ2hpbGQpOgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25z
dHJ1Y3RDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0TW9kZXJuTGluZXMpOgotLS0K
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwICAgICB8ICAgNSArLQog
Li4uL2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgIHwgICA2ICsKIC4u
Li9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICAgICAgICB8IDE0MSArKysrKysr
Ky0tLS0tLS0tLS0KIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNw
cCB8ICAgMiArLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwICAg
IHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAg
fCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCmluZGV4IDM5NDdj
ZDE2ZmZhYy4uZWQ0MjgxOTc0YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmNwcApAQCAtNTAsOCArNTAsOSBAQCBGb3JtYXR0aW5nU3RhdGU6On5Gb3JtYXR0aW5n
U3RhdGUoKQogCiBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ1N0YXRlOjpib3hHZW9tZXRyeShjb25z
dCBCb3gmIGxheW91dEJveCkKIHsKLSAgICAvLyBTaG91bGQgbmV2ZXIgbmVlZCB0byBtdXRhdGUg
YSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCi0gICAgQVNT
RVJUKCZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGxh
eW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CisgICAgLy8gU2hvdWxk
IG5ldmVyIG5lZWQgdG8gbXV0YXRlIGEgZGlzcGxheSBib3ggb3V0c2lkZSBvZiB0aGUgZm9ybWF0
dGluZyBjb250ZXh0LCB1bmxlc3Mgd2UgYXJlIHRyeWluZworICAgIC8vIHRvIGNvbXB1dGUgdGhl
IHN0YXRpYyBwb3NpdGlvbiBvZiBhbiBvdXQtb2YtZmxvdyBib3guCisgICAgQVNTRVJUKChsYXlv
dXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgaXNJbmxpbmVGb3JtYXR0aW5nU3RhdGUo
KSkgfHwgJmxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQo
bGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKSA9PSB0aGlzKTsKICAgICAvLyBBbm9u
eW1vdXMgdGV4dCB3cmFwcGVycyBkbyBub3QgbmVlZCB0byBjb21wdXRlIGJveCBnZW9tZXRyeS4g
VGhleSBpbml0aWF0ZSBpbmxpbmUgcnVucy4KICAgICBBU1NFUlQoIWxheW91dEJveC5pc0lubGlu
ZVRleHRCb3goKSk7CiAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNzRiNmUwOGZj
NDE4Li5hNWVlNDg4ZmI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNzEs
NiArMTcxLDEyIEBAIGNvbnN0IEJveEdlb21ldHJ5JiBGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0
cnlGb3JCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6CiAgICAgVU5VU0VEX1BBUkFNKGVz
Y2FwZVJlYXNvbik7CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBhdXRvIGlzT2tUb0FjY2Vzc0Jv
eEdlb21ldHJ5ID0gWyZdIHsKKyAgICAgICAgaWYgKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSAmJiBpc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgIC8v
IFRoaXMgaXMgdGhlIG5vbi1lc2NhcGUgY2FzZSBvZiBhY2Nlc3NpbmcgYSBib3gncyBnZW9tZXRy
eSBpbmZvcm1hdGlvbiB3aXRoaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250ZXh0IHdoZW4KKyAg
ICAgICAgICAgIC8vIGNvbXB1dGluZyBzdGF0aWMgcG9zaXRpb24gZm9yIG91dC1vZi1mbG93IGJv
eGVzLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
IWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KGxheW91dEJveCkgJiYgJmxheW91dEJveC5mb3Jt
YXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2VvbWV0cnkgaW5mb3Jt
YXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dC4KICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IDk4YmU1Nzg3Zjc5NC4uMzE1ZDgxYjdmZDJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yNjUsNiArMjY1LDM4
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxpbmVMYXlvdXQoSW5saW5lSXRlbXMm
IGlubGluZUl0ZW1zLCBMaW5lQnVpbGRlcjo6CiAgICAgfQogfQogCitzdGF0aWMgaW5saW5lIHN0
ZDo6dHVwbGU8Y29uc3QgSW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6
Qm94Kj4gcHJldmlvdXNBbmROZXh0RGlzcGxheUJveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCwg
Y29uc3QgRGlzcGxheUJveGVzJiBkaXNwbGF5Qm94ZXMpCit7CisgICAgLy8gQm90aCBwcmV2aW91
cyBmbG9hdCBhbmQgb3V0LW9mLWZsb3cgYm94ZXMgYXJlIHNraXBwZWQgaGVyZS4gQSBzZXJpZXMg
b2YgYWRqb2luaW5nIG91dC1vZi1mbG93IGJveGVzIHNob3VsZCBhbGwgYmUgcGxhY2VkCisgICAg
Ly8gYXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNp
YmxpbmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBp
bmxpbmUgbGF5b3V0CisgICAgLy8gdGhlaXIgcG9zaXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIHRh
a2VuIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGlubGluZSBsYXlvdXQuCisgICAgYXV0byBwcmV2
aW91c0luRmxvd0JveCA9IFsmXSAoKSAtPiBjb25zdCBCb3gqIHsKKyAgICAgICAgaWYgKGF1dG8q
IHByZXZpb3VzSW5GbG93U2libGluZyA9IG91dE9mRmxvd0JveC5wcmV2aW91c0luRmxvd1NpYmxp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0luRmxvd1NpYmxpbmc7CisgICAgICAg
IC8vIFBhcmVudCBpcyBlaXRoZXIgdGhlIHJvb3QgaGVyZSBvciBhbm90aGVyIGlubGluZSBib3gg
KGUuZy4gPHNwYW4+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L3NwYW4+KQorICAg
ICAgICBhdXRvJiBwYXJlbnQgPSBvdXRPZkZsb3dCb3gucGFyZW50KCk7CisgICAgICAgIHJldHVy
biBwYXJlbnQuaXNJbmxpbmVCb3goKSA/ICZwYXJlbnQgOiBudWxscHRyOworICAgIH0oKTsKKwor
ICAgIGlmICghcHJldmlvdXNJbkZsb3dCb3gpIHsKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmly
c3QgY29udGVudC4gSXQgc2l0cyBvbiB0aGUgZWRnZSBvZiB0aGUgZmlyc3Qgcm9vdCBpbmxpbmUg
Ym94LiBXZSBkb24ndCBuZWVkIHRvIHByb3ZpZGUgdGhlIG5leHQgZGlzcGxheSBib3guCisgICAg
ICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICB9CisKKyAgICAvLyBUaGlzIGlz
IHN1cHBvc2VkIHRvIGZpbmQgdGhlIGxhc3QgZGlzcGxheSBib3ggb2YgdGhlICJpbmZsb3dCb3gi
IGFuZCByZXR1cm4gaXQgd2l0aCB0aGUgbmV4dCBkaXNwbGF5IGJveCAoZmlyc3QgYm94IG9mIHRo
ZSBuZXh0IGluZmxvdyBjb250ZW50KS4KKyAgICBhdXRvIGZvdW5kRmlyc3REaXNwbGF5Qm94ID0g
ZmFsc2U7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGRpc3BsYXlCb3hlcy5z
aXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGZvdW5kRmlyc3REaXNwbGF5Qm94ICYmICZk
aXNwbGF5Qm94ZXNbaW5kZXhdLmxheW91dEJveCgpICE9IHByZXZpb3VzSW5GbG93Qm94KSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlC
b3hlc1tpbmRleCAtIDFdLCAmZGlzcGxheUJveGVzW2luZGV4XSB9OworICAgICAgICB9CisgICAg
ICAgIGZvdW5kRmlyc3REaXNwbGF5Qm94ID0gZm91bmRGaXJzdERpc3BsYXlCb3ggfHwgJmRpc3Bs
YXlCb3hlc1tpbmRleF0ubGF5b3V0Qm94KCkgPT0gcHJldmlvdXNJbkZsb3dCb3g7CisgICAgfQor
ICAgIGlmIChmb3VuZEZpcnN0RGlzcGxheUJveCkKKyAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlC
b3hlc1tkaXNwbGF5Qm94ZXMuc2l6ZSgpIC0gMV0sIG51bGxwdHIgfTsKKyAgICByZXR1cm4geyBu
dWxscHRyLCBudWxscHRyIH07Cit9CisKIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVTdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgRm9ybWF0dGluZ1N0
YXRlOjpPdXRPZkZsb3dCb3hMaXN0JiBvdXRPZkZsb3dCb3hlcykKIHsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGNvbXB1dGVzIHRoZSBzdGF0aWMgcG9zaXRpb24gZm9yIG91dC1vZi1mbG93IGNvbnRl
bnQgaW5zaWRlIHRoZSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LgpAQCAtMjc3LDg4ICszMDks
MzcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9u
Rm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9IGZvcm1hdHRp
bmdTdGF0ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBvdXRPZkZs
b3dCb3hlcykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpOwotICAgICAgICAvLyBCb3RoIHByZXZpb3Vz
IGZsb2F0IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBv
ZiBhZGpvaW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKLSAgICAg
ICAgLy8gYXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0
LXNpYmxpbmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRo
ZSBpbmxpbmUgbGF5b3V0Ci0gICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkg
YmVlbiB0YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgotICAgICAg
ICBhdXRvIHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID0gWyZdKCkgLT4gY29uc3QgTGF5
b3V0OjpCb3gqIHsKLSAgICAgICAgICAgIGF1dG8qIHByZXZpb3VzU2libGluZyA9IG91dE9mRmxv
d0JveC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICBmb3IgKDsgcHJldmlvdXNTaWJs
aW5nICYmIHByZXZpb3VzU2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgcHJldmlvdXNT
aWJsaW5nID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKSkgeyB9Ci0gICAgICAg
ICAgICBpZiAocHJldmlvdXNTaWJsaW5nKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91
c1NpYmxpbmc7Ci0gICAgICAgICAgICAvLyBQYXJlbnQgaXMgZWl0aGVyIHRoZSByb290IGhlcmUg
b3IgYW5vdGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZSI+PC9zcGFuPikKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0Jv
eC0+cGFyZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gJnBhcmVudCA9PSAmcm9vdCgpID8gbnVs
bHB0ciA6ICZwYXJlbnQ7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBpZiAoIXByZXZpb3VzQ29u
dGVudFNraXBwaW5nRmxvYXRzKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCAo
bm9uLWZsb2F0KWNoaWxkLiBMZXQncyBwbGFjZSBpdCB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3Qg
Ym94LgotICAgICAgICAgICAgLy8gPGRpdj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PnRleHQgY29udGVudDwvZGl2PgotICAgICAgICAgICAgQVNTRVJUKGJveGVzLnNpemUoKSk7Ci0g
ICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGJveGVzWzBd
LmxlZnQoKSwgbGluZXNbMF0udG9wKCkgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnNlcXVlbnQgb3V0LW9mLWZs
b3cgcG9zaXRpb25lZCBib3hlcyBzaGFyZSB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24uCi0gICAg
ICAgICAgICAvLyA8ZGl2PnRleHQgY29udGVudDxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAgIG91
dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hU
b3BMZWZ0KGdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykpKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKHByZXZp
b3VzQ29udGVudFNraXBwaW5nRmxvYXRzLT5pc0luRmxvdygpKTsKLSAgICAgICAgYXV0byBwbGFj
ZU91dE9mRmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3ggPSBbJl0gewotICAgICAgICAgICAg
Ly8gVGhlIG91dC1vZi1mbG93IGJveCBzaG91bGQgYmUgcGxhY2VkIGFmdGVyIHRoaXMgaW5mbG93
IGJveC4KLSAgICAgICAgICAgIC8vIFNraXAgdG8gdGhlIGxhc3QgYm94IG9mIHRoaXMgbGF5b3V0
IGJveC4gVGhlIGxhc3QgYm94J3MgZ2VvbWV0cnkgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBvdXQt
b2YtZmxvdyBib3gncyBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAgICBzaXplX3QgbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveCA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0Qm94KCkgIT0gcHJldmlvdXNDb250ZW50
U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0g
ICAgICAgICAgICBpZiAobGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9PSBib3hlcy5z
aXplKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdmVyeSByYXJlIGNhc2VzLCB0
aGUgcHJldmlvdXMgYm94J3MgY29udGVudCBtaWdodCBoYXZlIGJlZW4gY29tcGxldGVseSBjb2xs
YXBzZWQgYW5kIGxlZnQgdXMgd2l0aCBubyBib3guCi0gICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA8
IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF0u
bGF5b3V0Qm94KCkgPT0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveElu
ZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAgICAgICAgICAgLS1sYXN0Qm94SW5k
ZXhPblByZXZpb3VzTGF5b3V0Qm94OwotICAgICAgICAgICAgLy8gTGV0J3MgY2hlY2sgaWYgdGhl
IHByZXZpb3VzIGJveCBpcyB0aGUgbGFzdCBib3ggb24gdGhlIGN1cnJlbnQgbGluZSBhbmQgdXNl
IHRoZSBuZXh0IGJveCdzIGxlZnQgaW5zdGVhZC4KLSAgICAgICAgICAgIGF1dG8mIHByZXZpb3Vz
Qm94ID0gYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF07Ci0gICAgICAgICAg
ICBhdXRvKiBuZXh0Qm94ID0gbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDEgPCBi
b3hlcy5zaXplKCkgPyAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDFd
IDogbnVsbHB0cjsKLQotICAgICAgICAgICAgaWYgKG5leHRCb3ggJiYgbmV4dEJveC0+bGluZUlu
ZGV4KCkgPT0gcHJldmlvdXNCb3gubGluZUluZGV4KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBQ
cmV2aW91cyBhbmQgbmV4dCBib3hlcyBhcmUgb24gdGhlIHNhbWUgbGluZS4gVGhlIG91dC1vZi1m
bG93IGJveCBpcyByaWdodCBhdCB0aGUgcHJldmlvdXMgYm94J3MgbG9naWNhbCByaWdodC4KLSAg
ICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PmNvbnRlbnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBhdXRvIGxlZnQgPSBwcmV2aW91c0JveC5y
aWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0
cy0+aXNJbmxpbmVCb3goKSAmJiAhcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlzQW5v
bnltb3VzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGltZyBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgotICAgICAgICAg
ICAgICAgICAgICAvLyBvcgotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5j
b250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAg
ICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JC
b3goKnByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzKTsKLSAgICAgICAgICAgICAgICAgICAg
bGVmdCA9IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID09ICZvdXRPZkZsb3dCb3gtPnBh
cmVudCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hM
ZWZ0KGlubGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRC
b3hMZWZ0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogQm94R2VvbWV0cnk6OmJvcmRlckJv
eFJlY3QoaW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbGVm
dCwgbGluZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCldLnRvcCgpIH0pOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG5leHRCb3gpIHsK
LSAgICAgICAgICAgICAgICAvLyBUaGUgb3V0IG9mIGZsb3cgYm94IGlzIHBsYWNlZCBhdCB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBuZXh0IGxpbmUgKHdoZXJlIHRoZSBmaXJzdCBib3ggb24gdGhlIGxp
bmUgaXMpLgotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwv
ZGl2PgotICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0
KHsgbmV4dEJveC0+bGVmdCgpLCBsaW5lc1tuZXh0Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIHRvcExlZnQgPSBMYXlvdXRQ
b2ludCB7IH07CisgICAgICAgIGF1dG8gW3ByZXZpb3VzRGlzcGxheUJveCwgbmV4dERpc3BsYXlC
b3hdID0gcHJldmlvdXNBbmROZXh0RGlzcGxheUJveChvdXRPZkZsb3dCb3gsIGJveGVzKTsKKwor
ICAgICAgICBpZiAocHJldmlvdXNEaXNwbGF5Qm94ICYmIG5leHREaXNwbGF5Qm94KSB7CisgICAg
ICAgICAgICBpZiAocHJldmlvdXNEaXNwbGF5Qm94LT5pc0lubGluZUJveCgpKSB7CisgICAgICAg
ICAgICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgY2FzZXMgd2hlbiB0aGUgcHJldmlvdXMg
Y29udGVudCBpcyBhbiBpbmxpbmUgYm94OgorICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxz
cGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvc3Bhbj48L2Rpdj4K
KyAgICAgICAgICAgICAgICAvLyBvcgorICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxzcGFu
PmNvbnRlbnQ8L3NwYW4+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KKyAg
ICAgICAgICAgICAgICBhdXRvIGlzRmlyc3RDb250ZW50SW5zaWRlSW5saW5lQm94ID0gJm91dE9m
Rmxvd0JveC0+cGFyZW50KCkgPT0gJnByZXZpb3VzRGlzcGxheUJveC0+bGF5b3V0Qm94KCk7Cisg
ICAgICAgICAgICAgICAgYXV0byYgaW5saW5lQm94Qm94R2VvbWV0cnkgPSBnZW9tZXRyeUZvckJv
eChwcmV2aW91c0Rpc3BsYXlCb3gtPmxheW91dEJveCgpKTsKKworICAgICAgICAgICAgICAgIHRv
cExlZnQgPSB7CisgICAgICAgICAgICAgICAgICAgIGlzRmlyc3RDb250ZW50SW5zaWRlSW5saW5l
Qm94ID8gQm94R2VvbWV0cnk6OmJvcmRlckJveExlZnQoaW5saW5lQm94Qm94R2VvbWV0cnkpICsg
aW5saW5lQm94Qm94R2VvbWV0cnkuY29udGVudEJveExlZnQoKSA6IEJveEdlb21ldHJ5OjptYXJn
aW5Cb3hSZWN0KGlubGluZUJveEJveEdlb21ldHJ5KS5yaWdodCgpLAorICAgICAgICAgICAgICAg
ICAgICBsaW5lc1twcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpXS50b3AoKQorICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8m
IGN1cnJlbnRMaW5lID0gbGluZXNbcHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV07Cisg
ICAgICAgICAgICAgICAgYXV0byBzaG91bGRGaXRMaW5lID0gcHJldmlvdXNEaXNwbGF5Qm94LT5s
aW5lSW5kZXgoKSA9PSBuZXh0RGlzcGxheUJveC0+bGluZUluZGV4KCkgfHwgKHByZXZpb3VzRGlz
cGxheUJveC0+cmlnaHQoKSA8PSBjdXJyZW50TGluZS5saW5lQm94UmVjdCgpLndpZHRoKCkgJiYg
IXByZXZpb3VzRGlzcGxheUJveC0+aXNMaW5lQnJlYWtCb3goKSk7CisgICAgICAgICAgICAgICAg
dG9wTGVmdCA9IHNob3VsZEZpdExpbmUgPyBMYXlvdXRQb2ludCB7IHByZXZpb3VzRGlzcGxheUJv
eC0+cmlnaHQoKSwgY3VycmVudExpbmUudG9wKCkgfSA6IExheW91dFBvaW50IHsgbmV4dERpc3Bs
YXlCb3gtPmxlZnQoKSwgbGluZXNbbmV4dERpc3BsYXlCb3gtPmxpbmVJbmRleCgpXS50b3AoKSB9
OwogICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKCFwcmV2aW91c0Rpc3BsYXlCb3gp
CisgICAgICAgICAgICB0b3BMZWZ0ID0geyBib3hlc1swXS5sZWZ0KCksIGxpbmVzWzBdLnRvcCgp
IH07CisgICAgICAgIGVsc2UgaWYgKCFuZXh0RGlzcGxheUJveCkgeworICAgICAgICAgICAgYXV0
byYgY3VycmVudExpbmUgPSBsaW5lc1twcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpXTsK
KyAgICAgICAgICAgIGF1dG8gc2hvdWxkRml0TGluZSA9IHByZXZpb3VzRGlzcGxheUJveC0+cmln
aHQoKSA8PSBjdXJyZW50TGluZS5saW5lQm94UmVjdCgpLndpZHRoKCkgJiYgIXByZXZpb3VzRGlz
cGxheUJveC0+aXNMaW5lQnJlYWtCb3goKTsKKyAgICAgICAgICAgIHRvcExlZnQgPSBzaG91bGRG
aXRMaW5lID8gTGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCksIGN1cnJl
bnRMaW5lLnRvcCgpIH0gOiBMYXlvdXRQb2ludCB7IGN1cnJlbnRMaW5lLmxlZnQoKSwgY3VycmVu
dExpbmUuYm90dG9tKCkgfTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIAotICAgICAgICAgICAgYXV0byYgbGFzdExpbmUgPSBsaW5lc1twcmV2aW91
c0JveC5saW5lSW5kZXgoKV07Ci0gICAgICAgICAgICAvLyBUaGlzIG91dC1vZi1mbG93IGJveCBp
cyB0aGUgbGFzdCBib3guCi0gICAgICAgICAgICAvLyBGSVhNRTogVXNlIGlzTGluZUJyZWFrIGlu
c3RlYWQgdG8gY292ZXIgcHJlc2VydmVkIG5ldyBsaW5lcyB0b28uCi0gICAgICAgICAgICBpZiAo
cHJldmlvdXNCb3gubGF5b3V0Qm94KCkuaXNMaW5lQnJlYWtCb3goKSkgewotICAgICAgICAgICAg
ICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPjxpbWcg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgb3V0T2ZG
bG93R2VvbWV0cnkuc2V0TG9naWNhbFRvcExlZnQoeyBsYXN0TGluZS5sZWZ0KCksIGxhc3RMaW5l
LmJvdHRvbSgpIH0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBtYXkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGJveCBhY3R1
YWxseSBmaXRzIHRoZSBsYXN0IGxpbmUgYW5kIG1vdmUgaXQgb3ZlciB0byB0aGUgIm5leHQiIGxp
bmUuCi0gICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IHBy
ZXZpb3VzQm94LnJpZ2h0KCksIGxhc3RMaW5lLnRvcCgpIH0pOwotICAgICAgICB9OwotICAgICAg
ICBwbGFjZU91dE9mRmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3goKTsKKyAgICAgICAgZm9y
bWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0JveCkuc2V0TG9naWNhbFRvcExlZnQo
dG9wTGVmdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKaW5kZXgg
MDA1MmViZDkzMTAzLi4zMjEwNGRmMjU2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5j
cHAKQEAgLTM4MCw3ICszODAsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4g
Y2FuVXNlRm9yQ2hpbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZCwgSW5jbAogCiAgICAgaWYg
KGlzPFJlbmRlclJlcGxhY2VkPihjaGlsZCkpIHsKICAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBk
b3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY2hpbGQpOwotICAgICAgICBpZiAocmVwbGFjZWQuaXNG
bG9hdGluZygpIHx8IHJlcGxhY2VkLmlzUG9zaXRpb25lZCgpKQorICAgICAgICBpZiAocmVwbGFj
ZWQuaXNGbG9hdGluZygpKQogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05F
RURFRChDaGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9uZWQsIHJlYXNvbnMsIGluY2x1ZGVSZWFz
b25zKQogCiAgICAgICAgIGlmIChyZXBsYWNlZC5pc1NWR1Jvb3RPckxlZ2FjeVNWR1Jvb3QoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCBjOThi
ZTM4NGNkNmIuLjU2N2JlN2YwZTY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRp
b25MaW5lTGF5b3V0LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckRlc2Nl
bmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW5saW5lLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJM
aW5lQnJlYWsuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGlzdEl0ZW0uaCIKQEAgLTQwOSw3ICs0MTAsMTQgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1
Y3RDb250ZW50KCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8mIHJlbmRl
cmVyID0gZG93bmNhc3Q8UmVuZGVyQm94PigqYm94QW5kUmVuZGVyZXIucmVuZGVyZXIpOwotICAg
ICAgICByZW5kZXJlci5zZXRMb2NhdGlvbihMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hU
b3BMZWZ0KG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91dEJveCkpKTsK
KyAgICAgICAgYXV0byB0b3BMZWZ0ID0gTGF5b3V0OjpCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9w
TGVmdChtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpKTsKKyAg
ICAgICAgaWYgKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAg
ICAgYXV0byYgbGF5ZXIgPSAqcmVuZGVyZXIubGF5ZXIoKTsKKyAgICAgICAgICAgIGxheWVyLnNl
dFN0YXRpY0Jsb2NrUG9zaXRpb24odG9wTGVmdC55KCkpOworICAgICAgICAgICAgbGF5ZXIuc2V0
U3RhdGljSW5saW5lUG9zaXRpb24odG9wTGVmdC54KCkpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKyAgICAgICAgcmVuZGVyZXIuc2V0TG9jYXRpb24odG9wTGVmdCk7CiAgICAg
fQogCiAgICAgbV9pbmxpbmVDb250ZW50LT5jbGVhckdhcEFmdGVyTGFzdExpbmUgPSBtX2lubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5jbGVhckdhcEFmdGVyTGFzdExpbmUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggNmQ0ZTgxN2M3M2RlLi45YzM2
ZTFkMmI4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCkBAIC0zNTcxLDYgKzM1NzEsOSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0TW9k
ZXJuTGluZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZXBhaQogICAgICAg
ICBpZiAoIXJlbmRlcmVyLm5lZWRzTGF5b3V0KCkgJiYgIW5lZWRzVXBkYXRlUmVwbGFjZWREaW1l
bnNpb25zKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlz
T3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmVuZGVyZXIuY29udGFpbmluZ0Js
b2NrKCktPmluc2VydFBvc2l0aW9uZWRPYmplY3QoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJl
cikpOworCiAgICAgICAgIGlmIChpczxSZW5kZXJSZXBsYWNlZD4ocmVuZGVyZXIpKSB7CiAgICAg
ICAgICAgICBhdXRvJiByZXBsYWNlZCA9IGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyZW5kZXJl
cik7CiAgICAgICAgICAgICByZXBsYWNlZC5sYXlvdXRJZk5lZWRlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461700</attachid>
            <date>2022-08-17 16:45:04 -0700</date>
            <delta_ts>2022-08-17 16:51:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220817164503.patch</filename>
            <type>text/plain</type>
            <size>19166</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmYmM4MWMzNWJhNjU0NjI1YzcxZmYzYmE4NTVkMjg2MTMxMjY5ZTRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDE2OjM3OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkVGV4dEluZGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNv
bnN0cnVjdENvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyk6Ci0t
LQogU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgICAgIHwgICA1ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAgfCAgIDYgKwog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgMTA5ICsrKysr
LS0tLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAg
ICAgIHwgIDM0ICsrKysrLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAg
ICAgICAgIHwgICAxICsKIC4uLi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNw
cCAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAgIHwgICAzICsKIC4uLi9yZXBhaW50L2ZvY3VzLXJpbmctcmVwYWludC1leHBlY3RlZC50eHQg
ICB8ICAyMCArKy0tCiA4IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDk0IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXgg
Mzk0N2NkMTZmZmFjLi5lZDQyODE5NzRhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nU3RhdGUuY3BwCkBAIC01MCw4ICs1MCw5IEBAIEZvcm1hdHRpbmdTdGF0ZTo6fkZvcm1h
dHRpbmdTdGF0ZSgpCiAKIEJveEdlb21ldHJ5JiBGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5
KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewotICAgIC8vIFNob3VsZCBuZXZlciBuZWVkIHRvIG11
dGF0ZSBhIGRpc3BsYXkgYm94IG91dHNpZGUgb2YgdGhlIGZvcm1hdHRpbmcgY29udGV4dC4KLSAg
ICBBU1NFUlQoJmxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRl
eHQobGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKSA9PSB0aGlzKTsKKyAgICAvLyBT
aG91bGQgbmV2ZXIgbmVlZCB0byBtdXRhdGUgYSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQsIHVubGVzcyB3ZSBhcmUgdHJ5aW5nCisgICAgLy8gdG8gY29tcHV0
ZSB0aGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveC4KKyAgICBBU1NFUlQo
KGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBpc0lubGluZUZvcm1hdHRpbmdT
dGF0ZSgpKSB8fCAmbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29u
dGV4dChsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpID09IHRoaXMpOwogICAgIC8v
IEFub255bW91cyB0ZXh0IHdyYXBwZXJzIGRvIG5vdCBuZWVkIHRvIGNvbXB1dGUgYm94IGdlb21l
dHJ5LiBUaGV5IGluaXRpYXRlIGlubGluZSBydW5zLgogICAgIEFTU0VSVCghbGF5b3V0Qm94Lmlz
SW5saW5lVGV4dEJveCgpKTsKICAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5lbnN1cmVHZW9tZXRy
eUZvckJveChsYXlvdXRCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA3NGI2
ZTA4ZmM0MTguLmE1ZWU0ODhmYjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAg
LTE3MSw2ICsxNzEsMTIgQEAgY29uc3QgQm94R2VvbWV0cnkmIEZvcm1hdHRpbmdDb250ZXh0Ojpn
ZW9tZXRyeUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjoKICAgICBVTlVTRURfUEFS
QU0oZXNjYXBlUmVhc29uKTsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGF1dG8gaXNPa1RvQWNj
ZXNzQm94R2VvbWV0cnkgPSBbJl0geworICAgICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpICYmIGlzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkgeworICAgICAgICAg
ICAgLy8gVGhpcyBpcyB0aGUgbm9uLWVzY2FwZSBjYXNlIG9mIGFjY2Vzc2luZyBhIGJveCdzIGdl
b21ldHJ5IGluZm9ybWF0aW9uIHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNvbnRleHQgd2hl
bgorICAgICAgICAgICAgLy8gY29tcHV0aW5nIHN0YXRpYyBwb3NpdGlvbiBmb3Igb3V0LW9mLWZs
b3cgYm94ZXMuCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAg
IGlmICghaXM8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4obGF5b3V0Qm94KSAmJiAmbGF5b3V0Qm94
LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpID09ICZyb290KCkpIHsKICAgICAgICAgICAgIC8vIFRo
aXMgaXMgdGhlIG5vbi1lc2NhcGUgY2FzZSBvZiBhY2Nlc3NpbmcgYSBib3gncyBnZW9tZXRyeSBp
bmZvcm1hdGlvbiB3aXRoaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250ZXh0LgogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKaW5kZXggOThiZTU3ODdmNzk0Li4wMDY5MjM4ZWM4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI3Nyw4OCAr
Mjc3LDM3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3Np
dGlvbkZvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgRm9yCiAgICAgYXV0byYgYm94ZXMgPSBmb3Jt
YXR0aW5nU3RhdGUuYm94ZXMoKTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogb3V0
T2ZGbG93Qm94ZXMpIHsKLSAgICAgICAgYXV0byYgb3V0T2ZGbG93R2VvbWV0cnkgPSBmb3JtYXR0
aW5nU3RhdGUuYm94R2VvbWV0cnkob3V0T2ZGbG93Qm94KTsKLSAgICAgICAgLy8gQm90aCBwcmV2
aW91cyBmbG9hdCBhbmQgb3V0LW9mLWZsb3cgYm94ZXMgYXJlIHNraXBwZWQgaGVyZS4gQSBzZXJp
ZXMgb2YgYWRqb2luaW5nIG91dC1vZi1mbG93IGJveGVzIHNob3VsZCBhbGwgYmUgcGxhY2VkCi0g
ICAgICAgIC8vIGF0IHRoZSBzYW1lIHN0YXRpYyBwb3NpdGlvbiAodGhleSBkb24ndCBhZmZlY3Qg
bmV4dC1zaWJsaW5nIHBvc2l0aW9ucykgYW5kIHdoaWxlIGZsb2F0cyBkbyBwYXJ0aWNpcGF0ZSBp
biB0aGUgaW5saW5lIGxheW91dAotICAgICAgICAvLyB0aGVpciBwb3NpdGlvbnMgaGF2ZSBhbHJl
YWR5IGJlZW4gdGFrZW4gaW50byBhY2NvdW50IGR1cmluZyB0aGUgaW5saW5lIGxheW91dC4KLSAg
ICAgICAgYXV0byBwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cyA9IFsmXSgpIC0+IGNvbnN0
IExheW91dDo6Qm94KiB7Ci0gICAgICAgICAgICBhdXRvKiBwcmV2aW91c1NpYmxpbmcgPSBvdXRP
ZkZsb3dCb3gtPnByZXZpb3VzU2libGluZygpOwotICAgICAgICAgICAgZm9yICg7IHByZXZpb3Vz
U2libGluZyAmJiBwcmV2aW91c1NpYmxpbmctPmlzRmxvYXRpbmdQb3NpdGlvbmVkKCk7IHByZXZp
b3VzU2libGluZyA9IHByZXZpb3VzU2libGluZy0+cHJldmlvdXNTaWJsaW5nKCkpIHsgfQotICAg
ICAgICAgICAgaWYgKHByZXZpb3VzU2libGluZykKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJl
dmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgLy8gUGFyZW50IGlzIGVpdGhlciB0aGUgcm9vdCBo
ZXJlIG9yIGFub3RoZXIgaW5saW5lIGJveCAoZS5nLiA8c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGUiPjwvc3Bhbj4pCi0gICAgICAgICAgICBhdXRvJiBwYXJlbnQgPSBvdXRPZkZs
b3dCb3gtPnBhcmVudCgpOwotICAgICAgICAgICAgcmV0dXJuICZwYXJlbnQgPT0gJnJvb3QoKSA/
IG51bGxwdHIgOiAmcGFyZW50OwotICAgICAgICB9KCk7Ci0KLSAgICAgICAgaWYgKCFwcmV2aW91
c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykgewotICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmly
c3QgKG5vbi1mbG9hdCljaGlsZC4gTGV0J3MgcGxhY2UgaXQgdG8gdGhlIGxlZnQgb2YgdGhlIGZp
cnN0IGJveC4KLSAgICAgICAgICAgIC8vIDxkaXY+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlIj50ZXh0IGNvbnRlbnQ8L2Rpdj4KLSAgICAgICAgICAgIEFTU0VSVChib3hlcy5zaXplKCkp
OwotICAgICAgICAgICAgb3V0T2ZGbG93R2VvbWV0cnkuc2V0TG9naWNhbFRvcExlZnQoeyBib3hl
c1swXS5sZWZ0KCksIGxpbmVzWzBdLnRvcCgpIH0pOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAocHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlz
T3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0gICAgICAgICAgICAvLyBTdWJzZXF1ZW50IG91dC1v
Zi1mbG93IHBvc2l0aW9uZWQgYm94ZXMgc2hhcmUgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uLgot
ICAgICAgICAgICAgLy8gPGRpdj50ZXh0IGNvbnRlbnQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAgICAgICAg
ICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdChCb3hHZW9tZXRyeTo6Ym9yZGVy
Qm94VG9wTGVmdChnZW9tZXRyeUZvckJveCgqcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMp
KSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVChw
cmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNJbkZsb3coKSk7Ci0gICAgICAgIGF1dG8g
cGxhY2VPdXRPZkZsb3dCb3hBZnRlclByZXZpb3VzSW5GbG93Qm94ID0gWyZdIHsKLSAgICAgICAg
ICAgIC8vIFRoZSBvdXQtb2YtZmxvdyBib3ggc2hvdWxkIGJlIHBsYWNlZCBhZnRlciB0aGlzIGlu
ZmxvdyBib3guCi0gICAgICAgICAgICAvLyBTa2lwIHRvIHRoZSBsYXN0IGJveCBvZiB0aGlzIGxh
eW91dCBib3guIFRoZSBsYXN0IGJveCdzIGdlb21ldHJ5IGlzIHVzZWQgdG8gY29tcHV0ZSB0aGUg
b3V0LW9mLWZsb3cgYm94J3Mgc3RhdGljIHBvc2l0aW9uLgotICAgICAgICAgICAgc2l6ZV90IGxh
c3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3ggPSAwOwotICAgICAgICAgICAgZm9yICg7IGxh
c3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3ggPCBib3hlcy5zaXplKCkgJiYgJmJveGVzW2xh
c3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3hdLmxheW91dEJveCgpICE9IHByZXZpb3VzQ29u
dGVudFNraXBwaW5nRmxvYXRzOyArK2xhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3gpIHsg
fQotICAgICAgICAgICAgaWYgKGxhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3ggPT0gYm94
ZXMuc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEluIHZlcnkgcmFyZSBjYXNl
cywgdGhlIHByZXZpb3VzIGJveCdzIGNvbnRlbnQgbWlnaHQgaGF2ZSBiZWVuIGNvbXBsZXRlbHkg
Y29sbGFwc2VkIGFuZCBsZWZ0IHVzIHdpdGggbm8gYm94LgotICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZm9yICg7IGxhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRC
b3ggPCBib3hlcy5zaXplKCkgJiYgJmJveGVzW2xhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRC
b3hdLmxheW91dEJveCgpID09IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzOyArK2xhc3RC
b3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3gpIHsgfQotICAgICAgICAgICAgICAgIC0tbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveDsKLSAgICAgICAgICAgIC8vIExldCdzIGNoZWNrIGlm
IHRoZSBwcmV2aW91cyBib3ggaXMgdGhlIGxhc3QgYm94IG9uIHRoZSBjdXJyZW50IGxpbmUgYW5k
IHVzZSB0aGUgbmV4dCBib3gncyBsZWZ0IGluc3RlYWQuCi0gICAgICAgICAgICBhdXRvJiBwcmV2
aW91c0JveCA9IGJveGVzW2xhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3hdOwotICAgICAg
ICAgICAgYXV0byogbmV4dEJveCA9IGxhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3ggKyAx
IDwgYm94ZXMuc2l6ZSgpID8gJmJveGVzW2xhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3gg
KyAxXSA6IG51bGxwdHI7Ci0KLSAgICAgICAgICAgIGlmIChuZXh0Qm94ICYmIG5leHRCb3gtPmxp
bmVJbmRleCgpID09IHByZXZpb3VzQm94LmxpbmVJbmRleCgpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gUHJldmlvdXMgYW5kIG5leHQgYm94ZXMgYXJlIG9uIHRoZSBzYW1lIGxpbmUuIFRoZSBvdXQt
b2YtZmxvdyBib3ggaXMgcmlnaHQgYXQgdGhlIHByZXZpb3VzIGJveCdzIGxvZ2ljYWwgcmlnaHQu
Ci0gICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PGltZyBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlIj5jb250ZW50PC9kaXY+Ci0gICAgICAgICAgICAgICAgYXV0byBsZWZ0ID0gcHJldmlvdXNC
b3gucmlnaHQoKTsKLSAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDb250ZW50U2tpcHBpbmdG
bG9hdHMtPmlzSW5saW5lQm94KCkgJiYgIXByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzLT5p
c0Fub255bW91cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxzcGFuPjxp
bWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvc3Bhbj48L2Rpdj4KLSAgICAg
ICAgICAgICAgICAgICAgLy8gb3IKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNw
YW4+Y29udGVudDwvc3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPjwvZGl2Pgot
ICAgICAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVCb3hCb3hHZW9tZXRyeSA9IGdlb21ldHJ5
Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGxlZnQgPSBwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cyA9PSAmb3V0T2ZGbG93Qm94
LT5wYXJlbnQoKQotICAgICAgICAgICAgICAgICAgICAgICAgPyBCb3hHZW9tZXRyeTo6Ym9yZGVy
Qm94TGVmdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkgKyBpbmxpbmVCb3hCb3hHZW9tZXRyeS5jb250
ZW50Qm94TGVmdCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IEJveEdlb21ldHJ5Ojpib3Jk
ZXJCb3hSZWN0KGlubGluZUJveEJveEdlb21ldHJ5KS5yaWdodCgpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7
IGxlZnQsIGxpbmVzW3ByZXZpb3VzQm94LmxpbmVJbmRleCgpXS50b3AoKSB9KTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChuZXh0Qm94
KSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIG91dCBvZiBmbG93IGJveCBpcyBwbGFjZWQgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBsaW5lICh3aGVyZSB0aGUgZmlyc3QgYm94IG9uIHRo
ZSBsaW5lIGlzKS4KLSAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8YnI+PGltZyBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlIj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRl
bnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9w
TGVmdCh7IG5leHRCb3gtPmxlZnQoKSwgbGluZXNbbmV4dEJveC0+bGluZUluZGV4KCldLnRvcCgp
IH0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byB0b3BMZWZ0ID0gTGF5
b3V0UG9pbnQgeyB9OworICAgICAgICBhdXRvIFtwcmV2aW91c0Rpc3BsYXlCb3gsIG5leHREaXNw
bGF5Qm94XSA9IElubGluZUZvcm1hdHRpbmdHZW9tZXRyeTo6cHJldmlvdXNBbmROZXh0RGlzcGxh
eUJveEZvclN0YXRpY1Bvc2l0aW9uKG91dE9mRmxvd0JveCwgYm94ZXMpOworCisgICAgICAgIGlm
IChwcmV2aW91c0Rpc3BsYXlCb3ggJiYgbmV4dERpc3BsYXlCb3gpIHsKKyAgICAgICAgICAgIGlm
IChwcmV2aW91c0Rpc3BsYXlCb3gtPmlzSW5saW5lQm94KCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBTcGVjaWFsIGhhbmRsaW5nIGZvciBjYXNlcyB3aGVuIHRoZSBwcmV2aW91cyBjb250ZW50IGlz
IGFuIGlubGluZSBib3g6CisgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGltZyBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgorICAgICAgICAg
ICAgICAgIC8vIG9yCisgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+Y29udGVudDwv
c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPjwvZGl2PgorICAgICAgICAgICAg
ICAgIGF1dG8gaXNGaXJzdENvbnRlbnRJbnNpZGVJbmxpbmVCb3ggPSAmb3V0T2ZGbG93Qm94LT5w
YXJlbnQoKSA9PSAmcHJldmlvdXNEaXNwbGF5Qm94LT5sYXlvdXRCb3goKTsKKyAgICAgICAgICAg
ICAgICBhdXRvJiBpbmxpbmVCb3hCb3hHZW9tZXRyeSA9IGdlb21ldHJ5Rm9yQm94KHByZXZpb3Vz
RGlzcGxheUJveC0+bGF5b3V0Qm94KCkpOworCisgICAgICAgICAgICAgICAgdG9wTGVmdCA9IHsK
KyAgICAgICAgICAgICAgICAgICAgaXNGaXJzdENvbnRlbnRJbnNpZGVJbmxpbmVCb3ggPyBCb3hH
ZW9tZXRyeTo6Ym9yZGVyQm94TGVmdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkgKyBpbmxpbmVCb3hC
b3hHZW9tZXRyeS5jb250ZW50Qm94TGVmdCgpIDogQm94R2VvbWV0cnk6Om1hcmdpbkJveFJlY3Qo
aW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCksCisgICAgICAgICAgICAgICAgICAgIGxpbmVz
W3ByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCldLnRvcCgpCisgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byYgY3VycmVudExp
bmUgPSBsaW5lc1twcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpXTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHNob3VsZEZpdExpbmUgPSBwcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgp
ID09IG5leHREaXNwbGF5Qm94LT5saW5lSW5kZXgoKSB8fCAocHJldmlvdXNEaXNwbGF5Qm94LT5y
aWdodCgpIDw9IGN1cnJlbnRMaW5lLmxlZnQoKSAmJiAhcHJldmlvdXNEaXNwbGF5Qm94LT5pc0xp
bmVCcmVha0JveCgpKTsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0ID0gc2hvdWxkRml0TGluZSA/
IExheW91dFBvaW50IHsgcHJldmlvdXNEaXNwbGF5Qm94LT5yaWdodCgpLCBjdXJyZW50TGluZS50
b3AoKSB9IDogTGF5b3V0UG9pbnQgeyBuZXh0RGlzcGxheUJveC0+bGVmdCgpLCBsaW5lc1tuZXh0
RGlzcGxheUJveC0+bGluZUluZGV4KCldLnRvcCgpIH07CiAgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSBpZiAoIXByZXZpb3VzRGlzcGxheUJveCkKKyAgICAgICAgICAgIHRvcExlZnQgPSB7
IGJveGVzWzBdLmxlZnQoKSwgbGluZXNbMF0udG9wKCkgfTsKKyAgICAgICAgZWxzZSBpZiAoIW5l
eHREaXNwbGF5Qm94KSB7CisgICAgICAgICAgICBhdXRvJiBjdXJyZW50TGluZSA9IGxpbmVzW3By
ZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCldOworICAgICAgICAgICAgYXV0byBzaG91bGRG
aXRMaW5lID0gcHJldmlvdXNEaXNwbGF5Qm94LT5yaWdodCgpIDw9IGN1cnJlbnRMaW5lLnJpZ2h0
KCkgJiYgIXByZXZpb3VzRGlzcGxheUJveC0+aXNMaW5lQnJlYWtCb3goKTsKKyAgICAgICAgICAg
IHRvcExlZnQgPSBzaG91bGRGaXRMaW5lID8gTGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rpc3BsYXlC
b3gtPnJpZ2h0KCksIGN1cnJlbnRMaW5lLnRvcCgpIH0gOiBMYXlvdXRQb2ludCB7IGN1cnJlbnRM
aW5lLmxlZnQoKSwgY3VycmVudExpbmUuYm90dG9tKCkgfTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgICAgICAgICAgYXV0byYgbGFzdExp
bmUgPSBsaW5lc1twcmV2aW91c0JveC5saW5lSW5kZXgoKV07Ci0gICAgICAgICAgICAvLyBUaGlz
IG91dC1vZi1mbG93IGJveCBpcyB0aGUgbGFzdCBib3guCi0gICAgICAgICAgICAvLyBGSVhNRTog
VXNlIGlzTGluZUJyZWFrIGluc3RlYWQgdG8gY292ZXIgcHJlc2VydmVkIG5ldyBsaW5lcyB0b28u
Ci0gICAgICAgICAgICBpZiAocHJldmlvdXNCb3gubGF5b3V0Qm94KCkuaXNMaW5lQnJlYWtCb3go
KSkgewotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAg
ICAgICAgICAgICAgb3V0T2ZGbG93R2VvbWV0cnkuc2V0TG9naWNhbFRvcExlZnQoeyBsYXN0TGlu
ZS5sZWZ0KCksIGxhc3RMaW5lLmJvdHRvbSgpIH0pOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBtYXkgbmVlZCB0byBjaGVj
ayBpZiB0aGlzIGJveCBhY3R1YWxseSBmaXRzIHRoZSBsYXN0IGxpbmUgYW5kIG1vdmUgaXQgb3Zl
ciB0byB0aGUgIm5leHQiIGxpbmUuCi0gICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRM
b2dpY2FsVG9wTGVmdCh7IHByZXZpb3VzQm94LnJpZ2h0KCksIGxhc3RMaW5lLnRvcCgpIH0pOwot
ICAgICAgICB9OwotICAgICAgICBwbGFjZU91dE9mRmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dC
b3goKTsKKyAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0JveCku
c2V0TG9naWNhbFRvcExlZnQodG9wTGVmdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAppbmRleCAzZTJkZjMwOTdhYzEu
LjBmOWE5ZGRjYzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwCkBAIC0xNzUsNyArMTc1LDM5IEBAIElubGluZUxheW91dFVuaXQgSW5s
aW5lRm9ybWF0dGluZ0dlb21ldHJ5Ojpjb21wdXRlZFRleHRJbmRlbnQoSXNJbnRyaW5zaWNXaWR0
aE1vCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogICAgIHJldHVybiB7IG1pbmltdW1WYWx1
ZUZvckxlbmd0aCh0ZXh0SW5kZW50LCBhdmFpbGFibGVXaWR0aCkgfTsKLX07Cit9CisKK3N0ZDo6
dHVwbGU8Y29uc3QgSW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94
Kj4gSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjpwcmV2aW91c0FuZE5leHREaXNwbGF5Qm94Rm9y
U3RhdGljUG9zaXRpb24oY29uc3QgQm94JiBvdXRPZkZsb3dCb3gsIGNvbnN0IERpc3BsYXlCb3hl
cyYgZGlzcGxheUJveGVzKQoreworICAgIC8vIEJvdGggcHJldmlvdXMgZmxvYXQgYW5kIG91dC1v
Zi1mbG93IGJveGVzIGFyZSBza2lwcGVkIGhlcmUuIEEgc2VyaWVzIG9mIGFkam9pbmluZyBvdXQt
b2YtZmxvdyBib3hlcyBzaG91bGQgYWxsIGJlIHBsYWNlZAorICAgIC8vIGF0IHRoZSBzYW1lIHN0
YXRpYyBwb3NpdGlvbiAodGhleSBkb24ndCBhZmZlY3QgbmV4dC1zaWJsaW5nIHBvc2l0aW9ucykg
YW5kIHdoaWxlIGZsb2F0cyBkbyBwYXJ0aWNpcGF0ZSBpbiB0aGUgaW5saW5lIGxheW91dAorICAg
IC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFjY291bnQg
ZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgorICAgIGF1dG8gcHJldmlvdXNJbkZsb3dCb3ggPSBb
Jl0gKCkgLT4gY29uc3QgQm94KiB7CisgICAgICAgIGlmIChhdXRvKiBwcmV2aW91c0luRmxvd1Np
YmxpbmcgPSBvdXRPZkZsb3dCb3gucHJldmlvdXNJbkZsb3dTaWJsaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gcHJldmlvdXNJbkZsb3dTaWJsaW5nOworICAgICAgICAvLyBQYXJlbnQgaXMgZWl0
aGVyIHRoZSByb290IGhlcmUgb3IgYW5vdGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9zcGFuPikKKyAgICAgICAgYXV0byYgcGFyZW50
ID0gb3V0T2ZGbG93Qm94LnBhcmVudCgpOworICAgICAgICByZXR1cm4gcGFyZW50LmlzSW5saW5l
Qm94KCkgPyAmcGFyZW50IDogbnVsbHB0cjsKKyAgICB9KCk7CisKKyAgICBpZiAoIXByZXZpb3Vz
SW5GbG93Qm94KSB7CisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGNvbnRlbnQuIEl0IHNp
dHMgb24gdGhlIGVkZ2Ugb2YgdGhlIGZpcnN0IHJvb3QgaW5saW5lIGJveC4gV2UgZG9uJ3QgbmVl
ZCB0byBwcm92aWRlIHRoZSBuZXh0IGRpc3BsYXkgYm94LgorICAgICAgICByZXR1cm4geyBudWxs
cHRyLCBudWxscHRyIH07CisgICAgfQorCisgICAgLy8gVGhpcyBpcyBzdXBwb3NlZCB0byBmaW5k
IHRoZSBsYXN0IGRpc3BsYXkgYm94IG9mIHRoZSAiaW5mbG93Qm94IiBhbmQgcmV0dXJuIGl0IHdp
dGggdGhlIG5leHQgZGlzcGxheSBib3ggKGZpcnN0IGJveCBvZiB0aGUgbmV4dCBpbmZsb3cgY29u
dGVudCkuCisgICAgYXV0byBmb3VuZEZpcnN0RGlzcGxheUJveCA9IGZhbHNlOworICAgIGZvciAo
c2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBkaXNwbGF5Qm94ZXMuc2l6ZSgpOyArK2luZGV4KSB7
CisgICAgICAgIGlmIChmb3VuZEZpcnN0RGlzcGxheUJveCAmJiAmZGlzcGxheUJveGVzW2luZGV4
XS5sYXlvdXRCb3goKSAhPSBwcmV2aW91c0luRmxvd0JveCkgeworICAgICAgICAgICAgQVNTRVJU
KGluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiB7ICZkaXNwbGF5Qm94ZXNbaW5kZXggLSAxXSwg
JmRpc3BsYXlCb3hlc1tpbmRleF0gfTsKKyAgICAgICAgfQorICAgICAgICBmb3VuZEZpcnN0RGlz
cGxheUJveCA9IGZvdW5kRmlyc3REaXNwbGF5Qm94IHx8ICZkaXNwbGF5Qm94ZXNbaW5kZXhdLmxh
eW91dEJveCgpID09IHByZXZpb3VzSW5GbG93Qm94OworICAgIH0KKyAgICBpZiAoZm91bmRGaXJz
dERpc3BsYXlCb3gpCisgICAgICAgIHJldHVybiB7ICZkaXNwbGF5Qm94ZXNbZGlzcGxheUJveGVz
LnNpemUoKSAtIDFdLCBudWxscHRyIH07CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9
OworfQogCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9t
ZXRyeS5oCmluZGV4IDc0NTk4N2EyNDA1OS4uNjE4NTUwYWZmMWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGlu
ZUxldmVsQm94JiwgY29uc3QgTGluZUJveCYpIGNvbnN0OwogCiAgICAgc3RhdGljIElubGluZVJl
Y3QgZmxpcFZpc3VhbFJlY3RUb0xvZ2ljYWxGb3JXcml0aW5nTW9kZShjb25zdCBJbmxpbmVSZWN0
JiB2aXN1YWxSZWN0LCBXcml0aW5nTW9kZSk7CisgICAgc3RhdGljIHN0ZDo6dHVwbGU8Y29uc3Qg
SW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94Kj4gcHJldmlvdXNB
bmROZXh0RGlzcGxheUJveEZvclN0YXRpY1Bvc2l0aW9uKGNvbnN0IEJveCYgb3V0T2ZGbG93Qm94
LCBjb25zdCBEaXNwbGF5Qm94ZXMmKTsKIAogcHJpdmF0ZToKICAgICBjb25zdCBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2Fz
dDxJbmxpbmVGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0dlb21ldHJ5Ojpmb3JtYXR0aW5n
Q29udGV4dCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
Y3BwCmluZGV4IDYxNTBmYTYxYzM2My4uZTg5MWU1YmE3YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIK
ICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxpbmVCcmVhay5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNp
bmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgpAQCAtNDA2LDcgKzQwNywxNCBAQCB2b2lkIExpbmVM
YXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJCb3g+KCpib3hBbmRSZW5kZXJlci5y
ZW5kZXJlcik7Ci0gICAgICAgIHJlbmRlcmVyLnNldExvY2F0aW9uKExheW91dDo6Qm94R2VvbWV0
cnk6OmJvcmRlckJveFRvcExlZnQobV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnko
bGF5b3V0Qm94KSkpOworICAgICAgICBhdXRvIHRvcExlZnQgPSBMYXlvdXQ6OkJveEdlb21ldHJ5
Ojpib3JkZXJCb3hUb3BMZWZ0KG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxh
eW91dEJveCkpOworICAgICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
KSB7CisgICAgICAgICAgICBhdXRvJiBsYXllciA9ICpyZW5kZXJlci5sYXllcigpOworICAgICAg
ICAgICAgbGF5ZXIuc2V0U3RhdGljQmxvY2tQb3NpdGlvbih0b3BMZWZ0LnkoKSk7CisgICAgICAg
ICAgICBsYXllci5zZXRTdGF0aWNJbmxpbmVQb3NpdGlvbih0b3BMZWZ0LngoKSk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbih0
b3BMZWZ0KTsKICAgICB9CiAKICAgICBtX2lubGluZUNvbnRlbnQtPmNsZWFyR2FwQWZ0ZXJMYXN0
TGluZSA9IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmNsZWFyR2FwQWZ0ZXJMYXN0TGluZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA2ZDRl
ODE3YzczZGUuLjljMzZlMWQyYjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKQEAgLTM1NzEsNiArMzU3MSw5IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRNb2Rlcm5MaW5lcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQm
IHJlcGFpCiAgICAgICAgIGlmICghcmVuZGVyZXIubmVlZHNMYXlvdXQoKSAmJiAhbmVlZHNVcGRh
dGVSZXBsYWNlZERpbWVuc2lvbnMpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBp
ZiAocmVuZGVyZXIuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZW5kZXJl
ci5jb250YWluaW5nQmxvY2soKS0+aW5zZXJ0UG9zaXRpb25lZE9iamVjdChkb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlcmVyKSk7CisKICAgICAgICAgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5k
ZXJlcikpIHsKICAgICAgICAgICAgIGF1dG8mIHJlcGxhY2VkID0gZG93bmNhc3Q8UmVuZGVyUmVw
bGFjZWQ+KHJlbmRlcmVyKTsKICAgICAgICAgICAgIHJlcGxhY2VkLmxheW91dElmTmVlZGVkKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFp
bnQtZXhwZWN0ZWQudHh0CmluZGV4IGEyZGRlZTJjMjQzMi4uZTEyNDk2YmU4MDc2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4
cGVjdGVkLnR4dApAQCAtMjEsMjMgKzIxLDIzIEBACiAgIChyZWN0IDggMTIwIDMwIDgwKQogICAo
cmVjdCA1IDE3NCA1NiAzMCkKICAgKHJlY3QgNSAxMjAgNTYgODQpCi0gIChyZWN0IDUgMjA1IDU2
IDM3KQotICAocmVjdCA1IDM3NSA1NiAzNykKKyAgKHJlY3QgNSAyMDUgNTYgMzQpCisgIChyZWN0
IDUgMzc1IDU2IDM0KQogICAocmVjdCA1IDQ1NyAxMDMgNjcpCiAgIChyZWN0IDggNDYwIDEwMCA2
NCkKICAgKHJlY3QgOCA1NDUgMTAwIDY0KQogICAocmVjdCA1IDU0MiAxMDMgNjcpCi0gIChyZWN0
IDQ1IDIxMiAzNiA0MCkKLSAgKHJlY3QgNDggMjE1IDMwIDM0KQotICAocmVjdCAxNTUgMjEyIDM2
IDQwKQotICAocmVjdCAxNTggMjE1IDMwIDM0KQorICAocmVjdCA0NSAyMTIgMzYgMzYpCisgIChy
ZWN0IDQ4IDIxNSAzMCAzMCkKKyAgKHJlY3QgMTU1IDIxMiAzNiAzNikKKyAgKHJlY3QgMTU4IDIx
NSAzMCAzMCkKICAgKHJlY3QgNyAzNzcgMzYgMzYpCiAgIChyZWN0IDEwIDM4MCAzMCAzMCkKICAg
KHJlY3QgMTQ3IDM3NyAzNiAzNikKICAgKHJlY3QgMTUwIDM4MCAzMCAzMCkKLSAgKHJlY3QgMTA1
IDM4MiAzNiA0MCkKLSAgKHJlY3QgMTA4IDM4NSAzMCAzNCkKLSAgKHJlY3QgMjA1IDM4MiAzNiA0
MCkKLSAgKHJlY3QgMjA4IDM4NSAzMCAzNCkKKyAgKHJlY3QgMTA1IDM4MiAzNiAzNikKKyAgKHJl
Y3QgMTA4IDM4NSAzMCAzMCkKKyAgKHJlY3QgMjA1IDM4MiAzNiAzNikKKyAgKHJlY3QgMjA4IDM4
NSAzMCAzMCkKICkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461701</attachid>
            <date>2022-08-17 16:51:21 -0700</date>
            <delta_ts>2022-08-20 07:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220817165121.patch</filename>
            <type>text/plain</type>
            <size>20031</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzZDc5ZjdmOTIzYmQ3YjdjMGU4YjU3MWIwOWY2MTcyYTQwYjYyZGM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDE2OjM3OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkVGV4dEluZGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNv
bnN0cnVjdENvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyk6Ci0t
LQogU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgICAgIHwgICA1ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAgfCAgIDYgKwog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgMTA5ICsrKysr
LS0tLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAg
ICAgIHwgIDM0ICsrKysrLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAg
ICAgICAgIHwgICAxICsKIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcCB8ICAgMiArLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3Bw
ICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cCAgfCAgIDMgKwogLi4uL3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVkLnR4dCAg
IHwgIDIwICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTUgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCAz
OTQ3Y2QxNmZmYWMuLmVkNDI4MTk3NGFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdTdGF0ZS5jcHAKQEAgLTUwLDggKzUwLDkgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0
dGluZ1N0YXRlKCkKIAogQm94R2VvbWV0cnkmIEZvcm1hdHRpbmdTdGF0ZTo6Ym94R2VvbWV0cnko
Y29uc3QgQm94JiBsYXlvdXRCb3gpCiB7Ci0gICAgLy8gU2hvdWxkIG5ldmVyIG5lZWQgdG8gbXV0
YXRlIGEgZGlzcGxheSBib3ggb3V0c2lkZSBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0LgotICAg
IEFTU0VSVCgmbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4
dChsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpID09IHRoaXMpOworICAgIC8vIFNo
b3VsZCBuZXZlciBuZWVkIHRvIG11dGF0ZSBhIGRpc3BsYXkgYm94IG91dHNpZGUgb2YgdGhlIGZv
cm1hdHRpbmcgY29udGV4dCwgdW5sZXNzIHdlIGFyZSB0cnlpbmcKKyAgICAvLyB0byBjb21wdXRl
IHRoZSBzdGF0aWMgcG9zaXRpb24gb2YgYW4gb3V0LW9mLWZsb3cgYm94LgorICAgIEFTU0VSVCgo
bGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGlzSW5saW5lRm9ybWF0dGluZ1N0
YXRlKCkpIHx8ICZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250
ZXh0KGxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CiAgICAgLy8g
QW5vbnltb3VzIHRleHQgd3JhcHBlcnMgZG8gbm90IG5lZWQgdG8gY29tcHV0ZSBib3ggZ2VvbWV0
cnkuIFRoZXkgaW5pdGlhdGUgaW5saW5lIHJ1bnMuCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNJ
bmxpbmVUZXh0Qm94KCkpOwogICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21ldHJ5
Rm9yQm94KGxheW91dEJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDc0YjZl
MDhmYzQxOC4uYTVlZTQ4OGZiODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAt
MTcxLDYgKzE3MSwxMiBAQCBjb25zdCBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ0NvbnRleHQ6Omdl
b21ldHJ5Rm9yQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6OgogICAgIFVOVVNFRF9QQVJB
TShlc2NhcGVSZWFzb24pOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYXV0byBpc09rVG9BY2Nl
c3NCb3hHZW9tZXRyeSA9IFsmXSB7CisgICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgJiYgaXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAg
ICAvLyBUaGlzIGlzIHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2Vv
bWV0cnkgaW5mb3JtYXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dCB3aGVu
CisgICAgICAgICAgICAvLyBjb21wdXRpbmcgc3RhdGljIHBvc2l0aW9uIGZvciBvdXQtb2YtZmxv
dyBib3hlcy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAg
aWYgKCFpczxJbml0aWFsQ29udGFpbmluZ0Jsb2NrPihsYXlvdXRCb3gpICYmICZsYXlvdXRCb3gu
Zm9ybWF0dGluZ0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkgewogICAgICAgICAgICAgLy8gVGhp
cyBpcyB0aGUgbm9uLWVzY2FwZSBjYXNlIG9mIGFjY2Vzc2luZyBhIGJveCdzIGdlb21ldHJ5IGlu
Zm9ybWF0aW9uIHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCA5OGJlNTc4N2Y3OTQuLjAwNjkyMzhlYzgzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjc3LDg4ICsy
NzcsMzcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0
aW9uRm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9IGZvcm1h
dHRpbmdTdGF0ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBvdXRP
ZkZsb3dCb3hlcykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRp
bmdTdGF0ZS5ib3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpOwotICAgICAgICAvLyBCb3RoIHByZXZp
b3VzIGZsb2F0IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmll
cyBvZiBhZGpvaW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKLSAg
ICAgICAgLy8gYXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBu
ZXh0LXNpYmxpbmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGlu
IHRoZSBpbmxpbmUgbGF5b3V0Ci0gICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVh
ZHkgYmVlbiB0YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgotICAg
ICAgICBhdXRvIHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID0gWyZdKCkgLT4gY29uc3Qg
TGF5b3V0OjpCb3gqIHsKLSAgICAgICAgICAgIGF1dG8qIHByZXZpb3VzU2libGluZyA9IG91dE9m
Rmxvd0JveC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICBmb3IgKDsgcHJldmlvdXNT
aWJsaW5nICYmIHByZXZpb3VzU2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgcHJldmlv
dXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKSkgeyB9Ci0gICAg
ICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmV2
aW91c1NpYmxpbmc7Ci0gICAgICAgICAgICAvLyBQYXJlbnQgaXMgZWl0aGVyIHRoZSByb290IGhl
cmUgb3IgYW5vdGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+PC9zcGFuPikKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxv
d0JveC0+cGFyZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gJnBhcmVudCA9PSAmcm9vdCgpID8g
bnVsbHB0ciA6ICZwYXJlbnQ7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBpZiAoIXByZXZpb3Vz
Q29udGVudFNraXBwaW5nRmxvYXRzKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJz
dCAobm9uLWZsb2F0KWNoaWxkLiBMZXQncyBwbGFjZSBpdCB0byB0aGUgbGVmdCBvZiB0aGUgZmly
c3QgYm94LgotICAgICAgICAgICAgLy8gPGRpdj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGUiPnRleHQgY29udGVudDwvZGl2PgotICAgICAgICAgICAgQVNTRVJUKGJveGVzLnNpemUoKSk7
Ci0gICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGJveGVz
WzBdLmxlZnQoKSwgbGluZXNbMF0udG9wKCkgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNP
dXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnNlcXVlbnQgb3V0LW9m
LWZsb3cgcG9zaXRpb25lZCBib3hlcyBzaGFyZSB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24uCi0g
ICAgICAgICAgICAvLyA8ZGl2PnRleHQgY29udGVudDxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAg
IG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KEJveEdlb21ldHJ5Ojpib3JkZXJC
b3hUb3BMZWZ0KGdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykp
KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKHBy
ZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzLT5pc0luRmxvdygpKTsKLSAgICAgICAgYXV0byBw
bGFjZU91dE9mRmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3ggPSBbJl0gewotICAgICAgICAg
ICAgLy8gVGhlIG91dC1vZi1mbG93IGJveCBzaG91bGQgYmUgcGxhY2VkIGFmdGVyIHRoaXMgaW5m
bG93IGJveC4KLSAgICAgICAgICAgIC8vIFNraXAgdG8gdGhlIGxhc3QgYm94IG9mIHRoaXMgbGF5
b3V0IGJveC4gVGhlIGxhc3QgYm94J3MgZ2VvbWV0cnkgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBv
dXQtb2YtZmxvdyBib3gncyBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAgICBzaXplX3QgbGFz
dEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsgbGFz
dEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFz
dEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0Qm94KCkgIT0gcHJldmlvdXNDb250
ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9
Ci0gICAgICAgICAgICBpZiAobGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9PSBib3hl
cy5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdmVyeSByYXJlIGNhc2Vz
LCB0aGUgcHJldmlvdXMgYm94J3MgY29udGVudCBtaWdodCBoYXZlIGJlZW4gY29tcGxldGVseSBj
b2xsYXBzZWQgYW5kIGxlZnQgdXMgd2l0aCBubyBib3guCi0gICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJv
eCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJv
eF0ubGF5b3V0Qm94KCkgPT0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJv
eEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAgICAgICAgICAgLS1sYXN0Qm94
SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94OwotICAgICAgICAgICAgLy8gTGV0J3MgY2hlY2sgaWYg
dGhlIHByZXZpb3VzIGJveCBpcyB0aGUgbGFzdCBib3ggb24gdGhlIGN1cnJlbnQgbGluZSBhbmQg
dXNlIHRoZSBuZXh0IGJveCdzIGxlZnQgaW5zdGVhZC4KLSAgICAgICAgICAgIGF1dG8mIHByZXZp
b3VzQm94ID0gYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF07Ci0gICAgICAg
ICAgICBhdXRvKiBuZXh0Qm94ID0gbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDEg
PCBib3hlcy5zaXplKCkgPyAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCAr
IDFdIDogbnVsbHB0cjsKLQotICAgICAgICAgICAgaWYgKG5leHRCb3ggJiYgbmV4dEJveC0+bGlu
ZUluZGV4KCkgPT0gcHJldmlvdXNCb3gubGluZUluZGV4KCkpIHsKLSAgICAgICAgICAgICAgICAv
LyBQcmV2aW91cyBhbmQgbmV4dCBib3hlcyBhcmUgb24gdGhlIHNhbWUgbGluZS4gVGhlIG91dC1v
Zi1mbG93IGJveCBpcyByaWdodCBhdCB0aGUgcHJldmlvdXMgYm94J3MgbG9naWNhbCByaWdodC4K
LSAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGUiPmNvbnRlbnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBhdXRvIGxlZnQgPSBwcmV2aW91c0Jv
eC5yaWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zs
b2F0cy0+aXNJbmxpbmVCb3goKSAmJiAhcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlz
QW5vbnltb3VzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGlt
ZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgotICAgICAg
ICAgICAgICAgICAgICAvLyBvcgotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bh
bj5jb250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlG
b3JCb3goKnByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzKTsKLSAgICAgICAgICAgICAgICAg
ICAgbGVmdCA9IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID09ICZvdXRPZkZsb3dCb3gt
PnBhcmVudCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IEJveEdlb21ldHJ5Ojpib3JkZXJC
b3hMZWZ0KGlubGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRl
bnRCb3hMZWZ0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogQm94R2VvbWV0cnk6OmJvcmRl
ckJveFJlY3QoaW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsg
bGVmdCwgbGluZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCldLnRvcCgpIH0pOwotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG5leHRCb3gp
IHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgb3V0IG9mIGZsb3cgYm94IGlzIHBsYWNlZCBhdCB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGxpbmUgKHdoZXJlIHRoZSBmaXJzdCBib3ggb24gdGhl
IGxpbmUgaXMpLgotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVu
dDwvZGl2PgotICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BM
ZWZ0KHsgbmV4dEJveC0+bGVmdCgpLCBsaW5lc1tuZXh0Qm94LT5saW5lSW5kZXgoKV0udG9wKCkg
fSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIHRvcExlZnQgPSBMYXlv
dXRQb2ludCB7IH07CisgICAgICAgIGF1dG8gW3ByZXZpb3VzRGlzcGxheUJveCwgbmV4dERpc3Bs
YXlCb3hdID0gSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjpwcmV2aW91c0FuZE5leHREaXNwbGF5
Qm94Rm9yU3RhdGljUG9zaXRpb24ob3V0T2ZGbG93Qm94LCBib3hlcyk7CisKKyAgICAgICAgaWYg
KHByZXZpb3VzRGlzcGxheUJveCAmJiBuZXh0RGlzcGxheUJveCkgeworICAgICAgICAgICAgaWYg
KHByZXZpb3VzRGlzcGxheUJveC0+aXNJbmxpbmVCb3goKSkgeworICAgICAgICAgICAgICAgIC8v
IFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNhc2VzIHdoZW4gdGhlIHByZXZpb3VzIGNvbnRlbnQgaXMg
YW4gaW5saW5lIGJveDoKKyAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj48aW1nIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRlbnQ8L3NwYW4+PC9kaXY+CisgICAgICAgICAg
ICAgICAgLy8gb3IKKyAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5jb250ZW50PC9z
cGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+CisgICAgICAgICAgICAg
ICAgYXV0byBpc0ZpcnN0Q29udGVudEluc2lkZUlubGluZUJveCA9ICZvdXRPZkZsb3dCb3gtPnBh
cmVudCgpID09ICZwcmV2aW91c0Rpc3BsYXlCb3gtPmxheW91dEJveCgpOworICAgICAgICAgICAg
ICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3gocHJldmlvdXNE
aXNwbGF5Qm94LT5sYXlvdXRCb3goKSk7CisKKyAgICAgICAgICAgICAgICB0b3BMZWZ0ID0gewor
ICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0Q29udGVudEluc2lkZUlubGluZUJveCA/IEJveEdl
b21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlubGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJv
eEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCkgOiBCb3hHZW9tZXRyeTo6bWFyZ2luQm94UmVjdChp
bmxpbmVCb3hCb3hHZW9tZXRyeSkucmlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICAgbGluZXNb
cHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV0udG9wKCkKKyAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBjdXJyZW50TGlu
ZSA9IGxpbmVzW3ByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCldOworICAgICAgICAgICAg
ICAgIGF1dG8gc2hvdWxkRml0TGluZSA9IHByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCkg
PT0gbmV4dERpc3BsYXlCb3gtPmxpbmVJbmRleCgpIHx8IChwcmV2aW91c0Rpc3BsYXlCb3gtPnJp
Z2h0KCkgPD0gY3VycmVudExpbmUubGVmdCgpICYmICFwcmV2aW91c0Rpc3BsYXlCb3gtPmlzTGlu
ZUJyZWFrQm94KCkpOworICAgICAgICAgICAgICAgIHRvcExlZnQgPSBzaG91bGRGaXRMaW5lID8g
TGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCksIGN1cnJlbnRMaW5lLnRv
cCgpIH0gOiBMYXlvdXRQb2ludCB7IG5leHREaXNwbGF5Qm94LT5sZWZ0KCksIGxpbmVzW25leHRE
aXNwbGF5Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlIGlmICghcHJldmlvdXNEaXNwbGF5Qm94KQorICAgICAgICAgICAgdG9wTGVmdCA9IHsg
Ym94ZXNbMF0ubGVmdCgpLCBsaW5lc1swXS50b3AoKSB9OworICAgICAgICBlbHNlIGlmICghbmV4
dERpc3BsYXlCb3gpIHsKKyAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRMaW5lID0gbGluZXNbcHJl
dmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV07CisgICAgICAgICAgICBhdXRvIHNob3VsZEZp
dExpbmUgPSBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCkgPD0gY3VycmVudExpbmUucmlnaHQo
KSAmJiAhcHJldmlvdXNEaXNwbGF5Qm94LT5pc0xpbmVCcmVha0JveCgpOworICAgICAgICAgICAg
dG9wTGVmdCA9IHNob3VsZEZpdExpbmUgPyBMYXlvdXRQb2ludCB7IHByZXZpb3VzRGlzcGxheUJv
eC0+cmlnaHQoKSwgY3VycmVudExpbmUudG9wKCkgfSA6IExheW91dFBvaW50IHsgY3VycmVudExp
bmUubGVmdCgpLCBjdXJyZW50TGluZS5ib3R0b20oKSB9OworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCi0gICAgICAgICAgICBhdXRvJiBsYXN0TGlu
ZSA9IGxpbmVzW3ByZXZpb3VzQm94LmxpbmVJbmRleCgpXTsKLSAgICAgICAgICAgIC8vIFRoaXMg
b3V0LW9mLWZsb3cgYm94IGlzIHRoZSBsYXN0IGJveC4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBV
c2UgaXNMaW5lQnJlYWsgaW5zdGVhZCB0byBjb3ZlciBwcmVzZXJ2ZWQgbmV3IGxpbmVzIHRvby4K
LSAgICAgICAgICAgIGlmIChwcmV2aW91c0JveC5sYXlvdXRCb3goKS5pc0xpbmVCcmVha0JveCgp
KSB7Ci0gICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PGJyPjxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAg
ICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGxhc3RMaW5l
LmxlZnQoKSwgbGFzdExpbmUuYm90dG9tKCkgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gRklYTUU6IFdlIG1heSBuZWVkIHRvIGNoZWNr
IGlmIHRoaXMgYm94IGFjdHVhbGx5IGZpdHMgdGhlIGxhc3QgbGluZSBhbmQgbW92ZSBpdCBvdmVy
IHRvIHRoZSAibmV4dCIgbGluZS4KLSAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExv
Z2ljYWxUb3BMZWZ0KHsgcHJldmlvdXNCb3gucmlnaHQoKSwgbGFzdExpbmUudG9wKCkgfSk7Ci0g
ICAgICAgIH07Ci0gICAgICAgIHBsYWNlT3V0T2ZGbG93Qm94QWZ0ZXJQcmV2aW91c0luRmxvd0Jv
eCgpOworICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkob3V0T2ZGbG93Qm94KS5z
ZXRMb2dpY2FsVG9wTGVmdCh0b3BMZWZ0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmluZGV4IDNlMmRmMzA5N2FjMS4u
MGY5YTlkZGNjN2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdHZW9tZXRyeS5jcHAKQEAgLTE3NSw3ICsxNzUsMzkgQEAgSW5saW5lTGF5b3V0VW5pdCBJbmxp
bmVGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbXB1dGVkVGV4dEluZGVudChJc0ludHJpbnNpY1dpZHRo
TW8KICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgcmV0dXJuIHsgbWluaW11bVZhbHVl
Rm9yTGVuZ3RoKHRleHRJbmRlbnQsIGF2YWlsYWJsZVdpZHRoKSB9OwotfTsKK30KKworc3RkOjp0
dXBsZTxjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3gqLCBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3gq
PiBJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnk6OnByZXZpb3VzQW5kTmV4dERpc3BsYXlCb3hGb3JT
dGF0aWNQb3NpdGlvbihjb25zdCBCb3gmIG91dE9mRmxvd0JveCwgY29uc3QgRGlzcGxheUJveGVz
JiBkaXNwbGF5Qm94ZXMpCit7CisgICAgLy8gQm90aCBwcmV2aW91cyBmbG9hdCBhbmQgb3V0LW9m
LWZsb3cgYm94ZXMgYXJlIHNraXBwZWQgaGVyZS4gQSBzZXJpZXMgb2YgYWRqb2luaW5nIG91dC1v
Zi1mbG93IGJveGVzIHNob3VsZCBhbGwgYmUgcGxhY2VkCisgICAgLy8gYXQgdGhlIHNhbWUgc3Rh
dGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxpbmcgcG9zaXRpb25zKSBh
bmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5b3V0CisgICAg
Ly8gdGhlaXIgcG9zaXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIHRha2VuIGludG8gYWNjb3VudCBk
dXJpbmcgdGhlIGlubGluZSBsYXlvdXQuCisgICAgYXV0byBwcmV2aW91c0luRmxvd0JveCA9IFsm
XSAoKSAtPiBjb25zdCBCb3gqIHsKKyAgICAgICAgaWYgKGF1dG8qIHByZXZpb3VzSW5GbG93U2li
bGluZyA9IG91dE9mRmxvd0JveC5wcmV2aW91c0luRmxvd1NpYmxpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiBwcmV2aW91c0luRmxvd1NpYmxpbmc7CisgICAgICAgIC8vIFBhcmVudCBpcyBlaXRo
ZXIgdGhlIHJvb3QgaGVyZSBvciBhbm90aGVyIGlubGluZSBib3ggKGUuZy4gPHNwYW4+PGltZyBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L3NwYW4+KQorICAgICAgICBhdXRvJiBwYXJlbnQg
PSBvdXRPZkZsb3dCb3gucGFyZW50KCk7CisgICAgICAgIHJldHVybiBwYXJlbnQuaXNJbmxpbmVC
b3goKSA/ICZwYXJlbnQgOiBudWxscHRyOworICAgIH0oKTsKKworICAgIGlmICghcHJldmlvdXNJ
bkZsb3dCb3gpIHsKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgY29udGVudC4gSXQgc2l0
cyBvbiB0aGUgZWRnZSBvZiB0aGUgZmlyc3Qgcm9vdCBpbmxpbmUgYm94LiBXZSBkb24ndCBuZWVk
IHRvIHByb3ZpZGUgdGhlIG5leHQgZGlzcGxheSBib3guCisgICAgICAgIHJldHVybiB7IG51bGxw
dHIsIG51bGxwdHIgfTsKKyAgICB9CisKKyAgICAvLyBUaGlzIGlzIHN1cHBvc2VkIHRvIGZpbmQg
dGhlIGxhc3QgZGlzcGxheSBib3ggb2YgdGhlICJpbmZsb3dCb3giIGFuZCByZXR1cm4gaXQgd2l0
aCB0aGUgbmV4dCBkaXNwbGF5IGJveCAoZmlyc3QgYm94IG9mIHRoZSBuZXh0IGluZmxvdyBjb250
ZW50KS4KKyAgICBhdXRvIGZvdW5kRmlyc3REaXNwbGF5Qm94ID0gZmFsc2U7CisgICAgZm9yIChz
aXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGRpc3BsYXlCb3hlcy5zaXplKCk7ICsraW5kZXgpIHsK
KyAgICAgICAgaWYgKGZvdW5kRmlyc3REaXNwbGF5Qm94ICYmICZkaXNwbGF5Qm94ZXNbaW5kZXhd
LmxheW91dEJveCgpICE9IHByZXZpb3VzSW5GbG93Qm94KSB7CisgICAgICAgICAgICBBU1NFUlQo
aW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlCb3hlc1tpbmRleCAtIDFdLCAm
ZGlzcGxheUJveGVzW2luZGV4XSB9OworICAgICAgICB9CisgICAgICAgIGZvdW5kRmlyc3REaXNw
bGF5Qm94ID0gZm91bmRGaXJzdERpc3BsYXlCb3ggfHwgJmRpc3BsYXlCb3hlc1tpbmRleF0ubGF5
b3V0Qm94KCkgPT0gcHJldmlvdXNJbkZsb3dCb3g7CisgICAgfQorICAgIGlmIChmb3VuZEZpcnN0
RGlzcGxheUJveCkKKyAgICAgICAgcmV0dXJuIHsgJmRpc3BsYXlCb3hlc1tkaXNwbGF5Qm94ZXMu
c2l6ZSgpIC0gMV0sIG51bGxwdHIgfTsKKyAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07
Cit9CiAKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21l
dHJ5LmgKaW5kZXggNzQ1OTg3YTI0MDU5Li42MTg1NTBhZmYxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1
YmxpYzoKICAgICBib29sIGlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3QgSW5saW5l
TGV2ZWxCb3gmLCBjb25zdCBMaW5lQm94JikgY29uc3Q7CiAKICAgICBzdGF0aWMgSW5saW5lUmVj
dCBmbGlwVmlzdWFsUmVjdFRvTG9naWNhbEZvcldyaXRpbmdNb2RlKGNvbnN0IElubGluZVJlY3Qm
IHZpc3VhbFJlY3QsIFdyaXRpbmdNb2RlKTsKKyAgICBzdGF0aWMgc3RkOjp0dXBsZTxjb25zdCBJ
bmxpbmVEaXNwbGF5OjpCb3gqLCBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3gqPiBwcmV2aW91c0Fu
ZE5leHREaXNwbGF5Qm94Rm9yU3RhdGljUG9zaXRpb24oY29uc3QgQm94JiBvdXRPZkZsb3dCb3gs
IGNvbnN0IERpc3BsYXlCb3hlcyYpOwogCiBwcml2YXRlOgogICAgIGNvbnN0IElubGluZUZvcm1h
dHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0
PElubGluZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nR2VvbWV0cnk6OmZvcm1hdHRpbmdD
b250ZXh0KCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKaW5kZXggMDA1MmViZDkz
MTAzLi45ODg3MTg1NWNlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKQEAgLTM4
MCw3ICszODAsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9y
Q2hpbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZCwgSW5jbAogCiAgICAgaWYgKGlzPFJlbmRl
clJlcGxhY2VkPihjaGlsZCkpIHsKICAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBkb3duY2FzdDxS
ZW5kZXJSZXBsYWNlZD4oY2hpbGQpOwotICAgICAgICBpZiAocmVwbGFjZWQuaXNGbG9hdGluZygp
IHx8IHJlcGxhY2VkLmlzUG9zaXRpb25lZCgpKQorICAgICAgICBpZiAocmVwbGFjZWQuaXNGbG9h
dGluZygpIHx8IHJlcGxhY2VkLmlzSW5GbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgU0VU
X1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChDaGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9u
ZWQsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKQogCiAgICAgICAgIGlmIChyZXBsYWNlZC5pc1NW
R1Jvb3RPckxlZ2FjeVNWR1Jvb3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcAppbmRleCA2MTUwZmE2MWMzNjMuLmU4OTFlNWJhN2IzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtNTQsNiArNTQsNyBA
QAogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
ckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMaW5lQnJlYWsuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0
Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKQEAgLTQwNiw3ICs0MDcsMTQgQEAg
dm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyQm94PigqYm94QW5k
UmVuZGVyZXIucmVuZGVyZXIpOwotICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbihMYXlvdXQ6
OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmJv
eEdlb21ldHJ5KGxheW91dEJveCkpKTsKKyAgICAgICAgYXV0byB0b3BMZWZ0ID0gTGF5b3V0OjpC
b3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5ib3hH
ZW9tZXRyeShsYXlvdXRCb3gpKTsKKyAgICAgICAgaWYgKGxheW91dEJveC5pc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSkgeworICAgICAgICAgICAgYXV0byYgbGF5ZXIgPSAqcmVuZGVyZXIubGF5ZXIo
KTsKKyAgICAgICAgICAgIGxheWVyLnNldFN0YXRpY0Jsb2NrUG9zaXRpb24odG9wTGVmdC55KCkp
OworICAgICAgICAgICAgbGF5ZXIuc2V0U3RhdGljSW5saW5lUG9zaXRpb24odG9wTGVmdC54KCkp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgcmVuZGVyZXIuc2V0
TG9jYXRpb24odG9wTGVmdCk7CiAgICAgfQogCiAgICAgbV9pbmxpbmVDb250ZW50LT5jbGVhckdh
cEFmdGVyTGFzdExpbmUgPSBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5jbGVhckdhcEFmdGVyTGFz
dExpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
aW5kZXggNmQ0ZTgxN2M3M2RlLi45YzM2ZTFkMmI4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zNTcxLDYgKzM1NzEsOSBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0TW9kZXJuTGluZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBM
YXlvdXRVbml0JiByZXBhaQogICAgICAgICBpZiAoIXJlbmRlcmVyLm5lZWRzTGF5b3V0KCkgJiYg
IW5lZWRzVXBkYXRlUmVwbGFjZWREaW1lbnNpb25zKQogICAgICAgICAgICAgY29udGludWU7CiAK
KyAgICAgICAgaWYgKHJlbmRlcmVyLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAg
ICAgcmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPmluc2VydFBvc2l0aW9uZWRPYmplY3QoZG93
bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikpOworCiAgICAgICAgIGlmIChpczxSZW5kZXJSZXBs
YWNlZD4ocmVuZGVyZXIpKSB7CiAgICAgICAgICAgICBhdXRvJiByZXBsYWNlZCA9IGRvd25jYXN0
PFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcik7CiAgICAgICAgICAgICByZXBsYWNlZC5sYXlvdXRJ
Zk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZvY3VzLXJp
bmctcmVwYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZm9jdXMt
cmluZy1yZXBhaW50LWV4cGVjdGVkLnR4dAppbmRleCBhMmRkZWUyYzI0MzIuLmUxMjQ5NmJlODA3
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZvY3VzLXJpbmctcmVwYWlu
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZvY3VzLXJpbmct
cmVwYWludC1leHBlY3RlZC50eHQKQEAgLTIxLDIzICsyMSwyMyBAQAogICAocmVjdCA4IDEyMCAz
MCA4MCkKICAgKHJlY3QgNSAxNzQgNTYgMzApCiAgIChyZWN0IDUgMTIwIDU2IDg0KQotICAocmVj
dCA1IDIwNSA1NiAzNykKLSAgKHJlY3QgNSAzNzUgNTYgMzcpCisgIChyZWN0IDUgMjA1IDU2IDM0
KQorICAocmVjdCA1IDM3NSA1NiAzNCkKICAgKHJlY3QgNSA0NTcgMTAzIDY3KQogICAocmVjdCA4
IDQ2MCAxMDAgNjQpCiAgIChyZWN0IDggNTQ1IDEwMCA2NCkKICAgKHJlY3QgNSA1NDIgMTAzIDY3
KQotICAocmVjdCA0NSAyMTIgMzYgNDApCi0gIChyZWN0IDQ4IDIxNSAzMCAzNCkKLSAgKHJlY3Qg
MTU1IDIxMiAzNiA0MCkKLSAgKHJlY3QgMTU4IDIxNSAzMCAzNCkKKyAgKHJlY3QgNDUgMjEyIDM2
IDM2KQorICAocmVjdCA0OCAyMTUgMzAgMzApCisgIChyZWN0IDE1NSAyMTIgMzYgMzYpCisgIChy
ZWN0IDE1OCAyMTUgMzAgMzApCiAgIChyZWN0IDcgMzc3IDM2IDM2KQogICAocmVjdCAxMCAzODAg
MzAgMzApCiAgIChyZWN0IDE0NyAzNzcgMzYgMzYpCiAgIChyZWN0IDE1MCAzODAgMzAgMzApCi0g
IChyZWN0IDEwNSAzODIgMzYgNDApCi0gIChyZWN0IDEwOCAzODUgMzAgMzQpCi0gIChyZWN0IDIw
NSAzODIgMzYgNDApCi0gIChyZWN0IDIwOCAzODUgMzAgMzQpCisgIChyZWN0IDEwNSAzODIgMzYg
MzYpCisgIChyZWN0IDEwOCAzODUgMzAgMzApCisgIChyZWN0IDIwNSAzODIgMzYgMzYpCisgIChy
ZWN0IDIwOCAzODUgMzAgMzApCiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461761</attachid>
            <date>2022-08-20 07:45:14 -0700</date>
            <delta_ts>2022-08-20 11:02:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220820074513.patch</filename>
            <type>text/plain</type>
            <size>22984</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyMjYwY2ZmOGZhM2E4ZjkwYTY0ZjliMzJmMmZmZGFmZDFkMzg4ODA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDE2OjM3OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkVGV4dEluZGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNv
bnN0cnVjdENvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyk6Ci0t
LQogU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgICAgIHwgICA1ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAgfCAgIDYgKwog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgMTA5ICsrKysr
LS0tLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAg
ICAgIHwgIDM0ICsrKysrLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAg
ICAgICAgIHwgICAxICsKIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcCB8ICA0NSArKysrKy0tLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCAgfCAgIDMgKwogLi4uL3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVk
LnR4dCAgIHwgIDIwICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDEx
MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3Bw
CmluZGV4IDM5NDdjZDE2ZmZhYy4uZWQ0MjgxOTc0YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtNTAsOCArNTAsOSBAQCBGb3JtYXR0aW5nU3RhdGU6
On5Gb3JtYXR0aW5nU3RhdGUoKQogCiBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ1N0YXRlOjpib3hH
ZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkKIHsKLSAgICAvLyBTaG91bGQgbmV2ZXIgbmVl
ZCB0byBtdXRhdGUgYSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRl
eHQuCi0gICAgQVNTRVJUKCZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRp
bmdDb250ZXh0KGxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7Cisg
ICAgLy8gU2hvdWxkIG5ldmVyIG5lZWQgdG8gbXV0YXRlIGEgZGlzcGxheSBib3ggb3V0c2lkZSBv
ZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0LCB1bmxlc3Mgd2UgYXJlIHRyeWluZworICAgIC8vIHRv
IGNvbXB1dGUgdGhlIHN0YXRpYyBwb3NpdGlvbiBvZiBhbiBvdXQtb2YtZmxvdyBib3guCisgICAg
QVNTRVJUKChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgaXNJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUoKSkgfHwgJmxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0
dGluZ0NvbnRleHQobGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKSA9PSB0aGlzKTsK
ICAgICAvLyBBbm9ueW1vdXMgdGV4dCB3cmFwcGVycyBkbyBub3QgbmVlZCB0byBjb21wdXRlIGJv
eCBnZW9tZXRyeS4gVGhleSBpbml0aWF0ZSBpbmxpbmUgcnVucy4KICAgICBBU1NFUlQoIWxheW91
dEJveC5pc0lubGluZVRleHRCb3goKSk7CiAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZW5zdXJl
R2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggNzRiNmUwOGZjNDE4Li5hNWVlNDg4ZmI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC0xNzEsNiArMTcxLDEyIEBAIGNvbnN0IEJveEdlb21ldHJ5JiBGb3JtYXR0aW5nQ29u
dGV4dDo6Z2VvbWV0cnlGb3JCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6CiAgICAgVU5V
U0VEX1BBUkFNKGVzY2FwZVJlYXNvbik7CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBhdXRvIGlz
T2tUb0FjY2Vzc0JveEdlb21ldHJ5ID0gWyZdIHsKKyAgICAgICAgaWYgKGxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBpc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG5vbi1lc2NhcGUgY2FzZSBvZiBhY2Nlc3NpbmcgYSBi
b3gncyBnZW9tZXRyeSBpbmZvcm1hdGlvbiB3aXRoaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250
ZXh0IHdoZW4KKyAgICAgICAgICAgIC8vIGNvbXB1dGluZyBzdGF0aWMgcG9zaXRpb24gZm9yIG91
dC1vZi1mbG93IGJveGVzLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAoIWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KGxheW91dEJveCkgJiYgJmxh
eW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgpKSB7CiAgICAgICAgICAg
ICAvLyBUaGlzIGlzIHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2Vv
bWV0cnkgaW5mb3JtYXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dC4KICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDk4YmU1Nzg3Zjc5NC4uNjkxZjZjODg3Y2Q0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0y
NzcsODggKzI3NywzNSBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3Rh
dGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0IEZvcgogICAgIGF1dG8mIGJveGVz
ID0gZm9ybWF0dGluZ1N0YXRlLmJveGVzKCk7CiAKICAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0Jv
eCA6IG91dE9mRmxvd0JveGVzKSB7Ci0gICAgICAgIGF1dG8mIG91dE9mRmxvd0dlb21ldHJ5ID0g
Zm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0JveCk7Ci0gICAgICAgIC8vIEJv
dGggcHJldmlvdXMgZmxvYXQgYW5kIG91dC1vZi1mbG93IGJveGVzIGFyZSBza2lwcGVkIGhlcmUu
IEEgc2VyaWVzIG9mIGFkam9pbmluZyBvdXQtb2YtZmxvdyBib3hlcyBzaG91bGQgYWxsIGJlIHBs
YWNlZAotICAgICAgICAvLyBhdCB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24gKHRoZXkgZG9uJ3Qg
YWZmZWN0IG5leHQtc2libGluZyBwb3NpdGlvbnMpIGFuZCB3aGlsZSBmbG9hdHMgZG8gcGFydGlj
aXBhdGUgaW4gdGhlIGlubGluZSBsYXlvdXQKLSAgICAgICAgLy8gdGhlaXIgcG9zaXRpb25zIGhh
dmUgYWxyZWFkeSBiZWVuIHRha2VuIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGlubGluZSBsYXlv
dXQuCi0gICAgICAgIGF1dG8gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMgPSBbJl0oKSAt
PiBjb25zdCBMYXlvdXQ6OkJveCogewotICAgICAgICAgICAgYXV0byogcHJldmlvdXNTaWJsaW5n
ID0gb3V0T2ZGbG93Qm94LT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICAgICAgICAgIGZvciAoOyBw
cmV2aW91c1NpYmxpbmcgJiYgcHJldmlvdXNTaWJsaW5nLT5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
OyBwcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmctPnByZXZpb3VzU2libGluZygpKSB7
IH0KLSAgICAgICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmcpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHByZXZpb3VzU2libGluZzsKLSAgICAgICAgICAgIC8vIFBhcmVudCBpcyBlaXRoZXIgdGhl
IHJvb3QgaGVyZSBvciBhbm90aGVyIGlubGluZSBib3ggKGUuZy4gPHNwYW4+PGltZyBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlIj48L3NwYW4+KQotICAgICAgICAgICAgYXV0byYgcGFyZW50ID0g
b3V0T2ZGbG93Qm94LT5wYXJlbnQoKTsKLSAgICAgICAgICAgIHJldHVybiAmcGFyZW50ID09ICZy
b290KCkgPyBudWxscHRyIDogJnBhcmVudDsKLSAgICAgICAgfSgpOwotCi0gICAgICAgIGlmICgh
cHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGZpcnN0IChub24tZmxvYXQpY2hpbGQuIExldCdzIHBsYWNlIGl0IHRvIHRoZSBsZWZ0IG9m
IHRoZSBmaXJzdCBib3guCi0gICAgICAgICAgICAvLyA8ZGl2PjxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+dGV4dCBjb250ZW50PC9kaXY+Ci0gICAgICAgICAgICBBU1NFUlQoYm94ZXMu
c2l6ZSgpKTsKLSAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0
KHsgYm94ZXNbMF0ubGVmdCgpLCBsaW5lc1swXS50b3AoKSB9KTsKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxv
YXRzLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgLy8gU3Vic2VxdWVu
dCBvdXQtb2YtZmxvdyBwb3NpdGlvbmVkIGJveGVzIHNoYXJlIHRoZSBzYW1lIHN0YXRpYyBwb3Np
dGlvbi4KLSAgICAgICAgICAgIC8vIDxkaXY+dGV4dCBjb250ZW50PGltZyBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlIj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPjwvZGl2PgotICAg
ICAgICAgICAgb3V0T2ZGbG93R2VvbWV0cnkuc2V0TG9naWNhbFRvcExlZnQoQm94R2VvbWV0cnk6
OmJvcmRlckJveFRvcExlZnQoZ2VvbWV0cnlGb3JCb3goKnByZXZpb3VzQ29udGVudFNraXBwaW5n
RmxvYXRzKSkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBB
U1NFUlQocHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlzSW5GbG93KCkpOwotICAgICAg
ICBhdXRvIHBsYWNlT3V0T2ZGbG93Qm94QWZ0ZXJQcmV2aW91c0luRmxvd0JveCA9IFsmXSB7Ci0g
ICAgICAgICAgICAvLyBUaGUgb3V0LW9mLWZsb3cgYm94IHNob3VsZCBiZSBwbGFjZWQgYWZ0ZXIg
dGhpcyBpbmZsb3cgYm94LgotICAgICAgICAgICAgLy8gU2tpcCB0byB0aGUgbGFzdCBib3ggb2Yg
dGhpcyBsYXlvdXQgYm94LiBUaGUgbGFzdCBib3gncyBnZW9tZXRyeSBpcyB1c2VkIHRvIGNvbXB1
dGUgdGhlIG91dC1vZi1mbG93IGJveCdzIHN0YXRpYyBwb3NpdGlvbi4KLSAgICAgICAgICAgIHNp
emVfdCBsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94ID0gMDsKLSAgICAgICAgICAgIGZv
ciAoOyBsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94IDwgYm94ZXMuc2l6ZSgpICYmICZi
b3hlc1tsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94XS5sYXlvdXRCb3goKSAhPSBwcmV2
aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0czsgKytsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0
Qm94KSB7IH0KLSAgICAgICAgICAgIGlmIChsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94
ID09IGJveGVzLnNpemUoKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbiB2ZXJ5IHJh
cmUgY2FzZXMsIHRoZSBwcmV2aW91cyBib3gncyBjb250ZW50IG1pZ2h0IGhhdmUgYmVlbiBjb21w
bGV0ZWx5IGNvbGxhcHNlZCBhbmQgbGVmdCB1cyB3aXRoIG5vIGJveC4KLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAoOyBsYXN0Qm94SW5kZXhPblByZXZpb3Vz
TGF5b3V0Qm94IDwgYm94ZXMuc2l6ZSgpICYmICZib3hlc1tsYXN0Qm94SW5kZXhPblByZXZpb3Vz
TGF5b3V0Qm94XS5sYXlvdXRCb3goKSA9PSBwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0czsg
KytsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94KSB7IH0KLSAgICAgICAgICAgICAgICAt
LWxhc3RCb3hJbmRleE9uUHJldmlvdXNMYXlvdXRCb3g7Ci0gICAgICAgICAgICAvLyBMZXQncyBj
aGVjayBpZiB0aGUgcHJldmlvdXMgYm94IGlzIHRoZSBsYXN0IGJveCBvbiB0aGUgY3VycmVudCBs
aW5lIGFuZCB1c2UgdGhlIG5leHQgYm94J3MgbGVmdCBpbnN0ZWFkLgotICAgICAgICAgICAgYXV0
byYgcHJldmlvdXNCb3ggPSBib3hlc1tsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0Qm94XTsK
LSAgICAgICAgICAgIGF1dG8qIG5leHRCb3ggPSBsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5b3V0
Qm94ICsgMSA8IGJveGVzLnNpemUoKSA/ICZib3hlc1tsYXN0Qm94SW5kZXhPblByZXZpb3VzTGF5
b3V0Qm94ICsgMV0gOiBudWxscHRyOwotCi0gICAgICAgICAgICBpZiAobmV4dEJveCAmJiBuZXh0
Qm94LT5saW5lSW5kZXgoKSA9PSBwcmV2aW91c0JveC5saW5lSW5kZXgoKSkgewotICAgICAgICAg
ICAgICAgIC8vIFByZXZpb3VzIGFuZCBuZXh0IGJveGVzIGFyZSBvbiB0aGUgc2FtZSBsaW5lLiBU
aGUgb3V0LW9mLWZsb3cgYm94IGlzIHJpZ2h0IGF0IHRoZSBwcmV2aW91cyBib3gncyBsb2dpY2Fs
IHJpZ2h0LgotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+Y29udGVudDwvZGl2PgotICAgICAgICAgICAgICAgIGF1dG8gbGVmdCA9IHBy
ZXZpb3VzQm94LnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ29udGVudFNr
aXBwaW5nRmxvYXRzLT5pc0lubGluZUJveCgpICYmICFwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zs
b2F0cy0+aXNBbm9ueW1vdXMoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8
c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRlbnQ8L3NwYW4+PC9kaXY+
Ci0gICAgICAgICAgICAgICAgICAgIC8vIG9yCi0gICAgICAgICAgICAgICAgICAgIC8vIDxkaXY+
dGV4dDxzcGFuPmNvbnRlbnQ8L3NwYW4+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48
L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lQm94Qm94R2VvbWV0cnkgPSBn
ZW9tZXRyeUZvckJveCgqcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMpOwotICAgICAgICAg
ICAgICAgICAgICBsZWZ0ID0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMgPT0gJm91dE9m
Rmxvd0JveC0+cGFyZW50KCkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gQm94R2VvbWV0cnk6
OmJvcmRlckJveExlZnQoaW5saW5lQm94Qm94R2VvbWV0cnkpICsgaW5saW5lQm94Qm94R2VvbWV0
cnkuY29udGVudEJveExlZnQoKQotICAgICAgICAgICAgICAgICAgICAgICAgOiBCb3hHZW9tZXRy
eTo6Ym9yZGVyQm94UmVjdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkucmlnaHQoKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgb3V0T2ZGbG93R2VvbWV0cnkuc2V0TG9naWNhbFRv
cExlZnQoeyBsZWZ0LCBsaW5lc1twcmV2aW91c0JveC5saW5lSW5kZXgoKV0udG9wKCkgfSk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAo
bmV4dEJveCkgewotICAgICAgICAgICAgICAgIC8vIFRoZSBvdXQgb2YgZmxvdyBib3ggaXMgcGxh
Y2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZSAod2hlcmUgdGhlIGZpcnN0IGJv
eCBvbiB0aGUgbGluZSBpcykuCi0gICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PGJyPjxpbWcg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
Ij5jb250ZW50PC9kaXY+Ci0gICAgICAgICAgICAgICAgb3V0T2ZGbG93R2VvbWV0cnkuc2V0TG9n
aWNhbFRvcExlZnQoeyBuZXh0Qm94LT5sZWZ0KCksIGxpbmVzW25leHRCb3gtPmxpbmVJbmRleCgp
XS50b3AoKSB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGF1dG8mIGxhc3RMaW5lID0gbGluZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCld
OwotICAgICAgICAgICAgLy8gVGhpcyBvdXQtb2YtZmxvdyBib3ggaXMgdGhlIGxhc3QgYm94Lgot
ICAgICAgICAgICAgLy8gRklYTUU6IFVzZSBpc0xpbmVCcmVhayBpbnN0ZWFkIHRvIGNvdmVyIHBy
ZXNlcnZlZCBuZXcgbGluZXMgdG9vLgotICAgICAgICAgICAgaWYgKHByZXZpb3VzQm94LmxheW91
dEJveCgpLmlzTGluZUJyZWFrQm94KCkpIHsKLSAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8
YnI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48aW1nIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGUiPjwvZGl2PgotICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExv
Z2ljYWxUb3BMZWZ0KHsgbGFzdExpbmUubGVmdCgpLCBsYXN0TGluZS5ib3R0b20oKSB9KTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gdG9wTGVmdCA9IExheW91dFBvaW50
IHsgfTsKKyAgICAgICAgYXV0byBbcHJldmlvdXNEaXNwbGF5Qm94LCBuZXh0RGlzcGxheUJveF0g
PSBJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnk6OnByZXZpb3VzQW5kTmV4dERpc3BsYXlCb3hGb3JT
dGF0aWNQb3NpdGlvbihvdXRPZkZsb3dCb3gsIGJveGVzKTsKKworICAgICAgICBpZiAocHJldmlv
dXNEaXNwbGF5Qm94ICYmIG5leHREaXNwbGF5Qm94KSB7CisgICAgICAgICAgICBpZiAocHJldmlv
dXNEaXNwbGF5Qm94LT5pc0lubGluZUJveCgpKSB7CisgICAgICAgICAgICAgICAgLy8gU3BlY2lh
bCBoYW5kbGluZyBmb3IgY2FzZXMgd2hlbiB0aGUgcHJldmlvdXMgY29udGVudCBpcyBhbiBpbmxp
bmUgYm94OgorICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxzcGFuPjxpbWcgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvc3Bhbj48L2Rpdj4KKyAgICAgICAgICAgICAgICAv
LyBvcgorICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxzcGFuPmNvbnRlbnQ8L3NwYW4+PGlt
ZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KKyAgICAgICAgICAgICAgICBhdXRv
IGlzRmlyc3RDb250ZW50SW5zaWRlSW5saW5lQm94ID0gJm91dE9mRmxvd0JveC0+cGFyZW50KCkg
PT0gJnByZXZpb3VzRGlzcGxheUJveC0+bGF5b3V0Qm94KCk7CisgICAgICAgICAgICAgICAgYXV0
byYgaW5saW5lQm94Qm94R2VvbWV0cnkgPSBnZW9tZXRyeUZvckJveChwcmV2aW91c0Rpc3BsYXlC
b3gtPmxheW91dEJveCgpKTsKKworICAgICAgICAgICAgICAgIHRvcExlZnQgPSB7CisgICAgICAg
ICAgICAgICAgICAgIGlzRmlyc3RDb250ZW50SW5zaWRlSW5saW5lQm94ID8gQm94R2VvbWV0cnk6
OmJvcmRlckJveExlZnQoaW5saW5lQm94Qm94R2VvbWV0cnkpICsgaW5saW5lQm94Qm94R2VvbWV0
cnkuY29udGVudEJveExlZnQoKSA6IEJveEdlb21ldHJ5OjptYXJnaW5Cb3hSZWN0KGlubGluZUJv
eEJveEdlb21ldHJ5KS5yaWdodCgpLAorICAgICAgICAgICAgICAgICAgICBsaW5lc1twcmV2aW91
c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpXS50b3AoKQorICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRMaW5lID0gbGlu
ZXNbcHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV07CisgICAgICAgICAgICAgICAgYXV0
byBzaG91bGRGaXRMaW5lID0gcHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKSA9PSBuZXh0
RGlzcGxheUJveC0+bGluZUluZGV4KCkgfHwgKHByZXZpb3VzRGlzcGxheUJveC0+cmlnaHQoKSA8
PSBjdXJyZW50TGluZS5sZWZ0KCkgJiYgIXByZXZpb3VzRGlzcGxheUJveC0+aXNMaW5lQnJlYWtC
b3goKSk7CisgICAgICAgICAgICAgICAgdG9wTGVmdCA9IHNob3VsZEZpdExpbmUgPyBMYXlvdXRQ
b2ludCB7IHByZXZpb3VzRGlzcGxheUJveC0+cmlnaHQoKSwgY3VycmVudExpbmUudG9wKCkgfSA6
IExheW91dFBvaW50IHsgbmV4dERpc3BsYXlCb3gtPmxlZnQoKSwgbGluZXNbbmV4dERpc3BsYXlC
b3gtPmxpbmVJbmRleCgpXS50b3AoKSB9OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8g
RklYTUU6IFdlIG1heSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgYm94IGFjdHVhbGx5IGZpdHMgdGhl
IGxhc3QgbGluZSBhbmQgbW92ZSBpdCBvdmVyIHRvIHRoZSAibmV4dCIgbGluZS4KLSAgICAgICAg
ICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgcHJldmlvdXNCb3gucmln
aHQoKSwgbGFzdExpbmUudG9wKCkgfSk7Ci0gICAgICAgIH07Ci0gICAgICAgIHBsYWNlT3V0T2ZG
bG93Qm94QWZ0ZXJQcmV2aW91c0luRmxvd0JveCgpOworICAgICAgICB9IGVsc2UgaWYgKCFwcmV2
aW91c0Rpc3BsYXlCb3gpCisgICAgICAgICAgICB0b3BMZWZ0ID0geyBib3hlc1swXS5sZWZ0KCks
IGxpbmVzWzBdLnRvcCgpIH07CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXV0byYgY3Vy
cmVudExpbmUgPSBsaW5lc1twcmV2aW91c0Rpc3BsYXlCb3gtPmxpbmVJbmRleCgpXTsKKyAgICAg
ICAgICAgIGF1dG8gc2hvdWxkRml0TGluZSA9IHByZXZpb3VzRGlzcGxheUJveC0+cmlnaHQoKSA8
PSBjdXJyZW50TGluZS5yaWdodCgpICYmICFwcmV2aW91c0Rpc3BsYXlCb3gtPmlzTGluZUJyZWFr
Qm94KCk7CisgICAgICAgICAgICB0b3BMZWZ0ID0gc2hvdWxkRml0TGluZSA/IExheW91dFBvaW50
IHsgcHJldmlvdXNEaXNwbGF5Qm94LT5yaWdodCgpLCBjdXJyZW50TGluZS50b3AoKSB9IDogTGF5
b3V0UG9pbnQgeyBjdXJyZW50TGluZS5sZWZ0KCksIGN1cnJlbnRMaW5lLmJvdHRvbSgpIH07Cisg
ICAgICAgIH0KKyAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0Jv
eCkuc2V0TG9naWNhbFRvcExlZnQodG9wTGVmdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAppbmRleCAzZTJkZjMwOTdh
YzEuLjBmOWE5ZGRjYzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0xNzUsNyArMTc1LDM5IEBAIElubGluZUxheW91dFVuaXQg
SW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Ojpjb21wdXRlZFRleHRJbmRlbnQoSXNJbnRyaW5zaWNX
aWR0aE1vCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogICAgIHJldHVybiB7IG1pbmltdW1W
YWx1ZUZvckxlbmd0aCh0ZXh0SW5kZW50LCBhdmFpbGFibGVXaWR0aCkgfTsKLX07Cit9CisKK3N0
ZDo6dHVwbGU8Y29uc3QgSW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6
Qm94Kj4gSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjpwcmV2aW91c0FuZE5leHREaXNwbGF5Qm94
Rm9yU3RhdGljUG9zaXRpb24oY29uc3QgQm94JiBvdXRPZkZsb3dCb3gsIGNvbnN0IERpc3BsYXlC
b3hlcyYgZGlzcGxheUJveGVzKQoreworICAgIC8vIEJvdGggcHJldmlvdXMgZmxvYXQgYW5kIG91
dC1vZi1mbG93IGJveGVzIGFyZSBza2lwcGVkIGhlcmUuIEEgc2VyaWVzIG9mIGFkam9pbmluZyBv
dXQtb2YtZmxvdyBib3hlcyBzaG91bGQgYWxsIGJlIHBsYWNlZAorICAgIC8vIGF0IHRoZSBzYW1l
IHN0YXRpYyBwb3NpdGlvbiAodGhleSBkb24ndCBhZmZlY3QgbmV4dC1zaWJsaW5nIHBvc2l0aW9u
cykgYW5kIHdoaWxlIGZsb2F0cyBkbyBwYXJ0aWNpcGF0ZSBpbiB0aGUgaW5saW5lIGxheW91dAor
ICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFjY291
bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgorICAgIGF1dG8gcHJldmlvdXNJbkZsb3dCb3gg
PSBbJl0gKCkgLT4gY29uc3QgQm94KiB7CisgICAgICAgIGlmIChhdXRvKiBwcmV2aW91c0luRmxv
d1NpYmxpbmcgPSBvdXRPZkZsb3dCb3gucHJldmlvdXNJbkZsb3dTaWJsaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gcHJldmlvdXNJbkZsb3dTaWJsaW5nOworICAgICAgICAvLyBQYXJlbnQgaXMg
ZWl0aGVyIHRoZSByb290IGhlcmUgb3IgYW5vdGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxp
bWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9zcGFuPikKKyAgICAgICAgYXV0byYgcGFy
ZW50ID0gb3V0T2ZGbG93Qm94LnBhcmVudCgpOworICAgICAgICByZXR1cm4gcGFyZW50LmlzSW5s
aW5lQm94KCkgPyAmcGFyZW50IDogbnVsbHB0cjsKKyAgICB9KCk7CisKKyAgICBpZiAoIXByZXZp
b3VzSW5GbG93Qm94KSB7CisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGNvbnRlbnQuIEl0
IHNpdHMgb24gdGhlIGVkZ2Ugb2YgdGhlIGZpcnN0IHJvb3QgaW5saW5lIGJveC4gV2UgZG9uJ3Qg
bmVlZCB0byBwcm92aWRlIHRoZSBuZXh0IGRpc3BsYXkgYm94LgorICAgICAgICByZXR1cm4geyBu
dWxscHRyLCBudWxscHRyIH07CisgICAgfQorCisgICAgLy8gVGhpcyBpcyBzdXBwb3NlZCB0byBm
aW5kIHRoZSBsYXN0IGRpc3BsYXkgYm94IG9mIHRoZSAiaW5mbG93Qm94IiBhbmQgcmV0dXJuIGl0
IHdpdGggdGhlIG5leHQgZGlzcGxheSBib3ggKGZpcnN0IGJveCBvZiB0aGUgbmV4dCBpbmZsb3cg
Y29udGVudCkuCisgICAgYXV0byBmb3VuZEZpcnN0RGlzcGxheUJveCA9IGZhbHNlOworICAgIGZv
ciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBkaXNwbGF5Qm94ZXMuc2l6ZSgpOyArK2luZGV4
KSB7CisgICAgICAgIGlmIChmb3VuZEZpcnN0RGlzcGxheUJveCAmJiAmZGlzcGxheUJveGVzW2lu
ZGV4XS5sYXlvdXRCb3goKSAhPSBwcmV2aW91c0luRmxvd0JveCkgeworICAgICAgICAgICAgQVNT
RVJUKGluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiB7ICZkaXNwbGF5Qm94ZXNbaW5kZXggLSAx
XSwgJmRpc3BsYXlCb3hlc1tpbmRleF0gfTsKKyAgICAgICAgfQorICAgICAgICBmb3VuZEZpcnN0
RGlzcGxheUJveCA9IGZvdW5kRmlyc3REaXNwbGF5Qm94IHx8ICZkaXNwbGF5Qm94ZXNbaW5kZXhd
LmxheW91dEJveCgpID09IHByZXZpb3VzSW5GbG93Qm94OworICAgIH0KKyAgICBpZiAoZm91bmRG
aXJzdERpc3BsYXlCb3gpCisgICAgICAgIHJldHVybiB7ICZkaXNwbGF5Qm94ZXNbZGlzcGxheUJv
eGVzLnNpemUoKSAtIDFdLCBudWxscHRyIH07CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0
ciB9OworfQogCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdH
ZW9tZXRyeS5oCmluZGV4IDc0NTk4N2EyNDA1OS4uNjE4NTUwYWZmMWVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nR2VvbWV0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtNTEsNiArNTEsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElu
bGluZUxldmVsQm94JiwgY29uc3QgTGluZUJveCYpIGNvbnN0OwogCiAgICAgc3RhdGljIElubGlu
ZVJlY3QgZmxpcFZpc3VhbFJlY3RUb0xvZ2ljYWxGb3JXcml0aW5nTW9kZShjb25zdCBJbmxpbmVS
ZWN0JiB2aXN1YWxSZWN0LCBXcml0aW5nTW9kZSk7CisgICAgc3RhdGljIHN0ZDo6dHVwbGU8Y29u
c3QgSW5saW5lRGlzcGxheTo6Qm94KiwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94Kj4gcHJldmlv
dXNBbmROZXh0RGlzcGxheUJveEZvclN0YXRpY1Bvc2l0aW9uKGNvbnN0IEJveCYgb3V0T2ZGbG93
Qm94LCBjb25zdCBEaXNwbGF5Qm94ZXMmKTsKIAogcHJpdmF0ZToKICAgICBjb25zdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3du
Y2FzdDxJbmxpbmVGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0dlb21ldHJ5Ojpmb3JtYXR0
aW5nQ29udGV4dCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCmluZGV4IGMwOWRl
N2VjMWFiMi4uYTE4ZjExNWIwMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCkBA
IC0zNzYsNDUgKzM3Niw1OCBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2Fu
VXNlRm9yQ2hpbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZCwgSW5jbAogICAgIGlmIChpczxS
ZW5kZXJMaW5lQnJlYWs+KGNoaWxkKSkKICAgICAgICAgcmV0dXJuIHJlYXNvbnM7CiAKLSAgICBp
ZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KGNoaWxkKSkgewotICAgICAgICBhdXRvJiByZXBsYWNlZCA9
IGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihjaGlsZCk7Ci0gICAgICAgIGlmIChyZXBsYWNlZC5p
c0Zsb2F0aW5nKCkgfHwgcmVwbGFjZWQuaXNQb3NpdGlvbmVkKCkpCisgICAgYXV0byBpc1NwcG9y
dGVkRmxvYXRpbmdPclBvc2l0aW9uZWQgPSBbJl0gKGF1dG8mIHJlbmRlcmVyKSB7CisgICAgICAg
IGlmIChyZW5kZXJlci5pc0Zsb2F0aW5nKCkgfHwgcmVuZGVyZXIuaXNJbkZsb3dQb3NpdGlvbmVk
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChyZW5kZXJlci5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAgICAgaWYgKCFpczxSZW5kZXJSZXBsYWNl
ZD4ocmVuZGVyZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGlmICghcmVuZGVyZXIucGFyZW50KCktPnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIC8vIFRoaXMgc2lt
cGx5IGNoZWNrcyB0aGUgbm90LXlldCBzdXBwb3J0ZWQgY2FzZSB3aGVuIHRoZSBvdXQtb2YtZmxv
dyBwb3NpdGlvbmVkCisgICAgICAgICAgICAvLyBjb250ZW50IGhhcyBhIHJlbGF0aXZlbHkgcG9z
aXRpb25lZCBpbmxpbmUgY29udGFpbmluZyBibG9jayAoaGFzIHRvIGNhbGwgY29udGFpbmVyIHRv
IG5vdCBza2lwIFJlbmRlcklubGluZXMpLgorICAgICAgICAgICAgcmV0dXJuIGlzPFJlbmRlckJs
b2NrRmxvdz4oY2hpbGQuY29udGFpbmVyKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH07CisKKyAgICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckVsZW1l
bnQ+KGNoaWxkKTsKKyAgICBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKSkgeworICAg
ICAgICBpZiAoIWlzU3Bwb3J0ZWRGbG9hdGluZ09yUG9zaXRpb25lZChyZW5kZXJlcikpCiAgICAg
ICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKENoaWxkQm94SXNGbG9hdGlu
Z09yUG9zaXRpb25lZCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpCiAKLSAgICAgICAgaWYgKHJl
cGxhY2VkLmlzU1ZHUm9vdE9yTGVnYWN5U1ZHUm9vdCgpKQorICAgICAgICBpZiAocmVuZGVyZXIu
aXNTVkdSb290T3JMZWdhY3lTVkdSb290KCkpCiAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9S
RVRVUk5fSUZfTkVFREVEKENvbnRlbnRJc1NWRywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwog
CiAgICAgICAgIHJldHVybiByZWFzb25zOwogICAgIH0KIAotICAgIGlmIChpczxSZW5kZXJMaXN0
SXRlbT4oY2hpbGQpKSB7Ci0gICAgICAgIGlmIChjaGlsZC5pc1Bvc2l0aW9uZWQoKSB8fCBjaGls
ZC5pc0Zsb2F0aW5nKCkpCisgICAgaWYgKGlzPFJlbmRlckxpc3RJdGVtPihyZW5kZXJlcikpIHsK
KyAgICAgICAgaWYgKCFpc1NwcG9ydGVkRmxvYXRpbmdPclBvc2l0aW9uZWQocmVuZGVyZXIpKQog
ICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SXNVbnN1cHBv
cnRlZExpc3RJdGVtLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIHJldHVybiBy
ZWFzb25zOwogICAgIH0KIAotICAgIGlmIChpczxSZW5kZXJMaXN0TWFya2VyPihjaGlsZCkgJiYg
aXM8UmVuZGVyTGlzdEl0ZW0+KGNoaWxkLnBhcmVudCgpKSAmJiAhaXM8UmVuZGVyTGlzdE1hcmtl
cj4oY2hpbGQubmV4dFNpYmxpbmcoKSkpCisgICAgaWYgKGlzPFJlbmRlckxpc3RNYXJrZXI+KHJl
bmRlcmVyKSAmJiBpczxSZW5kZXJMaXN0SXRlbT4ocmVuZGVyZXIucGFyZW50KCkpICYmICFpczxS
ZW5kZXJMaXN0TWFya2VyPihyZW5kZXJlci5uZXh0U2libGluZygpKSkKICAgICAgICAgcmV0dXJu
IHJlYXNvbnM7CiAKLSAgICBpZiAoaXM8UmVuZGVyVGFibGU+KGNoaWxkKSkgewotICAgICAgICBh
dXRvJiB0YWJsZSA9IGRvd25jYXN0PFJlbmRlclRhYmxlPihjaGlsZCk7Ci0gICAgICAgIGlmICh0
YWJsZS5pc0Zsb2F0aW5nKCkgfHwgdGFibGUuaXNQb3NpdGlvbmVkKCkpCisgICAgaWYgKGlzPFJl
bmRlclRhYmxlPihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKCFpc1NwcG9ydGVkRmxvYXRpbmdP
clBvc2l0aW9uZWQocmVuZGVyZXIpKQogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJO
X0lGX05FRURFRChDaGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9uZWQsIHJlYXNvbnMsIGluY2x1
ZGVSZWFzb25zKQogICAgICAgICByZXR1cm4gcmVhc29uczsKICAgICB9CiAKLSAgICBpZiAoaXM8
UmVuZGVyQmxvY2tGbG93PihjaGlsZCkpIHsKLSAgICAgICAgYXV0byYgYmxvY2sgPSBkb3duY2Fz
dDxSZW5kZXJCbG9ja0Zsb3c+KGNoaWxkKTsKLSAgICAgICAgaWYgKGJsb2NrLmlzRmxvYXRpbmco
KSB8fCBibG9jay5pc1Bvc2l0aW9uZWQoKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93Pihy
ZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKCFpc1NwcG9ydGVkRmxvYXRpbmdPclBvc2l0aW9uZWQo
cmVuZGVyZXIpKQogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChD
aGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9uZWQsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKQot
ICAgICAgICBpZiAoYmxvY2suaXNSdWJ5UnVuKCkpCisgICAgICAgIGlmIChyZW5kZXJlci5pc1J1
YnlSdW4oKSkKICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoQ29u
dGVudElzUnVieSwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogCiAgICAgICAgIHJldHVybiBy
ZWFzb25zOwogICAgIH0KIAotICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KGNoaWxkKSkgewotICAg
ICAgICBhdXRvIHJlbmRlcklubGluZVJlYXNvbnMgPSBjYW5Vc2VGb3JSZW5kZXJJbmxpbmVDaGls
ZChkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNoaWxkKSwgaW5jbHVkZVJlYXNvbnMpOworICAgIGlm
IChpczxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKSkgeworICAgICAgICBhdXRvIHJlbmRlcklubGlu
ZVJlYXNvbnMgPSBjYW5Vc2VGb3JSZW5kZXJJbmxpbmVDaGlsZChkb3duY2FzdDxSZW5kZXJJbmxp
bmU+KHJlbmRlcmVyKSwgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICBpZiAocmVuZGVySW5saW5l
UmVhc29ucykKICAgICAgICAgICAgIEFERF9SRUFTT05TX0FORF9SRVRVUk5fSUZfTkVFREVEKHJl
bmRlcklubGluZVJlYXNvbnMsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICAgICAgcmV0
dXJuIHJlYXNvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5j
cHAKaW5kZXggNjE1MGZhNjFjMzYzLi5lODkxZTViYTdiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGluZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCkBAIC00MDYsNyArNDA3LDE0IEBAIHZvaWQgTGluZUxh
eW91dDo6Y29uc3RydWN0Q29udGVudCgpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJveD4oKmJveEFuZFJlbmRlcmVyLnJl
bmRlcmVyKTsKLSAgICAgICAgcmVuZGVyZXIuc2V0TG9jYXRpb24oTGF5b3V0OjpCb3hHZW9tZXRy
eTo6Ym9yZGVyQm94VG9wTGVmdChtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShs
YXlvdXRCb3gpKSk7CisgICAgICAgIGF1dG8gdG9wTGVmdCA9IExheW91dDo6Qm94R2VvbWV0cnk6
OmJvcmRlckJveFRvcExlZnQobV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5
b3V0Qm94KSk7CisgICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
IHsKKyAgICAgICAgICAgIGF1dG8mIGxheWVyID0gKnJlbmRlcmVyLmxheWVyKCk7CisgICAgICAg
ICAgICBsYXllci5zZXRTdGF0aWNCbG9ja1Bvc2l0aW9uKHRvcExlZnQueSgpKTsKKyAgICAgICAg
ICAgIGxheWVyLnNldFN0YXRpY0lubGluZVBvc2l0aW9uKHRvcExlZnQueCgpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJlbmRlcmVyLnNldExvY2F0aW9uKHRv
cExlZnQpOwogICAgIH0KIAogICAgIG1faW5saW5lQ29udGVudC0+Y2xlYXJHYXBBZnRlckxhc3RM
aW5lID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuY2xlYXJHYXBBZnRlckxhc3RMaW5lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDZkNGU4
MTdjNzNkZS4uOWMzNmUxZDJiODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcApAQCAtMzU3MSw2ICszNTcxLDkgQEAgdm9pZCBSZW5kZXJCbG9ja0Zs
b3c6OmxheW91dE1vZGVybkxpbmVzKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYg
cmVwYWkKICAgICAgICAgaWYgKCFyZW5kZXJlci5uZWVkc0xheW91dCgpICYmICFuZWVkc1VwZGF0
ZVJlcGxhY2VkRGltZW5zaW9ucykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlm
IChyZW5kZXJlci5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIHJlbmRlcmVy
LmNvbnRhaW5pbmdCbG9jaygpLT5pbnNlcnRQb3NpdGlvbmVkT2JqZWN0KGRvd25jYXN0PFJlbmRl
ckJveD4ocmVuZGVyZXIpKTsKKwogICAgICAgICBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRl
cmVyKSkgewogICAgICAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBkb3duY2FzdDxSZW5kZXJSZXBs
YWNlZD4ocmVuZGVyZXIpOwogICAgICAgICAgICAgcmVwbGFjZWQubGF5b3V0SWZOZWVkZWQoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZvY3VzLXJpbmctcmVwYWlu
dC1leHBlY3RlZC50eHQKaW5kZXggYTJkZGVlMmMyNDMyLi5lMTI0OTZiZTgwNzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQtZXhw
ZWN0ZWQudHh0CkBAIC0yMSwyMyArMjEsMjMgQEAKICAgKHJlY3QgOCAxMjAgMzAgODApCiAgIChy
ZWN0IDUgMTc0IDU2IDMwKQogICAocmVjdCA1IDEyMCA1NiA4NCkKLSAgKHJlY3QgNSAyMDUgNTYg
MzcpCi0gIChyZWN0IDUgMzc1IDU2IDM3KQorICAocmVjdCA1IDIwNSA1NiAzNCkKKyAgKHJlY3Qg
NSAzNzUgNTYgMzQpCiAgIChyZWN0IDUgNDU3IDEwMyA2NykKICAgKHJlY3QgOCA0NjAgMTAwIDY0
KQogICAocmVjdCA4IDU0NSAxMDAgNjQpCiAgIChyZWN0IDUgNTQyIDEwMyA2NykKLSAgKHJlY3Qg
NDUgMjEyIDM2IDQwKQotICAocmVjdCA0OCAyMTUgMzAgMzQpCi0gIChyZWN0IDE1NSAyMTIgMzYg
NDApCi0gIChyZWN0IDE1OCAyMTUgMzAgMzQpCisgIChyZWN0IDQ1IDIxMiAzNiAzNikKKyAgKHJl
Y3QgNDggMjE1IDMwIDMwKQorICAocmVjdCAxNTUgMjEyIDM2IDM2KQorICAocmVjdCAxNTggMjE1
IDMwIDMwKQogICAocmVjdCA3IDM3NyAzNiAzNikKICAgKHJlY3QgMTAgMzgwIDMwIDMwKQogICAo
cmVjdCAxNDcgMzc3IDM2IDM2KQogICAocmVjdCAxNTAgMzgwIDMwIDMwKQotICAocmVjdCAxMDUg
MzgyIDM2IDQwKQotICAocmVjdCAxMDggMzg1IDMwIDM0KQotICAocmVjdCAyMDUgMzgyIDM2IDQw
KQotICAocmVjdCAyMDggMzg1IDMwIDM0KQorICAocmVjdCAxMDUgMzgyIDM2IDM2KQorICAocmVj
dCAxMDggMzg1IDMwIDMwKQorICAocmVjdCAyMDUgMzgyIDM2IDM2KQorICAocmVjdCAyMDggMzg1
IDMwIDMwKQogKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461767</attachid>
            <date>2022-08-20 11:02:19 -0700</date>
            <delta_ts>2022-08-20 22:32:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220820110219.patch</filename>
            <type>text/plain</type>
            <size>23155</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhNjcwNjc3NWFmNjJhNDY4MzVhOTE5MTQ5MjFhMjhiMzk4ZjlkMzM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDE2OjM3OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkVGV4dEluZGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNv
bnN0cnVjdENvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyk6Ci0t
LQogU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgICAgIHwgICA1ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAgfCAgIDYgKwog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgMTA5ICsrKysr
LS0tLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAg
ICAgIHwgIDM0ICsrKysrLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAg
ICAgICAgIHwgICAxICsKIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcCB8ICA0NSArKysrKy0tLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCAgfCAgIDMgKwogLi4uL3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVk
LnR4dCAgIHwgIDQzICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyks
IDEwMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQtZXhwZWN0ZWQudHh0Cgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCAzOTQ3Y2QxNmZm
YWMuLmVkNDI4MTk3NGFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5jcHAKQEAgLTUwLDggKzUwLDkgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRl
KCkKIAogQm94R2VvbWV0cnkmIEZvcm1hdHRpbmdTdGF0ZTo6Ym94R2VvbWV0cnkoY29uc3QgQm94
JiBsYXlvdXRCb3gpCiB7Ci0gICAgLy8gU2hvdWxkIG5ldmVyIG5lZWQgdG8gbXV0YXRlIGEgZGlz
cGxheSBib3ggb3V0c2lkZSBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0LgotICAgIEFTU0VSVCgm
bGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChsYXlvdXRC
b3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpID09IHRoaXMpOworICAgIC8vIFNob3VsZCBuZXZl
ciBuZWVkIHRvIG11dGF0ZSBhIGRpc3BsYXkgYm94IG91dHNpZGUgb2YgdGhlIGZvcm1hdHRpbmcg
Y29udGV4dCwgdW5sZXNzIHdlIGFyZSB0cnlpbmcKKyAgICAvLyB0byBjb21wdXRlIHRoZSBzdGF0
aWMgcG9zaXRpb24gb2YgYW4gb3V0LW9mLWZsb3cgYm94LgorICAgIEFTU0VSVCgobGF5b3V0Qm94
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGlzSW5saW5lRm9ybWF0dGluZ1N0YXRlKCkpIHx8
ICZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGxheW91
dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CiAgICAgLy8gQW5vbnltb3Vz
IHRleHQgd3JhcHBlcnMgZG8gbm90IG5lZWQgdG8gY29tcHV0ZSBib3ggZ2VvbWV0cnkuIFRoZXkg
aW5pdGlhdGUgaW5saW5lIHJ1bnMuCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNJbmxpbmVUZXh0
Qm94KCkpOwogICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGxh
eW91dEJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDc0YjZlMDhmYzQxOC4u
YTVlZTQ4OGZiODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTcxLDYgKzE3
MSwxMiBAQCBjb25zdCBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9y
Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6OgogICAgIFVOVVNFRF9QQVJBTShlc2NhcGVS
ZWFzb24pOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYXV0byBpc09rVG9BY2Nlc3NCb3hHZW9t
ZXRyeSA9IFsmXSB7CisgICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgJiYgaXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAvLyBUaGlz
IGlzIHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2VvbWV0cnkgaW5m
b3JtYXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dCB3aGVuCisgICAgICAg
ICAgICAvLyBjb21wdXRpbmcgc3RhdGljIHBvc2l0aW9uIGZvciBvdXQtb2YtZmxvdyBib3hlcy4K
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKCFpczxJ
bml0aWFsQ29udGFpbmluZ0Jsb2NrPihsYXlvdXRCb3gpICYmICZsYXlvdXRCb3guZm9ybWF0dGlu
Z0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUg
bm9uLWVzY2FwZSBjYXNlIG9mIGFjY2Vzc2luZyBhIGJveCdzIGdlb21ldHJ5IGluZm9ybWF0aW9u
IHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cAppbmRleCA5OGJlNTc4N2Y3OTQuLjY5MWY2Yzg4N2NkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjc3LDg4ICsyNzcsMzUgQEAg
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0
T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9IGZvcm1hdHRpbmdTdGF0
ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBvdXRPZkZsb3dCb3hl
cykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5i
b3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpOwotICAgICAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0
IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpv
aW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKLSAgICAgICAgLy8g
YXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxp
bmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxp
bmUgbGF5b3V0Ci0gICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0
YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgotICAgICAgICBhdXRv
IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID0gWyZdKCkgLT4gY29uc3QgTGF5b3V0OjpC
b3gqIHsKLSAgICAgICAgICAgIGF1dG8qIHByZXZpb3VzU2libGluZyA9IG91dE9mRmxvd0JveC0+
cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICBmb3IgKDsgcHJldmlvdXNTaWJsaW5nICYm
IHByZXZpb3VzU2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgcHJldmlvdXNTaWJsaW5n
ID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKSkgeyB9Ci0gICAgICAgICAgICBp
ZiAocHJldmlvdXNTaWJsaW5nKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1NpYmxp
bmc7Ci0gICAgICAgICAgICAvLyBQYXJlbnQgaXMgZWl0aGVyIHRoZSByb290IGhlcmUgb3IgYW5v
dGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZSI+PC9zcGFuPikKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0JveC0+cGFy
ZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gJnBhcmVudCA9PSAmcm9vdCgpID8gbnVsbHB0ciA6
ICZwYXJlbnQ7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBpZiAoIXByZXZpb3VzQ29udGVudFNr
aXBwaW5nRmxvYXRzKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCAobm9uLWZs
b2F0KWNoaWxkLiBMZXQncyBwbGFjZSBpdCB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3QgYm94Lgot
ICAgICAgICAgICAgLy8gPGRpdj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPnRleHQg
Y29udGVudDwvZGl2PgotICAgICAgICAgICAgQVNTRVJUKGJveGVzLnNpemUoKSk7Ci0gICAgICAg
ICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGJveGVzWzBdLmxlZnQo
KSwgbGluZXNbMF0udG9wKCkgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnNlcXVlbnQgb3V0LW9mLWZsb3cgcG9z
aXRpb25lZCBib3hlcyBzaGFyZSB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAg
ICAvLyA8ZGl2PnRleHQgY29udGVudDxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PGlt
ZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAgIG91dE9mRmxv
d0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0
KGdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykpKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKHByZXZpb3VzQ29u
dGVudFNraXBwaW5nRmxvYXRzLT5pc0luRmxvdygpKTsKLSAgICAgICAgYXV0byBwbGFjZU91dE9m
Rmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3ggPSBbJl0gewotICAgICAgICAgICAgLy8gVGhl
IG91dC1vZi1mbG93IGJveCBzaG91bGQgYmUgcGxhY2VkIGFmdGVyIHRoaXMgaW5mbG93IGJveC4K
LSAgICAgICAgICAgIC8vIFNraXAgdG8gdGhlIGxhc3QgYm94IG9mIHRoaXMgbGF5b3V0IGJveC4g
VGhlIGxhc3QgYm94J3MgZ2VvbWV0cnkgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBvdXQtb2YtZmxv
dyBib3gncyBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAgICBzaXplX3QgbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveCA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0Qm94KCkgIT0gcHJldmlvdXNDb250ZW50U2tpcHBp
bmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAg
ICAgICBpZiAobGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9PSBib3hlcy5zaXplKCkp
IHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdmVyeSByYXJlIGNhc2VzLCB0aGUgcHJl
dmlvdXMgYm94J3MgY29udGVudCBtaWdodCBoYXZlIGJlZW4gY29tcGxldGVseSBjb2xsYXBzZWQg
YW5kIGxlZnQgdXMgd2l0aCBubyBib3guCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBM
RU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA8IGJveGVz
LnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0
Qm94KCkgPT0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25Q
cmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAgICAgICAgICAgLS1sYXN0Qm94SW5kZXhPblBy
ZXZpb3VzTGF5b3V0Qm94OwotICAgICAgICAgICAgLy8gTGV0J3MgY2hlY2sgaWYgdGhlIHByZXZp
b3VzIGJveCBpcyB0aGUgbGFzdCBib3ggb24gdGhlIGN1cnJlbnQgbGluZSBhbmQgdXNlIHRoZSBu
ZXh0IGJveCdzIGxlZnQgaW5zdGVhZC4KLSAgICAgICAgICAgIGF1dG8mIHByZXZpb3VzQm94ID0g
Ym94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF07Ci0gICAgICAgICAgICBhdXRv
KiBuZXh0Qm94ID0gbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDEgPCBib3hlcy5z
aXplKCkgPyAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDFdIDogbnVs
bHB0cjsKLQotICAgICAgICAgICAgaWYgKG5leHRCb3ggJiYgbmV4dEJveC0+bGluZUluZGV4KCkg
PT0gcHJldmlvdXNCb3gubGluZUluZGV4KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBQcmV2aW91
cyBhbmQgbmV4dCBib3hlcyBhcmUgb24gdGhlIHNhbWUgbGluZS4gVGhlIG91dC1vZi1mbG93IGJv
eCBpcyByaWdodCBhdCB0aGUgcHJldmlvdXMgYm94J3MgbG9naWNhbCByaWdodC4KLSAgICAgICAg
ICAgICAgICAvLyA8ZGl2PnRleHQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRl
bnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBhdXRvIGxlZnQgPSBwcmV2aW91c0JveC5yaWdodCgp
OwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNJ
bmxpbmVCb3goKSAmJiAhcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlzQW5vbnltb3Vz
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGltZyBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgotICAgICAgICAgICAgICAg
ICAgICAvLyBvcgotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5jb250ZW50
PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAgICAgICAg
ICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3goKnBy
ZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzKTsKLSAgICAgICAgICAgICAgICAgICAgbGVmdCA9
IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID09ICZvdXRPZkZsb3dCb3gtPnBhcmVudCgp
Ci0gICAgICAgICAgICAgICAgICAgICAgICA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlu
bGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0
KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogQm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3Qo
aW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbGVmdCwgbGlu
ZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCldLnRvcCgpIH0pOwotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG5leHRCb3gpIHsKLSAgICAg
ICAgICAgICAgICAvLyBUaGUgb3V0IG9mIGZsb3cgYm94IGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBuZXh0IGxpbmUgKHdoZXJlIHRoZSBmaXJzdCBib3ggb24gdGhlIGxpbmUgaXMp
LgotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvZGl2Pgot
ICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbmV4
dEJveC0+bGVmdCgpLCBsaW5lc1tuZXh0Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhdXRvJiBs
YXN0TGluZSA9IGxpbmVzW3ByZXZpb3VzQm94LmxpbmVJbmRleCgpXTsKLSAgICAgICAgICAgIC8v
IFRoaXMgb3V0LW9mLWZsb3cgYm94IGlzIHRoZSBsYXN0IGJveC4KLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBVc2UgaXNMaW5lQnJlYWsgaW5zdGVhZCB0byBjb3ZlciBwcmVzZXJ2ZWQgbmV3IGxpbmVz
IHRvby4KLSAgICAgICAgICAgIGlmIChwcmV2aW91c0JveC5sYXlvdXRCb3goKS5pc0xpbmVCcmVh
a0JveCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PGJyPjxpbWcgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4K
LSAgICAgICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGxh
c3RMaW5lLmxlZnQoKSwgbGFzdExpbmUuYm90dG9tKCkgfSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBhdXRvIHRvcExlZnQgPSBMYXlvdXRQb2ludCB7IH07CisgICAgICAgIGF1
dG8gW3ByZXZpb3VzRGlzcGxheUJveCwgbmV4dERpc3BsYXlCb3hdID0gSW5saW5lRm9ybWF0dGlu
Z0dlb21ldHJ5OjpwcmV2aW91c0FuZE5leHREaXNwbGF5Qm94Rm9yU3RhdGljUG9zaXRpb24ob3V0
T2ZGbG93Qm94LCBib3hlcyk7CisKKyAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveCAmJiBu
ZXh0RGlzcGxheUJveCkgeworICAgICAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveC0+aXNJ
bmxpbmVCb3goKSkgeworICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNh
c2VzIHdoZW4gdGhlIHByZXZpb3VzIGNvbnRlbnQgaXMgYW4gaW5saW5lIGJveDoKKyAgICAgICAg
ICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PmNvbnRlbnQ8L3NwYW4+PC9kaXY+CisgICAgICAgICAgICAgICAgLy8gb3IKKyAgICAgICAgICAg
ICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5jb250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+PC9kaXY+CisgICAgICAgICAgICAgICAgYXV0byBpc0ZpcnN0Q29udGVudElu
c2lkZUlubGluZUJveCA9ICZvdXRPZkZsb3dCb3gtPnBhcmVudCgpID09ICZwcmV2aW91c0Rpc3Bs
YXlCb3gtPmxheW91dEJveCgpOworICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdl
b21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3gocHJldmlvdXNEaXNwbGF5Qm94LT5sYXlvdXRCb3goKSk7
CisKKyAgICAgICAgICAgICAgICB0b3BMZWZ0ID0geworICAgICAgICAgICAgICAgICAgICBpc0Zp
cnN0Q29udGVudEluc2lkZUlubGluZUJveCA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlu
bGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0
KCkgOiBCb3hHZW9tZXRyeTo6bWFyZ2luQm94UmVjdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkucmln
aHQoKSwKKyAgICAgICAgICAgICAgICAgICAgbGluZXNbcHJldmlvdXNEaXNwbGF5Qm94LT5saW5l
SW5kZXgoKV0udG9wKCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBhdXRvJiBjdXJyZW50TGluZSA9IGxpbmVzW3ByZXZpb3VzRGlzcGxh
eUJveC0+bGluZUluZGV4KCldOworICAgICAgICAgICAgICAgIGF1dG8gc2hvdWxkRml0TGluZSA9
IHByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCkgPT0gbmV4dERpc3BsYXlCb3gtPmxpbmVJ
bmRleCgpIHx8IChwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCkgPD0gY3VycmVudExpbmUubGVm
dCgpICYmICFwcmV2aW91c0Rpc3BsYXlCb3gtPmlzTGluZUJyZWFrQm94KCkpOworICAgICAgICAg
ICAgICAgIHRvcExlZnQgPSBzaG91bGRGaXRMaW5lID8gTGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rp
c3BsYXlCb3gtPnJpZ2h0KCksIGN1cnJlbnRMaW5lLnRvcCgpIH0gOiBMYXlvdXRQb2ludCB7IG5l
eHREaXNwbGF5Qm94LT5sZWZ0KCksIGxpbmVzW25leHREaXNwbGF5Qm94LT5saW5lSW5kZXgoKV0u
dG9wKCkgfTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBtYXkgbmVl
ZCB0byBjaGVjayBpZiB0aGlzIGJveCBhY3R1YWxseSBmaXRzIHRoZSBsYXN0IGxpbmUgYW5kIG1v
dmUgaXQgb3ZlciB0byB0aGUgIm5leHQiIGxpbmUuCi0gICAgICAgICAgICBvdXRPZkZsb3dHZW9t
ZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IHByZXZpb3VzQm94LnJpZ2h0KCksIGxhc3RMaW5lLnRv
cCgpIH0pOwotICAgICAgICB9OwotICAgICAgICBwbGFjZU91dE9mRmxvd0JveEFmdGVyUHJldmlv
dXNJbkZsb3dCb3goKTsKKyAgICAgICAgfSBlbHNlIGlmICghcHJldmlvdXNEaXNwbGF5Qm94KQor
ICAgICAgICAgICAgdG9wTGVmdCA9IHsgYm94ZXNbMF0ubGVmdCgpLCBsaW5lc1swXS50b3AoKSB9
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRMaW5lID0gbGluZXNb
cHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV07CisgICAgICAgICAgICBhdXRvIHNob3Vs
ZEZpdExpbmUgPSBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCkgPD0gY3VycmVudExpbmUucmln
aHQoKSAmJiAhcHJldmlvdXNEaXNwbGF5Qm94LT5pc0xpbmVCcmVha0JveCgpOworICAgICAgICAg
ICAgdG9wTGVmdCA9IHNob3VsZEZpdExpbmUgPyBMYXlvdXRQb2ludCB7IHByZXZpb3VzRGlzcGxh
eUJveC0+cmlnaHQoKSwgY3VycmVudExpbmUudG9wKCkgfSA6IExheW91dFBvaW50IHsgY3VycmVu
dExpbmUubGVmdCgpLCBjdXJyZW50TGluZS5ib3R0b20oKSB9OworICAgICAgICB9CisgICAgICAg
IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpLnNldExvZ2ljYWxUb3BM
ZWZ0KHRvcExlZnQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggM2UyZGYzMDk3YWMxLi4wZjlhOWRkY2M3YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cApAQCAtMTc1LDcgKzE3NSwzOSBAQCBJbmxpbmVMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdH
ZW9tZXRyeTo6Y29tcHV0ZWRUZXh0SW5kZW50KElzSW50cmluc2ljV2lkdGhNbwogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KICAgICByZXR1cm4geyBtaW5pbXVtVmFsdWVGb3JMZW5ndGgodGV4
dEluZGVudCwgYXZhaWxhYmxlV2lkdGgpIH07Ci19OworfQorCitzdGQ6OnR1cGxlPGNvbnN0IElu
bGluZURpc3BsYXk6OkJveCosIGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IElubGluZUZvcm1h
dHRpbmdHZW9tZXRyeTo6cHJldmlvdXNBbmROZXh0RGlzcGxheUJveEZvclN0YXRpY1Bvc2l0aW9u
KGNvbnN0IEJveCYgb3V0T2ZGbG93Qm94LCBjb25zdCBEaXNwbGF5Qm94ZXMmIGRpc3BsYXlCb3hl
cykKK3sKKyAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBh
cmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpvaW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMg
c2hvdWxkIGFsbCBiZSBwbGFjZWQKKyAgICAvLyBhdCB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24g
KHRoZXkgZG9uJ3QgYWZmZWN0IG5leHQtc2libGluZyBwb3NpdGlvbnMpIGFuZCB3aGlsZSBmbG9h
dHMgZG8gcGFydGljaXBhdGUgaW4gdGhlIGlubGluZSBsYXlvdXQKKyAgICAvLyB0aGVpciBwb3Np
dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gdGFrZW4gaW50byBhY2NvdW50IGR1cmluZyB0aGUgaW5s
aW5lIGxheW91dC4KKyAgICBhdXRvIHByZXZpb3VzSW5GbG93Qm94ID0gWyZdICgpIC0+IGNvbnN0
IEJveCogeworICAgICAgICBpZiAoYXV0byogcHJldmlvdXNJbkZsb3dTaWJsaW5nID0gb3V0T2ZG
bG93Qm94LnByZXZpb3VzSW5GbG93U2libGluZygpKQorICAgICAgICAgICAgcmV0dXJuIHByZXZp
b3VzSW5GbG93U2libGluZzsKKyAgICAgICAgLy8gUGFyZW50IGlzIGVpdGhlciB0aGUgcm9vdCBo
ZXJlIG9yIGFub3RoZXIgaW5saW5lIGJveCAoZS5nLiA8c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGUiPjwvc3Bhbj4pCisgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0Jv
eC5wYXJlbnQoKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudC5pc0lubGluZUJveCgpID8gJnBhcmVu
dCA6IG51bGxwdHI7CisgICAgfSgpOworCisgICAgaWYgKCFwcmV2aW91c0luRmxvd0JveCkgewor
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBjb250ZW50LiBJdCBzaXRzIG9uIHRoZSBlZGdl
IG9mIHRoZSBmaXJzdCByb290IGlubGluZSBib3guIFdlIGRvbid0IG5lZWQgdG8gcHJvdmlkZSB0
aGUgbmV4dCBkaXNwbGF5IGJveC4KKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9
OworICAgIH0KKworICAgIC8vIFRoaXMgaXMgc3VwcG9zZWQgdG8gZmluZCB0aGUgbGFzdCBkaXNw
bGF5IGJveCBvZiB0aGUgImluZmxvd0JveCIgYW5kIHJldHVybiBpdCB3aXRoIHRoZSBuZXh0IGRp
c3BsYXkgYm94IChmaXJzdCBib3ggb2YgdGhlIG5leHQgaW5mbG93IGNvbnRlbnQpLgorICAgIGF1
dG8gZm91bmRGaXJzdERpc3BsYXlCb3ggPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9
IDA7IGluZGV4IDwgZGlzcGxheUJveGVzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBpZiAo
Zm91bmRGaXJzdERpc3BsYXlCb3ggJiYgJmRpc3BsYXlCb3hlc1tpbmRleF0ubGF5b3V0Qm94KCkg
IT0gcHJldmlvdXNJbkZsb3dCb3gpIHsKKyAgICAgICAgICAgIEFTU0VSVChpbmRleCk7CisgICAg
ICAgICAgICByZXR1cm4geyAmZGlzcGxheUJveGVzW2luZGV4IC0gMV0sICZkaXNwbGF5Qm94ZXNb
aW5kZXhdIH07CisgICAgICAgIH0KKyAgICAgICAgZm91bmRGaXJzdERpc3BsYXlCb3ggPSBmb3Vu
ZEZpcnN0RGlzcGxheUJveCB8fCAmZGlzcGxheUJveGVzW2luZGV4XS5sYXlvdXRCb3goKSA9PSBw
cmV2aW91c0luRmxvd0JveDsKKyAgICB9CisgICAgaWYgKGZvdW5kRmlyc3REaXNwbGF5Qm94KQor
ICAgICAgICByZXR1cm4geyAmZGlzcGxheUJveGVzW2Rpc3BsYXlCb3hlcy5zaXplKCkgLSAxXSwg
bnVsbHB0ciB9OworICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKK30KIAogfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaAppbmRleCA3
NDU5ODdhMjQwNTkuLjYxODU1MGFmZjFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ0dlb21ldHJ5LmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYsIGNv
bnN0IExpbmVCb3gmKSBjb25zdDsKIAogICAgIHN0YXRpYyBJbmxpbmVSZWN0IGZsaXBWaXN1YWxS
ZWN0VG9Mb2dpY2FsRm9yV3JpdGluZ01vZGUoY29uc3QgSW5saW5lUmVjdCYgdmlzdWFsUmVjdCwg
V3JpdGluZ01vZGUpOworICAgIHN0YXRpYyBzdGQ6OnR1cGxlPGNvbnN0IElubGluZURpc3BsYXk6
OkJveCosIGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IHByZXZpb3VzQW5kTmV4dERpc3BsYXlC
b3hGb3JTdGF0aWNQb3NpdGlvbihjb25zdCBCb3gmIG91dE9mRmxvd0JveCwgY29uc3QgRGlzcGxh
eUJveGVzJik7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCAwOGRlYmU1NjI4ZWQuLmEyZGYyMTFk
YTM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtMzcxLDQ1ICszNzEsNTgg
QEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckNoaWxkKGNvbnN0
IFJlbmRlck9iamVjdCYgY2hpbGQsIEluY2wKICAgICBpZiAoaXM8UmVuZGVyTGluZUJyZWFrPihj
aGlsZCkpCiAgICAgICAgIHJldHVybiByZWFzb25zOwogCi0gICAgaWYgKGlzPFJlbmRlclJlcGxh
Y2VkPihjaGlsZCkpIHsKLSAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBkb3duY2FzdDxSZW5kZXJS
ZXBsYWNlZD4oY2hpbGQpOwotICAgICAgICBpZiAocmVwbGFjZWQuaXNGbG9hdGluZygpIHx8IHJl
cGxhY2VkLmlzUG9zaXRpb25lZCgpKQorICAgIGF1dG8gaXNTcHBvcnRlZEZsb2F0aW5nT3JQb3Np
dGlvbmVkID0gWyZdIChhdXRvJiByZW5kZXJlcikgeworICAgICAgICBpZiAocmVuZGVyZXIuaXNG
bG9hdGluZygpIHx8IHJlbmRlcmVyLmlzSW5GbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAocmVuZGVyZXIuaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkpIHsKKyAgICAgICAgICAgIGlmICghaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLnBh
cmVudCgpLT5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBUaGlzIHNpbXBseSBjaGVja3MgdGhlIG5v
dC15ZXQgc3VwcG9ydGVkIGNhc2Ugd2hlbiB0aGUgb3V0LW9mLWZsb3cgcG9zaXRpb25lZAorICAg
ICAgICAgICAgLy8gY29udGVudCBoYXMgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lIGNv
bnRhaW5pbmcgYmxvY2sgKGhhcyB0byBjYWxsIGNvbnRhaW5lciB0byBub3Qgc2tpcCBSZW5kZXJJ
bmxpbmVzKS4KKyAgICAgICAgICAgIHJldHVybiBpczxSZW5kZXJCbG9ja0Zsb3c+KGNoaWxkLmNv
bnRhaW5lcigpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworCisg
ICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZCk7CisgICAg
aWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKCFpc1NwcG9y
dGVkRmxvYXRpbmdPclBvc2l0aW9uZWQocmVuZGVyZXIpKQogICAgICAgICAgICAgU0VUX1JFQVNP
Tl9BTkRfUkVUVVJOX0lGX05FRURFRChDaGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9uZWQsIHJl
YXNvbnMsIGluY2x1ZGVSZWFzb25zKQogCi0gICAgICAgIGlmIChyZXBsYWNlZC5pc1NWR1Jvb3RP
ckxlZ2FjeVNWR1Jvb3QoKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlzU1ZHUm9vdE9yTGVnYWN5
U1ZHUm9vdCgpKQogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChD
b250ZW50SXNTVkcsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKIAogICAgICAgICByZXR1cm4g
cmVhc29uczsKICAgICB9CiAKLSAgICBpZiAoaXM8UmVuZGVyTGlzdEl0ZW0+KGNoaWxkKSkgewot
ICAgICAgICBpZiAoY2hpbGQuaXNQb3NpdGlvbmVkKCkgfHwgY2hpbGQuaXNGbG9hdGluZygpKQor
ICAgIGlmIChpczxSZW5kZXJMaXN0SXRlbT4ocmVuZGVyZXIpKSB7CisgICAgICAgIGlmICghaXNT
cHBvcnRlZEZsb2F0aW5nT3JQb3NpdGlvbmVkKHJlbmRlcmVyKSkKICAgICAgICAgICAgIFNFVF9S
RUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0lzVW5zdXBwb3J0ZWRMaXN0SXRlbSwgcmVh
c29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICByZXR1cm4gcmVhc29uczsKICAgICB9CiAK
LSAgICBpZiAoaXM8UmVuZGVyTGlzdE1hcmtlcj4oY2hpbGQpICYmIGlzPFJlbmRlckxpc3RJdGVt
PihjaGlsZC5wYXJlbnQoKSkgJiYgIWlzPFJlbmRlckxpc3RNYXJrZXI+KGNoaWxkLm5leHRTaWJs
aW5nKCkpKQorICAgIGlmIChpczxSZW5kZXJMaXN0TWFya2VyPihyZW5kZXJlcikgJiYgaXM8UmVu
ZGVyTGlzdEl0ZW0+KHJlbmRlcmVyLnBhcmVudCgpKSAmJiAhaXM8UmVuZGVyTGlzdE1hcmtlcj4o
cmVuZGVyZXIubmV4dFNpYmxpbmcoKSkpCiAgICAgICAgIHJldHVybiByZWFzb25zOwogCi0gICAg
aWYgKGlzPFJlbmRlclRhYmxlPihjaGlsZCkpIHsKLSAgICAgICAgYXV0byYgdGFibGUgPSBkb3du
Y2FzdDxSZW5kZXJUYWJsZT4oY2hpbGQpOwotICAgICAgICBpZiAodGFibGUuaXNGbG9hdGluZygp
IHx8IHRhYmxlLmlzUG9zaXRpb25lZCgpKQorICAgIGlmIChpczxSZW5kZXJUYWJsZT4ocmVuZGVy
ZXIpKSB7CisgICAgICAgIGlmICghaXNTcHBvcnRlZEZsb2F0aW5nT3JQb3NpdGlvbmVkKHJlbmRl
cmVyKSkKICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoQ2hpbGRC
b3hJc0Zsb2F0aW5nT3JQb3NpdGlvbmVkLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucykKICAgICAg
ICAgcmV0dXJuIHJlYXNvbnM7CiAgICAgfQogCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4o
Y2hpbGQpKSB7Ci0gICAgICAgIGF1dG8mIGJsb2NrID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93
PihjaGlsZCk7Ci0gICAgICAgIGlmIChibG9jay5pc0Zsb2F0aW5nKCkgfHwgYmxvY2suaXNQb3Np
dGlvbmVkKCkpCisgICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIpKSB7CisgICAg
ICAgIGlmICghaXNTcHBvcnRlZEZsb2F0aW5nT3JQb3NpdGlvbmVkKHJlbmRlcmVyKSkKICAgICAg
ICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoQ2hpbGRCb3hJc0Zsb2F0aW5n
T3JQb3NpdGlvbmVkLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucykKLSAgICAgICAgaWYgKGJsb2Nr
LmlzUnVieVJ1bigpKQorICAgICAgICBpZiAocmVuZGVyZXIuaXNSdWJ5UnVuKCkpCiAgICAgICAg
ICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKENvbnRlbnRJc1J1YnksIHJlYXNv
bnMsIGluY2x1ZGVSZWFzb25zKTsKIAogICAgICAgICByZXR1cm4gcmVhc29uczsKICAgICB9CiAK
LSAgICBpZiAoaXM8UmVuZGVySW5saW5lPihjaGlsZCkpIHsKLSAgICAgICAgYXV0byByZW5kZXJJ
bmxpbmVSZWFzb25zID0gY2FuVXNlRm9yUmVuZGVySW5saW5lQ2hpbGQoZG93bmNhc3Q8UmVuZGVy
SW5saW5lPihjaGlsZCksIGluY2x1ZGVSZWFzb25zKTsKKyAgICBpZiAoaXM8UmVuZGVySW5saW5l
PihyZW5kZXJlcikpIHsKKyAgICAgICAgYXV0byByZW5kZXJJbmxpbmVSZWFzb25zID0gY2FuVXNl
Rm9yUmVuZGVySW5saW5lQ2hpbGQoZG93bmNhc3Q8UmVuZGVySW5saW5lPihyZW5kZXJlciksIGlu
Y2x1ZGVSZWFzb25zKTsKICAgICAgICAgaWYgKHJlbmRlcklubGluZVJlYXNvbnMpCiAgICAgICAg
ICAgICBBRERfUkVBU09OU19BTkRfUkVUVVJOX0lGX05FRURFRChyZW5kZXJJbmxpbmVSZWFzb25z
LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIHJldHVybiByZWFzb25zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGJhMWU5ZmRj
Mzc2ZC4uN2RmY2Q0ZWMyOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJ
bmxpbmUuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpbmVC
cmVhay5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0
SXRlbS5oIgpAQCAtNDA3LDcgKzQwOCwxNCBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbnN0cnVjdENv
bnRlbnQoKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byYgcmVuZGVyZXIg
PSBkb3duY2FzdDxSZW5kZXJCb3g+KCpib3hBbmRSZW5kZXJlci5yZW5kZXJlcik7Ci0gICAgICAg
IHJlbmRlcmVyLnNldExvY2F0aW9uKExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFRvcExl
ZnQobV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KSkpOworICAg
ICAgICBhdXRvIHRvcExlZnQgPSBMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0
KG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91dEJveCkpOworICAgICAg
ICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CisgICAgICAgICAgICBh
dXRvJiBsYXllciA9ICpyZW5kZXJlci5sYXllcigpOworICAgICAgICAgICAgbGF5ZXIuc2V0U3Rh
dGljQmxvY2tQb3NpdGlvbih0b3BMZWZ0LnkoKSk7CisgICAgICAgICAgICBsYXllci5zZXRTdGF0
aWNJbmxpbmVQb3NpdGlvbih0b3BMZWZ0LngoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbih0b3BMZWZ0KTsKICAgICB9CiAK
ICAgICBtX2lubGluZUNvbnRlbnQtPmNsZWFyR2FwQWZ0ZXJMYXN0TGluZSA9IG1faW5saW5lRm9y
bWF0dGluZ1N0YXRlLmNsZWFyR2FwQWZ0ZXJMYXN0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA2ZDRlODE3YzczZGUuLjljMzZlMWQy
YjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTM1NzEsNiArMzU3MSw5IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5M
aW5lcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlcGFpCiAgICAgICAgIGlm
ICghcmVuZGVyZXIubmVlZHNMYXlvdXQoKSAmJiAhbmVlZHNVcGRhdGVSZXBsYWNlZERpbWVuc2lv
bnMpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAocmVuZGVyZXIuaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZW5kZXJlci5jb250YWluaW5nQmxvY2so
KS0+aW5zZXJ0UG9zaXRpb25lZE9iamVjdChkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSk7
CisKICAgICAgICAgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKICAgICAgICAg
ICAgIGF1dG8mIHJlcGxhY2VkID0gZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKTsK
ICAgICAgICAgICAgIHJlcGxhY2VkLmxheW91dElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9mYXN0L3JlcGFpbnQv
Zm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmUxMjQ5NmJlODA3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvZmFzdC9yZXBhaW50L2ZvY3VzLXJpbmctcmVwYWludC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0MyBAQAorCisKKworCisKKworCisocmVwYWludCByZWN0cwor
ICAocmVjdCA1IDQ1NyAxMDMgNjcpCisgIChyZWN0IDUgNDU3IDEwNiA3MCkKKyAgKHJlY3QgNSA1
NDIgMTA2IDcwKQorICAocmVjdCAxNSA2MiAzNiAzNikKKyAgKHJlY3QgMTggNjUgMzAgMzApCisg
IChyZWN0IDE1IDYyIDM2IDI2KQorICAocmVjdCAxOCA2NSAzMCAyMCkKKyAgKHJlY3QgNSA4OSA1
NiAxMCkKKyAgKHJlY3QgNSAzNSA1NiA2NCkKKyAgKHJlY3QgNSAxMTcgMzYgNTYpCisgIChyZWN0
IDggMTIwIDMwIDUwKQorICAocmVjdCA1IDExNyAzNiA4NikKKyAgKHJlY3QgOCAxMjAgMzAgODAp
CisgIChyZWN0IDUgMTc0IDU2IDMwKQorICAocmVjdCA1IDEyMCA1NiA4NCkKKyAgKHJlY3QgNSAy
MDUgNTYgMzQpCisgIChyZWN0IDUgMzc1IDU2IDM0KQorICAocmVjdCA1IDQ1NyAxMDMgNjcpCisg
IChyZWN0IDggNDYwIDEwMCA2NCkKKyAgKHJlY3QgOCA1NDUgMTAwIDY0KQorICAocmVjdCA1IDU0
MiAxMDMgNjcpCisgIChyZWN0IDQ1IDIxMiAzNiAzNikKKyAgKHJlY3QgNDggMjE1IDMwIDMwKQor
ICAocmVjdCAxNTUgMjEyIDM2IDM2KQorICAocmVjdCAxNTggMjE1IDMwIDMwKQorICAocmVjdCA3
IDM3NyAzNiAzNikKKyAgKHJlY3QgMTAgMzgwIDMwIDMwKQorICAocmVjdCAxNDcgMzc3IDM2IDM2
KQorICAocmVjdCAxNTAgMzgwIDMwIDMwKQorICAocmVjdCAxMDUgMzgyIDM2IDM2KQorICAocmVj
dCAxMDggMzg1IDMwIDMwKQorICAocmVjdCAyMDUgMzgyIDM2IDM2KQorICAocmVjdCAyMDggMzg1
IDMwIDMwKQorKQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461776</attachid>
            <date>2022-08-20 22:32:38 -0700</date>
            <delta_ts>2022-08-21 07:27:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244033-20220820223237.patch</filename>
            <type>text/plain</type>
            <size>23160</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzZTQ4OTYyYzBkYzRhZTIyYWYzNjU4M2QwYzQ3NjU4ZGVjOWFkNTI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDE3IEF1ZyAyMDIyIDE2OjM3OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWZsb3cgY29udGVudAogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDAzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CgoxLiBPdXQtb2YtZmxvdyBjb250ZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBfaW5saW5lXyBsaW5l
IGxheW91dAoyLiBUaGUgc3RhdGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCBpcyBj
b21wdXRlZCBfYWZ0ZXJfIHRoZSBpbmxpbmUgbGluZSBsYXlvdXQgYnkgZmluZGluZyBvdXQgd2hl
cmUgdGhlIGl0IHdvdWxkIGhhdmUgbGFuZGVkIGlmIGl0IHdhcyAncG9zaXRpb246IHN0YXRpYycu
CgpUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyByZXBsYWNlZCBvdXQtb2YtZmxvdyBjb250ZW50IGZv
ciBJRkMuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwOgooV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkVGV4dEluZGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNv
bnN0cnVjdENvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRNb2Rlcm5MaW5lcyk6Ci0t
LQogU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgICAgIHwgICA1ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCAgfCAgIDYgKwog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgMTA5ICsrKysr
LS0tLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAg
ICAgIHwgIDM0ICsrKysrLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAg
ICAgICAgIHwgICAxICsKIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcCB8ICA0NSArKysrKy0tLQogLi4uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCAgfCAgIDMgKwogLi4uL3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50LWV4cGVjdGVk
LnR4dCAgIHwgIDQzICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyks
IDEwMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL2Zhc3QvcmVwYWludC9mb2N1cy1yaW5nLXJlcGFpbnQtZXhwZWN0ZWQudHh0Cgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCAzOTQ3Y2QxNmZm
YWMuLmVkNDI4MTk3NGFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5jcHAKQEAgLTUwLDggKzUwLDkgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRl
KCkKIAogQm94R2VvbWV0cnkmIEZvcm1hdHRpbmdTdGF0ZTo6Ym94R2VvbWV0cnkoY29uc3QgQm94
JiBsYXlvdXRCb3gpCiB7Ci0gICAgLy8gU2hvdWxkIG5ldmVyIG5lZWQgdG8gbXV0YXRlIGEgZGlz
cGxheSBib3ggb3V0c2lkZSBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0LgotICAgIEFTU0VSVCgm
bGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChsYXlvdXRC
b3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpID09IHRoaXMpOworICAgIC8vIFNob3VsZCBuZXZl
ciBuZWVkIHRvIG11dGF0ZSBhIGRpc3BsYXkgYm94IG91dHNpZGUgb2YgdGhlIGZvcm1hdHRpbmcg
Y29udGV4dCwgdW5sZXNzIHdlIGFyZSB0cnlpbmcKKyAgICAvLyB0byBjb21wdXRlIHRoZSBzdGF0
aWMgcG9zaXRpb24gb2YgYW4gb3V0LW9mLWZsb3cgYm94LgorICAgIEFTU0VSVCgobGF5b3V0Qm94
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGlzSW5saW5lRm9ybWF0dGluZ1N0YXRlKCkpIHx8
ICZsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGxheW91
dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CiAgICAgLy8gQW5vbnltb3Vz
IHRleHQgd3JhcHBlcnMgZG8gbm90IG5lZWQgdG8gY29tcHV0ZSBib3ggZ2VvbWV0cnkuIFRoZXkg
aW5pdGlhdGUgaW5saW5lIHJ1bnMuCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNJbmxpbmVUZXh0
Qm94KCkpOwogICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGxh
eW91dEJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDc0YjZlMDhmYzQxOC4u
YTVlZTQ4OGZiODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTcxLDYgKzE3
MSwxMiBAQCBjb25zdCBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9y
Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6OgogICAgIFVOVVNFRF9QQVJBTShlc2NhcGVS
ZWFzb24pOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYXV0byBpc09rVG9BY2Nlc3NCb3hHZW9t
ZXRyeSA9IFsmXSB7CisgICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgJiYgaXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAvLyBUaGlz
IGlzIHRoZSBub24tZXNjYXBlIGNhc2Ugb2YgYWNjZXNzaW5nIGEgYm94J3MgZ2VvbWV0cnkgaW5m
b3JtYXRpb24gd2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dCB3aGVuCisgICAgICAg
ICAgICAvLyBjb21wdXRpbmcgc3RhdGljIHBvc2l0aW9uIGZvciBvdXQtb2YtZmxvdyBib3hlcy4K
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKCFpczxJ
bml0aWFsQ29udGFpbmluZ0Jsb2NrPihsYXlvdXRCb3gpICYmICZsYXlvdXRCb3guZm9ybWF0dGlu
Z0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUg
bm9uLWVzY2FwZSBjYXNlIG9mIGFjY2Vzc2luZyBhIGJveCdzIGdlb21ldHJ5IGluZm9ybWF0aW9u
IHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cAppbmRleCA5OGJlNTc4N2Y3OTQuLjY5MWY2Yzg4N2NkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjc3LDg4ICsyNzcsMzUgQEAg
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0
T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9IGZvcm1hdHRpbmdTdGF0
ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBvdXRPZkZsb3dCb3hl
cykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5i
b3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpOwotICAgICAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0
IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpv
aW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKLSAgICAgICAgLy8g
YXQgdGhlIHNhbWUgc3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxp
bmcgcG9zaXRpb25zKSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxp
bmUgbGF5b3V0Ci0gICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0
YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgotICAgICAgICBhdXRv
IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID0gWyZdKCkgLT4gY29uc3QgTGF5b3V0OjpC
b3gqIHsKLSAgICAgICAgICAgIGF1dG8qIHByZXZpb3VzU2libGluZyA9IG91dE9mRmxvd0JveC0+
cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICBmb3IgKDsgcHJldmlvdXNTaWJsaW5nICYm
IHByZXZpb3VzU2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgcHJldmlvdXNTaWJsaW5n
ID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKSkgeyB9Ci0gICAgICAgICAgICBp
ZiAocHJldmlvdXNTaWJsaW5nKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1NpYmxp
bmc7Ci0gICAgICAgICAgICAvLyBQYXJlbnQgaXMgZWl0aGVyIHRoZSByb290IGhlcmUgb3IgYW5v
dGhlciBpbmxpbmUgYm94IChlLmcuIDxzcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZSI+PC9zcGFuPikKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0JveC0+cGFy
ZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gJnBhcmVudCA9PSAmcm9vdCgpID8gbnVsbHB0ciA6
ICZwYXJlbnQ7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBpZiAoIXByZXZpb3VzQ29udGVudFNr
aXBwaW5nRmxvYXRzKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCAobm9uLWZs
b2F0KWNoaWxkLiBMZXQncyBwbGFjZSBpdCB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3QgYm94Lgot
ICAgICAgICAgICAgLy8gPGRpdj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPnRleHQg
Y29udGVudDwvZGl2PgotICAgICAgICAgICAgQVNTRVJUKGJveGVzLnNpemUoKSk7Ci0gICAgICAg
ICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGJveGVzWzBdLmxlZnQo
KSwgbGluZXNbMF0udG9wKCkgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIFN1YnNlcXVlbnQgb3V0LW9mLWZsb3cgcG9z
aXRpb25lZCBib3hlcyBzaGFyZSB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAg
ICAvLyA8ZGl2PnRleHQgY29udGVudDxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PGlt
ZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4KLSAgICAgICAgICAgIG91dE9mRmxv
d0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0
KGdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cykpKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKHByZXZpb3VzQ29u
dGVudFNraXBwaW5nRmxvYXRzLT5pc0luRmxvdygpKTsKLSAgICAgICAgYXV0byBwbGFjZU91dE9m
Rmxvd0JveEFmdGVyUHJldmlvdXNJbkZsb3dCb3ggPSBbJl0gewotICAgICAgICAgICAgLy8gVGhl
IG91dC1vZi1mbG93IGJveCBzaG91bGQgYmUgcGxhY2VkIGFmdGVyIHRoaXMgaW5mbG93IGJveC4K
LSAgICAgICAgICAgIC8vIFNraXAgdG8gdGhlIGxhc3QgYm94IG9mIHRoaXMgbGF5b3V0IGJveC4g
VGhlIGxhc3QgYm94J3MgZ2VvbWV0cnkgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBvdXQtb2YtZmxv
dyBib3gncyBzdGF0aWMgcG9zaXRpb24uCi0gICAgICAgICAgICBzaXplX3QgbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveCA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveCA8IGJveGVzLnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4
T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0Qm94KCkgIT0gcHJldmlvdXNDb250ZW50U2tpcHBp
bmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAg
ICAgICBpZiAobGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA9PSBib3hlcy5zaXplKCkp
IHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdmVyeSByYXJlIGNhc2VzLCB0aGUgcHJl
dmlvdXMgYm94J3MgY29udGVudCBtaWdodCBoYXZlIGJlZW4gY29tcGxldGVseSBjb2xsYXBzZWQg
YW5kIGxlZnQgdXMgd2l0aCBubyBib3guCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBM
RU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBmb3IgKDsgbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCA8IGJveGVz
LnNpemUoKSAmJiAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF0ubGF5b3V0
Qm94KCkgPT0gcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHM7ICsrbGFzdEJveEluZGV4T25Q
cmV2aW91c0xheW91dEJveCkgeyB9Ci0gICAgICAgICAgICAgICAgLS1sYXN0Qm94SW5kZXhPblBy
ZXZpb3VzTGF5b3V0Qm94OwotICAgICAgICAgICAgLy8gTGV0J3MgY2hlY2sgaWYgdGhlIHByZXZp
b3VzIGJveCBpcyB0aGUgbGFzdCBib3ggb24gdGhlIGN1cnJlbnQgbGluZSBhbmQgdXNlIHRoZSBu
ZXh0IGJveCdzIGxlZnQgaW5zdGVhZC4KLSAgICAgICAgICAgIGF1dG8mIHByZXZpb3VzQm94ID0g
Ym94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveF07Ci0gICAgICAgICAgICBhdXRv
KiBuZXh0Qm94ID0gbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDEgPCBib3hlcy5z
aXplKCkgPyAmYm94ZXNbbGFzdEJveEluZGV4T25QcmV2aW91c0xheW91dEJveCArIDFdIDogbnVs
bHB0cjsKLQotICAgICAgICAgICAgaWYgKG5leHRCb3ggJiYgbmV4dEJveC0+bGluZUluZGV4KCkg
PT0gcHJldmlvdXNCb3gubGluZUluZGV4KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBQcmV2aW91
cyBhbmQgbmV4dCBib3hlcyBhcmUgb24gdGhlIHNhbWUgbGluZS4gVGhlIG91dC1vZi1mbG93IGJv
eCBpcyByaWdodCBhdCB0aGUgcHJldmlvdXMgYm94J3MgbG9naWNhbCByaWdodC4KLSAgICAgICAg
ICAgICAgICAvLyA8ZGl2PnRleHQ8aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPmNvbnRl
bnQ8L2Rpdj4KLSAgICAgICAgICAgICAgICBhdXRvIGxlZnQgPSBwcmV2aW91c0JveC5yaWdodCgp
OwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NvbnRlbnRTa2lwcGluZ0Zsb2F0cy0+aXNJ
bmxpbmVCb3goKSAmJiAhcHJldmlvdXNDb250ZW50U2tpcHBpbmdGbG9hdHMtPmlzQW5vbnltb3Vz
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PHNwYW4+PGltZyBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlIj5jb250ZW50PC9zcGFuPjwvZGl2PgotICAgICAgICAgICAgICAg
ICAgICAvLyBvcgotICAgICAgICAgICAgICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5jb250ZW50
PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+PC9kaXY+Ci0gICAgICAgICAg
ICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3goKnBy
ZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzKTsKLSAgICAgICAgICAgICAgICAgICAgbGVmdCA9
IHByZXZpb3VzQ29udGVudFNraXBwaW5nRmxvYXRzID09ICZvdXRPZkZsb3dCb3gtPnBhcmVudCgp
Ci0gICAgICAgICAgICAgICAgICAgICAgICA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlu
bGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0
KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogQm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3Qo
aW5saW5lQm94Qm94R2VvbWV0cnkpLnJpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbGVmdCwgbGlu
ZXNbcHJldmlvdXNCb3gubGluZUluZGV4KCldLnRvcCgpIH0pOwotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG5leHRCb3gpIHsKLSAgICAg
ICAgICAgICAgICAvLyBUaGUgb3V0IG9mIGZsb3cgYm94IGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBuZXh0IGxpbmUgKHdoZXJlIHRoZSBmaXJzdCBib3ggb24gdGhlIGxpbmUgaXMp
LgotICAgICAgICAgICAgICAgIC8vIDxkaXY+dGV4dDxicj48aW1nIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGUiPjxpbWcgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Y29udGVudDwvZGl2Pgot
ICAgICAgICAgICAgICAgIG91dE9mRmxvd0dlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbmV4
dEJveC0+bGVmdCgpLCBsaW5lc1tuZXh0Qm94LT5saW5lSW5kZXgoKV0udG9wKCkgfSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhdXRvJiBs
YXN0TGluZSA9IGxpbmVzW3ByZXZpb3VzQm94LmxpbmVJbmRleCgpXTsKLSAgICAgICAgICAgIC8v
IFRoaXMgb3V0LW9mLWZsb3cgYm94IGlzIHRoZSBsYXN0IGJveC4KLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBVc2UgaXNMaW5lQnJlYWsgaW5zdGVhZCB0byBjb3ZlciBwcmVzZXJ2ZWQgbmV3IGxpbmVz
IHRvby4KLSAgICAgICAgICAgIGlmIChwcmV2aW91c0JveC5sYXlvdXRCb3goKS5pc0xpbmVCcmVh
a0JveCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gPGRpdj50ZXh0PGJyPjxpbWcgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZSI+PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48L2Rpdj4K
LSAgICAgICAgICAgICAgICBvdXRPZkZsb3dHZW9tZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IGxh
c3RMaW5lLmxlZnQoKSwgbGFzdExpbmUuYm90dG9tKCkgfSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBhdXRvIHRvcExlZnQgPSBMYXlvdXRQb2ludCB7IH07CisgICAgICAgIGF1
dG8gW3ByZXZpb3VzRGlzcGxheUJveCwgbmV4dERpc3BsYXlCb3hdID0gSW5saW5lRm9ybWF0dGlu
Z0dlb21ldHJ5OjpwcmV2aW91c0FuZE5leHREaXNwbGF5Qm94Rm9yU3RhdGljUG9zaXRpb24ob3V0
T2ZGbG93Qm94LCBib3hlcyk7CisKKyAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveCAmJiBu
ZXh0RGlzcGxheUJveCkgeworICAgICAgICAgICAgaWYgKHByZXZpb3VzRGlzcGxheUJveC0+aXNJ
bmxpbmVCb3goKSkgeworICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNh
c2VzIHdoZW4gdGhlIHByZXZpb3VzIGNvbnRlbnQgaXMgYW4gaW5saW5lIGJveDoKKyAgICAgICAg
ICAgICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUi
PmNvbnRlbnQ8L3NwYW4+PC9kaXY+CisgICAgICAgICAgICAgICAgLy8gb3IKKyAgICAgICAgICAg
ICAgICAvLyA8ZGl2PnRleHQ8c3Bhbj5jb250ZW50PC9zcGFuPjxpbWcgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZSI+PC9kaXY+CisgICAgICAgICAgICAgICAgYXV0byBpc0ZpcnN0Q29udGVudElu
c2lkZUlubGluZUJveCA9ICZvdXRPZkZsb3dCb3gtPnBhcmVudCgpID09ICZwcmV2aW91c0Rpc3Bs
YXlCb3gtPmxheW91dEJveCgpOworICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEJveEdl
b21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3gocHJldmlvdXNEaXNwbGF5Qm94LT5sYXlvdXRCb3goKSk7
CisKKyAgICAgICAgICAgICAgICB0b3BMZWZ0ID0geworICAgICAgICAgICAgICAgICAgICBpc0Zp
cnN0Q29udGVudEluc2lkZUlubGluZUJveCA/IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hMZWZ0KGlu
bGluZUJveEJveEdlb21ldHJ5KSArIGlubGluZUJveEJveEdlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0
KCkgOiBCb3hHZW9tZXRyeTo6bWFyZ2luQm94UmVjdChpbmxpbmVCb3hCb3hHZW9tZXRyeSkucmln
aHQoKSwKKyAgICAgICAgICAgICAgICAgICAgbGluZXNbcHJldmlvdXNEaXNwbGF5Qm94LT5saW5l
SW5kZXgoKV0udG9wKCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBhdXRvJiBjdXJyZW50TGluZSA9IGxpbmVzW3ByZXZpb3VzRGlzcGxh
eUJveC0+bGluZUluZGV4KCldOworICAgICAgICAgICAgICAgIGF1dG8gc2hvdWxkRml0TGluZSA9
IHByZXZpb3VzRGlzcGxheUJveC0+bGluZUluZGV4KCkgPT0gbmV4dERpc3BsYXlCb3gtPmxpbmVJ
bmRleCgpIHx8IChwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCkgPD0gY3VycmVudExpbmUubGVm
dCgpICYmICFwcmV2aW91c0Rpc3BsYXlCb3gtPmlzTGluZUJyZWFrQm94KCkpOworICAgICAgICAg
ICAgICAgIHRvcExlZnQgPSBzaG91bGRGaXRMaW5lID8gTGF5b3V0UG9pbnQgeyBwcmV2aW91c0Rp
c3BsYXlCb3gtPnJpZ2h0KCksIGN1cnJlbnRMaW5lLnRvcCgpIH0gOiBMYXlvdXRQb2ludCB7IG5l
eHREaXNwbGF5Qm94LT5sZWZ0KCksIGxpbmVzW25leHREaXNwbGF5Qm94LT5saW5lSW5kZXgoKV0u
dG9wKCkgfTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBtYXkgbmVl
ZCB0byBjaGVjayBpZiB0aGlzIGJveCBhY3R1YWxseSBmaXRzIHRoZSBsYXN0IGxpbmUgYW5kIG1v
dmUgaXQgb3ZlciB0byB0aGUgIm5leHQiIGxpbmUuCi0gICAgICAgICAgICBvdXRPZkZsb3dHZW9t
ZXRyeS5zZXRMb2dpY2FsVG9wTGVmdCh7IHByZXZpb3VzQm94LnJpZ2h0KCksIGxhc3RMaW5lLnRv
cCgpIH0pOwotICAgICAgICB9OwotICAgICAgICBwbGFjZU91dE9mRmxvd0JveEFmdGVyUHJldmlv
dXNJbkZsb3dCb3goKTsKKyAgICAgICAgfSBlbHNlIGlmICghcHJldmlvdXNEaXNwbGF5Qm94KQor
ICAgICAgICAgICAgdG9wTGVmdCA9IHsgYm94ZXNbMF0ubGVmdCgpLCBsaW5lc1swXS50b3AoKSB9
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRMaW5lID0gbGluZXNb
cHJldmlvdXNEaXNwbGF5Qm94LT5saW5lSW5kZXgoKV07CisgICAgICAgICAgICBhdXRvIHNob3Vs
ZEZpdExpbmUgPSBwcmV2aW91c0Rpc3BsYXlCb3gtPnJpZ2h0KCkgPD0gY3VycmVudExpbmUucmln
aHQoKSAmJiAhcHJldmlvdXNEaXNwbGF5Qm94LT5pc0xpbmVCcmVha0JveCgpOworICAgICAgICAg
ICAgdG9wTGVmdCA9IHNob3VsZEZpdExpbmUgPyBMYXlvdXRQb2ludCB7IHByZXZpb3VzRGlzcGxh
eUJveC0+cmlnaHQoKSwgY3VycmVudExpbmUudG9wKCkgfSA6IExheW91dFBvaW50IHsgY3VycmVu
dExpbmUubGVmdCgpLCBjdXJyZW50TGluZS5ib3R0b20oKSB9OworICAgICAgICB9CisgICAgICAg
IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShvdXRPZkZsb3dCb3gpLnNldExvZ2ljYWxUb3BM
ZWZ0KHRvcExlZnQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggM2UyZGYzMDk3YWMxLi4wZjlhOWRkY2M3YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cApAQCAtMTc1LDcgKzE3NSwzOSBAQCBJbmxpbmVMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdH
ZW9tZXRyeTo6Y29tcHV0ZWRUZXh0SW5kZW50KElzSW50cmluc2ljV2lkdGhNbwogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KICAgICByZXR1cm4geyBtaW5pbXVtVmFsdWVGb3JMZW5ndGgodGV4
dEluZGVudCwgYXZhaWxhYmxlV2lkdGgpIH07Ci19OworfQorCitzdGQ6OnR1cGxlPGNvbnN0IElu
bGluZURpc3BsYXk6OkJveCosIGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IElubGluZUZvcm1h
dHRpbmdHZW9tZXRyeTo6cHJldmlvdXNBbmROZXh0RGlzcGxheUJveEZvclN0YXRpY1Bvc2l0aW9u
KGNvbnN0IEJveCYgb3V0T2ZGbG93Qm94LCBjb25zdCBEaXNwbGF5Qm94ZXMmIGRpc3BsYXlCb3hl
cykKK3sKKyAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0IGFuZCBvdXQtb2YtZmxvdyBib3hlcyBh
cmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpvaW5pbmcgb3V0LW9mLWZsb3cgYm94ZXMg
c2hvdWxkIGFsbCBiZSBwbGFjZWQKKyAgICAvLyBhdCB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24g
KHRoZXkgZG9uJ3QgYWZmZWN0IG5leHQtc2libGluZyBwb3NpdGlvbnMpIGFuZCB3aGlsZSBmbG9h
dHMgZG8gcGFydGljaXBhdGUgaW4gdGhlIGlubGluZSBsYXlvdXQKKyAgICAvLyB0aGVpciBwb3Np
dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gdGFrZW4gaW50byBhY2NvdW50IGR1cmluZyB0aGUgaW5s
aW5lIGxheW91dC4KKyAgICBhdXRvIHByZXZpb3VzSW5GbG93Qm94ID0gWyZdICgpIC0+IGNvbnN0
IEJveCogeworICAgICAgICBpZiAoYXV0byogcHJldmlvdXNJbkZsb3dTaWJsaW5nID0gb3V0T2ZG
bG93Qm94LnByZXZpb3VzSW5GbG93U2libGluZygpKQorICAgICAgICAgICAgcmV0dXJuIHByZXZp
b3VzSW5GbG93U2libGluZzsKKyAgICAgICAgLy8gUGFyZW50IGlzIGVpdGhlciB0aGUgcm9vdCBo
ZXJlIG9yIGFub3RoZXIgaW5saW5lIGJveCAoZS5nLiA8c3Bhbj48aW1nIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGUiPjwvc3Bhbj4pCisgICAgICAgIGF1dG8mIHBhcmVudCA9IG91dE9mRmxvd0Jv
eC5wYXJlbnQoKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudC5pc0lubGluZUJveCgpID8gJnBhcmVu
dCA6IG51bGxwdHI7CisgICAgfSgpOworCisgICAgaWYgKCFwcmV2aW91c0luRmxvd0JveCkgewor
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBjb250ZW50LiBJdCBzaXRzIG9uIHRoZSBlZGdl
IG9mIHRoZSBmaXJzdCByb290IGlubGluZSBib3guIFdlIGRvbid0IG5lZWQgdG8gcHJvdmlkZSB0
aGUgbmV4dCBkaXNwbGF5IGJveC4KKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9
OworICAgIH0KKworICAgIC8vIFRoaXMgaXMgc3VwcG9zZWQgdG8gZmluZCB0aGUgbGFzdCBkaXNw
bGF5IGJveCBvZiB0aGUgImluZmxvd0JveCIgYW5kIHJldHVybiBpdCB3aXRoIHRoZSBuZXh0IGRp
c3BsYXkgYm94IChmaXJzdCBib3ggb2YgdGhlIG5leHQgaW5mbG93IGNvbnRlbnQpLgorICAgIGF1
dG8gZm91bmRGaXJzdERpc3BsYXlCb3ggPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9
IDA7IGluZGV4IDwgZGlzcGxheUJveGVzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBpZiAo
Zm91bmRGaXJzdERpc3BsYXlCb3ggJiYgJmRpc3BsYXlCb3hlc1tpbmRleF0ubGF5b3V0Qm94KCkg
IT0gcHJldmlvdXNJbkZsb3dCb3gpIHsKKyAgICAgICAgICAgIEFTU0VSVChpbmRleCk7CisgICAg
ICAgICAgICByZXR1cm4geyAmZGlzcGxheUJveGVzW2luZGV4IC0gMV0sICZkaXNwbGF5Qm94ZXNb
aW5kZXhdIH07CisgICAgICAgIH0KKyAgICAgICAgZm91bmRGaXJzdERpc3BsYXlCb3ggPSBmb3Vu
ZEZpcnN0RGlzcGxheUJveCB8fCAmZGlzcGxheUJveGVzW2luZGV4XS5sYXlvdXRCb3goKSA9PSBw
cmV2aW91c0luRmxvd0JveDsKKyAgICB9CisgICAgaWYgKGZvdW5kRmlyc3REaXNwbGF5Qm94KQor
ICAgICAgICByZXR1cm4geyAmZGlzcGxheUJveGVzW2Rpc3BsYXlCb3hlcy5zaXplKCkgLSAxXSwg
bnVsbHB0ciB9OworICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKK30KIAogfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaAppbmRleCA3
NDU5ODdhMjQwNTkuLjYxODU1MGFmZjFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ0dlb21ldHJ5LmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYsIGNv
bnN0IExpbmVCb3gmKSBjb25zdDsKIAogICAgIHN0YXRpYyBJbmxpbmVSZWN0IGZsaXBWaXN1YWxS
ZWN0VG9Mb2dpY2FsRm9yV3JpdGluZ01vZGUoY29uc3QgSW5saW5lUmVjdCYgdmlzdWFsUmVjdCwg
V3JpdGluZ01vZGUpOworICAgIHN0YXRpYyBzdGQ6OnR1cGxlPGNvbnN0IElubGluZURpc3BsYXk6
OkJveCosIGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IHByZXZpb3VzQW5kTmV4dERpc3BsYXlC
b3hGb3JTdGF0aWNQb3NpdGlvbihjb25zdCBCb3gmIG91dE9mRmxvd0JveCwgY29uc3QgRGlzcGxh
eUJveGVzJik7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCAwOGRlYmU1NjI4ZWQuLmVjNDc0YTg1
MGVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtMzcxLDQ1ICszNzEsNTgg
QEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckNoaWxkKGNvbnN0
IFJlbmRlck9iamVjdCYgY2hpbGQsIEluY2wKICAgICBpZiAoaXM8UmVuZGVyTGluZUJyZWFrPihj
aGlsZCkpCiAgICAgICAgIHJldHVybiByZWFzb25zOwogCi0gICAgaWYgKGlzPFJlbmRlclJlcGxh
Y2VkPihjaGlsZCkpIHsKLSAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBkb3duY2FzdDxSZW5kZXJS
ZXBsYWNlZD4oY2hpbGQpOwotICAgICAgICBpZiAocmVwbGFjZWQuaXNGbG9hdGluZygpIHx8IHJl
cGxhY2VkLmlzUG9zaXRpb25lZCgpKQorICAgIGF1dG8gaXNTdXBwb3J0ZWRGbG9hdGluZ09yUG9z
aXRpb25lZCA9IFsmXSAoYXV0byYgcmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlz
RmxvYXRpbmcoKSB8fCByZW5kZXJlci5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFyZW5kZXJlci5w
YXJlbnQoKS0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgLy8gVGhpcyBzaW1wbHkgY2hlY2tzIHRoZSBu
b3QteWV0IHN1cHBvcnRlZCBjYXNlIHdoZW4gdGhlIG91dC1vZi1mbG93IHBvc2l0aW9uZWQKKyAg
ICAgICAgICAgIC8vIGNvbnRlbnQgaGFzIGEgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGlubGluZSBj
b250YWluaW5nIGJsb2NrIChoYXMgdG8gY2FsbCBjb250YWluZXIgdG8gbm90IHNraXAgUmVuZGVy
SW5saW5lcykuCisgICAgICAgICAgICByZXR1cm4gaXM8UmVuZGVyQmxvY2tGbG93PihjaGlsZC5j
b250YWluZXIoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsKKwor
ICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2hpbGQpOworICAg
IGlmIChpczxSZW5kZXJSZXBsYWNlZD4ocmVuZGVyZXIpKSB7CisgICAgICAgIGlmICghaXNTdXBw
b3J0ZWRGbG9hdGluZ09yUG9zaXRpb25lZChyZW5kZXJlcikpCiAgICAgICAgICAgICBTRVRfUkVB
U09OX0FORF9SRVRVUk5fSUZfTkVFREVEKENoaWxkQm94SXNGbG9hdGluZ09yUG9zaXRpb25lZCwg
cmVhc29ucywgaW5jbHVkZVJlYXNvbnMpCiAKLSAgICAgICAgaWYgKHJlcGxhY2VkLmlzU1ZHUm9v
dE9yTGVnYWN5U1ZHUm9vdCgpKQorICAgICAgICBpZiAocmVuZGVyZXIuaXNTVkdSb290T3JMZWdh
Y3lTVkdSb290KCkpCiAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVE
KENvbnRlbnRJc1NWRywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogCiAgICAgICAgIHJldHVy
biByZWFzb25zOwogICAgIH0KIAotICAgIGlmIChpczxSZW5kZXJMaXN0SXRlbT4oY2hpbGQpKSB7
Ci0gICAgICAgIGlmIChjaGlsZC5pc1Bvc2l0aW9uZWQoKSB8fCBjaGlsZC5pc0Zsb2F0aW5nKCkp
CisgICAgaWYgKGlzPFJlbmRlckxpc3RJdGVtPihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKCFp
c1N1cHBvcnRlZEZsb2F0aW5nT3JQb3NpdGlvbmVkKHJlbmRlcmVyKSkKICAgICAgICAgICAgIFNF
VF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0lzVW5zdXBwb3J0ZWRMaXN0SXRlbSwg
cmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICByZXR1cm4gcmVhc29uczsKICAgICB9
CiAKLSAgICBpZiAoaXM8UmVuZGVyTGlzdE1hcmtlcj4oY2hpbGQpICYmIGlzPFJlbmRlckxpc3RJ
dGVtPihjaGlsZC5wYXJlbnQoKSkgJiYgIWlzPFJlbmRlckxpc3RNYXJrZXI+KGNoaWxkLm5leHRT
aWJsaW5nKCkpKQorICAgIGlmIChpczxSZW5kZXJMaXN0TWFya2VyPihyZW5kZXJlcikgJiYgaXM8
UmVuZGVyTGlzdEl0ZW0+KHJlbmRlcmVyLnBhcmVudCgpKSAmJiAhaXM8UmVuZGVyTGlzdE1hcmtl
cj4ocmVuZGVyZXIubmV4dFNpYmxpbmcoKSkpCiAgICAgICAgIHJldHVybiByZWFzb25zOwogCi0g
ICAgaWYgKGlzPFJlbmRlclRhYmxlPihjaGlsZCkpIHsKLSAgICAgICAgYXV0byYgdGFibGUgPSBk
b3duY2FzdDxSZW5kZXJUYWJsZT4oY2hpbGQpOwotICAgICAgICBpZiAodGFibGUuaXNGbG9hdGlu
ZygpIHx8IHRhYmxlLmlzUG9zaXRpb25lZCgpKQorICAgIGlmIChpczxSZW5kZXJUYWJsZT4ocmVu
ZGVyZXIpKSB7CisgICAgICAgIGlmICghaXNTdXBwb3J0ZWRGbG9hdGluZ09yUG9zaXRpb25lZChy
ZW5kZXJlcikpCiAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKENo
aWxkQm94SXNGbG9hdGluZ09yUG9zaXRpb25lZCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpCiAg
ICAgICAgIHJldHVybiByZWFzb25zOwogICAgIH0KIAotICAgIGlmIChpczxSZW5kZXJCbG9ja0Zs
b3c+KGNoaWxkKSkgewotICAgICAgICBhdXRvJiBibG9jayA9IGRvd25jYXN0PFJlbmRlckJsb2Nr
Rmxvdz4oY2hpbGQpOwotICAgICAgICBpZiAoYmxvY2suaXNGbG9hdGluZygpIHx8IGJsb2NrLmlz
UG9zaXRpb25lZCgpKQorICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+KHJlbmRlcmVyKSkgewor
ICAgICAgICBpZiAoIWlzU3VwcG9ydGVkRmxvYXRpbmdPclBvc2l0aW9uZWQocmVuZGVyZXIpKQog
ICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChDaGlsZEJveElzRmxv
YXRpbmdPclBvc2l0aW9uZWQsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKQotICAgICAgICBpZiAo
YmxvY2suaXNSdWJ5UnVuKCkpCisgICAgICAgIGlmIChyZW5kZXJlci5pc1J1YnlSdW4oKSkKICAg
ICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoQ29udGVudElzUnVieSwg
cmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogCiAgICAgICAgIHJldHVybiByZWFzb25zOwogICAg
IH0KIAotICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KGNoaWxkKSkgewotICAgICAgICBhdXRvIHJl
bmRlcklubGluZVJlYXNvbnMgPSBjYW5Vc2VGb3JSZW5kZXJJbmxpbmVDaGlsZChkb3duY2FzdDxS
ZW5kZXJJbmxpbmU+KGNoaWxkKSwgaW5jbHVkZVJlYXNvbnMpOworICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KHJlbmRlcmVyKSkgeworICAgICAgICBhdXRvIHJlbmRlcklubGluZVJlYXNvbnMgPSBj
YW5Vc2VGb3JSZW5kZXJJbmxpbmVDaGlsZChkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVy
KSwgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICBpZiAocmVuZGVySW5saW5lUmVhc29ucykKICAg
ICAgICAgICAgIEFERF9SRUFTT05TX0FORF9SRVRVUk5fSUZfTkVFREVEKHJlbmRlcklubGluZVJl
YXNvbnMsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICAgICAgcmV0dXJuIHJlYXNvbnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKaW5kZXggYmEx
ZTlmZGMzNzZkLi43ZGZjZDRlYzI4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0
aW9uTGluZUxheW91dC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJEZXNj
ZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJl
bmRlcklubGluZS5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGluZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRl
ckxpc3RJdGVtLmgiCkBAIC00MDcsNyArNDA4LDE0IEBAIHZvaWQgTGluZUxheW91dDo6Y29uc3Ry
dWN0Q29udGVudCgpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvJiByZW5k
ZXJlciA9IGRvd25jYXN0PFJlbmRlckJveD4oKmJveEFuZFJlbmRlcmVyLnJlbmRlcmVyKTsKLSAg
ICAgICAgcmVuZGVyZXIuc2V0TG9jYXRpb24oTGF5b3V0OjpCb3hHZW9tZXRyeTo6Ym9yZGVyQm94
VG9wTGVmdChtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpKSk7
CisgICAgICAgIGF1dG8gdG9wTGVmdCA9IExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFRv
cExlZnQobV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KSk7Cisg
ICAgICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGxheWVyID0gKnJlbmRlcmVyLmxheWVyKCk7CisgICAgICAgICAgICBsYXllci5z
ZXRTdGF0aWNCbG9ja1Bvc2l0aW9uKHRvcExlZnQueSgpKTsKKyAgICAgICAgICAgIGxheWVyLnNl
dFN0YXRpY0lubGluZVBvc2l0aW9uKHRvcExlZnQueCgpKTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisgICAgICAgIHJlbmRlcmVyLnNldExvY2F0aW9uKHRvcExlZnQpOwogICAg
IH0KIAogICAgIG1faW5saW5lQ29udGVudC0+Y2xlYXJHYXBBZnRlckxhc3RMaW5lID0gbV9pbmxp
bmVGb3JtYXR0aW5nU3RhdGUuY2xlYXJHYXBBZnRlckxhc3RMaW5lKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDZkNGU4MTdjNzNkZS4uOWMz
NmUxZDJiODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcApAQCAtMzU3MSw2ICszNTcxLDkgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dE1v
ZGVybkxpbmVzKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcmVwYWkKICAgICAg
ICAgaWYgKCFyZW5kZXJlci5uZWVkc0xheW91dCgpICYmICFuZWVkc1VwZGF0ZVJlcGxhY2VkRGlt
ZW5zaW9ucykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlmIChyZW5kZXJlci5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIHJlbmRlcmVyLmNvbnRhaW5pbmdC
bG9jaygpLT5pbnNlcnRQb3NpdGlvbmVkT2JqZWN0KGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVy
ZXIpKTsKKwogICAgICAgICBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKSkgewogICAg
ICAgICAgICAgYXV0byYgcmVwbGFjZWQgPSBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4ocmVuZGVy
ZXIpOwogICAgICAgICAgICAgcmVwbGFjZWQubGF5b3V0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvZmFzdC9yZXBhaW50L2ZvY3VzLXJpbmctcmVw
YWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2Zhc3QvcmVw
YWludC9mb2N1cy1yaW5nLXJlcGFpbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uZTEyNDk2YmU4MDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9mYXN0L3JlcGFpbnQvZm9jdXMtcmluZy1yZXBhaW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQzIEBACisKKworCisKKworCisKKyhyZXBhaW50IHJl
Y3RzCisgIChyZWN0IDUgNDU3IDEwMyA2NykKKyAgKHJlY3QgNSA0NTcgMTA2IDcwKQorICAocmVj
dCA1IDU0MiAxMDYgNzApCisgIChyZWN0IDE1IDYyIDM2IDM2KQorICAocmVjdCAxOCA2NSAzMCAz
MCkKKyAgKHJlY3QgMTUgNjIgMzYgMjYpCisgIChyZWN0IDE4IDY1IDMwIDIwKQorICAocmVjdCA1
IDg5IDU2IDEwKQorICAocmVjdCA1IDM1IDU2IDY0KQorICAocmVjdCA1IDExNyAzNiA1NikKKyAg
KHJlY3QgOCAxMjAgMzAgNTApCisgIChyZWN0IDUgMTE3IDM2IDg2KQorICAocmVjdCA4IDEyMCAz
MCA4MCkKKyAgKHJlY3QgNSAxNzQgNTYgMzApCisgIChyZWN0IDUgMTIwIDU2IDg0KQorICAocmVj
dCA1IDIwNSA1NiAzNCkKKyAgKHJlY3QgNSAzNzUgNTYgMzQpCisgIChyZWN0IDUgNDU3IDEwMyA2
NykKKyAgKHJlY3QgOCA0NjAgMTAwIDY0KQorICAocmVjdCA4IDU0NSAxMDAgNjQpCisgIChyZWN0
IDUgNTQyIDEwMyA2NykKKyAgKHJlY3QgNDUgMjEyIDM2IDM2KQorICAocmVjdCA0OCAyMTUgMzAg
MzApCisgIChyZWN0IDE1NSAyMTIgMzYgMzYpCisgIChyZWN0IDE1OCAyMTUgMzAgMzApCisgIChy
ZWN0IDcgMzc3IDM2IDM2KQorICAocmVjdCAxMCAzODAgMzAgMzApCisgIChyZWN0IDE0NyAzNzcg
MzYgMzYpCisgIChyZWN0IDE1MCAzODAgMzAgMzApCisgIChyZWN0IDEwNSAzODIgMzYgMzYpCisg
IChyZWN0IDEwOCAzODUgMzAgMzApCisgIChyZWN0IDIwNSAzODIgMzYgMzYpCisgIChyZWN0IDIw
OCAzODUgMzAgMzApCispCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>