<?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>238675</bug_id>
          
          <creation_ts>2022-04-01 11:35:47 -0700</creation_ts>
          <short_desc>Hoist the IOSurfacePool out of IOSurface</short_desc>
          <delta_ts>2022-04-01 18:31:21 -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>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1857336</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 11:35:47 -0700</bug_when>
    <thetext>Hoist the IOSurfacePool out of IOSurface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857338</commentid>
    <comment_count>1</comment_count>
      <attachid>456378</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 11:39:13 -0700</bug_when>
    <thetext>Created attachment 456378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857348</commentid>
    <comment_count>2</comment_count>
      <attachid>456385</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 11:53:41 -0700</bug_when>
    <thetext>Created attachment 456385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857410</commentid>
    <comment_count>3</comment_count>
      <attachid>456407</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 15:16:19 -0700</bug_when>
    <thetext>Created attachment 456407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857475</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-01 18:30:14 -0700</bug_when>
    <thetext>Committed r292249 (249147@main): &lt;https://commits.webkit.org/249147@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456407.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857476</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-01 18:31:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/91191170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456378</attachid>
            <date>2022-04-01 11:39:13 -0700</date>
            <delta_ts>2022-04-01 11:58:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238675-20220401113912.patch</filename>
            <type>text/plain</type>
            <size>24685</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYyM2RjNDA4ZWY5MjM0
