<?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>224146</bug_id>
          
          <creation_ts>2021-04-03 02:04:02 -0700</creation_ts>
          <short_desc>[GPU Process] Simplify DisplayList::Iterator part 4: Move DisplayList::Iterator to its own .h/.cpp files</short_desc>
          <delta_ts>2021-04-13 19:58:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          <blocked>223560</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746766</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-03 02:04:02 -0700</bug_when>
    <thetext>[GPU Process] Simplify DisplayList::Iterator part 4: Move DisplayList::Iterator to its own .h/.cpp files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746767</commentid>
    <comment_count>1</comment_count>
      <attachid>425085</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-03 02:05:49 -0700</bug_when>
    <thetext>Created attachment 425085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746768</commentid>
    <comment_count>2</comment_count>
      <attachid>425086</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-03 02:11:43 -0700</bug_when>
    <thetext>Created attachment 425086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748985</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-10 02:04:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/76488936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749425</commentid>
    <comment_count>4</comment_count>
      <attachid>425802</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-12 16:04:27 -0700</bug_when>
    <thetext>Created attachment 425802
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749519</commentid>
    <comment_count>5</comment_count>
      <attachid>425828</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-12 20:48:09 -0700</bug_when>
    <thetext>Created attachment 425828
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749978</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-13 19:57:59 -0700</bug_when>
    <thetext>Committed r275925 (236487@main): &lt;https://commits.webkit.org/236487@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425828.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425085</attachid>
            <date>2021-04-03 02:05:49 -0700</date>
            <delta_ts>2021-04-03 02:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224146-20210403020548.patch</filename>
            <type>text/plain</type>
            <size>30583</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZmRjYzBkZWVkYmI0
