<?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>226318</bug_id>
          
          <creation_ts>2021-05-27 01:16:29 -0700</creation_ts>
          <short_desc>Introduce BifurcatedGraphicsContext</short_desc>
          <delta_ts>2021-05-27 12:15:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764246</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:16:29 -0700</bug_when>
    <thetext>Introduce BifurcatedGraphicsContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764247</commentid>
    <comment_count>1</comment_count>
      <attachid>429854</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:17:13 -0700</bug_when>
    <thetext>Created attachment 429854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764249</commentid>
    <comment_count>2</comment_count>
      <attachid>429855</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:19:38 -0700</bug_when>
    <thetext>Created attachment 429855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764250</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:20:15 -0700</bug_when>
    <thetext>If anyone has a way to do this more neatly (I secretly wish this were ObjC) or a better name, I am ALL EARS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764252</commentid>
    <comment_count>4</comment_count>
      <attachid>429856</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:33:56 -0700</bug_when>
    <thetext>Created attachment 429856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764255</commentid>
    <comment_count>5</comment_count>
      <attachid>429858</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 01:40:42 -0700</bug_when>
    <thetext>Created attachment 429858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764381</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-27 10:08:23 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 429858 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764422</commentid>
    <comment_count>7</comment_count>
      <attachid>429903</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 11:18:11 -0700</bug_when>
    <thetext>Created attachment 429903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764450</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-27 12:14:08 -0700</bug_when>
    <thetext>Committed r278172 (238215@main): &lt;https://commits.webkit.org/238215@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429903.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764451</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-27 12:15:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78580984&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429854</attachid>
            <date>2021-05-27 01:17:13 -0700</date>
            <delta_ts>2021-05-27 01:19:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226318-20210527011712.patch</filename>
            <type>text/plain</type>
            <size>39803</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlNzNkODk5ZTk2ZGZl
NzYyOTI0MDIxOTBiYmY0NTcyYzU4NzUwNC4uNGMxZTRiN2Y0M2RiYzExNjAwNmE1YzY2NjFiZGY5
ZGYzZmJjODJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZXcgdGVzdDogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
LkJhc2ljQmlmdXJjYXRlZENvbnRleHQKKworICAgICAgICBJbnRyb2R1Y2UgYSBHcmFwaGljc0Nv
bnRleHQgc3ViY2xhc3MgdGhhdCBmb3J3YXJkcyBwYWludGluZyAKKyAgICAgICAgdG8gdHdvIGFy
Yml0cmFyeSBjaGlsZCBHcmFwaGljc0NvbnRleHRzLiBUaGlzIGNhbiBiZSB1c2VkLCBmb3IgZXhh
bXBsZSwKKyAgICAgICAgdG8gcGFpbnQgaW50byBhIGJpdG1hcCBhbmQgZGlzcGxheSBsaXN0IHNp
bXVsdGFuZW91c2x5LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Qmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1D
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnNhdmUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUm91bmRlZFJlY3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUVsbGlwc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojppc0NB
TGF5ZXJDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUNhcCk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lSm9pbik6
CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxp
bWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmNvbmNhdENUTSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpzZXRDVE0pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXREZXN0
aW5hdGlvbkZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQuaDogQWRkZWQuCisKIDIwMjEtMDUtMjYgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGhhbmcgb250byBleHBpcmVkIHJlc291
cmNlcyB3aXRob3V0IHZhbGlkYXRpb24gaGVhZGVycyBpbiBtZW1vcnkgY2FjaGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNDhiYTkzNGVlZGIxZjQ5NzFlMmZlNzA5NDZhNzRmMmFlNTJmYjQwZi4uZWQ1OWYwNTJjNzQ0
NzY4NWY2NDE3MTExNTExYzI2NjJkNjc2YzY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNS0yNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbnRyb2R1Y2UgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MzE4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
R0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kOjpjcmVhdGUpOgorCiAyMDIxLTA1LTI1ICBM
YXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFu
b3RoZXIgR0NDOCBidWlsZCBmaXggYWZ0ZXIgcjI3ODAzNQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXgg
Y2VjZmI1NThjMjZmNDI4YWIyNTFiYzhiYzBmOGE4MmFmMDYwZjliYi4uMjc1ZjUwYmZjYzY2YzBl
NTcyZjM4N2Q1ZWJiMTBjZjAzYzI4OTRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTgwLDYg
KzExODAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0FuaW1hdGlvbkZyYW1lUmF0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb21wb25lbnRzLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggZWFhZmI5ZTBiMzZiZDMwZjdkODE3ODk2MmVmNWYzMDA3ZDNjNGNlZi4u
YWUwN2UwNjFmM2UwODNlMTE2MWY5NmRjMTU4YzhhZmI3YThkZTk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE5NDAsNiArMTk0MCw3IEBAIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZENvbnN0YW50cy5j
cHAKIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlv
bkZyYW1lUmF0ZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JCbGVuZGluZy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
MDBiMTMzOWNiNTlhZjY0MzNkZjIxYWU2MWVjNTJlZGVmMzBlN2EzLi45ZTUxYTkzODE3ODA1ZTYx
MDAwZWY1ODIwNTE5OThmNGJiZGU0MTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NjUsNiArODY1LDcgQEAKIAkJMkRBRjM0
M0QxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0YW50UHJvcGVydHlNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUYzNDNCMUVBN0UwRjEwMDM4MkNE
MyAvKiBDb25zdGFudFByb3BlcnR5TWFwLmggKi87IH07CiAJCTJEQzhEMzk4MjVGMkZFOTcwMENG
Q0JBQiAvKiBNb2RlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRDOEQzOTcyNUYyRkU5NDAwQ0ZDQkFCIC8qIE1vZGVsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkRENUE3MjcxRUJFRTQ3RDAwOUJB
NTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ1QTcyNjFFQkVFNDdEMDA5QkE1OTcgLyogQ29tcG9zaXRp
b25VbmRlcmxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkyREQ4NzE0QjI2NUY0MzY2MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRE
ODcxNDkyNjVGNDM2NTAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREU3MDAyMzE5
MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MDAyMjE5MkZFODJB
MDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi87IH07CiAJCTJE
RjUxMkNFMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERjUxMkNDMUQ4
NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJ
MkRGQTQ4OEYxREI1NDFEMDAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTQ4OEUxREI1NDFDMjAwMzYyQjk5
IC8qIEJ1ZmZlclNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC03MzM2LDYgKzczMzcsOCBAQAogCQkyREM4RDM5NjI1RjJGRTkzMDBDRkNC
QUIgLyogTW9kZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kZWwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREM4RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRE
NUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBvc2l0aW9uVW5kZXJsaW5lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3QyAvKiBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyREQ4NzE0OTI2NUY0MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTcwMDIyMTkyRkU4
MkEwMEIwOTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjUxMkNCMUQ4NzNFNDcwMDFENjc4MCAv
KiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI2OTA4LDYgKzI2OTExLDggQEAKIAkJCQkwRjdFNDc1MTI1RUVCNzlBMDAxM0Y5MDkgLyog
QW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk3MjJBODE1QzIzOEZENTA1MDBDMDA1ODMg
LyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVGMjlFRTkxNzE1REQwOTAwQzRCNEM5
IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwICovLAorCQkJCTJERDg3MTQ5MjY1RjQz
NjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJQTg5OTQz
MjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcEltYWdlLmNwcCAqLywKIAkJCQlBODk5NDMyNjBC
NDIzMzg3MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuaCAqLywKIAkJCQlCMjc1MzUzODBCMDUzODE0
MDAyQ0U2NEYgLyogQ29sb3IuY3BwICovLApAQCAtMzE3MjMsNiArMzE3MjgsNyBAQAogCQkJCUIy
QzNEQTI1MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRTc4OTg2MTEyMEU3QTYwMDYwRUNFNSAvKiBCaWRpUnVuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEM0MDI5MzEzNDhCMjIyMDA2M0YxRTUgLyogQmlkaVJ1bkxpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJERDg3MTRCMjY1RjQzNjYwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4RDEyQjAyNkY3MDBDMUEzNTkgLyog
QmlxdWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyNTEyQjAyNjc2MDBDMUEzNTkgLyog
QmlxdWFkRFNQS2VybmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREM1NEYwNTEzOTlCMERBMDA4
RDkxMTcgLyogQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNWEyN2QzYmM4NjQxYWNlYzhlMmQwODgzMGQ2YWQw
ZTMzZGZkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMCwwICsxLDM4MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OkJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBwcmltYXJ5Q29udGV4dCwgR3JhcGhpY3NDb250
ZXh0JiBzZWNvbmRhcnlDb250ZXh0KQorICAgIDogbV9wcmltYXJ5Q29udGV4dChwcmltYXJ5Q29u
dGV4dCkKKyAgICAsIG1fc2Vjb25kYXJ5Q29udGV4dChzZWNvbmRhcnlDb250ZXh0KQoreworfQor
CitCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCgp
Cit7Cit9CisKK2Jvb2wgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6aGFzUGxhdGZvcm1Db250
ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5oYXNQbGF0Zm9ybUNv
bnRleHQoKTsKK30KKworUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpbWFy
eUNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dDo6c2F2ZSgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zYXZlKCk7CisgICAgbV9z
ZWNvbmRhcnlDb250ZXh0LnNhdmUoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpyZXN0b3JlKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnJlc3RvcmUoKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQucmVzdG9yZSgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhp
Y2tuZXNzKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd1JlY3QocmVjdCwgYm9yZGVyVGhp
Y2tuZXNzKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd1JlY3QocmVjdCwgYm9yZGVyVGhp
Y2tuZXNzKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZShj
b25zdCBGbG9hdFBvaW50JiBmcm9tLCBjb25zdCBGbG9hdFBvaW50JiB0bykKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LmRyYXdMaW5lKGZyb20sIHRvKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQu
ZHJhd0xpbmUoZnJvbSwgdG8pOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250
ZXh0LmRyYXdFbGxpcHNlKHJlY3QpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3RWxsaXBz
ZShyZWN0KTsKK30KKworI2lmIFVTRShDRykgfHwgVVNFKERJUkVDVDJEKQordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjphcHBseVN0cm9rZVBhdHRlcm4oKQoreworICAgIG1fcHJpbWFy
eUNvbnRleHQuYXBwbHlTdHJva2VQYXR0ZXJuKCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmFw
cGx5U3Ryb2tlUGF0dGVybigpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmFwcGx5RmlsbFBhdHRlcm4oKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuYXBwbHlGaWxsUGF0
dGVybigpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5hcHBseUZpbGxQYXR0ZXJuKCk7Cit9Cisj
ZW5kaWYKKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aChjb25zdCBQ
YXRoJiBwYXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd1BhdGgocGF0aCk7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LmRyYXdQYXRoKHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5maWxsUGF0aChwYXRoKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZmlsbFBh
dGgocGF0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0
aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc3Ryb2tlUGF0aChw
YXRoKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKK30KKwordm9p
ZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0
IG9wYWNpdHkpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVy
KG9wYWNpdHkpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVy
KG9wYWNpdHkpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5z
cGFyZW5jeUxheWVyKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxh
eWVyKCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZpY2VTY2FsZUZhY3Rv
cihmbG9hdCBmYWN0b3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5hcHBseURldmljZVNjYWxl
RmFjdG9yKGZhY3Rvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmFwcGx5RGV2aWNlU2NhbGVG
YWN0b3IoZmFjdG9yKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxs
UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5maWxs
UmVjdChyZWN0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCk7Cit9CisK
K3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5maWxs
UmVjdChyZWN0LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qs
IGNvbG9yKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRl
ZFJlY3RJbXBsKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xv
cikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSb3VuZGVkUmVjdEltcGwocmVjdCwgY29s
b3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUm91bmRlZFJlY3RJbXBsKHJlY3QsIGNv
bG9yKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhS
b3VuZGVkSG9sZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3Qm
IHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fcHJpbWFyeUNv
bnRleHQuZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhvbGVSZWN0LCBjb2xv
cik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKHJlY3Qs
IHJvdW5kZWRIb2xlUmVjdCwgY29sb3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQ6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9wcmltYXJ5
Q29udGV4dC5jbGVhclJlY3QocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNsZWFyUmVj
dChyZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQoreworICAgIG1fcHJpbWFy
eUNvbnRleHQuc3Ryb2tlUmVjdChyZWN0LCBsaW5lV2lkdGgpOworICAgIG1fc2Vjb25kYXJ5Q29u
dGV4dC5zdHJva2VSZWN0KHJlY3QsIGxpbmVXaWR0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZmlsbEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQorewor
ICAgIG1fcHJpbWFyeUNvbnRleHQuZmlsbEVsbGlwc2UoZWxsaXBzZSk7CisgICAgbV9zZWNvbmRh
cnlDb250ZXh0LmZpbGxFbGxpcHNlKGVsbGlwc2UpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQ6OnN0cm9rZUVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQorewor
ICAgIG1fcHJpbWFyeUNvbnRleHQuc3Ryb2tlRWxsaXBzZShlbGxpcHNlKTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQuc3Ryb2tlRWxsaXBzZShlbGxpcHNlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpzZXRJc0NBTGF5ZXJDb250ZXh0KGJvb2wgaXNDQUxheWVyQ29udGV4
dCkKK3sKKyAgICAvLyBGSVhNRTogUmVhbGx5LCB0aG91Z2g/CisgICAgbV9wcmltYXJ5Q29udGV4
dC5zZXRJc0NBTGF5ZXJDb250ZXh0KGlzQ0FMYXllckNvbnRleHQpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5zZXRJc0NBTGF5ZXJDb250ZXh0KGlzQ0FMYXllckNvbnRleHQpOworfQorCitib29s
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmlzQ0FMYXllckNvbnRleHQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LmlzQ0FMYXllckNvbnRleHQoKTsKK30KKwordm9p
ZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29s
IGlzQWNjZWxlcmF0ZWRDb250ZXh0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0SXNBY2Nl
bGVyYXRlZENvbnRleHQoaXNBY2NlbGVyYXRlZENvbnRleHQpOworICAgIG1fc2Vjb25kYXJ5Q29u
dGV4dC5zZXRJc0FjY2VsZXJhdGVkQ29udGV4dChpc0FjY2VsZXJhdGVkQ29udGV4dCk7Cit9CisK
K1JlbmRlcmluZ01vZGUgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cmVuZGVyaW5nTW9kZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQucmVuZGVyaW5nTW9kZSgpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcChyZWN0KTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQuY2xpcChyZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpjbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250
ZXh0LmNsaXBPdXQocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNsaXBPdXQocmVjdCk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dChjb25zdCBQYXRo
JiBwYXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKKyAgICBtX3Nl
Y29uZGFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSB3aW5kUnVsZSkK
K3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmNsaXBQYXRoKHBhdGgsIHdpbmRSdWxlKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOworfQorCitJbnRSZWN0
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaW1hcnlDb250ZXh0LmNsaXBCb3VuZHMoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LnNldExpbmVDYXAobGluZUNhcCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0
LnNldExpbmVDYXAobGluZUNhcCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6c2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5JiBkYXNoQXJyYXksIGZsb2F0IGRhc2hPZmZz
ZXQpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRhc2hP
ZmZzZXQpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRh
c2hPZmZzZXQpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldExpbmVK
b2luKExpbmVKb2luIGxpbmVKb2luKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TGluZUpv
aW4obGluZUpvaW4pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lSm9pbihsaW5lSm9p
bik7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdChm
bG9hdCBtaXRlckxpbWl0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdCht
aXRlckxpbWl0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdChtaXRlckxp
bWl0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1h
Z2UoTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQu
ZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBzZWxmU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IG9wdGlvbnMpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZl
SW1hZ2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK3ZvaWQg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2
ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBt
X3ByaW1hcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJbWFnZSwgaW1hZ2VT
aXplLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzY2FsZShj
b25zdCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2NhbGUoc2Nh
bGUpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zY2FsZShzY2FsZSk7Cit9CisKK3ZvaWQgQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKQorewor
ICAgIG1fcHJpbWFyeUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQudHJh
bnNsYXRlKHgsIHkpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNvbmNh
dENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3sKKyAgICBtX3ByaW1hcnlD
b250ZXh0LmNvbmNhdENUTSh0cmFuc2Zvcm0pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jb25j
YXRDVE0odHJhbnNmb3JtKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpz
ZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCit7CisgICAgbV9wcmltYXJ5
Q29udGV4dC5zZXRDVE0odHJhbnNmb3JtKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0Q1RN
KHRyYW5zZm9ybSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpnZXRDVE0oSW5jbHVkZURldmljZVNjYWxlIGluY2x1ZGVEZXZpY2VTY2FsZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5nZXRDVE0oaW5jbHVkZURldmljZVNjYWxl
KTsKK30KKworRmxvYXRSZWN0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZp
Y2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBSb3VuZGluZ01vZGUgcm91bmRpbmdNb2Rl
KQoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LnJvdW5kVG9EZXZpY2VQaXhlbHMocmVj
dCwgcm91bmRpbmdNb2RlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgs
IGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQuZHJhd0ZvY3VzUmluZyhyZWN0cywgd2lkdGgsIG9mZnNldCwgY29sb3IpOworICAgIG1fc2Vj
b25kYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25z
dCBQYXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29s
b3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHdpZHRoLCBv
ZmZzZXQsIGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0ZvY3VzUmluZyhwYXRo
LCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwg
ZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHRpbWVPZmZzZXQs
IG5lZWRzUmVkcmF3LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdGb2N1c1Jp
bmcocGF0aCwgdGltZU9mZnNldCwgbmVlZHNSZWRyYXcsIGNvbG9yKTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJl
Y3Q+JiByZWN0cywgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBD
b2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3Rz
LCB0aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB0aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOwor
fQorI2VuZGlmCisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9y
VGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBEYXNo
QXJyYXkmIHdpZHRocywgYm9vbCBwcmludGluZywgYm9vbCBkb3VibGVMaW5lcywgU3Ryb2tlU3R5
bGUgc3Ryb2tlU3R5bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TGluZXNGb3JUZXh0
KHBvaW50LCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZUxpbmVzLCBzdHJva2VT
dHlsZSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHRo
aWNrbmVzcywgd2lkdGhzLCBwcmludGluZywgZG91YmxlTGluZXMsIHN0cm9rZVN0eWxlKTsKK30K
Kwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgbWFya2Vy
U3R5bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3RG90c0ZvckRvY3VtZW50TWFya2Vy
KHJlY3QsIG1hcmtlclN0eWxlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0RvdHNGb3JE
b2N1bWVudE1hcmtlcihyZWN0LCBtYXJrZXJTdHlsZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0VVJMRm9yUmVjdCh1cmwsIHJl
Y3QpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRVUkxGb3JSZWN0KHVybCwgcmVjdCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0RGVzdGluYXRpb25Gb3JSZWN0
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJp
bWFyeUNvbnRleHQuc2V0RGVzdGluYXRpb25Gb3JSZWN0KG5hbWUsIHJlY3QpOworICAgIG1fc2Vj
b25kYXJ5Q29udGV4dC5zZXREZXN0aW5hdGlvbkZvclJlY3QobmFtZSwgcmVjdCk7Cit9CisKK3Zv
aWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgbV9wcmltYXJ5
Q29udGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworICAgIG1fc2Vjb25k
YXJ5Q29udGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworfQorCitib29s
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQuc3VwcG9ydHNJbnRlcm5hbExpbmtzKCk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6dXBkYXRlU3RhdGUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBmbGFncykKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0
YXRlLCBmbGFncyk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0YXRlLCBm
bGFncyk7Cit9CisKKyNpZiBPUyhXSU5ET1dTKQorR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0ZUNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LmRlcHJlY2F0ZWRQcml2YXRl
Q29udGV4dCgpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZmNkOWMzYjExYjYwYmY2OWIyYmU1MDk5MjUz
NDBkYTcxNDE1NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKQEAgLTAsMCArMSwxNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVm
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dCBhbGxvd3MgeW91IHRvIGR1cGxpY2F0ZSBwYWludGluZyBiZXR3ZWVuIHR3byBnaXZlbiBHcmFw
aGljc0NvbnRleHRzOworLy8gZm9yIGV4YW1wbGUsIGZvciBwYWludGluZyBpbnRvIGEgYml0bWFw
LWJhY2tlZCBhbmQgYSBkaXNwbGF5LWxpc3QtYmFja2VkIGNvbnRleHQgc2ltdWx0YW5lb3VzbHku
CisvLyBBbnkgc3RhdGUgdGhhdCBpcyByZXR1cm5lZCBieSBHcmFwaGljc0NvbnRleHQgbWV0aG9k
cyB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcmltYXJ5IGNvbnRleHQuCisKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgOiBwdWJsaWMgR3JhcGhpY3ND
b250ZXh0IHsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKK3B1YmxpYzoKKyAgICBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgcHJpbWFyeUNvbnRleHQs
IEdyYXBoaWNzQ29udGV4dCYgc2Vjb25kYXJ5Q29udGV4dCk7CisgICAgfkJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQoKTsKKworICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Cisg
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IGZpbmFs
OworCisgICAgdm9pZCBzYXZlKCkgZmluYWw7CisgICAgdm9pZCByZXN0b3JlKCkgZmluYWw7CisK
KyAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVz
cyA9IDEpIGZpbmFsOworICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOworCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCisgICAgdm9pZCBhcHBs
eVN0cm9rZVBhdHRlcm4oKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKSBmaW5h
bDsKKyNlbmRpZgorICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZv
aWQgZmlsbFBhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlUGF0aChjb25z
dCBQYXRoJikgZmluYWw7CisKKyAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQg
b3BhY2l0eSkgZmluYWw7CisgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFsOwor
CisgICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZhY3RvcikgZmluYWw7CisK
KyAgICB1c2luZyBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0OworICAgIHZvaWQgZmlsbFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZmlsbFJvdW5kZWRSZWN0SW1wbChj
b25zdCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGZp
bGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGNs
ZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZVJlY3QoY29u
c3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKSBmaW5hbDsKKworICAgIHZvaWQgZmlsbEVs
bGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZUVs
bGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKworICAgIHZvaWQgc2V0SXND
QUxheWVyQ29udGV4dChib29sKSBmaW5hbDsKKyAgICBib29sIGlzQ0FMYXllckNvbnRleHQoKSBj
b25zdCBmaW5hbDsKKworICAgIHZvaWQgc2V0SXNBY2NlbGVyYXRlZENvbnRleHQoYm9vbCkgZmlu
YWw7CisgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgZmluYWw7CisKKyAg
ICB2b2lkIGNsaXAoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBjbGlwT3V0KGNv
bnN0IEZsb2F0UmVjdCYpIGZpbmFsOworCisgICAgdm9pZCBjbGlwT3V0KGNvbnN0IFBhdGgmKSBm
aW5hbDsKKworICAgIHZvaWQgY2xpcFBhdGgoY29uc3QgUGF0aCYsIFdpbmRSdWxlID0gV2luZFJ1
bGU6OkV2ZW5PZGQpIGZpbmFsOworCisgICAgSW50UmVjdCBjbGlwQm91bmRzKCkgY29uc3QgZmlu
YWw7CisKKyAgICB2b2lkIHNldExpbmVDYXAoTGluZUNhcCkgZmluYWw7CisgICAgdm9pZCBzZXRM
aW5lRGFzaChjb25zdCBEYXNoQXJyYXkmLCBmbG9hdCBkYXNoT2Zmc2V0KSBmaW5hbDsKKyAgICB2
b2lkIHNldExpbmVKb2luKExpbmVKb2luKSBmaW5hbDsKKyAgICB2b2lkIHNldE1pdGVyTGltaXQo
ZmxvYXQpIGZpbmFsOworCisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBj
b25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkg
ZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisKKyAgICB1c2luZyBHcmFwaGljc0NvbnRl
eHQ6OnNjYWxlOworICAgIHZvaWQgc2NhbGUoY29uc3QgRmxvYXRTaXplJikgZmluYWw7CisgICAg
dm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpIGZpbmFsOworICAgIHZvaWQgdHJhbnNs
YXRlKGZsb2F0IHgsIGZsb2F0IHkpIGZpbmFsOworCisgICAgdm9pZCBjb25jYXRDVE0oY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJikgZmluYWw7CisgICAgdm9pZCBzZXRDVE0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJikgZmluYWw7CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKEluY2x1ZGVEZXZp
Y2VTY2FsZSA9IFBvc3NpYmx5SW5jbHVkZURldmljZVNjYWxlKSBjb25zdCBmaW5hbDsKKworICAg
IEZsb2F0UmVjdCByb3VuZFRvRGV2aWNlUGl4ZWxzKGNvbnN0IEZsb2F0UmVjdCYsIFJvdW5kaW5n
TW9kZSA9IFJvdW5kQWxsU2lkZXMpIGZpbmFsOworCisgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNv
bnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiwgZmxvYXQsIGZsb2F0LCBjb25zdCBDb2xvciYpIGZpbmFs
OworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgZmxvYXQsIGZsb2F0LCBjb25z
dCBDb2xvciYpIGZpbmFsOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIGRyYXdGb2N1c1Jp
bmcoY29uc3QgUGF0aCYsIGRvdWJsZSwgYm9vbCYsIGNvbnN0IENvbG9yJikgZmluYWw7CisgICAg
dm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiwgZG91YmxlLCBib29s
JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyNlbmRpZgorCisgICAgdm9pZCBkcmF3TGluZXNGb3JU
ZXh0KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IERhc2hBcnJheSYg
d2lkdGhzLCBib29sIHByaW50aW5nLCBib29sIGRvdWJsZUxpbmVzLCBTdHJva2VTdHlsZSkgZmlu
YWw7CisKKyAgICB2b2lkIGRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0
JiwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOworCisgICAgdm9pZCBzZXRVUkxGb3JS
ZWN0KGNvbnN0IFVSTCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworCisgICAgdm9pZCBzZXRE
ZXN0aW5hdGlvbkZvclJlY3QoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBGbG9hdFJlY3QmKSBm
aW5hbDsKKyAgICB2b2lkIGFkZERlc3RpbmF0aW9uQXRQb2ludChjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKKworICAgIGJvb2wgc3VwcG9ydHNJbnRlcm5hbExp
bmtzKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHVwZGF0ZVN0YXRlKGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpIGZp
bmFsOworCisjaWYgT1MoV0lORE9XUykKKyAgICBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGUqIGRlcHJlY2F0ZWRQcml2YXRlQ29udGV4dCgpIGNvbnN0IGZpbmFsOworI2VuZGlmCisKK3By
aXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0JiBtX3ByaW1hcnlDb250ZXh0OworICAgIEdyYXBo
aWNzQ29udGV4dCYgbV9zZWNvbmRhcnlDb250ZXh0OworfTsKKworfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVm
ZmVyQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dE
aXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXggYWNiOGNlYjI5ZDNkYWMzM2Rl
NzUxOTk2YmQyNTE0NTE5ZTlhYjAyYi4uYjEyMzZkMjNhMGNmYjJhOGRjOGFkYjFmY2M5YmE5MjQ5
MTI2MWRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNw
cApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKENHX0RJU1BMQVlfTElTVF9CQUNLRURf
SU1BR0VfQlVGRkVSKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
aXhlbEJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9DR0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXJBZGRpdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpA
QCAtNTUsNyArNTUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVy
QmFja2VuZD4gQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZAogICAgIGlmICghY2dDb250
ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gY29udGV4dCA9IG1ha2VV
bmlxdWU8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PihjZ0NvbnRleHQuZ2V0KCkpOworICAgIGF1
dG8gY29udGV4dCA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Q0c+KGNnQ29u
dGV4dC5nZXQoKSk7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDR0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXJCYWNrZW5kPihuZXcgQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZChwYXJh
bWV0ZXJzLCBXVEZNb3ZlKGNvbnRleHQpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYjM2Nzg0ZTYxZmJjN2ZlNTk1YmI1OGUwNmE5
MjAyMmEzMGE3NjgzLi40YTQ2Y2IxNjU4NGQyZDUwODE3ZWM0OWQ2MzM2Mjg5YjQ5NzQ5MGFiIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjEtMDUtMjcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW50cm9kdWNlIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjMxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0
c0NHLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0w
NS0yNiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3Rl
c3QtbGxkYi13ZWJraXRdIFVwZGF0ZSBmb3IgWGNvZGUgMTIuNQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4OWNhYTg3ODc4YWZjNmM1ZDk3M2RlOThiMzhhOTJiNTA0NzM2NzkwLi5jM2JkOThm
YWQ3NTA2NGMzZGU0NjdlYmM1N2VmNjE2MGE4ZjE1MGJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY3LDYgKzE2Nyw3IEBACiAJCTJEQzRDRjc3MUQyRDlERDgwMEVDQ0M5NCAvKiBEYXRh
RGV0ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRDNENGNzYxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi87IH07CiAJ
CTJEQzk0NTE3MjREOEFDMDIwMDQzMDM3NiAvKiBXZWJUaHJlYWRMb2NrLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDOTQ1MTYyNEQ4QUMwMjAwNDMw
Mzc2IC8qIFdlYlRocmVhZExvY2subW0gKi87IH07CiAJCTJERDdEM0FGMTc4MjI3QjMwMDI2RTFF
MyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ3RDNBRTE3ODIyN0FDMDAyNkUxRTMg
LyogbG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwgKi87IH07CisJCTJERDg3MTQ1MjY1RjIz
QjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ4NzE0NDI2NUYyM0I0
MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwICovOyB9Owog
CQkyREU3MUFGRTFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MUFGRDFENDlDMEJEMDA5
MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gKi87IH07CiAJCTJERTcxQjAwMUQ0OUMzRUQwMDkw
NDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtp
bmctZGl2Lmh0bWwgKi87IH07CiAJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAvKiBTbmFwc2hv
dFN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRGRjdCNkMxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gKi87IH07CkBAIC0x
OTQ5LDYgKzE5NTAsNyBAQAogCQkyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91
dEludGVncmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXV0b0xheW91dEludGVncmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
REQ3RDNBOTE3ODIwNUQwMDAyNkUxRTMgLyogUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzaXplUmV2ZXJzZVBh
Z2luYXRlZFdlYlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ3RDNB
RTE3ODIyN0FDMDAyNkUxRTMgLyogbG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAibG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyREQ4NzE0NDI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dFRlc3RzQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOyBwYXRoID0gY2cvQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyREU3MUFGRDFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBbmltYXRlZFJlc2l6ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5r
aW5nLWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJsaW5raW5nLWRpdi5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGRjdCNkMxREE0ODdBRjAwODE0
NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTbmFwc2hvdFN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDkxMyw2ICs0OTE1LDcgQEAKIAkJRjQ1NzI3NUIyNTU3OEM5RTAwN0FDQTM0IC8qIGNnICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyREQ4NzE0NDI2NUYy
M0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwICovLAog
CQkJCUY0NTcyNzVEMjU1NzhEMDYwMDdBQ0EzNCAvKiBEaXNwbGF5TGlzdFRlc3RzQ0cuY3BwICov
LAogCQkJKTsKIAkJCW5hbWUgPSBjZzsKQEAgLTUzMTEsNiArNTMxNCw3IEBACiAJCQkJMUM3RkVC
MjAyMDdDMEYyRTAwRDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUMxNUNCQjMwMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxNjkyRENBMjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0
ZXJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkREODcxNDUyNjVGMjNCNDAwNUY5OTdDIC8qIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3
NEI3QTYwMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVn
YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8qIEJ1
bmRsZVBhcmFtZXRlcnMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHND
Ry5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMzM3OWRlYmI2MTUzMzMzNDI2
MTY0YWVlZjZhZDY2OTczYjFhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3Bw
CkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBVU0UoQ0cpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRl
bXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzQ29udGV4dENHLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Jbk1lbW9yeURpc3BsYXlMaXN0Lmg+
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
dXNpbmcgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OwordXNpbmcgbmFtZXNwYWNlIERpc3BsYXlM
aXN0OworCitjb25zdGV4cHIgQ0dGbG9hdCBjb250ZXh0V2lkdGggPSAxOworY29uc3RleHByIENH
RmxvYXQgY29udGV4dEhlaWdodCA9IDE7CisKK1RFU1QoQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dFRlc3RzLCBCYXNpY0JpZnVyY2F0ZWRDb250ZXh0KQoreworICAgIGF1dG8gY29sb3JTcGFjZSA9
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgIGF1dG8gcHJpbWFyeUNHQ29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKG51bGxwdHIsIGNvbnRleHRXaWR0aCwg
Y29udGV4dEhlaWdodCwgOCwgNCAqIGNvbnRleHRXaWR0aCwgY29sb3JTcGFjZS5wbGF0Zm9ybUNv
bG9yU3BhY2UoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgYXV0byBz
ZWNvbmRhcnlDR0NvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShudWxscHRy
LCBjb250ZXh0V2lkdGgsIGNvbnRleHRIZWlnaHQsIDgsIDQgKiBjb250ZXh0V2lkdGgsIGNvbG9y
U3BhY2UucGxhdGZvcm1Db2xvclNwYWNlKCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFz
dCkpOworCisgICAgR3JhcGhpY3NDb250ZXh0Q0cgcHJpbWFyeUNvbnRleHQocHJpbWFyeUNHQ29u
dGV4dC5nZXQoKSk7CisKKyAgICBJbk1lbW9yeURpc3BsYXlMaXN0IGRpc3BsYXlMaXN0OworICAg
IFJlY29yZGVyIHNlY29uZGFyeUNvbnRleHQoZGlzcGxheUxpc3QsIHsgfSwgRmxvYXRSZWN0KDAs
IDAsIGNvbnRleHRXaWR0aCwgY29udGV4dEhlaWdodCksIHsgfSk7CisKKyAgICBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0IGN0eChwcmltYXJ5Q29udGV4dCwgc2Vjb25kYXJ5Q29udGV4dCk7CisK
KyAgICBjdHguZmlsbFJlY3QoRmxvYXRSZWN0KDAsIDAsIGNvbnRleHRXaWR0aCwgY29udGV4dEhl
aWdodCksIENvbG9yOjpyZWQpOworCisgICAgLy8gVGhlIHByaW1hcnkgY29udGV4dCBzaG91bGQg
aGF2ZSBvbmUgcmVkIHBpeGVsLgorICAgIENHQ29udGV4dEZsdXNoKHByaW1hcnlDR0NvbnRleHQu
Z2V0KCkpOworICAgIHVpbnQ4X3QqIHByaW1hcnlEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+
KENHQml0bWFwQ29udGV4dEdldERhdGEocHJpbWFyeUNHQ29udGV4dC5nZXQoKSkpOworICAgIEVY
UEVDVF9FUShwcmltYXJ5RGF0YVswXSwgMjU1KTsKKyAgICBFWFBFQ1RfRVEocHJpbWFyeURhdGFb
MV0sIDApOworICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVsyXSwgMCk7CisKKyAgICAvLyBUaGUg
c2Vjb25kYXJ5IGNvbnRleHQgc2hvdWxkIGhhdmUgYSByZWQgRmlsbFJlY3RXaXRoQ29sb3IuCisg
ICAgRVhQRUNUX0ZBTFNFKGRpc3BsYXlMaXN0LmlzRW1wdHkoKSk7CisgICAgYm9vbCBzYXdGaWxs
UmVjdCA9IGZhbHNlOworICAgIGZvciAoYXV0byBkaXNwbGF5TGlzdEl0ZW0gOiBkaXNwbGF5TGlz
dCkgeworICAgICAgICBhdXRvIGhhbmRsZSA9IGRpc3BsYXlMaXN0SXRlbS0+aXRlbTsKKyAgICAg
ICAgaWYgKGhhbmRsZS50eXBlKCkgIT0gSXRlbVR5cGU6OkZpbGxSZWN0V2l0aENvbG9yKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxlLmlzRHJhd2lu
Z0l0ZW0oKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS5pczxGaWxsUmVjdFdpdGhDb2xv
cj4oKSk7CisgICAgICAgIHNhd0ZpbGxSZWN0ID0gdHJ1ZTsKKyAgICAgICAgYXV0byYgaXRlbSA9
IGhhbmRsZS5nZXQ8RmlsbFJlY3RXaXRoQ29sb3I+KCk7CisgICAgICAgIEVYUEVDVF9FUShpdGVt
LnJlY3QoKSwgRmxvYXRSZWN0KDAsIDAsIGNvbnRleHRXaWR0aCwgY29udGV4dEhlaWdodCkpOwor
ICAgICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBDb2xvcjo6cmVkKTsKKyAgICB9CisKKyAg
ICBFWFBFQ1RfR1QoZGlzcGxheUxpc3Quc2l6ZUluQnl0ZXMoKSwgMFUpOworICAgIEVYUEVDVF9U
UlVFKHNhd0ZpbGxSZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisj
ZW5kaWYgLy8gVVNFKENHKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429855</attachid>
            <date>2021-05-27 01:19:38 -0700</date>
            <delta_ts>2021-05-27 01:33:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226318-20210527011937.patch</filename>
            <type>text/plain</type>
            <size>38669</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2NGJkZjBhYzMwN2Zh