ZWE2MTY0YTA4MDJlM2EyMzY4ZTk4M2IzMy4uMDk4YmNmODk1NWI4NDdkY2Y4YzVkYzgyZjE0ZTli
YzA4MTNlZjQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA0LTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhvaXN0IHRoZSBJ
T1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgZnV0dXJlIHBhdGNoIHdpbGwgYnJlYWsgdGhlIGFzc3Vt
cHRpb24gdGhhdCB0aGVyZSBpcyBhIHNpbmdsZXRvbiBJT1N1cmZhY2VQb29sIHBlcgorICAgICAg
ICBwcm9jZXNzLCBzbyB3ZSBjYW4ndCBoYXZlIElPU3VyZmFjZTo6Y3JlYXRlKCkgY29uc3VsdCB0
aGUgcG9vbCBpbnRlcm5hbGx5LiBJbnN0ZWFkLAorICAgICAgICBwYXNzIHRoZSBwb29sIHRvIHRo
ZSBjcmVhdGUoKSBmdW5jdGlvbnMsIGFuZCB0byB0aGUgbW92ZVRvUG9vbCgpIGZ1bmN0aW9uLgor
CisgICAgICAgIENhbGxlcnMgaW4gdGhlIHdlYiBwcm9jZXNzIHBhc3MgSU9TdXJmYWNlUG9vbDo6
c2hhcmVkUG9vbCgpOyB0aG9zZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBwYXNzIG51bGxw
dHIgdG8gYXZvaWQgcG9vbCBjcmVhdGlvbiB0aGVyZS4KKworICAgICAgICAqIE1vZHVsZXMvc3lz
dGVtLXByZXZpZXcvQVJLaXRCYWRnZVN5c3RlbUltYWdlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVJLaXRCYWRnZVN5c3RlbUltYWdlOjpkcmF3IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFj
ZVBvb2w6OmFkZFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBjcmVh
dGVGcm9tSW1hZ2VCdWZmZXIoKSB3YXMgdW51c2VkOyByZW1vdmUgaXQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9t
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjptb3ZlVG9Qb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6OklPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKTogRGVsZXRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW11
bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKToKKwogMjAyMi0wMy0zMCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDb250YWluZXIgUXVlcmll
c10gS2VlcCBjb2xvbiBzeW50YXggd2hlbiBzZXJpYWxpemluZyBjb250YWluZXIgY29uZGl0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDVjMTgzMjE0OWEwMmVhNTAyNzE2MWNjZDFhNmI3ODkwNDlkNDVlMWQuLjI4
MTRhYWI1NGE3MzYwNDY3ZGI4ZDU1OTI3ZjUzOWE4NGIzMjgxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMjItMDQtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgSG9pc3QgdGhlIElPU3VyZmFjZVBvb2wgb3V0IG9mIElPU3VyZmFjZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4Njc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmdXR1cmUg
cGF0Y2ggd2lsbCBicmVhayB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZXJlIGlzIGEgc2luZ2xldG9u
IElPU3VyZmFjZVBvb2wgcGVyCisgICAgICAgIHByb2Nlc3MsIHNvIHdlIGNhbid0IGhhdmUgSU9T
dXJmYWNlOjpjcmVhdGUoKSBjb25zdWx0IHRoZSBwb29sIGludGVybmFsbHkuIEluc3RlYWQsCisg
ICAgICAgIHBhc3MgdGhlIHBvb2wgdG8gdGhlIGNyZWF0ZSgpIGZ1bmN0aW9ucywgYW5kIHRvIHRo
ZSBtb3ZlVG9Qb29sKCkgZnVuY3Rpb24uCisKKyAgICAgICAgQ2FsbGVycyBpbiB0aGUgd2ViIHBy
b2Nlc3MgcGFzcyBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCk7IHRob3NlIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIHBhc3MgbnVsbHB0ciB0byBhdm9pZCBwb29sIGNyZWF0aW9uIHRoZXJl
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpjcmVh
dGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NuYXBzaG90UmVj
dEFmdGVyU2NyZWVuVXBkYXRlczpyZWN0SW5WaWV3Q29vcmRpbmF0ZXM6aW50b0ltYWdlT2ZXaWR0
aDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YWtlVmlld1NuYXBzaG90
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisKIDIwMjIt
MDMtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBwZXJzaXN0ZW50IG5vdGlmaWNhdGlvbiBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1hZ2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VTeXN0ZW1J
bWFnZS5tbQppbmRleCBlYWI1MjY1N2ZiYjUyNjIyOGMzMDBjNDU4NTlkYmNmMjE4MTE0YzYxLi4y
Mzg4MjYyMDBlMGUyNjdlY2E4OGFjOGIzMmI4YThiNzY4YTY1NjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VTeXN0ZW1JbWFnZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VT
eXN0ZW1JbWFnZS5tbQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAj
aW1wb3J0ICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW1wb3J0ICJJT1N1cmZhY2UuaCIKKyNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKICNpbXBv
cnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KICNpbXBvcnQgPENvcmVJbWFnZS9Db3Jl
SW1hZ2UuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTkyLDcgKzE5Miw3
IEBAIHZvaWQgQVJLaXRCYWRnZVN5c3RlbUltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpY3NDb250ZXh0LCBjb25zdCBGbG9hdFJlCiAgICAgQ0lJbWFnZSAqdHJhbnNsYXRlZEltYWdl
ID0gW2Nyb3BwZWRJbWFnZSBpbWFnZUJ5QXBwbHlpbmdUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zv
cm1NYWtlVHJhbnNsYXRpb24oLWZsaXBwZWRJbnNldEJhZGdlUmVjdC5vcmlnaW4ueCwgLWZsaXBw
ZWRJbnNldEJhZGdlUmVjdC5vcmlnaW4ueSldOwogCiAgICAgYXV0byBzdXJmYWNlRGltZW5zaW9u
ID0gdXNlU21hbGxCYWRnZSA/IHNtYWxsQmFkZ2VEaW1lbnNpb24gOiBsYXJnZUJhZGdlRGltZW5z
aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhZGdlU3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKHsgc3VyZmFjZURpbWVuc2lvbiwgc3VyZmFjZURpbWVuc2lvbiB9LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gYmFkZ2VTdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoJklPU3VyZmFjZVBvb2w6OnNoYXJl
ZFBvb2woKSwgeyBzdXJmYWNlRGltZW5zaW9uLCBzdXJmYWNlRGltZW5zaW9uIH0sIERlc3RpbmF0
aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICBJT1N1cmZhY2VSZWYgc3VyZmFjZSA9IGJhZGdl
U3VyZmFjZS0+c3VyZmFjZSgpOwogICAgIFtjaUNvbnRleHQgcmVuZGVyOnRyYW5zbGF0ZWRJbWFn
ZSB0b0lPU3VyZmFjZTpzdXJmYWNlIGJvdW5kczpiYWRnZVJlY3QgY29sb3JTcGFjZTpzUkdCQ29s
b3JTcGFjZVJlZigpXTsKICAgICBjZ0ltYWdlID0gdXNlU21hbGxCYWRnZSA/IGJhZGdlU3VyZmFj
ZS0+Y3JlYXRlSW1hZ2UoKSA6IGJhZGdlU3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAK
aW5kZXggMzE0MDc2YTAxYjExZjdmMWQxMWViNDQ3NDhjZWM1ZDYxYzQ5YjJjYi4uZDM2ZmE0YTk5
OTBiYmIwMmMzZDdlMDBlM2M2M2IzNjFhZDY1OWY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKQEAgLTE3MCw3ICsx
NzAsNyBAQCBib29sIElPU3VyZmFjZVBvb2w6OnNob3VsZENhY2hlU3VyZmFjZShjb25zdCBJT1N1
cmZhY2UmIHN1cmZhY2UpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSU9TdXJm
YWNlUG9vbDo6YWRkU3VyZmFjZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQor
dm9pZCBJT1N1cmZhY2VQb29sOjphZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
JiYgc3VyZmFjZSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKCFz
aG91bGRDYWNoZVN1cmZhY2UoKnN1cmZhY2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCmluZGV4IDUyNjM4NmQzNTI2MDBmMTg0
MDFmZTcxZTY1MWRkYWFiMjBlM2Q4ZmYuLmRmMDNjOWQ2MjQyYTJiMjhjYzQ3NGQ4M2NmMGMwZjcx
ZmRhZTRjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0lPU3VyZmFjZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JT1N1cmZhY2VQb29sLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBJT1N1cmZhY2VQb29sJiBzaGFyZWRQb29sKCk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiB0YWtlU3VyZmFjZShJbnRTaXplLCBjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmLCBJT1N1cmZhY2U6OkZvcm1hdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFkZFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7CiAKICAg
ICB2b2lkIGRpc2NhcmRBbGxTdXJmYWNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmNwcAppbmRleCA2ZDkzNjJkZGE4MjM1NzI4ODVmYjY3ZWI5ZmUxYmIxMzY5MjE0MTMy
Li5lMjA2ZDk2MTUxNmUwMGY4NmFlM2Y3ZjMyMTU5NmNiYmE4OGQ4YzhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBIQVZFKElP
U1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaW5jbHVkZSAiSU9T
dXJmYWNlLmgiCisjaW5jbHVkZSAiSU9TdXJmYWNlUG9vbC5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3Jl
R3JhcGhpY3MuaD4KQEAgLTg3LDcgKzg3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUKICAg
ICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5k
U2l6ZSwgcGFyYW1ldGVycy5jb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9y
bWF0KHBhcmFtZXRlcnMucGl4ZWxGb3JtYXQpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZh
Y2U6OmNyZWF0ZSgmSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLCBiYWNrZW5kU2l6ZSwgYmFj
a2VuZFNpemUsIHBhcmFtZXRlcnMuY29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhl
bEZvcm1hdChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlIHZv
bGF0aWxpdHlTCiAKIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpyZWxlYXNlQnVm
ZmVyVG9Qb29sKCkKIHsKLSAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX3N1cmZh
Y2UpKTsKKyAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX3N1cmZhY2UpLCAmSU9T
dXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmVuc3VyZU5hdGl2ZUltYWdlc0hhdmVDb3BpZWRCYWNraW5nU3RvcmUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggZWUxODYzMzQ3MDIxZmFjNGNiMDY1YTJj
ZTk0M2QyNzhiOTRjOWVkYi4uNDA2Y2I5M2RiMzk3N2Y5NDZlMGMyZWU0YmQ0YzQ0YTkyOWY4ZTk2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKKyNpbXBvcnQg
IklPU3VyZmFjZVBvb2wuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBpeGVsQnVm
ZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKQEAgLTU3Myw3ICs1NzQsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygp
CiBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZm
ZXJCYWNraW5nKCkKIHsKICAgICBBU1NFUlQoIWdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCku
aXNFbXB0eSgpKTsKLSAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRl
cm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7Cisg
ICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoJklPU3VyZmFjZVBvb2w6OnNoYXJl
ZFBvb2woKSwgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNw
YWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmIChtX3Jlc291cmNlT3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IGNkNjU4NzA1ZDExZjU2OGMzODExZmMz
OGUyNWRiMzZkZDgzMTBmMDUuLjg2ZTdhOGY0YTliZjE5YTJmMDI4NjBjMTg0NjFiZmE3ODI1MmQz
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRvdzsKLWNsYXNzIEltYWdlQnVmZmVyOwor
Y2xhc3MgSU9TdXJmYWNlUG9vbDsKIGNsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFz
cyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CkBAIC0xMDAsMTkgKzEwMCwxNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHVpbnQzMl90IG1fZmxhZ3M7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUs
IEludFNpemUgY29udGV4dFNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIEZvcm1h
dCA9IEZvcm1hdDo6QkdSQSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJT1N1cmZhY2VQb29sKiwgSW50U2l6ZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKElPU3VyZmFj
ZVBvb2wqLCBJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UmLCBGb3JtYXQgPSBGb3JtYXQ6OkJHUkEpOworCisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFnZShJT1N1cmZh
Y2VQb29sKiwgQ0dJbWFnZVJlZik7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmJiwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TdXJmYWNl
KElPU3VyZmFjZVJlZiwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFn
ZShDR0ltYWdlUmVmKTsKLSAgICAKLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NU
T1JFKQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1h
Z2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPik7Ci0jZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIH5JT1N1cmZhY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBtb3ZlVG9Q
b29sKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYsIElPU3VyZmFjZVBvb2wqKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIG1vdmVUb1Bvb2woc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgfklPU3VyZmFjZSgpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEludFNpemUgbWF4aW11bVNpemUoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRNYXhpbXVtU2l6ZShJbnRTaXplKTsKQEAgLTE3Miw3ICsxNzAs
NiBAQCBwcml2YXRlOgogICAgIElPU3VyZmFjZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXpl
LCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBGb3JtYXQsIGJvb2wmIHN1Y2Nlc3MpOwog
ICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYp
OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhY2VGcm9tUG9v
bChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UmLCBGb3JtYXQpOwogICAgIEludFNpemUgY29udGV4dFNpemUoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHRTaXplOyB9CiAgICAgdm9pZCBzZXRDb250ZXh0U2l6ZShJbnRTaXplKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CmluZGV4IDBhM2Q5ZWUxNTg0NzMxN2M0MDU1YzNmMWEzYWM2YTExMDNhNjQyNjYuLmNjM2NkNDNi
ZmJlN2QwODQwOWI4YmYxYTZiM2E2ODRhZDViYWE5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTMwLDcgKzMwLDYg
QEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJIb3N0V2luZG93Lmgi
CiAjaW1wb3J0ICJJT1N1cmZhY2VQb29sLmgiCi0jaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbXBvcnQgIlBy
b2Nlc3NJZGVudGl0eS5oIgpAQCAtNDQsMjcgKzQzLDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6c3VyZmFj
ZUZyb21Qb29sKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgY29uc3QgRGVzdGlu
YXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCitzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZShJT1N1cmZhY2VQb29sKiBwb29s
LCBJbnRTaXplIHNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwg
Rm9ybWF0IHBpeGVsRm9ybWF0KQogewotICAgIGF1dG8gY2FjaGVkU3VyZmFjZSA9IElPU3VyZmFj
ZVBvb2w6OnNoYXJlZFBvb2woKS50YWtlU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZv
cm1hdCk7Ci0gICAgaWYgKCFjYWNoZWRTdXJmYWNlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIGNhY2hlZFN1cmZhY2UtPnNldENvbnRleHRTaXplKGNvbnRleHRTaXplKTsKLSAgICBy
ZXR1cm4gY2FjaGVkU3VyZmFjZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9T
dXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Um
IGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKLXsKLSAgICByZXR1cm4gSU9TdXJmYWNl
OjpjcmVhdGUoc2l6ZSwgc2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpOworICAgIHJldHVy
biBJT1N1cmZhY2U6OmNyZWF0ZShwb29sLCBzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZv
cm1hdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRl
KEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgY29uc3QgRGVzdGluYXRpb25Db2xv
clNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCitzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZShJT1N1cmZhY2VQb29sKiBwb29sLCBJbnRTaXpl
IHNpemUsIEludFNpemUgY29udGV4dFNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYg
Y29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewotICAgIGlmIChhdXRvIGNhY2hlZFN1
cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0KSkgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNhY2hlZFN1cmZh
Y2U7CisgICAgaWYgKHBvb2wgJiYgKGNhY2hlZFN1cmZhY2UgPSBwb29sLT50YWtlU3VyZmFjZShz
aXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpKSB7CisgICAgICAgIGNhY2hlZFN1cmZhY2Ut
PnNldENvbnRleHRTaXplKGNvbnRleHRTaXplKTsKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKElP
U3VyZmFjZSwgc3RyZWFtIDw8ICJJT1N1cmZhY2U6OmNyZWF0ZSB0b29rIGZyb20gcG9vbDogIiA8
PCAqY2FjaGVkU3VyZmFjZSk7CiAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwogICAgIH0K
KwogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIGF1dG8gc3VyZmFjZSA9IHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9y
U3BhY2UsIHBpeGVsRm9ybWF0LCBzdWNjZXNzKSk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CkBAIC04
Nyw3ICs3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRl
RnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvCiAgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFn
ZShDR0ltYWdlUmVmIGltYWdlKQorc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJmYWNl
OjpjcmVhdGVGcm9tSW1hZ2UoSU9TdXJmYWNlUG9vbCogcG9vbCwgQ0dJbWFnZVJlZiBpbWFnZSkK
IHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTk1LDcgKzg3
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1h
Z2UoQ0dJbWFnZVJlZiBpbWFnZSkKICAgICBzaXplX3Qgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgo
aW1hZ2UpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKTsKIAot
ICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUod2lkdGgsIGhlaWdo
dCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZSB7IENHSW1hZ2VHZXRDb2xvclNwYWNlKGltYWdlKSB9
KTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShwb29sLCBJbnRTaXplKHdp
ZHRoLCBoZWlnaHQpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgeyBDR0ltYWdlR2V0Q29sb3JTcGFj
ZShpbWFnZSkgfSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBhdXRvIHN1cmZhY2VDb250ZXh0ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0
KCk7CkBAIC0xMDQsOSArOTYsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJm
YWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkKICAgICByZXR1cm4gc3VyZmFj
ZTsKIH0KIAotdm9pZCBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4mJiBzdXJmYWNlKQordm9pZCBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woc3RkOjp1bmlxdWVf
cHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlLCBJT1N1cmZhY2VQb29sKiBwb29sKQogewotICAgIElP
U3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5hZGRTdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpOwor
ICAgIGlmIChwb29sKQorICAgICAgICBwb29sLT5hZGRTdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkp
OwogfQogCiBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpvcHRpb25zRm9yQmlwbGFuYXJTdXJmYWNlKElu
dFNpemUgc2l6ZSwgdW5zaWduZWQgcGl4ZWxGb3JtYXQsIHNpemVfdCBmaXJzdFBsYW5lQnl0ZXNQ
ZXJQaXhlbCwgc2l6ZV90IHNlY29uZFBsYW5lQnl0ZXNQZXJQaXhlbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAppbmRleCBlZDRjZWMyYTI0ZDc0NTljYzI2ZDVi
MmFiNDA5ZTE1OWVkYzE3MTAyLi4wYjZkMDY5MjU4MDlmNTg1MTRhNTNlOGU3YjgzM2UzM2U4NGQz
Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC0x
NTcsNyArMTU3LDcgQEAgdm9pZCBTaW11bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKCkK
IAogICAgIGZvciAoYXV0byYgbGF5ZXIgOiBtX2xheWVycykgewogI2lmIFVTRShJT1NVUkZBQ0Vf
Rk9SX1hSX0xBWUVSX0RBVEEpCi0gICAgICAgIGRhdGEubGF5ZXJzLmFkZChsYXllci5rZXksIEZy
YW1lRGF0YTo6TGF5ZXJEYXRhIHsgLnN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShyZWNvbW1l
bmRlZFJlc29sdXRpb24oUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU6OkltbWVyc2l2ZVZyKSwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpIH0pOworICAgICAgICBkYXRhLmxheWVycy5hZGQo
bGF5ZXIua2V5LCBGcmFtZURhdGE6OkxheWVyRGF0YSB7IC5zdXJmYWNlID0gSU9TdXJmYWNlOjpj
cmVhdGUobnVsbHB0ciwgcmVjb21tZW5kZWRSZXNvbHV0aW9uKFBsYXRmb3JtWFI6OlNlc3Npb25N
b2RlOjpJbW1lcnNpdmVWciksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKSB9KTsKICNl
bHNlCiAgICAgICAgIGRhdGEubGF5ZXJzLmFkZChsYXllci5rZXksIEZyYW1lRGF0YTo6TGF5ZXJE
YXRhIHsgLm9wYXF1ZVRleHR1cmUgPSBsYXllci52YWx1ZSB9KTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eS5jcHAKaW5kZXggY2M1YjhiNjY1OTUwYjZlNTliOWMyZTJmNGY3ODI3MDdmOGMx
MjBjMC4uMDJmODUwODJlZGFkY2E4MDk0ODU0YWM4M2FlZDcwY2JlMmUwZDQ0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHkuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoSW1hZ2VEZWNvZGVySWRlbnRp
ZmllcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJm
YWNlOjpjcmVhdGVGcm9tSW1hZ2UoZnJhbWVJbWFnZS5nZXQoKSk7CisgICAgYXV0byBzdXJmYWNl
ID0gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UobnVsbHB0ciwgZnJhbWVJbWFnZS5nZXQoKSk7
CiAgICAgaWYgKCFzdXJmYWNlKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVs
bG9wdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBhNzNlYzk1YzI4YWJhYjEx
NmQwOTg4ZWM0ZGJkOWIzNDljM2E3ZTY5Li4yMTg5YmQ5MWM1NzYxYmQ1ODI2NzA5MTJiZTMzZDZl
YjNkYTVmZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29j
b2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTEx
Miw3ICsxMTIsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om5hdGl2ZUltYWdlRm9y
Q3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdAogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9t
SW1hZ2UocGxhdGZvcm1JbWFnZS5nZXQoKSk7CisgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UobnVsbHB0ciwgcGxhdGZvcm1JbWFnZS5nZXQoKSk7
CiAgICAgaWYgKCFzdXJmYWNlKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVs
bG9wdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IGQ1ODYzYTNlYWZkNTRkNDRjNWI5ODRhMDk4
NGZiMjY0YmRhMzhhNTUuLjI0ZDA0MzJjMDcxYTc1Mzk5NjgxZjdlNTE1Nzk1ZWVkMWI2YzI3NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSU9TdXJmYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CiAjaW5jbHVkZSA8
d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCAz
MDgwZWM0MDM2MzZhODRhYTA1MWEzZjhmODNkNjllMmIxMzJhMDlmLi4yYjRkZTczNWMzMzIzMGM0
NDQyMDExNjA2OWYyMTM3NjU4OTI1ZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNTcsNyArNTcsNyBAQAogI2ltcG9ydCAiX1dL
QWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvckNv
Y29hLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0lPU3VyZmFjZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2VQb29sLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgpAQCAtMTA4Myw3ICsxMDgzLDcgQEAgLSAoUmVmUHRyPFdlYktpdDo6
Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogI2Vsc2UKICAgICBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
OjpCR1JBOwogI2VuZGlmCi0gICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpj
cmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OkRl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBzbmFwc2hvdEZvcm1hdCk7CisgICAgYXV0byBz
dXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUobnVsbHB0ciwgV2ViQ29yZTo6ZXhw
YW5kZWRJbnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQigpLCBzbmFwc2hvdEZvcm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBDQVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9y
bShNQUNIX1BPUlRfTlVMTCwgc2VsZi5sYXllci5jb250ZXh0LmNvbnRleHRJZCwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50NjRfdD4oc2VsZi5sYXllciksIHN1cmZhY2UtPnN1cmZhY2UoKSwgMCwgMCwg
JnRyYW5zZm9ybSk7CkBAIC0zMzMzLDcgKzMzMzMsNyBAQCAtICh2b2lkKV9zbmFwc2hvdFJlY3RB
ZnRlclNjcmVlblVwZGF0ZXM6KEJPT0wpYWZ0ZXJTY3JlZW5VcGRhdGVzIHJlY3RJblZpZXdDb29y
ZAogICAgIE5TU3RyaW5nICpkaXNwbGF5TmFtZSA9IHNlbGYud2luZG93LnNjcmVlbi5kaXNwbGF5
Q29uZmlndXJhdGlvbi5uYW1lOwogICAgIGlmIChkaXNwbGF5TmFtZSAmJiAhc2VsZi53aW5kb3cu
aGlkZGVuKSB7CiAgICAgICAgIFRyYWNlU2NvcGUgc25hcHNob3RTY29wZShSZW5kZXJTZXJ2ZXJT
bmFwc2hvdFN0YXJ0LCBSZW5kZXJTZXJ2ZXJTbmFwc2hvdEVuZCk7Ci0gICAgICAgIGF1dG8gc3Vy
ZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6
ZShXZWJDb3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQigpKTsKKyAgICAgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJm
YWNlOjpjcmVhdGUobnVsbHB0ciwgV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZs
b2F0U2l6ZShpbWFnZVNpemUpKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdC
KCkpOwogICAgICAgICBpZiAoIXN1cmZhY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAwMDc0ZGNhNzcyN2E5Njg3NGZiMWVkMzg0
N2Y1MTllMTYwNGE1M2Y3Li40NmE4Mzc3OGUyNWRiZDBiNGQ4YTBkYmY2MTE0MTk1MzkyMTgyNWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAt
NDcyNiw3ICs0NzI2LDcgQEAgUmVmUHRyPFZpZXdTbmFwc2hvdD4gV2ViVmlld0ltcGw6OnRha2VW
aWV3U25hcHNob3QoKQogCiAgICAgYXV0byBjcm9wcGVkU25hcHNob3RJbWFnZSA9IGFkb3B0Q0Yo
Q0dJbWFnZUNyZWF0ZVdpdGhJbWFnZUluUmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBO
U1JlY3RUb0NHUmVjdChbd2luZG93IGNvbnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJl
Y3RdKSkpOwogCi0gICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVG
cm9tSW1hZ2UoY3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0KCkpOworICAgIGF1dG8gc3VyZmFjZSA9
IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKG51bGxwdHIsIGNyb3BwZWRTbmFw
c2hvdEltYWdlLmdldCgpKTsKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYThjYTM0ODA4MWE5M2IxNGU1
NzIxZmUwZDAwMjhhMWVjODVjODQ3YS4uMTkxNzYwYTg3ZTNmMzE0NWNjMzAxNzkxYzE1ZjM5YjQ2
MjFhOWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Q0cuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lPU3VyZmFjZVBvb2wuaD4KICNpbmNsdWRlIDxwYWwv
c3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtNDUsNyArNDYsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZQogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVh
dGUoYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3Vy
ZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOworICAg
IGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKCZJT1N1cmZhY2VQb29sOjpzaGFyZWRQ
b29sKCksIGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgcGFyYW1ldGVycy5jb2xvclNwYWNlLCBJ
T1N1cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9ybWF0KHBhcmFtZXRlcnMucGl4ZWxGb3JtYXQpKTsK
ICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWU5ODAwYjAxM2E2Mjkz
ODNlYjgyNzY3Y2ViY2Q2NThmYzFjYzI3Ny4uZTRjZDllMDU1ODJkYWVmZThiNmVhNzQ4YTMzMTU1
MGU4Njg0OTc1OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBv
ZiBJT1N1cmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzODY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgQSBmdXR1cmUgcGF0Y2ggd2lsbCBicmVhayB0aGUgYXNzdW1wdGlvbiB0aGF0
IHRoZXJlIGlzIGEgc2luZ2xldG9uIElPU3VyZmFjZVBvb2wgcGVyCisgICAgICAgIHByb2Nlc3Ms
IHNvIHdlIGNhbid0IGhhdmUgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb25zdWx0IHRoZSBwb29sIGlu
dGVybmFsbHkuIEluc3RlYWQsCisgICAgICAgIHBhc3MgdGhlIHBvb2wgdG8gdGhlIGNyZWF0ZSgp
IGZ1bmN0aW9ucywgYW5kIHRvIHRoZSBtb3ZlVG9Qb29sKCkgZnVuY3Rpb24uCisKKyAgICAgICAg
Q2FsbGVycyBpbiB0aGUgd2ViIHByb2Nlc3MgcGFzcyBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29s
KCk7IHRob3NlIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHBhc3MgbnVsbHB0ciB0byBhdm9p
ZCBwb29sIGNyZWF0aW9uIHRoZXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1Bp
eGVsRHVtcFN1cHBvcnRJT1MubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdl
YlZpZXcpOgorCiAyMDIyLTAzLTMwICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3Bl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gZ2VuZXJhdGUtYnVuZGxlOiBzZWxm
LWNvbnRhaW5lZCBidW5kbGUgZm9yIHRoZSBNaW5pQnJvd3NlciB0aGF0IGNhbiB3b3JrIG9uIGFu
eSBkaXN0cm8KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBT
dXBwb3J0SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJ
T1MubW0KaW5kZXggNmVjYTYwZjIwZDY2YjU1YjhiY2U4ZTdmZWZlM2Q2MDBhMzliZGZiMC4uZmJh
NDllMTQ1OTBjMzA3YjM5ZDBiZjYwNGNkY2Q4ZWM5MDZmYTkxMSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KQEAgLTcyLDcgKzcyLDcgQEAg
UmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29s
IG9uc2NyZWVuLCBib29sIGluY3JlbWUKICNlbHNlCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsK
ICNlbmRpZgotICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdl
YkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IoKSwgc25hcHNob3RGb3JtYXQpOworICAgIGF1dG8gc3VyZmFjZSA9
IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKG51bGxwdHIsIFdlYkNvcmU6OmV4cGFuZGVkSW50
U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSwgc25hcHNob3RGb3JtYXQpOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0g
c3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKIAogICAgIHZvaWQqIGJpdG1hcEJ1ZmZlciA9IG51bGxw
dHI7Cg==
</data>
<flag name="commit-queue"
          id="484655"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456385</attachid>
            <date>2022-04-01 11:53:41 -0700</date>
            <delta_ts>2022-04-01 12:34:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238675-20220401115340.patch</filename>
            <type>text/plain</type>
            <size>27007</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYyM2RjNDA4ZWY5MjM0