NDFlOGI3MWEyZTliYjQ5OTliY2IwZjQ2Ni4uYmI3NjZhODlmNTQ4NzMwMjM1NTQyM2JkMGI5NzI5
ZTRmZmQyYWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA0LTAzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA0OiBNb3ZlIERpc3BsYXlM
aXN0OjpJdGVyYXRvciB0byBpdHMgb3duIC5oLy5jcHAgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE0NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBhY3R1YWxseSBjaGFu
Z2UgYW55IGxpbmVzIG9mIGNvZGU7IGl0IGp1c3QgbW92ZXMgY29kZSBpbnRvIGRpZmZlcmVudCBm
aWxlcy4KKyAgICAgICAgVGhpcyBwYXRjaCBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCBJ
IHRoaW5rIGl0IGhlbHBzLCBiZWNhdXNlIHRoZSBpdGVyYXRvciBjb250YWlucworICAgICAgICBh
IG5vbi10cml2aWFsIGFtb3VudCBvZiBsb2dpYy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjpiZWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6Oml0ZXJhdG9yOjphdEVuZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50RHJh
d2luZ0l0ZW1FeHRlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6YWR2YW5j
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6
Oml0ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Om1vdmVUb0VuZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpt
b3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9y
Ojp+aXRlcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0
b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Oml0ZW1CdWZm
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjpiZWdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmVuZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OmF0
RW5kIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9y
OjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6OmNsZWFyQ3VycmVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6bW92ZVRvRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVDdXJzb3JUb1N0YXJ0T2ZD
dXJyZW50QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Okl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6On5JdGVyYXRvcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6
Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
OjpJdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRvciogY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6aXRlbUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuY3BwOgorCiAyMDIxLTA0LTAyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFBlbmRpbmdJbWFnZUJpdG1hcCBnZXRzIGNyZWF0ZWQgb24gYSBzdG9wcGVk
IHNjcmlwdCBleGVjdXRpb24gY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFhMzkxODJk
NDA2ZjYzMGE5MWU5NzRhMTgyMDUyM2Y4MTMyOWQ1MzMuLjA2ZTljNzkzZjcyMTY3NWY0ZjI4ZTdh
Y2NjM2NmZWEwYjk3ZWZhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyMCw2ICsxMzIwLDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggOWU0ZmE2MGNjZGRhZmRjMTVkZDY1MTM5MWYxYjIxMTZiMzczNGE0NS4uNzk1NzY2
YzE0MmNjNDA4N2ViNmZkMTIzMDQxMmRlZWNhNzUzOGFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIw
MjUsNiArMjAyNSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVyYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVwbGF5ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJj
ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NTMwMmRiMGQwYzY4MjIzMWY1NjJmZTkwOGM5ZWIxNTExYjNmOTYxLi4yYjMx
NTBiZjczYWRiZmYxNGRhMTUxMDdkMGFjOGRlOGU0NmJhNDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDQsNiArNjQ0LDcg
QEAKIAkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1Jl
Y29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NE
ODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNF
QkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09U
RkZvbnRDb252ZXJzaW9uLmggKi87IH07CisJCTFDRThEMTJFMjYxODYxQzQwMEZDM0FFRiAvKiBE
aXNwbGF5TGlzdEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFD
RkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTFEMDAyNkE0MjM3NEQ2MjQwMENBNkNERiAvKiBK
U1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFEMDAyNkEyMjM3NEQ2MjMwMENBNkNERiAvKiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuaCAqLzsgfTsKIAkJMUQwMDI2QUEyMzc0RjlFQTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50LmggKi87IH07CkBAIC02OTQ2LDYgKzY5NDcsOCBAQAogCQkxQ0RENDVF
NDBCQTlDODQ2MDBGOTAxNDcgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAwRjkwMTQ3IC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNFOEQxMkIyNjE4NjE2NDAwRkMzQUVG
IC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxp
c3RJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRThEMTJDMjYx
ODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BsYXlMaXN0SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFQ0Iz
QTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRl
bWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFN0YXRlbWVu
dEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNC
M0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTgwODQsNiArMTgwODcsOCBAQAogCQkJCTBGRTVGQkNEMUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggKi8sCiAJCQkJRjQzNzdENTYyNTUxQzlDNjAwODBBQkZF
IC8qIERpc3BsYXlMaXN0SXRlbVR5cGUuY3BwICovLAogCQkJCUY0Mzc3RDU1MjU1MUM5QzYwMDgw
QUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmggKi8sCisJCQkJMUNFOEQxMkIyNjE4NjE2NDAw
RkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuY3BwICovLAorCQkJCTFDRThEMTJDMjYxODYx
NjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmggKi8sCiAJCQkJMEZFNUZCQ0UxQzNE
RDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVjb3JkZXIuY3BwICovLAogCQkJCTBGRTVGQkNG
MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCiAJCQkJMEZFNUZC
RDAxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwICovLApAQCAtMzIx
NDEsNiArMzIxNDYsNyBAQAogCQkJCUY0RDQwQkM5MjU1NDYzQkYwMDcyMTM0OSAvKiBEaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3
QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDM3N0Q1NzI1
NTFDOUM2MDA4MEFCRkUgLyogRGlzcGxheUxpc3RJdGVtVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFOEQxMkUyNjE4NjFDNDAwRkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTVGQkQ3MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJl
Y29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0EgLyog
RGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQw
NTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCAxYWMwZjY0MmJhMzNhNzM1MDRiZTkwZTIxOTUzN2Mx
MDIzYWI5NTA0Li4xMDY0Yzk0NDExMTgxNWQ5ZThlMzBkYTNiNjVmNWEzYzk3YTFlMGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1
ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0z
MjIsMTMyICszMjMsMTYgQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRl
bSkKICAgICB9CiB9CiAKLWJvb2wgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjphdEVuZCgpIGNvbnN0
CithdXRvIERpc3BsYXlMaXN0OjpiZWdpbigpIGNvbnN0IC0+IEl0ZXJhdG9yCiB7Ci0gICAgaWYg
KG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpIHx8ICFtX2lzVmFsaWQpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgYXV0byYgaXRlbXMgPSAqaXRlbUJ1ZmZlcigpOwotICAgIGF1dG8gZW5kQ3Vy
c29yID0gaXRlbXMubV93cml0YWJsZUJ1ZmZlci5kYXRhICsgaXRlbXMubV93cml0dGVuTnVtYmVy
T2ZCeXRlczsKLSAgICByZXR1cm4gbV9jdXJzb3IgPT0gZW5kQ3Vyc29yOwotfQotCi1EaXNwbGF5
TGlzdDo6aXRlcmF0b3I6OkV4dGVudFVwZGF0ZVJlc3VsdCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6
OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlwZSBpdGVtVHlwZSkKLXsKLSAg
ICBhdXRvJiBleHRlbnRzID0gbV9kaXNwbGF5TGlzdC5tX2RyYXdpbmdJdGVtRXh0ZW50czsKLSAg
ICBpZiAoZXh0ZW50cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1
bHQ6OlN1Y2Nlc3M7Ci0KLSAgICBpZiAoIWlzRHJhd2luZ0l0ZW0oaXRlbVR5cGUpKSB7Ci0gICAg
ICAgIG1fY3VycmVudEV4dGVudCA9IFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIEV4dGVu
dFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKLSAgICB9Ci0KLSAgICBpZiAobV9kcmF3aW5nSXRlbUlu
ZGV4ID49IGV4dGVudHMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0
OjpGYWlsdXJlOwotCi0gICAgbV9jdXJyZW50RXh0ZW50ID0gZXh0ZW50c1ttX2RyYXdpbmdJdGVt
SW5kZXhdOwotICAgIG1fZHJhd2luZ0l0ZW1JbmRleCsrOwotICAgIHJldHVybiBFeHRlbnRVcGRh
dGVSZXN1bHQ6OlN1Y2Nlc3M7Ci19Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRh
dGVDdXJyZW50SXRlbSgpCi17Ci0gICAgY2xlYXJDdXJyZW50SXRlbSgpOwotCi0gICAgaWYgKGF0
RW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGl0ZW1zID0gKml0ZW1CdWZmZXIo
KTsKLSAgICBhdXRvIGl0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8SXRlbVR5cGU+KG1fY3Vyc29yWzBd
KTsKLQotICAgIGlmICh1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQoaXRlbVR5cGUpID09
IEV4dGVudFVwZGF0ZVJlc3VsdDo6RmFpbHVyZSkgewotICAgICAgICBtX2lzVmFsaWQgPSBmYWxz
ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1f
cmVhZGluZ0NsaWVudDsKLSAgICBhdXRvIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtID0gcGFkZGVk
U2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKLSAgICBpZiAoY2xpZW50KSB7Ci0g
ICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSA8
PSBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9maXhlZEJ1ZmZlckZvckN1cnJl
bnRJdGVtIDogcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhwYWRkZWRTaXpl
T2ZUeXBlQW5kSXRlbSkpOwotICAgICAgICBpZiAoaXNJbmxpbmVJdGVtKGl0ZW1UeXBlKSkgewot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29w
eSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQotICAgICAgICAgICAgICAgIG1faXNWYWxp
ZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gcGFk
ZGVkU2l6ZU9mVHlwZUFuZEl0ZW07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRv
IGRhdGFMZW5ndGggPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9jdXJzb3IpWzFdOwot
ICAgICAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWlu
dDY0X3QpOwotICAgICAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNsaWVudC0+ZGVj
b2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0pOwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFkZWNvZGVkSXRlbUhhbmRsZSkp
Ci0gICAgICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gMiAqIHNpemVvZih1aW50NjRf
dCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsK
LSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
PSBtX2N1cnNvcjsKLSAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNp
emVPZlR5cGVBbmRJdGVtOwotICAgIH0KKyAgICByZXR1cm4geyAqdGhpcyB9OwogfQogCi12b2lk
IERpc3BsYXlMaXN0OjppdGVyYXRvcjo6YWR2YW5jZSgpCithdXRvIERpc3BsYXlMaXN0OjplbmQo
KSBjb25zdCAtPiBJdGVyYXRvcgogewotICAgIGlmIChhdEVuZCgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX2N1cnNvciArPSBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyOwotCi0gICAgaWYg
KG1fY3Vyc29yID09IG1fY3VycmVudEVuZE9mQnVmZmVyICYmIG1fcmVhZE9ubHlCdWZmZXJJbmRl
eCA8IGl0ZW1CdWZmZXIoKS0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpKSB7Ci0gICAgICAgIG1f
cmVhZE9ubHlCdWZmZXJJbmRleCsrOwotICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVu
dEJ1ZmZlcigpOwotICAgIH0KLQotICAgIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Ci19Ci0KLXZvaWQg
RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKCkKLXsKLSAgICBhdXRvIGl0
ZW1zID0gaXRlbUJ1ZmZlcigpOwotICAgIGlmIChpdGVtcyAmJiBpdGVtcy0+bV9yZWFkaW5nQ2xp
ZW50ICYmIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pIHsKLSAgICAgICAgaWYgKExJS0VMWShtX2lz
VmFsaWQpKQotICAgICAgICAgICAgSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
fS5kZXN0cm95KCk7Ci0KLSAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudEJ1ZmZlckZvckl0
ZW0gIT0gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtKSkKLSAgICAgICAgICAgIGZhc3RGcmVl
KG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwotICAgIH0KLQotICAgIG1fY3VycmVudEl0ZW1TaXpl
SW5CdWZmZXIgPSAwOwotICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBudWxscHRyOworICAg
IHJldHVybiB7ICp0aGlzLCBJdGVyYXRvcjo6SW1tZWRpYXRlbHlNb3ZlVG9FbmQ6OlllcyB9Owog
fQogCi12b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92ZVRvRW5kKCkKLXsKLSAgICBpZiAo
YXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkgewotICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5t
X3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAg
ICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvcjsKLSAgICAgICAgbV9yZWFkT25s
eUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICB9Ci19
Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVu
dEJ1ZmZlcigpCi17Ci0gICAgYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKTsKLSAgICBpZiAoIWl0
ZW1zKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlCdWZmZXJz
ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICBpZiAobV9yZWFkT25seUJ1
ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAgICAgYXV0byYgbmV4
dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5tX3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5QnVmZmVy
SW5kZXhdOwotICAgICAgICBtX2N1cnNvciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsKLSAgICAg
ICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5kbGUuY2Fw
YWNpdHk7Ci0gICAgfSBlbHNlIGlmIChtX3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVtYmVyT2ZS
ZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAgICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0YWJsZUJ1
ZmZlci5kYXRhOwotICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgaXRl
bXMtPm1fd3JpdHRlbk51bWJlck9mQnl0ZXM7Ci0gICAgfQotfQotCi0KIH0gLy8gbmFtZXNwYWNl
IERpc3BsYXlMaXN0CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCmluZGV4IDgxMmJhYjgzZTk1Nzc4ZjBjNmZjNjQwZDJhMzI2YmNjYTJlZjIwNTkuLjE1
MDRmOGJmM2FiNDU0MDY3MGY1ZDUyNjEyYzQxOTM4Y2NmN2I3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTk0LDc1ICs5NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCB0cmFja3NEcmF3aW5nSXRl
bUV4dGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrc0RyYXdpbmdJdGVtRXh0ZW50czsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKGJvb2wp
OwogCi0gICAgY2xhc3MgaXRlcmF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBjbGFz
cyBJbW1lZGlhdGVseU1vdmVUb0VuZCB7IE5vLCBZZXMgfTsKLSAgICAgICAgaXRlcmF0b3IoY29u
c3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbW1lZGlhdGVseU1vdmVUb0VuZCBpbW1lZGlh
dGVseU1vdmVUb0VuZCA9IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpObykKLSAgICAgICAgICAgIDog
bV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGlt
bWVkaWF0ZWx5TW92ZVRvRW5kID09IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMpCi0gICAgICAg
ICAgICAgICAgbW92ZVRvRW5kKCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgICAgICAgICAgICAgIHVw
ZGF0ZUN1cnJlbnRJdGVtKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB+
aXRlcmF0b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBjbGVhckN1cnJlbnRJdGVtKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVy
KSB7IHJldHVybiAmbV9kaXNwbGF5TGlzdCA9PSAmb3RoZXIubV9kaXNwbGF5TGlzdCAmJiBtX2N1
cnNvciA9PSBvdGhlci5tX2N1cnNvcjsgfQotICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
aXRlcmF0b3ImIG90aGVyKSB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQotICAgICAgICB2
b2lkIG9wZXJhdG9yKysoKSB7IGFkdmFuY2UoKTsgfQotCi0gICAgICAgIHN0cnVjdCBWYWx1ZSB7
Ci0gICAgICAgICAgICBPcHRpb25hbDxJdGVtSGFuZGxlPiBpdGVtOwotICAgICAgICAgICAgT3B0
aW9uYWw8RmxvYXRSZWN0PiBleHRlbnQ7Ci0gICAgICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1
ZmZlciB7IDAgfTsKLSAgICAgICAgfTsKLQotICAgICAgICBWYWx1ZSBvcGVyYXRvciooKSBjb25z
dAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIG1faXNW
YWxpZCA/IG1ha2VPcHRpb25hbChJdGVtSGFuZGxlIHsgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSB9
KSA6IFdURjo6bnVsbG9wdCwKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRFeHRlbnQsCi0gICAg
ICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciwKLSAgICAgICAgICAgIH07Ci0g
ICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPSAyNTY7Ci0KLSAgICAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdmVUb0VuZCgpOwotICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyQ3VycmVudEl0ZW0oKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVDdXJyZW50SXRlbSgpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkdmFuY2Uo
KTsKLQotICAgICAgICBlbnVtIGNsYXNzIEV4dGVudFVwZGF0ZVJlc3VsdCA6IGJvb2wgeyBGYWls
dXJlLCBTdWNjZXNzIH07Ci0gICAgICAgIEV4dGVudFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50
RHJhd2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUpOwotCi0gICAgICAgIGJvb2wgYXRFbmQoKSBjb25z
dDsKLQotICAgICAgICBJdGVtQnVmZmVyKiBpdGVtQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9k
aXNwbGF5TGlzdC5pdGVtQnVmZmVySWZFeGlzdHMoKTsgfQotCi0gICAgICAgIGNvbnN0IERpc3Bs
YXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwotICAgICAgICB1aW50OF90KiBtX2N1cnNvciB7IG51bGxw
dHIgfTsKLSAgICAgICAgc2l6ZV90IG1fcmVhZE9ubHlCdWZmZXJJbmRleCB7IDAgfTsKLSAgICAg
ICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRleCB7IDAgfTsKLSAgICAgICAgdWludDhfdCogbV9j
dXJyZW50RW5kT2ZCdWZmZXIgeyBudWxscHRyIH07Ci0KLSAgICAgICAgdWludDhfdCBtX2ZpeGVk
QnVmZmVyRm9yQ3VycmVudEl0ZW1bc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbV0geyAw
IH07Ci0gICAgICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0geyBudWxscHRyIH07
Ci0gICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbV9jdXJyZW50RXh0ZW50OwotICAgICAgICBz
aXplX3QgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKLSAgICAgICAgYm9vbCBtX2lz
VmFsaWQgeyB0cnVlIH07Ci0gICAgfTsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyBy
ZXR1cm4geyAqdGhpcyB9OyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4geyAq
dGhpcywgaXRlcmF0b3I6OkltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMgfTsgfQorICAgIGNsYXNz
IEl0ZXJhdG9yOworCisgICAgSXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKKyAgICBJdGVyYXRvciBl
bmQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBJdGVtQnVmZmVyKiBpdGVtQnVmZmVySWZFeGlz
dHMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QyOGJmYmM1ZjcyNTg5MjRhYWNkM2Rl
YjQyZDhjNjA4MGUwNjNjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcApAQCAtMCww
ICsxLDE1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZXJhdG9yLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2Jvb2wgRGlz
cGxheUxpc3Q6Okl0ZXJhdG9yOjphdEVuZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fZGlzcGxheUxp
c3QuaXNFbXB0eSgpIHx8ICFtX2lzVmFsaWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
YXV0byYgaXRlbXMgPSAqaXRlbUJ1ZmZlcigpOworICAgIGF1dG8gZW5kQ3Vyc29yID0gaXRlbXMu
bV93cml0YWJsZUJ1ZmZlci5kYXRhICsgaXRlbXMubV93cml0dGVuTnVtYmVyT2ZCeXRlczsKKyAg
ICByZXR1cm4gbV9jdXJzb3IgPT0gZW5kQ3Vyc29yOworfQorCitEaXNwbGF5TGlzdDo6SXRlcmF0
b3I6OkV4dGVudFVwZGF0ZVJlc3VsdCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OnVwZGF0ZUN1cnJl
bnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlwZSBpdGVtVHlwZSkKK3sKKyAgICBhdXRvJiBleHRl
bnRzID0gbV9kaXNwbGF5TGlzdC5tX2RyYXdpbmdJdGVtRXh0ZW50czsKKyAgICBpZiAoZXh0ZW50
cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7
CisKKyAgICBpZiAoIWlzRHJhd2luZ0l0ZW0oaXRlbVR5cGUpKSB7CisgICAgICAgIG1fY3VycmVu
dEV4dGVudCA9IFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIEV4dGVudFVwZGF0ZVJlc3Vs
dDo6U3VjY2VzczsKKyAgICB9CisKKyAgICBpZiAobV9kcmF3aW5nSXRlbUluZGV4ID49IGV4dGVu
dHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlOwor
CisgICAgbV9jdXJyZW50RXh0ZW50ID0gZXh0ZW50c1ttX2RyYXdpbmdJdGVtSW5kZXhdOworICAg
IG1fZHJhd2luZ0l0ZW1JbmRleCsrOworICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1
Y2Nlc3M7Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRl
bSgpCit7CisgICAgY2xlYXJDdXJyZW50SXRlbSgpOworCisgICAgaWYgKGF0RW5kKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8mIGl0ZW1zID0gKml0ZW1CdWZmZXIoKTsKKyAgICBhdXRv
IGl0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8SXRlbVR5cGU+KG1fY3Vyc29yWzBdKTsKKworICAgIGlm
ICh1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQoaXRlbVR5cGUpID09IEV4dGVudFVwZGF0
ZVJlc3VsdDo6RmFpbHVyZSkgeworICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVu
dDsKKyAgICBhdXRvIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFu
ZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKKyAgICBpZiAoY2xpZW50KSB7CisgICAgICAgIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSA8PSBzaXplT2ZGaXhl
ZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtIDogcmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhwYWRkZWRTaXplT2ZUeXBlQW5kSXRl
bSkpOworICAgICAgICBpZiAoaXNJbmxpbmVJdGVtKGl0ZW1UeXBlKSkgeworICAgICAgICAgICAg
aWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVu
dEJ1ZmZlckZvckl0ZW0gfSkpKQorICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwor
CisgICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gcGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIGRhdGFMZW5ndGgg
PSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9jdXJzb3IpWzFdOworICAgICAgICAgICAg
YXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAg
ICAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNsaWVudC0+ZGVjb2RlSXRlbShzdGFy
dE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwor
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFkZWNvZGVkSXRlbUhhbmRsZSkpCisgICAgICAgICAg
ICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgICAgIG1fY3VycmVudEJ1ZmZlckZv
ckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7CisgICAgICAgICAgICBt
X2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gMiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVw
VG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBtX2N1cnNvcjsK
KyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJ
dGVtOworICAgIH0KK30KKwordm9pZCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OmFkdmFuY2UoKQor
eworICAgIGlmIChhdEVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2N1cnNvciArPSBt
X2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyOworCisgICAgaWYgKG1fY3Vyc29yID09IG1fY3VycmVu
dEVuZE9mQnVmZmVyICYmIG1fcmVhZE9ubHlCdWZmZXJJbmRleCA8IGl0ZW1CdWZmZXIoKS0+bV9y
ZWFkT25seUJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgIG1fcmVhZE9ubHlCdWZmZXJJbmRleCsr
OworICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOworICAgIH0KKwor
ICAgIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9y
OjpjbGVhckN1cnJlbnRJdGVtKCkKK3sKKyAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOwor
ICAgIGlmIChpdGVtcyAmJiBpdGVtcy0+bV9yZWFkaW5nQ2xpZW50ICYmIG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0pIHsKKyAgICAgICAgaWYgKExJS0VMWShtX2lzVmFsaWQpKQorICAgICAgICAgICAg
SXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfS5kZXN0cm95KCk7CisKKyAgICAg
ICAgaWYgKFVOTElLRUxZKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gIT0gbV9maXhlZEJ1ZmZlckZv
ckN1cnJlbnRJdGVtKSkKKyAgICAgICAgICAgIGZhc3RGcmVlKG1fY3VycmVudEJ1ZmZlckZvckl0
ZW0pOworICAgIH0KKworICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAwOworICAgIG1f
Y3VycmVudEJ1ZmZlckZvckl0ZW0gPSBudWxscHRyOworfQorCit2b2lkIERpc3BsYXlMaXN0OjpJ
dGVyYXRvcjo6bW92ZVRvRW5kKCkKK3sKKyAgICBpZiAoYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIo
KSkgeworICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5tX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBp
dGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKKyAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZm
ZXIgPSBtX2N1cnNvcjsKKyAgICAgICAgbV9yZWFkT25seUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1f
cmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKKyAgICB9Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0
ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpCit7CisgICAgYXV0byBp
dGVtcyA9IGl0ZW1CdWZmZXIoKTsKKyAgICBpZiAoIWl0ZW1zKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlCdWZmZXJzID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZm
ZXJzLnNpemUoKTsKKyAgICBpZiAobV9yZWFkT25seUJ1ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFk
T25seUJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0byYgbmV4dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5t
X3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5QnVmZmVySW5kZXhdOworICAgICAgICBtX2N1cnNv
ciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsKKyAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIg
PSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5kbGUuY2FwYWNpdHk7CisgICAgfSBlbHNlIGlmICht
X3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKKyAgICAg
ICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0YWJsZUJ1ZmZlci5kYXRhOworICAgICAgICBtX2N1
cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgaXRlbXMtPm1fd3JpdHRlbk51bWJlck9mQnl0
ZXM7CisgICAgfQorfQorCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMjFlNzdjNWVjMDlhNTIzNGE0M2ZkZmQxNzdkMWQyNGM3Y2M4MGQzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIERpc3BsYXlM
aXN0OjpJdGVyYXRvciB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBJbW1lZGlhdGVseU1vdmVU
b0VuZCB7IE5vLCBZZXMgfTsKKyAgICBJdGVyYXRvcihjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIEltbWVkaWF0ZWx5TW92ZVRvRW5kIGltbWVkaWF0ZWx5TW92ZVRvRW5kID0gSW1tZWRp
YXRlbHlNb3ZlVG9FbmQ6Ok5vKQorICAgICAgICA6IG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3Qp
CisgICAgeworICAgICAgICBpZiAoaW1tZWRpYXRlbHlNb3ZlVG9FbmQgPT0gSW1tZWRpYXRlbHlN
b3ZlVG9FbmQ6OlllcykKKyAgICAgICAgICAgIG1vdmVUb0VuZCgpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIG1vdmVDdXJzb3JUb1N0YXJ0T2ZDdXJyZW50QnVmZmVyKCk7CisgICAgICAg
ICAgICB1cGRhdGVDdXJyZW50SXRlbSgpOworICAgICAgICB9CisgICAgfQorCisgICAgfkl0ZXJh
dG9yKCkKKyAgICB7CisgICAgICAgIGNsZWFyQ3VycmVudEl0ZW0oKTsKKyAgICB9CisKKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgSXRlcmF0b3ImIG90aGVyKSB7IHJldHVybiAmbV9kaXNwbGF5
TGlzdCA9PSAmb3RoZXIubV9kaXNwbGF5TGlzdCAmJiBtX2N1cnNvciA9PSBvdGhlci5tX2N1cnNv
cjsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJdGVyYXRvciYgb3RoZXIpIHsgcmV0dXJu
ICEoKnRoaXMgPT0gb3RoZXIpOyB9CisgICAgdm9pZCBvcGVyYXRvcisrKCkgeyBhZHZhbmNlKCk7
IH0KKworICAgIHN0cnVjdCBWYWx1ZSB7CisgICAgICAgIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IGl0
ZW07CisgICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZXh0ZW50OworICAgICAgICBzaXplX3Qg
aXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKKyAgICB9OworCisgICAgVmFsdWUgb3BlcmF0b3IqKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBtX2lzVmFsaWQgPyBt
YWtlT3B0aW9uYWwoSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSkgOiBXVEY6
Om51bGxvcHQsCisgICAgICAgICAgICBtX2N1cnJlbnRFeHRlbnQsCisgICAgICAgICAgICBtX2N1
cnJlbnRJdGVtU2l6ZUluQnVmZmVyLAorICAgICAgICB9OworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVt
ID0gMjU2OworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3Vy
cmVudEJ1ZmZlcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckN1cnJlbnRJdGVtKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB1cGRhdGVDdXJyZW50SXRlbSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWR2
YW5jZSgpOworCisgICAgZW51bSBjbGFzcyBFeHRlbnRVcGRhdGVSZXN1bHQgOiBib29sIHsgRmFp
bHVyZSwgU3VjY2VzcyB9OworICAgIEV4dGVudFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50RHJh
d2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUpOworCisgICAgYm9vbCBhdEVuZCgpIGNvbnN0OworCisg
ICAgSXRlbUJ1ZmZlciogaXRlbUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Qu
aXRlbUJ1ZmZlcklmRXhpc3RzKCk7IH0KKworICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3Bs
YXlMaXN0OworICAgIHVpbnQ4X3QqIG1fY3Vyc29yIHsgbnVsbHB0ciB9OworICAgIHNpemVfdCBt
X3JlYWRPbmx5QnVmZmVySW5kZXggeyAwIH07CisgICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRl
eCB7IDAgfTsKKyAgICB1aW50OF90KiBtX2N1cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsK
KworICAgIHVpbnQ4X3QgbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtW3NpemVPZkZpeGVkQnVm
ZmVyRm9yQ3VycmVudEl0ZW1dIHsgMCB9OworICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZv
ckl0ZW0geyBudWxscHRyIH07CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRl
bnQ7CisgICAgc2l6ZV90IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgeyAwIH07CisgICAgYm9v
bCBtX2lzVmFsaWQgeyB0cnVlIH07Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZXBsYXllci5jcHAKaW5kZXggMzJmMDdiOTY5NWQyY2NiMTY3MjIwZWMwZjg1MDhlNDNk
ZjM1NjQ2OC4uZTUwMWVmNDM5MWFhZTljZWU1YTkyYjRjNmZmYzVmMDA3N2UwODU1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVt
cy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4
dFN0cmVhbS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDEwNGQ2Nzg5NjM4NzIzMzZhNGYxMGU4YjM4NGJlYmViMTdkYzNlYmEuLmIzZjdkMDFj
Yjc4YmIzMWVjMGRlNDg0MWM1ZDc5ZTk4OGZmYmQzMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0wMyAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgNDogTW92ZSBEaXNw
bGF5TGlzdDo6SXRlcmF0b3IgdG8gaXRzIG93biAuaC8uY3BwIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQxNDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKwogMjAyMS0wNC0wMiAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdLVVJMU2NoZW1lVGFzayByZWRp
cmVjdCBBUEkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggYjk5N2UyYjQwOGEzYmZlMDlkNWIxYWZkYmYxZGRi
ZmE0NTdkOTMxNy4uMjIyZjZmOGUyYzZlOWY3YzViNGQwZWZlNzhlNjRlNmFjNDAwNjY4MiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVz
dHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlz
dFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNwbGF5TGlzdEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5o
PgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425086</attachid>
            <date>2021-04-03 02:11:43 -0700</date>
            <delta_ts>2021-04-11 21:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224146-20210403021142.patch</filename>
            <type>text/plain</type>
            <size>30613</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZmRjYzBkZWVkYmI0
NDFlOGI3MWEyZTliYjQ5OTliY2IwZjQ2Ni4uYmI3NjZhODlmNTQ4NzMwMjM1NTQyM2JkMGI5NzI5
ZTRmZmQyYWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA0LTAzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA0OiBNb3ZlIERpc3BsYXlM
aXN0OjpJdGVyYXRvciB0byBpdHMgb3duIC5oLy5jcHAgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE0NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBhY3R1YWxseSBjaGFu
Z2UgYW55IGxpbmVzIG9mIGNvZGU7IGl0IGp1c3QgbW92ZXMgY29kZSBpbnRvIGRpZmZlcmVudCBm
aWxlcy4KKyAgICAgICAgVGhpcyBwYXRjaCBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCBJ
IHRoaW5rIGl0IGhlbHBzLCBiZWNhdXNlIHRoZSBpdGVyYXRvciBjb250YWlucworICAgICAgICBh
IG5vbi10cml2aWFsIGFtb3VudCBvZiBsb2dpYy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjpiZWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6Oml0ZXJhdG9yOjphdEVuZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50RHJh
d2luZ0l0ZW1FeHRlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6YWR2YW5j
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6
Oml0ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Om1vdmVUb0VuZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpt
b3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9y
Ojp+aXRlcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0
b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Oml0ZW1CdWZm
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjpiZWdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmVuZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OmF0
RW5kIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9y
OjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6OmNsZWFyQ3VycmVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6bW92ZVRvRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVDdXJzb3JUb1N0YXJ0T2ZD
dXJyZW50QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Okl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6On5JdGVyYXRvcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6
Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
OjpJdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRvciogY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6aXRlbUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuY3BwOgorCiAyMDIxLTA0LTAyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFBlbmRpbmdJbWFnZUJpdG1hcCBnZXRzIGNyZWF0ZWQgb24gYSBzdG9wcGVk
IHNjcmlwdCBleGVjdXRpb24gY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFhMzkxODJk
NDA2ZjYzMGE5MWU5NzRhMTgyMDUyM2Y4MTMyOWQ1MzMuLjA2ZTljNzkzZjcyMTY3NWY0ZjI4ZTdh
Y2NjM2NmZWEwYjk3ZWZhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyMCw2ICsxMzIwLDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggOWU0ZmE2MGNjZGRhZmRjMTVkZDY1MTM5MWYxYjIxMTZiMzczNGE0NS4uNzk1NzY2
YzE0MmNjNDA4N2ViNmZkMTIzMDQxMmRlZWNhNzUzOGFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIw
MjUsNiArMjAyNSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dERyYXdpbmdDb250ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVyYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVwbGF5ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJj
ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NTMwMmRiMGQwYzY4MjIzMWY1NjJmZTkwOGM5ZWIxNTExYjNmOTYxLi4yYjMx
NTBiZjczYWRiZmYxNGRhMTUxMDdkMGFjOGRlOGU0NmJhNDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDQsNiArNjQ0LDcg
QEAKIAkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1Jl
Y29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NE
ODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNF
QkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09U
RkZvbnRDb252ZXJzaW9uLmggKi87IH07CisJCTFDRThEMTJFMjYxODYxQzQwMEZDM0FFRiAvKiBE
aXNwbGF5TGlzdEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFD
RkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNE
IC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTFEMDAyNkE0MjM3NEQ2MjQwMENBNkNERiAvKiBK
U1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFEMDAyNkEyMjM3NEQ2MjMwMENBNkNERiAvKiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuaCAqLzsgfTsKIAkJMUQwMDI2QUEyMzc0RjlFQTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50LmggKi87IH07CkBAIC02OTQ2LDYgKzY5NDcsOCBAQAogCQkxQ0RENDVF
NDBCQTlDODQ2MDBGOTAxNDcgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAwRjkwMTQ3IC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNFOEQxMkIyNjE4NjE2NDAwRkMzQUVG
IC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxp
c3RJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRThEMTJDMjYx
ODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BsYXlMaXN0SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFQ0Iz
QTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRl
bWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFN0YXRlbWVu
dEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNC
M0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTgwODQsNiArMTgwODcsOCBAQAogCQkJCTBGRTVGQkNEMUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggKi8sCiAJCQkJRjQzNzdENTYyNTUxQzlDNjAwODBBQkZF
IC8qIERpc3BsYXlMaXN0SXRlbVR5cGUuY3BwICovLAogCQkJCUY0Mzc3RDU1MjU1MUM5QzYwMDgw
QUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmggKi8sCisJCQkJMUNFOEQxMkIyNjE4NjE2NDAw
RkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuY3BwICovLAorCQkJCTFDRThEMTJDMjYxODYx
NjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmggKi8sCiAJCQkJMEZFNUZCQ0UxQzNE
RDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVjb3JkZXIuY3BwICovLAogCQkJCTBGRTVGQkNG
MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCiAJCQkJMEZFNUZC
RDAxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwICovLApAQCAtMzIx
NDEsNiArMzIxNDYsNyBAQAogCQkJCUY0RDQwQkM5MjU1NDYzQkYwMDcyMTM0OSAvKiBEaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3
QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDM3N0Q1NzI1
NTFDOUM2MDA4MEFCRkUgLyogRGlzcGxheUxpc3RJdGVtVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFOEQxMkUyNjE4NjFDNDAwRkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlcmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTVGQkQ3MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJl
Y29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0EgLyog
RGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQw
NTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCAxYWMwZjY0MmJhMzNhNzM1MDRiZTkwZTIxOTUzN2Mx
MDIzYWI5NTA0Li4xMDY0Yzk0NDExMTgxNWQ5ZThlMzBkYTNiNjVmNWEzYzk3YTFlMGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1
ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0z
MjIsMTMyICszMjMsMTYgQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRl
bSkKICAgICB9CiB9CiAKLWJvb2wgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjphdEVuZCgpIGNvbnN0
CithdXRvIERpc3BsYXlMaXN0OjpiZWdpbigpIGNvbnN0IC0+IEl0ZXJhdG9yCiB7Ci0gICAgaWYg
KG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpIHx8ICFtX2lzVmFsaWQpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgYXV0byYgaXRlbXMgPSAqaXRlbUJ1ZmZlcigpOwotICAgIGF1dG8gZW5kQ3Vy
c29yID0gaXRlbXMubV93cml0YWJsZUJ1ZmZlci5kYXRhICsgaXRlbXMubV93cml0dGVuTnVtYmVy
T2ZCeXRlczsKLSAgICByZXR1cm4gbV9jdXJzb3IgPT0gZW5kQ3Vyc29yOwotfQotCi1EaXNwbGF5
TGlzdDo6aXRlcmF0b3I6OkV4dGVudFVwZGF0ZVJlc3VsdCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6
OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlwZSBpdGVtVHlwZSkKLXsKLSAg
ICBhdXRvJiBleHRlbnRzID0gbV9kaXNwbGF5TGlzdC5tX2RyYXdpbmdJdGVtRXh0ZW50czsKLSAg
ICBpZiAoZXh0ZW50cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1
bHQ6OlN1Y2Nlc3M7Ci0KLSAgICBpZiAoIWlzRHJhd2luZ0l0ZW0oaXRlbVR5cGUpKSB7Ci0gICAg
ICAgIG1fY3VycmVudEV4dGVudCA9IFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIEV4dGVu
dFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKLSAgICB9Ci0KLSAgICBpZiAobV9kcmF3aW5nSXRlbUlu
ZGV4ID49IGV4dGVudHMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0
OjpGYWlsdXJlOwotCi0gICAgbV9jdXJyZW50RXh0ZW50ID0gZXh0ZW50c1ttX2RyYXdpbmdJdGVt
SW5kZXhdOwotICAgIG1fZHJhd2luZ0l0ZW1JbmRleCsrOwotICAgIHJldHVybiBFeHRlbnRVcGRh
dGVSZXN1bHQ6OlN1Y2Nlc3M7Ci19Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRh
dGVDdXJyZW50SXRlbSgpCi17Ci0gICAgY2xlYXJDdXJyZW50SXRlbSgpOwotCi0gICAgaWYgKGF0
RW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGl0ZW1zID0gKml0ZW1CdWZmZXIo
KTsKLSAgICBhdXRvIGl0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8SXRlbVR5cGU+KG1fY3Vyc29yWzBd
KTsKLQotICAgIGlmICh1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQoaXRlbVR5cGUpID09
IEV4dGVudFVwZGF0ZVJlc3VsdDo6RmFpbHVyZSkgewotICAgICAgICBtX2lzVmFsaWQgPSBmYWxz
ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1f
cmVhZGluZ0NsaWVudDsKLSAgICBhdXRvIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtID0gcGFkZGVk
U2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKLSAgICBpZiAoY2xpZW50KSB7Ci0g
ICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSA8
PSBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9maXhlZEJ1ZmZlckZvckN1cnJl
bnRJdGVtIDogcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhwYWRkZWRTaXpl
T2ZUeXBlQW5kSXRlbSkpOwotICAgICAgICBpZiAoaXNJbmxpbmVJdGVtKGl0ZW1UeXBlKSkgewot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29w
eSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQotICAgICAgICAgICAgICAgIG1faXNWYWxp
ZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gcGFk
ZGVkU2l6ZU9mVHlwZUFuZEl0ZW07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRv
IGRhdGFMZW5ndGggPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9jdXJzb3IpWzFdOwot
ICAgICAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWlu
dDY0X3QpOwotICAgICAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNsaWVudC0+ZGVj
b2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0pOwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFkZWNvZGVkSXRlbUhhbmRsZSkp
Ci0gICAgICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gMiAqIHNpemVvZih1aW50NjRf
dCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsK
LSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
PSBtX2N1cnNvcjsKLSAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNp
emVPZlR5cGVBbmRJdGVtOwotICAgIH0KKyAgICByZXR1cm4geyAqdGhpcyB9OwogfQogCi12b2lk
IERpc3BsYXlMaXN0OjppdGVyYXRvcjo6YWR2YW5jZSgpCithdXRvIERpc3BsYXlMaXN0OjplbmQo
KSBjb25zdCAtPiBJdGVyYXRvcgogewotICAgIGlmIChhdEVuZCgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX2N1cnNvciArPSBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyOwotCi0gICAgaWYg
KG1fY3Vyc29yID09IG1fY3VycmVudEVuZE9mQnVmZmVyICYmIG1fcmVhZE9ubHlCdWZmZXJJbmRl
eCA8IGl0ZW1CdWZmZXIoKS0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpKSB7Ci0gICAgICAgIG1f
cmVhZE9ubHlCdWZmZXJJbmRleCsrOwotICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVu
dEJ1ZmZlcigpOwotICAgIH0KLQotICAgIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Ci19Ci0KLXZvaWQg
RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKCkKLXsKLSAgICBhdXRvIGl0
ZW1zID0gaXRlbUJ1ZmZlcigpOwotICAgIGlmIChpdGVtcyAmJiBpdGVtcy0+bV9yZWFkaW5nQ2xp
ZW50ICYmIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pIHsKLSAgICAgICAgaWYgKExJS0VMWShtX2lz
VmFsaWQpKQotICAgICAgICAgICAgSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
fS5kZXN0cm95KCk7Ci0KLSAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudEJ1ZmZlckZvckl0
ZW0gIT0gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtKSkKLSAgICAgICAgICAgIGZhc3RGcmVl
KG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwotICAgIH0KLQotICAgIG1fY3VycmVudEl0ZW1TaXpl
SW5CdWZmZXIgPSAwOwotICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBudWxscHRyOworICAg
IHJldHVybiB7ICp0aGlzLCBJdGVyYXRvcjo6SW1tZWRpYXRlbHlNb3ZlVG9FbmQ6OlllcyB9Owog
fQogCi12b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92ZVRvRW5kKCkKLXsKLSAgICBpZiAo
YXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkgewotICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5t
X3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAg
ICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvcjsKLSAgICAgICAgbV9yZWFkT25s
eUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICB9Ci19
Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVu
dEJ1ZmZlcigpCi17Ci0gICAgYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKTsKLSAgICBpZiAoIWl0
ZW1zKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlCdWZmZXJz
ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICBpZiAobV9yZWFkT25seUJ1
ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAgICAgYXV0byYgbmV4
dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5tX3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5QnVmZmVy
SW5kZXhdOwotICAgICAgICBtX2N1cnNvciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsKLSAgICAg
ICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5kbGUuY2Fw
YWNpdHk7Ci0gICAgfSBlbHNlIGlmIChtX3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVtYmVyT2ZS
ZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAgICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0YWJsZUJ1
ZmZlci5kYXRhOwotICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgaXRl
bXMtPm1fd3JpdHRlbk51bWJlck9mQnl0ZXM7Ci0gICAgfQotfQotCi0KIH0gLy8gbmFtZXNwYWNl
IERpc3BsYXlMaXN0CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCmluZGV4IDgxMmJhYjgzZTk1Nzc4ZjBjNmZjNjQwZDJhMzI2YmNjYTJlZjIwNTkuLjU1
NjkzMWM2OGU2ZWY2MjhmYTMzYjMxZjMyN2QxNDc4ODIwYmY4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTk0LDc1ICs5NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCB0cmFja3NEcmF3aW5nSXRl
bUV4dGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrc0RyYXdpbmdJdGVtRXh0ZW50czsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKGJvb2wp
OwogCi0gICAgY2xhc3MgaXRlcmF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBjbGFz
cyBJbW1lZGlhdGVseU1vdmVUb0VuZCB7IE5vLCBZZXMgfTsKLSAgICAgICAgaXRlcmF0b3IoY29u
c3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbW1lZGlhdGVseU1vdmVUb0VuZCBpbW1lZGlh
dGVseU1vdmVUb0VuZCA9IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpObykKLSAgICAgICAgICAgIDog
bV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGlt
bWVkaWF0ZWx5TW92ZVRvRW5kID09IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMpCi0gICAgICAg
ICAgICAgICAgbW92ZVRvRW5kKCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgICAgICAgICAgICAgIHVw
ZGF0ZUN1cnJlbnRJdGVtKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB+
aXRlcmF0b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBjbGVhckN1cnJlbnRJdGVtKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVy
KSB7IHJldHVybiAmbV9kaXNwbGF5TGlzdCA9PSAmb3RoZXIubV9kaXNwbGF5TGlzdCAmJiBtX2N1
cnNvciA9PSBvdGhlci5tX2N1cnNvcjsgfQotICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
aXRlcmF0b3ImIG90aGVyKSB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQotICAgICAgICB2
b2lkIG9wZXJhdG9yKysoKSB7IGFkdmFuY2UoKTsgfQotCi0gICAgICAgIHN0cnVjdCBWYWx1ZSB7
Ci0gICAgICAgICAgICBPcHRpb25hbDxJdGVtSGFuZGxlPiBpdGVtOwotICAgICAgICAgICAgT3B0
aW9uYWw8RmxvYXRSZWN0PiBleHRlbnQ7Ci0gICAgICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1
ZmZlciB7IDAgfTsKLSAgICAgICAgfTsKLQotICAgICAgICBWYWx1ZSBvcGVyYXRvciooKSBjb25z
dAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIG1faXNW
YWxpZCA/IG1ha2VPcHRpb25hbChJdGVtSGFuZGxlIHsgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSB9
KSA6IFdURjo6bnVsbG9wdCwKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRFeHRlbnQsCi0gICAg
ICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciwKLSAgICAgICAgICAgIH07Ci0g
ICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPSAyNTY7Ci0KLSAgICAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdmVUb0VuZCgpOwotICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyQ3VycmVudEl0ZW0oKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVDdXJyZW50SXRlbSgpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkdmFuY2Uo
KTsKLQotICAgICAgICBlbnVtIGNsYXNzIEV4dGVudFVwZGF0ZVJlc3VsdCA6IGJvb2wgeyBGYWls
dXJlLCBTdWNjZXNzIH07Ci0gICAgICAgIEV4dGVudFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50
RHJhd2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUpOwotCi0gICAgICAgIGJvb2wgYXRFbmQoKSBjb25z
dDsKLQotICAgICAgICBJdGVtQnVmZmVyKiBpdGVtQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9k
aXNwbGF5TGlzdC5pdGVtQnVmZmVySWZFeGlzdHMoKTsgfQotCi0gICAgICAgIGNvbnN0IERpc3Bs
YXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwotICAgICAgICB1aW50OF90KiBtX2N1cnNvciB7IG51bGxw
dHIgfTsKLSAgICAgICAgc2l6ZV90IG1fcmVhZE9ubHlCdWZmZXJJbmRleCB7IDAgfTsKLSAgICAg
ICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRleCB7IDAgfTsKLSAgICAgICAgdWludDhfdCogbV9j
dXJyZW50RW5kT2ZCdWZmZXIgeyBudWxscHRyIH07Ci0KLSAgICAgICAgdWludDhfdCBtX2ZpeGVk
QnVmZmVyRm9yQ3VycmVudEl0ZW1bc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbV0geyAw
IH07Ci0gICAgICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0geyBudWxscHRyIH07
Ci0gICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbV9jdXJyZW50RXh0ZW50OwotICAgICAgICBz
aXplX3QgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKLSAgICAgICAgYm9vbCBtX2lz
VmFsaWQgeyB0cnVlIH07Ci0gICAgfTsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyBy
ZXR1cm4geyAqdGhpcyB9OyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4geyAq
dGhpcywgaXRlcmF0b3I6OkltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMgfTsgfQorICAgIGNsYXNz
IEl0ZXJhdG9yOworCisgICAgV0VCQ09SRV9FWFBPUlQgSXRlcmF0b3IgYmVnaW4oKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBJdGVyYXRvciBlbmQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAg
ICBJdGVtQnVmZmVyKiBpdGVtQnVmZmVySWZFeGlzdHMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1z
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2QyOGJmYmM1ZjcyNTg5MjRhYWNkM2RlYjQyZDhjNjA4MGUwNjNjMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZXJhdG9yLmNwcApAQCAtMCwwICsxLDE1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEaXNwbGF5TGlzdEl0ZXJhdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CisKK2Jvb2wgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjphdEVuZCgp
IGNvbnN0Cit7CisgICAgaWYgKG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpIHx8ICFtX2lzVmFsaWQp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byYgaXRlbXMgPSAqaXRlbUJ1ZmZlcigp
OworICAgIGF1dG8gZW5kQ3Vyc29yID0gaXRlbXMubV93cml0YWJsZUJ1ZmZlci5kYXRhICsgaXRl
bXMubV93cml0dGVuTnVtYmVyT2ZCeXRlczsKKyAgICByZXR1cm4gbV9jdXJzb3IgPT0gZW5kQ3Vy
c29yOworfQorCitEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OkV4dGVudFVwZGF0ZVJlc3VsdCBEaXNw
bGF5TGlzdDo6SXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlw
ZSBpdGVtVHlwZSkKK3sKKyAgICBhdXRvJiBleHRlbnRzID0gbV9kaXNwbGF5TGlzdC5tX2RyYXdp
bmdJdGVtRXh0ZW50czsKKyAgICBpZiAoZXh0ZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7CisKKyAgICBpZiAoIWlzRHJhd2luZ0l0ZW0o
aXRlbVR5cGUpKSB7CisgICAgICAgIG1fY3VycmVudEV4dGVudCA9IFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuIEV4dGVudFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKKyAgICB9CisKKyAgICBp
ZiAobV9kcmF3aW5nSXRlbUluZGV4ID49IGV4dGVudHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4g
RXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlOworCisgICAgbV9jdXJyZW50RXh0ZW50ID0gZXh0
ZW50c1ttX2RyYXdpbmdJdGVtSW5kZXhdOworICAgIG1fZHJhd2luZ0l0ZW1JbmRleCsrOworICAg
IHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7Cit9CisKK3ZvaWQgRGlzcGxheUxp
c3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSgpCit7CisgICAgY2xlYXJDdXJyZW50SXRl
bSgpOworCisgICAgaWYgKGF0RW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGl0
ZW1zID0gKml0ZW1CdWZmZXIoKTsKKyAgICBhdXRvIGl0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8SXRl
bVR5cGU+KG1fY3Vyc29yWzBdKTsKKworICAgIGlmICh1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1F
eHRlbnQoaXRlbVR5cGUpID09IEV4dGVudFVwZGF0ZVJlc3VsdDo6RmFpbHVyZSkgeworICAgICAg
ICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8q
IGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICBhdXRvIHBhZGRlZFNpemVPZlR5
cGVBbmRJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKKyAg
ICBpZiAoY2xpZW50KSB7CisgICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbSA8PSBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9m
aXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtIDogcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFz
dE1hbGxvYyhwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSkpOworICAgICAgICBpZiAoaXNJbmxpbmVJ
dGVtKGl0ZW1UeXBlKSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsg
bV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQorICAgICAg
ICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOworCisgICAgICAgICAgICBtX2N1cnJlbnRJdGVt
U2l6ZUluQnVmZmVyID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW07CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBhdXRvIGRhdGFMZW5ndGggPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90
Kj4obV9jdXJzb3IpWzFdOworICAgICAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNv
ciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhh
bmRsZSA9IGNsaWVudC0+ZGVjb2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5
cGUsIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFk
ZWNvZGVkSXRlbUhhbmRsZSkpCisgICAgICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisK
KyAgICAgICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50
OF90PihpdGVtVHlwZSk7CisgICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0g
MiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0
X3QpLCBkYXRhTGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW0gPSBtX2N1cnNvcjsKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJ
bkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0KK30KKwordm9pZCBEaXNw
bGF5TGlzdDo6SXRlcmF0b3I6OmFkdmFuY2UoKQoreworICAgIGlmIChhdEVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2N1cnNvciArPSBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyOwor
CisgICAgaWYgKG1fY3Vyc29yID09IG1fY3VycmVudEVuZE9mQnVmZmVyICYmIG1fcmVhZE9ubHlC
dWZmZXJJbmRleCA8IGl0ZW1CdWZmZXIoKS0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpKSB7Cisg
ICAgICAgIG1fcmVhZE9ubHlCdWZmZXJJbmRleCsrOworICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFy
dE9mQ3VycmVudEJ1ZmZlcigpOworICAgIH0KKworICAgIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Cit9
CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKCkKK3sKKyAg
ICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOworICAgIGlmIChpdGVtcyAmJiBpdGVtcy0+bV9y
ZWFkaW5nQ2xpZW50ICYmIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pIHsKKyAgICAgICAgaWYgKExJ
S0VMWShtX2lzVmFsaWQpKQorICAgICAgICAgICAgSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0gfS5kZXN0cm95KCk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudEJ1
ZmZlckZvckl0ZW0gIT0gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtKSkKKyAgICAgICAgICAg
IGZhc3RGcmVlKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOworICAgIH0KKworICAgIG1fY3VycmVu
dEl0ZW1TaXplSW5CdWZmZXIgPSAwOworICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBudWxs
cHRyOworfQorCit2b2lkIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6bW92ZVRvRW5kKCkKK3sKKyAg
ICBpZiAoYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkgeworICAgICAgICBtX2N1cnNvciA9IGl0
ZW1zLT5tX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRl
czsKKyAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvcjsKKyAgICAgICAgbV9y
ZWFkT25seUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9m
Q3VycmVudEJ1ZmZlcigpCit7CisgICAgYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKTsKKyAgICBp
ZiAoIWl0ZW1zKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlC
dWZmZXJzID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUoKTsKKyAgICBpZiAobV9yZWFk
T25seUJ1ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0
byYgbmV4dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5tX3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5
QnVmZmVySW5kZXhdOworICAgICAgICBtX2N1cnNvciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsK
KyAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5k
bGUuY2FwYWNpdHk7CisgICAgfSBlbHNlIGlmIChtX3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVt
YmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKKyAgICAgICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0
YWJsZUJ1ZmZlci5kYXRhOworICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29y
ICsgaXRlbXMtPm1fd3JpdHRlbk51bWJlck9mQnl0ZXM7CisgICAgfQorfQorCit9Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjFlNzdjNWVjMDlh
NTIzNGE0M2ZkZmQxNzdkMWQyNGM3Y2M4MGQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3Iu
aApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBE
aXNwbGF5TGlzdCB7CisKK2NsYXNzIERpc3BsYXlMaXN0OjpJdGVyYXRvciB7CitwdWJsaWM6Cisg
ICAgZW51bSBjbGFzcyBJbW1lZGlhdGVseU1vdmVUb0VuZCB7IE5vLCBZZXMgfTsKKyAgICBJdGVy
YXRvcihjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltbWVkaWF0ZWx5TW92ZVRvRW5k
IGltbWVkaWF0ZWx5TW92ZVRvRW5kID0gSW1tZWRpYXRlbHlNb3ZlVG9FbmQ6Ok5vKQorICAgICAg
ICA6IG1fZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCisgICAgeworICAgICAgICBpZiAoaW1tZWRp
YXRlbHlNb3ZlVG9FbmQgPT0gSW1tZWRpYXRlbHlNb3ZlVG9FbmQ6OlllcykKKyAgICAgICAgICAg
IG1vdmVUb0VuZCgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1vdmVDdXJzb3JUb1N0
YXJ0T2ZDdXJyZW50QnVmZmVyKCk7CisgICAgICAgICAgICB1cGRhdGVDdXJyZW50SXRlbSgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgfkl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIGNsZWFy
Q3VycmVudEl0ZW0oKTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgSXRlcmF0
b3ImIG90aGVyKSB7IHJldHVybiAmbV9kaXNwbGF5TGlzdCA9PSAmb3RoZXIubV9kaXNwbGF5TGlz
dCAmJiBtX2N1cnNvciA9PSBvdGhlci5tX2N1cnNvcjsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBJdGVyYXRvciYgb3RoZXIpIHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisgICAg
dm9pZCBvcGVyYXRvcisrKCkgeyBhZHZhbmNlKCk7IH0KKworICAgIHN0cnVjdCBWYWx1ZSB7Cisg
ICAgICAgIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IGl0ZW07CisgICAgICAgIE9wdGlvbmFsPEZsb2F0
UmVjdD4gZXh0ZW50OworICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKKyAg
ICB9OworCisgICAgVmFsdWUgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICBtX2lzVmFsaWQgPyBtYWtlT3B0aW9uYWwoSXRlbUhhbmRsZSB7IG1f
Y3VycmVudEJ1ZmZlckZvckl0ZW0gfSkgOiBXVEY6Om51bGxvcHQsCisgICAgICAgICAgICBtX2N1
cnJlbnRFeHRlbnQsCisgICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyLAorICAg
ICAgICB9OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBz
aXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID0gMjU2OworCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckN1
cnJlbnRJdGVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVDdXJyZW50SXRlbSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWR2YW5jZSgpOworCisgICAgZW51bSBjbGFzcyBF
eHRlbnRVcGRhdGVSZXN1bHQgOiBib29sIHsgRmFpbHVyZSwgU3VjY2VzcyB9OworICAgIEV4dGVu
dFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUpOwor
CisgICAgYm9vbCBhdEVuZCgpIGNvbnN0OworCisgICAgSXRlbUJ1ZmZlciogaXRlbUJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUJ1ZmZlcklmRXhpc3RzKCk7IH0KKwor
ICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OworICAgIHVpbnQ4X3QqIG1fY3Vy
c29yIHsgbnVsbHB0ciB9OworICAgIHNpemVfdCBtX3JlYWRPbmx5QnVmZmVySW5kZXggeyAwIH07
CisgICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRleCB7IDAgfTsKKyAgICB1aW50OF90KiBtX2N1
cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsKKworICAgIHVpbnQ4X3QgbV9maXhlZEJ1ZmZl
ckZvckN1cnJlbnRJdGVtW3NpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW1dIHsgMCB9Owor
ICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0geyBudWxscHRyIH07CisgICAgT3B0
aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRlbnQ7CisgICAgc2l6ZV90IG1fY3VycmVudEl0
ZW1TaXplSW5CdWZmZXIgeyAwIH07CisgICAgYm9vbCBtX2lzVmFsaWQgeyB0cnVlIH07Cit9Owor
Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggMzJm
MDdiOTY5NWQyY2NiMTY3MjIwZWMwZjg1MDhlNDNkZjM1NjQ2OC4uZTUwMWVmNDM5MWFhZTljZWU1
YTkyYjRjNmZmYzVmMDA3N2UwODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5o
IgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEwNGQ2Nzg5NjM4NzIzMzZhNGYx
MGU4YjM4NGJlYmViMTdkYzNlYmEuLmIzZjdkMDFjYjc4YmIzMWVjMGRlNDg0MWM1ZDc5ZTk4OGZm
YmQzMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxheUxp
c3Q6Okl0ZXJhdG9yIHBhcnQgNDogTW92ZSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgdG8gaXRzIG93
biAuaC8uY3BwIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cDoKKwogMjAyMS0wNC0wMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIFdLVVJMU2NoZW1lVGFzayByZWRpcmVjdCBBUEkuCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXgg
Yjk5N2UyYjQwOGEzYmZlMDlkNWIxYWZkYmYxZGRiZmE0NTdkOTMxNy4uMjIyZjZmOGUyYzZlOWY3
YzViNGQwZWZlNzhlNjRlNmFjNDAwNjY4MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZXJhdG9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7Cg==
</data>
<flag name="review"
          id="444932"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425802</attachid>
            <date>2021-04-12 16:04:27 -0700</date>
            <delta_ts>2021-04-12 20:47:04 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-224146-20210412160427.patch</filename>
            <type>text/plain</type>
            <size>29401</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE0ZWUxMTFmMGQxYWJm