MzgxYjgyNGY3M2Q2MzM0YTY4ZjVmOWQxNy4uMWJjYWUyNjk2NDJiNjM2OWU1MmQ0MjM0NDJlMzdj
M2E4NDU5MzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZXcgdGVzdDogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
LkJhc2ljQmlmdXJjYXRlZENvbnRleHQKKworICAgICAgICBJbnRyb2R1Y2UgYSBHcmFwaGljc0Nv
bnRleHQgc3ViY2xhc3MgdGhhdCBmb3J3YXJkcyBwYWludGluZyAKKyAgICAgICAgdG8gdHdvIGFy
Yml0cmFyeSBjaGlsZCBHcmFwaGljc0NvbnRleHRzLiBUaGlzIGNhbiBiZSB1c2VkLCBmb3IgZXhh
bXBsZSwKKyAgICAgICAgdG8gcGFpbnQgaW50byBhIGJpdG1hcCBhbmQgZGlzcGxheSBsaXN0IHNp
bXVsdGFuZW91c2x5LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Qmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1D
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnNhdmUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUm91bmRlZFJlY3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUVsbGlwc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojppc0NB
TGF5ZXJDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUNhcCk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lSm9pbik6
CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxp
bWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmNvbmNhdENUTSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpzZXRDVE0pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXREZXN0
aW5hdGlvbkZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQuaDogQWRkZWQuCisKIDIwMjEtMDUtMjYgIENhbWVyb24gTWNDb3JtYWNr
ICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IHNiaXggZ2x5cGhzIGZyb20g
YmVpbmcgcmVuZGVyZWQgaW4gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMjVhNDRkMzg4
ZjViYjI2MzllYjEwYzAxMDI0MzFiNWM1MDVlYTAuLmM0OTExNmMxMTU4NzMyMWFiMjdmYzQzNmJi
MTAyZWZlMWI2OWExY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMjcgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNl
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZDo6Y3JlYXRlKToKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExldmVyYWdlIHRoZSBuZXcgVmVjdG9yKGNvbnN0
IFQqLCBzaXplX3QpIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0ZGZhNjA1ZGQ2
YjAyOTkxNGNlNDdkMjZjM2Q4YTk5OGI5YzZkNTY1Li4xZTcxNzE0Yzg5NTFiOGQ0NDQxODc2ZWEy
YmEyOTA1ZjcxYWE3NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExODAsNiArMTE4MCw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9u
RnJhbWVSYXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBlYWFmYjllMGIzNmJkMzBmN2Q4MTc4OTYyZWY1ZjMwMDdkM2M0Y2VmLi5hZTA3ZTA2MWYz
ZTA4M2UxMTYxZjk2ZGMxNThjOGFmYjdhOGRlOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTk0MCw2
ICsxOTQwLDcgQEAgcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkQ29uc3RhbnRzLmNwcAogcGxhdGZv
cm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRl
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckJsZW5kaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ3MjY1ZWFjODdl
ODY1YTAxYTY4NzU0OGNiN2M3NWE3YjQwMDk1YWMuLmE1MTVjMjM0ODFmZjk4MjczNWNjZmUzNDNh
NGNjZDRhMzllOThlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg2NSw2ICs4NjUsNyBAQAogCQkyREFGMzQzRDFFQTdFMEYx
MDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBRjM0M0IxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0
YW50UHJvcGVydHlNYXAuaCAqLzsgfTsKIAkJMkRDOEQzOTgyNUYyRkU5NzAwQ0ZDQkFCIC8qIE1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM4
RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ1QTcyNzFFQkVFNDdEMDA5QkE1OTcgLyogQ29t
cG9zaXRpb25VbmRlcmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGlu
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJE
RDg3MTRCMjY1RjQzNjYwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ4NzE0OTI2NUY0
MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJERTcwMDIzMTkyRkU4MkEwMEIw
OTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAv
KiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLzsgfTsKIAkJMkRGNTEyQ0UxRDg3
M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2
NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oICovOyB9OwogCQkyREZBNDg4RjFE
QjU0MUQwMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVy
U291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTczMzYsNiArNzMzNyw4IEBACiAJCTJEQzhEMzk2MjVGMkZFOTMwMENGQ0JBQiAvKiBNb2Rl
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQzhEMzk3MjVGMkZFOTQwMENGQ0JBQiAvKiBNb2RlbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ1QTcyNjFFQkVF
NDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25VbmRlcmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
RDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVD
IC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0IxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRl
eHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VSYW5n
ZVdpdGhUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5MTAs
NiArMjY5MTMsOCBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRp
b25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9U
cmFja1ByaXZhdGUuaCAqLywKKwkJCQkyREQ4NzE0NzI2NUY0MzY0MDA1Rjk5N0MgLyogQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCisJCQkJMkREODcxNDkyNjVGNDM2NTAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlBODk5NDMyNzBCNDIzMzg3
MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLAogCQkJCUE4OTk0MzI2MEI0MjMzODcwMEQ3
QzgwMiAvKiBCaXRtYXBJbWFnZS5oICovLAogCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAv
KiBDb2xvci5jcHAgKi8sCkBAIC0zMTcyNSw2ICszMTczMCw3IEBACiAJCQkJQjJDM0RBMjUwRDAw
NkMxRDAwRUY2RjI2IC8qIEJpZGlSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNzg5
ODYxMTIwRTdBNjAwNjBFQ0U1IC8qIEJpZGlSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzQw
MjkzMTM0OEIyMjIwMDYzRjFFNSAvKiBCaWRpUnVuTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkREODcxNEIyNjVGNDM2NjAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhEMTJCMDI2RjcwMEMxQTM1OSAvKiBCaXF1YWQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDI1MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWREU1BL
ZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQzU0RjA1MTM5OUIwREEwMDhEOTExNyAvKiBC
aXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTI1YTI3ZDNiYzg2NDFhY2VjOGUyZDA4ODMwZDZhZDBlMzNkZmQ5MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsMzgyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dChHcmFwaGljc0NvbnRleHQmIHByaW1hcnlDb250ZXh0LCBHcmFwaGljc0NvbnRleHQmIHNlY29u
ZGFyeUNvbnRleHQpCisgICAgOiBtX3ByaW1hcnlDb250ZXh0KHByaW1hcnlDb250ZXh0KQorICAg
ICwgbV9zZWNvbmRhcnlDb250ZXh0KHNlY29uZGFyeUNvbnRleHQpCit7Cit9CisKK0JpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6On5CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KCkKK3sKK30KKwor
Ym9vbCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpOwor
fQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpz
YXZlKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNhdmUoKTsKKyAgICBtX3NlY29uZGFyeUNv
bnRleHQuc2F2ZSgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlc3Rv
cmUoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQucmVzdG9yZSgpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmIGZyb20sIGNvbnN0IEZsb2F0UG9pbnQmIHRvKQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQuZHJhd0xpbmUoZnJvbSwgdG8pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TGluZShm
cm9tLCB0byk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0VsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd0Vs
bGlwc2UocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdFbGxpcHNlKHJlY3QpOwor
fQorCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OmFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5h
cHBseVN0cm9rZVBhdHRlcm4oKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlTdHJva2VQ
YXR0ZXJuKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlGaWxs
UGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5hcHBseUZpbGxQYXR0ZXJuKCk7Cisg
ICAgbV9zZWNvbmRhcnlDb250ZXh0LmFwcGx5RmlsbFBhdHRlcm4oKTsKK30KKyNlbmRpZgorCit2
b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdGgmIHBhdGgp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UGF0aChwYXRoKTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuZHJhd1BhdGgocGF0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0
LmZpbGxQYXRoKHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUGF0aChwYXRoKTsK
K30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBh
dGgmIHBhdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworICAg
IG1fc2Vjb25kYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
K3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5
ZXIoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAg
ICBtX3NlY29uZGFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKwordm9pZCBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjphcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZh
Y3RvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmFj
dG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmYWN0
b3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUmVjdChyZWN0KTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qs
IGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCwgY29sb3IpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdEltcGwo
Y29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAg
IG1fcHJpbWFyeUNvbnRleHQuZmlsbFJvdW5kZWRSZWN0SW1wbChyZWN0LCBjb2xvcik7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LmZpbGxSb3VuZGVkUmVjdEltcGwocmVjdCwgY29sb3IpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xl
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhv
bGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5maWxs
UmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9yKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhv
bGVSZWN0LCBjb2xvcik7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xl
YXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmNs
ZWFyUmVjdChyZWN0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuY2xlYXJSZWN0KHJlY3QpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5z
dHJva2VSZWN0KHJlY3QsIGxpbmVXaWR0aCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnN0cm9r
ZVJlY3QocmVjdCwgbGluZVdpZHRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5maWxsRWxsaXBzZShlbGxpcHNlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQu
ZmlsbEVsbGlwc2UoZWxsaXBzZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQ6OnNldElzQ0FMYXllckNvbnRleHQoYm9vbCBpc0NBTGF5ZXJDb250ZXh0KQoreworICAg
IC8vIEZJWE1FOiBSZWFsbHksIHRob3VnaD8KKyAgICBtX3ByaW1hcnlDb250ZXh0LnNldElzQ0FM
YXllckNvbnRleHQoaXNDQUxheWVyQ29udGV4dCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNl
dElzQ0FMYXllckNvbnRleHQoaXNDQUxheWVyQ29udGV4dCk7Cit9CisKK2Jvb2wgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6aXNDQUxheWVyQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpbWFyeUNvbnRleHQuaXNDQUxheWVyQ29udGV4dCgpOworfQorCit2b2lkIEJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGJvb2wgaXNBY2NlbGVy
YXRlZENvbnRleHQpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRJc0FjY2VsZXJhdGVkQ29u
dGV4dChpc0FjY2VsZXJhdGVkQ29udGV4dCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNldElz
QWNjZWxlcmF0ZWRDb250ZXh0KGlzQWNjZWxlcmF0ZWRDb250ZXh0KTsKK30KKworUmVuZGVyaW5n
TW9kZSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5yZW5kZXJpbmdNb2RlKCk7Cit9CisKK3ZvaWQg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5jbGlwKHJlY3QpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5jbGlwKHJlY3QpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBP
dXQoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcE91
dChyZWN0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuY2xpcE91dChyZWN0KTsKK30KKwordm9p
ZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KGNvbnN0IFBhdGgmIHBhdGgpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5jbGlwT3V0KHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29u
dGV4dC5jbGlwT3V0KHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmNsaXBQYXRoKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRSdWxlIHdpbmRSdWxlKQoreworICAgIG1f
cHJpbWFyeUNvbnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5jbGlwUGF0aChwYXRoLCB3aW5kUnVsZSk7Cit9CisKK0ludFJlY3QgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJp
bWFyeUNvbnRleHQuY2xpcEJvdW5kcygpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQ6OnNldExpbmVDYXAoTGluZUNhcCBsaW5lQ2FwKQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQuc2V0TGluZUNhcChsaW5lQ2FwKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0TGluZUNh
cChsaW5lQ2FwKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5l
RGFzaChjb25zdCBEYXNoQXJyYXkmIGRhc2hBcnJheSwgZmxvYXQgZGFzaE9mZnNldCkKK3sKKyAg
ICBtX3ByaW1hcnlDb250ZXh0LnNldExpbmVEYXNoKGRhc2hBcnJheSwgZGFzaE9mZnNldCk7Cisg
ICAgbV9zZWNvbmRhcnlDb250ZXh0LnNldExpbmVEYXNoKGRhc2hBcnJheSwgZGFzaE9mZnNldCk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUpvaW4oTGluZUpv
aW4gbGluZUpvaW4pCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRMaW5lSm9pbihsaW5lSm9p
bik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNldExpbmVKb2luKGxpbmVKb2luKTsKK30KKwor
dm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVy
TGltaXQpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRNaXRlckxpbWl0KG1pdGVyTGltaXQp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRNaXRlckxpbWl0KG1pdGVyTGltaXQpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShOYXRpdmVJ
bWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UobmF0aXZlSW1hZ2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7
CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgc2Vs
ZlNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIG1fcHJpbWFyeUNv
bnRleHQuZHJhd1BhdHRlcm4obmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgbV9z
ZWNvbmRhcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNjYWxlKGNvbnN0IEZsb2F0
U2l6ZSYgc2NhbGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zY2FsZShzY2FsZSk7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LnNjYWxlKHNjYWxlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5yb3RhdGUoYW5nbGVJblJhZGlhbnMpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5yb3RhdGUoYW5nbGVJblJhZGlhbnMpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQ6OnRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQudHJhbnNsYXRlKHgsIHkpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC50cmFuc2xhdGUoeCwg
eSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY29u
Y2F0Q1RNKHRyYW5zZm9ybSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNvbmNhdENUTSh0cmFu
c2Zvcm0pOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldENUTShjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNl
dENUTSh0cmFuc2Zvcm0pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRDVE0odHJhbnNmb3Jt
KTsKK30KKworQWZmaW5lVHJhbnNmb3JtIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmdldENU
TShJbmNsdWRlRGV2aWNlU2NhbGUgaW5jbHVkZURldmljZVNjYWxlKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaW1hcnlDb250ZXh0LmdldENUTShpbmNsdWRlRGV2aWNlU2NhbGUpOworfQorCitG
bG9hdFJlY3QgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIFJvdW5kaW5nTW9kZSByb3VuZGluZ01vZGUpCit7CisgICAg
cmV0dXJuIG1fcHJpbWFyeUNvbnRleHQucm91bmRUb0RldmljZVBpeGVscyhyZWN0LCByb3VuZGlu
Z01vZGUpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jp
bmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zm
c2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9j
dXNSaW5nKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250
ZXh0LmRyYXdGb2N1c1JpbmcocmVjdHMsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKTsKK30KKwordm9p
ZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBh
dGgsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAg
ICBtX3ByaW1hcnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocGF0aCwgd2lkdGgsIG9mZnNldCwgY29s
b3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHdpZHRoLCBv
ZmZzZXQsIGNvbG9yKTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBkb3VibGUgdGlt
ZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBt
X3ByaW1hcnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocGF0aCwgdGltZU9mZnNldCwgbmVlZHNSZWRy
YXcsIGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0ZvY3VzUmluZyhwYXRoLCB0
aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3Rz
LCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9yJiBjb2xv
cikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocmVjdHMsIHRpbWVPZmZz
ZXQsIG5lZWRzUmVkcmF3LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdGb2N1
c1JpbmcocmVjdHMsIHRpbWVPZmZzZXQsIG5lZWRzUmVkcmF3LCBjb2xvcik7Cit9CisjZW5kaWYK
Kwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IERhc2hBcnJheSYgd2lk
dGhzLCBib29sIHByaW50aW5nLCBib29sIGRvdWJsZUxpbmVzLCBTdHJva2VTdHlsZSBzdHJva2VT
dHlsZSkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHRo
aWNrbmVzcywgd2lkdGhzLCBwcmludGluZywgZG91YmxlTGluZXMsIHN0cm9rZVN0eWxlKTsKKyAg
ICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0xpbmVzRm9yVGV4dChwb2ludCwgdGhpY2tuZXNzLCB3
aWR0aHMsIHByaW50aW5nLCBkb3VibGVMaW5lcywgc3Ryb2tlU3R5bGUpOworfQorCit2b2lkIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBtYXJrZXJTdHlsZSkKK3sK
KyAgICBtX3ByaW1hcnlDb250ZXh0LmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIocmVjdCwgbWFy
a2VyU3R5bGUpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyKHJlY3QsIG1hcmtlclN0eWxlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpzZXRVUkxGb3JSZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRVUkxGb3JSZWN0KHVybCwgcmVjdCk7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LnNldFVSTEZvclJlY3QodXJsLCByZWN0KTsKK30KKwordm9pZCBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXREZXN0aW5hdGlvbkZvclJlY3QoY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9wcmltYXJ5Q29udGV4
dC5zZXREZXN0aW5hdGlvbkZvclJlY3QobmFtZSwgcmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250
ZXh0LnNldERlc3RpbmF0aW9uRm9yUmVjdChuYW1lLCByZWN0KTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjphZGREZXN0aW5hdGlvbkF0UG9pbnQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFk
ZERlc3RpbmF0aW9uQXRQb2ludChuYW1lLCBwb2ludCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0
LmFkZERlc3RpbmF0aW9uQXRQb2ludChuYW1lLCBwb2ludCk7Cit9CisKK2Jvb2wgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNJbnRlcm5hbExpbmtzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5zdXBwb3J0c0ludGVybmFsTGlua3MoKTsKK30KKwordm9p
ZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZShjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
IGZsYWdzKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQudXBkYXRlU3RhdGUoc3RhdGUsIGZsYWdz
KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQudXBkYXRlU3RhdGUoc3RhdGUsIGZsYWdzKTsKK30K
KworI2lmIE9TKFdJTkRPV1MpCitHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRlcHJlY2F0ZWRQcml2YXRlQ29udGV4dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQuZGVwcmVjYXRlZFByaXZhdGVDb250ZXh0KCk7
Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTRmY2Q5YzNiMTFiNjBiZjY5YjJiZTUwOTkyNTM0MGRhNzE0MTU3
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0IGFsbG93cyB5
b3UgdG8gZHVwbGljYXRlIHBhaW50aW5nIGJldHdlZW4gdHdvIGdpdmVuIEdyYXBoaWNzQ29udGV4
dHM7CisvLyBmb3IgZXhhbXBsZSwgZm9yIHBhaW50aW5nIGludG8gYSBiaXRtYXAtYmFja2VkIGFu
ZCBhIGRpc3BsYXktbGlzdC1iYWNrZWQgY29udGV4dCBzaW11bHRhbmVvdXNseS4KKy8vIEFueSBz
dGF0ZSB0aGF0IGlzIHJldHVybmVkIGJ5IEdyYXBoaWNzQ29udGV4dCBtZXRob2RzIHdpbGwgYmUg
cmV0cmlldmVkIGZyb20gdGhlIHByaW1hcnkgY29udGV4dC4KKworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQgewor
ICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOworcHVibGljOgorICAgIEJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBwcmltYXJ5Q29udGV4dCwgR3JhcGhpY3ND
b250ZXh0JiBzZWNvbmRhcnlDb250ZXh0KTsKKyAgICB+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dCgpOworCisgICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3QgZmluYWw7CisKKyAgICB2
b2lkIHNhdmUoKSBmaW5hbDsKKyAgICB2b2lkIHJlc3RvcmUoKSBmaW5hbDsKKworICAgIHZvaWQg
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzID0gMSkgZmlu
YWw7CisgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2lu
dCYpIGZpbmFsOworICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CisKKyNpZiBVU0UoQ0cpIHx8IFVTRShESVJFQ1QyRCkKKyAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0
dGVybigpIGZpbmFsOworICAgIHZvaWQgYXBwbHlGaWxsUGF0dGVybigpIGZpbmFsOworI2VuZGlm
CisgICAgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJikgZmluYWw7CisgICAgdm9pZCBmaWxsUGF0
aChjb25zdCBQYXRoJikgZmluYWw7CisgICAgdm9pZCBzdHJva2VQYXRoKGNvbnN0IFBhdGgmKSBm
aW5hbDsKKworICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KSBm
aW5hbDsKKyAgICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCkgZmluYWw7CisKKyAgICB2b2lk
IGFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgZmFjdG9yKSBmaW5hbDsKKworICAgIHVzaW5n
IEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Q7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IENvbG9yJikgZmluYWw7CisgICAgdm9pZCBmaWxsUm91bmRlZFJlY3RJbXBsKGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZmlsbFJlY3RXaXRo
Um91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91
bmRlZEhvbGVSZWN0LCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJSZWN0KGNv
bnN0IEZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJl
Y3QmLCBmbG9hdCBsaW5lV2lkdGgpIGZpbmFsOworCisgICAgdm9pZCBmaWxsRWxsaXBzZShjb25z
dCBGbG9hdFJlY3QmIGVsbGlwc2UpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlRWxsaXBzZShjb25z
dCBGbG9hdFJlY3QmIGVsbGlwc2UpIGZpbmFsOworCisgICAgdm9pZCBzZXRJc0NBTGF5ZXJDb250
ZXh0KGJvb2wpIGZpbmFsOworICAgIGJvb2wgaXNDQUxheWVyQ29udGV4dCgpIGNvbnN0IGZpbmFs
OworCisgICAgdm9pZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29sKSBmaW5hbDsKKyAgICBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgY2xp
cChjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGNsaXBPdXQoY29uc3QgRmxvYXRS
ZWN0JikgZmluYWw7CisKKyAgICB2b2lkIGNsaXBPdXQoY29uc3QgUGF0aCYpIGZpbmFsOworCisg
ICAgdm9pZCBjbGlwUGF0aChjb25zdCBQYXRoJiwgV2luZFJ1bGUgPSBXaW5kUnVsZTo6RXZlbk9k
ZCkgZmluYWw7CisKKyAgICBJbnRSZWN0IGNsaXBCb3VuZHMoKSBjb25zdCBmaW5hbDsKKworICAg
IHZvaWQgc2V0TGluZUNhcChMaW5lQ2FwKSBmaW5hbDsKKyAgICB2b2lkIHNldExpbmVEYXNoKGNv
bnN0IERhc2hBcnJheSYsIGZsb2F0IGRhc2hPZmZzZXQpIGZpbmFsOworICAgIHZvaWQgc2V0TGlu
ZUpvaW4oTGluZUpvaW4pIGZpbmFsOworICAgIHZvaWQgc2V0TWl0ZXJMaW1pdChmbG9hdCkgZmlu
YWw7CisKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0
U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKKyAg
ICB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KSBmaW5hbDsKKworICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dDo6c2NhbGU7
CisgICAgdm9pZCBzY2FsZShjb25zdCBGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2b2lkIHJvdGF0
ZShmbG9hdCBhbmdsZUluUmFkaWFucykgZmluYWw7CisgICAgdm9pZCB0cmFuc2xhdGUoZmxvYXQg
eCwgZmxvYXQgeSkgZmluYWw7CisKKyAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mKSBmaW5hbDsKKyAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKSBm
aW5hbDsKKworICAgIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oSW5jbHVkZURldmljZVNjYWxlID0g
UG9zc2libHlJbmNsdWRlRGV2aWNlU2NhbGUpIGNvbnN0IGZpbmFsOworCisgICAgRmxvYXRSZWN0
IHJvdW5kVG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiwgUm91bmRpbmdNb2RlID0gUm91
bmRBbGxTaWRlcykgZmluYWw7CisKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9y
PEZsb2F0UmVjdD4mLCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJikgZmluYWw7CisgICAgdm9p
ZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmLCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJikg
ZmluYWw7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQ
YXRoJiwgZG91YmxlLCBib29sJiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdG
b2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mLCBkb3VibGUsIGJvb2wmLCBjb25zdCBD
b2xvciYpIGZpbmFsOworI2VuZGlmCisKKyAgICB2b2lkIGRyYXdMaW5lc0ZvclRleHQoY29uc3Qg
RmxvYXRQb2ludCYsIGZsb2F0IHRoaWNrbmVzcywgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJv
b2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMsIFN0cm9rZVN0eWxlKSBmaW5hbDsKKworICAg
IHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmLCBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSkgZmluYWw7CisKKyAgICB2b2lkIHNldFVSTEZvclJlY3QoY29uc3Qg
VVJMJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisKKyAgICB2b2lkIHNldERlc3RpbmF0aW9u
Rm9yUmVjdChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworICAg
IHZvaWQgYWRkRGVzdGluYXRpb25BdFBvaW50KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxv
YXRQb2ludCYpIGZpbmFsOworCisgICAgYm9vbCBzdXBwb3J0c0ludGVybmFsTGlua3MoKSBjb25z
dCBmaW5hbDsKKworICAgIHZvaWQgdXBkYXRlU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncykgZmluYWw7CisKKyNp
ZiBPUyhXSU5ET1dTKQorICAgIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSogZGVwcmVj
YXRlZFByaXZhdGVDb250ZXh0KCkgY29uc3QgZmluYWw7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBHcmFwaGljc0NvbnRleHQmIG1fcHJpbWFyeUNvbnRleHQ7CisgICAgR3JhcGhpY3NDb250ZXh0
JiBtX3NlY29uZGFyeUNvbnRleHQ7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMDY4ZjJjNjQ3MTY0MmViYTVhOGEyNmZkNGJl
YjVkNWJiZTk4N2I4Li5kZmEwODRmZWIwMWU0ODNiYjhmMGE1M2I2YzcxMDg3NGFkMGEzNWI0IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjEtMDUtMjcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW50cm9kdWNlIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjMxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0
c0NHLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0w
NS0yNiAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
TWVkaWFTZXNzaW9uIHJlYWR5c3RhdGUgZW51bXMgYWxsIGxvd2VyY2FzZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4OWNhYTg3ODc4YWZjNmM1ZDk3M2RlOThiMzhhOTJiNTA0NzM2NzkwLi5j
M2JkOThmYWQ3NTA2NGMzZGU0NjdlYmM1N2VmNjE2MGE4ZjE1MGJhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTY3LDYgKzE2Nyw3IEBACiAJCTJEQzRDRjc3MUQyRDlERDgwMEVDQ0M5NCAv
KiBEYXRhRGV0ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRDNENGNzYxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi87
IH07CiAJCTJEQzk0NTE3MjREOEFDMDIwMDQzMDM3NiAvKiBXZWJUaHJlYWRMb2NrLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDOTQ1MTYyNEQ4QUMw
MjAwNDMwMzc2IC8qIFdlYlRocmVhZExvY2subW0gKi87IH07CiAJCTJERDdEM0FGMTc4MjI3QjMw
MDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ3RDNBRTE3ODIyN0FDMDAy
NkUxRTMgLyogbG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwgKi87IH07CisJCTJERDg3MTQ1
MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ4NzE0NDI2
NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwICov
OyB9OwogCQkyREU3MUFGRTFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MUFGRDFENDlD
MEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gKi87IH07CiAJCTJERTcxQjAwMUQ0OUMz
RUQwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyog
YmxpbmtpbmctZGl2Lmh0bWwgKi87IH07CiAJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAvKiBT
bmFwc2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRGRjdCNkMxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gKi87IH07
CkBAIC0xOTQ5LDYgKzE5NTAsNyBAQAogCQkyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0
b0xheW91dEludGVncmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQXV0b0xheW91dEludGVncmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyREQ3RDNBOTE3ODIwNUQwMDAyNkUxRTMgLyogUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdl
YlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzaXplUmV2
ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
REQ3RDNBRTE3ODIyN0FDMDAyNkUxRTMgLyogbG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAibG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyREQ4NzE0NDI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOyBwYXRoID0gY2cvQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREU3MUFGRDFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBbmltYXRlZFJlc2l6ZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8q
IGJsaW5raW5nLWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJsaW5raW5n
LWRpdi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGRjdCNkMxREE0ODdB
RjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBTbmFwc2hvdFN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDkxMyw2ICs0OTE1LDcgQEAKIAkJRjQ1NzI3NUIyNTU3OEM5RTAwN0FDQTM0IC8qIGNn
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyREQ4NzE0
NDI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3Bw
ICovLAogCQkJCUY0NTcyNzVEMjU1NzhEMDYwMDdBQ0EzNCAvKiBEaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBjZzsKQEAgLTUzMTEsNiArNTMxNCw3IEBACiAJCQkJ
MUM3RkVCMjAyMDdDMEYyRTAwRDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUMxNUNCQjMwMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlm
aWNhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxNjkyRENBMjNEMTBEQUUwMDZFODhGNyAv
KiBCYXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkREODcxNDUyNjVGMjNCNDAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3NEI3QTYwMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3QTg5QkI2NzIzMzE2NDMyMDA0MkNCMUUgLyogQnVuZGxlRm9y
bURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEw
IC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMzM3OWRlYmI2MTUz
MzMzNDI2MTY0YWVlZjZhZDY2OTczYjFhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
Q0cuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBVU0UoQ0cpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0JpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0SXRlbXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dENHLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Jbk1lbW9yeURpc3BsYXlM
aXN0Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwordXNpbmcgRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OwordXNpbmcgbmFtZXNwYWNlIERp
c3BsYXlMaXN0OworCitjb25zdGV4cHIgQ0dGbG9hdCBjb250ZXh0V2lkdGggPSAxOworY29uc3Rl
eHByIENHRmxvYXQgY29udGV4dEhlaWdodCA9IDE7CisKK1RFU1QoQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dFRlc3RzLCBCYXNpY0JpZnVyY2F0ZWRDb250ZXh0KQoreworICAgIGF1dG8gY29sb3JT
cGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgIGF1dG8gcHJpbWFyeUNH
Q29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKG51bGxwdHIsIGNvbnRleHRX
aWR0aCwgY29udGV4dEhlaWdodCwgOCwgNCAqIGNvbnRleHRXaWR0aCwgY29sb3JTcGFjZS5wbGF0
Zm9ybUNvbG9yU3BhY2UoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAg
YXV0byBzZWNvbmRhcnlDR0NvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShu
dWxscHRyLCBjb250ZXh0V2lkdGgsIGNvbnRleHRIZWlnaHQsIDgsIDQgKiBjb250ZXh0V2lkdGgs
IGNvbG9yU3BhY2UucGxhdGZvcm1Db2xvclNwYWNlKCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkTGFzdCkpOworCisgICAgR3JhcGhpY3NDb250ZXh0Q0cgcHJpbWFyeUNvbnRleHQocHJpbWFy
eUNHQ29udGV4dC5nZXQoKSk7CisKKyAgICBJbk1lbW9yeURpc3BsYXlMaXN0IGRpc3BsYXlMaXN0
OworICAgIFJlY29yZGVyIHNlY29uZGFyeUNvbnRleHQoZGlzcGxheUxpc3QsIHsgfSwgRmxvYXRS
ZWN0KDAsIDAsIGNvbnRleHRXaWR0aCwgY29udGV4dEhlaWdodCksIHsgfSk7CisKKyAgICBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0IGN0eChwcmltYXJ5Q29udGV4dCwgc2Vjb25kYXJ5Q29udGV4
dCk7CisKKyAgICBjdHguZmlsbFJlY3QoRmxvYXRSZWN0KDAsIDAsIGNvbnRleHRXaWR0aCwgY29u
dGV4dEhlaWdodCksIENvbG9yOjpyZWQpOworCisgICAgLy8gVGhlIHByaW1hcnkgY29udGV4dCBz
aG91bGQgaGF2ZSBvbmUgcmVkIHBpeGVsLgorICAgIENHQ29udGV4dEZsdXNoKHByaW1hcnlDR0Nv
bnRleHQuZ2V0KCkpOworICAgIHVpbnQ4X3QqIHByaW1hcnlEYXRhID0gc3RhdGljX2Nhc3Q8dWlu
dDhfdCo+KENHQml0bWFwQ29udGV4dEdldERhdGEocHJpbWFyeUNHQ29udGV4dC5nZXQoKSkpOwor
ICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVswXSwgMjU1KTsKKyAgICBFWFBFQ1RfRVEocHJpbWFy
eURhdGFbMV0sIDApOworICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVsyXSwgMCk7CisKKyAgICAv
LyBUaGUgc2Vjb25kYXJ5IGNvbnRleHQgc2hvdWxkIGhhdmUgYSByZWQgRmlsbFJlY3RXaXRoQ29s
b3IuCisgICAgRVhQRUNUX0ZBTFNFKGRpc3BsYXlMaXN0LmlzRW1wdHkoKSk7CisgICAgYm9vbCBz
YXdGaWxsUmVjdCA9IGZhbHNlOworICAgIGZvciAoYXV0byBkaXNwbGF5TGlzdEl0ZW0gOiBkaXNw
bGF5TGlzdCkgeworICAgICAgICBhdXRvIGhhbmRsZSA9IGRpc3BsYXlMaXN0SXRlbS0+aXRlbTsK
KyAgICAgICAgaWYgKGhhbmRsZS50eXBlKCkgIT0gSXRlbVR5cGU6OkZpbGxSZWN0V2l0aENvbG9y
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxlLmlz
RHJhd2luZ0l0ZW0oKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS5pczxGaWxsUmVjdFdp
dGhDb2xvcj4oKSk7CisgICAgICAgIHNhd0ZpbGxSZWN0ID0gdHJ1ZTsKKyAgICAgICAgYXV0byYg
aXRlbSA9IGhhbmRsZS5nZXQ8RmlsbFJlY3RXaXRoQ29sb3I+KCk7CisgICAgICAgIEVYUEVDVF9F
UShpdGVtLnJlY3QoKSwgRmxvYXRSZWN0KDAsIDAsIGNvbnRleHRXaWR0aCwgY29udGV4dEhlaWdo
dCkpOworICAgICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBDb2xvcjo6cmVkKTsKKyAgICB9
CisKKyAgICBFWFBFQ1RfR1QoZGlzcGxheUxpc3Quc2l6ZUluQnl0ZXMoKSwgMFUpOworICAgIEVY
UEVDVF9UUlVFKHNhd0ZpbGxSZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQorCisjZW5kaWYgLy8gVVNFKENHKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429856</attachid>
            <date>2021-05-27 01:33:56 -0700</date>
            <delta_ts>2021-05-27 02:27:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226318-20210527013355.patch</filename>
            <type>text/plain</type>
            <size>38716</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2NGJkZjBhYzMwN2Zh