ZWE2MTY0YTA4MDJlM2EyMzY4ZTk4M2IzMy4uMDk4YmNmODk1NWI4NDdkY2Y4YzVkYzgyZjE0ZTli
YzA4MTNlZjQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA0LTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhvaXN0IHRoZSBJ
T1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgZnV0dXJlIHBhdGNoIHdpbGwgYnJlYWsgdGhlIGFzc3Vt
cHRpb24gdGhhdCB0aGVyZSBpcyBhIHNpbmdsZXRvbiBJT1N1cmZhY2VQb29sIHBlcgorICAgICAg
ICBwcm9jZXNzLCBzbyB3ZSBjYW4ndCBoYXZlIElPU3VyZmFjZTo6Y3JlYXRlKCkgY29uc3VsdCB0
aGUgcG9vbCBpbnRlcm5hbGx5LiBJbnN0ZWFkLAorICAgICAgICBwYXNzIHRoZSBwb29sIHRvIHRo
ZSBjcmVhdGUoKSBmdW5jdGlvbnMsIGFuZCB0byB0aGUgbW92ZVRvUG9vbCgpIGZ1bmN0aW9uLgor
CisgICAgICAgIENhbGxlcnMgaW4gdGhlIHdlYiBwcm9jZXNzIHBhc3MgSU9TdXJmYWNlUG9vbDo6
c2hhcmVkUG9vbCgpOyB0aG9zZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBwYXNzIG51bGxw
dHIgdG8gYXZvaWQgcG9vbCBjcmVhdGlvbiB0aGVyZS4KKworICAgICAgICAqIE1vZHVsZXMvc3lz
dGVtLXByZXZpZXcvQVJLaXRCYWRnZVN5c3RlbUltYWdlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVJLaXRCYWRnZVN5c3RlbUltYWdlOjpkcmF3IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFj
ZVBvb2w6OmFkZFN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBjcmVh
dGVGcm9tSW1hZ2VCdWZmZXIoKSB3YXMgdW51c2VkOyByZW1vdmUgaXQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9t
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjptb3ZlVG9Qb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6OklPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKTogRGVsZXRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW11
bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKToKKwogMjAyMi0wMy0zMCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDb250YWluZXIgUXVlcmll
c10gS2VlcCBjb2xvbiBzeW50YXggd2hlbiBzZXJpYWxpemluZyBjb250YWluZXIgY29uZGl0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDVjMTgzMjE0OWEwMmVhNTAyNzE2MWNjZDFhNmI3ODkwNDlkNDVlMWQuLjI4
MTRhYWI1NGE3MzYwNDY3ZGI4ZDU1OTI3ZjUzOWE4NGIzMjgxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMjItMDQtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgSG9pc3QgdGhlIElPU3VyZmFjZVBvb2wgb3V0IG9mIElPU3VyZmFjZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4Njc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmdXR1cmUg
cGF0Y2ggd2lsbCBicmVhayB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZXJlIGlzIGEgc2luZ2xldG9u
IElPU3VyZmFjZVBvb2wgcGVyCisgICAgICAgIHByb2Nlc3MsIHNvIHdlIGNhbid0IGhhdmUgSU9T
dXJmYWNlOjpjcmVhdGUoKSBjb25zdWx0IHRoZSBwb29sIGludGVybmFsbHkuIEluc3RlYWQsCisg
ICAgICAgIHBhc3MgdGhlIHBvb2wgdG8gdGhlIGNyZWF0ZSgpIGZ1bmN0aW9ucywgYW5kIHRvIHRo
ZSBtb3ZlVG9Qb29sKCkgZnVuY3Rpb24uCisKKyAgICAgICAgQ2FsbGVycyBpbiB0aGUgd2ViIHBy
b2Nlc3MgcGFzcyBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCk7IHRob3NlIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIHBhc3MgbnVsbHB0ciB0byBhdm9pZCBwb29sIGNyZWF0aW9uIHRoZXJl
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpjcmVh
dGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NuYXBzaG90UmVj
dEFmdGVyU2NyZWVuVXBkYXRlczpyZWN0SW5WaWV3Q29vcmRpbmF0ZXM6aW50b0ltYWdlT2ZXaWR0
aDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YWtlVmlld1NuYXBzaG90
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisKIDIwMjIt
MDMtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBwZXJzaXN0ZW50IG5vdGlmaWNhdGlvbiBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1hZ2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VTeXN0ZW1J
bWFnZS5tbQppbmRleCBlYWI1MjY1N2ZiYjUyNjIyOGMzMDBjNDU4NTlkYmNmMjE4MTE0YzYxLi4y
Mzg4MjYyMDBlMGUyNjdlY2E4OGFjOGIzMmI4YThiNzY4YTY1NjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VTeXN0ZW1JbWFnZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VT
eXN0ZW1JbWFnZS5tbQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAj
aW1wb3J0ICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW1wb3J0ICJJT1N1cmZhY2UuaCIKKyNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKICNpbXBv
cnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KICNpbXBvcnQgPENvcmVJbWFnZS9Db3Jl
SW1hZ2UuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTkyLDcgKzE5Miw3
IEBAIHZvaWQgQVJLaXRCYWRnZVN5c3RlbUltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpY3NDb250ZXh0LCBjb25zdCBGbG9hdFJlCiAgICAgQ0lJbWFnZSAqdHJhbnNsYXRlZEltYWdl
ID0gW2Nyb3BwZWRJbWFnZSBpbWFnZUJ5QXBwbHlpbmdUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zv
cm1NYWtlVHJhbnNsYXRpb24oLWZsaXBwZWRJbnNldEJhZGdlUmVjdC5vcmlnaW4ueCwgLWZsaXBw
ZWRJbnNldEJhZGdlUmVjdC5vcmlnaW4ueSldOwogCiAgICAgYXV0byBzdXJmYWNlRGltZW5zaW9u
ID0gdXNlU21hbGxCYWRnZSA/IHNtYWxsQmFkZ2VEaW1lbnNpb24gOiBsYXJnZUJhZGdlRGltZW5z
aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhZGdlU3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKHsgc3VyZmFjZURpbWVuc2lvbiwgc3VyZmFjZURpbWVuc2lvbiB9LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gYmFkZ2VTdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoJklPU3VyZmFjZVBvb2w6OnNoYXJl
ZFBvb2woKSwgeyBzdXJmYWNlRGltZW5zaW9uLCBzdXJmYWNlRGltZW5zaW9uIH0sIERlc3RpbmF0
aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICBJT1N1cmZhY2VSZWYgc3VyZmFjZSA9IGJhZGdl
U3VyZmFjZS0+c3VyZmFjZSgpOwogICAgIFtjaUNvbnRleHQgcmVuZGVyOnRyYW5zbGF0ZWRJbWFn
ZSB0b0lPU3VyZmFjZTpzdXJmYWNlIGJvdW5kczpiYWRnZVJlY3QgY29sb3JTcGFjZTpzUkdCQ29s
b3JTcGFjZVJlZigpXTsKICAgICBjZ0ltYWdlID0gdXNlU21hbGxCYWRnZSA/IGJhZGdlU3VyZmFj
ZS0+Y3JlYXRlSW1hZ2UoKSA6IGJhZGdlU3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAK
aW5kZXggMzE0MDc2YTAxYjExZjdmMWQxMWViNDQ3NDhjZWM1ZDYxYzQ5YjJjYi4uZDM2ZmE0YTk5
OTBiYmIwMmMzZDdlMDBlM2M2M2IzNjFhZDY1OWY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKQEAgLTE3MCw3ICsx
NzAsNyBAQCBib29sIElPU3VyZmFjZVBvb2w6OnNob3VsZENhY2hlU3VyZmFjZShjb25zdCBJT1N1
cmZhY2UmIHN1cmZhY2UpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSU9TdXJm
YWNlUG9vbDo6YWRkU3VyZmFjZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQor
dm9pZCBJT1N1cmZhY2VQb29sOjphZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
JiYgc3VyZmFjZSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKCFz
aG91bGRDYWNoZVN1cmZhY2UoKnN1cmZhY2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCmluZGV4IDUyNjM4NmQzNTI2MDBmMTg0
MDFmZTcxZTY1MWRkYWFiMjBlM2Q4ZmYuLmRmMDNjOWQ2MjQyYTJiMjhjYzQ3NGQ4M2NmMGMwZjcx
ZmRhZTRjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0lPU3VyZmFjZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JT1N1cmZhY2VQb29sLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBJT1N1cmZhY2VQb29sJiBzaGFyZWRQb29sKCk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiB0YWtlU3VyZmFjZShJbnRTaXplLCBjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmLCBJT1N1cmZhY2U6OkZvcm1hdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFkZFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7CiAKICAg
ICB2b2lkIGRpc2NhcmRBbGxTdXJmYWNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmNwcAppbmRleCA2ZDkzNjJkZGE4MjM1NzI4ODVmYjY3ZWI5ZmUxYmIxMzY5MjE0MTMy
Li5lMjA2ZDk2MTUxNmUwMGY4NmFlM2Y3ZjMyMTU5NmNiYmE4OGQ4YzhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBIQVZFKElP
U1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaW5jbHVkZSAiSU9T
dXJmYWNlLmgiCisjaW5jbHVkZSAiSU9TdXJmYWNlUG9vbC5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3Jl
R3JhcGhpY3MuaD4KQEAgLTg3LDcgKzg3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUKICAg
ICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5k
U2l6ZSwgcGFyYW1ldGVycy5jb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9y
bWF0KHBhcmFtZXRlcnMucGl4ZWxGb3JtYXQpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZh
Y2U6OmNyZWF0ZSgmSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLCBiYWNrZW5kU2l6ZSwgYmFj
a2VuZFNpemUsIHBhcmFtZXRlcnMuY29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhl
bEZvcm1hdChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlIHZv
bGF0aWxpdHlTCiAKIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpyZWxlYXNlQnVm
ZmVyVG9Qb29sKCkKIHsKLSAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX3N1cmZh
Y2UpKTsKKyAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX3N1cmZhY2UpLCAmSU9T
dXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmVuc3VyZU5hdGl2ZUltYWdlc0hhdmVDb3BpZWRCYWNraW5nU3RvcmUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggZWUxODYzMzQ3MDIxZmFjNGNiMDY1YTJj
ZTk0M2QyNzhiOTRjOWVkYi4uNDA2Y2I5M2RiMzk3N2Y5NDZlMGMyZWU0YmQ0YzQ0YTkyOWY4ZTk2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKKyNpbXBvcnQg
IklPU3VyZmFjZVBvb2wuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBpeGVsQnVm
ZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKQEAgLTU3Myw3ICs1NzQsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygp
CiBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZm
ZXJCYWNraW5nKCkKIHsKICAgICBBU1NFUlQoIWdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCku
aXNFbXB0eSgpKTsKLSAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRl
cm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7Cisg
ICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoJklPU3VyZmFjZVBvb2w6OnNoYXJl
ZFBvb2woKSwgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNw
YWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmIChtX3Jlc291cmNlT3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IGNkNjU4NzA1ZDExZjU2OGMzODExZmMz
OGUyNWRiMzZkZDgzMTBmMDUuLjgxOTg1NDNkNzA5ZjVjNmRmNjNkYzM1NmU5ZTVmYzAzZjJmYWU3
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRvdzsKLWNsYXNzIEltYWdlQnVmZmVyOwor
Y2xhc3MgSU9TdXJmYWNlUG9vbDsKIGNsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFz
cyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CkBAIC0xMDAsMTkgKzEwMCwxNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHVpbnQzMl90IG1fZmxhZ3M7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUs
IEludFNpemUgY29udGV4dFNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIEZvcm1h
dCA9IEZvcm1hdDo6QkdSQSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJT1N1cmZhY2VQb29sKiwgSW50U2l6ZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKElPU3VyZmFj
ZVBvb2wqLCBJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UmLCBGb3JtYXQgPSBGb3JtYXQ6OkJHUkEpOworCisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFnZShJT1N1cmZh
Y2VQb29sKiwgQ0dJbWFnZVJlZik7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmJiwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TdXJmYWNl
KElPU3VyZmFjZVJlZiwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFn
ZShDR0ltYWdlUmVmKTsKLSAgICAKLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NU
T1JFKQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1h
Z2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPik7Ci0jZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIH5JT1N1cmZhY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBtb3ZlVG9Q
b29sKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYsIElPU3VyZmFjZVBvb2wqKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIG1vdmVUb1Bvb2woc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgfklPU3VyZmFjZSgpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEludFNpemUgbWF4aW11bVNpemUoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRNYXhpbXVtU2l6ZShJbnRTaXplKTsKQEAgLTE2MCw3ICsxNTgs
NyBAQCBwdWJsaWM6CiAKICNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBhbGxvd0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQo
Rm9ybWF0LCBGb3JtYXQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRU
b0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwg
Rm9ybWF0LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
KT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KElP
U3VyZmFjZVBvb2wqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3Vy
ZmFjZSwgRm9ybWF0LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+KT4mJik7CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJ
ZGVudGl0eSYpOwpAQCAtMTcyLDcgKzE3MCw2IEBAIHByaXZhdGU6CiAgICAgSU9TdXJmYWNlKElu
dFNpemUsIEludFNpemUgY29udGV4dFNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYs
IEZvcm1hdCwgYm9vbCYgc3VjY2Vzcyk7CiAgICAgSU9TdXJmYWNlKElPU3VyZmFjZVJlZiwgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJik7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gc3VyZmFjZUZyb21Qb29sKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUs
IGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIEZvcm1hdCk7CiAgICAgSW50U2l6ZSBjb250
ZXh0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dFNpemU7IH0KICAgICB2b2lkIHNldENv
bnRleHRTaXplKEludFNpemUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggMGEzZDllZTE1ODQ3MzE3YzQwNTVjM2Yx
YTNhYzZhMTEwM2E2NDI2Ni4uZDhhYWUyNzE0NWNmNjlmMWY0NzUxMGQ4NmI3OTExNTJkODJkMjZi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5tbQpAQCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cu
aCIKICNpbXBvcnQgIkhvc3RXaW5kb3cuaCIKICNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKLSNp
bXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQbGF0
Zm9ybVNjcmVlbi5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCkBAIC00NCwyNyArNDMs
MjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gSU9TdXJmYWNlOjpzdXJmYWNlRnJvbVBvb2woSW50U2l6ZSBzaXplLCBJbnRTaXpl
IGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIEZv
cm1hdCBwaXhlbEZvcm1hdCkKK3N0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6
Y3JlYXRlKElPU3VyZmFjZVBvb2wqIHBvb2wsIEludFNpemUgc2l6ZSwgY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCiB7Ci0gICAgYXV0
byBjYWNoZWRTdXJmYWNlID0gSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLnRha2VTdXJmYWNl
KHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKLSAgICBpZiAoIWNhY2hlZFN1cmZhY2Up
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgY2FjaGVkU3VyZmFjZS0+c2V0Q29udGV4
dFNpemUoY29udGV4dFNpemUpOwotICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZShJbnRTaXplIHNpemUsIGNv
bnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0
KQotewotICAgIHJldHVybiBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzaXplLCBjb2xvclNwYWNl
LCBwaXhlbEZvcm1hdCk7CisgICAgcmV0dXJuIElPU3VyZmFjZTo6Y3JlYXRlKHBvb2wsIHNpemUs
IHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRT
aXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhl
bEZvcm1hdCkKK3N0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRlKElP
U3VyZmFjZVBvb2wqIHBvb2wsIEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQp
CiB7Ci0gICAgaWYgKGF1dG8gY2FjaGVkU3VyZmFjZSA9IHN1cmZhY2VGcm9tUG9vbChzaXplLCBj
b250ZXh0U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKSB7CisgICAgc3RkOjp1bmlxdWVf
cHRyPElPU3VyZmFjZT4gY2FjaGVkU3VyZmFjZTsKKyAgICBpZiAocG9vbCAmJiAoY2FjaGVkU3Vy
ZmFjZSA9IHBvb2wtPnRha2VTdXJmYWNlKHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkp
IHsKKyAgICAgICAgY2FjaGVkU3VyZmFjZS0+c2V0Q29udGV4dFNpemUoY29udGV4dFNpemUpOwog
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oSU9TdXJmYWNlLCBzdHJlYW0gPDwgIklPU3VyZmFjZTo6
Y3JlYXRlIHRvb2sgZnJvbSBwb29sOiAiIDw8ICpjYWNoZWRTdXJmYWNlKTsKICAgICAgICAgcmV0
dXJuIGNhY2hlZFN1cmZhY2U7CiAgICAgfQorCiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CiAg
ICAgYXV0byBzdXJmYWNlID0gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFj
ZShzaXplLCBjb250ZXh0U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHN1Y2Nlc3MpKTsK
ICAgICBpZiAoIXN1Y2Nlc3MpIHsKQEAgLTg3LDcgKzc5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgY28KICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFj
ZShzdXJmYWNlLCBjb2xvclNwYWNlKSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IElPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKENHSW1hZ2VSZWYgaW1hZ2UpCitzdGQ6OnVuaXF1
ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShJT1N1cmZhY2VQb29s
KiBwb29sLCBDR0ltYWdlUmVmIGltYWdlKQogewogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtOTUsNyArODcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQogICAgIHNpemVf
dCB3aWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENH
SW1hZ2VHZXRIZWlnaHQoaW1hZ2UpOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpj
cmVhdGUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgRGVzdGluYXRpb25Db2xvclNwYWNlIHsgQ0dJ
bWFnZUdldENvbG9yU3BhY2UoaW1hZ2UpIH0pOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFj
ZTo6Y3JlYXRlKHBvb2wsIEludFNpemUod2lkdGgsIGhlaWdodCksIERlc3RpbmF0aW9uQ29sb3JT
cGFjZSB7IENHSW1hZ2VHZXRDb2xvclNwYWNlKGltYWdlKSB9KTsKICAgICBpZiAoIXN1cmZhY2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gc3VyZmFjZUNvbnRleHQgPSBzdXJm
YWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKQEAgLTEwNCw5ICs5NiwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVm
IGltYWdlKQogICAgIHJldHVybiBzdXJmYWNlOwogfQogCi12b2lkIElPU3VyZmFjZTo6bW92ZVRv
UG9vbChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UpCit2b2lkIElPU3VyZmFj
ZTo6bW92ZVRvUG9vbChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UsIElPU3Vy
ZmFjZVBvb2wqIHBvb2wpCiB7Ci0gICAgSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLmFkZFN1
cmZhY2UoV1RGTW92ZShzdXJmYWNlKSk7CisgICAgaWYgKHBvb2wpCisgICAgICAgIHBvb2wtPmFk
ZFN1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKIHN0YXRpYyBOU0RpY3Rpb25hcnkgKm9w
dGlvbnNGb3JCaXBsYW5hclN1cmZhY2UoSW50U2l6ZSBzaXplLCB1bnNpZ25lZCBwaXhlbEZvcm1h
dCwgc2l6ZV90IGZpcnN0UGxhbmVCeXRlc1BlclBpeGVsLCBzaXplX3Qgc2Vjb25kUGxhbmVCeXRl
c1BlclBpeGVsKQpAQCAtNDgxLDcgKzQ3NCw3IEBAIGJvb2wgSU9TdXJmYWNlOjphbGxvd0NvbnZl
cnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoRm9ybWF0IHNvdXJjZUZvcm1hdCwgRm9ybWF0IGRlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmb3JtYXQsIFdURjo6
RnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPik+JiYgY2FsbGJhY2spCit2
b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KElPU3VyZmFjZVBvb2wqIHBvb2wsIHN0ZDo6
dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZm9ybWF0LCBXVEY6OkZ1
bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4pPiYmIGNhbGxiYWNrKQogewog
ICAgIHN0YXRpYyBJT1N1cmZhY2VBY2NlbGVyYXRvclJlZiBhY2NlbGVyYXRvcjsKICAgICBpZiAo
IWFjY2VsZXJhdG9yKSB7CkBAIC00OTYsNyArNDg5LDcgQEAgdm9pZCBJT1N1cmZhY2U6OmNvbnZl
cnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0
IGYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gZGVzdGluYXRpb25TdXJmYWNl
ID0gSU9TdXJmYWNlOjpjcmVhdGUoaW5TdXJmYWNlLT5zaXplKCksIGluU3VyZmFjZS0+Y29sb3JT
cGFjZSgpLCBmb3JtYXQpOworICAgIGF1dG8gZGVzdGluYXRpb25TdXJmYWNlID0gSU9TdXJmYWNl
OjpjcmVhdGUocG9vbCwgaW5TdXJmYWNlLT5zaXplKCksIGluU3VyZmFjZS0+Y29sb3JTcGFjZSgp
LCBmb3JtYXQpOwogICAgIGlmICghZGVzdGluYXRpb25TdXJmYWNlKSB7CiAgICAgICAgIGNhbGxi
YWNrKG51bGxwdHIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dl
YkZha2VYUkRldmljZS5jcHAKaW5kZXggZWQ0Y2VjMmEyNGQ3NDU5Y2MyNmQ1YjJhYjQwOWUxNTll
ZGMxNzEwMi4uMGI2ZDA2OTI1ODA5ZjU4NTE0YTUzZThlN2I4MzNlMzNlODRkM2NkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgU2ltdWxhdGVkWFJEZXZpY2U6OmZyYW1lVGltZXJGaXJlZCgpCiAKICAgICBmb3Ig
KGF1dG8mIGxheWVyIDogbV9sYXllcnMpIHsKICNpZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlF
Ul9EQVRBKQotICAgICAgICBkYXRhLmxheWVycy5hZGQobGF5ZXIua2V5LCBGcmFtZURhdGE6Okxh
eWVyRGF0YSB7IC5zdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUocmVjb21tZW5kZWRSZXNvbHV0
aW9uKFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWciksIERlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQigpKSB9KTsKKyAgICAgICAgZGF0YS5sYXllcnMuYWRkKGxheWVyLmtleSwg
RnJhbWVEYXRhOjpMYXllckRhdGEgeyAuc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKG51bGxw
dHIsIHJlY29tbWVuZGVkUmVzb2x1dGlvbihQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTo6SW1tZXJz
aXZlVnIpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSkgfSk7CiAjZWxzZQogICAgICAg
ICBkYXRhLmxheWVycy5hZGQobGF5ZXIua2V5LCBGcmFtZURhdGE6OkxheWVyRGF0YSB7IC5vcGFx
dWVUZXh0dXJlID0gbGF5ZXIudmFsdWUgfSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
Y3BwCmluZGV4IGNjNWI4YjY2NTk1MGI2ZTU5YjljMmUyZjRmNzgyNzA3ZjhjMTIwYzAuLjAyZjg1
MDgyZWRhZGNhODA5NDg1NGFjODNhZWQ3MGNiZTJlMGQ0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KEltYWdlRGVjb2RlcklkZW50aWZpZXIKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRl
RnJvbUltYWdlKGZyYW1lSW1hZ2UuZ2V0KCkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFj
ZTo6Y3JlYXRlRnJvbUltYWdlKG51bGxwdHIsIGZyYW1lSW1hZ2UuZ2V0KCkpOwogICAgIGlmICgh
c3VyZmFjZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQsIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5kZXggYTczZWM5NWMyOGFiYWIxMTZkMDk4OGVjNGRi
ZDliMzQ5YzNhN2U2OS4uMjE4OWJkOTFjNTc2MWJkNTgyNjcwOTEyYmUzM2Q2ZWIzZGE1ZmUyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0xMTIsNyArMTEyLDcg
QEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKHBsYXRm
b3JtSW1hZ2UuZ2V0KCkpOworICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6
Y3JlYXRlRnJvbUltYWdlKG51bGxwdHIsIHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOwogICAgIGlmICgh
c3VyZmFjZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQsIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUuaAppbmRleCBkNTg2M2EzZWFmZDU0ZDQ0YzViOTg0YTA5ODRmYjI2NGJkYTM4
YTU1Li4yNGQwNDMyYzA3MWE3NTM5OTY4MWY3ZTUxNTc5NWVlZDFiNmMyNzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAiSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZm
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggMzA4MGVjNDAzNjM2
YTg0YWEwNTFhM2Y4ZjgzZDY5ZTJiMTMyYTA5Zi4uYmZhN2E4MWNlN2ZjZDM0ZmYwMGQzZDBmYWU2
YTA4M2RmY2ZhZjM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW0KQEAgLTU3LDcgKzU3LDcgQEAKICNpbXBvcnQgIl9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JDb2NvYS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2ltcG9ydCA8V2ViQ29yZS9JT1N1
cmZhY2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlUG9vbC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Mb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlN
RVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KQEAgLTEwODMsNyArMTA4Myw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hv
dD4pX3Rha2VWaWV3U25hcHNob3QKICNlbHNlCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNl
bmRpZgotICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNv
cmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSwgc25hcHNob3RGb3JtYXQpOworICAgIGF1dG8gc3VyZmFjZSA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKG51bGxwdHIsIFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6
ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwg
c25hcHNob3RGb3JtYXQpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JU
X05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDY0X3Q+KHNlbGYubGF5ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0p
OwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgLSAoUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90Pilf
dGFrZVZpZXdTbmFwc2hvdAogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IGNvbXByZXNz
ZWRGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOwogICAgIGlmIChX
ZWJDb3JlOjpJT1N1cmZhY2U6OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChzbmFw
c2hvdEZvcm1hdCwgY29tcHJlc3NlZEZvcm1hdCkpIHsKICAgICAgICAgYXV0byB2aWV3U25hcHNo
b3QgPSBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKG51bGxwdHIpOwotICAgICAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChXVEZNb3ZlKHN1cmZhY2UpLCBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyLCBbdmlld1NuYXBzaG90XShzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBjb252ZXJ0ZWRTdXJmYWNlKSB7CisgICAgICAgIFdlYkNv
cmU6OklPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KG51bGxwdHIsIFdURk1vdmUoc3VyZmFjZSks
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjIsIFt2aWV3U25hcHNob3RdKHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IGNvbnZlcnRlZFN1cmZhY2UpIHsKICAgICAg
ICAgICAgIGlmIChjb252ZXJ0ZWRTdXJmYWNlKQogICAgICAgICAgICAgICAgIHZpZXdTbmFwc2hv
dC0+c2V0U3VyZmFjZShXVEZNb3ZlKGNvbnZlcnRlZFN1cmZhY2UpKTsKICAgICAgICAgfSk7CkBA
IC0zMzMzLDcgKzMzMzMsNyBAQCAtICh2b2lkKV9zbmFwc2hvdFJlY3RBZnRlclNjcmVlblVwZGF0
ZXM6KEJPT0wpYWZ0ZXJTY3JlZW5VcGRhdGVzIHJlY3RJblZpZXdDb29yZAogICAgIE5TU3RyaW5n
ICpkaXNwbGF5TmFtZSA9IHNlbGYud2luZG93LnNjcmVlbi5kaXNwbGF5Q29uZmlndXJhdGlvbi5u
YW1lOwogICAgIGlmIChkaXNwbGF5TmFtZSAmJiAhc2VsZi53aW5kb3cuaGlkZGVuKSB7CiAgICAg
ICAgIFRyYWNlU2NvcGUgc25hcHNob3RTY29wZShSZW5kZXJTZXJ2ZXJTbmFwc2hvdFN0YXJ0LCBS
ZW5kZXJTZXJ2ZXJTbmFwc2hvdEVuZCk7Ci0gICAgICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6
OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9h
dFNpemUoaW1hZ2VTaXplKSksIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigp
KTsKKyAgICAgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUobnVs
bHB0ciwgV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShpbWFnZVNp
emUpKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgICAgICBp
ZiAoIXN1cmZhY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwog
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCAwMDc0ZGNhNzcyN2E5Njg3NGZiMWVkMzg0N2Y1MTllMTYwNGE1M2Y3
Li40NmE4Mzc3OGUyNWRiZDBiNGQ4YTBkYmY2MTE0MTk1MzkyMTgyNWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDcyNiw3ICs0NzI2LDcg
QEAgUmVmUHRyPFZpZXdTbmFwc2hvdD4gV2ViVmlld0ltcGw6OnRha2VWaWV3U25hcHNob3QoKQog
CiAgICAgYXV0byBjcm9wcGVkU25hcHNob3RJbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZVdp
dGhJbWFnZUluUmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1JlY3RUb0NHUmVjdChb
d2luZG93IGNvbnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3RdKSkpOwogCi0gICAg
YXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoY3JvcHBl
ZFNuYXBzaG90SW1hZ2UuZ2V0KCkpOworICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3Vy
ZmFjZTo6Y3JlYXRlRnJvbUltYWdlKG51bGxwdHIsIGNyb3BwZWRTbmFwc2hvdEltYWdlLmdldCgp
KTsKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYThjYTM0ODA4MWE5M2IxNGU1NzIxZmUwZDAwMjhhMWVj
ODVjODQ3YS4uMTkxNzYwYTg3ZTNmMzE0NWNjMzAxNzkxYzE1ZjM5YjQ2MjFhOWY1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0lPU3VyZmFjZVBvb2wuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0lPU3Vy
ZmFjZVNQSS5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtNDUsNyArNDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJl
YWJsZQogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUs
IGJhY2tlbmRTaXplLCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9y
UGl4ZWxGb3JtYXQocGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOworICAgIGF1dG8gc3VyZmFjZSA9
IElPU3VyZmFjZTo6Y3JlYXRlKCZJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCksIGJhY2tlbmRT
aXplLCBiYWNrZW5kU2l6ZSwgcGFyYW1ldGVycy5jb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZvcm1h
dEZvclBpeGVsRm9ybWF0KHBhcmFtZXRlcnMucGl4ZWxGb3JtYXQpKTsKICAgICBpZiAoIXN1cmZh
Y2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWU5ODAwYjAxM2E2MjkzODNlYjgyNzY3Y2ViY2Q2
NThmYzFjYzI3Ny4uZTRjZDllMDU1ODJkYWVmZThiNmVhNzQ4YTMzMTU1MGU4Njg0OTc1OSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDIyLTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODY3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQSBm
dXR1cmUgcGF0Y2ggd2lsbCBicmVhayB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZXJlIGlzIGEgc2lu
Z2xldG9uIElPU3VyZmFjZVBvb2wgcGVyCisgICAgICAgIHByb2Nlc3MsIHNvIHdlIGNhbid0IGhh
dmUgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb25zdWx0IHRoZSBwb29sIGludGVybmFsbHkuIEluc3Rl
YWQsCisgICAgICAgIHBhc3MgdGhlIHBvb2wgdG8gdGhlIGNyZWF0ZSgpIGZ1bmN0aW9ucywgYW5k
IHRvIHRoZSBtb3ZlVG9Qb29sKCkgZnVuY3Rpb24uCisKKyAgICAgICAgQ2FsbGVycyBpbiB0aGUg
d2ViIHByb2Nlc3MgcGFzcyBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCk7IHRob3NlIGluIHRo
ZSBVSSBwcm9jZXNzCisgICAgICAgIHBhc3MgbnVsbHB0ciB0byBhdm9pZCBwb29sIGNyZWF0aW9u
IHRoZXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJ
T1MubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorCiAyMDIy
LTAzLTMwICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdW1dQRV0gZ2VuZXJhdGUtYnVuZGxlOiBzZWxmLWNvbnRhaW5lZCBidW5k
bGUgZm9yIHRoZSBNaW5pQnJvd3NlciB0aGF0IGNhbiB3b3JrIG9uIGFueSBkaXN0cm8KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KaW5kZXggNmVj
YTYwZjIwZDY2YjU1YjhiY2U4ZTdmZWZlM2Q2MDBhMzliZGZiMC4uZmJhNDllMTQ1OTBjMzA3YjM5
ZDBiZjYwNGNkY2Q4ZWM5MDZmYTkxMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9z
L1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KQEAgLTcyLDcgKzcyLDcgQEAgUmVmUHRyPEJpdG1hcENv
bnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29s
IGluY3JlbWUKICNlbHNlCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RG
b3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbmRpZgotICAgIGF1
dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVk
SW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IoKSwgc25hcHNob3RGb3JtYXQpOworICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3Vy
ZmFjZTo6Y3JlYXRlKG51bGxwdHIsIFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNp
emUpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgc25hcHNob3RGb3Jt
YXQpOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gc3VyZmFjZS0+Y3JlYXRl
SW1hZ2UoKTsKIAogICAgIHZvaWQqIGJpdG1hcEJ1ZmZlciA9IG51bGxwdHI7Cg==
</data>
<flag name="review"
          id="484653"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="484661"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456407</attachid>
            <date>2022-04-01 15:16:19 -0700</date>
            <delta_ts>2022-04-01 18:30:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238675-20220401151618.patch</filename>
            <type>text/plain</type>
            <size>27692</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYyM2RjNDA4ZWY5MjM0