ODY5ZDU3YzNmMmE3MzI4MTg3NTQyYzg0Zi4uNDRmMDMwODQ3ZTRiZjRmZTI3YzM1ZDNlNzMyYjk4
OGM0MmEzMjc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA0LTEyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA0OiBNb3ZlIERpc3BsYXlM
aXN0OjpJdGVyYXRvciB0byBpdHMgb3duIC5oLy5jcHAgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE0NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgY2hhbmdl
IGFueSBsaW5lcyBvZiBjb2RlOyBpdCBqdXN0IG1vdmVzIGNvZGUgaW50byBkaWZmZXJlbnQgZmls
ZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBidXQgSSB0
aGluayBpdCBoZWxwcywgYmVjYXVzZSB0aGUgaXRlcmF0b3IgY29udGFpbnMKKyAgICAgICAgYSBu
b24tdHJpdmlhbCBhbW91bnQgb2YgbG9naWMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1
c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdDo6YmVnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjplbmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjppdGVyYXRvcjo6YXRFbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudERyYXdp
bmdJdGVtRXh0ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OmFkdmFuY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Ojpp
dGVyYXRvcjo6Y2xlYXJDdXJyZW50SXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlVG9FbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92
ZUN1cnNvclRvU3RhcnRPZkN1cnJlbnRCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6aXRlcmF0b3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6
fml0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdDo6aXRlcmF0b3I6Om9wZXJhdG9yPT0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9y
OjpvcGVyYXRvcisrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6aXRlcmF0b3I6Om9wZXJhdG9yKiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjppdGVtQnVmZmVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdDo6YmVnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0OjplbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjphdEVu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0
ZXJhdG9yOjp1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6
YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0
ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVUb0VuZCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3Vy
cmVudEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlcmF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp+SXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6b3BlcmF0b3I9PSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpv
cGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjpJdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Oml0ZW1CdWZmZXIgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcDoKKwogMjAyMS0wNC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIHdlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQtcG9zaXRp
b24uaHRtbCBpcyBsZWFraW5nIFBhbm5lck5vZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAyYjA4
MDhhZWYyNTIzNDU1ZDUyODMyYTg3NDA0YzcwMjJiMzUyOTljLi5lMTE1MDVjZGQwZjhlNDNiMjg3
M2RiN2ExZDU4MWY4ZGY5ODRmZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjUsNiArMTMy
NSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlz
dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDc1NTRiNzJlYzhjODY1ZGIxMzNhN2ZiNDg5YzIyMWY3OGZk
OWEyZmYuLmJkMjJlNGUzOWQ4NjMxMTA1NDM2MGZjODVmZjA0YmQ0ZjgzYTliZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yMDI2LDYgKzIwMjYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGM4YTlmNTJmMTAxYmNkMTdkMTMzODFlODQw
ZTgyYmMwZmE3Yzk5Mi4uNWY4ZWU1OWI3MWVlNTY0MThhYjE1NjE0ODg4OTYxMzdiYzQyYzc3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjQ0LDYgKzY0NCw3IEBACiAJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFD
Q0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0
MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OworCQkxQ0U4RDEyRTI2
MTg2MUM0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFOEQxMkMyNjE4NjE2NDAwRkMzQUVGIC8q
IERpc3BsYXlMaXN0SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0U4RDEyNzI2MTg1QzBFMDBGQzNBRUYgLyogRGlzcGxheUxpc3RJ
dGVtQnVmZmVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNFOEQxMjUyNjE4NUJEODAwRkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlbUJ1
ZmZlcklkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQ0U4ODY0MTI2MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFODg2
M0YyNjEwNUE1RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAz
MjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGli
ICovOyB9OwpAQCAtNjk1Niw2ICs2OTU3LDggQEAKIAkJMUNFODg2M0UyNjEwNUE1RjAwMEM4MTZD
IC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5NZW1vcnlE
aXNwbGF5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRTg4NjNGMjYx
MDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
TWVtb3J5RGlzcGxheUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFQ0Iz
QTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRThEMTJCMjYxODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlz
dEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0SXRlcmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYg
LyogRGlzcGxheUxpc3RJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0
NDU0MiAvKiBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3Jp
dGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0VDQjNCMDIxRjJCOTg1MDBGNDQ1NDIgLyogV0hM
U0xUeXBlTmFtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xUeXBlTmFtZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTAwLDYgKzE4MTAzLDggQEAKIAkJCQkwRkU1RkJDRDFD
M0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oICovLAogCQkJCUY0Mzc3RDU2MjU1
MUM5QzYwMDgwQUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCAqLywKIAkJCQlGNDM3N0Q1
NTI1NTFDOUM2MDA4MEFCRkUgLyogRGlzcGxheUxpc3RJdGVtVHlwZS5oICovLAorCQkJCTFDRThE
MTJCMjYxODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCAqLywKKwkJCQkx
Q0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5oICovLAogCQkJ
CTBGRTVGQkNFMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCAqLywK
IAkJCQkwRkU1RkJDRjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICov
LAogCQkJCTBGRTVGQkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNw
cCAqLywKQEAgLTMyMTY3LDYgKzMyMTcyLDcgQEAKIAkJCQkxQ0U4RDEyNzI2MTg1QzBFMDBGQzNB
RUYgLyogRGlzcGxheUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY0Mzc3RDU3MjU1MUM5QzYwMDgwQUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1U
eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0U4RDEyRTI2MTg2MUM0MDBGQzNBRUYgLyogRGlz
cGxheUxpc3RJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDcxQzNERDUxRTAw
MDdBMkNBIC8qIERpc3BsYXlMaXN0UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVG
QkQ5MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9y
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGE3ZDFlNzQx
YmQ1ODhkNDE5M2RjNGJkMWI4ZmNlYmRiY2Y2N2I5OGQuLjg2YWIxM2U4NWYyOGU5ZDM5OGIyYTY4
OTM2M2NmYmVlZWEyMGJhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAi
RGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0zMzQsMTI4ICszMzUsMTYgQEAgdm9pZCBEaXNwbGF5
TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICB9CiB9CiAKLWJvb2wgRGlzcGxheUxp
c3Q6Oml0ZXJhdG9yOjphdEVuZCgpIGNvbnN0CithdXRvIERpc3BsYXlMaXN0OjpiZWdpbigpIGNv
bnN0IC0+IEl0ZXJhdG9yCiB7Ci0gICAgaWYgKG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpIHx8ICFt
X2lzVmFsaWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYXV0byYgaXRlbXMgPSAqaXRl
bUJ1ZmZlcigpOwotICAgIGF1dG8gZW5kQ3Vyc29yID0gaXRlbXMubV93cml0YWJsZUJ1ZmZlci5k
YXRhICsgaXRlbXMubV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAgICByZXR1cm4gbV9jdXJzb3Ig
PT0gZW5kQ3Vyc29yOwotfQotCi1EaXNwbGF5TGlzdDo6aXRlcmF0b3I6OkV4dGVudFVwZGF0ZVJl
c3VsdCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVu
dChJdGVtVHlwZSBpdGVtVHlwZSkKLXsKLSAgICBhdXRvJiBleHRlbnRzID0gbV9kaXNwbGF5TGlz
dC5tX2RyYXdpbmdJdGVtRXh0ZW50czsKLSAgICBpZiAoZXh0ZW50cy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7Ci0KLSAgICBpZiAoIWlzRHJh
d2luZ0l0ZW0oaXRlbVR5cGUpKSB7Ci0gICAgICAgIG1fY3VycmVudEV4dGVudCA9IFdURjo6bnVs
bG9wdDsKLSAgICAgICAgcmV0dXJuIEV4dGVudFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKLSAgICB9
Ci0KLSAgICBpZiAobV9kcmF3aW5nSXRlbUluZGV4ID49IGV4dGVudHMuc2l6ZSgpKQotICAgICAg
ICByZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlOwotCi0gICAgbV9jdXJyZW50RXh0
ZW50ID0gZXh0ZW50c1ttX2RyYXdpbmdJdGVtSW5kZXhdOwotICAgIG1fZHJhd2luZ0l0ZW1JbmRl
eCsrOwotICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7Ci19Ci0KLXZvaWQg
RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSgpCi17Ci0gICAgY2xlYXJD
dXJyZW50SXRlbSgpOwotCi0gICAgaWYgKGF0RW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGF1dG8mIGl0ZW1zID0gKml0ZW1CdWZmZXIoKTsKLSAgICBhdXRvIGl0ZW1UeXBlID0gc3RhdGlj
X2Nhc3Q8SXRlbVR5cGU+KG1fY3Vyc29yWzBdKTsKLQotICAgIGlmICh1cGRhdGVDdXJyZW50RHJh
d2luZ0l0ZW1FeHRlbnQoaXRlbVR5cGUpID09IEV4dGVudFVwZGF0ZVJlc3VsdDo6RmFpbHVyZSkg
ewotICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGF1dG8gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRl
bUluQnl0ZXMoaXRlbVR5cGUpOwotICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbSA8PSBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9m
aXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtIDogcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFz
dE1hbGxvYyhwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSkpOwotICAgIGlmIChpc0lubGluZUl0ZW0o
aXRlbVR5cGUpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghSXRlbUhhbmRsZSB7IG1fY3Vyc29y
IH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0pKSkKLSAgICAgICAgICAgIG1f
aXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSBw
YWRkZWRTaXplT2ZUeXBlQW5kSXRlbTsKLSAgICB9IGVsc2UgewotICAgICAgICBhdXRvKiBjbGll
bnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNsaWVu
dCk7Ci0gICAgICAgIGF1dG8gZGF0YUxlbmd0aCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Qq
PihtX2N1cnNvcilbMV07Ci0gICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRhID0gbV9jdXJzb3IgKyAy
ICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNs
aWVudC0+ZGVjb2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW0pOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWRlY29kZWRJdGVtSGFu
ZGxlKSkKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAgIG1fY3VycmVu
dEJ1ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0gICAg
ICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAyICogc2l6ZW9mKHVpbnQ2NF90KSArIHJv
dW5kVXBUb011bHRpcGxlT2YoYWxpZ25vZih1aW50NjRfdCksIGRhdGFMZW5ndGgpOwotICAgIH0K
LX0KLQotdm9pZCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OmFkdmFuY2UoKQotewotICAgIGlmIChh
dEVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnNvciArPSBtX2N1cnJlbnRJdGVt
U2l6ZUluQnVmZmVyOwotCi0gICAgaWYgKG1fY3Vyc29yID09IG1fY3VycmVudEVuZE9mQnVmZmVy
ICYmIG1fcmVhZE9ubHlCdWZmZXJJbmRleCA8IGl0ZW1CdWZmZXIoKS0+bV9yZWFkT25seUJ1ZmZl
cnMuc2l6ZSgpKSB7Ci0gICAgICAgIG1fcmVhZE9ubHlCdWZmZXJJbmRleCsrOwotICAgICAgICBt
b3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgIH0KLQotICAgIHVwZGF0ZUN1
cnJlbnRJdGVtKCk7Ci19Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpjbGVhckN1cnJl
bnRJdGVtKCkKLXsKLSAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOwotICAgIGlmIChpdGVt
cyAmJiBpdGVtcy0+bV9yZWFkaW5nQ2xpZW50ICYmIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pIHsK
LSAgICAgICAgaWYgKExJS0VMWShtX2lzVmFsaWQpKQotICAgICAgICAgICAgSXRlbUhhbmRsZSB7
IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfS5kZXN0cm95KCk7Ci0KLSAgICAgICAgaWYgKFVOTElL
RUxZKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gIT0gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVt
KSkKLSAgICAgICAgICAgIGZhc3RGcmVlKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwotICAgIH0K
LQotICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAwOwotICAgIG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0gPSBudWxscHRyOworICAgIHJldHVybiB7ICp0aGlzIH07CiB9CiAKLXZvaWQgRGlz
cGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlVG9FbmQoKQorYXV0byBEaXNwbGF5TGlzdDo6ZW5kKCkg
Y29uc3QgLT4gSXRlcmF0b3IKIHsKLSAgICBpZiAoYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkg
ewotICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5tX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVt
cy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIg
PSBtX2N1cnNvcjsKLSAgICAgICAgbV9yZWFkT25seUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVh
ZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICB9CisgICAgcmV0dXJuIHsgKnRoaXMsIEl0ZXJhdG9y
OjpJbW1lZGlhdGVseU1vdmVUb0VuZDo6WWVzIH07CiB9CiAKLXZvaWQgRGlzcGxheUxpc3Q6Oml0
ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpCi17Ci0gICAgYXV0byBp
dGVtcyA9IGl0ZW1CdWZmZXIoKTsKLSAgICBpZiAoIWl0ZW1zKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlCdWZmZXJzID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZm
ZXJzLnNpemUoKTsKLSAgICBpZiAobV9yZWFkT25seUJ1ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFk
T25seUJ1ZmZlcnMpIHsKLSAgICAgICAgYXV0byYgbmV4dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5t
X3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5QnVmZmVySW5kZXhdOwotICAgICAgICBtX2N1cnNv
ciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsKLSAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIg
PSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5kbGUuY2FwYWNpdHk7Ci0gICAgfSBlbHNlIGlmICht
X3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAg
ICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0YWJsZUJ1ZmZlci5kYXRhOwotICAgICAgICBtX2N1
cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgaXRlbXMtPm1fd3JpdHRlbk51bWJlck9mQnl0
ZXM7Ci0gICAgfQotfQotCi0KIH0gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CiAKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYgZGlzcGxheUxpc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCmluZGV4IDU0NDU3MTU0YTI1
OTcxNjdlMThhM2IyYjMxNzVjOTNlMzVlZGY0ZTEuLjk4MzQxZGIzM2U2NGQ2N2IzMDgzMzA5MDJh
ZjUwM2YwOTNiZDljZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCkBAIC05Niw3NyArOTYsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgdHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFja3NEcmF3aW5nSXRlbUV4dGVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFRyYWNrc0RyYXdpbmdJdGVtRXh0ZW50cyhib29sKTsKIAotICAgIGNsYXNzIGl0ZXJh
dG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gY2xhc3MgSW1tZWRpYXRlbHlNb3ZlVG9F
bmQgeyBObywgWWVzIH07Ci0gICAgICAgIGl0ZXJhdG9yKGNvbnN0IERpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCwgSW1tZWRpYXRlbHlNb3ZlVG9FbmQgaW1tZWRpYXRlbHlNb3ZlVG9FbmQgPSBJbW1l
ZGlhdGVseU1vdmVUb0VuZDo6Tm8pCi0gICAgICAgICAgICA6IG1fZGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChpbW1lZGlhdGVseU1vdmVUb0VuZCA9
PSBJbW1lZGlhdGVseU1vdmVUb0VuZDo6WWVzKQotICAgICAgICAgICAgICAgIG1vdmVUb0VuZCgp
OwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbW92ZUN1cnNvclRvU3RhcnRP
ZkN1cnJlbnRCdWZmZXIoKTsKLSAgICAgICAgICAgICAgICB1cGRhdGVDdXJyZW50SXRlbSgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgfml0ZXJhdG9yKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgY2xlYXJDdXJyZW50SXRlbSgpOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgeyByZXR1cm4gJm1fZGlzcGxh
eUxpc3QgPT0gJm90aGVyLm1fZGlzcGxheUxpc3QgJiYgbV9jdXJzb3IgPT0gb3RoZXIubV9jdXJz
b3I7IH0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgeyBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KLSAgICAgICAgdm9pZCBvcGVyYXRvcisrKCkgeyBh
ZHZhbmNlKCk7IH0KLQotICAgICAgICBzdHJ1Y3QgVmFsdWUgewotICAgICAgICAgICAgSXRlbUhh
bmRsZSBpdGVtOwotICAgICAgICAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBleHRlbnQ7Ci0gICAg
ICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKLSAgICAgICAgfTsKLQotICAg
ICAgICBPcHRpb25hbDxWYWx1ZT4gb3BlcmF0b3IqKCkgY29uc3QKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKCFtX2lzVmFsaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICAgICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgICAgIEl0ZW1IYW5kbGUgeyBt
X2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0sCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50RXh0ZW50
LAotICAgICAgICAgICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIsCi0gICAgICAgICAg
ICB9fTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3Qgc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA9IDI1NjsKLQotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdmVDdXJzb3JUb1N0YXJ0T2ZDdXJyZW50QnVmZmVyKCk7
Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7Ci0gICAgICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXJDdXJyZW50SXRlbSgpOwotICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YWR2YW5jZSgpOwotCi0gICAgICAgIGVudW0gY2xhc3MgRXh0ZW50VXBkYXRlUmVzdWx0IDogYm9v
bCB7IEZhaWx1cmUsIFN1Y2Nlc3MgfTsKLSAgICAgICAgRXh0ZW50VXBkYXRlUmVzdWx0IHVwZGF0
ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlwZSk7Ci0KLSAgICAgICAgYm9vbCBhdEVu
ZCgpIGNvbnN0OwotCi0gICAgICAgIEl0ZW1CdWZmZXIqIGl0ZW1CdWZmZXIoKSBjb25zdCB7IHJl
dHVybiBtX2Rpc3BsYXlMaXN0Lml0ZW1CdWZmZXJJZkV4aXN0cygpOyB9Ci0KLSAgICAgICAgY29u
c3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgICAgIHVpbnQ4X3QqIG1fY3Vyc29y
IHsgbnVsbHB0ciB9OwotICAgICAgICBzaXplX3QgbV9yZWFkT25seUJ1ZmZlckluZGV4IHsgMCB9
OwotICAgICAgICBzaXplX3QgbV9kcmF3aW5nSXRlbUluZGV4IHsgMCB9OwotICAgICAgICB1aW50
OF90KiBtX2N1cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsKLQotICAgICAgICB1aW50OF90
IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbVtzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJ
dGVtXSB7IDAgfTsKLSAgICAgICAgdWludDhfdCogbV9jdXJyZW50QnVmZmVyRm9ySXRlbSB7IG51
bGxwdHIgfTsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRlbnQ7Ci0g
ICAgICAgIHNpemVfdCBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyIHsgMCB9OwotICAgICAgICBi
b29sIG1faXNWYWxpZCB7IHRydWUgfTsKLSAgICB9OwotCi0gICAgaXRlcmF0b3IgYmVnaW4oKSBj
b25zdCB7IHJldHVybiB7ICp0aGlzIH07IH0KLSAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJl
dHVybiB7ICp0aGlzLCBpdGVyYXRvcjo6SW1tZWRpYXRlbHlNb3ZlVG9FbmQ6OlllcyB9OyB9Cisg
ICAgY2xhc3MgSXRlcmF0b3I7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBJdGVyYXRvciBiZWdpbigp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEl0ZXJhdG9yIGVuZCgpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIEl0ZW1CdWZmZXIqIGl0ZW1CdWZmZXJJZkV4aXN0cygpIGNvbnN0IHsgcmV0dXJu
IG1faXRlbXMuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNzY2NzcyYmVlYWMxNjU2NmQxNGI0NDBkZGIyNjZlYzdkNjY2Y2MwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworYm9vbCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6
OmF0RW5kKCkgY29uc3QKK3sKKyAgICBpZiAobV9kaXNwbGF5TGlzdC5pc0VtcHR5KCkgfHwgIW1f
aXNWYWxpZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvJiBpdGVtcyA9ICppdGVt
QnVmZmVyKCk7CisgICAgYXV0byBlbmRDdXJzb3IgPSBpdGVtcy5tX3dyaXRhYmxlQnVmZmVyLmRh
dGEgKyBpdGVtcy5tX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzOworICAgIHJldHVybiBtX2N1cnNvciA9
PSBlbmRDdXJzb3I7Cit9CisKK2F1dG8gRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJy
ZW50RHJhd2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUgaXRlbVR5cGUpIC0+IEV4dGVudFVwZGF0ZVJl
c3VsdAoreworICAgIGF1dG8mIGV4dGVudHMgPSBtX2Rpc3BsYXlMaXN0Lm1fZHJhd2luZ0l0ZW1F
eHRlbnRzOworICAgIGlmIChleHRlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4dGVu
dFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKKworICAgIGlmICghaXNEcmF3aW5nSXRlbShpdGVtVHlw
ZSkpIHsKKyAgICAgICAgbV9jdXJyZW50RXh0ZW50ID0gV1RGOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0OjpTdWNjZXNzOworICAgIH0KKworICAgIGlmIChtX2Ry
YXdpbmdJdGVtSW5kZXggPj0gZXh0ZW50cy5zaXplKCkpCisgICAgICAgIHJldHVybiBFeHRlbnRV
cGRhdGVSZXN1bHQ6OkZhaWx1cmU7CisKKyAgICBtX2N1cnJlbnRFeHRlbnQgPSBleHRlbnRzW21f
ZHJhd2luZ0l0ZW1JbmRleF07CisgICAgbV9kcmF3aW5nSXRlbUluZGV4Kys7CisgICAgcmV0dXJu
IEV4dGVudFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKK30KKwordm9pZCBEaXNwbGF5TGlzdDo6SXRl
cmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKCkKK3sKKyAgICBjbGVhckN1cnJlbnRJdGVtKCk7CisK
KyAgICBpZiAoYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgaXRlbXMgPSAq
aXRlbUJ1ZmZlcigpOworICAgIGF1dG8gaXRlbVR5cGUgPSBzdGF0aWNfY2FzdDxJdGVtVHlwZT4o
bV9jdXJzb3JbMF0pOworCisgICAgaWYgKHVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChp
dGVtVHlwZSkgPT0gRXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlKSB7CisgICAgICAgIG1faXNW
YWxpZCA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtVHlw
ZSk7CisgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
IDw9IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3Vy
cmVudEl0ZW0gOiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNp
emVPZlR5cGVBbmRJdGVtKSk7CisgICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1f
Y3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7
CisKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVB
bmRJdGVtOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVh
ZGluZ0NsaWVudDsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0
byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsK
KyAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0
X3QpOworICAgICAgICBhdXRvIGRlY29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVt
KHN0YXJ0T2ZEYXRhLCBkYXRhTGVuZ3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRl
bSk7CisgICAgICAgIGlmIChVTkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAg
ICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVsw
XSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRl
bVNpemVJbkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVP
ZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7CisgICAgfQorfQorCit2b2lkIERpc3Bs
YXlMaXN0OjpJdGVyYXRvcjo6YWR2YW5jZSgpCit7CisgICAgaWYgKGF0RW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY3Vyc29yICs9IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXI7CisK
KyAgICBpZiAobV9jdXJzb3IgPT0gbV9jdXJyZW50RW5kT2ZCdWZmZXIgJiYgbV9yZWFkT25seUJ1
ZmZlckluZGV4IDwgaXRlbUJ1ZmZlcigpLT5tX3JlYWRPbmx5QnVmZmVycy5zaXplKCkpIHsKKyAg
ICAgICAgbV9yZWFkT25seUJ1ZmZlckluZGV4Kys7CisgICAgICAgIG1vdmVDdXJzb3JUb1N0YXJ0
T2ZDdXJyZW50QnVmZmVyKCk7CisgICAgfQorCisgICAgdXBkYXRlQ3VycmVudEl0ZW0oKTsKK30K
Kwordm9pZCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OmNsZWFyQ3VycmVudEl0ZW0oKQoreworICAg
IGF1dG8gaXRlbXMgPSBpdGVtQnVmZmVyKCk7CisgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLT5tX3Jl
YWRpbmdDbGllbnQgJiYgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSkgeworICAgICAgICBpZiAoTElL
RUxZKG1faXNWYWxpZCkpCisgICAgICAgICAgICBJdGVtSGFuZGxlIHsgbV9jdXJyZW50QnVmZmVy
Rm9ySXRlbSB9LmRlc3Ryb3koKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkobV9jdXJyZW50QnVm
ZmVyRm9ySXRlbSAhPSBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0pKQorICAgICAgICAgICAg
ZmFzdEZyZWUobV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgfQorCisgICAgbV9jdXJyZW50
SXRlbVNpemVJbkJ1ZmZlciA9IDA7CisgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IG51bGxw
dHI7Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjptb3ZlVG9FbmQoKQoreworICAg
IGlmIChhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpKSB7CisgICAgICAgIG1fY3Vyc29yID0gaXRl
bXMtPm1fd3JpdGFibGVCdWZmZXIuZGF0YSArIGl0ZW1zLT5tX3dyaXR0ZW5OdW1iZXJPZkJ5dGVz
OworICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yOworICAgICAgICBtX3Jl
YWRPbmx5QnVmZmVySW5kZXggPSBpdGVtcy0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpOworICAg
IH0KK30KKwordm9pZCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVDdXJzb3JUb1N0YXJ0T2ZD
dXJyZW50QnVmZmVyKCkKK3sKKyAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOworICAgIGlm
ICghaXRlbXMpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbnVtYmVyT2ZSZWFkT25seUJ1
ZmZlcnMgPSBpdGVtcy0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpOworICAgIGlmIChtX3JlYWRP
bmx5QnVmZmVySW5kZXggPCBudW1iZXJPZlJlYWRPbmx5QnVmZmVycykgeworICAgICAgICBhdXRv
JiBuZXh0QnVmZmVySGFuZGxlID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzW21fcmVhZE9ubHlC
dWZmZXJJbmRleF07CisgICAgICAgIG1fY3Vyc29yID0gbmV4dEJ1ZmZlckhhbmRsZS5kYXRhOwor
ICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgbmV4dEJ1ZmZlckhhbmRs
ZS5jYXBhY2l0eTsKKyAgICB9IGVsc2UgaWYgKG1fcmVhZE9ubHlCdWZmZXJJbmRleCA9PSBudW1i
ZXJPZlJlYWRPbmx5QnVmZmVycykgeworICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5tX3dyaXRh
YmxlQnVmZmVyLmRhdGE7CisgICAgICAgIG1fY3VycmVudEVuZE9mQnVmZmVyID0gbV9jdXJzb3Ig
KyBpdGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKKyAgICB9Cit9CisKK30KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYmY1ZjM2OTU3NThi
MjFhMzY3YzdkOTgzNjBiYzEyZjNhNjBiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5o
CkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlz
cGxheUxpc3QgeworCitjbGFzcyBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgeworcHVibGljOgorICAg
IGVudW0gY2xhc3MgSW1tZWRpYXRlbHlNb3ZlVG9FbmQgeyBObywgWWVzIH07CisgICAgSXRlcmF0
b3IoY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbW1lZGlhdGVseU1vdmVUb0VuZCBp
bW1lZGlhdGVseU1vdmVUb0VuZCA9IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpObykKKyAgICAgICAg
OiBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQorICAgIHsKKyAgICAgICAgaWYgKGltbWVkaWF0
ZWx5TW92ZVRvRW5kID09IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMpCisgICAgICAgICAgICBt
b3ZlVG9FbmQoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFy
dE9mQ3VycmVudEJ1ZmZlcigpOworICAgICAgICAgICAgdXBkYXRlQ3VycmVudEl0ZW0oKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIH5JdGVyYXRvcigpCisgICAgeworICAgICAgICBjbGVhckN1
cnJlbnRJdGVtKCk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEl0ZXJhdG9y
JiBvdGhlcikgeyByZXR1cm4gJm1fZGlzcGxheUxpc3QgPT0gJm90aGVyLm1fZGlzcGxheUxpc3Qg
JiYgbV9jdXJzb3IgPT0gb3RoZXIubV9jdXJzb3I7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgSXRlcmF0b3ImIG90aGVyKSB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorICAgIHZv
aWQgb3BlcmF0b3IrKygpIHsgYWR2YW5jZSgpOyB9CisKKyAgICBzdHJ1Y3QgVmFsdWUgeworICAg
ICAgICBJdGVtSGFuZGxlIGl0ZW07CisgICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZXh0ZW50
OworICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKKyAgICB9OworCisgICAg
T3B0aW9uYWw8VmFsdWU+IG9wZXJhdG9yKigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1f
aXNWYWxpZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVy
biB7eworICAgICAgICAgICAgSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSwK
KyAgICAgICAgICAgIG1fY3VycmVudEV4dGVudCwKKyAgICAgICAgICAgIG1fY3VycmVudEl0ZW1T
aXplSW5CdWZmZXIsCisgICAgICAgIH19OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMg
Y29uc3RleHByIHNpemVfdCBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID0gMjU2Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZl
cigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhckN1cnJlbnRJdGVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVDdXJyZW50SXRlbSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWR2YW5jZSgpOwor
CisgICAgZW51bSBjbGFzcyBFeHRlbnRVcGRhdGVSZXN1bHQgOiBib29sIHsgRmFpbHVyZSwgU3Vj
Y2VzcyB9OworICAgIEV4dGVudFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1F
eHRlbnQoSXRlbVR5cGUpOworCisgICAgYm9vbCBhdEVuZCgpIGNvbnN0OworCisgICAgSXRlbUJ1
ZmZlciogaXRlbUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUJ1ZmZl
cklmRXhpc3RzKCk7IH0KKworICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0Owor
ICAgIHVpbnQ4X3QqIG1fY3Vyc29yIHsgbnVsbHB0ciB9OworICAgIHNpemVfdCBtX3JlYWRPbmx5
QnVmZmVySW5kZXggeyAwIH07CisgICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRleCB7IDAgfTsK
KyAgICB1aW50OF90KiBtX2N1cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsKKworICAgIHVp
bnQ4X3QgbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtW3NpemVPZkZpeGVkQnVmZmVyRm9yQ3Vy
cmVudEl0ZW1dIHsgMCB9OworICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0geyBu
dWxscHRyIH07CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRlbnQ7CisgICAg
c2l6ZV90IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgeyAwIH07CisgICAgYm9vbCBtX2lzVmFs
aWQgeyB0cnVlIH07Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBs
YXllci5jcHAKaW5kZXggNzlkNTlhYjk2YWM0ZTllMzE0NDMzOTVkZGZkOTE1MTNmZWI4ZDYyYS4u
MTA3ZjIwZWM0ZjFjNDEyZjgwMWU4MjBjMDRiMDcyOGYyNDg4M2FhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkRpc3BsYXlMaXN0UmVwbGF5ZXIuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIK
KyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBjMDQwMTAxMjJiNjZiYTRiNjMxNTQwZDExMmI1YjQ4NGY4MTdkYzJiLi4xNTdhNzJlMWFiZDcw
ZDE3YWE2YWE5MzAzNjU5ZWExN2ZmNTI4OTQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMTIgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nl
c3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDQ6IE1vdmUgRGlzcGxheUxp
c3Q6Okl0ZXJhdG9yIHRvIGl0cyBvd24gLmgvLmNwcCBmaWxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorCiAyMDIxLTA0LTExICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3
NTgwMS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcAppbmRleCAwZDUwODdlMTY0NmI4M2JmYzAwMjg0YzBkNWUwNjI2OTAx
YzVlZTVjLi40MTA3N2NlOTk1OTM5MzBmYjFkMGI5YzBmY2ZjMTVhZWZmZTNjM2YwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVz
dHMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNwbGF5TGlzdEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW5NZW1vcnlEaXNwbGF5TGlzdC5oPgogCg==
</data>
<flag name="commit-queue"
          id="445893"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425828</attachid>
            <date>2021-04-12 20:48:09 -0700</date>
            <delta_ts>2021-04-13 19:58:00 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-224146-20210412204808.patch</filename>
            <type>text/plain</type>
            <size>29963</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE0ZWUxMTFmMGQxYWJm