MzgxYjgyNGY3M2Q2MzM0YTY4ZjVmOWQxNy4uMWJjYWUyNjk2NDJiNjM2OWU1MmQ0MjM0NDJlMzdj
M2E4NDU5MzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZXcgdGVzdDogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
LkJhc2ljQmlmdXJjYXRlZENvbnRleHQKKworICAgICAgICBJbnRyb2R1Y2UgYSBHcmFwaGljc0Nv
bnRleHQgc3ViY2xhc3MgdGhhdCBmb3J3YXJkcyBwYWludGluZyAKKyAgICAgICAgdG8gdHdvIGFy
Yml0cmFyeSBjaGlsZCBHcmFwaGljc0NvbnRleHRzLiBUaGlzIGNhbiBiZSB1c2VkLCBmb3IgZXhh
bXBsZSwKKyAgICAgICAgdG8gcGFpbnQgaW50byBhIGJpdG1hcCBhbmQgZGlzcGxheSBsaXN0IHNp
bXVsdGFuZW91c2x5LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Qmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1D
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnNhdmUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUm91bmRlZFJlY3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUVsbGlwc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojppc0NB
TGF5ZXJDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUNhcCk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lSm9pbik6
CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxp
bWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmNvbmNhdENUTSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpzZXRDVE0pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXREZXN0
aW5hdGlvbkZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQuaDogQWRkZWQuCisKIDIwMjEtMDUtMjYgIENhbWVyb24gTWNDb3JtYWNr
ICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IHNiaXggZ2x5cGhzIGZyb20g
YmVpbmcgcmVuZGVyZWQgaW4gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMjVhNDRkMzg4
ZjViYjI2MzllYjEwYzAxMDI0MzFiNWM1MDVlYTAuLmM0OTExNmMxMTU4NzMyMWFiMjdmYzQzNmJi
MTAyZWZlMWI2OWExY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMjcgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNl
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZDo6Y3JlYXRlKToKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExldmVyYWdlIHRoZSBuZXcgVmVjdG9yKGNvbnN0
IFQqLCBzaXplX3QpIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0ZGZhNjA1ZGQ2
YjAyOTkxNGNlNDdkMjZjM2Q4YTk5OGI5YzZkNTY1Li4xZTcxNzE0Yzg5NTFiOGQ0NDQxODc2ZWEy
YmEyOTA1ZjcxYWE3NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExODAsNiArMTE4MCw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9u
RnJhbWVSYXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBlYWFmYjllMGIzNmJkMzBmN2Q4MTc4OTYyZWY1ZjMwMDdkM2M0Y2VmLi5hZTA3ZTA2MWYz
ZTA4M2UxMTYxZjk2ZGMxNThjOGFmYjdhOGRlOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTk0MCw2
ICsxOTQwLDcgQEAgcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkQ29uc3RhbnRzLmNwcAogcGxhdGZv
cm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRl
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckJsZW5kaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ3MjY1ZWFjODdl
ODY1YTAxYTY4NzU0OGNiN2M3NWE3YjQwMDk1YWMuLmE1MTVjMjM0ODFmZjk4MjczNWNjZmUzNDNh
NGNjZDRhMzllOThlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg2NSw2ICs4NjUsNyBAQAogCQkyREFGMzQzRDFFQTdFMEYx
MDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBRjM0M0IxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0
YW50UHJvcGVydHlNYXAuaCAqLzsgfTsKIAkJMkRDOEQzOTgyNUYyRkU5NzAwQ0ZDQkFCIC8qIE1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM4
RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ1QTcyNzFFQkVFNDdEMDA5QkE1OTcgLyogQ29t
cG9zaXRpb25VbmRlcmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGlu
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJE
RDg3MTRCMjY1RjQzNjYwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ4NzE0OTI2NUY0
MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJERTcwMDIzMTkyRkU4MkEwMEIw
OTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAv
KiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLzsgfTsKIAkJMkRGNTEyQ0UxRDg3
M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2
NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oICovOyB9OwogCQkyREZBNDg4RjFE
QjU0MUQwMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVy
U291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTczMzYsNiArNzMzNyw4IEBACiAJCTJEQzhEMzk2MjVGMkZFOTMwMENGQ0JBQiAvKiBNb2Rl
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQzhEMzk3MjVGMkZFOTQwMENGQ0JBQiAvKiBNb2RlbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ1QTcyNjFFQkVF
NDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25VbmRlcmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
RDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVD
IC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0IxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRl
eHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VSYW5n
ZVdpdGhUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5MTAs
NiArMjY5MTMsOCBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRp
b25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9U
cmFja1ByaXZhdGUuaCAqLywKKwkJCQkyREQ4NzE0NzI2NUY0MzY0MDA1Rjk5N0MgLyogQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCisJCQkJMkREODcxNDkyNjVGNDM2NTAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlBODk5NDMyNzBCNDIzMzg3
MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLAogCQkJCUE4OTk0MzI2MEI0MjMzODcwMEQ3
QzgwMiAvKiBCaXRtYXBJbWFnZS5oICovLAogCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAv
KiBDb2xvci5jcHAgKi8sCkBAIC0zMTcyNSw2ICszMTczMCw3IEBACiAJCQkJQjJDM0RBMjUwRDAw
NkMxRDAwRUY2RjI2IC8qIEJpZGlSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNzg5
ODYxMTIwRTdBNjAwNjBFQ0U1IC8qIEJpZGlSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzQw
MjkzMTM0OEIyMjIwMDYzRjFFNSAvKiBCaWRpUnVuTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkREODcxNEIyNjVGNDM2NjAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhEMTJCMDI2RjcwMEMxQTM1OSAvKiBCaXF1YWQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDI1MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWREU1BL
ZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQzU0RjA1MTM5OUIwREEwMDhEOTExNyAvKiBC
aXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDRkODNiMzFiMjczYmE2ZDg0OTU3OWEzMjU1Mjc0OTZlMDFmYmYxZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsMzgzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dChHcmFwaGljc0NvbnRleHQmIHByaW1hcnlDb250ZXh0LCBHcmFwaGljc0NvbnRleHQmIHNlY29u
ZGFyeUNvbnRleHQpCisgICAgOiBtX3ByaW1hcnlDb250ZXh0KHByaW1hcnlDb250ZXh0KQorICAg
ICwgbV9zZWNvbmRhcnlDb250ZXh0KHNlY29uZGFyeUNvbnRleHQpCit7Cit9CisKK0JpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6On5CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KCkKK3sKK30KKwor
Ym9vbCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpOwor
fQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpz
YXZlKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNhdmUoKTsKKyAgICBtX3NlY29uZGFyeUNv
bnRleHQuc2F2ZSgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlc3Rv
cmUoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQucmVzdG9yZSgpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmIGZyb20sIGNvbnN0IEZsb2F0UG9pbnQmIHRvKQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQuZHJhd0xpbmUoZnJvbSwgdG8pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TGluZShm
cm9tLCB0byk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0VsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd0Vs
bGlwc2UocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdFbGxpcHNlKHJlY3QpOwor
fQorCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OmFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5h
cHBseVN0cm9rZVBhdHRlcm4oKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlTdHJva2VQ
YXR0ZXJuKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlGaWxs
UGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5hcHBseUZpbGxQYXR0ZXJuKCk7Cisg
ICAgbV9zZWNvbmRhcnlDb250ZXh0LmFwcGx5RmlsbFBhdHRlcm4oKTsKK30KKyNlbmRpZgorCit2
b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdGgmIHBhdGgp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UGF0aChwYXRoKTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuZHJhd1BhdGgocGF0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0
LmZpbGxQYXRoKHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUGF0aChwYXRoKTsK
K30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBh
dGgmIHBhdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworICAg
IG1fc2Vjb25kYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
K3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5
ZXIoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAg
ICBtX3NlY29uZGFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKwordm9pZCBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjphcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZh
Y3RvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmFj
dG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmYWN0
b3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUmVjdChyZWN0KTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qs
IGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCwgY29sb3IpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdEltcGwo
Y29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAg
IG1fcHJpbWFyeUNvbnRleHQuZmlsbFJvdW5kZWRSZWN0SW1wbChyZWN0LCBjb2xvcik7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LmZpbGxSb3VuZGVkUmVjdEltcGwocmVjdCwgY29sb3IpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xl
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhv
bGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5maWxs
UmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9yKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhv
bGVSZWN0LCBjb2xvcik7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xl
YXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmNs
ZWFyUmVjdChyZWN0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuY2xlYXJSZWN0KHJlY3QpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5z
dHJva2VSZWN0KHJlY3QsIGxpbmVXaWR0aCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnN0cm9r
ZVJlY3QocmVjdCwgbGluZVdpZHRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5maWxsRWxsaXBzZShlbGxpcHNlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQu
ZmlsbEVsbGlwc2UoZWxsaXBzZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworfQorCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNU
MkQpCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldElzQ0FMYXllckNvbnRleHQo
Ym9vbCBpc0NBTGF5ZXJDb250ZXh0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0SXNDQUxh
eWVyQ29udGV4dChpc0NBTGF5ZXJDb250ZXh0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0
SXNDQUxheWVyQ29udGV4dChpc0NBTGF5ZXJDb250ZXh0KTsKK30KKworYm9vbCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0Ojppc0NBTGF5ZXJDb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcmltYXJ5Q29udGV4dC5pc0NBTGF5ZXJDb250ZXh0KCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNBY2NlbGVyYXRlZENvbnRleHQoYm9vbCBpc0FjY2VsZXJh
dGVkQ29udGV4dCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNldElzQWNjZWxlcmF0ZWRDb250
ZXh0KGlzQWNjZWxlcmF0ZWRDb250ZXh0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHQoaXNBY2NlbGVyYXRlZENvbnRleHQpOworfQorI2VuZGlmCisKK1Jl
bmRlcmluZ01vZGUgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cmVuZGVyaW5nTW9kZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQucmVuZGVyaW5nTW9kZSgpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcChyZWN0KTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuY2xpcChyZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpjbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0
LmNsaXBPdXQocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNsaXBPdXQocmVjdCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dChjb25zdCBQYXRoJiBw
YXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSB3aW5kUnVsZSkKK3sK
KyAgICBtX3ByaW1hcnlDb250ZXh0LmNsaXBQYXRoKHBhdGgsIHdpbmRSdWxlKTsKKyAgICBtX3Nl
Y29uZGFyeUNvbnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOworfQorCitJbnRSZWN0IEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMoKSBjb25zdAoreworICAgIHJldHVy
biBtX3ByaW1hcnlDb250ZXh0LmNsaXBCb3VuZHMoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LnNldExpbmVDYXAobGluZUNhcCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNl
dExpbmVDYXAobGluZUNhcCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
c2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5JiBkYXNoQXJyYXksIGZsb2F0IGRhc2hPZmZzZXQp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRhc2hPZmZz
ZXQpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRhc2hP
ZmZzZXQpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2lu
KExpbmVKb2luIGxpbmVKb2luKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TGluZUpvaW4o
bGluZUpvaW4pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lSm9pbihsaW5lSm9pbik7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdChmbG9h
dCBtaXRlckxpbWl0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdChtaXRl
ckxpbWl0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdChtaXRlckxpbWl0
KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
TmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBzZWxmU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
dGlvbnMpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1h
Z2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK3ZvaWQgQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJbWFnZSwgaW1hZ2VTaXpl
LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzY2FsZShjb25z
dCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2NhbGUoc2NhbGUp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zY2FsZShzY2FsZSk7Cit9CisKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKQoreworICAg
IG1fcHJpbWFyeUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQudHJhbnNs
YXRlKHgsIHkpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNvbmNhdENU
TShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3sKKyAgICBtX3ByaW1hcnlDb250
ZXh0LmNvbmNhdENUTSh0cmFuc2Zvcm0pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jb25jYXRD
VE0odHJhbnNmb3JtKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRD
VE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCit7CisgICAgbV9wcmltYXJ5Q29u
dGV4dC5zZXRDVE0odHJhbnNmb3JtKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0Q1RNKHRy
YW5zZm9ybSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpnZXRDVE0oSW5jbHVkZURldmljZVNjYWxlIGluY2x1ZGVEZXZpY2VTY2FsZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5nZXRDVE0oaW5jbHVkZURldmljZVNjYWxlKTsK
K30KKworRmxvYXRSZWN0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQ
aXhlbHMoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBSb3VuZGluZ01vZGUgcm91bmRpbmdNb2RlKQor
eworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LnJvdW5kVG9EZXZpY2VQaXhlbHMocmVjdCwg
cm91bmRpbmdNb2RlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3
Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZs
b2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQu
ZHJhd0ZvY3VzUmluZyhyZWN0cywgd2lkdGgsIG9mZnNldCwgY29sb3IpOworICAgIG1fc2Vjb25k
YXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQ
YXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHdpZHRoLCBvZmZz
ZXQsIGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0ZvY3VzUmluZyhwYXRoLCB3
aWR0aCwgb2Zmc2V0LCBjb2xvcik7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgZG91
YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYgY29sb3IpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHRpbWVPZmZzZXQsIG5l
ZWRzUmVkcmF3LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdGb2N1c1Jpbmco
cGF0aCwgdGltZU9mZnNldCwgbmVlZHNSZWRyYXcsIGNvbG9yKTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+
JiByZWN0cywgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xv
ciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB0
aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5k
cmF3Rm9jdXNSaW5nKHJlY3RzLCB0aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworfQor
I2VuZGlmCisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4
dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBEYXNoQXJy
YXkmIHdpZHRocywgYm9vbCBwcmludGluZywgYm9vbCBkb3VibGVMaW5lcywgU3Ryb2tlU3R5bGUg
c3Ryb2tlU3R5bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TGluZXNGb3JUZXh0KHBv
aW50LCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZUxpbmVzLCBzdHJva2VTdHls
ZSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHRoaWNr
bmVzcywgd2lkdGhzLCBwcmludGluZywgZG91YmxlTGluZXMsIHN0cm9rZVN0eWxlKTsKK30KKwor
dm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2Vy
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgbWFya2VyU3R5
bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKHJl
Y3QsIG1hcmtlclN0eWxlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcihyZWN0LCBtYXJrZXJTdHlsZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QgRmxvYXRSZWN0
JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0VVJMRm9yUmVjdCh1cmwsIHJlY3Qp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRVUkxGb3JSZWN0KHVybCwgcmVjdCk7Cit9CisK
K3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0RGVzdGluYXRpb25Gb3JSZWN0KGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFy
eUNvbnRleHQuc2V0RGVzdGluYXRpb25Gb3JSZWN0KG5hbWUsIHJlY3QpOworICAgIG1fc2Vjb25k
YXJ5Q29udGV4dC5zZXREZXN0aW5hdGlvbkZvclJlY3QobmFtZSwgcmVjdCk7Cit9CisKK3ZvaWQg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgbV9wcmltYXJ5Q29u
dGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworfQorCitib29sIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQuc3VwcG9ydHNJbnRlcm5hbExpbmtzKCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6dXBkYXRlU3RhdGUoY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyBmbGFncykKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0YXRl
LCBmbGFncyk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0YXRlLCBmbGFn
cyk7Cit9CisKKyNpZiBPUyhXSU5ET1dTKQorR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
KiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0ZUNvbnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LmRlcHJlY2F0ZWRQcml2YXRlQ29u
dGV4dCgpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMWE2NDdmMDg2ZjY5NTFhZWFmMGY5ODQ1MmU3MDFj
MTg5MDY2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCBh
bGxvd3MgeW91IHRvIGR1cGxpY2F0ZSBwYWludGluZyBiZXR3ZWVuIHR3byBnaXZlbiBHcmFwaGlj
c0NvbnRleHRzOworLy8gZm9yIGV4YW1wbGUsIGZvciBwYWludGluZyBpbnRvIGEgYml0bWFwLWJh
Y2tlZCBhbmQgYSBkaXNwbGF5LWxpc3QtYmFja2VkIGNvbnRleHQgc2ltdWx0YW5lb3VzbHkuCisv
LyBBbnkgc3RhdGUgdGhhdCBpcyByZXR1cm5lZCBieSBHcmFwaGljc0NvbnRleHQgbWV0aG9kcyB3
aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcmltYXJ5IGNvbnRleHQuCisKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0IHsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKK3B1YmxpYzoKKyAgICBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgcHJpbWFyeUNvbnRleHQsIEdy
YXBoaWNzQ29udGV4dCYgc2Vjb25kYXJ5Q29udGV4dCk7CisgICAgfkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQoKTsKKworICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CisgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IGZpbmFsOwor
CisgICAgdm9pZCBzYXZlKCkgZmluYWw7CisgICAgdm9pZCByZXN0b3JlKCkgZmluYWw7CisKKyAg
ICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcyA9
IDEpIGZpbmFsOworICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZs
b2F0UG9pbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYp
IGZpbmFsOworCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCisgICAgdm9pZCBhcHBseVN0
cm9rZVBhdHRlcm4oKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKSBmaW5hbDsK
KyNlbmRpZgorICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZvaWQg
ZmlsbFBhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlUGF0aChjb25zdCBQ
YXRoJikgZmluYWw7CisKKyAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3Bh
Y2l0eSkgZmluYWw7CisgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFsOworCisg
ICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZhY3RvcikgZmluYWw7CisKKyAg
ICB1c2luZyBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0OworICAgIHZvaWQgZmlsbFJlY3QoY29u
c3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZmlsbFJvdW5kZWRSZWN0SW1wbChjb25z
dCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFy
UmVjdChjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKSBmaW5hbDsKKworICAgIHZvaWQgZmlsbEVsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZUVsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKworI2lmIFVTRShDRykgfHwgVVNF
KERJUkVDVDJEKQorICAgIHZvaWQgc2V0SXNDQUxheWVyQ29udGV4dChib29sKSBmaW5hbDsKKyAg
ICBib29sIGlzQ0FMYXllckNvbnRleHQoKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHQoYm9vbCkgZmluYWw7CisjZW5kaWYKKworICAgIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBjbGlwKGNvbnN0IEZs
b2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgY2xpcE91dChjb25zdCBGbG9hdFJlY3QmKSBmaW5h
bDsKKworICAgIHZvaWQgY2xpcE91dChjb25zdCBQYXRoJikgZmluYWw7CisKKyAgICB2b2lkIGNs
aXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSA9IFdpbmRSdWxlOjpFdmVuT2RkKSBmaW5hbDsK
KworICAgIEludFJlY3QgY2xpcEJvdW5kcygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBzZXRM
aW5lQ2FwKExpbmVDYXApIGZpbmFsOworICAgIHZvaWQgc2V0TGluZURhc2goY29uc3QgRGFzaEFy
cmF5JiwgZmxvYXQgZGFzaE9mZnNldCkgZmluYWw7CisgICAgdm9pZCBzZXRMaW5lSm9pbihMaW5l
Sm9pbikgZmluYWw7CisgICAgdm9pZCBzZXRNaXRlckxpbWl0KGZsb2F0KSBmaW5hbDsKKworICAg
IHZvaWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBzZWxm
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJh
d1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pIGZpbmFsOworCisgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0OjpzY2FsZTsKKyAgICB2b2lk
IHNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgcm90YXRlKGZsb2F0IGFu
Z2xlSW5SYWRpYW5zKSBmaW5hbDsKKyAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5
KSBmaW5hbDsKKworICAgIHZvaWQgY29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGZp
bmFsOworICAgIHZvaWQgc2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGZpbmFsOworCisg
ICAgQWZmaW5lVHJhbnNmb3JtIGdldENUTShJbmNsdWRlRGV2aWNlU2NhbGUgPSBQb3NzaWJseUlu
Y2x1ZGVEZXZpY2VTY2FsZSkgY29uc3QgZmluYWw7CisKKyAgICBGbG9hdFJlY3Qgcm91bmRUb0Rl
dmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmLCBSb3VuZGluZ01vZGUgPSBSb3VuZEFsbFNpZGVz
KSBmaW5hbDsKKworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0
PiYsIGZsb2F0LCBmbG9hdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdGb2N1
c1JpbmcoY29uc3QgUGF0aCYsIGZsb2F0LCBmbG9hdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmLCBkb3Vi
bGUsIGJvb2wmLCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhj
b25zdCBWZWN0b3I8RmxvYXRSZWN0PiYsIGRvdWJsZSwgYm9vbCYsIGNvbnN0IENvbG9yJikgZmlu
YWw7CisjZW5kaWYKKworICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50
JiwgZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBEYXNoQXJyYXkmIHdpZHRocywgYm9vbCBwcmludGlu
ZywgYm9vbCBkb3VibGVMaW5lcywgU3Ryb2tlU3R5bGUpIGZpbmFsOworCisgICAgdm9pZCBkcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYsIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlKSBmaW5hbDsKKworICAgIHZvaWQgc2V0VVJMRm9yUmVjdChjb25zdCBVUkwmLCBjb25z
dCBGbG9hdFJlY3QmKSBmaW5hbDsKKworICAgIHZvaWQgc2V0RGVzdGluYXRpb25Gb3JSZWN0KGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBhZGRE
ZXN0aW5hdGlvbkF0UG9pbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBGbG9hdFBvaW50Jikg
ZmluYWw7CisKKyAgICBib29sIHN1cHBvcnRzSW50ZXJuYWxMaW5rcygpIGNvbnN0IGZpbmFsOwor
CisgICAgdm9pZCB1cGRhdGVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKSBmaW5hbDsKKworI2lmIE9TKFdJTkRP
V1MpCisgICAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKiBkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQoKSBjb25zdCBmaW5hbDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNz
Q29udGV4dCYgbV9wcmltYXJ5Q29udGV4dDsKKyAgICBHcmFwaGljc0NvbnRleHQmIG1fc2Vjb25k
YXJ5Q29udGV4dDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGMwNjhmMmM2NDcxNjQyZWJhNWE4YTI2ZmQ0YmViNWQ1YmJlOTg3
YjguLmRmYTA4NGZlYjAxZTQ4M2JiOGYwYTUzYjZjNzEwODc0YWQwYTM1YjQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0wNS0yNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbnRyb2R1Y2UgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MzE4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA1LTI2ICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBNZWRpYVNlc3Np
b24gcmVhZHlzdGF0ZSBlbnVtcyBhbGwgbG93ZXJjYXNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDg5Y2FhODc4NzhhZmM2YzVkOTczZGU5OGIzOGE5MmI1MDQ3MzY3OTAuLmMzYmQ5OGZhZDc1
MDY0YzNkZTQ2N2ViYzU3ZWY2MTYwYThmMTUwYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNjcsNiArMTY3LDcgQEAKIAkJMkRDNENGNzcxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRl
Y3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5tbSAqLzsgfTsKIAkJMkRD
OTQ1MTcyNEQ4QUMwMjAwNDMwMzc2IC8qIFdlYlRocmVhZExvY2subW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM5NDUxNjI0RDhBQzAyMDA0MzAzNzYg
LyogV2ViVGhyZWFkTG9jay5tbSAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8q
IGxvdHMtb2YtdGV4dC12ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBs
b3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAqLzsgfTsKKwkJMkREODcxNDUyNjVGMjNCNDAw
NUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDg3MTQ0MjY1RjIzQjQwMDVG
OTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi87IH07CiAJCTJE
RTcxQUZFMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5
NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSAqLzsgfTsKIAkJMkRFNzFCMDAxRDQ5QzNFRDAwOTA0MDk0
IC8qIGJsaW5raW5nLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1k
aXYuaHRtbCAqLzsgfTsKIAkJMkRGRjdCNkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3Rv
cmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZG
N0I2QzFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSAqLzsgfTsKQEAgLTE5NDks
NiArMTk1MCw3IEBACiAJCTJERDM1NTM1MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50
ZWdyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRv
TGF5b3V0SW50ZWdyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdE
M0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNpemVSZXZlcnNlUGFnaW5h
dGVkV2ViVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdEM0FFMTc4
MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJERDg3MTQ0MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0VGVzdHNDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHA7IHBhdGggPSBjZy9CaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0VGVzdHNDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
RTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFuaW1hdGVkUmVzaXplLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtpbmct
ZGl2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmxpbmtpbmctZGl2Lmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREZGN0I2QzFEQTQ4N0FGMDA4MTQ2MTQg
LyogU25hcHNob3RTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNuYXBzaG90U3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTEz
LDYgKzQ5MTUsNyBAQAogCQlGNDU3Mjc1QjI1NTc4QzlFMDA3QUNBMzQgLyogY2cgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJERDg3MTQ0MjY1RjIzQjQw
MDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi8sCiAJCQkJ
RjQ1NzI3NUQyNTU3OEQwNjAwN0FDQTM0IC8qIERpc3BsYXlMaXN0VGVzdHNDRy5jcHAgKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGNnOwpAQCAtNTMxMSw2ICs1MzE0LDcgQEAKIAkJCQkxQzdGRUIyMDIw
N0MwRjJFMDBEMjMyNzggLyogQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzE1Q0JCMzAyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzE2OTJEQ0EyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnku
bW0gaW4gU291cmNlcyAqLywKKwkJCQkyREQ4NzE0NTI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdB
NjAxREYzNkVFRTAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdBODlCQjY3MjMzMTY0MzIwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJCMTFCODc0MzgwMDAwOTcxMTAgLyogQnVuZGxl
UGFyYW1ldGVycy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NnL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0VGVzdHNDRy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMzMzc5ZGViYjYxNTMzMzM0MjYxNjRh
ZWVmNmFkNjY5NzNiMWE3MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAKQEAg
LTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVT
RShDRykKKworI2luY2x1ZGUgPFdlYkNvcmUvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRGVzdGluYXRpb25Db2xvclNwYWNlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNwbGF5TGlzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRGlzcGxheUxpc3RSZWNvcmRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Q0cuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2lu
ZyBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q7Cit1c2luZyBuYW1lc3BhY2UgRGlzcGxheUxpc3Q7
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGNvbnRleHRXaWR0aCA9IDE7Citjb25zdGV4cHIgQ0dGbG9h
dCBjb250ZXh0SGVpZ2h0ID0gMTsKKworVEVTVChCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVz
dHMsIEJhc2ljQmlmdXJjYXRlZENvbnRleHQpCit7CisgICAgYXV0byBjb2xvclNwYWNlID0gRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCk7CisgICAgYXV0byBwcmltYXJ5Q0dDb250ZXh0ID0g
YWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUobnVsbHB0ciwgY29udGV4dFdpZHRoLCBjb250
ZXh0SGVpZ2h0LCA4LCA0ICogY29udGV4dFdpZHRoLCBjb2xvclNwYWNlLnBsYXRmb3JtQ29sb3JT
cGFjZSgpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpKTsKKyAgICBhdXRvIHNlY29u
ZGFyeUNHQ29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKG51bGxwdHIsIGNv
bnRleHRXaWR0aCwgY29udGV4dEhlaWdodCwgOCwgNCAqIGNvbnRleHRXaWR0aCwgY29sb3JTcGFj
ZS5wbGF0Zm9ybUNvbG9yU3BhY2UoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7
CisKKyAgICBHcmFwaGljc0NvbnRleHRDRyBwcmltYXJ5Q29udGV4dChwcmltYXJ5Q0dDb250ZXh0
LmdldCgpKTsKKworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgZGlzcGxheUxpc3Q7CisgICAgUmVj
b3JkZXIgc2Vjb25kYXJ5Q29udGV4dChkaXNwbGF5TGlzdCwgeyB9LCBGbG9hdFJlY3QoMCwgMCwg
Y29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSwgeyB9KTsKKworICAgIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQgY3R4KHByaW1hcnlDb250ZXh0LCBzZWNvbmRhcnlDb250ZXh0KTsKKworICAg
IGN0eC5maWxsUmVjdChGbG9hdFJlY3QoMCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0
KSwgQ29sb3I6OnJlZCk7CisKKyAgICAvLyBUaGUgcHJpbWFyeSBjb250ZXh0IHNob3VsZCBoYXZl
IG9uZSByZWQgcGl4ZWwuCisgICAgQ0dDb250ZXh0Rmx1c2gocHJpbWFyeUNHQ29udGV4dC5nZXQo
KSk7CisgICAgdWludDhfdCogcHJpbWFyeURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ0dC
aXRtYXBDb250ZXh0R2V0RGF0YShwcmltYXJ5Q0dDb250ZXh0LmdldCgpKSk7CisgICAgRVhQRUNU
X0VRKHByaW1hcnlEYXRhWzBdLCAyNTUpOworICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVsxXSwg
MCk7CisgICAgRVhQRUNUX0VRKHByaW1hcnlEYXRhWzJdLCAwKTsKKworICAgIC8vIFRoZSBzZWNv
bmRhcnkgY29udGV4dCBzaG91bGQgaGF2ZSBhIHJlZCBGaWxsUmVjdFdpdGhDb2xvci4KKyAgICBF
WFBFQ1RfRkFMU0UoZGlzcGxheUxpc3QuaXNFbXB0eSgpKTsKKyAgICBib29sIHNhd0ZpbGxSZWN0
ID0gZmFsc2U7CisgICAgZm9yIChhdXRvIGRpc3BsYXlMaXN0SXRlbSA6IGRpc3BsYXlMaXN0KSB7
CisgICAgICAgIGF1dG8gaGFuZGxlID0gZGlzcGxheUxpc3RJdGVtLT5pdGVtOworICAgICAgICBp
ZiAoaGFuZGxlLnR5cGUoKSAhPSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3IpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBFWFBFQ1RfVFJVRShoYW5kbGUuaXNEcmF3aW5nSXRl
bSgpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxlLmlzPEZpbGxSZWN0V2l0aENvbG9yPigp
KTsKKyAgICAgICAgc2F3RmlsbFJlY3QgPSB0cnVlOworICAgICAgICBhdXRvJiBpdGVtID0gaGFu
ZGxlLmdldDxGaWxsUmVjdFdpdGhDb2xvcj4oKTsKKyAgICAgICAgRVhQRUNUX0VRKGl0ZW0ucmVj
dCgpLCBGbG9hdFJlY3QoMCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSk7CisgICAg
ICAgIEVYUEVDVF9FUShpdGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgIH0KKworICAgIEVY
UEVDVF9HVChkaXNwbGF5TGlzdC5zaXplSW5CeXRlcygpLCAwVSk7CisgICAgRVhQRUNUX1RSVUUo
c2F3RmlsbFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRp
ZiAvLyBVU0UoQ0cpCg==
</data>
<flag name="commit-queue"
          id="451133"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429858</attachid>
            <date>2021-05-27 01:40:42 -0700</date>
            <delta_ts>2021-05-27 11:18:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226318-20210527014041.patch</filename>
            <type>text/plain</type>
            <size>39319</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2NGJkZjBhYzMwN2Zh