ZWE2MTY0YTA4MDJlM2EyMzY4ZTk4M2IzMy4uYTNmOWFjNGRjYzA1NjVjNmQ3YTI1NTlhYzQ2YWQ3
ZGZlYmE5ZWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA0LTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhvaXN0IHRoZSBJ
T1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgQSBmdXR1cmUgcGF0Y2ggd2lsbCBicmVhayB0aGUgYXNzdW1wdGlv
biB0aGF0IHRoZXJlIGlzIGEgc2luZ2xldG9uIElPU3VyZmFjZVBvb2wgcGVyCisgICAgICAgIHBy
b2Nlc3MsIHNvIHdlIGNhbid0IGhhdmUgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb25zdWx0IHRoZSBw
b29sIGludGVybmFsbHkuIEluc3RlYWQsCisgICAgICAgIHBhc3MgdGhlIHBvb2wgdG8gdGhlIGNy
ZWF0ZSgpIGZ1bmN0aW9ucywgYW5kIHRvIHRoZSBtb3ZlVG9Qb29sKCkgZnVuY3Rpb24uCisKKyAg
ICAgICAgQ2FsbGVycyBpbiB0aGUgd2ViIHByb2Nlc3MgcGFzcyBJT1N1cmZhY2VQb29sOjpzaGFy
ZWRQb29sKCk7IHRob3NlIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHBhc3MgbnVsbHB0ciB0
byBhdm9pZCBwb29sIGNyZWF0aW9uIHRoZXJlLgorCisgICAgICAgICogTW9kdWxlcy9zeXN0ZW0t
cHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1hZ2UubW06CisgICAgICAgIChXZWJDb3JlOjpBUktp
dEJhZGdlU3lzdGVtSW1hZ2U6OmRyYXcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9v
bDo6YWRkU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNl
UG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OnJlbGVhc2VCdWZmZXJUb1Bvb2wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmg6IGNyZWF0ZUZy
b21JbWFnZUJ1ZmZlcigpIHdhcyB1bnVzZWQ7IHJlbW92ZSBpdC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZh
Y2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6Om1vdmVUb1Bvb2wpOgorICAgICAgICAo
V2ViQ29yZTo6SU9TdXJmYWNlOjpzdXJmYWNlRnJvbVBvb2wpOiBEZWxldGVkLgorICAgICAgICAq
IHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXVsYXRl
ZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQpOgorCiAyMDIyLTAzLTMwICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIENvbnRhaW5lciBRdWVyaWVzXSBL
ZWVwIGNvbG9uIHN5bnRheCB3aGVuIHNlcmlhbGl6aW5nIGNvbnRhaW5lciBjb25kaXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNWMxODMyMTQ5YTAyZWE1MDI3MTYxY2NkMWE2Yjc4OTA0OWQ0NWUxZC4uMDVhMmYx
M2VjMTFkNDUyMDRkMTYxODMzNzEzOTE1OWQyY2IwYWUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAyMi0wNC0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBIb2lzdCB0aGUgSU9TdXJmYWNlUG9vbCBvdXQgb2YgSU9TdXJmYWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg2NzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEEgZnV0dXJlIHBhdGNoIHdp
bGwgYnJlYWsgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGVyZSBpcyBhIHNpbmdsZXRvbiBJT1N1cmZh
Y2VQb29sIHBlcgorICAgICAgICBwcm9jZXNzLCBzbyB3ZSBjYW4ndCBoYXZlIElPU3VyZmFjZTo6
Y3JlYXRlKCkgY29uc3VsdCB0aGUgcG9vbCBpbnRlcm5hbGx5LiBJbnN0ZWFkLAorICAgICAgICBw
YXNzIHRoZSBwb29sIHRvIHRoZSBjcmVhdGUoKSBmdW5jdGlvbnMsIGFuZCB0byB0aGUgbW92ZVRv
UG9vbCgpIGZ1bmN0aW9uLgorCisgICAgICAgIENhbGxlcnMgaW4gdGhlIHdlYiBwcm9jZXNzIHBh
c3MgSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpOyB0aG9zZSBpbiB0aGUgVUkgcHJvY2Vzcwor
ICAgICAgICBwYXNzIG51bGxwdHIgdG8gYXZvaWQgcG9vbCBjcmVhdGlvbiB0aGVyZS4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJ
bWFnZUF0SW5kZXgpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBTaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VW
aWV3U25hcHNob3RdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zbmFwc2hvdFJlY3RBZnRlclNj
cmVlblVwZGF0ZXM6cmVjdEluVmlld0Nvb3JkaW5hdGVzOmludG9JbWFnZU9mV2lkdGg6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUpOgorCiAyMDIyLTAzLTMwICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgcGVy
c2lzdGVudCBub3RpZmljYXRpb24gaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3lzdGVtLXByZXZpZXcvQVJLaXRCYWRnZVN5c3RlbUltYWdlLm1tIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1hZ2UubW0K
aW5kZXggZWFiNTI2NTdmYmI1MjYyMjhjMzAwYzQ1ODU5ZGJjZjIxODExNGM2MS4uMjM4ODI2MjAw
ZTBlMjY3ZWNhODhhYzhiMzJiOGE4Yjc2OGE2NTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1hZ2UubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJhZGdlU3lzdGVtSW1h
Z2UubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIkZsb2F0UmVjdC5oIgogI2ltcG9ydCAi
R2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgotI2ltcG9y
dCAiSU9TdXJmYWNlLmgiCisjaW1wb3J0ICJJT1N1cmZhY2VQb29sLmgiCiAjaW1wb3J0IDxDb3Jl
R3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxDb3JlSW1hZ2UvQ29yZUltYWdlLmg+
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lk
IEFSS2l0QmFkZ2VTeXN0ZW1JbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgY29uc3QgRmxvYXRSZQogICAgIENJSW1hZ2UgKnRyYW5zbGF0ZWRJbWFnZSA9IFtjcm9w
cGVkSW1hZ2UgaW1hZ2VCeUFwcGx5aW5nVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtTWFrZVRy
YW5zbGF0aW9uKC1mbGlwcGVkSW5zZXRCYWRnZVJlY3Qub3JpZ2luLngsIC1mbGlwcGVkSW5zZXRC
YWRnZVJlY3Qub3JpZ2luLnkpXTsKIAogICAgIGF1dG8gc3VyZmFjZURpbWVuc2lvbiA9IHVzZVNt
YWxsQmFkZ2UgPyBzbWFsbEJhZGdlRGltZW5zaW9uIDogbGFyZ2VCYWRnZURpbWVuc2lvbjsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBiYWRnZVN1cmZhY2UgPSBJT1N1cmZhY2U6OmNy
ZWF0ZSh7IHN1cmZhY2VEaW1lbnNpb24sIHN1cmZhY2VEaW1lbnNpb24gfSwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCKCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhZGdl
U3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKCZJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCks
IHsgc3VyZmFjZURpbWVuc2lvbiwgc3VyZmFjZURpbWVuc2lvbiB9LCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSk7CiAgICAgSU9TdXJmYWNlUmVmIHN1cmZhY2UgPSBiYWRnZVN1cmZhY2Ut
PnN1cmZhY2UoKTsKICAgICBbY2lDb250ZXh0IHJlbmRlcjp0cmFuc2xhdGVkSW1hZ2UgdG9JT1N1
cmZhY2U6c3VyZmFjZSBib3VuZHM6YmFkZ2VSZWN0IGNvbG9yU3BhY2U6c1JHQkNvbG9yU3BhY2VS
ZWYoKV07CiAgICAgY2dJbWFnZSA9IHVzZVNtYWxsQmFkZ2UgPyBiYWRnZVN1cmZhY2UtPmNyZWF0
ZUltYWdlKCkgOiBiYWRnZVN1cmZhY2UtPmNyZWF0ZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCmluZGV4IDMx
NDA3NmEwMWIxMWY3ZjFkMTFlYjQ0NzQ4Y2VjNWQ2MWM0OWIyY2IuLmQzNmZhNGE5OTkwYmJiMDJj
M2Q3ZTAwZTNjNjNiMzYxYWQ2NTlmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAg
Ym9vbCBJT1N1cmZhY2VQb29sOjpzaG91bGRDYWNoZVN1cmZhY2UoY29uc3QgSU9TdXJmYWNlJiBz
dXJmYWNlKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIElPU3VyZmFjZVBvb2w6
OmFkZFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjZSkKK3ZvaWQgSU9T
dXJmYWNlUG9vbDo6YWRkU3VyZmFjZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZh
Y2UpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmICghc2hvdWxkQ2Fj
aGVTdXJmYWNlKCpzdXJmYWNlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaAppbmRleCA1MjYzODZkMzUyNjAwZjE4NDAxZmU3MWU2
NTFkZGFhYjIwZTNkOGZmLi5kZjAzYzlkNjI0MmEyYjI4Y2M0NzRkODNjZjBjMGY3MWZkYWU0Yzll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZh
Y2VQb29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJm
YWNlUG9vbC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgSU9TdXJmYWNlUG9vbCYgc2hhcmVkUG9vbCgpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gdGFrZVN1cmZhY2UoSW50U2l6ZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNw
YWNlJiwgSU9TdXJmYWNlOjpGb3JtYXQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkU3Vy
ZmFjZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYpOwogCiAgICAgdm9pZCBk
aXNjYXJkQWxsU3VyZmFjZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5j
cHAKaW5kZXggNmQ5MzYyZGRhODIzNTcyODg1ZmI2N2ViOWZlMWJiMTM2OTIxNDEzMi4uZTIwNmQ5
NjE1MTZlMDBmODZhZTNmN2YzMjE1OTZjYmJhODhkOGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgSEFWRShJT1NVUkZBQ0Up
CiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgotI2luY2x1ZGUgIklPU3VyZmFjZS5o
IgorI2luY2x1ZGUgIklPU3VyZmFjZVBvb2wuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNz
Lmg+CkBAIC04Nyw3ICs4Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlCiAgICAgaWYgKGJh
Y2tlbmRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRv
IHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIHBh
cmFtZXRlcnMuY29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhlbEZvcm1hdChwYXJh
bWV0ZXJzLnBpeGVsRm9ybWF0KSk7CisgICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVh
dGUoJklPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKSwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXpl
LCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQo
cGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIEltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZDo6c2V0Vm9sYXRpbGl0eVN0YXRlKFZvbGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5
UwogCiB2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6cmVsZWFzZUJ1ZmZlclRvUG9v
bCgpCiB7Ci0gICAgSU9TdXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUobV9zdXJmYWNlKSk7Cisg
ICAgSU9TdXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUobV9zdXJmYWNlKSwgJklPU3VyZmFjZVBv
b2w6OnNoYXJlZFBvb2woKSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjplbnN1cmVOYXRpdmVJbWFnZXNIYXZlQ29waWVkQmFja2luZ1N0b3JlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCmluZGV4IGVlMTg2MzM0NzAyMWZhYzRjYjA2NWEyY2U5NDNkMjc4
Yjk0YzllZGIuLjQwNmNiOTNkYjM5NzdmOTQ2ZTBjMmVlNGJkNGM0NGE5MjlmOGU5NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAi
QU5HTEVVdGlsaXRpZXNDb2NvYS5oIgogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQg
IkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCisjaW1wb3J0ICJJT1N1cmZh
Y2VQb29sLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgog
I2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCkBAIC01NzMsNyArNTc0LDcgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHRHTENvY29hOjpyZXNoYXBlRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogYm9vbCBH
cmFwaGljc0NvbnRleHRHTENvY29hOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2lu
ZygpCiB7CiAgICAgQVNTRVJUKCFnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLmlzRW1wdHko
KSk7Ci0gICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFt
ZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOworICAgIGF1dG8g
YmFja2luZyA9IElPU3VyZmFjZTo6Y3JlYXRlKCZJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCks
IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QigpKTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
bV9yZXNvdXJjZU93bmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCBjZDY1ODcwNWQxMWY1NjhjMzgxMWZjMzhlMjVkYjM2
ZGQ4MzEwZjA1Li44MTk4NTQzZDcwOWY1YzZkZjYzZGMzNTZlOWU1ZmMwM2YyZmFlNzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIElP
U3VyZmFjZVBvb2w7CiBjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxG
b3JtYXQgOiB1aW50OF90OwpAQCAtMTAwLDE5ICsxMDAsMTcgQEAgcHVibGljOgogICAgICAgICB1
aW50MzJfdCBtX2ZsYWdzOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYsIEZvcm1hdCA9IEZvcm1hdDo6QkdSQSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBJbnRTaXpl
IGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBGb3JtYXQgPSBGb3Jt
YXQ6OkJHUkEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBjcmVhdGUoSU9TdXJmYWNlUG9vbCosIEludFNpemUsIGNvbnN0IERlc3RpbmF0aW9u
Q29sb3JTcGFjZSYsIEZvcm1hdCA9IEZvcm1hdDo6QkdSQSk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJT1N1cmZhY2VQb29sKiwg
SW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNl
JiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2UoSU9TdXJmYWNlUG9vbCos
IENHSW1hZ2VSZWYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TZW5kUmlnaHQoY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0
JiYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tU3VyZmFjZShJT1N1cmZh
Y2VSZWYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFn
ZVJlZik7Ci0gICAgCi0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbUltYWdlQnVmZmVy
KFJlZlB0cjxJbWFnZUJ1ZmZlcj4pOwotI2VuZGlmCiAKLSAgICBXRUJDT1JFX0VYUE9SVCB+SU9T
dXJmYWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgbW92ZVRvUG9vbChzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmLCBJT1N1cmZhY2VQb29sKik7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBtb3ZlVG9Qb29sKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5JT1N1cmZhY2UoKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBJbnRTaXplIG1heGltdW1TaXplKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0TWF4aW11bVNpemUoSW50U2l6ZSk7CkBAIC0xNjAsNyArMTU4LDcgQEAgcHVi
bGljOgogCiAjaWYgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGJvb2wgYWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KEZvcm1hdCwg
Rm9ybWF0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwg
RnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChJT1N1cmZhY2VQ
b29sKiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZv
cm1hdCwgRnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+
JiYpOwogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNzSWRlbnRpdHkm
KTsKQEAgLTE3Miw3ICsxNzAsNiBAQCBwcml2YXRlOgogICAgIElPU3VyZmFjZShJbnRTaXplLCBJ
bnRTaXplIGNvbnRleHRTaXplLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBGb3JtYXQs
IGJvb2wmIHN1Y2Nlc3MpOwogICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+IHN1cmZhY2VGcm9tUG9vbChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBGb3JtYXQpOwogICAgIEludFNpemUgY29udGV4dFNpemUo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRTaXplOyB9CiAgICAgdm9pZCBzZXRDb250ZXh0U2l6
ZShJbnRTaXplKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDBhM2Q5ZWUxNTg0NzMxN2M0MDU1YzNmMWEzYWM2YTEx
MDNhNjQyNjYuLmQ4YWFlMjcxNDVjZjY5ZjFmNDc1MTBkODZiNzkxMTUyZDgyZDI2YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1w
b3J0ICJIb3N0V2luZG93LmgiCiAjaW1wb3J0ICJJT1N1cmZhY2VQb29sLmgiCi0jaW1wb3J0ICJJ
bWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3Jl
ZW4uaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgpAQCAtNDQsMjcgKzQzLDIwIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IElPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0
U2l6ZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4
ZWxGb3JtYXQpCitzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZShJ
T1N1cmZhY2VQb29sKiBwb29sLCBJbnRTaXplIHNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JT
cGFjZSYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewotICAgIGF1dG8gY2FjaGVk
U3VyZmFjZSA9IElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS50YWtlU3VyZmFjZShzaXplLCBj
b2xvclNwYWNlLCBwaXhlbEZvcm1hdCk7Ci0gICAgaWYgKCFjYWNoZWRTdXJmYWNlKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGNhY2hlZFN1cmZhY2UtPnNldENvbnRleHRTaXplKGNv
bnRleHRTaXplKTsKLSAgICByZXR1cm4gY2FjaGVkU3VyZmFjZTsKLX0KLQotc3RkOjp1bmlxdWVf
cHRyPElPU3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBjb25zdCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKLXsKLSAg
ICByZXR1cm4gSU9TdXJmYWNlOjpjcmVhdGUoc2l6ZSwgc2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQpOworICAgIHJldHVybiBJT1N1cmZhY2U6OmNyZWF0ZShwb29sLCBzaXplLCBzaXplLCBj
b2xvclNwYWNlLCBwaXhlbEZvcm1hdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQp
CitzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZShJT1N1cmZhY2VQ
b29sKiBwb29sLCBJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewotICAg
IGlmIChhdXRvIGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgY29udGV4dFNp
emUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1
cmZhY2U+IGNhY2hlZFN1cmZhY2U7CisgICAgaWYgKHBvb2wgJiYgKGNhY2hlZFN1cmZhY2UgPSBw
b29sLT50YWtlU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpKSB7CisgICAg
ICAgIGNhY2hlZFN1cmZhY2UtPnNldENvbnRleHRTaXplKGNvbnRleHRTaXplKTsKICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKElPU3VyZmFjZSwgc3RyZWFtIDw8ICJJT1N1cmZhY2U6OmNyZWF0ZSB0
b29rIGZyb20gcG9vbDogIiA8PCAqY2FjaGVkU3VyZmFjZSk7CiAgICAgICAgIHJldHVybiBjYWNo
ZWRTdXJmYWNlOwogICAgIH0KKwogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIGF1dG8g
c3VyZmFjZSA9IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwg
Y29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBzdWNjZXNzKSk7CiAgICAgaWYg
KCFzdWNjZXNzKSB7CkBAIC04Nyw3ICs3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IElPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvCiAg
ICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc3VyZmFj
ZSwgY29sb3JTcGFjZSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZh
Y2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQorc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoSU9TdXJmYWNlUG9vbCogcG9vbCwg
Q0dJbWFnZVJlZiBpbWFnZSkKIHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTk1LDcgKzg3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJm
YWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkKICAgICBzaXplX3Qgd2lkdGgg
PSBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0
SGVpZ2h0KGltYWdlKTsKIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKElu
dFNpemUod2lkdGgsIGhlaWdodCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZSB7IENHSW1hZ2VHZXRD
b2xvclNwYWNlKGltYWdlKSB9KTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0
ZShwb29sLCBJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgeyBD
R0ltYWdlR2V0Q29sb3JTcGFjZShpbWFnZSkgfSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHN1cmZhY2VDb250ZXh0ID0gc3VyZmFjZS0+ZW5z
dXJlUGxhdGZvcm1Db250ZXh0KCk7CkBAIC0xMDQsOSArOTYsMTAgQEAgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkK
ICAgICByZXR1cm4gc3VyZmFjZTsKIH0KIAotdm9pZCBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlKQordm9pZCBJT1N1cmZhY2U6Om1vdmVU
b1Bvb2woc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlLCBJT1N1cmZhY2VQb29s
KiBwb29sKQogewotICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5hZGRTdXJmYWNlKFdU
Rk1vdmUoc3VyZmFjZSkpOworICAgIGlmIChwb29sKQorICAgICAgICBwb29sLT5hZGRTdXJmYWNl
KFdURk1vdmUoc3VyZmFjZSkpOwogfQogCiBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpvcHRpb25zRm9y
QmlwbGFuYXJTdXJmYWNlKEludFNpemUgc2l6ZSwgdW5zaWduZWQgcGl4ZWxGb3JtYXQsIHNpemVf
dCBmaXJzdFBsYW5lQnl0ZXNQZXJQaXhlbCwgc2l6ZV90IHNlY29uZFBsYW5lQnl0ZXNQZXJQaXhl
bCkKQEAgLTQ4MSw3ICs0NzQsNyBAQCBib29sIElPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJv
bUZvcm1hdFRvRm9ybWF0KEZvcm1hdCBzb3VyY2VGb3JtYXQsIEZvcm1hdCBkZQogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZm9ybWF0LCBXVEY6OkZ1bmN0aW9u
PHZvaWQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4pPiYmIGNhbGxiYWNrKQordm9pZCBJT1N1
cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChJT1N1cmZhY2VQb29sKiBwb29sLCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0IGZvcm1hdCwgV1RGOjpGdW5jdGlvbjx2
b2lkKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KT4mJiBjYWxsYmFjaykKIHsKICAgICBzdGF0
aWMgSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYgYWNjZWxlcmF0b3I7CiAgICAgaWYgKCFhY2NlbGVy
YXRvcikgewpAQCAtNDk2LDcgKzQ4OSw3IEBAIHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3Jt
YXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGRlc3RpbmF0aW9uU3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKGluU3VyZmFjZS0+c2l6ZSgpLCBpblN1cmZhY2UtPmNvbG9yU3BhY2UoKSwg
Zm9ybWF0KTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uU3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRl
KHBvb2wsIGluU3VyZmFjZS0+c2l6ZSgpLCBpblN1cmZhY2UtPmNvbG9yU3BhY2UoKSwgZm9ybWF0
KTsKICAgICBpZiAoIWRlc3RpbmF0aW9uU3VyZmFjZSkgewogICAgICAgICBjYWxsYmFjayhudWxs
cHRyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJE
ZXZpY2UuY3BwCmluZGV4IGVkNGNlYzJhMjRkNzQ1OWNjMjZkNWIyYWI0MDllMTU5ZWRjMTcxMDIu
LjBiNmQwNjkyNTgwOWY1ODUxNGE1M2U4ZTdiODMzZTMzZTg0ZDNjZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lk
IFNpbXVsYXRlZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQoKQogCiAgICAgZm9yIChhdXRvJiBs
YXllciA6IG1fbGF5ZXJzKSB7CiAjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFUQSkK
LSAgICAgICAgZGF0YS5sYXllcnMuYWRkKGxheWVyLmtleSwgRnJhbWVEYXRhOjpMYXllckRhdGEg
eyAuc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKHJlY29tbWVuZGVkUmVzb2x1dGlvbihQbGF0
Zm9ybVhSOjpTZXNzaW9uTW9kZTo6SW1tZXJzaXZlVnIpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0IoKSkgfSk7CisgICAgICAgIGRhdGEubGF5ZXJzLmFkZChsYXllci5rZXksIEZyYW1lRGF0
YTo6TGF5ZXJEYXRhIHsgLnN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShudWxscHRyLCByZWNv
bW1lbmRlZFJlc29sdXRpb24oUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU6OkltbWVyc2l2ZVZyKSwg
RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpIH0pOwogI2Vsc2UKICAgICAgICAgZGF0YS5s
YXllcnMuYWRkKGxheWVyLmtleSwgRnJhbWVEYXRhOjpMYXllckRhdGEgeyAub3BhcXVlVGV4dHVy
ZSA9IGxheWVyLnZhbHVlIH0pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcAppbmRl
eCBjYzViOGI2NjU5NTBiNmU1OWI5YzJlMmY0Zjc4MjcwN2Y4YzEyMGMwLi4wMmY4NTA4MmVkYWRj
YTgwOTQ4NTRhYzgzYWVkNzBjYmUyZTBkNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAK
QEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpjcmVh
dGVGcmFtZUltYWdlQXRJbmRleChJbWFnZURlY29kZXJJZGVudGlmaWVyCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFn
ZShmcmFtZUltYWdlLmdldCgpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0
ZUZyb21JbWFnZShudWxscHRyLCBmcmFtZUltYWdlLmdldCgpKTsKICAgICBpZiAoIXN1cmZhY2Up
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvY29hLm1tCmluZGV4IGE3M2VjOTVjMjhhYmFiMTE2ZDA5ODhlYzRkYmQ5YjM0OWMz
YTdlNjkuLjIxODliZDkxYzU3NjFiZDU4MjY3MDkxMmJlMzNkNmViM2RhNWZlMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29h
L1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHN1
cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShwbGF0Zm9ybUltYWdl
LmdldCgpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZy
b21JbWFnZShudWxscHRyLCBwbGF0Zm9ybUltYWdlLmdldCgpKTsKICAgICBpZiAoIXN1cmZhY2Up
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmgKaW5kZXggZDU4NjNhM2VhZmQ1NGQ0NGM1Yjk4NGEwOTg0ZmIyNjRiZGEzOGE1NS4uMjRk
MDQzMmMwNzFhNzUzOTk2ODFmN2U1MTU3OTVlZWQxYjZjMjc1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9JT1N1cmZhY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5o
PgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDMwODBlYzQwMzYzNmE4NGFhMDUx
YTNmOGY4M2Q2OWUyYjEzMmEwOWYuLmJmYTdhODFjZTdmY2QzNGZmMDBkM2QwZmFlNmEwODNkZmNm
YWYzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tCkBAIC01Nyw3ICs1Nyw3IEBACiAjaW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
b0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yQ29jb2EuaD4KICNpbXBvcnQgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZVBvb2wuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVn
aXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBA
IC0xMDgzLDcgKzEwODMsNyBAQCAtIChSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtl
Vmlld1NuYXBzaG90CiAjZWxzZQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBz
aG90Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZW5kaWYKLSAg
ICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBh
bmRlZEludFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNl
OjpTUkdCKCksIHNuYXBzaG90Rm9ybWF0KTsKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJ
T1N1cmZhY2U6OmNyZWF0ZShudWxscHRyLCBXZWJDb3JlOjpleHBhbmRlZEludFNpemUoc25hcHNo
b3RTaXplKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHNuYXBzaG90
Rm9ybWF0KTsKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBz
ZWxmLmxheWVyLmNvbnRleHQuY29udGV4dElkLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pihz
ZWxmLmxheWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgpLCAwLCAwLCAmdHJhbnNmb3JtKTsKQEAgLTEw
OTIsNyArMTA5Miw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3
U25hcHNob3QKICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBjb21wcmVzc2VkRm9ybWF0
ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OllVVjQyMjsKICAgICBpZiAoV2ViQ29yZTo6
SU9TdXJmYWNlOjphbGxvd0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoc25hcHNob3RGb3Jt
YXQsIGNvbXByZXNzZWRGb3JtYXQpKSB7CiAgICAgICAgIGF1dG8gdmlld1NuYXBzaG90ID0gV2Vi
S2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZShudWxscHRyKTsKLSAgICAgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoV1RGTW92ZShzdXJmYWNlKSwgV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OllVVjQyMiwgW3ZpZXdTbmFwc2hvdF0oc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gY29udmVydGVkU3VyZmFjZSkgeworICAgICAgICBXZWJDb3JlOjpJT1N1
cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChudWxscHRyLCBXVEZNb3ZlKHN1cmZhY2UpLCBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyLCBbdmlld1NuYXBzaG90XShzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBjb252ZXJ0ZWRTdXJmYWNlKSB7CiAgICAgICAgICAgICBp
ZiAoY29udmVydGVkU3VyZmFjZSkKICAgICAgICAgICAgICAgICB2aWV3U25hcHNob3QtPnNldFN1
cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CiAgICAgICAgIH0pOwpAQCAtMzMzMyw3
ICszMzMzLDcgQEAgLSAodm9pZClfc25hcHNob3RSZWN0QWZ0ZXJTY3JlZW5VcGRhdGVzOihCT09M
KWFmdGVyU2NyZWVuVXBkYXRlcyByZWN0SW5WaWV3Q29vcmQKICAgICBOU1N0cmluZyAqZGlzcGxh
eU5hbWUgPSBzZWxmLndpbmRvdy5zY3JlZW4uZGlzcGxheUNvbmZpZ3VyYXRpb24ubmFtZTsKICAg
ICBpZiAoZGlzcGxheU5hbWUgJiYgIXNlbGYud2luZG93LmhpZGRlbikgewogICAgICAgICBUcmFj
ZVNjb3BlIHNuYXBzaG90U2NvcGUoUmVuZGVyU2VydmVyU25hcHNob3RTdGFydCwgUmVuZGVyU2Vy
dmVyU25hcHNob3RFbmQpOwotICAgICAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGlt
YWdlU2l6ZSkpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CisgICAg
ICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKG51bGxwdHIsIFdl
YkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdl
YkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICAgICAgaWYgKCFzdXJm
YWNlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKICAgICAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggMDA3NGRjYTc3MjdhOTY4NzRmYjFlZDM4NDdmNTE5ZTE2MDRhNTNmNy4uNDZhODM3
NzhlMjVkYmQwYjRkOGEwZGJmNjExNDE5NTM5MjE4MjVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ3MjYsNyArNDcyNiw3IEBAIFJlZlB0
cjxWaWV3U25hcHNob3Q+IFdlYlZpZXdJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKIAogICAgIGF1
dG8gY3JvcHBlZFNuYXBzaG90SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJ
blJlY3Qod2luZG93U25hcHNob3RJbWFnZS5nZXQoKSwgTlNSZWN0VG9DR1JlY3QoW3dpbmRvdyBj
b252ZXJ0UmVjdFRvQmFja2luZzpjcm9wcGVkSW1hZ2VSZWN0XSkpKTsKIAotICAgIGF1dG8gc3Vy
ZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKGNyb3BwZWRTbmFwc2hv
dEltYWdlLmdldCgpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNy
ZWF0ZUZyb21JbWFnZShudWxscHRyLCBjcm9wcGVkU25hcHNob3RJbWFnZS5nZXQoKSk7CiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuY3BwCmluZGV4IGE4Y2EzNDgwODFhOTNiMTRlNTcyMWZlMGQwMDI4YTFlYzg1Yzg0N2Eu
LjE5MTc2MGE4N2UzZjMxNDVjYzMwMTc5MWMxNWYzOWI0NjIxYTlmNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9JT1N1cmZhY2VQb29sLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEku
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KQEAgLTQ1LDcgKzQ2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGUKICAg
ICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5k
U2l6ZSwgcGFyYW1ldGVycy5jb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9y
bWF0KHBhcmFtZXRlcnMucGl4ZWxGb3JtYXQpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZh
Y2U6OmNyZWF0ZSgmSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLCBiYWNrZW5kU2l6ZSwgYmFj
a2VuZFNpemUsIHBhcmFtZXRlcnMuY29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhl
bEZvcm1hdChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcAppbmRleCA3ZDVmNDc2MGNhOGFiY2NhYjRhMTA0YzBhNGQ0N2VhNzE3
MzFhY2FkLi43ZGZkNTBiMTc4OTNlNDE0OTMxYWUwYmQxNjZmYmYyOWU3ZTJjMTFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9FdmVudFJlZ2lvbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNBLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZW5ndGhG
dW5jdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyQ29jb2EuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZTk4MDBiMDEzYTYyOTM4M2ViODI3Njdj
ZWJjZDY1OGZjMWNjMjc3Li40OTUxNzEwYWU2ZDk5Nzg3ODI1MWIwNWRkYzNhOWFlOWIzMGRiNDNi
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjItMDQtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSG9pc3QgdGhlIElPU3VyZmFjZVBvb2wgb3V0IG9mIElPU3VyZmFj
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4Njc1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAgICAgCisgICAgICAgIEEg
ZnV0dXJlIHBhdGNoIHdpbGwgYnJlYWsgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGVyZSBpcyBhIHNp
bmdsZXRvbiBJT1N1cmZhY2VQb29sIHBlcgorICAgICAgICBwcm9jZXNzLCBzbyB3ZSBjYW4ndCBo
YXZlIElPU3VyZmFjZTo6Y3JlYXRlKCkgY29uc3VsdCB0aGUgcG9vbCBpbnRlcm5hbGx5LiBJbnN0
ZWFkLAorICAgICAgICBwYXNzIHRoZSBwb29sIHRvIHRoZSBjcmVhdGUoKSBmdW5jdGlvbnMsIGFu
ZCB0byB0aGUgbW92ZVRvUG9vbCgpIGZ1bmN0aW9uLgorCisgICAgICAgIENhbGxlcnMgaW4gdGhl
IHdlYiBwcm9jZXNzIHBhc3MgSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpOyB0aG9zZSBpbiB0
aGUgVUkgcHJvY2VzcworICAgICAgICBwYXNzIG51bGxwdHIgdG8gYXZvaWQgcG9vbCBjcmVhdGlv
biB0aGVyZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0
SU9TLm1tOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KToKKwogMjAy
Mi0wMy0zMCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtXUEVdIGdlbmVyYXRlLWJ1bmRsZTogc2VsZi1jb250YWluZWQgYnVu
ZGxlIGZvciB0aGUgTWluaUJyb3dzZXIgdGhhdCBjYW4gd29yayBvbiBhbnkgZGlzdHJvCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCmluZGV4IDZl
Y2E2MGYyMGQ2NmI1NWI4YmNlOGU3ZmVmZTNkNjAwYTM5YmRmYjAuLmZiYTQ5ZTE0NTkwYzMwN2Iz
OWQwYmY2MDRjZGNkOGVjOTA2ZmE5MTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lv
cy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCkBAIC03Miw3ICs3Miw3IEBAIFJlZlB0cjxCaXRtYXBD
b250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9v
bCBpbmNyZW1lCiAjZWxzZQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90
Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZW5kaWYKLSAgICBh
dXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRl
ZEludFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCKCksIHNuYXBzaG90Rm9ybWF0KTsKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZShudWxscHRyLCBXZWJDb3JlOjpleHBhbmRlZEludFNpemUoc25hcHNob3RT
aXplKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHNuYXBzaG90Rm9y
bWF0KTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IHN1cmZhY2UtPmNyZWF0
ZUltYWdlKCk7CiAKICAgICB2b2lkKiBiaXRtYXBCdWZmZXIgPSBudWxscHRyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>