ODY5ZDU3YzNmMmE3MzI4MTg3NTQyYzg0Zi4uNDRmMDMwODQ3ZTRiZjRmZTI3YzM1ZDNlNzMyYjk4
OGM0MmEzMjc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA0LTEyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA0OiBNb3ZlIERpc3BsYXlM
aXN0OjpJdGVyYXRvciB0byBpdHMgb3duIC5oLy5jcHAgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE0NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgY2hhbmdl
IGFueSBsaW5lcyBvZiBjb2RlOyBpdCBqdXN0IG1vdmVzIGNvZGUgaW50byBkaWZmZXJlbnQgZmls
ZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBidXQgSSB0
aGluayBpdCBoZWxwcywgYmVjYXVzZSB0aGUgaXRlcmF0b3IgY29udGFpbnMKKyAgICAgICAgYSBu
b24tdHJpdmlhbCBhbW91bnQgb2YgbG9naWMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1
c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdDo6YmVnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjplbmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjppdGVyYXRvcjo6YXRFbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudERyYXdp
bmdJdGVtRXh0ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OmFkdmFuY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Ojpp
dGVyYXRvcjo6Y2xlYXJDdXJyZW50SXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlVG9FbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92
ZUN1cnNvclRvU3RhcnRPZkN1cnJlbnRCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6aXRlcmF0b3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6
fml0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdDo6aXRlcmF0b3I6Om9wZXJhdG9yPT0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9y
OjpvcGVyYXRvcisrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6aXRlcmF0b3I6Om9wZXJhdG9yKiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjppdGVtQnVmZmVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdDo6YmVnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0OjplbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjphdEVu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0
ZXJhdG9yOjp1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1FeHRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6
YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0
ZXJhdG9yOjpjbGVhckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVUb0VuZCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3Vy
cmVudEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlcmF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp+SXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpJdGVyYXRvcjo6b3BlcmF0b3I9PSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpv
cGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6
SXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjpJdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Oml0ZW1CdWZmZXIgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcDoKKwogMjAyMS0wNC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIHdlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQtcG9zaXRp
b24uaHRtbCBpcyBsZWFraW5nIFBhbm5lck5vZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAyYjA4
MDhhZWYyNTIzNDU1ZDUyODMyYTg3NDA0YzcwMjJiMzUyOTljLi5lMTE1MDVjZGQwZjhlNDNiMjg3
M2RiN2ExZDU4MWY4ZGY5ODRmZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjUsNiArMTMy
NSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlz
dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDc1NTRiNzJlYzhjODY1ZGIxMzNhN2ZiNDg5YzIyMWY3OGZk
OWEyZmYuLmJkMjJlNGUzOWQ4NjMxMTA1NDM2MGZjODVmZjA0YmQ0ZjgzYTliZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yMDI2LDYgKzIwMjYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGM4YTlmNTJmMTAxYmNkMTdkMTMzODFlODQw
ZTgyYmMwZmE3Yzk5Mi4uNWY4ZWU1OWI3MWVlNTY0MThhYjE1NjE0ODg4OTYxMzdiYzQyYzc3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjQ0LDYgKzY0NCw3IEBACiAJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFD
Q0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0
MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OworCQkxQ0U4RDEyRTI2
MTg2MUM0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFOEQxMkMyNjE4NjE2NDAwRkMzQUVGIC8q
IERpc3BsYXlMaXN0SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0U4RDEyNzI2MTg1QzBFMDBGQzNBRUYgLyogRGlzcGxheUxpc3RJ
dGVtQnVmZmVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNFOEQxMjUyNjE4NUJEODAwRkMzQUVGIC8qIERpc3BsYXlMaXN0SXRlbUJ1
ZmZlcklkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQ0U4ODY0MTI2MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFODg2
M0YyNjEwNUE1RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAz
MjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGli
ICovOyB9OwpAQCAtNjk1Niw2ICs2OTU3LDggQEAKIAkJMUNFODg2M0UyNjEwNUE1RjAwMEM4MTZD
IC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5NZW1vcnlE
aXNwbGF5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRTg4NjNGMjYx
MDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
TWVtb3J5RGlzcGxheUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFQ0Iz
QTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRThEMTJCMjYxODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlz
dEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaXN0SXRlcmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYg
LyogRGlzcGxheUxpc3RJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0
NDU0MiAvKiBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3Jp
dGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0VDQjNCMDIxRjJCOTg1MDBGNDQ1NDIgLyogV0hM
U0xUeXBlTmFtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xUeXBlTmFtZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTAwLDYgKzE4MTAzLDggQEAKIAkJCQkwRkU1RkJDRDFD
M0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5oICovLAogCQkJCUY0Mzc3RDU2MjU1
MUM5QzYwMDgwQUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCAqLywKIAkJCQlGNDM3N0Q1
NTI1NTFDOUM2MDA4MEFCRkUgLyogRGlzcGxheUxpc3RJdGVtVHlwZS5oICovLAorCQkJCTFDRThE
MTJCMjYxODYxNjQwMEZDM0FFRiAvKiBEaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCAqLywKKwkJCQkx
Q0U4RDEyQzI2MTg2MTY0MDBGQzNBRUYgLyogRGlzcGxheUxpc3RJdGVyYXRvci5oICovLAogCQkJ
CTBGRTVGQkNFMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCAqLywK
IAkJCQkwRkU1RkJDRjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICov
LAogCQkJCTBGRTVGQkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNw
cCAqLywKQEAgLTMyMTY3LDYgKzMyMTcyLDcgQEAKIAkJCQkxQ0U4RDEyNzI2MTg1QzBFMDBGQzNB
RUYgLyogRGlzcGxheUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY0Mzc3RDU3MjU1MUM5QzYwMDgwQUJGRSAvKiBEaXNwbGF5TGlzdEl0ZW1U
eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0U4RDEyRTI2MTg2MUM0MDBGQzNBRUYgLyogRGlz
cGxheUxpc3RJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDcxQzNERDUxRTAw
MDdBMkNBIC8qIERpc3BsYXlMaXN0UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVG
QkQ5MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9y
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGE3ZDFlNzQx
YmQ1ODhkNDE5M2RjNGJkMWI4ZmNlYmRiY2Y2N2I5OGQuLjg2YWIxM2U4NWYyOGU5ZDM5OGIyYTY4
OTM2M2NmYmVlZWEyMGJhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAi
RGlzcGxheUxpc3RJdGVtcy5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0zMzQsMTI4ICszMzUsMTYgQEAgdm9pZCBEaXNwbGF5
TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICB9CiB9CiAKLWJvb2wgRGlzcGxheUxp
c3Q6Oml0ZXJhdG9yOjphdEVuZCgpIGNvbnN0CithdXRvIERpc3BsYXlMaXN0OjpiZWdpbigpIGNv
bnN0IC0+IEl0ZXJhdG9yCiB7Ci0gICAgaWYgKG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpIHx8ICFt
X2lzVmFsaWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYXV0byYgaXRlbXMgPSAqaXRl
bUJ1ZmZlcigpOwotICAgIGF1dG8gZW5kQ3Vyc29yID0gaXRlbXMubV93cml0YWJsZUJ1ZmZlci5k
YXRhICsgaXRlbXMubV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAgICByZXR1cm4gbV9jdXJzb3Ig
PT0gZW5kQ3Vyc29yOwotfQotCi1EaXNwbGF5TGlzdDo6aXRlcmF0b3I6OkV4dGVudFVwZGF0ZVJl
c3VsdCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVu
dChJdGVtVHlwZSBpdGVtVHlwZSkKLXsKLSAgICBhdXRvJiBleHRlbnRzID0gbV9kaXNwbGF5TGlz
dC5tX2RyYXdpbmdJdGVtRXh0ZW50czsKLSAgICBpZiAoZXh0ZW50cy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7Ci0KLSAgICBpZiAoIWlzRHJh
d2luZ0l0ZW0oaXRlbVR5cGUpKSB7Ci0gICAgICAgIG1fY3VycmVudEV4dGVudCA9IFdURjo6bnVs
bG9wdDsKLSAgICAgICAgcmV0dXJuIEV4dGVudFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKLSAgICB9
Ci0KLSAgICBpZiAobV9kcmF3aW5nSXRlbUluZGV4ID49IGV4dGVudHMuc2l6ZSgpKQotICAgICAg
ICByZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlOwotCi0gICAgbV9jdXJyZW50RXh0
ZW50ID0gZXh0ZW50c1ttX2RyYXdpbmdJdGVtSW5kZXhdOwotICAgIG1fZHJhd2luZ0l0ZW1JbmRl
eCsrOwotICAgIHJldHVybiBFeHRlbnRVcGRhdGVSZXN1bHQ6OlN1Y2Nlc3M7Ci19Ci0KLXZvaWQg
RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSgpCi17Ci0gICAgY2xlYXJD
dXJyZW50SXRlbSgpOwotCi0gICAgaWYgKGF0RW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGF1dG8mIGl0ZW1zID0gKml0ZW1CdWZmZXIoKTsKLSAgICBhdXRvIGl0ZW1UeXBlID0gc3RhdGlj
X2Nhc3Q8SXRlbVR5cGU+KG1fY3Vyc29yWzBdKTsKLQotICAgIGlmICh1cGRhdGVDdXJyZW50RHJh
d2luZ0l0ZW1FeHRlbnQoaXRlbVR5cGUpID09IEV4dGVudFVwZGF0ZVJlc3VsdDo6RmFpbHVyZSkg
ewotICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGF1dG8gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRl
bUluQnl0ZXMoaXRlbVR5cGUpOwotICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbSA8PSBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9m
aXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtIDogcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFz
dE1hbGxvYyhwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSkpOwotICAgIGlmIChpc0lubGluZUl0ZW0o
aXRlbVR5cGUpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghSXRlbUhhbmRsZSB7IG1fY3Vyc29y
IH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0pKSkKLSAgICAgICAgICAgIG1f
aXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSBw
YWRkZWRTaXplT2ZUeXBlQW5kSXRlbTsKLSAgICB9IGVsc2UgewotICAgICAgICBhdXRvKiBjbGll
bnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNsaWVu
dCk7Ci0gICAgICAgIGF1dG8gZGF0YUxlbmd0aCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Qq
PihtX2N1cnNvcilbMV07Ci0gICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRhID0gbV9jdXJzb3IgKyAy
ICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNs
aWVudC0+ZGVjb2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW0pOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWRlY29kZWRJdGVtSGFu
ZGxlKSkKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAgIG1fY3VycmVu
dEJ1ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0gICAg
ICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAyICogc2l6ZW9mKHVpbnQ2NF90KSArIHJv
dW5kVXBUb011bHRpcGxlT2YoYWxpZ25vZih1aW50NjRfdCksIGRhdGFMZW5ndGgpOwotICAgIH0K
LX0KLQotdm9pZCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OmFkdmFuY2UoKQotewotICAgIGlmIChh
dEVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnNvciArPSBtX2N1cnJlbnRJdGVt
U2l6ZUluQnVmZmVyOwotCi0gICAgaWYgKG1fY3Vyc29yID09IG1fY3VycmVudEVuZE9mQnVmZmVy
ICYmIG1fcmVhZE9ubHlCdWZmZXJJbmRleCA8IGl0ZW1CdWZmZXIoKS0+bV9yZWFkT25seUJ1ZmZl
cnMuc2l6ZSgpKSB7Ci0gICAgICAgIG1fcmVhZE9ubHlCdWZmZXJJbmRleCsrOwotICAgICAgICBt
b3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpOwotICAgIH0KLQotICAgIHVwZGF0ZUN1
cnJlbnRJdGVtKCk7Ci19Ci0KLXZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjpjbGVhckN1cnJl
bnRJdGVtKCkKLXsKLSAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOwotICAgIGlmIChpdGVt
cyAmJiBpdGVtcy0+bV9yZWFkaW5nQ2xpZW50ICYmIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pIHsK
LSAgICAgICAgaWYgKExJS0VMWShtX2lzVmFsaWQpKQotICAgICAgICAgICAgSXRlbUhhbmRsZSB7
IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfS5kZXN0cm95KCk7Ci0KLSAgICAgICAgaWYgKFVOTElL
RUxZKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gIT0gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVt
KSkKLSAgICAgICAgICAgIGZhc3RGcmVlKG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwotICAgIH0K
LQotICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAwOwotICAgIG1fY3VycmVudEJ1ZmZl
ckZvckl0ZW0gPSBudWxscHRyOworICAgIHJldHVybiB7ICp0aGlzIH07CiB9CiAKLXZvaWQgRGlz
cGxheUxpc3Q6Oml0ZXJhdG9yOjptb3ZlVG9FbmQoKQorYXV0byBEaXNwbGF5TGlzdDo6ZW5kKCkg
Y29uc3QgLT4gSXRlcmF0b3IKIHsKLSAgICBpZiAoYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkg
ewotICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5tX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVt
cy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKLSAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIg
PSBtX2N1cnNvcjsKLSAgICAgICAgbV9yZWFkT25seUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVh
ZE9ubHlCdWZmZXJzLnNpemUoKTsKLSAgICB9CisgICAgcmV0dXJuIHsgKnRoaXMsIEl0ZXJhdG9y
OjpJbW1lZGlhdGVseU1vdmVUb0VuZDo6WWVzIH07CiB9CiAKLXZvaWQgRGlzcGxheUxpc3Q6Oml0
ZXJhdG9yOjptb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZlcigpCi17Ci0gICAgYXV0byBp
dGVtcyA9IGl0ZW1CdWZmZXIoKTsKLSAgICBpZiAoIWl0ZW1zKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBhdXRvIG51bWJlck9mUmVhZE9ubHlCdWZmZXJzID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZm
ZXJzLnNpemUoKTsKLSAgICBpZiAobV9yZWFkT25seUJ1ZmZlckluZGV4IDwgbnVtYmVyT2ZSZWFk
T25seUJ1ZmZlcnMpIHsKLSAgICAgICAgYXV0byYgbmV4dEJ1ZmZlckhhbmRsZSA9IGl0ZW1zLT5t
X3JlYWRPbmx5QnVmZmVyc1ttX3JlYWRPbmx5QnVmZmVySW5kZXhdOwotICAgICAgICBtX2N1cnNv
ciA9IG5leHRCdWZmZXJIYW5kbGUuZGF0YTsKLSAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIg
PSBtX2N1cnNvciArIG5leHRCdWZmZXJIYW5kbGUuY2FwYWNpdHk7Ci0gICAgfSBlbHNlIGlmICht
X3JlYWRPbmx5QnVmZmVySW5kZXggPT0gbnVtYmVyT2ZSZWFkT25seUJ1ZmZlcnMpIHsKLSAgICAg
ICAgbV9jdXJzb3IgPSBpdGVtcy0+bV93cml0YWJsZUJ1ZmZlci5kYXRhOwotICAgICAgICBtX2N1
cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgaXRlbXMtPm1fd3JpdHRlbk51bWJlck9mQnl0
ZXM7Ci0gICAgfQotfQotCi0KIH0gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CiAKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYgZGlzcGxheUxpc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCmluZGV4IDU0NDU3MTU0YTI1
OTcxNjdlMThhM2IyYjMxNzVjOTNlMzVlZGY0ZTEuLjk4MzQxZGIzM2U2NGQ2N2IzMDgzMzA5MDJh
ZjUwM2YwOTNiZDljZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCkBAIC05Niw3NyArOTYsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgdHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFja3NEcmF3aW5nSXRlbUV4dGVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFRyYWNrc0RyYXdpbmdJdGVtRXh0ZW50cyhib29sKTsKIAotICAgIGNsYXNzIGl0ZXJh
dG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gY2xhc3MgSW1tZWRpYXRlbHlNb3ZlVG9F
bmQgeyBObywgWWVzIH07Ci0gICAgICAgIGl0ZXJhdG9yKGNvbnN0IERpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCwgSW1tZWRpYXRlbHlNb3ZlVG9FbmQgaW1tZWRpYXRlbHlNb3ZlVG9FbmQgPSBJbW1l
ZGlhdGVseU1vdmVUb0VuZDo6Tm8pCi0gICAgICAgICAgICA6IG1fZGlzcGxheUxpc3QoZGlzcGxh
eUxpc3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChpbW1lZGlhdGVseU1vdmVUb0VuZCA9
PSBJbW1lZGlhdGVseU1vdmVUb0VuZDo6WWVzKQotICAgICAgICAgICAgICAgIG1vdmVUb0VuZCgp
OwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbW92ZUN1cnNvclRvU3RhcnRP
ZkN1cnJlbnRCdWZmZXIoKTsKLSAgICAgICAgICAgICAgICB1cGRhdGVDdXJyZW50SXRlbSgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgfml0ZXJhdG9yKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgY2xlYXJDdXJyZW50SXRlbSgpOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgeyByZXR1cm4gJm1fZGlzcGxh
eUxpc3QgPT0gJm90aGVyLm1fZGlzcGxheUxpc3QgJiYgbV9jdXJzb3IgPT0gb3RoZXIubV9jdXJz
b3I7IH0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgeyBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KLSAgICAgICAgdm9pZCBvcGVyYXRvcisrKCkgeyBh
ZHZhbmNlKCk7IH0KLQotICAgICAgICBzdHJ1Y3QgVmFsdWUgewotICAgICAgICAgICAgSXRlbUhh
bmRsZSBpdGVtOwotICAgICAgICAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBleHRlbnQ7Ci0gICAg
ICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKLSAgICAgICAgfTsKLQotICAg
ICAgICBPcHRpb25hbDxWYWx1ZT4gb3BlcmF0b3IqKCkgY29uc3QKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKCFtX2lzVmFsaWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICAgICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgICAgIEl0ZW1IYW5kbGUgeyBt
X2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0sCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50RXh0ZW50
LAotICAgICAgICAgICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIsCi0gICAgICAgICAg
ICB9fTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3Qgc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA9IDI1NjsKLQotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdmVDdXJzb3JUb1N0YXJ0T2ZDdXJyZW50QnVmZmVyKCk7
Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7Ci0gICAgICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXJDdXJyZW50SXRlbSgpOwotICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUN1cnJlbnRJdGVtKCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YWR2YW5jZSgpOwotCi0gICAgICAgIGVudW0gY2xhc3MgRXh0ZW50VXBkYXRlUmVzdWx0IDogYm9v
bCB7IEZhaWx1cmUsIFN1Y2Nlc3MgfTsKLSAgICAgICAgRXh0ZW50VXBkYXRlUmVzdWx0IHVwZGF0
ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChJdGVtVHlwZSk7Ci0KLSAgICAgICAgYm9vbCBhdEVu
ZCgpIGNvbnN0OwotCi0gICAgICAgIEl0ZW1CdWZmZXIqIGl0ZW1CdWZmZXIoKSBjb25zdCB7IHJl
dHVybiBtX2Rpc3BsYXlMaXN0Lml0ZW1CdWZmZXJJZkV4aXN0cygpOyB9Ci0KLSAgICAgICAgY29u
c3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7Ci0gICAgICAgIHVpbnQ4X3QqIG1fY3Vyc29y
IHsgbnVsbHB0ciB9OwotICAgICAgICBzaXplX3QgbV9yZWFkT25seUJ1ZmZlckluZGV4IHsgMCB9
OwotICAgICAgICBzaXplX3QgbV9kcmF3aW5nSXRlbUluZGV4IHsgMCB9OwotICAgICAgICB1aW50
OF90KiBtX2N1cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsKLQotICAgICAgICB1aW50OF90
IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbVtzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJ
dGVtXSB7IDAgfTsKLSAgICAgICAgdWludDhfdCogbV9jdXJyZW50QnVmZmVyRm9ySXRlbSB7IG51
bGxwdHIgfTsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRlbnQ7Ci0g
ICAgICAgIHNpemVfdCBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyIHsgMCB9OwotICAgICAgICBi
b29sIG1faXNWYWxpZCB7IHRydWUgfTsKLSAgICB9OwotCi0gICAgaXRlcmF0b3IgYmVnaW4oKSBj
b25zdCB7IHJldHVybiB7ICp0aGlzIH07IH0KLSAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJl
dHVybiB7ICp0aGlzLCBpdGVyYXRvcjo6SW1tZWRpYXRlbHlNb3ZlVG9FbmQ6OlllcyB9OyB9Cisg
ICAgY2xhc3MgSXRlcmF0b3I7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBJdGVyYXRvciBiZWdpbigp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEl0ZXJhdG9yIGVuZCgpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIEl0ZW1CdWZmZXIqIGl0ZW1CdWZmZXJJZkV4aXN0cygpIGNvbnN0IHsgcmV0dXJu
IG1faXRlbXMuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZXJhdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNzY2NzcyYmVlYWMxNjU2NmQxNGI0NDBkZGIyNjZlYzdkNjY2Y2MwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworYm9vbCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6
OmF0RW5kKCkgY29uc3QKK3sKKyAgICBpZiAobV9kaXNwbGF5TGlzdC5pc0VtcHR5KCkgfHwgIW1f
aXNWYWxpZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvJiBpdGVtcyA9ICppdGVt
QnVmZmVyKCk7CisgICAgYXV0byBlbmRDdXJzb3IgPSBpdGVtcy5tX3dyaXRhYmxlQnVmZmVyLmRh
dGEgKyBpdGVtcy5tX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzOworICAgIHJldHVybiBtX2N1cnNvciA9
PSBlbmRDdXJzb3I7Cit9CisKK2F1dG8gRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjp1cGRhdGVDdXJy
ZW50RHJhd2luZ0l0ZW1FeHRlbnQoSXRlbVR5cGUgaXRlbVR5cGUpIC0+IEV4dGVudFVwZGF0ZVJl
c3VsdAoreworICAgIGF1dG8mIGV4dGVudHMgPSBtX2Rpc3BsYXlMaXN0Lm1fZHJhd2luZ0l0ZW1F
eHRlbnRzOworICAgIGlmIChleHRlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4dGVu
dFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKKworICAgIGlmICghaXNEcmF3aW5nSXRlbShpdGVtVHlw
ZSkpIHsKKyAgICAgICAgbV9jdXJyZW50RXh0ZW50ID0gV1RGOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4gRXh0ZW50VXBkYXRlUmVzdWx0OjpTdWNjZXNzOworICAgIH0KKworICAgIGlmIChtX2Ry
YXdpbmdJdGVtSW5kZXggPj0gZXh0ZW50cy5zaXplKCkpCisgICAgICAgIHJldHVybiBFeHRlbnRV
cGRhdGVSZXN1bHQ6OkZhaWx1cmU7CisKKyAgICBtX2N1cnJlbnRFeHRlbnQgPSBleHRlbnRzW21f
ZHJhd2luZ0l0ZW1JbmRleF07CisgICAgbV9kcmF3aW5nSXRlbUluZGV4Kys7CisgICAgcmV0dXJu
IEV4dGVudFVwZGF0ZVJlc3VsdDo6U3VjY2VzczsKK30KKwordm9pZCBEaXNwbGF5TGlzdDo6SXRl
cmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKCkKK3sKKyAgICBjbGVhckN1cnJlbnRJdGVtKCk7CisK
KyAgICBpZiAoYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgaXRlbXMgPSAq
aXRlbUJ1ZmZlcigpOworICAgIGF1dG8gaXRlbVR5cGUgPSBzdGF0aWNfY2FzdDxJdGVtVHlwZT4o
bV9jdXJzb3JbMF0pOworCisgICAgaWYgKHVwZGF0ZUN1cnJlbnREcmF3aW5nSXRlbUV4dGVudChp
dGVtVHlwZSkgPT0gRXh0ZW50VXBkYXRlUmVzdWx0OjpGYWlsdXJlKSB7CisgICAgICAgIG1faXNW
YWxpZCA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtVHlw
ZSk7CisgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
IDw9IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3Vy
cmVudEl0ZW0gOiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNp
emVPZlR5cGVBbmRJdGVtKSk7CisgICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1f
Y3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7
CisKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVB
bmRJdGVtOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVh
ZGluZ0NsaWVudDsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0
byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsK
KyAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0
X3QpOworICAgICAgICBhdXRvIGRlY29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVt
KHN0YXJ0T2ZEYXRhLCBkYXRhTGVuZ3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRl
bSk7CisgICAgICAgIGlmIChVTkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAg
ICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVsw
XSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRl
bVNpemVJbkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVP
ZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7CisgICAgfQorfQorCit2b2lkIERpc3Bs
YXlMaXN0OjpJdGVyYXRvcjo6YWR2YW5jZSgpCit7CisgICAgaWYgKGF0RW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY3Vyc29yICs9IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXI7CisK
KyAgICBpZiAobV9jdXJzb3IgPT0gbV9jdXJyZW50RW5kT2ZCdWZmZXIgJiYgbV9yZWFkT25seUJ1
ZmZlckluZGV4IDwgaXRlbUJ1ZmZlcigpLT5tX3JlYWRPbmx5QnVmZmVycy5zaXplKCkpIHsKKyAg
ICAgICAgbV9yZWFkT25seUJ1ZmZlckluZGV4Kys7CisgICAgICAgIG1vdmVDdXJzb3JUb1N0YXJ0
T2ZDdXJyZW50QnVmZmVyKCk7CisgICAgfQorCisgICAgdXBkYXRlQ3VycmVudEl0ZW0oKTsKK30K
Kwordm9pZCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OmNsZWFyQ3VycmVudEl0ZW0oKQoreworICAg
IGF1dG8gaXRlbXMgPSBpdGVtQnVmZmVyKCk7CisgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLT5tX3Jl
YWRpbmdDbGllbnQgJiYgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSkgeworICAgICAgICBpZiAoTElL
RUxZKG1faXNWYWxpZCkpCisgICAgICAgICAgICBJdGVtSGFuZGxlIHsgbV9jdXJyZW50QnVmZmVy
Rm9ySXRlbSB9LmRlc3Ryb3koKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkobV9jdXJyZW50QnVm
ZmVyRm9ySXRlbSAhPSBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0pKQorICAgICAgICAgICAg
ZmFzdEZyZWUobV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgfQorCisgICAgbV9jdXJyZW50
SXRlbVNpemVJbkJ1ZmZlciA9IDA7CisgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IG51bGxw
dHI7Cit9CisKK3ZvaWQgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjptb3ZlVG9FbmQoKQoreworICAg
IGlmIChhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpKSB7CisgICAgICAgIG1fY3Vyc29yID0gaXRl
bXMtPm1fd3JpdGFibGVCdWZmZXIuZGF0YSArIGl0ZW1zLT5tX3dyaXR0ZW5OdW1iZXJPZkJ5dGVz
OworICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yOworICAgICAgICBtX3Jl
YWRPbmx5QnVmZmVySW5kZXggPSBpdGVtcy0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpOworICAg
IH0KK30KKwordm9pZCBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6Om1vdmVDdXJzb3JUb1N0YXJ0T2ZD
dXJyZW50QnVmZmVyKCkKK3sKKyAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOworICAgIGlm
ICghaXRlbXMpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbnVtYmVyT2ZSZWFkT25seUJ1
ZmZlcnMgPSBpdGVtcy0+bV9yZWFkT25seUJ1ZmZlcnMuc2l6ZSgpOworICAgIGlmIChtX3JlYWRP
bmx5QnVmZmVySW5kZXggPCBudW1iZXJPZlJlYWRPbmx5QnVmZmVycykgeworICAgICAgICBhdXRv
JiBuZXh0QnVmZmVySGFuZGxlID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzW21fcmVhZE9ubHlC
dWZmZXJJbmRleF07CisgICAgICAgIG1fY3Vyc29yID0gbmV4dEJ1ZmZlckhhbmRsZS5kYXRhOwor
ICAgICAgICBtX2N1cnJlbnRFbmRPZkJ1ZmZlciA9IG1fY3Vyc29yICsgbmV4dEJ1ZmZlckhhbmRs
ZS5jYXBhY2l0eTsKKyAgICB9IGVsc2UgaWYgKG1fcmVhZE9ubHlCdWZmZXJJbmRleCA9PSBudW1i
ZXJPZlJlYWRPbmx5QnVmZmVycykgeworICAgICAgICBtX2N1cnNvciA9IGl0ZW1zLT5tX3dyaXRh
YmxlQnVmZmVyLmRhdGE7CisgICAgICAgIG1fY3VycmVudEVuZE9mQnVmZmVyID0gbV9jdXJzb3Ig
KyBpdGVtcy0+bV93cml0dGVuTnVtYmVyT2ZCeXRlczsKKyAgICB9Cit9CisKK30KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYmY1ZjM2OTU3NThi
MjFhMzY3YzdkOTgzNjBiYzEyZjNhNjBiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVyYXRvci5o
CkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlz
cGxheUxpc3QgeworCitjbGFzcyBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgeworcHVibGljOgorICAg
IGVudW0gY2xhc3MgSW1tZWRpYXRlbHlNb3ZlVG9FbmQgeyBObywgWWVzIH07CisgICAgSXRlcmF0
b3IoY29uc3QgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbW1lZGlhdGVseU1vdmVUb0VuZCBp
bW1lZGlhdGVseU1vdmVUb0VuZCA9IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpObykKKyAgICAgICAg
OiBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQorICAgIHsKKyAgICAgICAgaWYgKGltbWVkaWF0
ZWx5TW92ZVRvRW5kID09IEltbWVkaWF0ZWx5TW92ZVRvRW5kOjpZZXMpCisgICAgICAgICAgICBt
b3ZlVG9FbmQoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb3ZlQ3Vyc29yVG9TdGFy
dE9mQ3VycmVudEJ1ZmZlcigpOworICAgICAgICAgICAgdXBkYXRlQ3VycmVudEl0ZW0oKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIH5JdGVyYXRvcigpCisgICAgeworICAgICAgICBjbGVhckN1
cnJlbnRJdGVtKCk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEl0ZXJhdG9y
JiBvdGhlcikgeyByZXR1cm4gJm1fZGlzcGxheUxpc3QgPT0gJm90aGVyLm1fZGlzcGxheUxpc3Qg
JiYgbV9jdXJzb3IgPT0gb3RoZXIubV9jdXJzb3I7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgSXRlcmF0b3ImIG90aGVyKSB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorICAgIHZv
aWQgb3BlcmF0b3IrKygpIHsgYWR2YW5jZSgpOyB9CisKKyAgICBzdHJ1Y3QgVmFsdWUgeworICAg
ICAgICBJdGVtSGFuZGxlIGl0ZW07CisgICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZXh0ZW50
OworICAgICAgICBzaXplX3QgaXRlbVNpemVJbkJ1ZmZlciB7IDAgfTsKKyAgICB9OworCisgICAg
T3B0aW9uYWw8VmFsdWU+IG9wZXJhdG9yKigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1f
aXNWYWxpZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVy
biB7eworICAgICAgICAgICAgSXRlbUhhbmRsZSB7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSwK
KyAgICAgICAgICAgIG1fY3VycmVudEV4dGVudCwKKyAgICAgICAgICAgIG1fY3VycmVudEl0ZW1T
aXplSW5CdWZmZXIsCisgICAgICAgIH19OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMg
Y29uc3RleHByIHNpemVfdCBzaXplT2ZGaXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtID0gMjU2Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3ZlQ3Vyc29yVG9TdGFydE9mQ3VycmVudEJ1ZmZl
cigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVRvRW5kKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhckN1cnJlbnRJdGVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVDdXJyZW50SXRlbSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWR2YW5jZSgpOwor
CisgICAgZW51bSBjbGFzcyBFeHRlbnRVcGRhdGVSZXN1bHQgOiBib29sIHsgRmFpbHVyZSwgU3Vj
Y2VzcyB9OworICAgIEV4dGVudFVwZGF0ZVJlc3VsdCB1cGRhdGVDdXJyZW50RHJhd2luZ0l0ZW1F
eHRlbnQoSXRlbVR5cGUpOworCisgICAgYm9vbCBhdEVuZCgpIGNvbnN0OworCisgICAgSXRlbUJ1
ZmZlciogaXRlbUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUJ1ZmZl
cklmRXhpc3RzKCk7IH0KKworICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0Owor
ICAgIHVpbnQ4X3QqIG1fY3Vyc29yIHsgbnVsbHB0ciB9OworICAgIHNpemVfdCBtX3JlYWRPbmx5
QnVmZmVySW5kZXggeyAwIH07CisgICAgc2l6ZV90IG1fZHJhd2luZ0l0ZW1JbmRleCB7IDAgfTsK
KyAgICB1aW50OF90KiBtX2N1cnJlbnRFbmRPZkJ1ZmZlciB7IG51bGxwdHIgfTsKKworICAgIHVp
bnQ4X3QgbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtW3NpemVPZkZpeGVkQnVmZmVyRm9yQ3Vy
cmVudEl0ZW1dIHsgMCB9OworICAgIHVpbnQ4X3QqIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0geyBu
dWxscHRyIH07CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2N1cnJlbnRFeHRlbnQ7CisgICAg
c2l6ZV90IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgeyAwIH07CisgICAgYm9vbCBtX2lzVmFs
aWQgeyB0cnVlIH07Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBs
YXllci5jcHAKaW5kZXggNzlkNTlhYjk2YWM0ZTllMzE0NDMzOTVkZGZkOTE1MTNmZWI4ZDYyYS4u
MTA3ZjIwZWM0ZjFjNDEyZjgwMWU4MjBjMDRiMDcyOGYyNDg4M2FhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkRpc3BsYXlMaXN0UmVwbGF5ZXIuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIK
KyNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcAppbmRleCA5ZGZh
MWM2NmEyY2NjMjY1ODlkMTE0ZWI2ZTMyODJkNWY4NDkyMGY1Li4yNmU2MjUzNzg4ZGRkZmEzYTYw
M2I3MmRhZTFiYmZiNjE2MTgxMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxh
eUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogCisjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVyYXRv
ci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzA0MDEw
MTIyYjY2YmE0YjYzMTU0MGQxMTJiNWI0ODRmODE3ZGMyYi4uMTU3YTcyZTFhYmQ3MGQxN2FhNmFh
OTMwMzY1OWVhMTdmZjUyODk0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA0LTEyICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTaW1w
bGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA0OiBNb3ZlIERpc3BsYXlMaXN0OjpJdGVy
YXRvciB0byBpdHMgb3duIC5oLy5jcHAgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNv
biBIc2llaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5
TGlzdFRlc3RzLmNwcDoKKwogMjAyMS0wNC0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzU4MDEuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAKaW5kZXggMGQ1MDg3ZTE2NDZiODNiZmMwMDI4NGMwZDVlMDYyNjkwMWM1ZWU1Yy4u
NDEwNzdjZTk5NTkzOTMwZmIxZDBiOWMwZmNmYzE1YWVmZmUzYzNmMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3RJdGVyYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>