MzgxYjgyNGY3M2Q2MzM0YTY4ZjVmOWQxNy4uMWJjYWUyNjk2NDJiNjM2OWU1MmQ0MjM0NDJlMzdj
M2E4NDU5MzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZXcgdGVzdDogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
LkJhc2ljQmlmdXJjYXRlZENvbnRleHQKKworICAgICAgICBJbnRyb2R1Y2UgYSBHcmFwaGljc0Nv
bnRleHQgc3ViY2xhc3MgdGhhdCBmb3J3YXJkcyBwYWludGluZyAKKyAgICAgICAgdG8gdHdvIGFy
Yml0cmFyeSBjaGlsZCBHcmFwaGljc0NvbnRleHRzLiBUaGlzIGNhbiBiZSB1c2VkLCBmb3IgZXhh
bXBsZSwKKyAgICAgICAgdG8gcGFpbnQgaW50byBhIGJpdG1hcCBhbmQgZGlzcGxheSBsaXN0IHNp
bXVsdGFuZW91c2x5LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Qmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1D
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnNhdmUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpk
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsUm91bmRlZFJlY3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUVsbGlwc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojppc0NB
TGF5ZXJDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUNhcCk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lSm9pbik6
CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxp
bWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmNvbmNhdENUTSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpzZXRDVE0pOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXREZXN0
aW5hdGlvbkZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQuaDogQWRkZWQuCisKIDIwMjEtMDUtMjYgIENhbWVyb24gTWNDb3JtYWNr
ICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IHNiaXggZ2x5cGhzIGZyb20g
YmVpbmcgcmVuZGVyZWQgaW4gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMjVhNDRkMzg4
ZjViYjI2MzllYjEwYzAxMDI0MzFiNWM1MDVlYTAuLmM0OTExNmMxMTU4NzMyMWFiMjdmYzQzNmJi
MTAyZWZlMWI2OWExY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMjcgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNl
IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZDo6Y3JlYXRlKToKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExldmVyYWdlIHRoZSBuZXcgVmVjdG9yKGNvbnN0
IFQqLCBzaXplX3QpIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0ZGZhNjA1ZGQ2
YjAyOTkxNGNlNDdkMjZjM2Q4YTk5OGI5YzZkNTY1Li4xZTcxNzE0Yzg5NTFiOGQ0NDQxODc2ZWEy
YmEyOTA1ZjcxYWE3NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExODAsNiArMTE4MCw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9u
RnJhbWVSYXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBlYWFmYjllMGIzNmJkMzBmN2Q4MTc4OTYyZWY1ZjMwMDdkM2M0Y2VmLi5hZTA3ZTA2MWYz
ZTA4M2UxMTYxZjk2ZGMxNThjOGFmYjdhOGRlOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTk0MCw2
ICsxOTQwLDcgQEAgcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkQ29uc3RhbnRzLmNwcAogcGxhdGZv
cm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRl
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckJsZW5kaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ3MjY1ZWFjODdl
ODY1YTAxYTY4NzU0OGNiN2M3NWE3YjQwMDk1YWMuLmE1MTVjMjM0ODFmZjk4MjczNWNjZmUzNDNh
NGNjZDRhMzllOThlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg2NSw2ICs4NjUsNyBAQAogCQkyREFGMzQzRDFFQTdFMEYx
MDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBRjM0M0IxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0
YW50UHJvcGVydHlNYXAuaCAqLzsgfTsKIAkJMkRDOEQzOTgyNUYyRkU5NzAwQ0ZDQkFCIC8qIE1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM4
RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ1QTcyNzFFQkVFNDdEMDA5QkE1OTcgLyogQ29t
cG9zaXRpb25VbmRlcmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGlu
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJE
RDg3MTRCMjY1RjQzNjYwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ4NzE0OTI2NUY0
MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJERTcwMDIzMTkyRkU4MkEwMEIw
OTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAv
KiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLzsgfTsKIAkJMkRGNTEyQ0UxRDg3
M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2
NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oICovOyB9OwogCQkyREZBNDg4RjFE
QjU0MUQwMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVy
U291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTczMzYsNiArNzMzNyw4IEBACiAJCTJEQzhEMzk2MjVGMkZFOTMwMENGQ0JBQiAvKiBNb2Rl
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQzhEMzk3MjVGMkZFOTQwMENGQ0JBQiAvKiBNb2RlbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ1QTcyNjFFQkVF
NDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25VbmRlcmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
RDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVD
IC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0IxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRl
eHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VSYW5n
ZVdpdGhUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5MTAs
NiArMjY5MTMsOCBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRp
b25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9U
cmFja1ByaXZhdGUuaCAqLywKKwkJCQkyREQ4NzE0NzI2NUY0MzY0MDA1Rjk5N0MgLyogQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCisJCQkJMkREODcxNDkyNjVGNDM2NTAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlBODk5NDMyNzBCNDIzMzg3
MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLAogCQkJCUE4OTk0MzI2MEI0MjMzODcwMEQ3
QzgwMiAvKiBCaXRtYXBJbWFnZS5oICovLAogCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAv
KiBDb2xvci5jcHAgKi8sCkBAIC0zMTcyNSw2ICszMTczMCw3IEBACiAJCQkJQjJDM0RBMjUwRDAw
NkMxRDAwRUY2RjI2IC8qIEJpZGlSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNzg5
ODYxMTIwRTdBNjAwNjBFQ0U1IC8qIEJpZGlSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzQw
MjkzMTM0OEIyMjIwMDYzRjFFNSAvKiBCaWRpUnVuTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkREODcxNEIyNjVGNDM2NjAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhEMTJCMDI2RjcwMEMxQTM1OSAvKiBCaXF1YWQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDI1MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWREU1BL
ZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQzU0RjA1MTM5OUIwREEwMDhEOTExNyAvKiBC
aXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDRkODNiMzFiMjczYmE2ZDg0OTU3OWEzMjU1Mjc0OTZlMDFmYmYxZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsMzgzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dChHcmFwaGljc0NvbnRleHQmIHByaW1hcnlDb250ZXh0LCBHcmFwaGljc0NvbnRleHQmIHNlY29u
ZGFyeUNvbnRleHQpCisgICAgOiBtX3ByaW1hcnlDb250ZXh0KHByaW1hcnlDb250ZXh0KQorICAg
ICwgbV9zZWNvbmRhcnlDb250ZXh0KHNlY29uZGFyeUNvbnRleHQpCit7Cit9CisKK0JpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6On5CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KCkKK3sKK30KKwor
Ym9vbCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0Lmhhc1BsYXRmb3JtQ29udGV4dCgpOwor
fQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojpz
YXZlKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNhdmUoKTsKKyAgICBtX3NlY29uZGFyeUNv
bnRleHQuc2F2ZSgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJlc3Rv
cmUoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQucmVzdG9yZSgpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UmVjdChyZWN0LCBib3JkZXJUaGlja25lc3MpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmIGZyb20sIGNvbnN0IEZsb2F0UG9pbnQmIHRvKQoreworICAgIG1fcHJpbWFyeUNvbnRl
eHQuZHJhd0xpbmUoZnJvbSwgdG8pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TGluZShm
cm9tLCB0byk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0VsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd0Vs
bGlwc2UocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdFbGxpcHNlKHJlY3QpOwor
fQorCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OmFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5h
cHBseVN0cm9rZVBhdHRlcm4oKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlTdHJva2VQ
YXR0ZXJuKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlGaWxs
UGF0dGVybigpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5hcHBseUZpbGxQYXR0ZXJuKCk7Cisg
ICAgbV9zZWNvbmRhcnlDb250ZXh0LmFwcGx5RmlsbFBhdHRlcm4oKTsKK30KKyNlbmRpZgorCit2
b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdGgmIHBhdGgp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UGF0aChwYXRoKTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuZHJhd1BhdGgocGF0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0
LmZpbGxQYXRoKHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUGF0aChwYXRoKTsK
K30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBh
dGgmIHBhdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworICAg
IG1fc2Vjb25kYXJ5Q29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
K3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5
ZXIoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAg
ICBtX3NlY29uZGFyeUNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKwordm9pZCBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjphcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZh
Y3RvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmFj
dG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmYWN0
b3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsUmVjdChyZWN0KTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0KHJlY3Qs
IGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCwgY29sb3IpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdEltcGwo
Y29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAg
IG1fcHJpbWFyeUNvbnRleHQuZmlsbFJvdW5kZWRSZWN0SW1wbChyZWN0LCBjb2xvcik7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LmZpbGxSb3VuZGVkUmVjdEltcGwocmVjdCwgY29sb3IpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xl
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhv
bGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5maWxs
UmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9yKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQuZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhv
bGVSZWN0LCBjb2xvcik7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xl
YXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmNs
ZWFyUmVjdChyZWN0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuY2xlYXJSZWN0KHJlY3QpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5z
dHJva2VSZWN0KHJlY3QsIGxpbmVXaWR0aCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnN0cm9r
ZVJlY3QocmVjdCwgbGluZVdpZHRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpmaWxsRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5maWxsRWxsaXBzZShlbGxpcHNlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQu
ZmlsbEVsbGlwc2UoZWxsaXBzZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCit7CisgICAgbV9wcmlt
YXJ5Q29udGV4dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5zdHJva2VFbGxpcHNlKGVsbGlwc2UpOworfQorCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNU
MkQpCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldElzQ0FMYXllckNvbnRleHQo
Ym9vbCBpc0NBTGF5ZXJDb250ZXh0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0SXNDQUxh
eWVyQ29udGV4dChpc0NBTGF5ZXJDb250ZXh0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0
SXNDQUxheWVyQ29udGV4dChpc0NBTGF5ZXJDb250ZXh0KTsKK30KKworYm9vbCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0Ojppc0NBTGF5ZXJDb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcmltYXJ5Q29udGV4dC5pc0NBTGF5ZXJDb250ZXh0KCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNBY2NlbGVyYXRlZENvbnRleHQoYm9vbCBpc0FjY2VsZXJh
dGVkQ29udGV4dCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNldElzQWNjZWxlcmF0ZWRDb250
ZXh0KGlzQWNjZWxlcmF0ZWRDb250ZXh0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHQoaXNBY2NlbGVyYXRlZENvbnRleHQpOworfQorI2VuZGlmCisKK1Jl
bmRlcmluZ01vZGUgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cmVuZGVyaW5nTW9kZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQucmVuZGVyaW5nTW9kZSgpOworfQor
Cit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcChyZWN0KTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuY2xpcChyZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpjbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0
LmNsaXBPdXQocmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNsaXBPdXQocmVjdCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dChjb25zdCBQYXRoJiBw
YXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQuY2xpcE91dChwYXRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSB3aW5kUnVsZSkKK3sK
KyAgICBtX3ByaW1hcnlDb250ZXh0LmNsaXBQYXRoKHBhdGgsIHdpbmRSdWxlKTsKKyAgICBtX3Nl
Y29uZGFyeUNvbnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOworfQorCitJbnRSZWN0IEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMoKSBjb25zdAoreworICAgIHJldHVy
biBtX3ByaW1hcnlDb250ZXh0LmNsaXBCb3VuZHMoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LnNldExpbmVDYXAobGluZUNhcCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNl
dExpbmVDYXAobGluZUNhcCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
c2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5JiBkYXNoQXJyYXksIGZsb2F0IGRhc2hPZmZzZXQp
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRhc2hPZmZz
ZXQpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lRGFzaChkYXNoQXJyYXksIGRhc2hP
ZmZzZXQpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2lu
KExpbmVKb2luIGxpbmVKb2luKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TGluZUpvaW4o
bGluZUpvaW4pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRMaW5lSm9pbihsaW5lSm9pbik7
Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdChmbG9h
dCBtaXRlckxpbWl0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdChtaXRl
ckxpbWl0KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0TWl0ZXJMaW1pdChtaXRlckxpbWl0
KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
TmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKG5hdGl2ZUltYWdlLCBzZWxmU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
dGlvbnMpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1h
Z2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7Cit9CisKK3ZvaWQgQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJbWFnZSwgaW1hZ2VTaXpl
LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzY2FsZShjb25z
dCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2NhbGUoc2NhbGUp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zY2FsZShzY2FsZSk7Cit9CisKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKQoreworICAg
IG1fcHJpbWFyeUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQucm90YXRlKGFuZ2xlSW5SYWRpYW5zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQudHJhbnNs
YXRlKHgsIHkpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNvbmNhdENU
TShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3sKKyAgICBtX3ByaW1hcnlDb250
ZXh0LmNvbmNhdENUTSh0cmFuc2Zvcm0pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jb25jYXRD
VE0odHJhbnNmb3JtKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRD
VE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCit7CisgICAgbV9wcmltYXJ5Q29u
dGV4dC5zZXRDVE0odHJhbnNmb3JtKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0Q1RNKHRy
YW5zZm9ybSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpnZXRDVE0oSW5jbHVkZURldmljZVNjYWxlIGluY2x1ZGVEZXZpY2VTY2FsZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcmltYXJ5Q29udGV4dC5nZXRDVE0oaW5jbHVkZURldmljZVNjYWxlKTsK
K30KKworRmxvYXRSZWN0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQ
aXhlbHMoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBSb3VuZGluZ01vZGUgcm91bmRpbmdNb2RlKQor
eworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LnJvdW5kVG9EZXZpY2VQaXhlbHMocmVjdCwg
cm91bmRpbmdNb2RlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3
Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZs
b2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQu
ZHJhd0ZvY3VzUmluZyhyZWN0cywgd2lkdGgsIG9mZnNldCwgY29sb3IpOworICAgIG1fc2Vjb25k
YXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQ
YXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHdpZHRoLCBvZmZz
ZXQsIGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0ZvY3VzUmluZyhwYXRoLCB3
aWR0aCwgb2Zmc2V0LCBjb2xvcik7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgZG91
YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYgY29sb3IpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHRpbWVPZmZzZXQsIG5l
ZWRzUmVkcmF3LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdGb2N1c1Jpbmco
cGF0aCwgdGltZU9mZnNldCwgbmVlZHNSZWRyYXcsIGNvbG9yKTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+
JiByZWN0cywgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xv
ciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJlY3RzLCB0
aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5k
cmF3Rm9jdXNSaW5nKHJlY3RzLCB0aW1lT2Zmc2V0LCBuZWVkc1JlZHJhdywgY29sb3IpOworfQor
I2VuZGlmCisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4
dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBEYXNoQXJy
YXkmIHdpZHRocywgYm9vbCBwcmludGluZywgYm9vbCBkb3VibGVMaW5lcywgU3Ryb2tlU3R5bGUg
c3Ryb2tlU3R5bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TGluZXNGb3JUZXh0KHBv
aW50LCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZUxpbmVzLCBzdHJva2VTdHls
ZSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHRoaWNr
bmVzcywgd2lkdGhzLCBwcmludGluZywgZG91YmxlTGluZXMsIHN0cm9rZVN0eWxlKTsKK30KKwor
dm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2Vy
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgbWFya2VyU3R5
bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKHJl
Y3QsIG1hcmtlclN0eWxlKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcihyZWN0LCBtYXJrZXJTdHlsZSk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6c2V0VVJMRm9yUmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QgRmxvYXRSZWN0
JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0VVJMRm9yUmVjdCh1cmwsIHJlY3Qp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRVUkxGb3JSZWN0KHVybCwgcmVjdCk7Cit9CisK
K3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0RGVzdGluYXRpb25Gb3JSZWN0KGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFy
eUNvbnRleHQuc2V0RGVzdGluYXRpb25Gb3JSZWN0KG5hbWUsIHJlY3QpOworICAgIG1fc2Vjb25k
YXJ5Q29udGV4dC5zZXREZXN0aW5hdGlvbkZvclJlY3QobmFtZSwgcmVjdCk7Cit9CisKK3ZvaWQg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YWRkRGVzdGluYXRpb25BdFBvaW50KGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgbV9wcmltYXJ5Q29u
dGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworICAgIG1fc2Vjb25kYXJ5
Q29udGV4dC5hZGREZXN0aW5hdGlvbkF0UG9pbnQobmFtZSwgcG9pbnQpOworfQorCitib29sIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzSW50ZXJuYWxMaW5rcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRleHQuc3VwcG9ydHNJbnRlcm5hbExpbmtzKCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6dXBkYXRlU3RhdGUoY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyBmbGFncykKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0YXRl
LCBmbGFncyk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnVwZGF0ZVN0YXRlKHN0YXRlLCBmbGFn
cyk7Cit9CisKKyNpZiBPUyhXSU5ET1dTKQorR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
KiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkZXByZWNhdGVkUHJpdmF0ZUNvbnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LmRlcHJlY2F0ZWRQcml2YXRlQ29u
dGV4dCgpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMWE2NDdmMDg2ZjY5NTFhZWFmMGY5ODQ1MmU3MDFj
MTg5MDY2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCBh
bGxvd3MgeW91IHRvIGR1cGxpY2F0ZSBwYWludGluZyBiZXR3ZWVuIHR3byBnaXZlbiBHcmFwaGlj
c0NvbnRleHRzOworLy8gZm9yIGV4YW1wbGUsIGZvciBwYWludGluZyBpbnRvIGEgYml0bWFwLWJh
Y2tlZCBhbmQgYSBkaXNwbGF5LWxpc3QtYmFja2VkIGNvbnRleHQgc2ltdWx0YW5lb3VzbHkuCisv
LyBBbnkgc3RhdGUgdGhhdCBpcyByZXR1cm5lZCBieSBHcmFwaGljc0NvbnRleHQgbWV0aG9kcyB3
aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcmltYXJ5IGNvbnRleHQuCisKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0IHsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKK3B1YmxpYzoKKyAgICBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgcHJpbWFyeUNvbnRleHQsIEdy
YXBoaWNzQ29udGV4dCYgc2Vjb25kYXJ5Q29udGV4dCk7CisgICAgfkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQoKTsKKworICAgIGJvb2wgaGFzUGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CisgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0IGZpbmFsOwor
CisgICAgdm9pZCBzYXZlKCkgZmluYWw7CisgICAgdm9pZCByZXN0b3JlKCkgZmluYWw7CisKKyAg
ICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcyA9
IDEpIGZpbmFsOworICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZs
b2F0UG9pbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYp
IGZpbmFsOworCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCisgICAgdm9pZCBhcHBseVN0
cm9rZVBhdHRlcm4oKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKSBmaW5hbDsK
KyNlbmRpZgorICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZvaWQg
ZmlsbFBhdGgoY29uc3QgUGF0aCYpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlUGF0aChjb25zdCBQ
YXRoJikgZmluYWw7CisKKyAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3Bh
Y2l0eSkgZmluYWw7CisgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFsOworCisg
ICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IGZhY3RvcikgZmluYWw7CisKKyAg
ICB1c2luZyBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0OworICAgIHZvaWQgZmlsbFJlY3QoY29u
c3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZmlsbFJvdW5kZWRSZWN0SW1wbChjb25z
dCBGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFy
UmVjdChjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKSBmaW5hbDsKKworICAgIHZvaWQgZmlsbEVsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKyAgICB2b2lkIHN0cm9rZUVsbGlw
c2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKSBmaW5hbDsKKworI2lmIFVTRShDRykgfHwgVVNF
KERJUkVDVDJEKQorICAgIHZvaWQgc2V0SXNDQUxheWVyQ29udGV4dChib29sKSBmaW5hbDsKKyAg
ICBib29sIGlzQ0FMYXllckNvbnRleHQoKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHQoYm9vbCkgZmluYWw7CisjZW5kaWYKKworICAgIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBjbGlwKGNvbnN0IEZs
b2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgY2xpcE91dChjb25zdCBGbG9hdFJlY3QmKSBmaW5h
bDsKKworICAgIHZvaWQgY2xpcE91dChjb25zdCBQYXRoJikgZmluYWw7CisKKyAgICB2b2lkIGNs
aXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSA9IFdpbmRSdWxlOjpFdmVuT2RkKSBmaW5hbDsK
KworICAgIEludFJlY3QgY2xpcEJvdW5kcygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBzZXRM
aW5lQ2FwKExpbmVDYXApIGZpbmFsOworICAgIHZvaWQgc2V0TGluZURhc2goY29uc3QgRGFzaEFy
cmF5JiwgZmxvYXQgZGFzaE9mZnNldCkgZmluYWw7CisgICAgdm9pZCBzZXRMaW5lSm9pbihMaW5l
Sm9pbikgZmluYWw7CisgICAgdm9pZCBzZXRNaXRlckxpbWl0KGZsb2F0KSBmaW5hbDsKKworICAg
IHZvaWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBzZWxm
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJh
d1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pIGZpbmFsOworCisgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0OjpzY2FsZTsKKyAgICB2b2lk
IHNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgcm90YXRlKGZsb2F0IGFu
Z2xlSW5SYWRpYW5zKSBmaW5hbDsKKyAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5
KSBmaW5hbDsKKworICAgIHZvaWQgY29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGZp
bmFsOworICAgIHZvaWQgc2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGZpbmFsOworCisg
ICAgQWZmaW5lVHJhbnNmb3JtIGdldENUTShJbmNsdWRlRGV2aWNlU2NhbGUgPSBQb3NzaWJseUlu
Y2x1ZGVEZXZpY2VTY2FsZSkgY29uc3QgZmluYWw7CisKKyAgICBGbG9hdFJlY3Qgcm91bmRUb0Rl
dmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmLCBSb3VuZGluZ01vZGUgPSBSb3VuZEFsbFNpZGVz
KSBmaW5hbDsKKworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0
PiYsIGZsb2F0LCBmbG9hdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdGb2N1
c1JpbmcoY29uc3QgUGF0aCYsIGZsb2F0LCBmbG9hdCwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmLCBkb3Vi
bGUsIGJvb2wmLCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhj
b25zdCBWZWN0b3I8RmxvYXRSZWN0PiYsIGRvdWJsZSwgYm9vbCYsIGNvbnN0IENvbG9yJikgZmlu
YWw7CisjZW5kaWYKKworICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50
JiwgZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBEYXNoQXJyYXkmIHdpZHRocywgYm9vbCBwcmludGlu
ZywgYm9vbCBkb3VibGVMaW5lcywgU3Ryb2tlU3R5bGUpIGZpbmFsOworCisgICAgdm9pZCBkcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYsIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlKSBmaW5hbDsKKworICAgIHZvaWQgc2V0VVJMRm9yUmVjdChjb25zdCBVUkwmLCBjb25z
dCBGbG9hdFJlY3QmKSBmaW5hbDsKKworICAgIHZvaWQgc2V0RGVzdGluYXRpb25Gb3JSZWN0KGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBhZGRE
ZXN0aW5hdGlvbkF0UG9pbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBGbG9hdFBvaW50Jikg
ZmluYWw7CisKKyAgICBib29sIHN1cHBvcnRzSW50ZXJuYWxMaW5rcygpIGNvbnN0IGZpbmFsOwor
CisgICAgdm9pZCB1cGRhdGVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKSBmaW5hbDsKKworI2lmIE9TKFdJTkRP
V1MpCisgICAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKiBkZXByZWNhdGVkUHJpdmF0
ZUNvbnRleHQoKSBjb25zdCBmaW5hbDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBoaWNz
Q29udGV4dCYgbV9wcmltYXJ5Q29udGV4dDsKKyAgICBHcmFwaGljc0NvbnRleHQmIG1fc2Vjb25k
YXJ5Q29udGV4dDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4
IGRhNWY3ODExYTg4YmFlYmZmOGUwNGY1ZjU4ODg1NWVkODA1NzU2MzYuLmE3MjliMDA3MmRiNWNk
ZTUyNzZiMzRjOWFmYWE3MTRiNzQ4OGM3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJDYWlyb09wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCisjaW5jbHVk
ZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVD
YWlyby5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMwNjhm
MmM2NDcxNjQyZWJhNWE4YTI2ZmQ0YmViNWQ1YmJlOTg3YjguLmRmYTA4NGZlYjAxZTQ4M2JiOGYw
YTUzYjZjNzEwODc0YWQwYTM1YjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0yNyAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI2MzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dFRlc3RzQ0cuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIxLTA1LTI2ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBNZWRpYVNlc3Npb24gcmVhZHlzdGF0ZSBlbnVtcyBhbGwg
bG93ZXJjYXNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5Y2FhODc4NzhhZmM2YzVkOTcz
ZGU5OGIzOGE5MmI1MDQ3MzY3OTAuLmMzYmQ5OGZhZDc1MDY0YzNkZTQ2N2ViYzU3ZWY2MTYwYThm
MTUwYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjcsNiArMTY3LDcgQEAKIAkJMkRD
NENGNzcxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQg
LyogRGF0YURldGVjdGlvbi5tbSAqLzsgfTsKIAkJMkRDOTQ1MTcyNEQ4QUMwMjAwNDMwMzc2IC8q
IFdlYlRocmVhZExvY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREM5NDUxNjI0RDhBQzAyMDA0MzAzNzYgLyogV2ViVGhyZWFkTG9jay5tbSAqLzsg
fTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4dC12ZXJ0aWNhbC1s
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIu
aHRtbCAqLzsgfTsKKwkJMkREODcxNDUyNjVGMjNCNDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHRUZXN0c0NHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJERDg3MTQ0MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0VGVzdHNDRy5jcHAgKi87IH07CiAJCTJERTcxQUZFMUQ0OUMwQkQwMDkwNDA5NCAv
KiBBbmltYXRlZFJlc2l6ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSAq
LzsgfTsKIAkJMkRFNzFCMDAxRDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcx
QUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLzsgfTsKIAkJMkRGRjdC
NkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZGN0I2QzFEQTQ4N0FGMDA4MTQ2MTQgLyog
U25hcHNob3RTdG9yZS5tbSAqLzsgfTsKQEAgLTE5NDksNiArMTk1MCw3IEBACiAJCTJERDM1NTM1
MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBS
ZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9m
LXRleHQtdmVydGljYWwtbHIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQtdmVydGljYWwt
bHIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDg3MTQ0MjY1RjIzQjQw
MDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVz
dHNDRy5jcHA7IHBhdGggPSBjZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAv
KiBBbmltYXRlZFJlc2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFuaW1hdGVkUmVzaXplLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREU3
MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiYmxpbmtpbmctZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREZGN0I2QzFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNuYXBzaG90U3RvcmUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTEzLDYgKzQ5MTUsNyBAQAogCQlGNDU3Mjc1
QjI1NTc4QzlFMDA3QUNBMzQgLyogY2cgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJERDg3MTQ0MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3Jh
cGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi8sCiAJCQkJRjQ1NzI3NUQyNTU3OEQwNjAwN0FDQTM0
IC8qIERpc3BsYXlMaXN0VGVzdHNDRy5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNnOwpAQCAt
NTMxMSw2ICs1MzE0LDcgQEAKIAkJCQkxQzdGRUIyMDIwN0MwRjJFMDBEMjMyNzggLyogQmFja2dy
b3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE1Q0JCMzAyM0YxRkYxQTAwMzAwQ0M3
IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE2
OTJEQ0EyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gaW4gU291cmNlcyAqLywKKwkJCQky
REQ4NzE0NTI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dFRlc3Rz
Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjAxREYzNkVFRTAwQUNDQjZDIC8qIEJ1
bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBODlCQjY3MjMzMTY0
MzIwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
MTNFQkJCMTFCODc0MzgwMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Jp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTMzMzc5ZGViYjYxNTMzMzM0MjYxNjRhZWVmNmFkNjY5NzNiMWE3MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShDRykKKworI2luY2x1ZGUgPFdlYkNv
cmUvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGVzdGlu
YXRpb25Db2xvclNwYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3RJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3Q7Cit1c2luZyBuYW1lc3BhY2UgRGlzcGxheUxpc3Q7CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGNv
bnRleHRXaWR0aCA9IDE7Citjb25zdGV4cHIgQ0dGbG9hdCBjb250ZXh0SGVpZ2h0ID0gMTsKKwor
VEVTVChCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHMsIEJhc2ljQmlmdXJjYXRlZENvbnRl
eHQpCit7CisgICAgYXV0byBjb2xvclNwYWNlID0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdC
KCk7CisgICAgYXV0byBwcmltYXJ5Q0dDb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRD
cmVhdGUobnVsbHB0ciwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0LCA4LCA0ICogY29udGV4
dFdpZHRoLCBjb2xvclNwYWNlLnBsYXRmb3JtQ29sb3JTcGFjZSgpLCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZExhc3QpKTsKKyAgICBhdXRvIHNlY29uZGFyeUNHQ29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKG51bGxwdHIsIGNvbnRleHRXaWR0aCwgY29udGV4dEhlaWdo
dCwgOCwgNCAqIGNvbnRleHRXaWR0aCwgY29sb3JTcGFjZS5wbGF0Zm9ybUNvbG9yU3BhY2UoKSwg
a0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisKKyAgICBHcmFwaGljc0NvbnRleHRD
RyBwcmltYXJ5Q29udGV4dChwcmltYXJ5Q0dDb250ZXh0LmdldCgpKTsKKworICAgIEluTWVtb3J5
RGlzcGxheUxpc3QgZGlzcGxheUxpc3Q7CisgICAgUmVjb3JkZXIgc2Vjb25kYXJ5Q29udGV4dChk
aXNwbGF5TGlzdCwgeyB9LCBGbG9hdFJlY3QoMCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVp
Z2h0KSwgeyB9KTsKKworICAgIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgY3R4KHByaW1hcnlD
b250ZXh0LCBzZWNvbmRhcnlDb250ZXh0KTsKKworICAgIGN0eC5maWxsUmVjdChGbG9hdFJlY3Qo
MCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSwgQ29sb3I6OnJlZCk7CisKKyAgICAv
LyBUaGUgcHJpbWFyeSBjb250ZXh0IHNob3VsZCBoYXZlIG9uZSByZWQgcGl4ZWwuCisgICAgQ0dD
b250ZXh0Rmx1c2gocHJpbWFyeUNHQ29udGV4dC5nZXQoKSk7CisgICAgdWludDhfdCogcHJpbWFy
eURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ0dCaXRtYXBDb250ZXh0R2V0RGF0YShwcmlt
YXJ5Q0dDb250ZXh0LmdldCgpKSk7CisgICAgRVhQRUNUX0VRKHByaW1hcnlEYXRhWzBdLCAyNTUp
OworICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVsxXSwgMCk7CisgICAgRVhQRUNUX0VRKHByaW1h
cnlEYXRhWzJdLCAwKTsKKworICAgIC8vIFRoZSBzZWNvbmRhcnkgY29udGV4dCBzaG91bGQgaGF2
ZSBhIHJlZCBGaWxsUmVjdFdpdGhDb2xvci4KKyAgICBFWFBFQ1RfRkFMU0UoZGlzcGxheUxpc3Qu
aXNFbXB0eSgpKTsKKyAgICBib29sIHNhd0ZpbGxSZWN0ID0gZmFsc2U7CisgICAgZm9yIChhdXRv
IGRpc3BsYXlMaXN0SXRlbSA6IGRpc3BsYXlMaXN0KSB7CisgICAgICAgIGF1dG8gaGFuZGxlID0g
ZGlzcGxheUxpc3RJdGVtLT5pdGVtOworICAgICAgICBpZiAoaGFuZGxlLnR5cGUoKSAhPSBJdGVt
VHlwZTo6RmlsbFJlY3RXaXRoQ29sb3IpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICBFWFBFQ1RfVFJVRShoYW5kbGUuaXNEcmF3aW5nSXRlbSgpKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUoaGFuZGxlLmlzPEZpbGxSZWN0V2l0aENvbG9yPigpKTsKKyAgICAgICAgc2F3RmlsbFJlY3Qg
PSB0cnVlOworICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxlLmdldDxGaWxsUmVjdFdpdGhDb2xv
cj4oKTsKKyAgICAgICAgRVhQRUNUX0VRKGl0ZW0ucmVjdCgpLCBGbG9hdFJlY3QoMCwgMCwgY29u
dGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSk7CisgICAgICAgIEVYUEVDVF9FUShpdGVtLmNvbG9y
KCksIENvbG9yOjpyZWQpOworICAgIH0KKworICAgIEVYUEVDVF9HVChkaXNwbGF5TGlzdC5zaXpl
SW5CeXRlcygpLCAwVSk7CisgICAgRVhQRUNUX1RSVUUoc2F3RmlsbFJlY3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBVU0UoQ0cpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429903</attachid>
            <date>2021-05-27 11:18:11 -0700</date>
            <delta_ts>2021-05-27 12:14:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226318-20210527111810.patch</filename>
            <type>text/plain</type>
            <size>38701</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY5MzI0MWM3MTViNTI5
ZjhkY2Q5NTVlNTc1YmEyMzZiODU5MjQwYi4uMGM4NTBmYjkyNTdkNTc0MDJmZGE5NGFjZDY0OWZj
MjI3M2QxZmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgorCisgICAgICAgIE5ldyB0ZXN0OiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHMuQmFz
aWNCaWZ1cmNhdGVkQ29udGV4dAorCisgICAgICAgIEludHJvZHVjZSBhIEdyYXBoaWNzQ29udGV4
dCBzdWJjbGFzcyB0aGF0IGZvcndhcmRzIHBhaW50aW5nIAorICAgICAgICB0byB0d28gYXJiaXRy
YXJ5IGNoaWxkIEdyYXBoaWNzQ29udGV4dHMuIFRoaXMgY2FuIGJlIHVzZWQsIGZvciBleGFtcGxl
LAorICAgICAgICB0byBwYWludCBpbnRvIGEgYml0bWFwIGFuZCBkaXNwbGF5IGxpc3Qgc2ltdWx0
YW5lb3VzbHkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6On5CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6Omhhc1BsYXRmb3JtQ29udGV4dCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUNvbnRl
eHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
c2F2ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpyZXN0
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdF
bGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmFw
cGx5U3Ryb2tlUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0OjphcHBseUZpbGxQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjphcHBseURldmljZVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmZpbGxSb3VuZGVkUmVjdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dDo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlRWxsaXBzZSk6CisgICAgICAg
IChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRJc0NBTGF5ZXJDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmlzQ0FMYXll
ckNvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6c2V0SXNBY2NlbGVyYXRlZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6cmVuZGVyaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQpOgorICAgICAgICAoV2ViQ29yZTo6
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldExpbmVEYXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldE1pdGVyTGltaXQp
OgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OnNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnJv
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0Ojp0cmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y29u
Y2F0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNl
dENUTSk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpnZXRD
VE0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6
cm91bmRUb0RldmljZVBpeGVscyk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Qmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAg
ICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRVUkxGb3JSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldERlc3RpbmF0
aW9uRm9yUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjphZGREZXN0aW5hdGlvbkF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6QmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6c3VwcG9ydHNJbnRlcm5hbExpbmtzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZVN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRlcHJlY2F0ZWRQcml2YXRlQ29u
dGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dC5oOiBBZGRlZC4KKwogMjAyMS0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5pbWF0aW9ucyB0byBHcmFwaGljc0xh
eWVyIGxvZ2dpbmcgb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBjYjA3MjBjN2ZhYmRmNDY2Nzk4YTJlOGZk
MTFhZGIwYWUyNmQzZjIuLmFjMzA3NDM4YzM1MWQ1YjZjZTIzMmMwOWYzYTQ1NjIyOGEzYzFjYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMjcgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kOjpj
cmVhdGUpOgorCiAyMDIxLTA1LTI3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2FsbGluZyAtW1dLV2ViVmlldyBfY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnNd
IGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDRkZmE2MDVkZDZiMDI5OTE0Y2U0N2QyNmMz
ZDhhOTk4YjljNmQ1NjUuLjFlNzE3MTRjODk1MWI4ZDQ0NDE4NzZlYTJiYTI5MDVmNzFhYTc1NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE4MCw2ICsxMTgwLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yQ29tcG9uZW50cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQwNWMzNGE2MWVi
ZDlmM2MxM2MyNjI2ODAxOThjOTEwNjFhNDU3YWYuLmQzY2FjMTBiNTQyZGRhNGUxYmFkMGQyYjYx
Y2FmNTZmZDgzMzQ2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xOTM5LDYgKzE5MzksNyBAQCBwbGF0
Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFudHMuY3BwCiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVw
YWRQcm92aWRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24u
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQmxlbmRpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGNlNmM3NjNmZThkYjdlNzNkMjA2MjRmY2Q0
NDA5YWEyYWYzYjZmNi4uMWRiMGRjZGQ5MzBhNjMzOGUyZDIyMjUyYTJlZWVkZWU0ZTZmZWJkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtODY1LDYgKzg2NSw3IEBACiAJCTJEQUYzNDNEMUVBN0UwRjEwMDM4MkNEMyAvKiBDb25z
dGFudFByb3BlcnR5TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREFGMzQzQjFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5o
ICovOyB9OwogCQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzhEMzk3MjVGMkZFOTQwMENG
Q0JBQiAvKiBNb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTJERDVBNzI3MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGlu
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENUE3
MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkREODcxNEIyNjVGNDM2NjAw
NUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkRFNzAwMjMxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oICovOyB9OwogCQkyREY1MTJDRTFEODczRTQ3MDAxRDY3ODAgLyog
UmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJh
bmdlV2l0aFRleHRDb21tYW5kLmggKi87IH07CiAJCTJERkE0ODhGMURCNTQxRDAwMDM2MkI5OSAv
KiBCdWZmZXJTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJERkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzMzNSw2ICs3MzM2
LDggQEAKIAkJMkRDOEQzOTYyNUYyRkU5MzAwQ0ZDQkFCIC8qIE1vZGVsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1vZGVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDOEQz
OTcyNUYyRkU5NDAwQ0ZDQkFCIC8qIE1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGVsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBD
b21wb3NpdGlvblVuZGVybGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b21wb3NpdGlvblVuZGVybGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ4
NzE0NzI2NUY0MzY0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkREODcxNDkyNjVGNDM2NTAw
NUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExl
Z2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyREY1MTJDQjFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VSYW5n
ZVdpdGhUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjUx
MkNDMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjkwMyw2ICsyNjkwNiw4IEBACiAJ
CQkJMEY3RTQ3NTEyNUVFQjc5QTAwMTNGOTA5IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgKi8s
CiAJCQkJNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICov
LAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICov
LAorCQkJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0LmNwcCAqLywKKwkJCQkyREQ4NzE0OTI2NUY0MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dC5oICovLAogCQkJCUE4OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBCaXRt
YXBJbWFnZS5jcHAgKi8sCiAJCQkJQTg5OTQzMjYwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmggKi8sCiAJCQkJQjI3NTM1MzgwQjA1MzgxNDAwMkNFNjRGIC8qIENvbG9yLmNwcCAqLywK
QEAgLTMxNzE4LDYgKzMxNzIzLDcgQEAKIAkJCQlCMkMzREEyNTBEMDA2QzFEMDBFRjZGMjYgLyog
QmlkaVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODk4NjExMjBFN0E2MDA2MEVD
RTUgLyogQmlkaVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNDAyOTMxMzQ4QjIyMjAwNjNG
MUU1IC8qIEJpZGlSdW5MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQ4NzE0QjI2NUY0MzY2
MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkQzMTYwOEQxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkQzMTYwMjUxMkIwMjY3NjAwQzFBMzU5IC8qIEJpcXVhZERTUEtlcm5lbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NGQ4M2IzMWIyNzNiYTZkODQ5NTc5YTMyNTUyNzQ5NmUwMWZiZjFkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTAsMCArMSwzODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4
dCYgcHJpbWFyeUNvbnRleHQsIEdyYXBoaWNzQ29udGV4dCYgc2Vjb25kYXJ5Q29udGV4dCkKKyAg
ICA6IG1fcHJpbWFyeUNvbnRleHQocHJpbWFyeUNvbnRleHQpCisgICAgLCBtX3NlY29uZGFyeUNv
bnRleHQoc2Vjb25kYXJ5Q29udGV4dCkKK3sKK30KKworQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6fkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQoKQoreworfQorCitib29sIEJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6Omhhc1BsYXRmb3JtQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpbWFyeUNvbnRleHQuaGFzUGxhdGZvcm1Db250ZXh0KCk7Cit9CisKK1BsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0KiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
OworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNhdmUoKQoreworICAgIG1f
cHJpbWFyeUNvbnRleHQuc2F2ZSgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zYXZlKCk7Cit9
CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZSgpCit7CisgICAgbV9w
cmltYXJ5Q29udGV4dC5yZXN0b3JlKCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnJlc3RvcmUo
KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKK3sKKyAgICBtX3ByaW1hcnlD
b250ZXh0LmRyYXdSZWN0KHJlY3QsIGJvcmRlclRoaWNrbmVzcyk7CisgICAgbV9zZWNvbmRhcnlD
b250ZXh0LmRyYXdSZWN0KHJlY3QsIGJvcmRlclRoaWNrbmVzcyk7Cit9CisKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgZnJvbSwgY29u
c3QgRmxvYXRQb2ludCYgdG8pCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TGluZShmcm9t
LCB0byk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdMaW5lKGZyb20sIHRvKTsKK30KKwor
dm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3RWxsaXBzZShyZWN0KTsKKyAg
ICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0VsbGlwc2UocmVjdCk7Cit9CisKKyNpZiBVU0UoQ0cp
IHx8IFVTRShESVJFQ1QyRCkKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6YXBwbHlT
dHJva2VQYXR0ZXJuKCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFwcGx5U3Ryb2tlUGF0dGVy
bigpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5hcHBseVN0cm9rZVBhdHRlcm4oKTsKK30KKwor
dm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjphcHBseUZpbGxQYXR0ZXJuKCkKK3sKKyAg
ICBtX3ByaW1hcnlDb250ZXh0LmFwcGx5RmlsbFBhdHRlcm4oKTsKKyAgICBtX3NlY29uZGFyeUNv
bnRleHQuYXBwbHlGaWxsUGF0dGVybigpOworfQorI2VuZGlmCisKK3ZvaWQgQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd1BhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LmRyYXdQYXRoKHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0
aChwYXRoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aChj
b25zdCBQYXRoJiBwYXRoKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZmlsbFBhdGgocGF0aCk7
CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmZpbGxQYXRoKHBhdGgpOworfQorCit2b2lkIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAg
ICBtX3ByaW1hcnlDb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisgICAgbV9zZWNvbmRhcnlDb250
ZXh0LnN0cm9rZVBhdGgocGF0aCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQoreworICAgIG1fcHJpbWFy
eUNvbnRleHQuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5KTsKKyAgICBtX3NlY29uZGFy
eUNvbnRleHQuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5KTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit7CisgICAgbV9w
cmltYXJ5Q29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworICAgIG1fc2Vjb25kYXJ5Q29u
dGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGlj
c0NvbnRleHQ6OmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgZmFjdG9yKQoreworICAgIG1f
cHJpbWFyeUNvbnRleHQuYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmYWN0b3IpOworICAgIG1fc2Vj
b25kYXJ5Q29udGV4dC5hcHBseURldmljZVNjYWxlRmFjdG9yKGZhY3Rvcik7Cit9CisKK3ZvaWQg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCk7CisgICAgbV9zZWNvbmRh
cnlDb250ZXh0LmZpbGxSZWN0KHJlY3QpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9y
KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZmlsbFJlY3QocmVjdCwgY29sb3IpOworICAgIG1f
c2Vjb25kYXJ5Q29udGV4dC5maWxsUmVjdChyZWN0LCBjb2xvcik7Cit9CisKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0SW1wbChjb25zdCBGbG9hdFJvdW5k
ZWRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4
dC5maWxsUm91bmRlZFJlY3RJbXBsKHJlY3QsIGNvbG9yKTsKKyAgICBtX3NlY29uZGFyeUNvbnRl
eHQuZmlsbFJvdW5kZWRSZWN0SW1wbChyZWN0LCBjb2xvcik7Cit9CisKK3ZvaWQgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkSG9sZVJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxSZWN0V2l0aFJvdW5kZWRI
b2xlKHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgY29sb3IpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5maWxsUmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9yKTsK
K30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xlYXJSZWN0KHJlY3QpOwor
ICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jbGVhclJlY3QocmVjdCk7Cit9CisKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZs
b2F0IGxpbmVXaWR0aCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnN0cm9rZVJlY3QocmVjdCwg
bGluZVdpZHRoKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc3Ryb2tlUmVjdChyZWN0LCBsaW5l
V2lkdGgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmZpbGxFbGxpcHNl
KGNvbnN0IEZsb2F0UmVjdCYgZWxsaXBzZSkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmZpbGxF
bGxpcHNlKGVsbGlwc2UpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5maWxsRWxsaXBzZShlbGxp
cHNlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzdHJva2VFbGxpcHNl
KGNvbnN0IEZsb2F0UmVjdCYgZWxsaXBzZSkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnN0cm9r
ZUVsbGlwc2UoZWxsaXBzZSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnN0cm9rZUVsbGlwc2Uo
ZWxsaXBzZSk7Cit9CisKKyNpZiBVU0UoQ0cpIHx8IFVTRShESVJFQ1QyRCkKK3ZvaWQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVyQ29udGV4dChib29sIGlzQ0FMYXllckNv
bnRleHQpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRJc0NBTGF5ZXJDb250ZXh0KGlzQ0FM
YXllckNvbnRleHQpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRJc0NBTGF5ZXJDb250ZXh0
KGlzQ0FMYXllckNvbnRleHQpOworfQorCitib29sIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6
OmlzQ0FMYXllckNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaW1hcnlDb250ZXh0
LmlzQ0FMYXllckNvbnRleHQoKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29sIGlzQWNjZWxlcmF0ZWRDb250ZXh0KQorewor
ICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0SXNBY2NlbGVyYXRlZENvbnRleHQoaXNBY2NlbGVyYXRl
ZENvbnRleHQpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRJc0FjY2VsZXJhdGVkQ29udGV4
dChpc0FjY2VsZXJhdGVkQ29udGV4dCk7Cit9CisjZW5kaWYKKworUmVuZGVyaW5nTW9kZSBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcmltYXJ5Q29udGV4dC5yZW5kZXJpbmdNb2RlKCk7Cit9CisKK3ZvaWQgQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9w
cmltYXJ5Q29udGV4dC5jbGlwKHJlY3QpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jbGlwKHJl
Y3QpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY2xpcE91dChyZWN0KTsK
KyAgICBtX3NlY29uZGFyeUNvbnRleHQuY2xpcE91dChyZWN0KTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgbV9w
cmltYXJ5Q29udGV4dC5jbGlwT3V0KHBhdGgpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5jbGlw
T3V0KHBhdGgpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRo
KGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRSdWxlIHdpbmRSdWxlKQoreworICAgIG1fcHJpbWFyeUNv
bnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5j
bGlwUGF0aChwYXRoLCB3aW5kUnVsZSk7Cit9CisKK0ludFJlY3QgQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpbWFyeUNvbnRl
eHQuY2xpcEJvdW5kcygpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNl
dExpbmVDYXAoTGluZUNhcCBsaW5lQ2FwKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuc2V0TGlu
ZUNhcChsaW5lQ2FwKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuc2V0TGluZUNhcChsaW5lQ2Fw
KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaChjb25z
dCBEYXNoQXJyYXkmIGRhc2hBcnJheSwgZmxvYXQgZGFzaE9mZnNldCkKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LnNldExpbmVEYXNoKGRhc2hBcnJheSwgZGFzaE9mZnNldCk7CisgICAgbV9zZWNv
bmRhcnlDb250ZXh0LnNldExpbmVEYXNoKGRhc2hBcnJheSwgZGFzaE9mZnNldCk7Cit9CisKK3Zv
aWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUpvaW4oTGluZUpvaW4gbGluZUpv
aW4pCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRMaW5lSm9pbihsaW5lSm9pbik7CisgICAg
bV9zZWNvbmRhcnlDb250ZXh0LnNldExpbmVKb2luKGxpbmVKb2luKTsKK30KKwordm9pZCBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVyTGltaXQpCit7
CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXRNaXRlckxpbWl0KG1pdGVyTGltaXQpOworICAgIG1f
c2Vjb25kYXJ5Q29udGV4dC5zZXRNaXRlckxpbWl0KG1pdGVyTGltaXQpOworfQorCit2b2lkIEJp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYgbmF0
aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobmF0
aXZlSW1hZ2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CisgICAgbV9z
ZWNvbmRhcnlDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgc2VsZlNpemUsIGRl
c3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0OjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0
U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJh
d1BhdHRlcm4obmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgbV9zZWNvbmRhcnlD
b250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworfQorCit2
b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2Nh
bGUpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zY2FsZShzY2FsZSk7CisgICAgbV9zZWNvbmRh
cnlDb250ZXh0LnNjYWxlKHNjYWxlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpCit7CisgICAgbV9wcmltYXJ5Q29udGV4
dC5yb3RhdGUoYW5nbGVJblJhZGlhbnMpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5yb3RhdGUo
YW5nbGVJblJhZGlhbnMpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnRy
YW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQoreworICAgIG1fcHJpbWFyeUNvbnRleHQudHJhbnNs
YXRlKHgsIHkpOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC50cmFuc2xhdGUoeCwgeSk7Cit9CisK
K3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIG1fcHJpbWFyeUNvbnRleHQuY29uY2F0Q1RNKHRy
YW5zZm9ybSk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmNvbmNhdENUTSh0cmFuc2Zvcm0pOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OnNldENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LnNldENUTSh0cmFu
c2Zvcm0pOworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5zZXRDVE0odHJhbnNmb3JtKTsKK30KKwor
QWZmaW5lVHJhbnNmb3JtIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmdldENUTShJbmNsdWRl
RGV2aWNlU2NhbGUgaW5jbHVkZURldmljZVNjYWxlKSBjb25zdAoreworICAgIHJldHVybiBtX3By
aW1hcnlDb250ZXh0LmdldENUTShpbmNsdWRlRGV2aWNlU2NhbGUpOworfQorCitGbG9hdFJlY3Qg
QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIFJvdW5kaW5nTW9kZSByb3VuZGluZ01vZGUpCit7CisgICAgcmV0dXJuIG1f
cHJpbWFyeUNvbnRleHQucm91bmRUb0RldmljZVBpeGVscyhyZWN0LCByb3VuZGluZ01vZGUpOwor
fQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3Qg
VmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25z
dCBDb2xvciYgY29sb3IpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHJl
Y3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdG
b2N1c1JpbmcocmVjdHMsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0
IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1h
cnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocGF0aCwgd2lkdGgsIG9mZnNldCwgY29sb3IpOworICAg
IG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3Rm9jdXNSaW5nKHBhdGgsIHdpZHRoLCBvZmZzZXQsIGNv
bG9yKTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBkb3VibGUgdGltZU9mZnNldCwg
Ym9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX3ByaW1hcnlD
b250ZXh0LmRyYXdGb2N1c1JpbmcocGF0aCwgdGltZU9mZnNldCwgbmVlZHNSZWRyYXcsIGNvbG9y
KTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd0ZvY3VzUmluZyhwYXRoLCB0aW1lT2Zmc2V0
LCBuZWVkc1JlZHJhdywgY29sb3IpOworfQorCit2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBkb3VibGUg
dGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAg
ICBtX3ByaW1hcnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocmVjdHMsIHRpbWVPZmZzZXQsIG5lZWRz
UmVkcmF3LCBjb2xvcik7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdGb2N1c1JpbmcocmVj
dHMsIHRpbWVPZmZzZXQsIG5lZWRzUmVkcmF3LCBjb2xvcik7Cit9CisjZW5kaWYKKwordm9pZCBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50LCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29s
IHByaW50aW5nLCBib29sIGRvdWJsZUxpbmVzLCBTdHJva2VTdHlsZSBzdHJva2VTdHlsZSkKK3sK
KyAgICBtX3ByaW1hcnlDb250ZXh0LmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHRoaWNrbmVzcywg
d2lkdGhzLCBwcmludGluZywgZG91YmxlTGluZXMsIHN0cm9rZVN0eWxlKTsKKyAgICBtX3NlY29u
ZGFyeUNvbnRleHQuZHJhd0xpbmVzRm9yVGV4dChwb2ludCwgdGhpY2tuZXNzLCB3aWR0aHMsIHBy
aW50aW5nLCBkb3VibGVMaW5lcywgc3Ryb2tlU3R5bGUpOworfQorCit2b2lkIEJpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBtYXJrZXJTdHlsZSkKK3sKKyAgICBtX3By
aW1hcnlDb250ZXh0LmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIocmVjdCwgbWFya2VyU3R5bGUp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKHJlY3Qs
IG1hcmtlclN0eWxlKTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpzZXRV
UkxGb3JSZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAg
bV9wcmltYXJ5Q29udGV4dC5zZXRVUkxGb3JSZWN0KHVybCwgcmVjdCk7CisgICAgbV9zZWNvbmRh
cnlDb250ZXh0LnNldFVSTEZvclJlY3QodXJsLCByZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpzZXREZXN0aW5hdGlvbkZvclJlY3QoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9wcmltYXJ5Q29udGV4dC5zZXREZXN0
aW5hdGlvbkZvclJlY3QobmFtZSwgcmVjdCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LnNldERl
c3RpbmF0aW9uRm9yUmVjdChuYW1lLCByZWN0KTsKK30KKwordm9pZCBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0OjphZGREZXN0aW5hdGlvbkF0UG9pbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkKK3sKKyAgICBtX3ByaW1hcnlDb250ZXh0LmFkZERlc3RpbmF0
aW9uQXRQb2ludChuYW1lLCBwb2ludCk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmFkZERlc3Rp
bmF0aW9uQXRQb2ludChuYW1lLCBwb2ludCk7Cit9CisKK2Jvb2wgQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dDo6c3VwcG9ydHNJbnRlcm5hbExpbmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cmltYXJ5Q29udGV4dC5zdXBwb3J0c0ludGVybmFsTGlua3MoKTsKK30KKwordm9pZCBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQor
eworICAgIG1fcHJpbWFyeUNvbnRleHQudXBkYXRlU3RhdGUoc3RhdGUsIGZsYWdzKTsKKyAgICBt
X3NlY29uZGFyeUNvbnRleHQudXBkYXRlU3RhdGUoc3RhdGUsIGZsYWdzKTsKK30KKworI2lmIE9T
KFdJTkRPV1MpCitHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIEJpZnVyY2F0ZWRHcmFw
aGljc0NvbnRleHQ6OmRlcHJlY2F0ZWRQcml2YXRlQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpbWFyeUNvbnRleHQuZGVwcmVjYXRlZFByaXZhdGVDb250ZXh0KCk7Cit9CisjZW5k
aWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDMxYTY0N2YwODZmNjk1MWFlYWYwZjk4NDUyZTcwMWMxODkwNjY2ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRH
cmFwaGljc0NvbnRleHQuaApAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0IGFsbG93cyB5b3UgdG8gZHVw
bGljYXRlIHBhaW50aW5nIGJldHdlZW4gdHdvIGdpdmVuIEdyYXBoaWNzQ29udGV4dHM7CisvLyBm
b3IgZXhhbXBsZSwgZm9yIHBhaW50aW5nIGludG8gYSBiaXRtYXAtYmFja2VkIGFuZCBhIGRpc3Bs
YXktbGlzdC1iYWNrZWQgY29udGV4dCBzaW11bHRhbmVvdXNseS4KKy8vIEFueSBzdGF0ZSB0aGF0
IGlzIHJldHVybmVkIGJ5IEdyYXBoaWNzQ29udGV4dCBtZXRob2RzIHdpbGwgYmUgcmV0cmlldmVk
IGZyb20gdGhlIHByaW1hcnkgY29udGV4dC4KKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQgeworICAgIFdURl9G
T1JCSURfSEVBUF9BTExPQ0FUSU9OOworcHVibGljOgorICAgIEJpZnVyY2F0ZWRHcmFwaGljc0Nv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBwcmltYXJ5Q29udGV4dCwgR3JhcGhpY3NDb250ZXh0JiBz
ZWNvbmRhcnlDb250ZXh0KTsKKyAgICB+QmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dCgpOworCisg
ICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNhdmUo
KSBmaW5hbDsKKyAgICB2b2lkIHJlc3RvcmUoKSBmaW5hbDsKKworICAgIHZvaWQgZHJhd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzID0gMSkgZmluYWw7CisgICAg
dm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpIGZpbmFs
OworICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisKKyNpZiBV
U0UoQ0cpIHx8IFVTRShESVJFQ1QyRCkKKyAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpIGZp
bmFsOworICAgIHZvaWQgYXBwbHlGaWxsUGF0dGVybigpIGZpbmFsOworI2VuZGlmCisgICAgdm9p
ZCBkcmF3UGF0aChjb25zdCBQYXRoJikgZmluYWw7CisgICAgdm9pZCBmaWxsUGF0aChjb25zdCBQ
YXRoJikgZmluYWw7CisgICAgdm9pZCBzdHJva2VQYXRoKGNvbnN0IFBhdGgmKSBmaW5hbDsKKwor
ICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KSBmaW5hbDsKKyAg
ICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCkgZmluYWw7CisKKyAgICB2b2lkIGFwcGx5RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQgZmFjdG9yKSBmaW5hbDsKKworICAgIHVzaW5nIEdyYXBoaWNz
Q29udGV4dDo6ZmlsbFJlY3Q7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmKSBm
aW5hbDsKKyAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IENvbG9yJikg
ZmluYWw7CisgICAgdm9pZCBmaWxsUm91bmRlZFJlY3RJbXBsKGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmLCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZmlsbFJlY3RXaXRoUm91bmRlZEhv
bGUoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhvbGVS
ZWN0LCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJSZWN0KGNvbnN0IEZsb2F0
UmVjdCYpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9h
dCBsaW5lV2lkdGgpIGZpbmFsOworCisgICAgdm9pZCBmaWxsRWxsaXBzZShjb25zdCBGbG9hdFJl
Y3QmIGVsbGlwc2UpIGZpbmFsOworICAgIHZvaWQgc3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJl
Y3QmIGVsbGlwc2UpIGZpbmFsOworCisjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQpCisgICAg
dm9pZCBzZXRJc0NBTGF5ZXJDb250ZXh0KGJvb2wpIGZpbmFsOworICAgIGJvb2wgaXNDQUxheWVy
Q29udGV4dCgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4
dChib29sKSBmaW5hbDsKKyNlbmRpZgorCisgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
KCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIGNsaXAoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CisgICAgdm9pZCBjbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworCisgICAgdm9pZCBj
bGlwT3V0KGNvbnN0IFBhdGgmKSBmaW5hbDsKKworICAgIHZvaWQgY2xpcFBhdGgoY29uc3QgUGF0
aCYsIFdpbmRSdWxlID0gV2luZFJ1bGU6OkV2ZW5PZGQpIGZpbmFsOworCisgICAgSW50UmVjdCBj
bGlwQm91bmRzKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNldExpbmVDYXAoTGluZUNhcCkg
ZmluYWw7CisgICAgdm9pZCBzZXRMaW5lRGFzaChjb25zdCBEYXNoQXJyYXkmLCBmbG9hdCBkYXNo
T2Zmc2V0KSBmaW5hbDsKKyAgICB2b2lkIHNldExpbmVKb2luKExpbmVKb2luKSBmaW5hbDsKKyAg
ICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpIGZpbmFsOworCisgICAgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJ
bWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBh
dHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisKKyAg
ICB1c2luZyBHcmFwaGljc0NvbnRleHQ6OnNjYWxlOworICAgIHZvaWQgc2NhbGUoY29uc3QgRmxv
YXRTaXplJikgZmluYWw7CisgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpIGZp
bmFsOworICAgIHZvaWQgdHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpIGZpbmFsOworCisgICAg
dm9pZCBjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikgZmluYWw7CisgICAgdm9pZCBz
ZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikgZmluYWw7CisKKyAgICBBZmZpbmVUcmFuc2Zv
cm0gZ2V0Q1RNKEluY2x1ZGVEZXZpY2VTY2FsZSA9IFBvc3NpYmx5SW5jbHVkZURldmljZVNjYWxl
KSBjb25zdCBmaW5hbDsKKworICAgIEZsb2F0UmVjdCByb3VuZFRvRGV2aWNlUGl4ZWxzKGNvbnN0
IEZsb2F0UmVjdCYsIFJvdW5kaW5nTW9kZSA9IFJvdW5kQWxsU2lkZXMpIGZpbmFsOworCisgICAg
dm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiwgZmxvYXQsIGZsb2F0
LCBjb25zdCBDb2xvciYpIGZpbmFsOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRo
JiwgZmxvYXQsIGZsb2F0LCBjb25zdCBDb2xvciYpIGZpbmFsOworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYsIGRvdWJsZSwgYm9vbCYsIGNvbnN0
IENvbG9yJikgZmluYWw7CisgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9h
dFJlY3Q+JiwgZG91YmxlLCBib29sJiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyNlbmRpZgorCisg
ICAgdm9pZCBkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB0aGlja25l
c3MsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50aW5nLCBib29sIGRvdWJsZUxp
bmVzLCBTdHJva2VTdHlsZSkgZmluYWw7CisKKyAgICB2b2lkIGRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRSZWN0JiwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOwor
CisgICAgdm9pZCBzZXRVUkxGb3JSZWN0KGNvbnN0IFVSTCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZp
bmFsOworCisgICAgdm9pZCBzZXREZXN0aW5hdGlvbkZvclJlY3QoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGFkZERlc3RpbmF0aW9uQXRQb2lu
dChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKKworICAgIGJv
b2wgc3VwcG9ydHNJbnRlcm5hbExpbmtzKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHVwZGF0
ZVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MpIGZpbmFsOworCisjaWYgT1MoV0lORE9XUykKKyAgICBHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIGRlcHJlY2F0ZWRQcml2YXRlQ29udGV4dCgpIGNvbnN0
IGZpbmFsOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0JiBtX3ByaW1h
cnlDb250ZXh0OworICAgIEdyYXBoaWNzQ29udGV4dCYgbV9zZWNvbmRhcnlDb250ZXh0OworfTsK
KworfQorCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNjVjZmQwNTBiYWRlMjNlZDIxZDc5MGY3NWRlYjlhNWU3NDBhZDkzYi4uYThmNmNiNmYzYzA1
ZTY1YWI3NDgzN2Q4Y2QwY2I5ZjhkNDllYzE0MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA1LTI3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Jp
ZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wNS0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgogCiAgICAgICAgIENhbGxpbmcgLVtXS1dlYlZpZXcgX2Nsb3NlQWxsTWVkaWFQcmVz
ZW50YXRpb25zXSBjcmFzaGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5Y2FhODc4Nzhh
ZmM2YzVkOTczZGU5OGIzOGE5MmI1MDQ3MzY3OTAuLmMzYmQ5OGZhZDc1MDY0YzNkZTQ2N2ViYzU3
ZWY2MTYwYThmMTUwYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjcsNiArMTY3LDcg
QEAKIAkJMkRDNENGNzcxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM0Q0Y3NjFEMkQ5REQ4
MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5tbSAqLzsgfTsKIAkJMkRDOTQ1MTcyNEQ4QUMwMjAw
NDMwMzc2IC8qIFdlYlRocmVhZExvY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyREM5NDUxNjI0RDhBQzAyMDA0MzAzNzYgLyogV2ViVGhyZWFkTG9j
ay5tbSAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4dC12
ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVy
dGljYWwtbHIuaHRtbCAqLzsgfTsKKwkJMkREODcxNDUyNjVGMjNCNDAwNUY5OTdDIC8qIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDg3MTQ0MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi87IH07CiAJCTJERTcxQUZFMUQ0OUMwQkQw
MDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJl
c2l6ZS5tbSAqLzsgfTsKIAkJMkRFNzFCMDAxRDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRp
di5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLzsgfTsK
IAkJMkRGRjdCNkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZGN0I2QzFEQTQ4N0FGMDA4
MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSAqLzsgfTsKQEAgLTE5NDksNiArMTk1MCw3IEBACiAJ
CTJERDM1NTM1MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvTGF5b3V0SW50ZWdyYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdEM0E5MTc4MjA1RDAwMDI2
RTFFMyAvKiBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAv
KiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQt
dmVydGljYWwtbHIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDg3MTQ0
MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0VGVzdHNDRy5jcHA7IHBhdGggPSBjZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVz
dHNDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTcxQUZEMUQ0OUMwQkQw
MDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFuaW1hdGVkUmVzaXplLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmxpbmtpbmctZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREZGN0I2QzFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9y
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNuYXBzaG90U3Rv
cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTEzLDYgKzQ5MTUsNyBAQAog
CQlGNDU3Mjc1QjI1NTc4QzlFMDA3QUNBMzQgLyogY2cgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJERDg3MTQ0MjY1RjIzQjQwMDVGOTk3QyAvKiBCaWZ1
cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAgKi8sCiAJCQkJRjQ1NzI3NUQyNTU3OEQw
NjAwN0FDQTM0IC8qIERpc3BsYXlMaXN0VGVzdHNDRy5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9
IGNnOwpAQCAtNTMxMSw2ICs1MzE0LDcgQEAKIAkJCQkxQzdGRUIyMDIwN0MwRjJFMDBEMjMyNzgg
LyogQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE1Q0JCMzAyM0YxRkYx
QTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzE2OTJEQ0EyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gaW4gU291cmNlcyAq
LywKKwkJCQkyREQ4NzE0NTI2NUYyM0I0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29u
dGV4dFRlc3RzQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjAxREYzNkVFRTAwQUND
QjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBODlC
QjY3MjMzMTY0MzIwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBMTNFQkJCMTFCODc0MzgwMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NnL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHRUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHND
Ry5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTMzMzc5ZGViYjYxNTMzMzM0MjYxNjRhZWVmNmFkNjY5NzNiMWE3
MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
Zy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHNDRy5jcHAKQEAgLTAsMCArMSw5MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShDRykKKworI2luY2x1
ZGUgPFdlYkNvcmUvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRGVzdGluYXRpb25Db2xvclNwYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlz
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRGlzcGxheUxpc3RJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3RSZWNvcmRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3Q7Cit1c2luZyBuYW1lc3BhY2UgRGlzcGxheUxpc3Q7CisKK2NvbnN0ZXhwciBD
R0Zsb2F0IGNvbnRleHRXaWR0aCA9IDE7Citjb25zdGV4cHIgQ0dGbG9hdCBjb250ZXh0SGVpZ2h0
ID0gMTsKKworVEVTVChCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0VGVzdHMsIEJhc2ljQmlmdXJj
YXRlZENvbnRleHQpCit7CisgICAgYXV0byBjb2xvclNwYWNlID0gRGVzdGluYXRpb25Db2xvclNw
YWNlOjpTUkdCKCk7CisgICAgYXV0byBwcmltYXJ5Q0dDb250ZXh0ID0gYWRvcHRDRihDR0JpdG1h
cENvbnRleHRDcmVhdGUobnVsbHB0ciwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0LCA4LCA0
ICogY29udGV4dFdpZHRoLCBjb2xvclNwYWNlLnBsYXRmb3JtQ29sb3JTcGFjZSgpLCBrQ0dJbWFn
ZUFscGhhUHJlbXVsdGlwbGllZExhc3QpKTsKKyAgICBhdXRvIHNlY29uZGFyeUNHQ29udGV4dCA9
IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKG51bGxwdHIsIGNvbnRleHRXaWR0aCwgY29u
dGV4dEhlaWdodCwgOCwgNCAqIGNvbnRleHRXaWR0aCwgY29sb3JTcGFjZS5wbGF0Zm9ybUNvbG9y
U3BhY2UoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisKKyAgICBHcmFwaGlj
c0NvbnRleHRDRyBwcmltYXJ5Q29udGV4dChwcmltYXJ5Q0dDb250ZXh0LmdldCgpKTsKKworICAg
IEluTWVtb3J5RGlzcGxheUxpc3QgZGlzcGxheUxpc3Q7CisgICAgUmVjb3JkZXIgc2Vjb25kYXJ5
Q29udGV4dChkaXNwbGF5TGlzdCwgeyB9LCBGbG9hdFJlY3QoMCwgMCwgY29udGV4dFdpZHRoLCBj
b250ZXh0SGVpZ2h0KSwgeyB9KTsKKworICAgIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgY3R4
KHByaW1hcnlDb250ZXh0LCBzZWNvbmRhcnlDb250ZXh0KTsKKworICAgIGN0eC5maWxsUmVjdChG
bG9hdFJlY3QoMCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSwgQ29sb3I6OnJlZCk7
CisKKyAgICAvLyBUaGUgcHJpbWFyeSBjb250ZXh0IHNob3VsZCBoYXZlIG9uZSByZWQgcGl4ZWwu
CisgICAgQ0dDb250ZXh0Rmx1c2gocHJpbWFyeUNHQ29udGV4dC5nZXQoKSk7CisgICAgdWludDhf
dCogcHJpbWFyeURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ0dCaXRtYXBDb250ZXh0R2V0
RGF0YShwcmltYXJ5Q0dDb250ZXh0LmdldCgpKSk7CisgICAgRVhQRUNUX0VRKHByaW1hcnlEYXRh
WzBdLCAyNTUpOworICAgIEVYUEVDVF9FUShwcmltYXJ5RGF0YVsxXSwgMCk7CisgICAgRVhQRUNU
X0VRKHByaW1hcnlEYXRhWzJdLCAwKTsKKworICAgIC8vIFRoZSBzZWNvbmRhcnkgY29udGV4dCBz
aG91bGQgaGF2ZSBhIHJlZCBGaWxsUmVjdFdpdGhDb2xvci4KKyAgICBFWFBFQ1RfRkFMU0UoZGlz
cGxheUxpc3QuaXNFbXB0eSgpKTsKKyAgICBib29sIHNhd0ZpbGxSZWN0ID0gZmFsc2U7CisgICAg
Zm9yIChhdXRvIGRpc3BsYXlMaXN0SXRlbSA6IGRpc3BsYXlMaXN0KSB7CisgICAgICAgIGF1dG8g
aGFuZGxlID0gZGlzcGxheUxpc3RJdGVtLT5pdGVtOworICAgICAgICBpZiAoaGFuZGxlLnR5cGUo
KSAhPSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3IpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBFWFBFQ1RfVFJVRShoYW5kbGUuaXNEcmF3aW5nSXRlbSgpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoaGFuZGxlLmlzPEZpbGxSZWN0V2l0aENvbG9yPigpKTsKKyAgICAgICAgc2F3
RmlsbFJlY3QgPSB0cnVlOworICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxlLmdldDxGaWxsUmVj
dFdpdGhDb2xvcj4oKTsKKyAgICAgICAgRVhQRUNUX0VRKGl0ZW0ucmVjdCgpLCBGbG9hdFJlY3Qo
MCwgMCwgY29udGV4dFdpZHRoLCBjb250ZXh0SGVpZ2h0KSk7CisgICAgICAgIEVYUEVDVF9FUShp
dGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgIH0KKworICAgIEVYUEVDVF9HVChkaXNwbGF5
TGlzdC5zaXplSW5CeXRlcygpLCAwVSk7CisgICAgRVhQRUNUX1RSVUUoc2F3RmlsbFJlY3QpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBVU0UoQ0cpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>