<?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>236636</bug_id>
          
          <creation_ts>2022-02-15 00:56:26 -0800</creation_ts>
          <short_desc>ANGLE includes interfere with system header includes</short_desc>
          <delta_ts>2022-02-16 10:43:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1841613</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 00:56:26 -0800</bug_when>
    <thetext>ANGLE includes interferes with system header includes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841618</commentid>
    <comment_count>1</comment_count>
      <attachid>452002</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 01:10:45 -0800</bug_when>
    <thetext>Created attachment 452002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841665</commentid>
    <comment_count>2</comment_count>
      <attachid>452013</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 06:01:00 -0800</bug_when>
    <thetext>Created attachment 452013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841831</commentid>
    <comment_count>3</comment_count>
      <attachid>452065</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 11:26:07 -0800</bug_when>
    <thetext>Created attachment 452065
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841837</commentid>
    <comment_count>4</comment_count>
      <attachid>452066</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 11:30:32 -0800</bug_when>
    <thetext>Created attachment 452066
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842136</commentid>
    <comment_count>5</comment_count>
      <attachid>452146</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 22:20:36 -0800</bug_when>
    <thetext>Created attachment 452146
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842226</commentid>
    <comment_count>6</comment_count>
      <attachid>452177</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 04:16:04 -0800</bug_when>
    <thetext>Created attachment 452177
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842380</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-16 10:42:27 -0800</bug_when>
    <thetext>Committed r289912 (247342@main): &lt;https://commits.webkit.org/247342@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452177.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842383</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 10:43:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89034821&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452002</attachid>
            <date>2022-02-15 01:10:45 -0800</date>
            <delta_ts>2022-02-15 06:00:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236636-20220215111043.patch</filename>
            <type>text/plain</type>
            <size>75037</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA1YTUwODhhYjE2ODdh
YjNkYzM2MDRjM2ZjMGVkZDdkMGE4ODZkOS4uMDk3NjIxMGYzYWI2NWNjMGY5NzlhYjg2ZjZmNDg2
OWZmMTJhYzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAyMi0wMi0xNSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZXMgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGlu
Y2x1ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1
c2UgQU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0
eXBlcyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBl
cworICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUg
T3BlbkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0x7RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAg
ICBHQ0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNp
c3RlbnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNl
IGluIEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3Zl
IGN1cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAg
ICAgICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHks
IGNvbnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0
aGUgaW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNp
bmNlIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRo
ZXNlIG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZh
Y3Rvci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBm
aWxlIGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZp
bGUgb3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmg6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9y
ZVRleHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6
flNjb3BlZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJl
YWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFk
RnJhbWVidWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFn
ZU1vZGU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UGl4ZWxTdG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
b3BlZFRleHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZy
YW1lYnVmZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRG
cmFtZWJ1ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3Bl
ZEdMRmVuY2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNl
U3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2Fw
YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRH
TENhcGFiaWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6
U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9y
IEdDR0xpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0
b3IgR0NHTHVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6
Om9wZXJhdG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRv
ciBHQ0dMc3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZy
YW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5H
TEVTZXR0aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVm
ZmVyQW5kQXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9BTkdMRVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRl
eHRHTFg6OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4
L0dMQ29udGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Q
bGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0
cnlFbnN1cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNv
c2lhOjpHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZv
cm1EaXNwbGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdM
RUNvbnRleHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xB
TkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NH
TEFOR0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3Bw
OgorICAgICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmln
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDR0xQbGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
Q0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxh
dGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNCAgS2ltbW8gS2lu
bnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkdMIEdQVVAgT3BlbkdM
IGNvbnRleHQgaXMgbm90IHVzZWQgZXZlbiBpZiBXZWJHTCB2aWEgTWV0YWwgaXMgZGVzZWxlY3Rl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODY3YWRhNjlhYjE3ZjdiNTVjZmJlOTFiZDc0N2FlNWJi
YmVlMGFlMy4uNWZhNDdkZjVjZDEwZDU2MWJkOTkzYzEzMzg4MzI5MGUzZjNiY2I4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDItMTUgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBTkdMRSBpbmNsdWRlcyBpbnRlcmZl
cmVzIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBhdHRlbXB0IHRvIG92ZXJyaWRlIHN5
c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAgICAgQU5HTEUgaW1wbGVtZW50YXRp
b24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5kIG9uZSBj
YW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFw
aGljc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oOgorICAgICAg
ICBBZGQgbWlzc2luZyBDR0NPTE9SVEFHR0VEUE9JTlRFUl9IXyB0aGF0IG1ha2VzIHRoZSBDb2Nv
YVByaXYuaAorICAgICAgICBpbmNsdWRlZCBDb3JlR3JhcGhpY3MgaGVhZGVyIHNraXAgdGhlIGlu
Y29tcGF0aWJsZSB0YWdnZWQgcG9pbnRlcgorICAgICAgICBkZWNsYXJhdGlvbnMsIHNpbWlsYXIg
dG8gb3RoZXIgKlNQSS5oIGhlYWRlcnMuCisKIDIwMjItMDItMTQgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xpdmUgVGV4dF0gUGx1bWIgcGxhdGZv
cm0gaW1hZ2UgYW5hbHlzaXMgb2JqZWN0cyB0byB0aGUgd2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YjYzZTkwNmU1NjgxYmQ3YzAyOTVkOThjNmQ3MTdmMTI3YzNkNzc2OS4uY2FiMWJiOWJhYWY3YmI3
NmViMmZiNTdmYzliOWFjN2YwZTc5N2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
Mi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFOR0xFIGluY2x1ZGVzIGludGVyZmVyZXMgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhl
IGF0dGVtcHQgdG8gb3ZlcnJpZGUgc3lzdGVtIGhlYWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAg
ICAgICBBTkdMRSBpbXBsZW1lbnRhdGlvbi4gVGhleSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0
aW9ucworICAgICAgICBhbmQgb25lIGNhbm5vdCByZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oOgorICAgICAgICAqIFBsYXRmb3JtL3Nw
aS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmg6CisKIDIwMjItMDItMTQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHTCBHUFVQIE9wZW5H
TCBjb250ZXh0IGlzIG5vdCB1c2VkIGV2ZW4gaWYgV2ViR0wgdmlhIE1ldGFsIGlzIGRlc2VsZWN0
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ODAzOTQ4NThhMTViOGEyNTY5NmFh
ZWM3YzhkOTRhYTczYWQ3MjIzLi43NDc5ZTA0ODcxZmJhNTAzY2M0M2JhZjk5MjI4NmYwMTAzYWI3
ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjIt
MDItMTUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBB
TkdMRSBpbmNsdWRlcyBpbnRlcmZlcmVzIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBh
dHRlbXB0IHRvIG92ZXJyaWRlIHN5c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAg
ICAgQU5HTEUgaW1wbGVtZW50YXRpb24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlv
bnMKKyAgICAgICAgYW5kIG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKwogMjAyMi0wMi0xMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBidWlsZCB3aXRo
IHRoZSBsYXRlc3QgaU9TIFNESy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWQ2ODAxNTBlYmY5
YzExMTliYzk1ZTYxMTc3MGVlMzM1MzAyZDAyZi4uNWU0OGU0MWFjZmZkYzVkM2U1NmI5ODg1ZDMw
MjYwNmQ1NGJhMTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5MDksNyArMTkwOSw2IEBA
IGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwog
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCiAg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nLmNwcAogICAgICAgICApCiAKICAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJS
QVJJRVMgQU5HTEU6OkdMRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcAppbmRleCA3M2NlMmMyMGI2Mjk2YzFmNDg4
OWQ1OWUzYjhmN2NiY2JhNWM0ZjAyLi45MmUxYTE4ZWE3ODk3ZjZhNDIyZDJmNDk3Y2I2OTQxMmYw
MTU5MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3Bh
cXVlRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDx3dGYv
U2NvcGUuaD4KIAogI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCi0jaW5jbHVk
ZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmgKaW5kZXggZDFiOTQ2NTJlZmNkMDk4NjM2NGNlNTg3MTFiNTIxZDg3M2NhMjk1Mi4uOTEy
NjZmMTdkNDNmMTNkOGFkY2NhNjY3MTFjM2Y3NjA4MmY0MGVkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTQwLDEwICs0MCw2IEBA
CiAKICNpZiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmlu
ZSBDR0NPTE9SVEFHR0VEUE9JTlRFUl9IXwotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNk
ZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5
X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaAppbmRleCBmYjYwMDBkNzNlOTE2NTc5OThkOGRmY2Y5
NTZhNTNjNDJkYmQ1ZmQ4Li5jYzNhZWM0YTBhMDM4OTY2YzFlY2Y4ZTE1NGExOWY3MTJjNDJiY2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCkBA
IC0yNyw2ICsyNywxMCBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2lmIEhB
VkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCisjZGVmaW5lIENHQ09MT1JU
QUdHRURQT0lOVEVSX0hfCisjZW5kaWYKKwogI2luY2x1ZGUgPENhcmJvbi9DYXJib25Qcml2Lmg+
CiAKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBjN2EyZGJkYWEwZTQwZGVjZWMw
Mjg0NzY5NDE0OTYyYTBmZmNlNWE1Li41NDAwMDU2YzBkZDI3NjdmZTI2ODc1MmYwMWI0OTMxOTk4
MTQ3Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3NSw3ICszNzUsNiBAQCBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9TdWJp
bWFnZUNhY2hlV2l0aFRpbWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRp
b25NYXRyaXhDRy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAotcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0NvbG9yQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zsb2F0UmVjdENv
Y29hLm1tCkBAIC0zODYsNyArMzg1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERl
c2NyaXB0aW9uQ29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3Bl
Y2lmaWNhdGlvbkNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRm
b3JtRGF0YUNvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRD
b2NvYS5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9IRVZDVXRpbGl0aWVzQ29jb2EubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtNDEyLDcgKzQxMCw2IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFn
ZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5z
ZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRl
ckltYWdlQ29yZUltYWdlLm1tCkBAIC02MTQsOCArNjExLDEwIEBAIHJlbmRlcmluZy9UZXh0QXV0
b1NpemluZy5jcHAKIHRlc3RpbmcvY29jb2EvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3Zl
cmxheS5tbQogCiAvLyBUaGUgZm9sbG93aW5nIGZpbGVzIGFyZW4ndCB1bmlmaWVkIHdpdGggb3Ro
ZXJzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIG1lcmdlZAotLy8gd2l0aCBmaWxlcyB0aGF0
IHVzZSB0aGUgc3lzdGVtIE9wZW5HTC4KKy8vIHdpdGggZmlsZXMgdGhhdCBpbmNsdWRlIHN5c3Rl
bSBoZWFkZXJzIHRoYXQgaW5jbHVkZSBzeXN0ZW0gT3BlbkdMIGhlYWRlcnMuCiAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQotcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKK3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIEBuby11bmlmeQor
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBAbm8tdW5p
ZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNzI4YzEzZDI2YjI1Y2I3YjVlOGY0Y2EwNzg1NGE4YWVmODE3MzRmNy4uNjY4
M2MxMGMzOTFmZTI0MTdiZTY1ZTU5OTM4ZDEwZGY5NDc5NzMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE5MCw4ICsyMTkw
LDYgQEAKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNE
MzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0
RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEw
MEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwICovOyB9OwotCQk2RTcyRjU0RjIyOURDRDEzMDBCM0UxNTEgLyogVGVt
cG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFMjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNl
dHRpbmcuY3BwICovOyB9OwotCQk2RTcyRjU1MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RTI5MDg2MzIyOURCOTcwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgg
Ki87IH07CiAJCTZFODRFOUUxMTc2NjhCRjEwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU4NEU5REYxNzY2OEJB
RDAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkU4QUNERUQyMzM0NUNCQzAwMjRBQUY1IC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFOEFDREVCMjMzNDVDQUYwMDI0QUFGNSAvKiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlRVRDLmggKi87IH07CiAJCTZFQkYwRTQ5MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJl
RmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
QkYwRTQ2MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKQEAgLTI0
MTgsNiArMjQxNiwxMCBAQAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEw
MjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyog
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRl
bnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
RERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y3QTI3QkI4NkFCMDA3
QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFw
aGljc0NvbnRleHRHTENvY29hLm1tICovOyB9OworCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMg
LyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRp
ZXNDb2NvYS5jcHAgKi87IH07CisJCTdCRTM3RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0
aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9Owor
CQk3QkUzN0Y3RTI3QkI4NkRCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlB
MjU0OTcyMDAwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwICovOyB9Owog
CQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkz
NkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3
NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3
NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0
IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwODc2LDggKzEwODc4
LDYgQEAKIAkJNkUyNDJCMjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjQyQjJBMjMzNTkzRDgw
MDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjkwODYxMjI5REI5
NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFy
eUFOR0xFU2V0dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3Jh
cnlBTkdMRVNldHRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYx
NDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAw
MEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMTBFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDQxMSw4ICsyNDQxMSw2IEBACiAJCQkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xF
VXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwICovLAogCQkJCTdCOTVDRkVDMjc1NEZGN0MwMDAwNjBDRSAvKiBH
cmFwaGljc0NvbnRleHRHTEFOR0xFLmggKi8sCi0JCQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUy
IC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi8sCi0JCQkJNkUyOTA4NjMyMjlEQjk3MDAw
MDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBh
bmdsZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTkxNCwxMCArMjU5MTIsMTAg
QEAKIAkJCQkzMTQ4NzdFMDFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmNwcCAq
LywKIAkJCQkzMTQ4NzdFMTFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmggKi8s
CiAJCQkJMzE0ODc3RDkxRkFBODcwNjAwQzA1NzU5IC8qIE9mZnNjcmVlbkNhbnZhcy5pZGwgKi8s
Ci0JCQkJNDk0RUJEMDgyN0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKLQkJ
CQk0OTRFQkQwNjI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQlGNTVC
M0Q5NTEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDk2MTI1MUYxMkQwMDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5oICovLAorCQkJCTQ5
NEVCRDA4MjdBQTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5jcHAgKi8sCisJCQkJNDk0RUJE
MDYyN0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmggKi8sCiAJCQkJOTcyMDVBQjkxMjM5
MjkyNzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQk5NzIwNUFCQTEyMzky
OTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCAqLywKIAkJCQlDREVFMzkzNjE3OTc0MjU5
MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8sCkBAIC0zNzY3OSw3ICszNzY3Nyw2
IEBACiAJCQkJRjU1QjNERDYxMjUxRjEyRDAwM0VGMjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9u
ZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBD
QzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNkU3MkY1NTEyMjlEQ0QxQTAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5
LmggaW4gSGVhZGVycyAqLywKQEAgLTM4Njc3LDYgKzM4Njc0LDggQEAKIAkJCWZpbGVzID0gKAog
CQkJCUE5Nzg3Q0I0MUY1RjVDNjYwMEM1NTFDNiAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzFGN0I3MzEyNDQ4RjJBQzAwMTI0NTU3IC8qIEFHWENv
bXBpbGVyU2VydmljZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QkUzN0Y3RDI3QkI4NkNEMDA3
QTZDRDMgLyogQU5HTEVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0My
N0JCODZCODAwN0E2Q0QzIC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJ
T1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBNzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1
ZGlvU2Vzc2lvbklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEOEE3QkJCMTk3NzM1RkUwMENC
RDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLApAQCAt
Mzg3MDAsNiArMzg2OTksOCBAQAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1l
cGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThF
QTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk2
RTcyRjU0RTIyOURDRDEwMDBCM0UxNTEgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTdCRTM3RjdFMjdCQjg2REIwMDdBNkNE
MyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0Mz
RTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBOEQwNkIzQTBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQzkwMEMzMTk0M0MwRkMwMDg2MjVCNSAvKiBIVFRQSGVhZGVyTmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zODc2MCw3ICszODc2MSw2IEBACiAJCQkJQ0RDOEI1QUExODA0
N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTgzM0M3Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNkU3MkY1NEYyMjlEQ0QxMzAwQjNFMTUxIC8qIFRlbXBvcmFy
eUFOR0xFU2V0dGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTg4RUUyNjI0MTQ0NjdCMDA3
RjI5QzIgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFERjZEODAwQjkyQTE4RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTM4RUM4MDMxRjk2QUY4MTAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5oCmluZGV4IGM5YjY1OTk5ZThmZjgyOGY2ZjdmNjZkYjQ2ZGQyMjEwYWE5ODZlNjYuLmYzY2I1
ZmIwM2JhMDRmYzcyZGZiMzYxMDViMWEzMGQ4YWZiN2FjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYg
dWludDY0X3QgR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2Rldmlj
ZSBjYWlyb19kZXZpY2VfdDsKICNlbmRpZgogCi10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0w7Cit0eXBlZGVmIHZvaWQqIEdDR0xDb250ZXh0OwogCiAvLyBYMTEgaGVhZGVy
cyBkZWZpbmUgYSBidW5jaCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5n
IHdpdGggV2ViQ29yZSBhbmQgV1RGIGVudW0gdmFsdWVzLgogLy8gQXMgYSB3b3JrYXJvdW5kLCB3
ZSBleHBsaWNpdGx5IHVuZGVmIHRoZW0gaGVyZS4KQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgPSAwOwogCi0gICAgdmly
dHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVk
OgogICAgIEdMQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDFjY2VlYjUz
NzM1MzhkNTM1MjNmNDlkY2UyYTA2ODJlNDdkZmM4ZGQuLjNhY2JjNzU3OGI5YjgyNzgzMzU0MzNl
MTVlMDJmNjAxMjRmM2FmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNDUsMTEgKzQ1LDYgQEAKICNlbmRpZgog
I2VuZGlmCiAKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBF
eHRlbnNpb25zR0w7CiBjbGFzcyBIb3N0V2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMu
aAppbmRleCAwZjA2MmRhNTJlOGUxMDVkNWU3MGNkZjI1OGJkODM4YmU1M2YxZjQ5Li40YWY0Nzc3
NGI4OTc5ZDM2ZTQ4MGE3N2I3YzIyOTZlMzU5ZjA4YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMuaApAQCAtMTIyLDggKzEyMiw4IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzPiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6CiAgICAg
YXV0byBwb3dlclByZWZlcmVuY2UgPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxQb3dlclByZWZl
cmVuY2U+KCk7CiAgICAgYXV0byBzaGFyZVJlc291cmNlcyA9IGRlY29kZXIudGVtcGxhdGUgZGVj
b2RlPGJvb2w+KCk7CiAgICAgYXV0byBub0V4dGVuc2lvbnMgPSBkZWNvZGVyLnRlbXBsYXRlIGRl
Y29kZTxib29sPigpOwotICAgIGF1dG8gZGV2aWNlUGl4ZWxSYXRpbyA9IGRlY29kZXIudGVtcGxh
dGUgZGVjb2RlPGJvb2w+KCk7Ci0gICAgYXV0byBpbml0aWFsUG93ZXJQcmVmZXJlbmNlID0gZGVj
b2Rlci50ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAgICBhdXRvIGRldmljZVBpeGVsUmF0aW8g
PSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxmbG9hdD4oKTsKKyAgICBhdXRvIGluaXRpYWxQb3dl
clByZWZlcmVuY2UgPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxQb3dlclByZWZlcmVuY2U+KCk7
CiAgICAgYXV0byB3ZWJHTFZlcnNpb24gPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxXZWJHTFZl
cnNpb24+KCk7CiAgICAgYXV0byBmb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFUgPSBk
ZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxib29sPigpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAt
MTM5LDYgKzEzOSw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzPiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6CiAgICAgICAgICpkZXB0aCwK
ICAgICAgICAgKnN0ZW5jaWwsCiAgICAgICAgICphbnRpYWxpYXMsCisgICAgICAgICpwcmVtdWx0
aXBsaWVkQWxwaGEsCiAgICAgICAgICpwcmVzZXJ2ZURyYXdpbmdCdWZmZXIsCiAgICAgICAgICpm
YWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0LAogICAgICAgICAqcG93ZXJQcmVmZXJlbmNlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
c0dMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wu
aAppbmRleCAzMzY1NmExNTYxM2RmNjMyMjY1YTkzMzI4ODJiZDExMWE2ODBkZjk1Li4wMDM5NjBk
N2RlNDY5OTI4NWZjMDkwZTU3MzVhM2JmZTkyM2RlNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wuaApAQCAtNDcsNyArNDcsNyBA
QCB0eXBlZGVmIGZsb2F0IEdDR0xmbG9hdDsKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR0NHTGhh
bGZmbG9hdDsKIHR5cGVkZWYgZmxvYXQgR0NHTGNsYW1wZjsKIHR5cGVkZWYgY2hhciBHQ0dMY2hh
cjsKLXR5cGVkZWYgc3RydWN0IF9fR0xzeW5jKiBHQ0dMc3luYzsKK3R5cGVkZWYgdm9pZCogR0NH
THN5bmM7CiB0eXBlZGVmIHZvaWQgR0NHTHZvaWQ7CiAKIC8vIFRoZXNlIEdDR0wgdHlwZXMgZG8g
bm90IHN0cmljdGx5IG1hdGNoIHRoZSBHTCB0eXBlcyBhcyBkZWZpbmVkIGluIE9wZW5HTCBFUyAy
LjAKQEAgLTU5LDExICs1OSwxOCBAQCB0eXBlZGVmIGludDY0X3QgR0NHTGludDY0OwogdHlwZWRl
ZiB1aW50NjRfdCBHQ0dMdWludDY0OwogCiB0eXBlZGVmIEdDR0x1aW50IFBsYXRmb3JtR0xPYmpl
Y3Q7Cit1c2luZyBHQ0dMRGlzcGxheSA9IHZvaWQqOwordXNpbmcgR0NHTENvbmZpZyA9IHZvaWQq
OwordXNpbmcgR0NHTENvbnRleHQgPSB2b2lkKjsKIAogI2lmICFQTEFURk9STShDT0NPQSkKIHR5
cGVkZWYgdW5zaWduZWQgR0x1aW50OwogI2VuZGlmCiAKK3VzaW5nIEdDR0xOYXRpdmVEaXNwbGF5
VHlwZSA9IGludDsKKworaW5saW5lIGNvbnN0ZXhwciBHQ0dMTmF0aXZlRGlzcGxheVR5cGUgZ2NH
TERlZmF1bHREaXNwbGF5ID0gMDsKKwogaW5saW5lIGNvbnN0ZXhwciBzaXplX3QgZ2NHTFNwYW5E
eW5hbWljRXh0ZW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IEV4dGVudCA9IGdjR0xTcGFuRHluYW1pY0V4dGVudD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xF
VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FO
R0xFVXRpbGl0aWVzLmNwcAppbmRleCA3YzVmOGI1ODc3MzQ5MDAwMTQ1Mzg5NGEwMTNmMjI3MWM5
NzVhY2MzLi42NTk1NGRkMDZlNGQ3N2QxMjE4ZTBmN2E1Mjc4OWI0Y2IzMDllNTAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGll
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVV
dGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMu
aCIKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQorI2luY2x1ZGUgIkFOR0xFSGVh
ZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDYgKzM4LDE0MCBAQCBib29s
IHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCiB9CiAjZW5kaWYKIAorU2NvcGVkUmVzdG9yZVRl
eHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVudW0gYmluZGlu
Z1BvaW50UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24pCit7Cisg
ICAgQVNTRVJUKGJpbmRpbmdQb2ludCAhPSBzdGF0aWNfY2FzdDxHQ0dMZW51bT4oMHUpKTsKKyAg
ICBpZiAoY29uZGl0aW9uKSB7CisgICAgICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50
OworICAgICAgICBHTF9HZXRJbnRlZ2VydihiaW5kaW5nUG9pbnRRdWVyeSwgcmVpbnRlcnByZXRf
Y2FzdDxHQ0dMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7CisgICAgfQorfQorCitTY29wZWRSZXN0
b3JlVGV4dHVyZUJpbmRpbmc6On5TY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoKQoreworICAg
IGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmluZFRleHR1cmUobV9iaW5kaW5nUG9p
bnQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVyQmluZGluZzo6U2NvcGVkQnVm
ZmVyQmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIEdDR0x1aW50IGJpbmRpbmdWYWx1ZSwg
Ym9vbCBjb25kaXRpb24pCit7CisgICAgaWYgKCFjb25kaXRpb24pCisgICAgICAgIHJldHVybjsK
KyAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShiaW5kaW5nUG9pbnQpLCByZWludGVycHJldF9jYXN0
PEdDR0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKKyAgICBpZiAoYmluZGluZ1ZhbHVlID09IG1f
YmluZGluZ1ZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5k
aW5nUG9pbnQ7CisgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQb2ludCwgYmluZGluZ1ZhbHVl
KTsKK30KKworU2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3BlZEJ1ZmZlckJpbmRpbmcoKQorewor
ICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQ
b2ludCwgbV9iaW5kaW5nVmFsdWUpOworfQorCit2b2lkIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nOjpiaW5kRnJhbWVidWZmZXIoR0NHTHVpbnQgYmluZGluZ1ZhbHVlKQorewor
ICAgIGlmICghbV9iaW5kaW5nQ2hhbmdlZCAmJiBtX2JpbmRpbmdWYWx1ZSA9PSBiaW5kaW5nVmFs
dWUpCisgICAgICAgIHJldHVybjsKKyAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZl
clRhcmdldCwgYmluZGluZ1ZhbHVlKTsKKyAgICBtX2JpbmRpbmdDaGFuZ2VkID0gbV9iaW5kaW5n
VmFsdWUgIT0gYmluZGluZ1ZhbHVlOworfQorCitTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVy
QmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCkKK3sKKyAgICBp
ZiAobV9iaW5kaW5nQ2hhbmdlZCkKKyAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKG1fZnJhbWVi
dWZmZXJUYXJnZXQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkUGl4ZWxTdG9yYWdlTW9k
ZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbikK
KyAgICA6IG1fbmFtZShjb25kaXRpb24gPyBuYW1lIDogMCkKK3sKKyAgICBpZiAobV9uYW1lKQor
ICAgICAgICBHTF9HZXRJbnRlZ2VydihtX25hbWUsICZtX29yaWdpbmFsVmFsdWUpOworfQorCitT
Y29wZWRQaXhlbFN0b3JhZ2VNb2RlOjpTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdDR0xlbnVtIG5h
bWUsIEdDR0xpbnQgdmFsdWUsIGJvb2wgY29uZGl0aW9uKQorICAgIDogbV9uYW1lKGNvbmRpdGlv
biA/IG5hbWUgOiAwKQoreworICAgIGlmIChtX25hbWUpIHsKKyAgICAgICAgR0xfR2V0SW50ZWdl
cnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKKyAgICAgICAgcGl4ZWxTdG9yZSh2YWx1ZSk7
CisgICAgfQorfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjp+U2NvcGVkUGl4ZWxTdG9yYWdl
TW9kZSgpCit7CisgICAgaWYgKG1fbmFtZSAmJiBtX3ZhbHVlQ2hhbmdlZCkKKyAgICAgICAgR0xf
UGl4ZWxTdG9yZWkobV9uYW1lLCBtX29yaWdpbmFsVmFsdWUpOworfQorCit2b2lkIFNjb3BlZFBp
eGVsU3RvcmFnZU1vZGU6OnBpeGVsU3RvcmUoR0NHTGludCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQo
bV9uYW1lKTsKKyAgICBpZiAoIW1fdmFsdWVDaGFuZ2VkICYmIG1fb3JpZ2luYWxWYWx1ZSA9PSB2
YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEdMX1BpeGVsU3RvcmVpKG1fbmFtZSwgdmFsdWUp
OworICAgIG1fdmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVlICE9IHZhbHVlOworfQorCitT
Y29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKCkKK3sKKyAgICBHTF9HZW5UZXh0dXJlcygxLCAm
bV9vYmplY3QpOworfQorCitTY29wZWRUZXh0dXJlOjp+U2NvcGVkVGV4dHVyZSgpCit7CisgICAg
R0xfRGVsZXRlVGV4dHVyZXMoMSwgJm1fb2JqZWN0KTsKK30KKworU2NvcGVkRnJhbWVidWZmZXI6
OlNjb3BlZEZyYW1lYnVmZmVyKCkKK3sKKyAgICBHTF9HZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fb2Jq
ZWN0KTsKK30KKworU2NvcGVkRnJhbWVidWZmZXI6On5TY29wZWRGcmFtZWJ1ZmZlcigpCit7Cisg
ICAgR0xfRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7Cit9CisKK3ZvaWQgU2NvcGVk
R0xGZW5jZTo6cmVzZXQoKQoreworICAgIGlmIChtX29iamVjdCkgeworICAgICAgICBHTF9EZWxl
dGVTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4obV9vYmplY3QpKTsKKyAgICAgICAgbV9vYmplY3Qg
PSB7IH07CisgICAgfQorfQorCit2b2lkIFNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYygpCit7Cisg
ICAgcmVzZXQoKTsKKyAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQVV9DT01N
QU5EU19DT01QTEVURSwgMCk7Cit9CisKKworU2NvcGVkR0xDYXBhYmlsaXR5OjpTY29wZWRHTENh
cGFiaWxpdHkoR0NHTGVudW0gY2FwYWJpbGl0eSwgYm9vbCBlbmFibGUpCisgICAgOiBtX2NhcGFi
aWxpdHkoY2FwYWJpbGl0eSkKKyAgICAsIG1fb3JpZ2luYWwoR0xfSXNFbmFibGVkKG1fY2FwYWJp
bGl0eSkgPT0gZW5hYmxlID8gc3RkOjpudWxsb3B0IDogc3RkOjpvcHRpb25hbDxib29sPighZW5h
YmxlKSkKK3sKKyAgICBpZiAoIW1fb3JpZ2luYWwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
ZW5hYmxlKQorICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5KTsKKyAgICBlbHNlCisgICAg
ICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKK30KKworU2NvcGVkR0xDYXBhYmlsaXR5Ojp+
U2NvcGVkR0xDYXBhYmlsaXR5KCkKK3sKKyAgICBpZiAoIW1fb3JpZ2luYWwpCisgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoKm1fb3JpZ2luYWwpCisgICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxp
dHkpOworICAgIGVsc2UKKyAgICAgICAgR0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOworfQorCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvQU5HTEVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmgKaW5kZXggNTE1YjlkOTExYTNlZGI3MjEzMzU2MjA1ZjY1
MzViMjM2NzIxMmZiZi4uNzAyY2MxZWVhODE0YzM3OTY2ZmY2MzJmNmVhM2FkNWJlZTI5ODM3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVV
dGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9B
TkdMRVV0aWxpdGllcy5oCkBAIC0yNywxODUgKzI3LDEyNSBAQAogCiAjaWYgRU5BQkxFKFdFQkdM
KSAmJiBVU0UoQU5HTEUpCiAKLSNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHRHTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgorI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZyB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKTsKLXB1YmxpYzoK
LSAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0xlbnVtIGJpbmRpbmdQb2ludFF1ZXJ5
LCBHTGVudW0gYmluZGluZ1BvaW50LCBib29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgewotICAg
ICAgICBBU1NFUlQoYmluZGluZ1BvaW50ICE9IHN0YXRpY19jYXN0PEdMZW51bT4oMHUpKTsKLSAg
ICAgICAgaWYgKGNvbmRpdGlvbikgewotICAgICAgICAgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5k
aW5nUG9pbnQ7Ci0gICAgICAgICAgICBHTF9HZXRJbnRlZ2VydihiaW5kaW5nUG9pbnRRdWVyeSwg
cmVpbnRlcnByZXRfY2FzdDxHTGludCo+KCZtX2JpbmRpbmdWYWx1ZSkpOwotICAgICAgICB9Ci0g
ICAgfQogCi0gICAgflNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZygpCi0gICAgewotICAgICAg
ICBpZiAobV9iaW5kaW5nUG9pbnQpCi0gICAgICAgICAgICBHTF9CaW5kVGV4dHVyZShtX2JpbmRp
bmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOwotICAgIH0KK3B1YmxpYzoKKyAgICBTY29wZWRSZXN0
b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVudW0gYmluZGluZ1BvaW50UXVlcnksIEdDR0xlbnVtIGJp
bmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24gPSB0cnVlKTsKKyAgICB+U2NvcGVkUmVzdG9yZVRl
eHR1cmVCaW5kaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgR0xlbnVtIG1fYmluZGluZ1BvaW50IHsg
MCB9OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CisgICAgR0NHTGVudW0gbV9i
aW5kaW5nUG9pbnQgeyAwIH07CisgICAgR0NHTHVpbnQgbV9iaW5kaW5nVmFsdWUgeyAwdSB9Owog
fTsKIAotCiBjbGFzcyBTY29wZWRCdWZmZXJCaW5kaW5nIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTY29wZWRCdWZmZXJCaW5kaW5nKTsKLXB1YmxpYzoKLSAgICBTY29wZWRCdWZmZXJCaW5k
aW5nKEdMZW51bSBiaW5kaW5nUG9pbnQsIEdMdWludCBiaW5kaW5nVmFsdWUsIGJvb2wgY29uZGl0
aW9uID0gdHJ1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghY29uZGl0aW9uKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShiaW5kaW5nUG9pbnQpLCByZWlu
dGVycHJldF9jYXN0PEdMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7Ci0gICAgICAgIGlmIChiaW5k
aW5nVmFsdWUgPT0gbV9iaW5kaW5nVmFsdWUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50OwotICAgICAgICBHTF9CaW5kQnVmZmVyKG1f
YmluZGluZ1BvaW50LCBiaW5kaW5nVmFsdWUpOwotICAgIH0KIAotICAgIH5TY29wZWRCdWZmZXJC
aW5kaW5nKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2JpbmRpbmdQb2ludCkKLSAgICAgICAgICAg
IEdMX0JpbmRCdWZmZXIobV9iaW5kaW5nUG9pbnQsIG1fYmluZGluZ1ZhbHVlKTsKLSAgICB9Citw
dWJsaWM6CisgICAgU2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIEdD
R0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0cnVlKTsKKyAgICB+U2NvcGVk
QnVmZmVyQmluZGluZygpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdGV4cHIgR0xlbnVt
IHF1ZXJ5KEdMZW51bSBiaW5kaW5nUG9pbnQpCisgICAgc3RhdGljIGNvbnN0ZXhwciBHQ0dMZW51
bSBxdWVyeShHQ0dMZW51bSBiaW5kaW5nUG9pbnQpCiAgICAgewotICAgICAgICBpZiAoYmluZGlu
Z1BvaW50ID09IEdMX1BJWEVMX1BBQ0tfQlVGRkVSKQotICAgICAgICAgICAgcmV0dXJuIEdMX1BJ
WEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc7Ci0gICAgICAgIEFTU0VSVChiaW5kaW5nUG9pbnQgPT0g
R0xfUElYRUxfVU5QQUNLX0JVRkZFUik7Ci0gICAgICAgIHJldHVybiBHTF9QSVhFTF9VTlBBQ0tf
QlVGRkVSX0JJTkRJTkc7CisgICAgICAgIGlmIChiaW5kaW5nUG9pbnQgPT0gR3JhcGhpY3NDb250
ZXh0R0w6OlBJWEVMX1BBQ0tfQlVGRkVSKQorICAgICAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dEdMOjpQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HOworICAgICAgICBBU1NFUlQoYmluZGlu
Z1BvaW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBBQ0tfQlVGRkVSKTsKKyAgICAg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc7
CiAgICAgfQotICAgIEdMaW50IG1fYmluZGluZ1BvaW50IHsgMCB9OwotICAgIEdMdWludCBtX2Jp
bmRpbmdWYWx1ZSB7IDB1IH07CisgICAgR0NHTGludCBtX2JpbmRpbmdQb2ludCB7IDAgfTsKKyAg
ICBHQ0dMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CiB9OworCiBjbGFzcyBTY29wZWRSZXN0
b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nv
cGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOworCiBwdWJsaWM6Ci0gICAgU2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0x1aW50IHJl
c3RvcmVWYWx1ZSkKLSAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8g
R0xfUkVBRF9GUkFNRUJVRkZFUiA6IEdMX0ZSQU1FQlVGRkVSKQorICAgIFNjb3BlZFJlc3RvcmVS
ZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJHTDIsIEdDR0x1aW50IHJlc3RvcmVW
YWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8gR3JhcGhp
Y3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVC
VUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9yZVZhbHVlKQogICAgIHsKICAg
ICB9Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0Zvcldl
YkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSwgR0x1aW50IHZhbHVlKQotICAgICAgICA6IG1fZnJh
bWVidWZmZXJUYXJnZXQoaXNGb3JXZWJHTDIgPyBHTF9SRUFEX0ZSQU1FQlVGRkVSIDogR0xfRlJB
TUVCVUZGRVIpCisgICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBp
c0ZvcldlYkdMMiwgR0NHTHVpbnQgcmVzdG9yZVZhbHVlLCBHQ0dMdWludCB2YWx1ZSkKKyAgICAg
ICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8gR3JhcGhpY3NDb250ZXh0R0w6
OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVIpCiAgICAg
ICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9yZVZhbHVlKQogICAgIHsKICAgICAgICAgYmluZEZy
YW1lYnVmZmVyKHZhbHVlKTsKICAgICB9CisgICAgflNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZm
ZXJCaW5kaW5nKCk7CiAgICAgdm9pZCBtYXJrQmluZGluZ0NoYW5nZWQoKQogICAgIHsKICAgICAg
ICAgbV9iaW5kaW5nQ2hhbmdlZCA9IHRydWU7CiAgICAgfQotICAgIHZvaWQgYmluZEZyYW1lYnVm
ZmVyKEdMdWludCBiaW5kaW5nVmFsdWUpCi0gICAgewotICAgICAgICBpZiAoIW1fYmluZGluZ0No
YW5nZWQgJiYgbV9iaW5kaW5nVmFsdWUgPT0gYmluZGluZ1ZhbHVlKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgYmlu
ZGluZ1ZhbHVlKTsKLSAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9IG1fYmluZGluZ1ZhbHVlICE9
IGJpbmRpbmdWYWx1ZTsKLSAgICB9Ci0gICAgR0x1aW50IGZyYW1lYnVmZmVyVGFyZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZWJ1ZmZlclRhcmdldDsgfQotICAgIH5TY29wZWRSZXN0b3JlUmVh
ZEZyYW1lYnVmZmVyQmluZGluZygpCi0gICAgewotICAgICAgICBpZiAobV9iaW5kaW5nQ2hhbmdl
ZCkKLSAgICAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2ZyYW1lYnVmZmVyVGFyZ2V0LCBt
X2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQorICAgIHZvaWQgYmluZEZyYW1lYnVmZmVyKEdDR0x1aW50
IGJpbmRpbmdWYWx1ZSk7CisgICAgR0NHTHVpbnQgZnJhbWVidWZmZXJUYXJnZXQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYW1lYnVmZmVyVGFyZ2V0OyB9CisKIHByaXZhdGU6Ci0gICAgY29uc3QgR0xl
bnVtIG1fZnJhbWVidWZmZXJUYXJnZXQ7Ci0gICAgR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUg
fTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX2ZyYW1lYnVmZmVyVGFyZ2V0OworICAgIEdDR0x1aW50
IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKICAgICBib29sIG1fYmluZGluZ0NoYW5nZWQgeyBmYWxz
ZSB9OwogfTsKIAogY2xhc3MgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSk7CisKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbiA9
IHRydWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQotICAgIHsKLSAg
ICAgICAgaWYgKG1fbmFtZSkKLSAgICAgICAgICAgIEdMX0dldEludGVnZXJ2KG1fbmFtZSwgJm1f
b3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0xlbnVt
IG5hbWUsIEdMaW50IHZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgICAgIDogbV9u
YW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSkgewot
ICAgICAgICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKLSAg
ICAgICAgICAgIHBpeGVsU3RvcmUodmFsdWUpOwotICAgICAgICB9Ci0gICAgfQotICAgIH5TY29w
ZWRQaXhlbFN0b3JhZ2VNb2RlKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX25hbWUgJiYgbV92YWx1
ZUNoYW5nZWQpCi0gICAgICAgICAgICBHTF9QaXhlbFN0b3JlaShtX25hbWUsIG1fb3JpZ2luYWxW
YWx1ZSk7Ci0gICAgfQotICAgIHZvaWQgcGl4ZWxTdG9yZShHTGludCB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX25hbWUpOwotICAgICAgICBpZiAoIW1fdmFsdWVDaGFuZ2VkICYmIG1f
b3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgR0xf
UGl4ZWxTdG9yZWkobV9uYW1lLCB2YWx1ZSk7Ci0gICAgICAgIG1fdmFsdWVDaGFuZ2VkID0gbV9v
cmlnaW5hbFZhbHVlICE9IHZhbHVlOwotICAgIH0KLSAgICBvcGVyYXRvciBHTGludCgpIGNvbnN0
CisgICAgZXhwbGljaXQgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1lLCBib29s
IGNvbmRpdGlvbiA9IHRydWUpOworICAgIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0NHTGVudW0g
bmFtZSwgR0NHTGludCB2YWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0cnVlKTsKKyAgICB+U2NvcGVk
UGl4ZWxTdG9yYWdlTW9kZSgpOworICAgIHZvaWQgcGl4ZWxTdG9yZShHQ0dMaW50IHZhbHVlKTsK
KyAgICBvcGVyYXRvciBHQ0dMaW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX25h
bWUgJiYgIW1fdmFsdWVDaGFuZ2VkKTsKICAgICAgICAgcmV0dXJuIG1fb3JpZ2luYWxWYWx1ZTsK
ICAgICB9CisKIHByaXZhdGU6Ci0gICAgY29uc3QgR0xlbnVtIG1fbmFtZTsKKyAgICBjb25zdCBH
Q0dMZW51bSBtX25hbWU7CiAgICAgYm9vbCBtX3ZhbHVlQ2hhbmdlZCB7IGZhbHNlIH07Ci0gICAg
R0xpbnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OworICAgIEdDR0xpbnQgbV9vcmlnaW5hbFZhbHVl
IHsgMCB9OwogfTsKIAogY2xhc3MgU2NvcGVkVGV4dHVyZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2NvcGVkVGV4dHVyZSk7CisKIHB1YmxpYzoKLSAgICBTY29wZWRUZXh0dXJlKCkKLSAg
ICB7Ci0gICAgICAgIEdMX0dlblRleHR1cmVzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIH5T
Y29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0RlbGV0ZVRleHR1cmVzKDEsICZtX29i
amVjdCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMdWludCgpIGNvbnN0CisgICAgU2NvcGVkVGV4
dHVyZSgpOworICAgIH5TY29wZWRUZXh0dXJlKCk7CisgICAgb3BlcmF0b3IgR0NHTHVpbnQoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2JqZWN0OwogICAgIH0KKwogcHJpdmF0ZToK
LSAgICBHTHVpbnQgbV9vYmplY3QgeyAwdSB9OworICAgIEdDR0x1aW50IG1fb2JqZWN0IHsgMHUg
fTsKIH07CiAKIGNsYXNzIFNjb3BlZEZyYW1lYnVmZmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTY29wZWRGcmFtZWJ1ZmZlcik7CisKIHB1YmxpYzoKLSAgICBTY29wZWRGcmFtZWJ1ZmZl
cigpCi0gICAgewotICAgICAgICBHTF9HZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKLSAg
ICB9Ci0gICAgflNjb3BlZEZyYW1lYnVmZmVyKCkKLSAgICB7Ci0gICAgICAgIEdMX0RlbGV0ZUZy
YW1lYnVmZmVycygxLCAmbV9vYmplY3QpOwotICAgIH0KLSAgICBvcGVyYXRvciBHTHVpbnQoKSBj
b25zdAorICAgIFNjb3BlZEZyYW1lYnVmZmVyKCk7CisgICAgflNjb3BlZEZyYW1lYnVmZmVyKCk7
CisgICAgb3BlcmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
b2JqZWN0OwogICAgIH0KIHByaXZhdGU6Ci0gICAgR0x1aW50IG1fb2JqZWN0IHsgMCB9OworICAg
IEdDR0x1aW50IG1fb2JqZWN0IHsgMCB9OwogfTsKIAogY2xhc3MgU2NvcGVkR0xGZW5jZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkR0xGZW5jZSk7CisKIHB1YmxpYzoKICAgICBT
Y29wZWRHTEZlbmNlKCkgPSBkZWZhdWx0OwogICAgIFNjb3BlZEdMRmVuY2UoU2NvcGVkR0xGZW5j
ZSYmIG90aGVyKQpAQCAtMjIxLDIzICsxNjEsMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9Ci0gICAgdm9pZCByZXNldCgpCi0gICAgewotICAgICAg
ICBpZiAobV9vYmplY3QpIHsKLSAgICAgICAgICAgIEdMX0RlbGV0ZVN5bmMobV9vYmplY3QpOwot
ICAgICAgICAgICAgbV9vYmplY3QgPSB7IH07Ci0gICAgICAgIH0KLSAgICB9CisgICAgdm9pZCBy
ZXNldCgpOwogICAgIHZvaWQgYWJhbmRvbigpIHsgbV9vYmplY3QgPSB7IH07IH0KLSAgICB2b2lk
IGZlbmNlU3luYygpCi0gICAgewotICAgICAgICByZXNldCgpOwotICAgICAgICBtX29iamVjdCA9
IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7Ci0gICAgfQot
ICAgIG9wZXJhdG9yIEdMc3luYygpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0OyB9CisgICAgdm9p
ZCBmZW5jZVN5bmMoKTsKKyAgICBHQ0dMc3luYyBnZXQoKSBjb25zdCB7IHJldHVybiBtX29iamVj
dDsgfQorICAgIG9wZXJhdG9yIEdDR0xzeW5jKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0K
ICAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KKworcHJpdmF0
ZToKKyAgICBHQ0dMc3luYyBtX29iamVjdCB7IH07Cit9OworCitjbGFzcyBTY29wZWRHTENhcGFi
aWxpdHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjb3BlZEdMQ2FwYWJpbGl0eSk7Citw
dWJsaWM6CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5KEdDR0xlbnVtIGNhcGFiaWxpdHksIGJvb2wg
ZW5hYmxlKTsKKyAgICB+U2NvcGVkR0xDYXBhYmlsaXR5KCk7CisKIHByaXZhdGU6Ci0gICAgR0xz
eW5jIG1fb2JqZWN0IHsgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX2NhcGFiaWxpdHk7CisgICAg
Y29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiBtX29yaWdpbmFsOwogfTsKIAogYm9vbCBwbGF0Zm9y
bUlzQU5HTEVBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5k
ZXggYzVjNmJmYTU3NWU5NDk0NjYxMDBlMTY1MzE4MzI4M2EwOGEwZGI3Yi4uM2JiZmM5Zjc5MGYw
Y2QwMTI5NzM3ZWI4YmU5ZmRlNzk4YTBkYmZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgotI2luY2x1ZGUg
IlRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRl
IDxjc3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBAIC0xNjUsOSArMTY0LDkgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVh
c2VUaHJlYWRSZXNvdXJjZUJlaGF2aW8KICAgICAgICAgICAgIEVHTF9NYWtlQ3VycmVudChjdXJy
ZW50RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVY
VCk7CiAgICAgICAgIH0KICAgICAgICAgY29uc3RleHByIEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5h
dGl2ZURpc3BsYXlzW10gPSB7Ci0gICAgICAgICAgICBkZWZhdWx0RGlzcGxheSwKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PEVHTE5hdGl2ZURpc3BsYXlUeXBlPihkZWZhdWx0RGlzcGxheSksCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgICAgICBkZWZhdWx0T3BlbkdMRGlzcGxheSwKKyAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEVHTE5hdGl2ZURpc3BsYXlUeXBlPihkZWZhdWx0T3BlbkdM
RGlzcGxheSksCiAjZW5kaWYKICAgICAgICAgfTsKICAgICAgICAgZm9yIChhdXRvIG5hdGl2ZURp
c3BsYXkgOiBuYXRpdmVEaXNwbGF5cykgewpAQCAtMzIyLDggKzMyMSw4IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRTo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1
aW50IGludGVybmFsCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cmVzb2x2ZU11bHRp
c2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIFRlbXBvcmFy
eUFOR0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwot
ICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxT
RSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNU
LCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZERpdGhlcihHTF9ESVRI
RVIsIEdMX0ZBTFNFKTsKIAogICAgIEdMaW50IGJvdW5kRnJhbWVCdWZmZXIgPSAwOwogICAgIEdM
aW50IGJvdW5kUmVhZEZyYW1lQnVmZmVyID0gMDsKQEAgLTU2Nyw4ICs1NjYsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OnByZXBhcmVUZXh0dXJlSW1wbCgpCiAjZWxzZQogICAgIGlm
IChtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1cmUpIHsKICAgICAgICAgLy8gQmxpdCBtX3By
ZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1cmUgaW50byBtX3RleHR1cmUuCi0gICAgICAgIFRlbXBv
cmFyeUFOR0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0Up
OwotICAgICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwg
R0xfRkFMU0UpOworICAgICAgICBTY29wZWRHTENhcGFiaWxpdHkgc2NvcGVkU2Npc3NvcihHTF9T
Q0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKKyAgICAgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3Bl
ZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0RSQVdfRlJBTUVCVUZGRVJfQU5HTEUsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyRkJPKTsK
ICAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVJfQU5HTEUsIG1f
ZmJvKTsKICAgICAgICAgR0xfQmxpdEZyYW1lYnVmZmVyQU5HTEUoMCwgMCwgbV9jdXJyZW50V2lk
dGgsIG1fY3VycmVudEhlaWdodCwgMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdo
dCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTkVBUkVTVCk7CkBAIC02MjEsOCArNjIwLDggQEAg
dm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdo
dCkKICAgICBtX2N1cnJlbnRXaWR0aCA9IHdpZHRoOwogICAgIG1fY3VycmVudEhlaWdodCA9IGhl
aWdodDsKIAotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNT
T1JfVEVTVCwgR0xfRkFMU0UpOwotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWREaXRo
ZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZFNj
aXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5
IHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICAgICBTY29wZWRCdWZmZXJCaW5k
aW5nIHNjb3BlZFBpeGVsVW5wYWNrQnVmZmVyUmVzZXQoR0xfUElYRUxfVU5QQUNLX0JVRkZFUiwg
MCwgbV9pc0ZvcldlYkdMMik7CiAKICAgICBib29sIG11c3RSZXN0b3JlRkJPID0gcmVzaGFwZUZC
T3MoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CkBAIC0yNzgyLDcgKzI3ODEsNyBAQCBHQ0dMYm9v
bGVhbiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjppc1N5bmMoR0NHTHN5bmMgc3luYykKICAgICBp
ZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7CiAKLSAg
ICByZXR1cm4gR0xfSXNTeW5jKHN5bmMpOworICAgIHJldHVybiBHTF9Jc1N5bmMoc3RhdGljX2Nh
c3Q8R0xzeW5jPihzeW5jKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGVs
ZXRlU3luYyhHQ0dMc3luYyBzeW5jKQpAQCAtMjc5MCw3ICsyNzg5LDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpkZWxldGVTeW5jKEdDR0xzeW5jIHN5bmMpCiAgICAgaWYgKCFtYWtl
Q29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR0xfRGVsZXRlU3luYyhz
eW5jKTsKKyAgICBHTF9EZWxldGVTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oc3luYykpOwogfQog
CiBHQ0dMZW51bSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpjbGllbnRXYWl0U3luYyhHQ0dMc3lu
YyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0x1aW50NjQgdGltZW91dCkKQEAgLTI3OTgs
NyArMjc5Nyw3IEBAIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNsaWVudFdhaXRT
eW5jKEdDR0xzeW5jIHN5bmMsIEdDR0xiaXRmaWVsZCBmbGFnCiAgICAgaWYgKCFtYWtlQ29udGV4
dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIEdMX1dBSVRfRkFJTEVEOwogCi0gICAgcmV0dXJu
IEdMX0NsaWVudFdhaXRTeW5jKHN5bmMsIGZsYWdzLCB0aW1lb3V0KTsKKyAgICByZXR1cm4gR0xf
Q2xpZW50V2FpdFN5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgZmxhZ3MsIHRpbWVvdXQp
OwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5
bmMsIEdDR0xiaXRmaWVsZCBmbGFncywgR0NHTGludDY0IHRpbWVvdXQpCkBAIC0yODA2LDcgKzI4
MDUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5
bmMsIEdDR0xiaXRmaWVsZCBmbGFncywgR0NHTGludAogICAgIGlmICghbWFrZUNvbnRleHRDdXJy
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdMX1dhaXRTeW5jKHN5bmMsIGZsYWdzLCB0
aW1lb3V0KTsKKyAgICBHTF9XYWl0U3luYyhzdGF0aWNfY2FzdDxHTHN5bmM+KHN5bmMpLCBmbGFn
cywgdGltZW91dCk7CiB9CiAKIEdDR0xpbnQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3lu
Y2koR0NHTHN5bmMgc3luYywgR0NHTGVudW0gcG5hbWUpCkBAIC0yODE1LDcgKzI4MTQsNyBAQCBH
Q0dMaW50IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmdldFN5bmNpKEdDR0xzeW5jIHN5bmMsIEdD
R0xlbnVtIHBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJl
dHVybiB2YWx1ZTsKIAotICAgIEdMX0dldFN5bmNpdihzeW5jLCBwbmFtZSwgMSwgbnVsbHB0ciwg
JnZhbHVlKTsKKyAgICBHTF9HZXRTeW5jaXYoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgcG5h
bWUsIDEsIG51bGxwdHIsICZ2YWx1ZSk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCkBAIC0yOTc2
LDcgKzI5NzUsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRBbmRVcGRhdGVP
bGRlc3RGcmFtZSgpCiAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGNyZWF0aW9uIG9mIHRoaXMg
ZmVuY2UgaGFzIGFscmVhZHkgYmVlbiBmbHVzaGVkLgogICAgICAgICBmbGFncyA9IDA7CiAjZW5k
aWYKLSAgICAgICAgR0xlbnVtIHJlc3VsdCA9IEdMX0NsaWVudFdhaXRTeW5jKGZlbmNlLCBmbGFn
cywgbWF4RnJhbWVEdXJhdGlvbi5uYW5vc2Vjb25kc0FzPEdMdWludDY0PigpKTsKKyAgICAgICAg
R0xlbnVtIHJlc3VsdCA9IEdMX0NsaWVudFdhaXRTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oZmVu
Y2UuZ2V0KCkpLCBmbGFncywgbWF4RnJhbWVEdXJhdGlvbi5uYW5vc2Vjb25kc0FzPEdMdWludDY0
PigpKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSBHTF9XQUlUX0ZBSUxFRCk7CiAgICAgICAg
IHN1Y2Nlc3MgPSByZXN1bHQgIT0gR0xfV0FJVF9GQUlMRUQgJiYgcmVzdWx0ICE9IEdMX1RJTUVP
VVRfRVhQSVJFRDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKaW5kZXggMmZm
Zjc1MGE5YTViMDM1OTEzMDFlNTlmNmRkZjVjYjE2NjYzZTZjNS4uODAzMTFmNGM5YzgyODMzZDky
MzgxZWMxNjBhMmRiZjBlNGUwMmZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApA
QCAtNjgsOCArNjgsOCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5H
cmFwaGljc0NvbnRleHRHTEFOR0xFKCk7CiAKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
RGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxh
dGZvcm1EaXNwbGF5KCkgY29uc3Q7CisgICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNv
bnN0OwogICAgIEdDR0xlbnVtIGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CiAgICAgc3Rh
dGljIEdDR0xlbnVtIGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0UXVlcnlGb3JEcmF3aW5nVGFy
Z2V0KEdDR0xlbnVtIGRyYXdpbmdUYXJnZXQpOwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdp
bmdCdWZmZXJUZXh0dXJlVGFyZ2V0Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFy
Z2V0KTsKQEAgLTM2Myw5ICszNjMsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhl
bEJ1ZmZlcj4gcmVhZFJlbmRlcmluZ1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0
aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAK
LSAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHREaXNwbGF5
ID0gRUdMX0RFRkFVTFRfRElTUExBWTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEdDR0xOYXRpdmVE
aXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IGdjR0xEZWZhdWx0RGlzcGxheTsKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRl
ZmF1bHRPcGVuR0xEaXNwbGF5ID0gRUdMX0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0xKTsK
KyAgICBjb25zdGV4cHIgc3RhdGljIEdDR0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0T3BlbkdM
RGlzcGxheSA9IHN0YXRpY19jYXN0PEdDR0xOYXRpdmVEaXNwbGF5VHlwZT4oLTEpOwogICAgIHN0
YXRpY19hc3NlcnQoZGVmYXVsdERpc3BsYXkgIT0gZGVmYXVsdE9wZW5HTERpc3BsYXkpOwogI2Vu
ZGlmCiAKQEAgLTQwNiw3ICs0MDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXNvbHZlTXVs
dGlzYW1wbGluZ0lmTmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmID0gSW50UmVjdCgpKTsKICAgICB2
b2lkIGF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdDR0x1aW50IGludGVybmFs
RGVwdGhTdGVuY2lsRm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHN0YXRpYyBib29sIG1ha2VDdXJyZW50KFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0xEaXNwbGF5LCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMKTsKKyAgICBzdGF0aWMgYm9v
bCBtYWtlQ3VycmVudChHQ0dMRGlzcGxheSwgR0NHTENvbnRleHQpOwogI2VuZGlmCiAgICAgdmly
dHVhbCBib29sIHJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygpID0gMDsKIApAQCAtNDM5LDcg
KzQzOSw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBBdHRhY2hlcyBtX3RleHR1cmUgd2hlbiBtX3By
ZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1cmUgaXMgbm9uLXplcm8uCiAgICAgR0NHTHVpbnQgbV9w
cmVzZXJ2ZURyYXdpbmdCdWZmZXJGQk8geyAwIH07CiAgICAgLy8gUXVlcmllZCBhdCBkaXNwbGF5
IHN0YXJ0dXAuCi0gICAgRUdMaW50IG1fZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQgeyAtMSB9
OworICAgIEdDR0xpbnQgbV9kcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCB7IC0xIH07CiAgICAg
Ly8gRXJyb3JzIHJhaXNlZCBieSBzeW50aGVzaXplR0xFcnJvcigpLgogICAgIExpc3RIYXNoU2V0
PEdDR0xlbnVtPiBtX3N5bnRoZXRpY0Vycm9yczsKICAgICBib29sIG1faXNGb3JXZWJHTDIgeyBm
YWxzZSB9OwpAQCAtNDU0LDkgKzQ1NCw5IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgog
ICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwotICAg
IEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xDb25maWcgbV9jb25maWdPYmogeyBudWxscHRyIH07CisgICAgR0NHTERpc3Bs
YXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OworICAgIEdDR0xDb250ZXh0IG1fY29udGV4dE9i
aiB7IG51bGxwdHIgfTsKKyAgICBHQ0dMQ29uZmlnIG1fY29uZmlnT2JqIHsgbnVsbHB0ciB9Owog
ICAgIC8vIEJhY2tpbmcgc3RvcmUgZm9yIHRoZSB0aGUgYnVmZmVyIHdoaWNoIGlzIGV2ZW50dWFs
bHkgdXNlZCBmb3IgZGlzcGxheS4KICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9
PSBmYWxzZSwgdGhpcyBpcyB0aGUgZHJhd2luZyBidWZmZXIgYmFja2luZyBzdG9yZS4KICAgICAv
LyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8g
ZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KQEAgLTQ3Myw3ICs0NzMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgY2xhc3MgRUdMSW1hZ2VCYWNraW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIEVHTEltYWdlQmFja2luZyhQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMRGlzcGxheSk7CisgICAgICAgIEVHTEltYWdlQmFja2luZyhHQ0dMRGlzcGxheSk7CiAg
ICAgICAgIH5FR0xJbWFnZUJhY2tpbmcoKTsKIAogICAgICAgICBib29sIHJlc2V0KGludCB3aWR0
aCwgaW50IGhlaWdodCwgYm9vbCBoYXNBbHBoYSk7CkBAIC00ODgsNyArNDg4LDcgQEAgcHJvdGVj
dGVkOgogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwogCi0g
ICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IG1fZGlzcGxheTsKKyAgICAg
ICAgR0NHTERpc3BsYXkgbV9kaXNwbGF5OwogCiAgICAgICAgIGdibV9ibyogbV9CTyB7IG51bGxw
dHIgfTsKICAgICAgICAgaW50IG1fRkQgeyAtMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGlu
Zy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5Y2U1YjFjYTdjNmJiYzFjMTU2
YmVlNGU2ZmU5OTY5MmE0MGU2MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCi0j
aW5jbHVkZSAiVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgiCi0KLSNpbmNsdWRlICJBTkdMRUhlYWRl
cnMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1UZW1wb3JhcnlBTkdMRVNldHRpbmc6OlRl
bXBvcmFyeUFOR0xFU2V0dGluZyhHTGVudW0gY2FwYWJpbGl0eSwgR0xlbnVtIHNjb3BlZFN0YXRl
KQotICAgIDogbV9jYXBhYmlsaXR5KGNhcGFiaWxpdHkpCi0gICAgLCBtX3Njb3BlZFN0YXRlKHNj
b3BlZFN0YXRlKQotewotICAgIG1fb3JpZ2luYWxTdGF0ZSA9IEdMX0lzRW5hYmxlZChtX2NhcGFi
aWxpdHkpOwotICAgIGlmIChtX29yaWdpbmFsU3RhdGUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKEdMX1RSVUUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAg
R0xfRW5hYmxlKG1fY2FwYWJpbGl0eSk7Ci0gICAgZWxzZQotICAgICAgICBHTF9EaXNhYmxlKG1f
Y2FwYWJpbGl0eSk7Ci19Ci0KLVRlbXBvcmFyeUFOR0xFU2V0dGluZzo6flRlbXBvcmFyeUFOR0xF
U2V0dGluZygpCi17Ci0gICAgaWYgKG1fb3JpZ2luYWxTdGF0ZSA9PSBtX3Njb3BlZFN0YXRlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoR0xfVFJVRSA9PSBtX29yaWdpbmFsU3RhdGUpCi0g
ICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOwotICAgIGVsc2UKLSAgICAgICAgR0xfRGlz
YWJsZShtX2NhcGFiaWxpdHkpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpICYm
IFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMwNDc3MDk3NTM0NDgxMjRlOGYyZGM2OWUyYTAyM2U5NzgyOWNmMjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
R3JhcGhpY3NUeXBlc0dMLmgiCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUZW1wb3JhcnlBTkdMRVNldHRpbmc8PiBpcyB1c2VmdWwg
Zm9yIHRlbXBvcmFyaWx5IGRpc2FibGluZyAob3IgZW5hYmxpbmcpIGEgcGFydGljdWxhciBPcGVu
R0wKLS8vIGZlYXR1cmUgd2l0aCBhIHBhcnRpY3VsYXIgc2NvcGUuIEEgVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nPD4gb2JqZWN0IHJldHVybnMgdGhlIGZsYWcgdG8gaXRzIG9yaWdpbmFsCi0vLyB2YWx1
ZSB1cG9uIGRlc3RydWN0aW9uLCBtYWtpbmcgaXQgYW4gYWx0ZXJuYXRpdmUgdG8gY2hlY2tpbmcs
IGNsZWFyaW5nLCBhbmQgcmVzZXR0aW5nIGVhY2ggZmxhZwotLy8gYXQgYWxsIG9mIGEgYmxvY2sn
cyBleGl0IHBvaW50cy4KLS8vCi0vLyBCYXNlZCBvbiBTZXRGb3JTY29wZTw+Ci0KLWNsYXNzIFRl
bXBvcmFyeUFOR0xFU2V0dGluZyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nKTsKLXB1YmxpYzoKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcoR0NHTGVu
dW0gY2FwYWJpbGl0eSwgR0NHTGVudW0gc2NvcGVkU3RhdGUpOwotICAgIH5UZW1wb3JhcnlBTkdM
RVNldHRpbmcoKTsKLQotcHJpdmF0ZToKLSAgICBjb25zdCBHQ0dMZW51bSBtX2NhcGFiaWxpdHk7
Ci0gICAgY29uc3QgR0NHTGVudW0gbV9zY29wZWRTdGF0ZTsKLSAgICBHQ0dMZW51bSBtX29yaWdp
bmFsU3RhdGU7Ci19OwotCi19Ci0KLXVzaW5nIFdlYkNvcmU6OlRlbXBvcmFyeUFOR0xFU2V0dGlu
ZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FO
R0xFVXRpbGl0aWVzQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKaW5kZXggZTk5M2I3NzY3MTg5ZmU3ZWRmNmMy
NjU5MjE1YWNlM2MyZWEwNjkzOS4uNDA3ZTgyODQwN2ZiYjA5ZDdlZWViYTI4Njg4NDdlM2RhZjZm
MDE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
QU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKQEAgLTI3LDEyICsyNywyMyBAQAog
I2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLQor
I2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4K
KworV1RGX1dFQUtfTElOS19GT1JDRV9JTVBPUlQoRUdMX0luaXRpYWxpemUpOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoRUdM
RGlzcGxheSBkaXNwbGF5LCBFR0xDb25maWcgY29uZmlnLCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQg
dXNhZ2VIaW50LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkg
aGVpZ2h0LCBHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmIHN1cmZhY2UsIEdMdWludCBwbGFuZSkK
K2Jvb2wgcGxhdGZvcm1Jc0FOR0xFQXZhaWxhYmxlKCkKK3sKKyAgICAvLyBUaGUgQU5HTEUgaXMg
d2VhayBsaW5rZWQgaW4gZnVsbCwgYW5kIHRoZSBFR0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5
IHdlYWsgbGlua2VkIGFib3ZlCisgICAgLy8gc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNl
IHdoZXJlIEFOR0xFIGlzIG5vdCBwcmVzZW50LgorICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXpl
OworfQorCit2b2lkKiBjcmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEdDR0xEaXNwbGF5
IGRpc3BsYXksIEdDR0xDb25maWcgY29uZmlnLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgdXNh
Z2VIaW50LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0NHTHVpbnQg
cGxhbmUpCiB7CiAgICAgYXV0byBlZ2xUZXh0dXJlVGFyZ2V0ID0gdGFyZ2V0ID09IEdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFID8gRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIDogRUdMX1RF
WFRVUkVfMkQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuaAppbmRleCA5M2JhNGUwZGM5MTMyZTg1
ODc3NWY5YzI1YmFkNjc0OGM3Yzg2OWI4Li4wYWNkNzIxZDA4N2FhMmY3Yjg0MzZjYmYzNDU1NGE1
NTlkZTE0MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5oCkBAIC0yNywxNiArMjcsMTYgQEAK
IAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0lPU3VyZmFjZSAqSU9T
dXJmYWNlUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJldHVybnMgYSBoYW5kbGUg
d2hpY2gsIGlmIG5vbi1udWxsLCBtdXN0IGJlIHJlbGVhc2VkIHdpdGggZGVzdHJveVBidWZmZXJB
bmREZXRhY2hJT1N1cmZhY2UoKS4KLXZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZh
Y2UoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQgdXNhZ2VIaW50
LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBH
TGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHTHVpbnQgcGxhbmUpOwordm9pZCogY3JlYXRlUGJ1
ZmZlckFuZEF0dGFjaElPU3VyZmFjZShHQ0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTGVudW0g
dGFyZ2V0LCBHQ0dMaW50IHVzYWdlSGludCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVm
LCBHQ0dMdWludCBwbGFuZSk7CiAKLXZvaWQgZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZh
Y2UoRUdMRGlzcGxheSwgdm9pZCogaGFuZGxlKTsKK3ZvaWQgZGVzdHJveVBidWZmZXJBbmREZXRh
Y2hJT1N1cmZhY2UoR0NHTERpc3BsYXksIHZvaWQqIGhhbmRsZSk7CiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMzZlOGYwZmIwMjkzNzdiNGVmZmU0MDUzNTIzN2U1
ODIyMmZiZjc3MS4uNDdkNzEwNjExMWM1YjYxY2NiNDVjMjdhMGQxZjM0NGExYTUxYzBmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpZiBF
TkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiCiAKKyNpbXBv
cnQgIkFOR0xFSGVhZGVycy5oIgogI2ltcG9ydCAiQU5HTEVVdGlsaXRpZXMuaCIKICNpbXBvcnQg
IkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2ltcG9ydCAiR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0
ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1h
cENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL01ldGFsU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2lt
cG9ydCA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDE3ICs1OCw4IEBACiAjaW5j
bHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjZW5kaWYKIAotV1RGX1dFQUtfTElOS19GT1JD
RV9JTVBPUlQoRUdMX0luaXRpYWxpemUpOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wg
cGxhdGZvcm1Jc0FOR0xFQXZhaWxhYmxlKCkKLXsKLSAgICAvLyBUaGUgQU5HTEUgaXMgd2VhayBs
aW5rZWQgaW4gZnVsbCwgYW5kIHRoZSBFR0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5IHdlYWsg
bGlua2VkIGFib3ZlCi0gICAgLy8gc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNlIHdoZXJl
IEFOR0xFIGlzIG5vdCBwcmVzZW50LgotICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXplOwotfQot
CiAvLyBJbiBpc0N1cnJlbnRDb250ZXh0UHJlZGljdGFibGUoKSA9PSB0cnVlIGNhc2UgdGhpcyB2
YXJpYWJsZSBpcyBhY2Nlc3NlZCBpbiBzaW5nbGUtdGhyZWFkZWQgbWFubmVyLgogLy8gSW4gaXND
dXJyZW50Q29udGV4dFByZWRpY3RhYmxlKCkgPT0gZmFsc2UgY2FzZSB0aGlzIHZhcmlhYmxlIGlz
IGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBidXQgYWx3YXlzIHNlcXVlbnRpYWxseQog
Ly8gYW5kIGl0IGFsd2F5cyBjb250YWlucyBudWxscHRyIGFuZCBudWxscHRyIGlzIGFsd2F5cyB3
cml0dGVuIHRvIGl0LgpAQCAtNTk5LDcgKzU5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xD
b2NvYTo6YmluZERpc3BsYXlCdWZmZXJCYWNraW5nKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6bWFr
ZUN1cnJlbnQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgZGlzcGxheSwgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTCBjb250ZXh0KQorYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjptYWtlQ3VycmVudChHQ0dMRGlzcGxheSBkaXNwbGF5LCBHQ0dMQ29udGV4dCBjb250ZXh0KQog
ewogICAgIGN1cnJlbnRDb250ZXh0ID0gbnVsbHB0cjsKICAgICByZXR1cm4gRUdMX01ha2VDdXJy
ZW50KGRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgY29udGV4dCk7CkBA
IC04MDEsMTIgKzc5MywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0
dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRmb3JtRwogfQogI2VuZGlmCiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6
OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlPYmo7
CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRleHRH
TEFOR0xFOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29uZmlnT2Jq
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKaW5kZXggMmM5OGY5ZDkyOTIzYzA0
OWE5NGIzNDliNGY3NzUyOTQ3NzE5ZTIyOC4uYTgzY2ZhMjk1NzA4NjBmMzM5MzRhMzg3Mjg2ZDY5
YjUyODA0YTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpICYmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKIAorI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogI2luY2x1ZGUgIkFOR0xFVXRp
bGl0aWVzQ29jb2EuaCIKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTENvY29hLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCmluZGV4IDllMWI0NDQ5
ZDNiNGJiOWY1YzBkN2FlOGQ4NWYzMGVmMWQwNGJhOGEuLjc3ZGVkZDQ4NzI5MTE5NjExMzU3YmJk
ZGI2Y2M2OGMzODg5YmIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCkBAIC01MSw5
ICs1MSw5IEBAIHByaXZhdGU6CiAKIAogICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG1fb3du
ZXI7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgbV9kaXNwbGF5IHsgbnVs
bHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0IHsgbnVsbHB0
ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgbV9jb25maWcgeyBudWxs
cHRyIH07CisgICAgR0NHTERpc3BsYXkgbV9kaXNwbGF5IHsgbnVsbHB0ciB9OworICAgIEdDR0xD
b250ZXh0IG1fY29udGV4dCB7IG51bGxwdHIgfTsKKyAgICBHQ0dMQ29uZmlnIG1fY29uZmlnIHsg
bnVsbHB0ciB9OwogCiAgICAgUGxhdGZvcm1HTE9iamVjdCBtX2ZyYW1lYnVmZmVyIHsgMCB9Owog
ICAgIFBsYXRmb3JtR0xPYmplY3QgbV95dXZWZXJ0ZXhCdWZmZXIgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmlu
ZGV4IGM2MWVlYmMzMDY3OTc2MzViZjI1Yzg5MGRhOTljZTViY2UzMjIwYjMuLjI2MmIyZmI5MDIz
NzgwMmNkZjA1YTI3OGI0NDMxZTZlODA4OWIyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC01MzQsNyArNTM0
LDcgQEAgdm9pZCBHTENvbnRleHRFR0w6OnN3YXBJbnRlcnZhbChpbnQgaW50ZXJ2YWwpCiAgICAg
ZWdsU3dhcEludGVydmFsKG1fZGlzcGxheS5lZ2xEaXNwbGF5KCksIGludGVydmFsKTsKIH0KIAot
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgp
CitHQ0dMQ29udGV4dCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgpCiB7CiAgICAgcmV0
dXJuIG1fY29udGV4dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0wuaAppbmRleCAzYzNhM2Q3ZjA1NzczYWRlYzBjNmNkODcxZWZi
YTRkNmRiMzVjNjQxLi41OThiMGI2NzMyNmE2NjQxMmQ2NTQyYmQ5YmU5MThjNGZkNzY3ZjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5oCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwSW50ZXJ2YWwo
aW50KSBvdmVycmlkZTsKICAgICBib29sIGlzRUdMQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1D
b250ZXh0KCkgb3ZlcnJpZGU7CisgICAgR0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgb3Zl
cnJpZGU7CiAKICAgICBlbnVtIEVHTFN1cmZhY2VUeXBlIHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRv
d1N1cmZhY2UsIFBpeG1hcFN1cmZhY2UsIFN1cmZhY2VsZXNzIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKaW5kZXgg
NWZiZmFiNmNkMGYzMTEzZmYwNDQ3YmIzZTFjNjlmMTc3ODAzNDEzYS4uOTgzOWQ5YmE5YTJlNWEw
YzNkYmYwNGJmNGQ5NGUwM2EzYzRjOWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKQEAgLTM5NCw3ICszOTQsNyBA
QCB2b2lkIEdMQ29udGV4dEdMWDo6c3dhcEludGVydmFsKGludCBpbnRlcnZhbCkKICAgICBnbFhT
d2FwSW50ZXJ2YWxTR0koaW50ZXJ2YWwpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
IEdMQ29udGV4dEdMWDo6cGxhdGZvcm1Db250ZXh0KCkKK0dDR0xDb250ZXh0IEdMQ29udGV4dEdM
WDo6cGxhdGZvcm1Db250ZXh0KCkKIHsKICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4
dEdMWC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdM
WC5oCmluZGV4IGQzZGIzNWQ2NTYxMWMxOGUwYTA1YmNhMTA0M2UxOWRmYTQ5NDcyNDIuLjgyMjJk
NDk2M2QwOGFlZjZjYzI1OGUzMmU0ODFkYzU4MTk4MjMyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAot
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7
CisgICAgR0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CiAKICAgICBHTENv
bnRleHRHTFgoUGxhdGZvcm1EaXNwbGF5JiwgWFVuaXF1ZUdMWENvbnRleHQmJiwgR0xOYXRpdmVX
aW5kb3dUeXBlKTsKICAgICBHTENvbnRleHRHTFgoUGxhdGZvcm1EaXNwbGF5JiwgWFVuaXF1ZUdM
WENvbnRleHQmJiwgWFVuaXF1ZUdMWFBidWZmZXImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwCmluZGV4IDAwZjk5ZTgzNzRjNGRhMTAxN2NhNGQyMzE1ZGNm
YTQ0NzJlMjkwNjMuLjc1NGQ2MjQ0ODZlYzA0ZWM5NWVmMTNmMGZkNTcyMTkxNDBlNWExNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0
Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCkBAIC05NCw3ICs5
NCw3IEBAIGJvb2wgUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1cmVHc3RHTENvbnRleHQoKSBjb25z
dAogICAgIGF1dG8qIHNoYXJlZENvbnRleHQgPSBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxheSo+
KHRoaXMpLT5zaGFyaW5nR0xDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBjb250ZXh0
SGFuZGxlID0gc2hhcmVkQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgR0NHTENvbnRl
eHQgY29udGV4dEhhbmRsZSA9IHNoYXJlZENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAg
IGlmICghY29udGV4dEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTEFOR0xFTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcAppbmRleCAzOGMwNGQxZTZkZWUz
NmYxZDIwMmE5Zjg5YjI0MjU3Y2I2NTQ0ZTA4Li4yNWUyYjkxY2NjNGI5OGYzOTM0MGExNWVkMDY0
NTEyMWYxNGVmMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVM
YXllci5jcHAKQEAgLTIxNCwxNyArMjE0LDE3IEBAIGJvb2wgR0NHTEFOR0xFTGF5ZXI6OkFOR0xF
Q29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGxh
dGZvcm1HcmFwaGljc0NvbnRleHRHTCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0
Zm9ybUNvbnRleHQoKSBjb25zdAorR0NHTENvbnRleHQgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29u
dGV4dDo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0Owog
fQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6QU5H
TEVDb250ZXh0OjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NHTERpc3BsYXkgR0NHTEFOR0xF
TGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9kaXNwbGF5OwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIEdDR0xB
TkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dDR0xDb25m
aWcgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db25maWcoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2NvbmZpZzsKIH0KQEAgLTI0OCwxOSArMjQ4LDE5IEBAIGJvb2wgR0NH
TEFOR0xFTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAKIH0KIAotUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xD
b250ZXh0IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR0NHTEFO
R0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHQ0dMQU5HTEVM
YXllcjo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRl
eHQpOwogICAgIHJldHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1EaXNwbGF5KCk7CiB9CiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3Jt
Q29uZmlnKCkgY29uc3QKK0dDR0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29uZmln
KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2Fu
Z2xlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQ0dMQU5HTEVMYXllci5oCmluZGV4IDRmOGRmNmVjZTA2YTU3NDJlZDNhN2I4ZjdlYTBlNTBk
MGNiMDQ2NDIuLmRmODNhODk0ZGQ1MDYwMTg1YWM5OTZjZjcxNGVhYmRiNzY1ZWQwMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQ0dMQU5HTEVMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oCkBAIC02Miw5ICs2Miw5
IEBAIHB1YmxpYzoKIAogICAgICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIEVO
QUJMRShXRUJHTCkKLSAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNv
bnRleHQoKSBjb25zdDsKLSAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkg
cGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKKyAgICAgICAgR0NHTENvbnRleHQgcGxh
dGZvcm1Db250ZXh0KCkgY29uc3Q7CisgICAgICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxh
eSgpIGNvbnN0OworICAgICAgICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAj
ZW5kaWYKIAogICAgIHByaXZhdGU6CkBAIC04MCw5ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5HQ0dMQU5HTEVMYXllcigpOwogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
LSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0Owot
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNv
bnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWco
KSBjb25zdDsKKyAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyAgICBH
Q0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAgICBHQ0dMQ29uZmlnIHBsYXRm
b3JtQ29uZmlnKCkgY29uc3Q7CiAKICAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudExheWVyOyB9CiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVl
ZGVkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4
IDRlNGEyYjNiZTUyZGMzNjU3MDBjN2I1OWM5NTUzMjJhZGVlODY2MDYuLjAxMGNjN2MzM2JlY2Ji
MmI4ZjZhYjA3MGZkNzM1ZWZhYjAwZTI3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
Q0dMTGF5ZXIuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgR0NHTExheWVyOjptYWtlQ29udGV4
dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7
CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTExheWVyOjpwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdAorR0NHTENvbnRleHQgR0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25z
dAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaAppbmRl
eCAxOTY2Yzc5ZmNiYmFkZWUzNmQ3MGFkNWYwYTRmNzBlZDdmMzFkYzM3Li5hYjFhMTY0ODE3ZGI2
MTkyODk2NTE3M2M0MGJmMjMxMWQ3MTUwNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdD
R0xMYXllci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIENvbnRlbnRMYXllciYg
Y29udGVudExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGF5ZXI7IH0KICAgICB2aXJ0
dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgR0NHTENv
bnRleHQgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzSWZO
ZWVkZWQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKaW5kZXggYTJlNjczZmM0NjM0ZDhlZWU2YmNlNWVhNWU5
ODk3ZmE3ZTYzZjg3MS4uMjAyOGE5NTg2NjM1N2YwZDk0MDA0YmFmODZlMDU1ZTI1NWYxNzdjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5H
TEUuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6R3JhcGhp
Y3NDb250ZXh0R0xBTkdMRShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmkKIH0KIAog
I2lmIFVTRShOSUNPU0lBKQotR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5n
OjpFR0xJbWFnZUJhY2tpbmcoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgZGlzcGxh
eSkKK0dyYXBoaWNzQ29udGV4dEdMQU5HTEU6OkVHTEltYWdlQmFja2luZzo6RUdMSW1hZ2VCYWNr
aW5nKEdDR0xEaXNwbGF5IGRpc3BsYXkpCiAgICAgOiBtX2Rpc3BsYXkoZGlzcGxheSkKIHsKIH0K
QEAgLTIzMSw3ICsyMzEsNyBAQCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250
ZXh0R0xBTkdMRSgpCiAjZW5kaWYKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3Bs
YXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKK0dDR0xE
aXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiB7
CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgcmV0dXJuIG1fbmljb3NpYUxheWVyLT5wbGF0Zm9ybURp
c3BsYXkoKTsKQEAgLTI0MCw3ICsyNDAsNyBAQCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlz
cGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogI2Vu
ZGlmCiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0
R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAg
ICAgcmV0dXJuIG1fbmljb3NpYUxheWVyLT5wbGF0Zm9ybUNvbmZpZygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dM
UGxhdGZvcm1MYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2MjY2ZWFmOTIxMDMx
N2U2OWM2MWE0MDFiNjdmZTRmMDNiYWFiM2ViLi5lNTMzNGVlMmY3NTc0OTI1ZjM4NjNiOTVmNTMx
ZmRjODI2MjlmZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyLmNwcApAQCAtNjIsMTkgKzYyLDE5IEBAIGJvb2wgVGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgVGV4
dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NH
TENvbnRleHQgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQo
KSBjb25zdAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERp
c3BsYXkgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBj
b25zdAorR0NHTERpc3BsYXkgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9y
bURpc3BsYXkoKSBjb25zdAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJu
IG1fZ2xDb250ZXh0LT5wbGF0Zm9ybURpc3BsYXkoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHRHTENvbmZpZyBUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29u
ZmlnKCkgY29uc3QKK0dDR0xDb25maWcgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpw
bGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKICAgICBy
ZXR1cm4gbV9nbENvbnRleHQtPnBsYXRmb3JtQ29uZmlnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmgKaW5kZXggZTNlZWQ2YmI5ZTM2NjYyNjkzNzM1YzJj
Y2QxMGNlMWI3ZTZkNmUzYi4uZjdiODU3NGY4ZjAzMGQzMGQ2NTExZTZiOGQ4MDRjZDllNTAyMmQy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAt
MzgsOSArMzgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyKCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0Owor
ICAgIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgIEdDR0xEaXNwbGF5
IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OworICAgIEdDR0xDb25maWcgcGxhdGZvcm1Db25maWco
KSBjb25zdDsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBSZWZQdHI8VGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gcHJveHkoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMDQyMzc1ZDZiN2FlNTgxYTRiYWZkZDZkM2UxNzZiMTNl
ODM4OWY1MC4uZmYyODQ1ZWQ0MmYzNDdhOWI4YWI4NTcyMWU2MmVlYjE0ZTUxN2YwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIHByb3RlY3RlZDoKICAgICBX
ZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKICAgICBSZWZQdHI8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNv
bm5lY3Rpb247CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdXNpbmcgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E7CisgICAgdXNpbmcg
R0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKLSAg
ICB1c2luZyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMID0gV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xUZXh0dXJlTWFwcGVyOworICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOwogI2VuZGlmCiAgICAgCi0gICAgUmVmUHRyPFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1f
c3RyZWFtVGhyZWFkKTsKKyAgICBSZWZQdHI8R0NHTENvbnRleHQ+IG1fY29udGV4dCBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oCmluZGV4IDA1ZGMy
Mzc4MDM0OTE0OGRlMTg0Y2YwMjExOWJmZGVlYTA0ZDIzMGIuLmU0NmI3ZmMzN2I5YzRmZDM4Njlk
ZWJiZDc0YzZmZDI4YjdlYWJjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL21hYy9BcHBLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMv
QXBwS2l0U1BJLmgKQEAgLTI5LDEzICsyOSw2IEBACiAKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBP
SU5URVJfSF8KIAotI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMp
Ci0jaWZuZGVmIEdMX0dMRVNfUFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMg
MAotI2VuZGlmCi0jaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4u
aD4KLSNlbmRpZgotCiAjaW1wb3J0IDxBcHBLaXQvTlNJbnNwZWN0b3JCYXIuaD4KICNpbXBvcnQg
PEFwcEtpdC9OU1RleHRJbnB1dENsaWVudF9Qcml2YXRlLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNX
aW5kb3dfUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
bWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmgKaW5kZXggNmQ0YTMxNDZlNmU5NTcxNzcxOWM2
M2YyZWYyZjZkOWRlNzU0NWQ3Ni4uZjA3OTUxNTZjNTc4NjJmODQ1MDljYzVhNGJjYWY4MGYyZmU3
MDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0
aW9uU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBw
bGljYXRpb25TZXJ2aWNlc1NQSS5oCkBAIC0zMSwxMCArMzEsNiBAQAogCiAjaWYgSEFWRShDUFAy
MF9JTkNPTVBBVElCTEVfSU5URVJOQUxfSEVBREVSUykKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBP
SU5URVJfSF8KLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0jZGVmaW5lIEdMX0dMRVNfUFJP
VE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRf
YXV0b2dlbi5oPgogI2VuZGlmCiAKICNpbXBvcnQgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGlj
YXRpb25TZXJ2aWNlc1ByaXYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaAppbmRleCAwN2NkMGQ5
Mjg4MWI3NTA4NjAzZmVjZmE0NDFiMTc5NTJjYzA2YmUwLi42N2Y3MjdkOTk2YjUzOTU2YjFhYjQ3
MDJjOTdmMjIyYmIwNWRjMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oCkBAIC0yNywxMyAr
MjcsNiBAQAogCiAjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCiAKLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQot
I2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAK
LSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+
Ci0jZW5kaWYKLQogI2ltcG9ydCA8UXVhcnR6L1F1YXJ0ei5oPgogCiBAY2xhc3MgQ1BSZWFkaW5n
TW9kZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJ
bnRlcm5hbC5oCmluZGV4IDMxNDdhNDVlYTIxMTI3ZWMwMDA5NTM4ZmMxODAxZjY0Y2QzMDA4MmYu
LmFmMWYxNTEzNDg2YmEzNzMzM2RiYzM1OWVjZmVjNTZkZmI3YTc1ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC0yOCwx
MyArMjgsNiBAQAogCiAvLyBUaGlzIGhlYWRlciBjb250YWlucyBXZWJGcmFtZSBkZWNsYXJhdGlv
bnMgdGhhdCBjYW4gYmUgdXNlZCBhbnl3aGVyZSBpbiBXZWJLaXQsIGJ1dCBhcmUgbmVpdGhlciBT
UEkgbm9yIEFQSS4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIEhBVkUoQ1BQMjBf
SU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9UWVBF
UwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5HTEUv
ZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KLSNlbmRpZgotCiAjaW1wb3J0ICJXZWJG
cmFtZVByaXZhdGUuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2ltcG9y
dCA8V2ViQ29yZS9FZGl0QWN0aW9uLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452013</attachid>
            <date>2022-02-15 06:01:00 -0800</date>
            <delta_ts>2022-02-15 11:26:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236636-20220215160058.patch</filename>
            <type>text/plain</type>
            <size>73702</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiNzU2YTM0YzUzYjA5
N2I0Y2I4NmI5MzJiYTc5OTMwYzNiZjNkZi4uNzI1MWUwMDY3ZWY1NWU0NjdjNmZiOTE0ZDdlOWIw
NmZjNzNhY2MyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAyMi0wMi0xNSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZXMgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGlu
Y2x1ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1
c2UgQU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0
eXBlcyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBl
cworICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUg
T3BlbkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0x7RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAg
ICBHQ0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNp
c3RlbnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNl
IGluIEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3Zl
IGN1cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAg
ICAgICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHks
IGNvbnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0
aGUgaW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNp
bmNlIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRo
ZXNlIG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZh
Y3Rvci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBm
aWxlIGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZp
bGUgb3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmg6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9y
ZVRleHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6
flNjb3BlZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJl
YWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFk
RnJhbWVidWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFn
ZU1vZGU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UGl4ZWxTdG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
b3BlZFRleHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZy
YW1lYnVmZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRG
cmFtZWJ1ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3Bl
ZEdMRmVuY2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNl
U3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2Fw
YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRH
TENhcGFiaWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6
U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9y
IEdDR0xpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0
b3IgR0NHTHVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6
Om9wZXJhdG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRv
ciBHQ0dMc3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZy
YW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5H
TEVTZXR0aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVm
ZmVyQW5kQXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9BTkdMRVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRl
eHRHTFg6OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4
L0dMQ29udGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Q
bGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0
cnlFbnN1cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNv
c2lhOjpHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZv
cm1EaXNwbGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdM
RUNvbnRleHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xB
TkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NH
TEFOR0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3Bw
OgorICAgICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmln
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDR0xQbGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
Q0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxh
dGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNSAgRW5yaXF1ZSBP
Y2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFt
ZXJdW01TRV0gTGV0IE1TRSBzZXQgbmF0dXJhbCB2aWRlbyBzaXplIHdoZW4gdXNpbmcgaG9sZXB1
bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA4NjdhZGE2OWFiMTdmN2I1NWNmYmU5MWJkNzQ3YWU1
YmJiZWUwYWUzLi41ZmE0N2RmNWNkMTBkNTYxYmQ5OTNjMTMzODgzMjkwZTNmM2JjYjgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVu
ZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1ZGVzIGludGVy
ZmVyZXMgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIGF0dGVtcHQgdG8gb3ZlcnJpZGUg
c3lzdGVtIGhlYWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAgICAgICBBTkdMRSBpbXBsZW1lbnRh
dGlvbi4gVGhleSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucworICAgICAgICBhbmQgb25l
IGNhbm5vdCByZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdy
YXBoaWNzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg6CisgICAg
ICAgIEFkZCBtaXNzaW5nIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfIHRoYXQgbWFrZXMgdGhlIENv
Y29hUHJpdi5oCisgICAgICAgIGluY2x1ZGVkIENvcmVHcmFwaGljcyBoZWFkZXIgc2tpcCB0aGUg
aW5jb21wYXRpYmxlIHRhZ2dlZCBwb2ludGVyCisgICAgICAgIGRlY2xhcmF0aW9ucywgc2ltaWxh
ciB0byBvdGhlciAqU1BJLmggaGVhZGVycy4KKwogMjAyMi0wMi0xNCAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGl2ZSBUZXh0XSBQbHVtYiBwbGF0
Zm9ybSBpbWFnZSBhbmFseXNpcyBvYmplY3RzIHRvIHRoZSB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAwN2IxY2UwYjg0NDM2Y2NhYmQwMzU2ODg4NmM4NzY0OTM2OTcwNzVkLi4xNjdlZmJhODczMzBh
ZDEwNjUwZmQyODM0NmJkNjVlN2IxNWM1Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDIyLTAyLTE1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQU5HTEUgaW5jbHVkZXMgaW50ZXJmZXJlcyB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0
aGUgYXR0ZW1wdCB0byBvdmVycmlkZSBzeXN0ZW0gaGVhZGVyIGxvZ2ljIHdpdGggV2ViS2l0Cisg
ICAgICAgIEFOR0xFIGltcGxlbWVudGF0aW9uLiBUaGV5IGFyZSBkaWZmZXJlbnQgaW1wbGVtZW50
YXRpb25zCisgICAgICAgIGFuZCBvbmUgY2Fubm90IHJlcGxhY2UgdGhlIG90aGVyLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAg
ICAgICAqIFBsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmg6CisgICAgICAgICogUGxhdGZvcm0v
c3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaDoKKwogMjAyMi0wMi0xNSAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdQVVAgV2ViR0w6IFdU
Rjo6UmVmQ291bnRlZEJhc2U6OmFwcGx5UmVmRGVyZWZUaHJlYWRpbmdDaGVjaygpIGZhaWxzIGR1
ZSB0byBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZm
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ODAzOTQ4NThhMTViOGEyNTY5NmFh
ZWM3YzhkOTRhYTczYWQ3MjIzLi43NDc5ZTA0ODcxZmJhNTAzY2M0M2JhZjk5MjI4NmYwMTAzYWI3
ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjIt
MDItMTUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBB
TkdMRSBpbmNsdWRlcyBpbnRlcmZlcmVzIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBh
dHRlbXB0IHRvIG92ZXJyaWRlIHN5c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAg
ICAgQU5HTEUgaW1wbGVtZW50YXRpb24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlv
bnMKKyAgICAgICAgYW5kIG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKwogMjAyMi0wMi0xMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBidWlsZCB3aXRo
IHRoZSBsYXRlc3QgaU9TIFNESy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWQ2ODAxNTBlYmY5
YzExMTliYzk1ZTYxMTc3MGVlMzM1MzAyZDAyZi4uNWU0OGU0MWFjZmZkYzVkM2U1NmI5ODg1ZDMw
MjYwNmQ1NGJhMTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5MDksNyArMTkwOSw2IEBA
IGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwog
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCiAg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nLmNwcAogICAgICAgICApCiAKICAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJS
QVJJRVMgQU5HTEU6OkdMRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcAppbmRleCA3M2NlMmMyMGI2Mjk2YzFmNDg4
OWQ1OWUzYjhmN2NiY2JhNWM0ZjAyLi45MmUxYTE4ZWE3ODk3ZjZhNDIyZDJmNDk3Y2I2OTQxMmYw
MTU5MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3Bh
cXVlRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDx3dGYv
U2NvcGUuaD4KIAogI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCi0jaW5jbHVk
ZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmgKaW5kZXggZDFiOTQ2NTJlZmNkMDk4NjM2NGNlNTg3MTFiNTIxZDg3M2NhMjk1Mi4uOTEy
NjZmMTdkNDNmMTNkOGFkY2NhNjY3MTFjM2Y3NjA4MmY0MGVkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTQwLDEwICs0MCw2IEBA
CiAKICNpZiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmlu
ZSBDR0NPTE9SVEFHR0VEUE9JTlRFUl9IXwotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNk
ZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5
X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9DR0NvbnRleHREZWxlZ2F0ZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaAppbmRleCBmYjYwMDBkNzNlOTE2NTc5OThkOGRmY2Y5
NTZhNTNjNDJkYmQ1ZmQ4Li5jYzNhZWM0YTBhMDM4OTY2YzFlY2Y4ZTE1NGExOWY3MTJjNDJiY2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCkBA
IC0yNyw2ICsyNywxMCBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2lmIEhB
VkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCisjZGVmaW5lIENHQ09MT1JU
QUdHRURQT0lOVEVSX0hfCisjZW5kaWYKKwogI2luY2x1ZGUgPENhcmJvbi9DYXJib25Qcml2Lmg+
CiAKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBjN2EyZGJkYWEwZTQwZGVjZWMw
Mjg0NzY5NDE0OTYyYTBmZmNlNWE1Li41NDAwMDU2YzBkZDI3NjdmZTI2ODc1MmYwMWI0OTMxOTk4
MTQ3Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3NSw3ICszNzUsNiBAQCBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9TdWJp
bWFnZUNhY2hlV2l0aFRpbWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRp
b25NYXRyaXhDRy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAotcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0NvbG9yQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zsb2F0UmVjdENv
Y29hLm1tCkBAIC0zODYsNyArMzg1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERl
c2NyaXB0aW9uQ29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3Bl
Y2lmaWNhdGlvbkNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRm
b3JtRGF0YUNvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRD
b2NvYS5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9IRVZDVXRpbGl0aWVzQ29jb2EubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtNDEyLDcgKzQxMCw2IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFn
ZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5z
ZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRl
ckltYWdlQ29yZUltYWdlLm1tCkBAIC02MTQsOCArNjExLDEwIEBAIHJlbmRlcmluZy9UZXh0QXV0
b1NpemluZy5jcHAKIHRlc3RpbmcvY29jb2EvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3Zl
cmxheS5tbQogCiAvLyBUaGUgZm9sbG93aW5nIGZpbGVzIGFyZW4ndCB1bmlmaWVkIHdpdGggb3Ro
ZXJzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIG1lcmdlZAotLy8gd2l0aCBmaWxlcyB0aGF0
IHVzZSB0aGUgc3lzdGVtIE9wZW5HTC4KKy8vIHdpdGggZmlsZXMgdGhhdCBpbmNsdWRlIHN5c3Rl
bSBoZWFkZXJzIHRoYXQgaW5jbHVkZSBzeXN0ZW0gT3BlbkdMIGhlYWRlcnMuCiAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQotcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKK3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIEBuby11bmlmeQor
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBAbm8tdW5p
ZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNzI4YzEzZDI2YjI1Y2I3YjVlOGY0Y2EwNzg1NGE4YWVmODE3MzRmNy4uNjY4
M2MxMGMzOTFmZTI0MTdiZTY1ZTU5OTM4ZDEwZGY5NDc5NzMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE5MCw4ICsyMTkw
LDYgQEAKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNE
MzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0
RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEw
MEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwICovOyB9OwotCQk2RTcyRjU0RjIyOURDRDEzMDBCM0UxNTEgLyogVGVt
cG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFMjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNl
dHRpbmcuY3BwICovOyB9OwotCQk2RTcyRjU1MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RTI5MDg2MzIyOURCOTcwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgg
Ki87IH07CiAJCTZFODRFOUUxMTc2NjhCRjEwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU4NEU5REYxNzY2OEJB
RDAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkU4QUNERUQyMzM0NUNCQzAwMjRBQUY1IC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFOEFDREVCMjMzNDVDQUYwMDI0QUFGNSAvKiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlRVRDLmggKi87IH07CiAJCTZFQkYwRTQ5MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJl
RmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
QkYwRTQ2MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKQEAgLTI0
MTgsNiArMjQxNiwxMCBAQAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEw
MjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyog
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRl
bnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
RERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y3QTI3QkI4NkFCMDA3
QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFw
aGljc0NvbnRleHRHTENvY29hLm1tICovOyB9OworCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMg
LyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRp
ZXNDb2NvYS5jcHAgKi87IH07CisJCTdCRTM3RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0
aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9Owor
CQk3QkUzN0Y3RTI3QkI4NkRCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlB
MjU0OTcyMDAwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwICovOyB9Owog
CQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkz
NkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3
NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3
NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0
IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwODc2LDggKzEwODc4
LDYgQEAKIAkJNkUyNDJCMjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjQyQjJBMjMzNTkzRDgw
MDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjkwODYxMjI5REI5
NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFy
eUFOR0xFU2V0dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3Jh
cnlBTkdMRVNldHRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYx
NDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAw
MEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMTBFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDQxMSw4ICsyNDQxMSw2IEBACiAJCQkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xF
VXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwICovLAogCQkJCTdCOTVDRkVDMjc1NEZGN0MwMDAwNjBDRSAvKiBH
cmFwaGljc0NvbnRleHRHTEFOR0xFLmggKi8sCi0JCQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUy
IC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi8sCi0JCQkJNkUyOTA4NjMyMjlEQjk3MDAw
MDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBh
bmdsZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTkxNCwxMCArMjU5MTIsMTAg
QEAKIAkJCQkzMTQ4NzdFMDFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmNwcCAq
LywKIAkJCQkzMTQ4NzdFMTFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmggKi8s
CiAJCQkJMzE0ODc3RDkxRkFBODcwNjAwQzA1NzU5IC8qIE9mZnNjcmVlbkNhbnZhcy5pZGwgKi8s
Ci0JCQkJNDk0RUJEMDgyN0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKLQkJ
CQk0OTRFQkQwNjI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQlGNTVC
M0Q5NTEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDk2MTI1MUYxMkQwMDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5oICovLAorCQkJCTQ5
NEVCRDA4MjdBQTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5jcHAgKi8sCisJCQkJNDk0RUJE
MDYyN0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmggKi8sCiAJCQkJOTcyMDVBQjkxMjM5
MjkyNzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQk5NzIwNUFCQTEyMzky
OTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCAqLywKIAkJCQlDREVFMzkzNjE3OTc0MjU5
MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8sCkBAIC0zNzY3OSw3ICszNzY3Nyw2
IEBACiAJCQkJRjU1QjNERDYxMjUxRjEyRDAwM0VGMjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9u
ZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBD
QzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNkU3MkY1NTEyMjlEQ0QxQTAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5
LmggaW4gSGVhZGVycyAqLywKQEAgLTM4Njc3LDYgKzM4Njc0LDggQEAKIAkJCWZpbGVzID0gKAog
CQkJCUE5Nzg3Q0I0MUY1RjVDNjYwMEM1NTFDNiAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzFGN0I3MzEyNDQ4RjJBQzAwMTI0NTU3IC8qIEFHWENv
bXBpbGVyU2VydmljZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QkUzN0Y3RDI3QkI4NkNEMDA3
QTZDRDMgLyogQU5HTEVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0My
N0JCODZCODAwN0E2Q0QzIC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJ
T1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBNzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1
ZGlvU2Vzc2lvbklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEOEE3QkJCMTk3NzM1RkUwMENC
RDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLApAQCAt
Mzg3MDAsNiArMzg2OTksOCBAQAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1l
cGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThF
QTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk2
RTcyRjU0RTIyOURDRDEwMDBCM0UxNTEgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTdCRTM3RjdFMjdCQjg2REIwMDdBNkNE
MyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0Mz
RTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBOEQwNkIzQTBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQzkwMEMzMTk0M0MwRkMwMDg2MjVCNSAvKiBIVFRQSGVhZGVyTmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zODc2MCw3ICszODc2MSw2IEBACiAJCQkJQ0RDOEI1QUExODA0
N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTgzM0M3Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNkU3MkY1NEYyMjlEQ0QxMzAwQjNFMTUxIC8qIFRlbXBvcmFy
eUFOR0xFU2V0dGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTg4RUUyNjI0MTQ0NjdCMDA3
RjI5QzIgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFERjZEODAwQjkyQTE4RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTM4RUM4MDMxRjk2QUY4MTAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5oCmluZGV4IGQ3ODU3NmEyYjZkZjcxNTgxNjhkYzMzZjVjNzMyYWVlZWRlNTc3NWMuLjk0MDMx
MDZmNTVlNzRkMzIzOTc2MzY5NGFhYTNhNjAyMjNhNmYyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYg
dWludDY0X3QgR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2Rldmlj
ZSBjYWlyb19kZXZpY2VfdDsKICNlbmRpZgogCi10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0w7Cit0eXBlZGVmIHZvaWQqIEdDR0xDb250ZXh0OwogCiAvLyBYMTEgaGVhZGVy
cyBkZWZpbmUgYSBidW5jaCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5n
IHdpdGggV2ViQ29yZSBhbmQgV1RGIGVudW0gdmFsdWVzLgogLy8gQXMgYSB3b3JrYXJvdW5kLCB3
ZSBleHBsaWNpdGx5IHVuZGVmIHRoZW0gaGVyZS4KQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgPSAwOwogCi0gICAgdmly
dHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVk
OgogICAgIEdMQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDFjY2VlYjUz
NzM1MzhkNTM1MjNmNDlkY2UyYTA2ODJlNDdkZmM4ZGQuLjNhY2JjNzU3OGI5YjgyNzgzMzU0MzNl
MTVlMDJmNjAxMjRmM2FmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNDUsMTEgKzQ1LDYgQEAKICNlbmRpZgog
I2VuZGlmCiAKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBF
eHRlbnNpb25zR0w7CiBjbGFzcyBIb3N0V2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wuaAppbmRleCAzMzY1NmExNTYxM2RmNjMy
MjY1YTkzMzI4ODJiZDExMWE2ODBkZjk1Li4wMDM5NjBkN2RlNDY5OTI4NWZjMDkwZTU3MzVhM2Jm
ZTkyM2RlNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc1R5cGVzR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc1R5cGVzR0wuaApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIGZsb2F0IEdDR0xmbG9h
dDsKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR0NHTGhhbGZmbG9hdDsKIHR5cGVkZWYgZmxvYXQg
R0NHTGNsYW1wZjsKIHR5cGVkZWYgY2hhciBHQ0dMY2hhcjsKLXR5cGVkZWYgc3RydWN0IF9fR0xz
eW5jKiBHQ0dMc3luYzsKK3R5cGVkZWYgdm9pZCogR0NHTHN5bmM7CiB0eXBlZGVmIHZvaWQgR0NH
THZvaWQ7CiAKIC8vIFRoZXNlIEdDR0wgdHlwZXMgZG8gbm90IHN0cmljdGx5IG1hdGNoIHRoZSBH
TCB0eXBlcyBhcyBkZWZpbmVkIGluIE9wZW5HTCBFUyAyLjAKQEAgLTU5LDExICs1OSwxOCBAQCB0
eXBlZGVmIGludDY0X3QgR0NHTGludDY0OwogdHlwZWRlZiB1aW50NjRfdCBHQ0dMdWludDY0Owog
CiB0eXBlZGVmIEdDR0x1aW50IFBsYXRmb3JtR0xPYmplY3Q7Cit1c2luZyBHQ0dMRGlzcGxheSA9
IHZvaWQqOwordXNpbmcgR0NHTENvbmZpZyA9IHZvaWQqOwordXNpbmcgR0NHTENvbnRleHQgPSB2
b2lkKjsKIAogI2lmICFQTEFURk9STShDT0NPQSkKIHR5cGVkZWYgdW5zaWduZWQgR0x1aW50Owog
I2VuZGlmCiAKK3VzaW5nIEdDR0xOYXRpdmVEaXNwbGF5VHlwZSA9IGludDsKKworaW5saW5lIGNv
bnN0ZXhwciBHQ0dMTmF0aXZlRGlzcGxheVR5cGUgZ2NHTERlZmF1bHREaXNwbGF5ID0gMDsKKwog
aW5saW5lIGNvbnN0ZXhwciBzaXplX3QgZ2NHTFNwYW5EeW5hbWljRXh0ZW50ID0gc3RkOjpudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IEV4dGVudCA9IGdjR0xTcGFuRHluYW1pY0V4dGVudD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcAppbmRleCA3
YzVmOGI1ODc3MzQ5MDAwMTQ1Mzg5NGEwMTNmMjI3MWM5NzVhY2MzLi42NTk1NGRkMDZlNGQ3N2Qx
MjE4ZTBmN2E1Mjc4OWI0Y2IzMDllNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkg
JiYgVVNFKEFOR0xFKQorI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTM3LDYgKzM4LDE0MCBAQCBib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJs
ZSgpCiB9CiAjZW5kaWYKIAorU2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0
b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVudW0gYmluZGluZ1BvaW50UXVlcnksIEdDR0xlbnVtIGJp
bmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24pCit7CisgICAgQVNTRVJUKGJpbmRpbmdQb2ludCAh
PSBzdGF0aWNfY2FzdDxHQ0dMZW51bT4oMHUpKTsKKyAgICBpZiAoY29uZGl0aW9uKSB7CisgICAg
ICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50OworICAgICAgICBHTF9HZXRJbnRlZ2Vy
dihiaW5kaW5nUG9pbnRRdWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHQ0dMaW50Kj4oJm1fYmluZGlu
Z1ZhbHVlKSk7CisgICAgfQorfQorCitTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmc6On5TY29w
ZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAg
ICAgICAgR0xfQmluZFRleHR1cmUobV9iaW5kaW5nUG9pbnQsIG1fYmluZGluZ1ZhbHVlKTsKK30K
KworU2NvcGVkQnVmZmVyQmluZGluZzo6U2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51bSBiaW5k
aW5nUG9pbnQsIEdDR0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24pCit7CisgICAg
aWYgKCFjb25kaXRpb24pCisgICAgICAgIHJldHVybjsKKyAgICBHTF9HZXRJbnRlZ2VydihxdWVy
eShiaW5kaW5nUG9pbnQpLCByZWludGVycHJldF9jYXN0PEdDR0xpbnQqPigmbV9iaW5kaW5nVmFs
dWUpKTsKKyAgICBpZiAoYmluZGluZ1ZhbHVlID09IG1fYmluZGluZ1ZhbHVlKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7CisgICAgR0xfQmluZEJ1
ZmZlcihtX2JpbmRpbmdQb2ludCwgYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVyQmlu
ZGluZzo6flNjb3BlZEJ1ZmZlckJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkK
KyAgICAgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOwor
fQorCit2b2lkIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nOjpiaW5kRnJhbWVi
dWZmZXIoR0NHTHVpbnQgYmluZGluZ1ZhbHVlKQoreworICAgIGlmICghbV9iaW5kaW5nQ2hhbmdl
ZCAmJiBtX2JpbmRpbmdWYWx1ZSA9PSBiaW5kaW5nVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAg
ICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsK
KyAgICBtX2JpbmRpbmdDaGFuZ2VkID0gbV9iaW5kaW5nVmFsdWUgIT0gYmluZGluZ1ZhbHVlOwor
fQorCitTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVS
ZWFkRnJhbWVidWZmZXJCaW5kaW5nKCkKK3sKKyAgICBpZiAobV9iaW5kaW5nQ2hhbmdlZCkKKyAg
ICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJnZXQsIG1fYmluZGluZ1Zh
bHVlKTsKK30KKworU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9k
ZShHQ0dMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbikKKyAgICA6IG1fbmFtZShjb25kaXRpb24g
PyBuYW1lIDogMCkKK3sKKyAgICBpZiAobV9uYW1lKQorICAgICAgICBHTF9HZXRJbnRlZ2Vydiht
X25hbWUsICZtX29yaWdpbmFsVmFsdWUpOworfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjpT
Y29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdDR0xlbnVtIG5hbWUsIEdDR0xpbnQgdmFsdWUsIGJvb2wg
Y29uZGl0aW9uKQorICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQoreworICAgIGlm
IChtX25hbWUpIHsKKyAgICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9vcmlnaW5hbFZh
bHVlKTsKKyAgICAgICAgcGl4ZWxTdG9yZSh2YWx1ZSk7CisgICAgfQorfQorCitTY29wZWRQaXhl
bFN0b3JhZ2VNb2RlOjp+U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpCit7CisgICAgaWYgKG1fbmFt
ZSAmJiBtX3ZhbHVlQ2hhbmdlZCkKKyAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCBtX29y
aWdpbmFsVmFsdWUpOworfQorCit2b2lkIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6OnBpeGVsU3Rv
cmUoR0NHTGludCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQobV9uYW1lKTsKKyAgICBpZiAoIW1fdmFs
dWVDaGFuZ2VkICYmIG1fb3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEdMX1BpeGVsU3RvcmVpKG1fbmFtZSwgdmFsdWUpOworICAgIG1fdmFsdWVDaGFuZ2VkID0g
bV9vcmlnaW5hbFZhbHVlICE9IHZhbHVlOworfQorCitTY29wZWRUZXh0dXJlOjpTY29wZWRUZXh0
dXJlKCkKK3sKKyAgICBHTF9HZW5UZXh0dXJlcygxLCAmbV9vYmplY3QpOworfQorCitTY29wZWRU
ZXh0dXJlOjp+U2NvcGVkVGV4dHVyZSgpCit7CisgICAgR0xfRGVsZXRlVGV4dHVyZXMoMSwgJm1f
b2JqZWN0KTsKK30KKworU2NvcGVkRnJhbWVidWZmZXI6OlNjb3BlZEZyYW1lYnVmZmVyKCkKK3sK
KyAgICBHTF9HZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKK30KKworU2NvcGVkRnJhbWVi
dWZmZXI6On5TY29wZWRGcmFtZWJ1ZmZlcigpCit7CisgICAgR0xfRGVsZXRlRnJhbWVidWZmZXJz
KDEsICZtX29iamVjdCk7Cit9CisKK3ZvaWQgU2NvcGVkR0xGZW5jZTo6cmVzZXQoKQoreworICAg
IGlmIChtX29iamVjdCkgeworICAgICAgICBHTF9EZWxldGVTeW5jKHN0YXRpY19jYXN0PEdMc3lu
Yz4obV9vYmplY3QpKTsKKyAgICAgICAgbV9vYmplY3QgPSB7IH07CisgICAgfQorfQorCit2b2lk
IFNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYygpCit7CisgICAgcmVzZXQoKTsKKyAgICBtX29iamVj
dCA9IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7Cit9CisK
KworU2NvcGVkR0xDYXBhYmlsaXR5OjpTY29wZWRHTENhcGFiaWxpdHkoR0NHTGVudW0gY2FwYWJp
bGl0eSwgYm9vbCBlbmFibGUpCisgICAgOiBtX2NhcGFiaWxpdHkoY2FwYWJpbGl0eSkKKyAgICAs
IG1fb3JpZ2luYWwoR0xfSXNFbmFibGVkKG1fY2FwYWJpbGl0eSkgPT0gZW5hYmxlID8gc3RkOjpu
dWxsb3B0IDogc3RkOjpvcHRpb25hbDxib29sPighZW5hYmxlKSkKK3sKKyAgICBpZiAoIW1fb3Jp
Z2luYWwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBHTF9FbmFi
bGUobV9jYXBhYmlsaXR5KTsKKyAgICBlbHNlCisgICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmls
aXR5KTsKK30KKworU2NvcGVkR0xDYXBhYmlsaXR5Ojp+U2NvcGVkR0xDYXBhYmlsaXR5KCkKK3sK
KyAgICBpZiAoIW1fb3JpZ2luYWwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKm1fb3JpZ2lu
YWwpCisgICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOworICAgIGVsc2UKKyAgICAgICAg
R0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmgK
aW5kZXggNTE1YjlkOTExYTNlZGI3MjEzMzU2MjA1ZjY1MzViMjM2NzIxMmZiZi4uNzAyY2MxZWVh
ODE0YzM3OTY2ZmY2MzJmNmVhM2FkNWJlZTI5ODM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGllcy5oCkBAIC0yNywx
ODUgKzI3LDEyNSBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCiAKLSNpbmNs
dWRlICJBTkdMRUhlYWRlcnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjb3Bl
ZFJlc3RvcmVUZXh0dXJlQmluZGluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVk
UmVzdG9yZVRleHR1cmVCaW5kaW5nKTsKLXB1YmxpYzoKLSAgICBTY29wZWRSZXN0b3JlVGV4dHVy
ZUJpbmRpbmcoR0xlbnVtIGJpbmRpbmdQb2ludFF1ZXJ5LCBHTGVudW0gYmluZGluZ1BvaW50LCBi
b29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgewotICAgICAgICBBU1NFUlQoYmluZGluZ1BvaW50
ICE9IHN0YXRpY19jYXN0PEdMZW51bT4oMHUpKTsKLSAgICAgICAgaWYgKGNvbmRpdGlvbikgewot
ICAgICAgICAgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7Ci0gICAgICAgICAgICBH
TF9HZXRJbnRlZ2VydihiaW5kaW5nUG9pbnRRdWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHTGludCo+
KCZtX2JpbmRpbmdWYWx1ZSkpOwotICAgICAgICB9Ci0gICAgfQogCi0gICAgflNjb3BlZFJlc3Rv
cmVUZXh0dXJlQmluZGluZygpCi0gICAgewotICAgICAgICBpZiAobV9iaW5kaW5nUG9pbnQpCi0g
ICAgICAgICAgICBHTF9CaW5kVGV4dHVyZShtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUp
OwotICAgIH0KK3B1YmxpYzoKKyAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVu
dW0gYmluZGluZ1BvaW50UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9vbCBjb25kaXRp
b24gPSB0cnVlKTsKKyAgICB+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKCk7CiAKIHByaXZh
dGU6Ci0gICAgR0xlbnVtIG1fYmluZGluZ1BvaW50IHsgMCB9OwotICAgIEdMdWludCBtX2JpbmRp
bmdWYWx1ZSB7IDB1IH07CisgICAgR0NHTGVudW0gbV9iaW5kaW5nUG9pbnQgeyAwIH07CisgICAg
R0NHTHVpbnQgbV9iaW5kaW5nVmFsdWUgeyAwdSB9OwogfTsKIAotCiBjbGFzcyBTY29wZWRCdWZm
ZXJCaW5kaW5nIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRCdWZmZXJCaW5kaW5n
KTsKLXB1YmxpYzoKLSAgICBTY29wZWRCdWZmZXJCaW5kaW5nKEdMZW51bSBiaW5kaW5nUG9pbnQs
IEdMdWludCBiaW5kaW5nVmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSkKLSAgICB7Ci0gICAg
ICAgIGlmICghY29uZGl0aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9HZXRJ
bnRlZ2VydihxdWVyeShiaW5kaW5nUG9pbnQpLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJm1f
YmluZGluZ1ZhbHVlKSk7Ci0gICAgICAgIGlmIChiaW5kaW5nVmFsdWUgPT0gbV9iaW5kaW5nVmFs
dWUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGlu
Z1BvaW50OwotICAgICAgICBHTF9CaW5kQnVmZmVyKG1fYmluZGluZ1BvaW50LCBiaW5kaW5nVmFs
dWUpOwotICAgIH0KIAotICAgIH5TY29wZWRCdWZmZXJCaW5kaW5nKCkKLSAgICB7Ci0gICAgICAg
IGlmIChtX2JpbmRpbmdQb2ludCkKLSAgICAgICAgICAgIEdMX0JpbmRCdWZmZXIobV9iaW5kaW5n
UG9pbnQsIG1fYmluZGluZ1ZhbHVlKTsKLSAgICB9CitwdWJsaWM6CisgICAgU2NvcGVkQnVmZmVy
QmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIEdDR0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9v
bCBjb25kaXRpb24gPSB0cnVlKTsKKyAgICB+U2NvcGVkQnVmZmVyQmluZGluZygpOwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdGV4cHIgR0xlbnVtIHF1ZXJ5KEdMZW51bSBiaW5kaW5nUG9p
bnQpCisgICAgc3RhdGljIGNvbnN0ZXhwciBHQ0dMZW51bSBxdWVyeShHQ0dMZW51bSBiaW5kaW5n
UG9pbnQpCiAgICAgewotICAgICAgICBpZiAoYmluZGluZ1BvaW50ID09IEdMX1BJWEVMX1BBQ0tf
QlVGRkVSKQotICAgICAgICAgICAgcmV0dXJuIEdMX1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc7
Ci0gICAgICAgIEFTU0VSVChiaW5kaW5nUG9pbnQgPT0gR0xfUElYRUxfVU5QQUNLX0JVRkZFUik7
Ci0gICAgICAgIHJldHVybiBHTF9QSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc7CisgICAgICAg
IGlmIChiaW5kaW5nUG9pbnQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlBJWEVMX1BBQ0tfQlVGRkVS
KQorICAgICAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9QQUNLX0JVRkZF
Ul9CSU5ESU5HOworICAgICAgICBBU1NFUlQoYmluZGluZ1BvaW50ID09IEdyYXBoaWNzQ29udGV4
dEdMOjpQSVhFTF9VTlBBQ0tfQlVGRkVSKTsKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEdMOjpQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc7CiAgICAgfQotICAgIEdMaW50IG1fYmlu
ZGluZ1BvaW50IHsgMCB9OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CisgICAg
R0NHTGludCBtX2JpbmRpbmdQb2ludCB7IDAgfTsKKyAgICBHQ0dMdWludCBtX2JpbmRpbmdWYWx1
ZSB7IDB1IH07CiB9OworCiBjbGFzcyBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGlu
ZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZl
ckJpbmRpbmcpOworCiBwdWJsaWM6Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJp
bmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSkKLSAgICAgICAgOiBt
X2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8gR0xfUkVBRF9GUkFNRUJVRkZFUiA6IEdM
X0ZSQU1FQlVGRkVSKQorICAgIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJv
b2wgaXNGb3JXZWJHTDIsIEdDR0x1aW50IHJlc3RvcmVWYWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1l
YnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8gR3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVC
VUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5k
aW5nVmFsdWUocmVzdG9yZVZhbHVlKQogICAgIHsKICAgICB9Ci0gICAgU2NvcGVkUmVzdG9yZVJl
YWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1
ZSwgR0x1aW50IHZhbHVlKQotICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJH
TDIgPyBHTF9SRUFEX0ZSQU1FQlVGRkVSIDogR0xfRlJBTUVCVUZGRVIpCisgICAgU2NvcGVkUmVz
dG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0NHTHVpbnQgcmVz
dG9yZVZhbHVlLCBHQ0dMdWludCB2YWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0
KGlzRm9yV2ViR0wyID8gR3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVz
dG9yZVZhbHVlKQogICAgIHsKICAgICAgICAgYmluZEZyYW1lYnVmZmVyKHZhbHVlKTsKICAgICB9
CisgICAgflNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCk7CiAgICAgdm9pZCBt
YXJrQmluZGluZ0NoYW5nZWQoKQogICAgIHsKICAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9IHRy
dWU7CiAgICAgfQotICAgIHZvaWQgYmluZEZyYW1lYnVmZmVyKEdMdWludCBiaW5kaW5nVmFsdWUp
Ci0gICAgewotICAgICAgICBpZiAoIW1fYmluZGluZ0NoYW5nZWQgJiYgbV9iaW5kaW5nVmFsdWUg
PT0gYmluZGluZ1ZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9CaW5kRnJh
bWVidWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsKLSAgICAgICAgbV9i
aW5kaW5nQ2hhbmdlZCA9IG1fYmluZGluZ1ZhbHVlICE9IGJpbmRpbmdWYWx1ZTsKLSAgICB9Ci0g
ICAgR0x1aW50IGZyYW1lYnVmZmVyVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZWJ1ZmZl
clRhcmdldDsgfQotICAgIH5TY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZygpCi0g
ICAgewotICAgICAgICBpZiAobV9iaW5kaW5nQ2hhbmdlZCkKLSAgICAgICAgICAgIEdMX0JpbmRG
cmFtZWJ1ZmZlcihtX2ZyYW1lYnVmZmVyVGFyZ2V0LCBtX2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQor
ICAgIHZvaWQgYmluZEZyYW1lYnVmZmVyKEdDR0x1aW50IGJpbmRpbmdWYWx1ZSk7CisgICAgR0NH
THVpbnQgZnJhbWVidWZmZXJUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lYnVmZmVyVGFy
Z2V0OyB9CisKIHByaXZhdGU6Ci0gICAgY29uc3QgR0xlbnVtIG1fZnJhbWVidWZmZXJUYXJnZXQ7
Ci0gICAgR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBt
X2ZyYW1lYnVmZmVyVGFyZ2V0OworICAgIEdDR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsK
ICAgICBib29sIG1fYmluZGluZ0NoYW5nZWQgeyBmYWxzZSB9OwogfTsKIAogY2xhc3MgU2NvcGVk
UGl4ZWxTdG9yYWdlTW9kZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZSk7CisKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTY29wZWRQaXhlbFN0b3JhZ2VN
b2RlKEdMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgICAgIDogbV9uYW1l
KGNvbmRpdGlvbiA/IG5hbWUgOiAwKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSkKLSAgICAg
ICAgICAgIEdMX0dldEludGVnZXJ2KG1fbmFtZSwgJm1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQot
ICAgIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0xlbnVtIG5hbWUsIEdMaW50IHZhbHVlLCBib29s
IGNvbmRpdGlvbiA9IHRydWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAw
KQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSkgewotICAgICAgICAgICAgR0xfR2V0SW50ZWdl
cnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKLSAgICAgICAgICAgIHBpeGVsU3RvcmUodmFs
dWUpOwotICAgICAgICB9Ci0gICAgfQotICAgIH5TY29wZWRQaXhlbFN0b3JhZ2VNb2RlKCkKLSAg
ICB7Ci0gICAgICAgIGlmIChtX25hbWUgJiYgbV92YWx1ZUNoYW5nZWQpCi0gICAgICAgICAgICBH
TF9QaXhlbFN0b3JlaShtX25hbWUsIG1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIHZvaWQg
cGl4ZWxTdG9yZShHTGludCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX25hbWUpOwot
ICAgICAgICBpZiAoIW1fdmFsdWVDaGFuZ2VkICYmIG1fb3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCB2YWx1
ZSk7Ci0gICAgICAgIG1fdmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVlICE9IHZhbHVlOwot
ICAgIH0KLSAgICBvcGVyYXRvciBHTGludCgpIGNvbnN0CisgICAgZXhwbGljaXQgU2NvcGVkUGl4
ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAg
IFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0NHTGVudW0gbmFtZSwgR0NHTGludCB2YWx1ZSwgYm9v
bCBjb25kaXRpb24gPSB0cnVlKTsKKyAgICB+U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpOworICAg
IHZvaWQgcGl4ZWxTdG9yZShHQ0dMaW50IHZhbHVlKTsKKyAgICBvcGVyYXRvciBHQ0dMaW50KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX25hbWUgJiYgIW1fdmFsdWVDaGFuZ2VkKTsK
ICAgICAgICAgcmV0dXJuIG1fb3JpZ2luYWxWYWx1ZTsKICAgICB9CisKIHByaXZhdGU6Ci0gICAg
Y29uc3QgR0xlbnVtIG1fbmFtZTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX25hbWU7CiAgICAgYm9v
bCBtX3ZhbHVlQ2hhbmdlZCB7IGZhbHNlIH07Ci0gICAgR0xpbnQgbV9vcmlnaW5hbFZhbHVlIHsg
MCB9OworICAgIEdDR0xpbnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OwogfTsKIAogY2xhc3MgU2Nv
cGVkVGV4dHVyZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkVGV4dHVyZSk7CisK
IHB1YmxpYzoKLSAgICBTY29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0dlblRleHR1
cmVzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIH5TY29wZWRUZXh0dXJlKCkKLSAgICB7Ci0g
ICAgICAgIEdMX0RlbGV0ZVRleHR1cmVzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIG9wZXJh
dG9yIEdMdWludCgpIGNvbnN0CisgICAgU2NvcGVkVGV4dHVyZSgpOworICAgIH5TY29wZWRUZXh0
dXJlKCk7CisgICAgb3BlcmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fb2JqZWN0OwogICAgIH0KKwogcHJpdmF0ZToKLSAgICBHTHVpbnQgbV9vYmplY3QgeyAw
dSB9OworICAgIEdDR0x1aW50IG1fb2JqZWN0IHsgMHUgfTsKIH07CiAKIGNsYXNzIFNjb3BlZEZy
YW1lYnVmZmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRGcmFtZWJ1ZmZlcik7
CisKIHB1YmxpYzoKLSAgICBTY29wZWRGcmFtZWJ1ZmZlcigpCi0gICAgewotICAgICAgICBHTF9H
ZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKLSAgICB9Ci0gICAgflNjb3BlZEZyYW1lYnVm
ZmVyKCkKLSAgICB7Ci0gICAgICAgIEdMX0RlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9vYmplY3Qp
OwotICAgIH0KLSAgICBvcGVyYXRvciBHTHVpbnQoKSBjb25zdAorICAgIFNjb3BlZEZyYW1lYnVm
ZmVyKCk7CisgICAgflNjb3BlZEZyYW1lYnVmZmVyKCk7CisgICAgb3BlcmF0b3IgR0NHTHVpbnQo
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2JqZWN0OwogICAgIH0KIHByaXZhdGU6
Ci0gICAgR0x1aW50IG1fb2JqZWN0IHsgMCB9OworICAgIEdDR0x1aW50IG1fb2JqZWN0IHsgMCB9
OwogfTsKIAogY2xhc3MgU2NvcGVkR0xGZW5jZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
U2NvcGVkR0xGZW5jZSk7CisKIHB1YmxpYzoKICAgICBTY29wZWRHTEZlbmNlKCkgPSBkZWZhdWx0
OwogICAgIFNjb3BlZEdMRmVuY2UoU2NvcGVkR0xGZW5jZSYmIG90aGVyKQpAQCAtMjIxLDIzICsx
NjEsMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9
Ci0gICAgdm9pZCByZXNldCgpCi0gICAgewotICAgICAgICBpZiAobV9vYmplY3QpIHsKLSAgICAg
ICAgICAgIEdMX0RlbGV0ZVN5bmMobV9vYmplY3QpOwotICAgICAgICAgICAgbV9vYmplY3QgPSB7
IH07Ci0gICAgICAgIH0KLSAgICB9CisgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgYWJhbmRv
bigpIHsgbV9vYmplY3QgPSB7IH07IH0KLSAgICB2b2lkIGZlbmNlU3luYygpCi0gICAgewotICAg
ICAgICByZXNldCgpOwotICAgICAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQ
VV9DT01NQU5EU19DT01QTEVURSwgMCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMc3luYygpIGNv
bnN0IHsgcmV0dXJuIG1fb2JqZWN0OyB9CisgICAgdm9pZCBmZW5jZVN5bmMoKTsKKyAgICBHQ0dM
c3luYyBnZXQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIG9wZXJhdG9yIEdDR0xz
eW5jKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICBvcGVyYXRvciBib29sKCkgY29u
c3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KKworcHJpdmF0ZToKKyAgICBHQ0dMc3luYyBtX29iamVj
dCB7IH07Cit9OworCitjbGFzcyBTY29wZWRHTENhcGFiaWxpdHkgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNjb3BlZEdMQ2FwYWJpbGl0eSk7CitwdWJsaWM6CisgICAgU2NvcGVkR0xDYXBh
YmlsaXR5KEdDR0xlbnVtIGNhcGFiaWxpdHksIGJvb2wgZW5hYmxlKTsKKyAgICB+U2NvcGVkR0xD
YXBhYmlsaXR5KCk7CisKIHByaXZhdGU6Ci0gICAgR0xzeW5jIG1fb2JqZWN0IHsgfTsKKyAgICBj
b25zdCBHQ0dMZW51bSBtX2NhcGFiaWxpdHk7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxib29s
PiBtX29yaWdpbmFsOwogfTsKIAogYm9vbCBwbGF0Zm9ybUlzQU5HTEVBdmFpbGFibGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggYzVjNmJmYTU3NWU5NDk0NjYxMDBl
MTY1MzE4MzI4M2EwOGEwZGI3Yi4uM2JiZmM5Zjc5MGYwY2QwMTI5NzM3ZWI4YmU5ZmRlNzk4YTBk
YmZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJQaXhlbEJ1ZmZlci5oIgotI2luY2x1ZGUgIlRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
IgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CkBAIC0xNjUsOSArMTY0LDkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJlaGF2aW8K
ICAgICAgICAgICAgIEVHTF9NYWtlQ3VycmVudChjdXJyZW50RGlzcGxheSwgRUdMX05PX1NVUkZB
Q0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgICAgIH0KICAgICAgICAg
Y29uc3RleHByIEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5hdGl2ZURpc3BsYXlzW10gPSB7Ci0gICAg
ICAgICAgICBkZWZhdWx0RGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEVHTE5hdGl2
ZURpc3BsYXlUeXBlPihkZWZhdWx0RGlzcGxheSksCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
ICAgICAgICBkZWZhdWx0T3BlbkdMRGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEVH
TE5hdGl2ZURpc3BsYXlUeXBlPihkZWZhdWx0T3BlbkdMRGlzcGxheSksCiAjZW5kaWYKICAgICAg
ICAgfTsKICAgICAgICAgZm9yIChhdXRvIG5hdGl2ZURpc3BsYXkgOiBuYXRpdmVEaXNwbGF5cykg
ewpAQCAtMzIyLDggKzMyMSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6YXR0YWNo
RGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1aW50IGludGVybmFsCiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25z
dCBJbnRSZWN0JiByZWN0KQogewotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWRTY2lz
c29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGlu
ZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmls
aXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CisgICAgU2NvcGVk
R0xDYXBhYmlsaXR5IHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKIAogICAgIEdM
aW50IGJvdW5kRnJhbWVCdWZmZXIgPSAwOwogICAgIEdMaW50IGJvdW5kUmVhZEZyYW1lQnVmZmVy
ID0gMDsKQEAgLTU2Nyw4ICs1NjYsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBy
ZXBhcmVUZXh0dXJlSW1wbCgpCiAjZWxzZQogICAgIGlmIChtX3ByZXNlcnZlRHJhd2luZ0J1ZmZl
clRleHR1cmUpIHsKICAgICAgICAgLy8gQmxpdCBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1
cmUgaW50byBtX3RleHR1cmUuCi0gICAgICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWRT
Y2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwotICAgICAgICBUZW1wb3JhcnlBTkdM
RVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOworICAgICAgICBTY29w
ZWRHTENhcGFiaWxpdHkgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsK
KyAgICAgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZB
TFNFKTsKICAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX0RSQVdfRlJBTUVCVUZGRVJfQU5H
TEUsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyRkJPKTsKICAgICAgICAgR0xfQmluZEZyYW1lYnVm
ZmVyKEdMX1JFQURfRlJBTUVCVUZGRVJfQU5HTEUsIG1fZmJvKTsKICAgICAgICAgR0xfQmxpdEZy
YW1lYnVmZmVyQU5HTEUoMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgMCwg
MCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwg
R0xfTkVBUkVTVCk7CkBAIC02MjEsOCArNjIwLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICBtX2N1cnJlbnRXaWR0aCA9
IHdpZHRoOwogICAgIG1fY3VycmVudEhlaWdodCA9IGhlaWdodDsKIAotICAgIFRlbXBvcmFyeUFO
R0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwotICAg
IFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7
CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBH
TF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZERpdGhlcihHTF9ESVRIRVIs
IEdMX0ZBTFNFKTsKICAgICBTY29wZWRCdWZmZXJCaW5kaW5nIHNjb3BlZFBpeGVsVW5wYWNrQnVm
ZmVyUmVzZXQoR0xfUElYRUxfVU5QQUNLX0JVRkZFUiwgMCwgbV9pc0ZvcldlYkdMMik7CiAKICAg
ICBib29sIG11c3RSZXN0b3JlRkJPID0gcmVzaGFwZUZCT3MoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KSk7CkBAIC0yNzgyLDcgKzI3ODEsNyBAQCBHQ0dMYm9vbGVhbiBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjppc1N5bmMoR0NHTHN5bmMgc3luYykKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgp
KQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7CiAKLSAgICByZXR1cm4gR0xfSXNTeW5jKHN5bmMp
OworICAgIHJldHVybiBHTF9Jc1N5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGVsZXRlU3luYyhHQ0dMc3luYyBzeW5jKQpA
QCAtMjc5MCw3ICsyNzg5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkZWxldGVT
eW5jKEdDR0xzeW5jIHN5bmMpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgR0xfRGVsZXRlU3luYyhzeW5jKTsKKyAgICBHTF9EZWxldGVTeW5j
KHN0YXRpY19jYXN0PEdMc3luYz4oc3luYykpOwogfQogCiBHQ0dMZW51bSBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpjbGllbnRXYWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxh
Z3MsIEdDR0x1aW50NjQgdGltZW91dCkKQEAgLTI3OTgsNyArMjc5Nyw3IEBAIEdDR0xlbnVtIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OmNsaWVudFdhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdDR0xi
aXRmaWVsZCBmbGFnCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0
dXJuIEdMX1dBSVRfRkFJTEVEOwogCi0gICAgcmV0dXJuIEdMX0NsaWVudFdhaXRTeW5jKHN5bmMs
IGZsYWdzLCB0aW1lb3V0KTsKKyAgICByZXR1cm4gR0xfQ2xpZW50V2FpdFN5bmMoc3RhdGljX2Nh
c3Q8R0xzeW5jPihzeW5jKSwgZmxhZ3MsIHRpbWVvdXQpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdDR0xiaXRmaWVsZCBmbGFncywg
R0NHTGludDY0IHRpbWVvdXQpCkBAIC0yODA2LDcgKzI4MDUsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdDR0xiaXRmaWVsZCBmbGFncywg
R0NHTGludAogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEdMX1dhaXRTeW5jKHN5bmMsIGZsYWdzLCB0aW1lb3V0KTsKKyAgICBHTF9XYWl0U3lu
YyhzdGF0aWNfY2FzdDxHTHN5bmM+KHN5bmMpLCBmbGFncywgdGltZW91dCk7CiB9CiAKIEdDR0xp
bnQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2koR0NHTHN5bmMgc3luYywgR0NHTGVu
dW0gcG5hbWUpCkBAIC0yODE1LDcgKzI4MTQsNyBAQCBHQ0dMaW50IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEU6OmdldFN5bmNpKEdDR0xzeW5jIHN5bmMsIEdDR0xlbnVtIHBuYW1lKQogICAgIGlmICgh
bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiB2YWx1ZTsKIAotICAgIEdMX0dl
dFN5bmNpdihzeW5jLCBwbmFtZSwgMSwgbnVsbHB0ciwgJnZhbHVlKTsKKyAgICBHTF9HZXRTeW5j
aXYoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgcG5hbWUsIDEsIG51bGxwdHIsICZ2YWx1ZSk7
CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCkBAIC0yOTc2LDcgKzI5NzUsNyBAQCBib29sIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEU6OndhaXRBbmRVcGRhdGVPbGRlc3RGcmFtZSgpCiAgICAgICAgIC8v
IFRoaXMgbWVhbnMgdGhlIGNyZWF0aW9uIG9mIHRoaXMgZmVuY2UgaGFzIGFscmVhZHkgYmVlbiBm
bHVzaGVkLgogICAgICAgICBmbGFncyA9IDA7CiAjZW5kaWYKLSAgICAgICAgR0xlbnVtIHJlc3Vs
dCA9IEdMX0NsaWVudFdhaXRTeW5jKGZlbmNlLCBmbGFncywgbWF4RnJhbWVEdXJhdGlvbi5uYW5v
c2Vjb25kc0FzPEdMdWludDY0PigpKTsKKyAgICAgICAgR0xlbnVtIHJlc3VsdCA9IEdMX0NsaWVu
dFdhaXRTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oZmVuY2UuZ2V0KCkpLCBmbGFncywgbWF4RnJh
bWVEdXJhdGlvbi5uYW5vc2Vjb25kc0FzPEdMdWludDY0PigpKTsKICAgICAgICAgQVNTRVJUKHJl
c3VsdCAhPSBHTF9XQUlUX0ZBSUxFRCk7CiAgICAgICAgIHN1Y2Nlc3MgPSByZXN1bHQgIT0gR0xf
V0FJVF9GQUlMRUQgJiYgcmVzdWx0ICE9IEdMX1RJTUVPVVRfRVhQSVJFRDsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmgKaW5kZXggMmZmZjc1MGE5YTViMDM1OTEzMDFlNTlmNmRk
ZjVjYjE2NjYzZTZjNS4uODAzMTFmNGM5YzgyODMzZDkyMzgxZWMxNjBhMmRiZjBlNGUwMmZmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApAQCAtNjgsOCArNjgsOCBAQCBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTEFOR0xFIDogcHVibGljIEdyYXBoaWNzQ29u
dGV4dEdMIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHRHTEFOR0xFKCk7
CiAKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXko
KSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29u
ZmlnKCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Cisg
ICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogICAgIEdDR0xlbnVtIGRyYXdp
bmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CiAgICAgc3RhdGljIEdDR0xlbnVtIGRyYXdpbmdCdWZm
ZXJUZXh0dXJlVGFyZ2V0UXVlcnlGb3JEcmF3aW5nVGFyZ2V0KEdDR0xlbnVtIGRyYXdpbmdUYXJn
ZXQpOwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0Rm9y
RHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsKQEAgLTM2Myw5ICszNjMsOSBA
QCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmluZ1Jl
c3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRD
b21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSAgICBjb25zdGV4cHIgc3RhdGljIEVH
TE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHREaXNwbGF5ID0gRUdMX0RFRkFVTFRfRElTUExBWTsK
KyAgICBjb25zdGV4cHIgc3RhdGljIEdDR0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxh
eSA9IGdjR0xEZWZhdWx0RGlzcGxheTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBjb25zdGV4
cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHRPcGVuR0xEaXNwbGF5ID0gRUdM
X0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0xKTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEdD
R0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0T3BlbkdMRGlzcGxheSA9IHN0YXRpY19jYXN0PEdD
R0xOYXRpdmVEaXNwbGF5VHlwZT4oLTEpOwogICAgIHN0YXRpY19hc3NlcnQoZGVmYXVsdERpc3Bs
YXkgIT0gZGVmYXVsdE9wZW5HTERpc3BsYXkpOwogI2VuZGlmCiAKQEAgLTQwNiw3ICs0MDYsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KGNv
bnN0IEludFJlY3QmID0gSW50UmVjdCgpKTsKICAgICB2b2lkIGF0dGFjaERlcHRoQW5kU3RlbmNp
bEJ1ZmZlcklmTmVlZGVkKEdDR0x1aW50IGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCBpbnQg
d2lkdGgsIGludCBoZWlnaHQpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29s
IG1ha2VDdXJyZW50KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5LCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMKTsKKyAgICBzdGF0aWMgYm9vbCBtYWtlQ3VycmVudChHQ0dMRGlzcGxh
eSwgR0NHTENvbnRleHQpOwogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIHJlc2hhcGVEaXNwbGF5
QnVmZmVyQmFja2luZygpID0gMDsKIApAQCAtNDM5LDcgKzQzOSw3IEBAIHByb3RlY3RlZDoKICAg
ICAvLyBBdHRhY2hlcyBtX3RleHR1cmUgd2hlbiBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1
cmUgaXMgbm9uLXplcm8uCiAgICAgR0NHTHVpbnQgbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJGQk8g
eyAwIH07CiAgICAgLy8gUXVlcmllZCBhdCBkaXNwbGF5IHN0YXJ0dXAuCi0gICAgRUdMaW50IG1f
ZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQgeyAtMSB9OworICAgIEdDR0xpbnQgbV9kcmF3aW5n
QnVmZmVyVGV4dHVyZVRhcmdldCB7IC0xIH07CiAgICAgLy8gRXJyb3JzIHJhaXNlZCBieSBzeW50
aGVzaXplR0xFcnJvcigpLgogICAgIExpc3RIYXNoU2V0PEdDR0xlbnVtPiBtX3N5bnRoZXRpY0Vy
cm9yczsKICAgICBib29sIG1faXNGb3JXZWJHTDIgeyBmYWxzZSB9OwpAQCAtNDU0LDkgKzQ1NCw5
IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBGSVhNRTogTW92ZSB0
aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwotICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2Jq
IHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2Jq
IHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgbV9jb25m
aWdPYmogeyBudWxscHRyIH07CisgICAgR0NHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0
ciB9OworICAgIEdDR0xDb250ZXh0IG1fY29udGV4dE9iaiB7IG51bGxwdHIgfTsKKyAgICBHQ0dM
Q29uZmlnIG1fY29uZmlnT2JqIHsgbnVsbHB0ciB9OwogICAgIC8vIEJhY2tpbmcgc3RvcmUgZm9y
IHRoZSB0aGUgYnVmZmVyIHdoaWNoIGlzIGV2ZW50dWFsbHkgdXNlZCBmb3IgZGlzcGxheS4KICAg
ICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSBmYWxzZSwgdGhpcyBpcyB0aGUgZHJh
d2luZyBidWZmZXIgYmFja2luZyBzdG9yZS4KICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1
ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4K
QEAgLTQ3Myw3ICs0NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgRUdMSW1hZ2VCYWNraW5n
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIEVH
TEltYWdlQmFja2luZyhQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSk7CisgICAgICAg
IEVHTEltYWdlQmFja2luZyhHQ0dMRGlzcGxheSk7CiAgICAgICAgIH5FR0xJbWFnZUJhY2tpbmco
KTsKIAogICAgICAgICBib29sIHJlc2V0KGludCB3aWR0aCwgaW50IGhlaWdodCwgYm9vbCBoYXNB
bHBoYSk7CkBAIC00ODgsNyArNDg4LDcgQEAgcHJvdGVjdGVkOgogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwogCi0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0R0xEaXNwbGF5IG1fZGlzcGxheTsKKyAgICAgICAgR0NHTERpc3BsYXkgbV9kaXNwbGF5
OwogCiAgICAgICAgIGdibV9ibyogbV9CTyB7IG51bGxwdHIgfTsKICAgICAgICAgaW50IG1fRkQg
eyAtMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM5Y2U1YjFjYTdjNmJiYzFjMTU2YmVlNGU2ZmU5OTY5MmE0MGU2MDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCi0jaW5jbHVkZSAiVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nLmgiCi0KLSNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1UZW1wb3JhcnlBTkdMRVNldHRpbmc6OlRlbXBvcmFyeUFOR0xFU2V0dGluZyhHTGVu
dW0gY2FwYWJpbGl0eSwgR0xlbnVtIHNjb3BlZFN0YXRlKQotICAgIDogbV9jYXBhYmlsaXR5KGNh
cGFiaWxpdHkpCi0gICAgLCBtX3Njb3BlZFN0YXRlKHNjb3BlZFN0YXRlKQotewotICAgIG1fb3Jp
Z2luYWxTdGF0ZSA9IEdMX0lzRW5hYmxlZChtX2NhcGFiaWxpdHkpOwotICAgIGlmIChtX29yaWdp
bmFsU3RhdGUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKEdM
X1RSVUUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgR0xfRW5hYmxlKG1fY2FwYWJpbGl0eSk7
Ci0gICAgZWxzZQotICAgICAgICBHTF9EaXNhYmxlKG1fY2FwYWJpbGl0eSk7Ci19Ci0KLVRlbXBv
cmFyeUFOR0xFU2V0dGluZzo6flRlbXBvcmFyeUFOR0xFU2V0dGluZygpCi17Ci0gICAgaWYgKG1f
b3JpZ2luYWxTdGF0ZSA9PSBtX3Njb3BlZFN0YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoR0xfVFJVRSA9PSBtX29yaWdpbmFsU3RhdGUpCi0gICAgICAgIEdMX0VuYWJsZShtX2NhcGFi
aWxpdHkpOwotICAgIGVsc2UKLSAgICAgICAgR0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOwotfQot
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0
dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNDc3MDk3NTM0
NDgxMjRlOGYyZGM2OWUyYTAyM2U5NzgyOWNmMjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCi0KLSNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBU
ZW1wb3JhcnlBTkdMRVNldHRpbmc8PiBpcyB1c2VmdWwgZm9yIHRlbXBvcmFyaWx5IGRpc2FibGlu
ZyAob3IgZW5hYmxpbmcpIGEgcGFydGljdWxhciBPcGVuR0wKLS8vIGZlYXR1cmUgd2l0aCBhIHBh
cnRpY3VsYXIgc2NvcGUuIEEgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nPD4gb2JqZWN0IHJldHVybnMg
dGhlIGZsYWcgdG8gaXRzIG9yaWdpbmFsCi0vLyB2YWx1ZSB1cG9uIGRlc3RydWN0aW9uLCBtYWtp
bmcgaXQgYW4gYWx0ZXJuYXRpdmUgdG8gY2hlY2tpbmcsIGNsZWFyaW5nLCBhbmQgcmVzZXR0aW5n
IGVhY2ggZmxhZwotLy8gYXQgYWxsIG9mIGEgYmxvY2sncyBleGl0IHBvaW50cy4KLS8vCi0vLyBC
YXNlZCBvbiBTZXRGb3JTY29wZTw+Ci0KLWNsYXNzIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJ5QU5HTEVTZXR0aW5nKTsKLXB1YmxpYzoK
LSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcoR0NHTGVudW0gY2FwYWJpbGl0eSwgR0NHTGVudW0g
c2NvcGVkU3RhdGUpOwotICAgIH5UZW1wb3JhcnlBTkdMRVNldHRpbmcoKTsKLQotcHJpdmF0ZToK
LSAgICBjb25zdCBHQ0dMZW51bSBtX2NhcGFiaWxpdHk7Ci0gICAgY29uc3QgR0NHTGVudW0gbV9z
Y29wZWRTdGF0ZTsKLSAgICBHQ0dMZW51bSBtX29yaWdpbmFsU3RhdGU7Ci19OwotCi19Ci0KLXVz
aW5nIFdlYkNvcmU6OlRlbXBvcmFyeUFOR0xFU2V0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2Nv
YS5jcHAKaW5kZXggZTk5M2I3NzY3MTg5ZmU3ZWRmNmMyNjU5MjE1YWNlM2MyZWEwNjkzOS4uNDA3
ZTgyODQwN2ZiYjA5ZDdlZWViYTI4Njg4NDdlM2RhZjZmMDE4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRp
ZXNDb2NvYS5jcHAKQEAgLTI3LDEyICsyNywyMyBAQAogI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVz
Q29jb2EuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLQorI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5o
IgorI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4KKworV1RGX1dFQUtfTElOS19GT1JDRV9J
TVBPUlQoRUdMX0luaXRpYWxpemUpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQqIGNy
ZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoRUdMRGlzcGxheSBkaXNwbGF5LCBFR0xDb25m
aWcgY29uZmlnLCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQgdXNhZ2VIaW50LCBHTGVudW0gaW50ZXJu
YWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gdHlwZSwgSU9T
dXJmYWNlUmVmIHN1cmZhY2UsIEdMdWludCBwbGFuZSkKK2Jvb2wgcGxhdGZvcm1Jc0FOR0xFQXZh
aWxhYmxlKCkKK3sKKyAgICAvLyBUaGUgQU5HTEUgaXMgd2VhayBsaW5rZWQgaW4gZnVsbCwgYW5k
IHRoZSBFR0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5IHdlYWsgbGlua2VkIGFib3ZlCisgICAg
Ly8gc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNlIHdoZXJlIEFOR0xFIGlzIG5vdCBwcmVz
ZW50LgorICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXplOworfQorCit2b2lkKiBjcmVhdGVQYnVm
ZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEdDR0xEaXNwbGF5IGRpc3BsYXksIEdDR0xDb25maWcgY29u
ZmlnLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgdXNhZ2VIaW50LCBHQ0dMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBl
LCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0NHTHVpbnQgcGxhbmUpCiB7CiAgICAgYXV0byBlZ2xU
ZXh0dXJlVGFyZ2V0ID0gdGFyZ2V0ID09IEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFID8gRUdM
X1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIDogRUdMX1RFWFRVUkVfMkQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0
aWVzQ29jb2EuaAppbmRleCA5M2JhNGUwZGM5MTMyZTg1ODc3NWY5YzI1YmFkNjc0OGM3Yzg2OWI4
Li4wYWNkNzIxZDA4N2FhMmY3Yjg0MzZjYmYzNDU1NGE1NTlkZTE0MzczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGls
aXRpZXNDb2NvYS5oCkBAIC0yNywxNiArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAot
I2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgog
CiB0eXBlZGVmIHN0cnVjdCBfX0lPU3VyZmFjZSAqSU9TdXJmYWNlUmVmOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIFJldHVybnMgYSBoYW5kbGUgd2hpY2gsIGlmIG5vbi1udWxsLCBtdXN0
IGJlIHJlbGVhc2VkIHdpdGggZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZhY2UoKS4KLXZv
aWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoRUdMRGlzcGxheSwgRUdMQ29uZmln
LCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQgdXNhZ2VIaW50LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVm
LCBHTHVpbnQgcGxhbmUpOwordm9pZCogY3JlYXRlUGJ1ZmZlckFuZEF0dGFjaElPU3VyZmFjZShH
Q0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IHVzYWdlSGlu
dCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhl
aWdodCwgR0NHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHQ0dMdWludCBwbGFuZSk7CiAKLXZv
aWQgZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZhY2UoRUdMRGlzcGxheSwgdm9pZCogaGFu
ZGxlKTsKK3ZvaWQgZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZhY2UoR0NHTERpc3BsYXks
IHZvaWQqIGhhbmRsZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5k
ZXggMzZlOGYwZmIwMjkzNzdiNGVmZmU0MDUzNTIzN2U1ODIyMmZiZjc3MS4uNDdkNzEwNjExMWM1
YjYxY2NiNDVjMjdhMGQxZjM0NGExYTUxYzBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJH
cmFwaGljc0NvbnRleHRHTENvY29hLmgiCiAKKyNpbXBvcnQgIkFOR0xFSGVhZGVycy5oIgogI2lt
cG9ydCAiQU5HTEVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIK
ICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbi5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9y
dCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1l
dGFsL01ldGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01ldGFsU1BJLmg+CiAjaW1wb3J0
IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8d3RmL2Rhcndpbi9XZWFrTGlu
a2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTU3LDE3ICs1OCw4IEBACiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCiAjZW5kaWYKIAotV1RGX1dFQUtfTElOS19GT1JDRV9JTVBPUlQoRUdMX0luaXRpYWxpemUp
OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgcGxhdGZvcm1Jc0FOR0xFQXZhaWxhYmxl
KCkKLXsKLSAgICAvLyBUaGUgQU5HTEUgaXMgd2VhayBsaW5rZWQgaW4gZnVsbCwgYW5kIHRoZSBF
R0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5IHdlYWsgbGlua2VkIGFib3ZlCi0gICAgLy8gc28g
dGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNlIHdoZXJlIEFOR0xFIGlzIG5vdCBwcmVzZW50Lgot
ICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXplOwotfQotCiAvLyBJbiBpc0N1cnJlbnRDb250ZXh0
UHJlZGljdGFibGUoKSA9PSB0cnVlIGNhc2UgdGhpcyB2YXJpYWJsZSBpcyBhY2Nlc3NlZCBpbiBz
aW5nbGUtdGhyZWFkZWQgbWFubmVyLgogLy8gSW4gaXNDdXJyZW50Q29udGV4dFByZWRpY3RhYmxl
KCkgPT0gZmFsc2UgY2FzZSB0aGlzIHZhcmlhYmxlIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUg
dGhyZWFkcyBidXQgYWx3YXlzIHNlcXVlbnRpYWxseQogLy8gYW5kIGl0IGFsd2F5cyBjb250YWlu
cyBudWxscHRyIGFuZCBudWxscHRyIGlzIGFsd2F5cyB3cml0dGVuIHRvIGl0LgpAQCAtNTk5LDcg
KzU5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6YmluZERpc3BsYXlCdWZmZXJC
YWNraW5nKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6bWFrZUN1cnJlbnQoUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTERpc3BsYXkgZGlzcGxheSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBjb250
ZXh0KQorYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjptYWtlQ3VycmVudChHQ0dMRGlzcGxh
eSBkaXNwbGF5LCBHQ0dMQ29udGV4dCBjb250ZXh0KQogewogICAgIGN1cnJlbnRDb250ZXh0ID0g
bnVsbHB0cjsKICAgICByZXR1cm4gRUdMX01ha2VDdXJyZW50KGRpc3BsYXksIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fU1VSRkFDRSwgY29udGV4dCk7CkBAIC04MDEsMTIgKzc5MywxMiBAQCBib29s
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVy
JiBwbGF5ZXIsIFBsYXRmb3JtRwogfQogI2VuZGlmCiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0
CitHQ0dMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBj
b25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlPYmo7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBj
b25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29uZmlnT2JqOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHAKaW5kZXggMmM5OGY5ZDkyOTIzYzA0OWE5NGIzNDliNGY3NzUyOTQ3NzE5ZTIy
OC4uYTgzY2ZhMjk1NzA4NjBmMzM5MzRhMzg3Mjg2ZDY5YjUyODA0YTUwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VC
R0wpICYmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgIkFO
R0xFSGVhZGVycy5oIgogI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKICNpbmNsdWRl
ICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oCmluZGV4IDllMWI0NDQ5ZDNiNGJiOWY1YzBkN2FlOGQ4NWYzMGVm
MWQwNGJhOGEuLjc3ZGVkZDQ4NzI5MTE5NjExMzU3YmJkZGI2Y2M2OGMzODg5YmIwMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCkBAIC01MSw5ICs1MSw5IEBAIHByaXZhdGU6CiAKIAog
ICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG1fb3duZXI7Ci0gICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTERpc3BsYXkgbV9kaXNwbGF5IHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0wgbV9jb250ZXh0IHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xDb25maWcgbV9jb25maWcgeyBudWxscHRyIH07CisgICAgR0NHTERpc3BsYXkg
bV9kaXNwbGF5IHsgbnVsbHB0ciB9OworICAgIEdDR0xDb250ZXh0IG1fY29udGV4dCB7IG51bGxw
dHIgfTsKKyAgICBHQ0dMQ29uZmlnIG1fY29uZmlnIHsgbnVsbHB0ciB9OwogCiAgICAgUGxhdGZv
cm1HTE9iamVjdCBtX2ZyYW1lYnVmZmVyIHsgMCB9OwogICAgIFBsYXRmb3JtR0xPYmplY3QgbV95
dXZWZXJ0ZXhCdWZmZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IGM2MWVlYmMzMDY3OTc2MzViZjI1
Yzg5MGRhOTljZTViY2UzMjIwYjMuLjI2MmIyZmI5MDIzNzgwMmNkZjA1YTI3OGI0NDMxZTZlODA4
OWIyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRFR0wuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBHTENvbnRleHRFR0w6
OnN3YXBJbnRlcnZhbChpbnQgaW50ZXJ2YWwpCiAgICAgZWdsU3dhcEludGVydmFsKG1fZGlzcGxh
eS5lZ2xEaXNwbGF5KCksIGludGVydmFsKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgpCitHQ0dMQ29udGV4dCBHTENvbnRleHRF
R0w6OnBsYXRmb3JtQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApp
bmRleCAzYzNhM2Q3ZjA1NzczYWRlYzBjNmNkODcxZWZiYTRkNmRiMzVjNjQxLi41OThiMGI2NzMy
NmE2NjQxMmQ2NTQyYmQ5YmU5MThjNGZkNzY3ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC04OSw3ICs4OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzd2FwSW50ZXJ2YWwoaW50KSBvdmVycmlkZTsKICAgICBib29s
IGlzRUdMQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CisgICAg
R0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CiAKICAgICBlbnVtIEVHTFN1
cmZhY2VUeXBlIHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRvd1N1cmZhY2UsIFBpeG1hcFN1cmZhY2Us
IFN1cmZhY2VsZXNzIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKaW5kZXggNWZiZmFiNmNkMGYzMTEzZmYwNDQ3YmIz
ZTFjNjlmMTc3ODAzNDEzYS4uOTgzOWQ5YmE5YTJlNWEwYzNkYmYwNGJmNGQ5NGUwM2EzYzRjOWY5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dM
Q29udGV4dEdMWC5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIEdMQ29udGV4dEdMWDo6c3dh
cEludGVydmFsKGludCBpbnRlcnZhbCkKICAgICBnbFhTd2FwSW50ZXJ2YWxTR0koaW50ZXJ2YWwp
OwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIEdMQ29udGV4dEdMWDo6cGxhdGZvcm1D
b250ZXh0KCkKK0dDR0xDb250ZXh0IEdMQ29udGV4dEdMWDo6cGxhdGZvcm1Db250ZXh0KCkKIHsK
ICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5oCmluZGV4IGQzZGIzNWQ2NTYxMWMx
OGUwYTA1YmNhMTA0M2UxOWRmYTQ5NDcyNDIuLjgyMjJkNDk2M2QwOGFlZjZjYzI1OGUzMmU0ODFk
YzU4MTk4MjMyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dseC9HTENvbnRleHRHTFguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nbHgvR0xDb250ZXh0R0xYLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNFR0xDb250ZXh0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CisgICAgR0NHTENvbnRleHQgcGxhdGZv
cm1Db250ZXh0KCkgb3ZlcnJpZGU7CiAKICAgICBHTENvbnRleHRHTFgoUGxhdGZvcm1EaXNwbGF5
JiwgWFVuaXF1ZUdMWENvbnRleHQmJiwgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICAgICBHTENvbnRl
eHRHTFgoUGxhdGZvcm1EaXNwbGF5JiwgWFVuaXF1ZUdMWENvbnRleHQmJiwgWFVuaXF1ZUdMWFBi
dWZmZXImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCmlu
ZGV4IDAwZjk5ZTgzNzRjNGRhMTAxN2NhNGQyMzE1ZGNmYTQ0NzJlMjkwNjMuLjc1NGQ2MjQ0ODZl
YzA0ZWM5NWVmMTNmMGZkNTcyMTkxNDBlNWExNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgUGxhdGZvcm1EaXNw
bGF5Ojp0cnlFbnN1cmVHc3RHTENvbnRleHQoKSBjb25zdAogICAgIGF1dG8qIHNoYXJlZENvbnRl
eHQgPSBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxheSo+KHRoaXMpLT5zaGFyaW5nR0xDb250ZXh0
KCk7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBjb250ZXh0SGFuZGxlID0gc2hhcmVkQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCk7CisgICAgR0NHTENvbnRleHQgY29udGV4dEhhbmRsZSA9IHNoYXJl
ZENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dEhhbmRsZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xB
TkdMRUxheWVyLmNwcAppbmRleCAzOGMwNGQxZTZkZWUzNmYxZDIwMmE5Zjg5YjI0MjU3Y2I2NTQ0
ZTA4Li4yNWUyYjkxY2NjNGI5OGYzOTM0MGExNWVkMDY0NTEyMWYxNGVmMDJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTEFOR0xFTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAKQEAgLTIxNCwxNyArMjE0
LDE3IEBAIGJvb2wgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6bWFrZUNvbnRleHRDdXJy
ZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBH
Q0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NH
TENvbnRleHQgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db250ZXh0KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0OwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybURpc3Bs
YXkoKSBjb25zdAorR0NHTERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxh
dGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kaXNwbGF5OwogfQogCi1QbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6
OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dDR0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OkFOR0xF
Q29udGV4dDo6cGxhdGZvcm1Db25maWcoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbmZpZzsK
IH0KQEAgLTI0OCwxOSArMjQ4LDE5IEBAIGJvb2wgR0NHTEFOR0xFTGF5ZXI6Om1ha2VDb250ZXh0
Q3VycmVudCgpCiAKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBHQ0dMQU5HTEVMYXll
cjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0IEdDR0xBTkdMRUxheWVyOjpw
bGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVChtX2FuZ2xlQ29udGV4dCk7CiAg
ICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKIH0KIAotUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxh
eSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1EaXNwbGF5KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2FuZ2xl
Q29udGV4dC0+cGxhdGZvcm1EaXNwbGF5KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dDR0xDb25m
aWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9hbmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oCmluZGV4
IDRmOGRmNmVjZTA2YTU3NDJlZDNhN2I4ZjdlYTBlNTBkMGNiMDQ2NDIuLmRmODNhODk0ZGQ1MDYw
MTg1YWM5OTZjZjcxNGVhYmRiNzY1ZWQwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQ0dMQU5HTEVMYXllci5oCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoKIAogICAgICAgICBi
b29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShXRUJHTCkKLSAgICAgICAgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKLSAgICAgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7
Ci0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWco
KSBjb25zdDsKKyAgICAgICAgR0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Cisg
ICAgICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OworICAgICAgICBHQ0dM
Q29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CkBA
IC04MCw5ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HQ0dMQU5HTEVMYXllcigpOwog
CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKKyAgICBHQ0dMQ29udGV4
dCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyAgICBHQ0dMRGlzcGxheSBwbGF0Zm9ybURpc3Bs
YXkoKSBjb25zdDsKKyAgICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAKICAg
ICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExh
eWVyOyB9CiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IDRlNGEyYjNiZTUyZGMzNjU3MDBjN2I1
OWM5NTUzMjJhZGVlODY2MDYuLjAxMGNjN2MzM2JlY2JiMmI4ZjZhYjA3MGZkNzM1ZWZhYjAwZTI3
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIGJvb2wgR0NHTExheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBt
X2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0R0wgR0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NHTENvbnRleHQg
R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVChtX2dsQ29u
dGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQ0dMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaAppbmRleCAxOTY2Yzc5ZmNiYmFkZWUzNmQ3MGFk
NWYwYTRmNzBlZDdmMzFkYzM3Li5hYjFhMTY0ODE3ZGI2MTkyODk2NTE3M2M0MGJmMjMxMWQ3MTUw
NDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oCkBAIC00OSw3ICs0OSw3
IEBAIHB1YmxpYzoKIAogICAgIENvbnRlbnRMYXllciYgY29udGVudExheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50TGF5ZXI7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJy
ZW50KCk7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29u
dGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgR0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVkZWQoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAK
aW5kZXggYTJlNjczZmM0NjM0ZDhlZWU2YmNlNWVhNWU5ODk3ZmE3ZTYzZjg3MS4uMjAyOGE5NTg2
NjM1N2YwZDk0MDA0YmFmODZlMDU1ZTI1NWYxNzdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBl
ckFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBAIC0xMjUsNyArMTI1LDcg
QEAgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRShHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmkKIH0KIAogI2lmIFVTRShOSUNPU0lBKQotR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcoUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgZGlzcGxheSkKK0dyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OkVHTEltYWdlQmFja2luZzo6RUdMSW1hZ2VCYWNraW5nKEdDR0xEaXNwbGF5IGRpc3BsYXkp
CiAgICAgOiBtX2Rpc3BsYXkoZGlzcGxheSkKIHsKIH0KQEAgLTIzMSw3ICsyMzEsNyBAQCBHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSgpCiAjZW5kaWYKIH0K
IAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKK0dDR0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEU6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAg
cmV0dXJuIG1fbmljb3NpYUxheWVyLT5wbGF0Zm9ybURpc3BsYXkoKTsKQEAgLTI0MCw3ICsyNDAs
NyBAQCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogI2VuZGlmCiB9CiAKLVBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWco
KSBjb25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZp
ZygpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgcmV0dXJuIG1fbmljb3NpYUxheWVy
LT5wbGF0Zm9ybUNvbmZpZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyLmNwcAppbmRleCA2MjY2ZWFmOTIxMDMxN2U2OWM2MWE0MDFiNjdmZTRmMDNiYWFi
M2ViLi5lNTMzNGVlMmY3NTc0OTI1ZjM4NjNiOTVmNTMxZmRjODI2MjlmZWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdD
R0xQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcApAQCAtNjIsMTkgKzYy
LDE5IEBAIGJvb2wgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjptYWtlQ29udGV4dEN1
cnJlbnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9
CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NHTENvbnRleHQgVGV4dHVyZU1hcHBlckdD
R0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVCht
X2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsK
IH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NHTERpc3BsYXkgVGV4dHVy
ZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogICAg
IEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9ybURp
c3BsYXkoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBUZXh0dXJlTWFw
cGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dDR0xDb25maWcg
VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBsYXRm
b3JtQ29uZmlnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVy
LmgKaW5kZXggZTNlZWQ2YmI5ZTM2NjYyNjkzNzM1YzJjY2QxMGNlMWI3ZTZkNmUzYi4uZjdiODU3
NGY4ZjAzMGQzMGQ2NTExZTZiOGQ4MDRjZDllNTAyMmQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1M
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzgsOSArMzgsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBib29s
IG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxh
dGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3Bs
YXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OworICAgIEdDR0xDb250ZXh0IHBsYXRmb3Jt
Q29udGV4dCgpIGNvbnN0OworICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0
OworICAgIEdDR0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKIAogI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eT4gcHJveHkoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXgg
MDQyMzc1ZDZiN2FlNTgxYTRiYWZkZDZkM2UxNzZiMTNlODM4OWY1MC4uZmYyODQ1ZWQ0MmYzNDdh
OWI4YWI4NTcyMWU2MmVlYjE0ZTUxN2YwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTEz
MiwxMiArMTMyLDEyIEBAIHByb3RlY3RlZDoKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBSZWZQdHI8SVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgdXNpbmcgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCA9IFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQ29jb2E7CisgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKLSAgICB1c2luZyBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dEdMID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOworICAg
IHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyOwogI2VuZGlmCiAgICAgCi0gICAgUmVmUHRyPFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0w+
IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKKyAgICBSZWZQ
dHI8R0NHTENvbnRleHQ+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhy
ZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFwaGljc0NvbnRleHRH
TElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5n
QmFja2VuZDsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvbWFjL0FwcEtpdFNQSS5oCmluZGV4IDA1ZGMyMzc4MDM0OTE0OGRlMTg0Y2YwMjExOWJm
ZGVlYTA0ZDIzMGIuLmU0NmI3ZmMzN2I5YzRmZDM4NjlkZWJiZDc0YzZmZDI4YjdlYWJjNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21hYy9BcHBLaXRTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmgKQEAgLTI5LDEzICsy
OSw2IEBACiAKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBPSU5URVJfSF8KIAotI2lmIEhBVkUoQ1BQ
MjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9U
WVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5H
TEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KLSNlbmRpZgotCiAjaW1wb3J0IDxB
cHBLaXQvTlNJbnNwZWN0b3JCYXIuaD4KICNpbXBvcnQgPEFwcEtpdC9OU1RleHRJbnB1dENsaWVu
dF9Qcml2YXRlLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dfUHJpdmF0ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNT
UEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2Vz
U1BJLmgKaW5kZXggNmQ0YTMxNDZlNmU5NTcxNzcxOWM2M2YyZWYyZjZkOWRlNzU0NWQ3Ni4uZjA3
OTUxNTZjNTc4NjJmODQ1MDljYzVhNGJjYWY4MGYyZmU3MDNkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oCkBA
IC0zMSwxMCArMzEsNiBAQAogCiAjaWYgSEFWRShDUFAyMF9JTkNPTVBBVElCTEVfSU5URVJOQUxf
SEVBREVSUykKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBPSU5URVJfSF8KLSNpZm5kZWYgR0xfR0xF
U19QUk9UT1RZUEVTCi0jZGVmaW5lIEdMX0dMRVNfUFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNs
dWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgogI2VuZGlmCiAKICNp
bXBvcnQgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNv
bnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZM
YXllckNvbnRyb2xsZXJTUEkuaAppbmRleCAwN2NkMGQ5Mjg4MWI3NTA4NjAzZmVjZmE0NDFiMTc5
NTJjYzA2YmUwLi42N2Y3MjdkOTk2YjUzOTU2YjFhYjQ3MDJjOTdmMjIyYmIwNWRjMTM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250
cm9sbGVyU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RkxheWVyQ29udHJvbGxlclNQSS5oCkBAIC0yNywxMyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKFBE
RktJVF9QTFVHSU4pCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBIQVZFKENQUDIw
X0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQ
RVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xF
L2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+Ci0jZW5kaWYKLQogI2ltcG9ydCA8UXVh
cnR6L1F1YXJ0ei5oPgogCiBAY2xhc3MgQ1BSZWFkaW5nTW9kZWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCmluZGV4IDMxNDdhNDVl
YTIxMTI3ZWMwMDA5NTM4ZmMxODAxZjY0Y2QzMDA4MmYuLmFmMWYxNTEzNDg2YmEzNzMzM2RiYzM1
OWVjZmVjNTZkZmI3YTc1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC0yOCwxMyArMjgsNiBAQAogCiAvLyBUaGlzIGhl
YWRlciBjb250YWlucyBXZWJGcmFtZSBkZWNsYXJhdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCBhbnl3
aGVyZSBpbiBXZWJLaXQsIGJ1dCBhcmUgbmVpdGhlciBTUEkgbm9yIEFQSS4KIAotI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspICYmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hF
QURFUlMpCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RP
VFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1
dG9nZW4uaD4KLSNlbmRpZgotCiAjaW1wb3J0ICJXZWJGcmFtZVByaXZhdGUuaCIKICNpbXBvcnQg
IldlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0QWN0aW9uLmg+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452065</attachid>
            <date>2022-02-15 11:26:07 -0800</date>
            <delta_ts>2022-02-15 11:30:25 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236636-20220215212605.patch</filename>
            <type>text/plain</type>
            <size>73583</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiNzU2YTM0YzUzYjA5
N2I0Y2I4NmI5MzJiYTc5OTMwYzNiZjNkZi4uMDI3YzRhMmE0Y2EzYjhiNGFkZDYyNmE2MDg5MDNh
NzhkNjVkZDhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMi0wMi0xNSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGluY2x1
ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1c2Ug
QU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0eXBl
cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBlcwor
ICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUgT3Bl
bkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0x7
RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAgICBH
Q0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNpc3Rl
bnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNlIGlu
IEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3ZlIGN1
cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAgICAg
ICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHksIGNv
bnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0aGUg
aW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNpbmNl
IHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRoZXNl
IG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rv
ci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBmaWxl
IGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZpbGUg
b3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
QU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5k
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3BlZEJ1ZmZl
ckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29w
ZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6
OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFRl
eHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZyYW1lYnVm
ZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRGcmFtZWJ1
ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYyk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2FwYWJpbGl0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRHTENhcGFi
aWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9yIEdDR0xp
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0b3IgR0NH
THVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6Om9wZXJh
dG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6Omdl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRvciBHQ0dM
c3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZyYW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRm
b3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVmZmVyQW5k
QXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdM
RVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1
cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNw
bGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRl
eHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxh
eWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xF
TGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpHQ0dMQU5H
TEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1D
b25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNSAgRW5yaXF1ZSBPY2HDsWEg
R29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW01T
RV0gTGV0IE1TRSBzZXQgbmF0dXJhbCB2aWRlbyBzaXplIHdoZW4gdXNpbmcgaG9sZXB1bmNoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwppbmRleCA4NjdhZGE2OWFiMTdmN2I1NWNmYmU5MWJkNzQ3YWU1YmJiZWUw
YWUzLi5iMTQ4ODNmNmI1YWZkM2ZjMWQxZDg1OGIwNmQwZmRkNTcxN2QzNGY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1ZGVzIGludGVyZmVyZSB3
aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFj
a3Nvbi4KKworICAgICAgICBSZW1vdmUgdGhlIGF0dGVtcHQgdG8gb3ZlcnJpZGUgc3lzdGVtIGhl
YWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAgICAgICBBTkdMRSBpbXBsZW1lbnRhdGlvbi4gVGhl
eSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucworICAgICAgICBhbmQgb25lIGNhbm5vdCBy
ZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg6CisgICAgICAgIEFkZCBt
aXNzaW5nIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfIHRoYXQgbWFrZXMgdGhlIENvY29hUHJpdi5o
CisgICAgICAgIGluY2x1ZGVkIENvcmVHcmFwaGljcyBoZWFkZXIgc2tpcCB0aGUgaW5jb21wYXRp
YmxlIHRhZ2dlZCBwb2ludGVyCisgICAgICAgIGRlY2xhcmF0aW9ucywgc2ltaWxhciB0byBvdGhl
ciAqU1BJLmggaGVhZGVycy4KKwogMjAyMi0wMi0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGl2ZSBUZXh0XSBQbHVtYiBwbGF0Zm9ybSBpbWFn
ZSBhbmFseXNpcyBvYmplY3RzIHRvIHRoZSB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwN2IxY2Uw
Yjg0NDM2Y2NhYmQwMzU2ODg4NmM4NzY0OTM2OTcwNzVkLi42ZTJjYzllMTQ2MDBhMmZlN2VhMDU2
ZTFjNzg4ODY3MjQ0NzNlODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAyLTE1
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUg
aW5jbHVkZXMgaW50ZXJmZXJlIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlbW92ZSB0aGUgYXR0ZW1wdCB0
byBvdmVycmlkZSBzeXN0ZW0gaGVhZGVyIGxvZ2ljIHdpdGggV2ViS2l0CisgICAgICAgIEFOR0xF
IGltcGxlbWVudGF0aW9uLiBUaGV5IGFyZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zCisgICAg
ICAgIGFuZCBvbmUgY2Fubm90IHJlcGxhY2UgdGhlIG90aGVyLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIFBsYXRm
b3JtL3NwaS9tYWMvQXBwS2l0U1BJLmg6CisgICAgICAgICogUGxhdGZvcm0vc3BpL21hYy9BcHBs
aWNhdGlvblNlcnZpY2VzU1BJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZMYXllckNvbnRyb2xsZXJTUEkuaDoKKwogMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdQVVAgV2ViR0w6IFdURjo6UmVmQ291bnRl
ZEJhc2U6OmFwcGx5UmVmRGVyZWZUaHJlYWRpbmdDaGVjaygpIGZhaWxzIGR1ZSB0byBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ODAzOTQ4NThhMTViOGEyNTY5NmFhZWM3YzhkOTRhYTcz
YWQ3MjIzLi5lZTA0ZTBlZGQwZDY5ZDM0NjU0OWY2MGQ0NGMxNmVjNTFjMmQwZmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTUgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBTkdMRSBpbmNsdWRl
cyBpbnRlcmZlcmUgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBhdHRlbXB0IHRvIG92ZXJy
aWRlIHN5c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAgICAgQU5HTEUgaW1wbGVt
ZW50YXRpb24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5k
IG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaDoKKwogMjAyMi0wMi0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBidWlsZCB3aXRoIHRoZSBsYXRlc3QgaU9T
IFNESy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWQ2ODAxNTBlYmY5YzExMTliYzk1ZTYxMTc3
MGVlMzM1MzAyZDAyZi4uNWU0OGU0MWFjZmZkYzVkM2U1NmI5ODg1ZDMwMjYwNmQ1NGJhMTFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5MDksNyArMTkwOSw2IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCiAgICAgICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAotICAgICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcAogICAg
ICAgICApCiAKICAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgQU5HTEU6OkdM
RVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVl
RnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1
ZUZyYW1lYnVmZmVyLmNwcAppbmRleCA3M2NlMmMyMGI2Mjk2YzFmNDg4OWQ1OWUzYjhmN2NiY2Jh
NWM0ZjAyLi45MmUxYTE4ZWE3ODk3ZjZhNDIyZDJmNDk3Y2I2OTQxMmYwMTU5MTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1
ZmZlci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogI2lm
IFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJz
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggZDFi
OTQ2NTJlZmNkMDk4NjM2NGNlNTg3MTFiNTIxZDg3M2NhMjk1Mi4uOTEyNjZmMTdkNDNmMTNkOGFk
Y2NhNjY3MTFjM2Y3NjA4MmY0MGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTQwLDEwICs0MCw2IEBACiAKICNpZiBIQVZFKENQ
UDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmluZSBDR0NPTE9SVEFHR0VE
UE9JTlRFUl9IXwotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19Q
Uk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4
dF9hdXRvZ2VuLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHRE
ZWxlZ2F0ZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVRv
b2xib3hTUEkuaAppbmRleCBmYjYwMDBkNzNlOTE2NTc5OThkOGRmY2Y5NTZhNTNjNDJkYmQ1ZmQ4
Li5jYzNhZWM0YTBhMDM4OTY2YzFlY2Y4ZTE1NGExOWY3MTJjNDJiY2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0yNyw2ICsyNywxMCBA
QAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2lmIEhBVkUoQ1BQMjBfSU5DT01Q
QVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCisjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hf
CisjZW5kaWYKKwogI2luY2x1ZGUgPENhcmJvbi9DYXJib25Qcml2Lmg+CiAKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCBjN2EyZGJkYWEwZTQwZGVjZWMwMjg0NzY5NDE0OTYyYTBm
ZmNlNWE1Li41NDAwMDU2YzBkZDI3NjdmZTI2ODc1MmYwMWI0OTMxOTk4MTQ3Y2FlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3NSw3ICszNzUsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9QYXR0ZXJuQ0cuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRp
bWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRpb25NYXRyaXhDRy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAotcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1
ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29j
b2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zsb2F0UmVjdENvY29hLm1tCkBAIC0zODYs
NyArMzg1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2Eu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVU
ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQotcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9IRVZDVXRpbGl0aWVzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtNDEyLDcgKzQxMCw2IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
Q1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCi1w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIubW0KIHBs
YXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBw
bGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckltYWdlQ29yZUltYWdl
Lm1tCkBAIC02MTQsOCArNjExLDEwIEBAIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHAKIHRl
c3RpbmcvY29jb2EvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5tbQogCiAvLyBU
aGUgZm9sbG93aW5nIGZpbGVzIGFyZW4ndCB1bmlmaWVkIHdpdGggb3RoZXJzIHRvIHByZXZlbnQg
dGhlbSBmcm9tIGJlaW5nIG1lcmdlZAotLy8gd2l0aCBmaWxlcyB0aGF0IHVzZSB0aGUgc3lzdGVt
IE9wZW5HTC4KKy8vIHdpdGggZmlsZXMgdGhhdCBpbmNsdWRlIHN5c3RlbSBoZWFkZXJzIHRoYXQg
aW5jbHVkZSBzeXN0ZW0gT3BlbkdMIGhlYWRlcnMuCiAKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0FOR0xFVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQotcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzI4
YzEzZDI2YjI1Y2I3YjVlOGY0Y2EwNzg1NGE4YWVmODE3MzRmNy4uNjY4M2MxMGMzOTFmZTI0MTdi
ZTY1ZTU5OTM4ZDEwZGY5NDc5NzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE5MCw4ICsyMTkwLDYgQEAKIAkJNkU0QUJD
RDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAw
QTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
ICovOyB9OwotCQk2RTcyRjU0RjIyOURDRDEzMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
MjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovOyB9
OwotCQk2RTcyRjU1MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTI5MDg2MzIy
OURCOTcwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggKi87IH07CiAJCTZFODRF
OUUxMTc2NjhCRjEwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU4NEU5REYxNzY2OEJBRDAwODE1QjY4IC8qIFJh
c3RlclNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNkU4QUNERUQyMzM0NUNCQzAwMjRBQUY1IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFOEFD
REVCMjMzNDVDQUYwMDI0QUFGNSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmggKi87IH07
CiAJCTZFQkYwRTQ5MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYwRTQ2MTJBODkyNjEw
MERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKQEAgLTI0MTgsNiArMjQxNiwxMCBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tICovOyB9OworCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMgLyogQU5HTEVVdGlsaXRp
ZXNDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgKi87
IH07CisJCTdCRTM3RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEODI3MDU5
OUVGMDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9OworCQk3QkUzN0Y3RTI3QkI4
NkRCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlBMjU0OTcyMDAwMEM4QzFB
QyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwICovOyB9OwogCQk3QkU3NDI3MzgxRkE5
MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBK
U1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxh
eUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZE
MjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwODc2LDggKzEwODc4LDYgQEAKIAkJNkUyNDJC
MjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIy
Mjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBU
ZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlBTkdMRVNldHRpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNyAvKiBKU1dl
YkdMRGVwdGhUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTNGQUQzNjE0NzMzRjQwMTBFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQxMSw4ICsyNDQxMSw2
IEBACiAJCQkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8s
CiAJCQkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwICovLAogCQkJCTdCOTVDRkVDMjc1NEZGN0MwMDAwNjBDRSAvKiBHcmFwaGljc0NvbnRleHRH
TEFOR0xFLmggKi8sCi0JCQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFO
R0xFU2V0dGluZy5jcHAgKi8sCi0JCQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBv
cmFyeUFOR0xFU2V0dGluZy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhbmdsZTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTkxNCwxMCArMjU5MTIsMTAgQEAKIAkJCQkzMTQ4NzdF
MDFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmNwcCAqLywKIAkJCQkzMTQ4NzdF
MTFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmggKi8sCiAJCQkJMzE0ODc3RDkx
RkFBODcwNjAwQzA1NzU5IC8qIE9mZnNjcmVlbkNhbnZhcy5pZGwgKi8sCi0JCQkJNDk0RUJEMDgy
N0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKLQkJCQk0OTRFQkQwNjI3QUE5
QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQlGNTVCM0Q5NTEyNTFGMTJEMDAz
RUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDk2MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5oICovLAorCQkJCTQ5NEVCRDA4MjdBQTlDNTMw
MEY0ODQ0RiAvKiBQREZEb2N1bWVudC5jcHAgKi8sCisJCQkJNDk0RUJEMDYyN0FBOUM1MzAwRjQ4
NDRGIC8qIFBERkRvY3VtZW50LmggKi8sCiAJCQkJOTcyMDVBQjkxMjM5MjkyNzAwQjE3MzgwIC8q
IFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQk5NzIwNUFCQTEyMzkyOTI3MDBCMTczODAgLyog
UGx1Z2luRG9jdW1lbnQuaCAqLywKIAkJCQlDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVi
bGljVVJMTWFuYWdlci5jcHAgKi8sCkBAIC0zNzY3OSw3ICszNzY3Nyw2IEBACiAJCQkJRjU1QjNE
RDYxMjUxRjEyRDAwM0VGMjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxh
dGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU3MkY1NTEy
MjlEQ0QxQTAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOUUxNzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAq
LywKQEAgLTM4Njc3LDYgKzM4Njc0LDggQEAKIAkJCWZpbGVzID0gKAogCQkJCUE5Nzg3Q0I0MUY1
RjVDNjYwMEM1NTFDNiAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzFGN0I3MzEyNDQ4RjJBQzAwMTI0NTU3IC8qIEFHWENvbXBpbGVyU2VydmljZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3QkUzN0Y3RDI3QkI4NkNEMDA3QTZDRDMgLyogQU5HTEVV
dGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0MyN0JCODZCODAwN0E2Q0Qz
IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QwRUVFMEUx
NDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RBNzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbklPUy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzg3MDAsNiArMzg2OTks
OCBAQAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk2RTcyRjU0RTIyOURDRDEw
MDBCM0UxNTEgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBp
biBTb3VyY2VzICovLAorCQkJCTdCRTM3RjdFMjdCQjg2REIwMDdBNkNEMyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAw
QzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNkIzQTBB
MjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzkw
MEMzMTk0M0MwRkMwMDg2MjVCNSAvKiBIVFRQSGVhZGVyTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0zODc2MCw3ICszODc2MSw2IEBACiAJCQkJQ0RDOEI1QUExODA0N0ZGMTAwMTZFNjg1IC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M3
Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMx
NjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNkU3MkY1NEYyMjlEQ0QxMzAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTg4RUUyNjI0MTQ0NjdCMDA3RjI5QzIgLyogVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFERjZEODAwQjkyQTE4
RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM4RUM4MDMx
Rjk2QUY4MTAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCmluZGV4IGQ3ODU3
NmEyYjZkZjcxNTgxNjhkYzMzZjVjNzMyYWVlZWRlNTc3NWMuLjk0MDMxMDZmNTVlNzRkMzIzOTc2
MzY5NGFhYTNhNjAyMjNhNmYyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3QgR0xOYXRp
dmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2RldmljZSBjYWlyb19kZXZpY2Vf
dDsKICNlbmRpZgogCi10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0w7Cit0
eXBlZGVmIHZvaWQqIEdDR0xDb250ZXh0OwogCiAvLyBYMTEgaGVhZGVycyBkZWZpbmUgYSBidW5j
aCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5nIHdpdGggV2ViQ29yZSBh
bmQgV1RGIGVudW0gdmFsdWVzLgogLy8gQXMgYSB3b3JrYXJvdW5kLCB3ZSBleHBsaWNpdGx5IHVu
ZGVmIHRoZW0gaGVyZS4KQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIEdDR0xD
b250ZXh0IHBsYXRmb3JtQ29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEdMQ29udGV4
dChQbGF0Zm9ybURpc3BsYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDFjY2VlYjUzNzM1MzhkNTM1MjNmNDlk
Y2UyYTA2ODJlNDdkZmM4ZGQuLjNhY2JjNzU3OGI5YjgyNzgzMzU0MzNlMTVlMDJmNjAxMjRmM2Fm
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuaApAQCAtNDUsMTEgKzQ1LDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTDsKLXR5cGVkZWYgdm9pZCogUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXk7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zR0w7CiBj
bGFzcyBIb3N0V2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NUeXBlc0dMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzR0wuaAppbmRleCAzMzY1NmExNTYxM2RmNjMyMjY1YTkzMzI4ODJiZDEx
MWE2ODBkZjk1Li4wMDM5NjBkN2RlNDY5OTI4NWZjMDkwZTU3MzVhM2JmZTkyM2RlNGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wu
aApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIGZsb2F0IEdDR0xmbG9hdDsKIHR5cGVkZWYgdW5z
aWduZWQgc2hvcnQgR0NHTGhhbGZmbG9hdDsKIHR5cGVkZWYgZmxvYXQgR0NHTGNsYW1wZjsKIHR5
cGVkZWYgY2hhciBHQ0dMY2hhcjsKLXR5cGVkZWYgc3RydWN0IF9fR0xzeW5jKiBHQ0dMc3luYzsK
K3R5cGVkZWYgdm9pZCogR0NHTHN5bmM7CiB0eXBlZGVmIHZvaWQgR0NHTHZvaWQ7CiAKIC8vIFRo
ZXNlIEdDR0wgdHlwZXMgZG8gbm90IHN0cmljdGx5IG1hdGNoIHRoZSBHTCB0eXBlcyBhcyBkZWZp
bmVkIGluIE9wZW5HTCBFUyAyLjAKQEAgLTU5LDExICs1OSwxOCBAQCB0eXBlZGVmIGludDY0X3Qg
R0NHTGludDY0OwogdHlwZWRlZiB1aW50NjRfdCBHQ0dMdWludDY0OwogCiB0eXBlZGVmIEdDR0x1
aW50IFBsYXRmb3JtR0xPYmplY3Q7Cit1c2luZyBHQ0dMRGlzcGxheSA9IHZvaWQqOwordXNpbmcg
R0NHTENvbmZpZyA9IHZvaWQqOwordXNpbmcgR0NHTENvbnRleHQgPSB2b2lkKjsKIAogI2lmICFQ
TEFURk9STShDT0NPQSkKIHR5cGVkZWYgdW5zaWduZWQgR0x1aW50OwogI2VuZGlmCiAKK3VzaW5n
IEdDR0xOYXRpdmVEaXNwbGF5VHlwZSA9IGludDsKKworaW5saW5lIGNvbnN0ZXhwciBHQ0dMTmF0
aXZlRGlzcGxheVR5cGUgZ2NHTERlZmF1bHREaXNwbGF5ID0gMDsKKwogaW5saW5lIGNvbnN0ZXhw
ciBzaXplX3QgZ2NHTFNwYW5EeW5hbWljRXh0ZW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IEV4dGVudCA9IGdjR0xT
cGFuRHluYW1pY0V4dGVudD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcAppbmRleCA3YzVmOGI1ODc3MzQ5MDAw
MTQ1Mzg5NGEwMTNmMjI3MWM5NzVhY2MzLi42NTk1NGRkMDZlNGQ3N2QxMjE4ZTBmN2E1Mjc4OWI0
Y2IzMDllNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9BTkdMRVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiQU5HTEVVdGlsaXRpZXMuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQor
I2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3
LDYgKzM4LDE0MCBAQCBib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCiB9CiAjZW5kaWYK
IAorU2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRp
bmcoR0NHTGVudW0gYmluZGluZ1BvaW50UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9v
bCBjb25kaXRpb24pCit7CisgICAgQVNTRVJUKGJpbmRpbmdQb2ludCAhPSBzdGF0aWNfY2FzdDxH
Q0dMZW51bT4oMHUpKTsKKyAgICBpZiAoY29uZGl0aW9uKSB7CisgICAgICAgIG1fYmluZGluZ1Bv
aW50ID0gYmluZGluZ1BvaW50OworICAgICAgICBHTF9HZXRJbnRlZ2VydihiaW5kaW5nUG9pbnRR
dWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHQ0dMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7CisgICAg
fQorfQorCitTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmc6On5TY29wZWRSZXN0b3JlVGV4dHVy
ZUJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmluZFRl
eHR1cmUobV9iaW5kaW5nUG9pbnQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVy
QmluZGluZzo6U2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIEdDR0x1
aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24pCit7CisgICAgaWYgKCFjb25kaXRpb24p
CisgICAgICAgIHJldHVybjsKKyAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShiaW5kaW5nUG9pbnQp
LCByZWludGVycHJldF9jYXN0PEdDR0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKKyAgICBpZiAo
YmluZGluZ1ZhbHVlID09IG1fYmluZGluZ1ZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9i
aW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7CisgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQ
b2ludCwgYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3BlZEJ1
ZmZlckJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmlu
ZEJ1ZmZlcihtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOworfQorCit2b2lkIFNjb3Bl
ZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nOjpiaW5kRnJhbWVidWZmZXIoR0NHTHVpbnQg
YmluZGluZ1ZhbHVlKQoreworICAgIGlmICghbV9iaW5kaW5nQ2hhbmdlZCAmJiBtX2JpbmRpbmdW
YWx1ZSA9PSBiaW5kaW5nVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBHTF9CaW5kRnJhbWVi
dWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsKKyAgICBtX2JpbmRpbmdD
aGFuZ2VkID0gbV9iaW5kaW5nVmFsdWUgIT0gYmluZGluZ1ZhbHVlOworfQorCitTY29wZWRSZXN0
b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJC
aW5kaW5nKCkKK3sKKyAgICBpZiAobV9iaW5kaW5nQ2hhbmdlZCkKKyAgICAgICAgR0xfQmluZEZy
YW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJnZXQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2Nv
cGVkUGl4ZWxTdG9yYWdlTW9kZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1l
LCBib29sIGNvbmRpdGlvbikKKyAgICA6IG1fbmFtZShjb25kaXRpb24gPyBuYW1lIDogMCkKK3sK
KyAgICBpZiAobV9uYW1lKQorICAgICAgICBHTF9HZXRJbnRlZ2VydihtX25hbWUsICZtX29yaWdp
bmFsVmFsdWUpOworfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjpTY29wZWRQaXhlbFN0b3Jh
Z2VNb2RlKEdDR0xlbnVtIG5hbWUsIEdDR0xpbnQgdmFsdWUsIGJvb2wgY29uZGl0aW9uKQorICAg
IDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQoreworICAgIGlmIChtX25hbWUpIHsKKyAg
ICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKKyAgICAgICAg
cGl4ZWxTdG9yZSh2YWx1ZSk7CisgICAgfQorfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjp+
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpCit7CisgICAgaWYgKG1fbmFtZSAmJiBtX3ZhbHVlQ2hh
bmdlZCkKKyAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCBtX29yaWdpbmFsVmFsdWUpOwor
fQorCit2b2lkIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6OnBpeGVsU3RvcmUoR0NHTGludCB2YWx1
ZSkKK3sKKyAgICBBU1NFUlQobV9uYW1lKTsKKyAgICBpZiAoIW1fdmFsdWVDaGFuZ2VkICYmIG1f
b3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEdMX1BpeGVsU3Rv
cmVpKG1fbmFtZSwgdmFsdWUpOworICAgIG1fdmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVl
ICE9IHZhbHVlOworfQorCitTY29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKCkKK3sKKyAgICBH
TF9HZW5UZXh0dXJlcygxLCAmbV9vYmplY3QpOworfQorCitTY29wZWRUZXh0dXJlOjp+U2NvcGVk
VGV4dHVyZSgpCit7CisgICAgR0xfRGVsZXRlVGV4dHVyZXMoMSwgJm1fb2JqZWN0KTsKK30KKwor
U2NvcGVkRnJhbWVidWZmZXI6OlNjb3BlZEZyYW1lYnVmZmVyKCkKK3sKKyAgICBHTF9HZW5GcmFt
ZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKK30KKworU2NvcGVkRnJhbWVidWZmZXI6On5TY29wZWRG
cmFtZWJ1ZmZlcigpCit7CisgICAgR0xfRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7
Cit9CisKK3ZvaWQgU2NvcGVkR0xGZW5jZTo6cmVzZXQoKQoreworICAgIGlmIChtX29iamVjdCkg
eworICAgICAgICBHTF9EZWxldGVTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4obV9vYmplY3QpKTsK
KyAgICAgICAgbV9vYmplY3QgPSB7IH07CisgICAgfQorfQorCit2b2lkIFNjb3BlZEdMRmVuY2U6
OmZlbmNlU3luYygpCit7CisgICAgcmVzZXQoKTsKKyAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3lu
YyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7Cit9CisKKworU2NvcGVkR0xDYXBh
YmlsaXR5OjpTY29wZWRHTENhcGFiaWxpdHkoR0NHTGVudW0gY2FwYWJpbGl0eSwgYm9vbCBlbmFi
bGUpCisgICAgOiBtX2NhcGFiaWxpdHkoY2FwYWJpbGl0eSkKKyAgICAsIG1fb3JpZ2luYWwoR0xf
SXNFbmFibGVkKG1fY2FwYWJpbGl0eSkgPT0gZW5hYmxlID8gc3RkOjpudWxsb3B0IDogc3RkOjpv
cHRpb25hbDxib29sPighZW5hYmxlKSkKK3sKKyAgICBpZiAoIW1fb3JpZ2luYWwpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5
KTsKKyAgICBlbHNlCisgICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKK30KKworU2Nv
cGVkR0xDYXBhYmlsaXR5Ojp+U2NvcGVkR0xDYXBhYmlsaXR5KCkKK3sKKyAgICBpZiAoIW1fb3Jp
Z2luYWwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKm1fb3JpZ2luYWwpCisgICAgICAgIEdM
X0VuYWJsZShtX2NhcGFiaWxpdHkpOworICAgIGVsc2UKKyAgICAgICAgR0xfRGlzYWJsZShtX2Nh
cGFiaWxpdHkpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmgKaW5kZXggNTE1YjlkOTEx
YTNlZGI3MjEzMzU2MjA1ZjY1MzViMjM2NzIxMmZiZi4uNzAyY2MxZWVhODE0YzM3OTY2ZmY2MzJm
NmVhM2FkNWJlZTI5ODM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGllcy5oCkBAIC0yNywxODUgKzI3LDEyNSBAQAog
CiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCiAKLSNpbmNsdWRlICJBTkdMRUhlYWRl
cnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
VHlwZXNHTC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjb3BlZFJlc3RvcmVUZXh0dXJl
QmluZGluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVRleHR1cmVC
aW5kaW5nKTsKLXB1YmxpYzoKLSAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0xlbnVt
IGJpbmRpbmdQb2ludFF1ZXJ5LCBHTGVudW0gYmluZGluZ1BvaW50LCBib29sIGNvbmRpdGlvbiA9
IHRydWUpCi0gICAgewotICAgICAgICBBU1NFUlQoYmluZGluZ1BvaW50ICE9IHN0YXRpY19jYXN0
PEdMZW51bT4oMHUpKTsKLSAgICAgICAgaWYgKGNvbmRpdGlvbikgewotICAgICAgICAgICAgbV9i
aW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7Ci0gICAgICAgICAgICBHTF9HZXRJbnRlZ2Vydihi
aW5kaW5nUG9pbnRRdWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHTGludCo+KCZtX2JpbmRpbmdWYWx1
ZSkpOwotICAgICAgICB9Ci0gICAgfQogCi0gICAgflNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGlu
ZygpCi0gICAgewotICAgICAgICBpZiAobV9iaW5kaW5nUG9pbnQpCi0gICAgICAgICAgICBHTF9C
aW5kVGV4dHVyZShtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOwotICAgIH0KK3B1Ymxp
YzoKKyAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVudW0gYmluZGluZ1BvaW50
UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24gPSB0cnVlKTsKKyAg
ICB+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgR0xlbnVt
IG1fYmluZGluZ1BvaW50IHsgMCB9OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07
CisgICAgR0NHTGVudW0gbV9iaW5kaW5nUG9pbnQgeyAwIH07CisgICAgR0NHTHVpbnQgbV9iaW5k
aW5nVmFsdWUgeyAwdSB9OwogfTsKIAotCiBjbGFzcyBTY29wZWRCdWZmZXJCaW5kaW5nIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRCdWZmZXJCaW5kaW5nKTsKLXB1YmxpYzoKLSAg
ICBTY29wZWRCdWZmZXJCaW5kaW5nKEdMZW51bSBiaW5kaW5nUG9pbnQsIEdMdWludCBiaW5kaW5n
VmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghY29uZGl0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShi
aW5kaW5nUG9pbnQpLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7
Ci0gICAgICAgIGlmIChiaW5kaW5nVmFsdWUgPT0gbV9iaW5kaW5nVmFsdWUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50OwotICAgICAg
ICBHTF9CaW5kQnVmZmVyKG1fYmluZGluZ1BvaW50LCBiaW5kaW5nVmFsdWUpOwotICAgIH0KIAot
ICAgIH5TY29wZWRCdWZmZXJCaW5kaW5nKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2JpbmRpbmdQ
b2ludCkKLSAgICAgICAgICAgIEdMX0JpbmRCdWZmZXIobV9iaW5kaW5nUG9pbnQsIG1fYmluZGlu
Z1ZhbHVlKTsKLSAgICB9CitwdWJsaWM6CisgICAgU2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51
bSBiaW5kaW5nUG9pbnQsIEdDR0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0
cnVlKTsKKyAgICB+U2NvcGVkQnVmZmVyQmluZGluZygpOwogCiBwcml2YXRlOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgR0xlbnVtIHF1ZXJ5KEdMZW51bSBiaW5kaW5nUG9pbnQpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHQ0dMZW51bSBxdWVyeShHQ0dMZW51bSBiaW5kaW5nUG9pbnQpCiAgICAgewot
ICAgICAgICBpZiAoYmluZGluZ1BvaW50ID09IEdMX1BJWEVMX1BBQ0tfQlVGRkVSKQotICAgICAg
ICAgICAgcmV0dXJuIEdMX1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc7Ci0gICAgICAgIEFTU0VS
VChiaW5kaW5nUG9pbnQgPT0gR0xfUElYRUxfVU5QQUNLX0JVRkZFUik7Ci0gICAgICAgIHJldHVy
biBHTF9QSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc7CisgICAgICAgIGlmIChiaW5kaW5nUG9p
bnQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlBJWEVMX1BBQ0tfQlVGRkVSKQorICAgICAgICAgICAg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HOworICAg
ICAgICBBU1NFUlQoYmluZGluZ1BvaW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBB
Q0tfQlVGRkVSKTsKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBB
Q0tfQlVGRkVSX0JJTkRJTkc7CiAgICAgfQotICAgIEdMaW50IG1fYmluZGluZ1BvaW50IHsgMCB9
OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CisgICAgR0NHTGludCBtX2JpbmRp
bmdQb2ludCB7IDAgfTsKKyAgICBHQ0dMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CiB9Owor
CiBjbGFzcyBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOworCiBw
dWJsaWM6Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0Zv
cldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSkKLSAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFy
Z2V0KGlzRm9yV2ViR0wyID8gR0xfUkVBRF9GUkFNRUJVRkZFUiA6IEdMX0ZSQU1FQlVGRkVSKQor
ICAgIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJHTDIs
IEdDR0x1aW50IHJlc3RvcmVWYWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlz
Rm9yV2ViR0wyID8gR3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGlj
c0NvbnRleHRHTDo6RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9y
ZVZhbHVlKQogICAgIHsKICAgICB9Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJp
bmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSwgR0x1aW50IHZhbHVl
KQotICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJHTDIgPyBHTF9SRUFEX0ZS
QU1FQlVGRkVSIDogR0xfRlJBTUVCVUZGRVIpCisgICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1
ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0NHTHVpbnQgcmVzdG9yZVZhbHVlLCBHQ0dM
dWludCB2YWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8g
R3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6
RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9yZVZhbHVlKQogICAg
IHsKICAgICAgICAgYmluZEZyYW1lYnVmZmVyKHZhbHVlKTsKICAgICB9CisgICAgflNjb3BlZFJl
c3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCk7CiAgICAgdm9pZCBtYXJrQmluZGluZ0NoYW5n
ZWQoKQogICAgIHsKICAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9IHRydWU7CiAgICAgfQotICAg
IHZvaWQgYmluZEZyYW1lYnVmZmVyKEdMdWludCBiaW5kaW5nVmFsdWUpCi0gICAgewotICAgICAg
ICBpZiAoIW1fYmluZGluZ0NoYW5nZWQgJiYgbV9iaW5kaW5nVmFsdWUgPT0gYmluZGluZ1ZhbHVl
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFt
ZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsKLSAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9
IG1fYmluZGluZ1ZhbHVlICE9IGJpbmRpbmdWYWx1ZTsKLSAgICB9Ci0gICAgR0x1aW50IGZyYW1l
YnVmZmVyVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZWJ1ZmZlclRhcmdldDsgfQotICAg
IH5TY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZygpCi0gICAgewotICAgICAgICBp
ZiAobV9iaW5kaW5nQ2hhbmdlZCkKLSAgICAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2Zy
YW1lYnVmZmVyVGFyZ2V0LCBtX2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQorICAgIHZvaWQgYmluZEZy
YW1lYnVmZmVyKEdDR0x1aW50IGJpbmRpbmdWYWx1ZSk7CisgICAgR0NHTHVpbnQgZnJhbWVidWZm
ZXJUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lYnVmZmVyVGFyZ2V0OyB9CisKIHByaXZh
dGU6Ci0gICAgY29uc3QgR0xlbnVtIG1fZnJhbWVidWZmZXJUYXJnZXQ7Ci0gICAgR0x1aW50IG1f
YmluZGluZ1ZhbHVlIHsgMHUgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX2ZyYW1lYnVmZmVyVGFy
Z2V0OworICAgIEdDR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKICAgICBib29sIG1fYmlu
ZGluZ0NoYW5nZWQgeyBmYWxzZSB9OwogfTsKIAogY2xhc3MgU2NvcGVkUGl4ZWxTdG9yYWdlTW9k
ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSk7CisK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdMZW51bSBuYW1l
LCBib29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5h
bWUgOiAwKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSkKLSAgICAgICAgICAgIEdMX0dldElu
dGVnZXJ2KG1fbmFtZSwgJm1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIFNjb3BlZFBpeGVs
U3RvcmFnZU1vZGUoR0xlbnVtIG5hbWUsIEdMaW50IHZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRy
dWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQotICAgIHsKLSAgICAg
ICAgaWYgKG1fbmFtZSkgewotICAgICAgICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9v
cmlnaW5hbFZhbHVlKTsKLSAgICAgICAgICAgIHBpeGVsU3RvcmUodmFsdWUpOwotICAgICAgICB9
Ci0gICAgfQotICAgIH5TY29wZWRQaXhlbFN0b3JhZ2VNb2RlKCkKLSAgICB7Ci0gICAgICAgIGlm
IChtX25hbWUgJiYgbV92YWx1ZUNoYW5nZWQpCi0gICAgICAgICAgICBHTF9QaXhlbFN0b3JlaSht
X25hbWUsIG1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIHZvaWQgcGl4ZWxTdG9yZShHTGlu
dCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX25hbWUpOwotICAgICAgICBpZiAoIW1f
dmFsdWVDaGFuZ2VkICYmIG1fb3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCB2YWx1ZSk7Ci0gICAgICAgIG1f
dmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVlICE9IHZhbHVlOwotICAgIH0KLSAgICBvcGVy
YXRvciBHTGludCgpIGNvbnN0CisgICAgZXhwbGljaXQgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShH
Q0dMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAgIFNjb3BlZFBpeGVsU3Rv
cmFnZU1vZGUoR0NHTGVudW0gbmFtZSwgR0NHTGludCB2YWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0
cnVlKTsKKyAgICB+U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpOworICAgIHZvaWQgcGl4ZWxTdG9y
ZShHQ0dMaW50IHZhbHVlKTsKKyAgICBvcGVyYXRvciBHQ0dMaW50KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX25hbWUgJiYgIW1fdmFsdWVDaGFuZ2VkKTsKICAgICAgICAgcmV0dXJu
IG1fb3JpZ2luYWxWYWx1ZTsKICAgICB9CisKIHByaXZhdGU6Ci0gICAgY29uc3QgR0xlbnVtIG1f
bmFtZTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX25hbWU7CiAgICAgYm9vbCBtX3ZhbHVlQ2hhbmdl
ZCB7IGZhbHNlIH07Ci0gICAgR0xpbnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OworICAgIEdDR0xp
bnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OwogfTsKIAogY2xhc3MgU2NvcGVkVGV4dHVyZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkVGV4dHVyZSk7CisKIHB1YmxpYzoKLSAgICBT
Y29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0dlblRleHR1cmVzKDEsICZtX29iamVj
dCk7Ci0gICAgfQotICAgIH5TY29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0RlbGV0
ZVRleHR1cmVzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMdWludCgpIGNv
bnN0CisgICAgU2NvcGVkVGV4dHVyZSgpOworICAgIH5TY29wZWRUZXh0dXJlKCk7CisgICAgb3Bl
cmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2JqZWN0Owog
ICAgIH0KKwogcHJpdmF0ZToKLSAgICBHTHVpbnQgbV9vYmplY3QgeyAwdSB9OworICAgIEdDR0x1
aW50IG1fb2JqZWN0IHsgMHUgfTsKIH07CiAKIGNsYXNzIFNjb3BlZEZyYW1lYnVmZmVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRGcmFtZWJ1ZmZlcik7CisKIHB1YmxpYzoKLSAg
ICBTY29wZWRGcmFtZWJ1ZmZlcigpCi0gICAgewotICAgICAgICBHTF9HZW5GcmFtZWJ1ZmZlcnMo
MSwgJm1fb2JqZWN0KTsKLSAgICB9Ci0gICAgflNjb3BlZEZyYW1lYnVmZmVyKCkKLSAgICB7Ci0g
ICAgICAgIEdMX0RlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9vYmplY3QpOwotICAgIH0KLSAgICBv
cGVyYXRvciBHTHVpbnQoKSBjb25zdAorICAgIFNjb3BlZEZyYW1lYnVmZmVyKCk7CisgICAgflNj
b3BlZEZyYW1lYnVmZmVyKCk7CisgICAgb3BlcmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuIG1fb2JqZWN0OwogICAgIH0KIHByaXZhdGU6Ci0gICAgR0x1aW50IG1f
b2JqZWN0IHsgMCB9OworICAgIEdDR0x1aW50IG1fb2JqZWN0IHsgMCB9OwogfTsKIAogY2xhc3Mg
U2NvcGVkR0xGZW5jZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkR0xGZW5jZSk7
CisKIHB1YmxpYzoKICAgICBTY29wZWRHTEZlbmNlKCkgPSBkZWZhdWx0OwogICAgIFNjb3BlZEdM
RmVuY2UoU2NvcGVkR0xGZW5jZSYmIG90aGVyKQpAQCAtMjIxLDIzICsxNjEsMjYgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9Ci0gICAgdm9pZCByZXNl
dCgpCi0gICAgewotICAgICAgICBpZiAobV9vYmplY3QpIHsKLSAgICAgICAgICAgIEdMX0RlbGV0
ZVN5bmMobV9vYmplY3QpOwotICAgICAgICAgICAgbV9vYmplY3QgPSB7IH07Ci0gICAgICAgIH0K
LSAgICB9CisgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgYWJhbmRvbigpIHsgbV9vYmplY3Qg
PSB7IH07IH0KLSAgICB2b2lkIGZlbmNlU3luYygpCi0gICAgewotICAgICAgICByZXNldCgpOwot
ICAgICAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01Q
TEVURSwgMCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMc3luYygpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CisgICAgdm9pZCBmZW5jZVN5bmMoKTsKKyAgICBHQ0dMc3luYyBnZXQoKSBjb25z
dCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIG9wZXJhdG9yIEdDR0xzeW5jKCkgY29uc3QgeyBy
ZXR1cm4gbV9vYmplY3Q7IH0KICAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3Q7IH0KKworcHJpdmF0ZToKKyAgICBHQ0dMc3luYyBtX29iamVjdCB7IH07Cit9OworCitj
bGFzcyBTY29wZWRHTENhcGFiaWxpdHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjb3Bl
ZEdMQ2FwYWJpbGl0eSk7CitwdWJsaWM6CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5KEdDR0xlbnVt
IGNhcGFiaWxpdHksIGJvb2wgZW5hYmxlKTsKKyAgICB+U2NvcGVkR0xDYXBhYmlsaXR5KCk7CisK
IHByaXZhdGU6Ci0gICAgR0xzeW5jIG1fb2JqZWN0IHsgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBt
X2NhcGFiaWxpdHk7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiBtX29yaWdpbmFsOwog
fTsKIAogYm9vbCBwbGF0Zm9ybUlzQU5HTEVBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAKaW5kZXggYzVjNmJmYTU3NWU5NDk0NjYxMDBlMTY1MzE4MzI4M2EwOGEw
ZGI3Yi4uNWI2NzA2ZDBiMTBhYTNhMDdkYjc0NDI2ZjMyN2U3YWEwNzgxNzkzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQaXhlbEJ1
ZmZlci5oIgotI2luY2x1ZGUgIlRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBA
IC0xNjUsOSArMTY0LDkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZWxlYXNlVGhy
ZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJlaGF2aW8KICAgICAgICAgICAgIEVH
TF9NYWtlQ3VycmVudChjdXJyZW50RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgICAgIH0KICAgICAgICAgY29uc3RleHByIEVHTE5h
dGl2ZURpc3BsYXlUeXBlIG5hdGl2ZURpc3BsYXlzW10gPSB7Ci0gICAgICAgICAgICBkZWZhdWx0
RGlzcGxheSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RUdMTmF0aXZlRGlzcGxheVR5
cGU+KGRlZmF1bHREaXNwbGF5KSwKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgICAgIGRl
ZmF1bHRPcGVuR0xEaXNwbGF5LAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxFR0xOYXRp
dmVEaXNwbGF5VHlwZT4oZGVmYXVsdE9wZW5HTERpc3BsYXkpLAogI2VuZGlmCiAgICAgICAgIH07
CiAgICAgICAgIGZvciAoYXV0byBuYXRpdmVEaXNwbGF5IDogbmF0aXZlRGlzcGxheXMpIHsKQEAg
LTMyMiw4ICszMjEsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmF0dGFjaERlcHRo
QW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdMdWludCBpbnRlcm5hbAogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihH
TF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2Nv
cGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOworICAgIFNjb3BlZEdMQ2FwYWJpbGl0eSBz
Y29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOworICAgIFNjb3BlZEdMQ2Fw
YWJpbGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CiAKICAgICBHTGludCBi
b3VuZEZyYW1lQnVmZmVyID0gMDsKICAgICBHTGludCBib3VuZFJlYWRGcmFtZUJ1ZmZlciA9IDA7
CkBAIC01NjcsOCArNTY2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwcmVwYXJl
VGV4dHVyZUltcGwoKQogI2Vsc2UKICAgICBpZiAobV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0
dXJlKSB7CiAgICAgICAgIC8vIEJsaXQgbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0dXJlIGlu
dG8gbV90ZXh0dXJlLgotICAgICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3Nv
cihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKKyAgICAgICAgU2NvcGVkR0xD
YXBhYmlsaXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CisgICAg
ICAgIFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7
CiAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSX0FOR0xFLCBt
X3ByZXNlcnZlRHJhd2luZ0J1ZmZlckZCTyk7CiAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihH
TF9SRUFEX0ZSQU1FQlVGRkVSX0FOR0xFLCBtX2Zibyk7CiAgICAgICAgIEdMX0JsaXRGcmFtZWJ1
ZmZlckFOR0xFKDAsIDAsIG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQsIDAsIDAsIG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX05F
QVJFU1QpOwpAQCAtNjIxLDggKzYyMCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6
cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgbV9jdXJyZW50V2lkdGggPSB3aWR0
aDsKICAgICBtX2N1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7CiAKLSAgICBUZW1wb3JhcnlBTkdMRVNl
dHRpbmcgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICBUZW1w
b3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOworICAg
IFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFM
U0UpOworICAgIFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9G
QUxTRSk7CiAgICAgU2NvcGVkQnVmZmVyQmluZGluZyBzY29wZWRQaXhlbFVucGFja0J1ZmZlclJl
c2V0KEdMX1BJWEVMX1VOUEFDS19CVUZGRVIsIDAsIG1faXNGb3JXZWJHTDIpOwogCiAgICAgYm9v
bCBtdXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUod2lkdGgsIGhlaWdodCkpOwpA
QCAtMjc4Miw3ICsyNzgxLDcgQEAgR0NHTGJvb2xlYW4gR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6
aXNTeW5jKEdDR0xzeW5jIHN5bmMpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgcmV0dXJuIEdMX0ZBTFNFOwogCi0gICAgcmV0dXJuIEdMX0lzU3luYyhzeW5jKTsKKyAg
ICByZXR1cm4gR0xfSXNTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oc3luYykpOwogfQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMoR0NHTHN5bmMgc3luYykKQEAgLTI3
OTAsNyArMjc4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGVsZXRlU3luYyhH
Q0dMc3luYyBzeW5jKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEdMX0RlbGV0ZVN5bmMoc3luYyk7CisgICAgR0xfRGVsZXRlU3luYyhzdGF0
aWNfY2FzdDxHTHN5bmM+KHN5bmMpKTsKIH0KIAogR0NHTGVudW0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6Y2xpZW50V2FpdFN5bmMoR0NHTHN5bmMgc3luYywgR0NHTGJpdGZpZWxkIGZsYWdzLCBH
Q0dMdWludDY0IHRpbWVvdXQpCkBAIC0yNzk4LDcgKzI3OTcsNyBAQCBHQ0dMZW51bSBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpjbGllbnRXYWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0Zmll
bGQgZmxhZwogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBH
TF9XQUlUX0ZBSUxFRDsKIAotICAgIHJldHVybiBHTF9DbGllbnRXYWl0U3luYyhzeW5jLCBmbGFn
cywgdGltZW91dCk7CisgICAgcmV0dXJuIEdMX0NsaWVudFdhaXRTeW5jKHN0YXRpY19jYXN0PEdM
c3luYz4oc3luYyksIGZsYWdzLCB0aW1lb3V0KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRH
TEFOR0xFOjp3YWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0xp
bnQ2NCB0aW1lb3V0KQpAQCAtMjgwNiw3ICsyODA1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRH
TEFOR0xFOjp3YWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0xp
bnQKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBHTF9XYWl0U3luYyhzeW5jLCBmbGFncywgdGltZW91dCk7CisgICAgR0xfV2FpdFN5bmMoc3Rh
dGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgZmxhZ3MsIHRpbWVvdXQpOwogfQogCiBHQ0dMaW50IEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OmdldFN5bmNpKEdDR0xzeW5jIHN5bmMsIEdDR0xlbnVtIHBu
YW1lKQpAQCAtMjgxNSw3ICsyODE0LDcgQEAgR0NHTGludCBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpnZXRTeW5jaShHQ0dMc3luYyBzeW5jLCBHQ0dMZW51bSBwbmFtZSkKICAgICBpZiAoIW1ha2VD
b250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gdmFsdWU7CiAKLSAgICBHTF9HZXRTeW5j
aXYoc3luYywgcG5hbWUsIDEsIG51bGxwdHIsICZ2YWx1ZSk7CisgICAgR0xfR2V0U3luY2l2KHN0
YXRpY19jYXN0PEdMc3luYz4oc3luYyksIHBuYW1lLCAxLCBudWxscHRyLCAmdmFsdWUpOwogICAg
IHJldHVybiB2YWx1ZTsKIH0KIApAQCAtMjk3Niw3ICsyOTc1LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xkZXN0RnJhbWUoKQogICAgICAgICAvLyBUaGlz
IG1lYW5zIHRoZSBjcmVhdGlvbiBvZiB0aGlzIGZlbmNlIGhhcyBhbHJlYWR5IGJlZW4gZmx1c2hl
ZC4KICAgICAgICAgZmxhZ3MgPSAwOwogI2VuZGlmCi0gICAgICAgIEdMZW51bSByZXN1bHQgPSBH
TF9DbGllbnRXYWl0U3luYyhmZW5jZSwgZmxhZ3MsIG1heEZyYW1lRHVyYXRpb24ubmFub3NlY29u
ZHNBczxHTHVpbnQ2ND4oKSk7CisgICAgICAgIEdMZW51bSByZXN1bHQgPSBHTF9DbGllbnRXYWl0
U3luYyhzdGF0aWNfY2FzdDxHTHN5bmM+KGZlbmNlLmdldCgpKSwgZmxhZ3MsIG1heEZyYW1lRHVy
YXRpb24ubmFub3NlY29uZHNBczxHTHVpbnQ2ND4oKSk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQg
IT0gR0xfV0FJVF9GQUlMRUQpOwogICAgICAgICBzdWNjZXNzID0gcmVzdWx0ICE9IEdMX1dBSVRf
RkFJTEVEICYmIHJlc3VsdCAhPSBHTF9USU1FT1VUX0VYUElSRUQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDJmZmY3NTBhOWE1YjAzNTkxMzAxZTU5ZjZkZGY1Y2Ix
NjY2M2U2YzUuLjgwMzExZjRjOWM4MjgzM2Q5MjM4MWVjMTYwYTJkYmYwZTRlMDJmZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAgLTY4LDggKzY4LDggQEAgY2xhc3MgV0VCQ09S
RV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRH
TCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSgpOwogCi0g
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29u
c3Q7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygp
IGNvbnN0OworICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OworICAgIEdD
R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKICAgICBHQ0dMZW51bSBkcmF3aW5nQnVm
ZmVyVGV4dHVyZVRhcmdldCgpOwogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5nQnVmZmVyVGV4
dHVyZVRhcmdldFF1ZXJ5Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsK
ICAgICBzdGF0aWMgR0NHTGludCBFR0xEcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldEZvckRyYXdp
bmdUYXJnZXQoR0NHTGVudW0gZHJhd2luZ1RhcmdldCk7CkBAIC0zNjMsOSArMzYzLDkgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRSZW5kZXJpbmdSZXN1bHRz
Rm9yUGFpbnRpbmcoKTsKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkQ29tcG9z
aXRlZFJlc3VsdHNGb3JQYWludGluZygpOwogCi0gICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRp
dmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7CisgICAg
Y29uc3RleHByIHN0YXRpYyBHQ0dMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBn
Y0dMRGVmYXVsdERpc3BsYXk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgY29uc3RleHByIHN0
YXRpYyBFR0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0T3BlbkdMRGlzcGxheSA9IEVHTF9DQVNU
KEVHTE5hdGl2ZURpc3BsYXlUeXBlLCAtMSk7CisgICAgY29uc3RleHByIHN0YXRpYyBHQ0dMTmF0
aXZlRGlzcGxheVR5cGUgZGVmYXVsdE9wZW5HTERpc3BsYXkgPSBzdGF0aWNfY2FzdDxHQ0dMTmF0
aXZlRGlzcGxheVR5cGU+KC0xKTsKICAgICBzdGF0aWNfYXNzZXJ0KGRlZmF1bHREaXNwbGF5ICE9
IGRlZmF1bHRPcGVuR0xEaXNwbGF5KTsKICNlbmRpZgogCkBAIC00MDYsNyArNDA2LDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJ
bnRSZWN0JiA9IEludFJlY3QoKSk7CiAgICAgdm9pZCBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZm
ZXJJZk5lZWRlZChHQ0dMdWludCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGF0aWMgYm9vbCBtYWtl
Q3VycmVudChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSwgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCk7CisgICAgc3RhdGljIGJvb2wgbWFrZUN1cnJlbnQoR0NHTERpc3BsYXksIEdD
R0xDb250ZXh0KTsKICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCByZXNoYXBlRGlzcGxheUJ1ZmZl
ckJhY2tpbmcoKSA9IDA7CiAKQEAgLTQzOSw3ICs0MzksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8g
QXR0YWNoZXMgbV90ZXh0dXJlIHdoZW4gbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0dXJlIGlz
IG5vbi16ZXJvLgogICAgIEdDR0x1aW50IG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyRkJPIHsgMCB9
OwogICAgIC8vIFF1ZXJpZWQgYXQgZGlzcGxheSBzdGFydHVwLgotICAgIEVHTGludCBtX2RyYXdp
bmdCdWZmZXJUZXh0dXJlVGFyZ2V0IHsgLTEgfTsKKyAgICBHQ0dMaW50IG1fZHJhd2luZ0J1ZmZl
clRleHR1cmVUYXJnZXQgeyAtMSB9OwogICAgIC8vIEVycm9ycyByYWlzZWQgYnkgc3ludGhlc2l6
ZUdMRXJyb3IoKS4KICAgICBMaXN0SGFzaFNldDxHQ0dMZW51bT4gbV9zeW50aGV0aWNFcnJvcnM7
CiAgICAgYm9vbCBtX2lzRm9yV2ViR0wyIHsgZmFsc2UgfTsKQEAgLTQ1NCw5ICs0NTQsOSBAQCBw
cm90ZWN0ZWQ6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IE1vdmUgdGhlc2Ug
dG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KICAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFj
ZVN3YXBDaGFpbiBtX3N3YXBDaGFpbjsKLSAgICBFR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51
bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51
bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIG1fY29uZmlnT2Jq
IHsgbnVsbHB0ciB9OworICAgIEdDR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxwdHIgfTsK
KyAgICBHQ0dMQ29udGV4dCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CisgICAgR0NHTENvbmZp
ZyBtX2NvbmZpZ09iaiB7IG51bGxwdHIgfTsKICAgICAvLyBCYWNraW5nIHN0b3JlIGZvciB0aGUg
dGhlIGJ1ZmZlciB3aGljaCBpcyBldmVudHVhbGx5IHVzZWQgZm9yIGRpc3BsYXkuCiAgICAgLy8g
V2hlbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPT0gZmFsc2UsIHRoaXMgaXMgdGhlIGRyYXdpbmcg
YnVmZmVyIGJhY2tpbmcgc3RvcmUuCiAgICAgLy8gV2hlbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIg
PT0gdHJ1ZSwgdGhpcyBpcyBibGl0dGVkIHRvIGR1cmluZyBkaXNwbGF5IHByZXBhcmUuCkBAIC00
NzMsNyArNDczLDcgQEAgcHJvdGVjdGVkOgogICAgIGNsYXNzIEVHTEltYWdlQmFja2luZyB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBFR0xJbWFn
ZUJhY2tpbmcoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkpOworICAgICAgICBFR0xJ
bWFnZUJhY2tpbmcoR0NHTERpc3BsYXkpOwogICAgICAgICB+RUdMSW1hZ2VCYWNraW5nKCk7CiAK
ICAgICAgICAgYm9vbCByZXNldChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGJvb2wgaGFzQWxwaGEp
OwpAQCAtNDg4LDcgKzQ4OCw3IEBAIHByb3RlY3RlZDoKICAgICBwcml2YXRlOgogICAgICAgICB2
b2lkIHJlbGVhc2VSZXNvdXJjZXMoKTsKIAotICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMRGlzcGxheSBtX2Rpc3BsYXk7CisgICAgICAgIEdDR0xEaXNwbGF5IG1fZGlzcGxheTsKIAog
ICAgICAgICBnYm1fYm8qIG1fQk8geyBudWxscHRyIH07CiAgICAgICAgIGludCBtX0ZEIHsgLTEg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1Rl
bXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjOWNlNWIxY2E3YzZiYmMxYzE1NmJlZTRlNmZlOTk2OTJhNDBlNjAyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQotI2luY2x1ZGUgIlRlbXBvcmFyeUFOR0xFU2V0dGlu
Zy5oIgotCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotVGVtcG9yYXJ5QU5HTEVTZXR0aW5nOjpUZW1wb3JhcnlBTkdMRVNldHRpbmcoR0xlbnVtIGNh
cGFiaWxpdHksIEdMZW51bSBzY29wZWRTdGF0ZSkKLSAgICA6IG1fY2FwYWJpbGl0eShjYXBhYmls
aXR5KQotICAgICwgbV9zY29wZWRTdGF0ZShzY29wZWRTdGF0ZSkKLXsKLSAgICBtX29yaWdpbmFs
U3RhdGUgPSBHTF9Jc0VuYWJsZWQobV9jYXBhYmlsaXR5KTsKLSAgICBpZiAobV9vcmlnaW5hbFN0
YXRlID09IG1fc2NvcGVkU3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChHTF9UUlVF
ID09IG1fc2NvcGVkU3RhdGUpCi0gICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOwotICAg
IGVsc2UKLSAgICAgICAgR0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOwotfQotCi1UZW1wb3JhcnlB
TkdMRVNldHRpbmc6On5UZW1wb3JhcnlBTkdMRVNldHRpbmcoKQotewotICAgIGlmIChtX29yaWdp
bmFsU3RhdGUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKEdM
X1RSVUUgPT0gbV9vcmlnaW5hbFN0YXRlKQotICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5
KTsKLSAgICBlbHNlCi0gICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKLX0KLQotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xF
U2V0dGluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDQ3NzA5NzUzNDQ4MTI0
ZThmMmRjNjllMmEwMjNlOTc4MjljZjI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1Rl
bXBvcmFyeUFOR0xFU2V0dGluZy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgotCi0jaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nPD4gaXMgdXNlZnVsIGZvciB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgKG9y
IGVuYWJsaW5nKSBhIHBhcnRpY3VsYXIgT3BlbkdMCi0vLyBmZWF0dXJlIHdpdGggYSBwYXJ0aWN1
bGFyIHNjb3BlLiBBIFRlbXBvcmFyeUFOR0xFU2V0dGluZzw+IG9iamVjdCByZXR1cm5zIHRoZSBm
bGFnIHRvIGl0cyBvcmlnaW5hbAotLy8gdmFsdWUgdXBvbiBkZXN0cnVjdGlvbiwgbWFraW5nIGl0
IGFuIGFsdGVybmF0aXZlIHRvIGNoZWNraW5nLCBjbGVhcmluZywgYW5kIHJlc2V0dGluZyBlYWNo
IGZsYWcKLS8vIGF0IGFsbCBvZiBhIGJsb2NrJ3MgZXhpdCBwb2ludHMuCi0vLwotLy8gQmFzZWQg
b24gU2V0Rm9yU2NvcGU8PgotCi1jbGFzcyBUZW1wb3JhcnlBTkdMRVNldHRpbmcgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFRlbXBvcmFyeUFOR0xFU2V0dGluZyk7Ci1wdWJsaWM6Ci0gICAg
VGVtcG9yYXJ5QU5HTEVTZXR0aW5nKEdDR0xlbnVtIGNhcGFiaWxpdHksIEdDR0xlbnVtIHNjb3Bl
ZFN0YXRlKTsKLSAgICB+VGVtcG9yYXJ5QU5HTEVTZXR0aW5nKCk7Ci0KLXByaXZhdGU6Ci0gICAg
Y29uc3QgR0NHTGVudW0gbV9jYXBhYmlsaXR5OwotICAgIGNvbnN0IEdDR0xlbnVtIG1fc2NvcGVk
U3RhdGU7Ci0gICAgR0NHTGVudW0gbV9vcmlnaW5hbFN0YXRlOwotfTsKLQotfQotCi11c2luZyBX
ZWJDb3JlOjpUZW1wb3JhcnlBTkdMRVNldHRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3Bw
CmluZGV4IGU5OTNiNzc2NzE4OWZlN2VkZjZjMjY1OTIxNWFjZTNjMmVhMDY5MzkuLjQwN2U4Mjg0
MDdmYmIwOWQ3ZWVlYmEyODY4ODQ3ZTNkYWY2ZjAxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29j
b2EuY3BwCkBAIC0yNywxMiArMjcsMjMgQEAKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllc0NvY29h
LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0KKyNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKKyNp
bmNsdWRlICJBTkdMRVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
IDx3dGYvZGFyd2luL1dlYWtMaW5raW5nLmg+CisKK1dURl9XRUFLX0xJTktfRk9SQ0VfSU1QT1JU
KEVHTF9Jbml0aWFsaXplKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkKiBjcmVhdGVQ
YnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmlnIGNv
bmZpZywgR0xlbnVtIHRhcmdldCwgRUdMaW50IHVzYWdlSGludCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIHR5cGUsIElPU3VyZmFj
ZVJlZiBzdXJmYWNlLCBHTHVpbnQgcGxhbmUpCitib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJs
ZSgpCit7CisgICAgLy8gVGhlIEFOR0xFIGlzIHdlYWsgbGlua2VkIGluIGZ1bGwsIGFuZCB0aGUg
RUdMX0luaXRpYWxpemUgaXMgZXhwbGljaXRseSB3ZWFrIGxpbmtlZCBhYm92ZQorICAgIC8vIHNv
IHRoYXQgd2UgY2FuIGRldGVjdCB0aGUgY2FzZSB3aGVyZSBBTkdMRSBpcyBub3QgcHJlc2VudC4K
KyAgICByZXR1cm4gISFFR0xfSW5pdGlhbGl6ZTsKK30KKwordm9pZCogY3JlYXRlUGJ1ZmZlckFu
ZEF0dGFjaElPU3VyZmFjZShHQ0dMRGlzcGxheSBkaXNwbGF5LCBHQ0dMQ29uZmlnIGNvbmZpZywg
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IHVzYWdlSGludCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gdHlwZSwgSU9T
dXJmYWNlUmVmIHN1cmZhY2UsIEdDR0x1aW50IHBsYW5lKQogewogICAgIGF1dG8gZWdsVGV4dHVy
ZVRhcmdldCA9IHRhcmdldCA9PSBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSA/IEVHTF9URVhU
VVJFX1JFQ1RBTkdMRV9BTkdMRSA6IEVHTF9URVhUVVJFXzJEOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0Nv
Y29hLmgKaW5kZXggOTNiYTRlMGRjOTEzMmU4NTg3NzVmOWMyNWJhZDY3NDhjN2M4NjliOC4uMGFj
ZDcyMWQwODdhYTJmN2I4NDM2Y2JmMzQ1NTRhNTU5ZGUxNDM3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVz
Q29jb2EuaApAQCAtMjcsMTYgKzI3LDE2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNs
dWRlICJBTkdMRUhlYWRlcnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKIAogdHlw
ZWRlZiBzdHJ1Y3QgX19JT1N1cmZhY2UgKklPU3VyZmFjZVJlZjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAvLyBSZXR1cm5zIGEgaGFuZGxlIHdoaWNoLCBpZiBub24tbnVsbCwgbXVzdCBiZSBy
ZWxlYXNlZCB3aXRoIGRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKCkuCi12b2lkKiBj
cmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xl
bnVtIHRhcmdldCwgRUdMaW50IHVzYWdlSGludCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiwgR0x1
aW50IHBsYW5lKTsKK3ZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoR0NHTERp
c3BsYXksIEdDR0xDb25maWcsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCB1c2FnZUhpbnQsIEdD
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQs
IEdDR0xlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiwgR0NHTHVpbnQgcGxhbmUpOwogCi12b2lkIGRl
c3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXksIHZvaWQqIGhhbmRsZSk7
Cit2b2lkIGRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKEdDR0xEaXNwbGF5LCB2b2lk
KiBoYW5kbGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDM2
ZThmMGZiMDI5Mzc3YjRlZmZlNDA1MzUyMzdlNTgyMjJmYmY3NzEuLjQ3ZDcxMDYxMTFjNWI2MWNj
YjQ1YzI3YTBkMWYzNDRhMWE1MWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQpAQCAtMjgsMTkgKzI4LDIwIEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5oIgogCisjaW1wb3J0ICJBTkdMRUhlYWRlcnMuaCIKICNpbXBvcnQg
IkFOR0xFVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW1w
b3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgog
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBvcnQgIlBy
b2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAj
aW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxNZXRhbC9N
ZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KLSNpbXBvcnQgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcu
aD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC01NywxNyArNTgsOCBAQAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgog
I2VuZGlmCiAKLVdURl9XRUFLX0xJTktfRk9SQ0VfSU1QT1JUKEVHTF9Jbml0aWFsaXplKTsKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCi17
Ci0gICAgLy8gVGhlIEFOR0xFIGlzIHdlYWsgbGlua2VkIGluIGZ1bGwsIGFuZCB0aGUgRUdMX0lu
aXRpYWxpemUgaXMgZXhwbGljaXRseSB3ZWFrIGxpbmtlZCBhYm92ZQotICAgIC8vIHNvIHRoYXQg
d2UgY2FuIGRldGVjdCB0aGUgY2FzZSB3aGVyZSBBTkdMRSBpcyBub3QgcHJlc2VudC4KLSAgICBy
ZXR1cm4gISFFR0xfSW5pdGlhbGl6ZTsKLX0KLQogLy8gSW4gaXNDdXJyZW50Q29udGV4dFByZWRp
Y3RhYmxlKCkgPT0gdHJ1ZSBjYXNlIHRoaXMgdmFyaWFibGUgaXMgYWNjZXNzZWQgaW4gc2luZ2xl
LXRocmVhZGVkIG1hbm5lci4KIC8vIEluIGlzQ3VycmVudENvbnRleHRQcmVkaWN0YWJsZSgpID09
IGZhbHNlIGNhc2UgdGhpcyB2YXJpYWJsZSBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVh
ZHMgYnV0IGFsd2F5cyBzZXF1ZW50aWFsbHkKIC8vIGFuZCBpdCBhbHdheXMgY29udGFpbnMgbnVs
bHB0ciBhbmQgbnVsbHB0ciBpcyBhbHdheXMgd3JpdHRlbiB0byBpdC4KQEAgLTU5OSw3ICs1OTEs
NyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmJpbmREaXNwbGF5QnVmZmVyQmFja2lu
ZyhzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6Om1ha2VDdXJyZW50KFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0xEaXNwbGF5IGRpc3BsYXksIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgY29udGV4dCkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6bWFrZUN1cnJlbnQoR0NHTERpc3BsYXkgZGlz
cGxheSwgR0NHTENvbnRleHQgY29udGV4dCkKIHsKICAgICBjdXJyZW50Q29udGV4dCA9IG51bGxw
dHI7CiAgICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChkaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIGNvbnRleHQpOwpAQCAtODAxLDEyICs3OTMsMTIgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxh
eWVyLCBQbGF0Zm9ybUcKIH0KICNlbmRpZgogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlz
cGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NH
TERpc3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9kaXNwbGF5T2JqOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QK
K0dDR0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBjb25z
dAogewogICAgIHJldHVybiBtX2NvbmZpZ09iajsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuY3BwCmluZGV4IDJjOThmOWQ5MjkyM2MwNDlhOTRiMzQ5YjRmNzc1Mjk0NzcxOWUyMjguLmE4
M2NmYTI5NTcwODYwZjMzOTM0YTM4NzI4NmQ2OWI1MjgwNGE1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKSAm
JiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlICJBTkdMRUhl
YWRlcnMuaCIKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSAiRm91
ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWQ29jb2EuaAppbmRleCA5ZTFiNDQ0OWQzYjRiYjlmNWMwZDdhZThkODVmMzBlZjFkMDRi
YThhLi43N2RlZGQ0ODcyOTExOTYxMTM1N2JiZGRiNmNjNjhjMzg4OWJiMDAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENW
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuaApAQCAtNTEsOSArNTEsOSBAQCBwcml2YXRlOgogCiAKICAgICBH
cmFwaGljc0NvbnRleHRHTENvY29hJiBtX293bmVyOwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0xEaXNwbGF5IG1fZGlzcGxheSB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dEdMIG1fY29udGV4dCB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIG1fY29uZmlnIHsgbnVsbHB0ciB9OworICAgIEdDR0xEaXNwbGF5IG1fZGlz
cGxheSB7IG51bGxwdHIgfTsKKyAgICBHQ0dMQ29udGV4dCBtX2NvbnRleHQgeyBudWxscHRyIH07
CisgICAgR0NHTENvbmZpZyBtX2NvbmZpZyB7IG51bGxwdHIgfTsKIAogICAgIFBsYXRmb3JtR0xP
YmplY3QgbV9mcmFtZWJ1ZmZlciB7IDAgfTsKICAgICBQbGF0Zm9ybUdMT2JqZWN0IG1feXV2VmVy
dGV4QnVmZmVyIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCBjNjFlZWJjMzA2Nzk3NjM1YmYyNWM4OTBk
YTk5Y2U1YmNlMzIyMGIzLi4yNjJiMmZiOTAyMzc4MDJjZGYwNWEyNzhiNDQzMWU2ZTgwODliMmY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgR0xDb250ZXh0RUdMOjpzd2Fw
SW50ZXJ2YWwoaW50IGludGVydmFsKQogICAgIGVnbFN3YXBJbnRlcnZhbChtX2Rpc3BsYXkuZWds
RGlzcGxheSgpLCBpbnRlcnZhbCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0xD
b250ZXh0RUdMOjpwbGF0Zm9ybUNvbnRleHQoKQorR0NHTENvbnRleHQgR0xDb250ZXh0RUdMOjpw
bGF0Zm9ybUNvbnRleHQoKQogewogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXgg
M2MzYTNkN2YwNTc3M2FkZWMwYzZjZDg3MWVmYmE0ZDZkYjM1YzY0MS4uNTk4YjBiNjczMjZhNjY0
MTJkNjU0MmJkOWJlOTE4YzRmZDc2N2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtODksNyArODksNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3dhcEludGVydmFsKGludCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0VH
TENvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIEdDR0xD
b250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOwogCiAgICAgZW51bSBFR0xTdXJmYWNl
VHlwZSB7IFBidWZmZXJTdXJmYWNlLCBXaW5kb3dTdXJmYWNlLCBQaXhtYXBTdXJmYWNlLCBTdXJm
YWNlbGVzcyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nbHgvR0xDb250ZXh0R0xYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dseC9HTENvbnRleHRHTFguY3BwCmluZGV4IDVmYmZhYjZjZDBmMzExM2ZmMDQ0N2JiM2UxYzY5
ZjE3NzgwMzQxM2EuLjk4MzlkOWJhOWEyZTVhMGMzZGJmMDRiZjRkOTRlMDNhM2M0YzlmOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRH
TFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRl
eHRHTFguY3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBHTENvbnRleHRHTFg6OnN3YXBJbnRl
cnZhbChpbnQgaW50ZXJ2YWwpCiAgICAgZ2xYU3dhcEludGVydmFsU0dJKGludGVydmFsKTsKIH0K
IAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBHTENvbnRleHRHTFg6OnBsYXRmb3JtQ29udGV4
dCgpCitHQ0dMQ29udGV4dCBHTENvbnRleHRHTFg6OnBsYXRmb3JtQ29udGV4dCgpCiB7CiAgICAg
cmV0dXJuIG1fY29udGV4dC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaAppbmRleCBkM2RiMzVkNjU2MTFjMThlMGEw
NWJjYTEwNDNlMTlkZmE0OTQ3MjQyLi44MjIyZDQ5NjNkMDhhZWY2Y2MyNThlMzJlNDgxZGM1ODE5
ODIzMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgv
R0xDb250ZXh0R0xYLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4
L0dMQ29udGV4dEdMWC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2Fw
SW50ZXJ2YWwoaW50KSBvdmVycmlkZTsKICAgICBib29sIGlzRUdMQ29udGV4dCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
IHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29u
dGV4dCgpIG92ZXJyaWRlOwogCiAgICAgR0xDb250ZXh0R0xYKFBsYXRmb3JtRGlzcGxheSYsIFhV
bmlxdWVHTFhDb250ZXh0JiYsIEdMTmF0aXZlV2luZG93VHlwZSk7CiAgICAgR0xDb250ZXh0R0xY
KFBsYXRmb3JtRGlzcGxheSYsIFhVbmlxdWVHTFhDb250ZXh0JiYsIFhVbmlxdWVHTFhQYnVmZmVy
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAppbmRleCAw
MGY5OWU4Mzc0YzRkYTEwMTdjYTRkMjMxNWRjZmE0NDcyZTI5MDYzLi43NTRkNjI0NDg2ZWMwNGVj
OTVlZjEzZjBmZDU3MjE5MTQwZTVhMTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNw
bGF5R1N0cmVhbWVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCBib29sIFBsYXRmb3JtRGlzcGxheTo6
dHJ5RW5zdXJlR3N0R0xDb250ZXh0KCkgY29uc3QKICAgICBhdXRvKiBzaGFyZWRDb250ZXh0ID0g
Y29uc3RfY2FzdDxQbGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+c2hhcmluZ0dMQ29udGV4dCgpOwog
ICAgIGlmICghc2hhcmVkQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0wgY29udGV4dEhhbmRsZSA9IHNoYXJlZENvbnRleHQtPnBsYXRm
b3JtQ29udGV4dCgpOworICAgIEdDR0xDb250ZXh0IGNvbnRleHRIYW5kbGUgPSBzaGFyZWRDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHRIYW5kbGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVM
YXllci5jcHAKaW5kZXggMzhjMDRkMWU2ZGVlMzZmMWQyMDJhOWY4OWIyNDI1N2NiNjU0NGUwOC4u
MjVlMmI5MWNjYzRiOThmMzkzNDBhMTVlZDA2NDUxMjFmMTRlZjAyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xB
TkdMRUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCkBAIC0yMTQsMTcgKzIxNCwxNyBA
QCBib29sIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6Om1ha2VDb250ZXh0Q3VycmVudCgp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTEFO
R0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250
ZXh0IEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNwbGF5KCkg
Y29uc3QKK0dDR0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3Jt
RGlzcGxheSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheTsKIH0KIAotUGxhdGZvcm1H
cmFwaGljc0NvbnRleHRHTENvbmZpZyBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0
Zm9ybUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRl
eHQ6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb25maWc7CiB9CkBA
IC0yNDgsMTkgKzI0OCwxOSBAQCBib29sIEdDR0xBTkdMRUxheWVyOjptYWtlQ29udGV4dEN1cnJl
bnQoKQogCiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTEFOR0xFTGF5ZXI6OnBs
YXRmb3JtQ29udGV4dCgpIGNvbnN0CitHQ0dMQ29udGV4dCBHQ0dMQU5HTEVMYXllcjo6cGxhdGZv
cm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwogICAgIHJl
dHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiB9CiAKLVBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBj
b25zdAorR0NHTERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1fYW5nbGVDb250ZXh0KTsKICAgICByZXR1cm4gbV9hbmdsZUNvbnRl
eHQtPnBsYXRmb3JtRGlzcGxheSgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29u
ZmlnIEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdD
R0xBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fYW5n
bGVDb250ZXh0KTsKICAgICByZXR1cm4gbV9hbmdsZUNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAppbmRleCA0Zjhk
ZjZlY2UwNmE1NzQyZWQzYTdiOGY3ZWEwZTUwZDBjYjA0NjQyLi5kZjgzYTg5NGRkNTA2MDE4NWFj
OTk2Y2Y3MTRlYWJkYjc2NWVkMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TEFOR0xFTGF5ZXIuaApAQCAtNjIsOSArNjIsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgYm9vbCBt
YWtlQ29udGV4dEN1cnJlbnQoKTsKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OwotICAg
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29u
c3Q7CisgICAgICAgIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgICAg
ICBHQ0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAgICAgICAgR0NHTENvbmZp
ZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogI2VuZGlmCiAKICAgICBwcml2YXRlOgpAQCAtODAs
OSArODAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+R0NHTEFOR0xFTGF5ZXIoKTsKIAogICAg
IGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
RGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CisgICAgR0NHTENvbnRleHQgcGxh
dGZvcm1Db250ZXh0KCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkg
Y29uc3Q7CisgICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogCiAgICAgQ29u
dGVudExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMYXllcjsg
fQogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1h
cC9OaWNvc2lhR0NHTExheWVyLmNwcAppbmRleCA0ZTRhMmIzYmU1MmRjMzY1NzAwYzdiNTljOTU1
MzIyYWRlZTg2NjA2Li4wMTBjYzdjMzNiZWNiYjJiOGY2YWIwNzBmZDczNWVmYWIwMGUyN2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1h
cC9OaWNvc2lhR0NHTExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcApAQCAtNjEsNyArNjEsNyBA
QCBib29sIEdDR0xMYXllcjo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gbV9nbENv
bnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMIEdDR0xMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0IEdDR0xM
YXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRleHQp
OwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3Rl
eG1hcC9OaWNvc2lhR0NHTExheWVyLmgKaW5kZXggMTk2NmM3OWZjYmJhZGVlMzZkNzBhZDVmMGE0
ZjcwZWQ3ZjMxZGMzNy4uYWIxYTE2NDgxN2RiNjE5Mjg5NjUxNzNjNDBiZjIzMTFkNzE1MDQ0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAKICAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGVudExheWVyOyB9CiAgICAgdmlydHVhbCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgp
OwotICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0
OwogCiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCmluZGV4
IGEyZTY3M2ZjNDYzNGQ4ZWVlNmJjZTVlYTVlOTg5N2ZhN2U2M2Y4NzEuLjIwMjhhOTU4NjYzNTdm
MGQ5NDAwNGJhZjg2ZTA1NWUyNTVmMTc3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdM
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpCiB9CiAKICNpZiBVU0UoTklDT1NJQSkKLUdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OkVHTEltYWdlQmFja2luZzo6RUdMSW1hZ2VCYWNraW5nKFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0xEaXNwbGF5IGRpc3BsYXkpCitHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpF
R0xJbWFnZUJhY2tpbmc6OkVHTEltYWdlQmFja2luZyhHQ0dMRGlzcGxheSBkaXNwbGF5KQogICAg
IDogbV9kaXNwbGF5KGRpc3BsYXkpCiB7CiB9CkBAIC0yMzEsNyArMjMxLDcgQEAgR3JhcGhpY3ND
b250ZXh0R0xBTkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoKQogI2VuZGlmCiB9CiAKLVBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBs
YXRmb3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogI2lmIFVTRShOSUNPU0lBKQogICAgIHJldHVy
biBtX25pY29zaWFMYXllci0+cGxhdGZvcm1EaXNwbGF5KCk7CkBAIC0yNDAsNyArMjQwLDcgQEAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6
cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKICNlbmRpZgogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnKCkgY29u
c3QKK0dDR0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBj
b25zdAogewogI2lmIFVTRShOSUNPU0lBKQogICAgIHJldHVybiBtX25pY29zaWFMYXllci0+cGxh
dGZvcm1Db25maWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1M
YXllci5jcHAKaW5kZXggNjI2NmVhZjkyMTAzMTdlNjljNjFhNDAxYjY3ZmU0ZjAzYmFhYjNlYi4u
ZTUzMzRlZTJmNzU3NDkyNWYzODYzYjk1ZjUzMWZkYzgyNjI5ZmViMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKQEAgLTYyLDE5ICs2MiwxOSBA
QCBib29sIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6bWFrZUNvbnRleHRDdXJyZW50
KCkKICAgICByZXR1cm4gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCi1Q
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6
cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0IFRleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENv
bnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiB9CiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKK0dDR0xEaXNwbGF5IFRleHR1cmVNYXBw
ZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICBBU1NF
UlQobV9nbENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1EaXNwbGF5
KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgVGV4dHVyZU1hcHBlckdD
R0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIFRleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db25maWcoKSBjb25zdAogewogICAg
IEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNv
bmZpZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCmlu
ZGV4IGUzZWVkNmJiOWUzNjY2MjY5MzczNWMyY2NkMTBjZTFiN2U2ZDZlM2IuLmY3Yjg1NzRmOGYw
MzBkMzBkNjUxMWU2YjhkODA0Y2Q5ZTUwMjJkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdDR0xQbGF0Zm9ybUxheWVyLmgKQEAgLTM4LDkgKzM4LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgflRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcigpOwogCiAgICAgYm9vbCBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3Jt
Q29udGV4dCgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBs
YXRmb3JtRGlzcGxheSgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25m
aWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKKyAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdDsKKyAgICBHQ0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAg
ICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+
IHByb3h5KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDA0MjM3
NWQ2YjdhZTU4MWE0YmFmZGQ2ZDNlMTc2YjEzZTgzODlmNTAuLmZmMjg0NWVkNDJmMzQ3YTliOGFi
ODU3MjFlNjJlZWIxNGU1MTdmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0xMzIsMTIg
KzEzMiwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFt
U2VydmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHVzaW5nIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgPSBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTENvY29hOworICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTsKICNlbHNlCi0gICAgdXNpbmcgUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHRHTCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjsKKyAgICB1c2lu
ZyBHQ0dMQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjsK
ICNlbmRpZgogICAgIAotICAgIFJlZlB0cjxQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMPiBtX2Nv
bnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CisgICAgUmVmUHRyPEdD
R0xDb250ZXh0PiBtX2NvbnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7
CiAgICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVu
dGlmaWVyOwogICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tl
bmQ7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL21hYy9BcHBLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L21hYy9BcHBLaXRTUEkuaAppbmRleCAwNWRjMjM3ODAzNDkxNDhkZTE4NGNmMDIxMTliZmRlZWEw
NGQyMzBiLi5lNDZiN2ZjMzdiOWM0ZmQzODY5ZGViYmQ3NGM2ZmQyOGI3ZWFiYzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oCkBAIC0yOSwxMyArMjksNiBA
QAogCiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCiAKLSNpZiBIQVZFKENQUDIwX0lO
Q09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMK
LSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2Vu
dHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+Ci0jZW5kaWYKLQogI2ltcG9ydCA8QXBwS2l0
L05TSW5zcGVjdG9yQmFyLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNUZXh0SW5wdXRDbGllbnRfUHJp
dmF0ZS5oPgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93X1ByaXZhdGUuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5o
CmluZGV4IDZkNGEzMTQ2ZTZlOTU3MTc3MTljNjNmMmVmMmY2ZDlkZTc1NDVkNzYuLmYwNzk1MTU2
YzU3ODYyZjg0NTA5Y2M1YTRiY2FmODBmMmZlNzAzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaApAQCAtMzEs
MTAgKzMxLDYgQEAKIAogI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURF
UlMpCiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCi0jaWZuZGVmIEdMX0dMRVNfUFJP
VE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8
QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KICNlbmRpZgogCiAjaW1wb3J0
IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9s
bGVyU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJD
b250cm9sbGVyU1BJLmgKaW5kZXggMDdjZDBkOTI4ODFiNzUwODYwM2ZlY2ZhNDQxYjE3OTUyY2Mw
NmJlMC4uNjdmNzI3ZDk5NmI1Mzk1NmIxYWI0NzAyYzk3ZjIyMmJiMDVkYzEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxl
clNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXll
ckNvbnRyb2xsZXJTUEkuaApAQCAtMjcsMTMgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShQREZLSVRf
UExVR0lOKQogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgSEFWRShDUFAyMF9JTkNP
TVBBVElCTEVfSU5URVJOQUxfSEVBREVSUykKLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0j
ZGVmaW5lIEdMX0dMRVNfUFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRy
eV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgotI2VuZGlmCi0KICNpbXBvcnQgPFF1YXJ0ei9R
dWFydHouaD4KIAogQGNsYXNzIENQUmVhZGluZ01vZGVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCAzMTQ3YTQ1ZWEyMTEy
N2VjMDAwOTUzOGZjMTgwMWY2NGNkMzAwODJmLi5hZjFmMTUxMzQ4NmJhMzczMzNkYmMzNTllY2Zl
YzU2ZGZiN2E3NWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtMjgsMTMgKzI4LDYgQEAKIAogLy8gVGhpcyBoZWFkZXIg
Y29udGFpbnMgV2ViRnJhbWUgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgYW55d2hlcmUg
aW4gV2ViS2l0LCBidXQgYXJlIG5laXRoZXIgU1BJIG5vciBBUEkuCiAKLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKSAmJiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJT
KQotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVT
IDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2Vu
Lmg+Ci0jZW5kaWYKLQogI2ltcG9ydCAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUvRWRpdEFjdGlvbi5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452066</attachid>
            <date>2022-02-15 11:30:32 -0800</date>
            <delta_ts>2022-02-15 22:20:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236636-20220215213029.patch</filename>
            <type>text/plain</type>
            <size>73720</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiNzU2YTM0YzUzYjA5
N2I0Y2I4NmI5MzJiYTc5OTMwYzNiZjNkZi4uMDI3YzRhMmE0Y2EzYjhiNGFkZDYyNmE2MDg5MDNh
NzhkNjVkZDhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMi0wMi0xNSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGluY2x1
ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1c2Ug
QU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0eXBl
cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBlcwor
ICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUgT3Bl
bkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0x7
RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAgICBH
Q0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNpc3Rl
bnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNlIGlu
IEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3ZlIGN1
cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAgICAg
ICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHksIGNv
bnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0aGUg
aW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNpbmNl
IHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRoZXNl
IG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rv
ci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBmaWxl
IGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZpbGUg
b3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
QU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5k
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3BlZEJ1ZmZl
ckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29w
ZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6
OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFRl
eHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZyYW1lYnVm
ZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRGcmFtZWJ1
ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYyk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2FwYWJpbGl0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRHTENhcGFi
aWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9yIEdDR0xp
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0b3IgR0NH
THVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6Om9wZXJh
dG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6Omdl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRvciBHQ0dM
c3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZyYW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRm
b3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVmZmVyQW5k
QXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdM
RVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1
cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNw
bGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRl
eHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxh
eWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xF
TGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpHQ0dMQU5H
TEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1D
b25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNSAgRW5yaXF1ZSBPY2HDsWEg
R29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW01T
RV0gTGV0IE1TRSBzZXQgbmF0dXJhbCB2aWRlbyBzaXplIHdoZW4gdXNpbmcgaG9sZXB1bmNoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwppbmRleCA4NjdhZGE2OWFiMTdmN2I1NWNmYmU5MWJkNzQ3YWU1YmJiZWUw
YWUzLi5iMTQ4ODNmNmI1YWZkM2ZjMWQxZDg1OGIwNmQwZmRkNTcxN2QzNGY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1ZGVzIGludGVyZmVyZSB3
aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFj
a3Nvbi4KKworICAgICAgICBSZW1vdmUgdGhlIGF0dGVtcHQgdG8gb3ZlcnJpZGUgc3lzdGVtIGhl
YWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAgICAgICBBTkdMRSBpbXBsZW1lbnRhdGlvbi4gVGhl
eSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucworICAgICAgICBhbmQgb25lIGNhbm5vdCBy
ZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg6CisgICAgICAgIEFkZCBt
aXNzaW5nIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfIHRoYXQgbWFrZXMgdGhlIENvY29hUHJpdi5o
CisgICAgICAgIGluY2x1ZGVkIENvcmVHcmFwaGljcyBoZWFkZXIgc2tpcCB0aGUgaW5jb21wYXRp
YmxlIHRhZ2dlZCBwb2ludGVyCisgICAgICAgIGRlY2xhcmF0aW9ucywgc2ltaWxhciB0byBvdGhl
ciAqU1BJLmggaGVhZGVycy4KKwogMjAyMi0wMi0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGl2ZSBUZXh0XSBQbHVtYiBwbGF0Zm9ybSBpbWFn
ZSBhbmFseXNpcyBvYmplY3RzIHRvIHRoZSB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwN2IxY2Uw
Yjg0NDM2Y2NhYmQwMzU2ODg4NmM4NzY0OTM2OTcwNzVkLi42ZTJjYzllMTQ2MDBhMmZlN2VhMDU2
ZTFjNzg4ODY3MjQ0NzNlODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAyLTE1
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUg
aW5jbHVkZXMgaW50ZXJmZXJlIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlbW92ZSB0aGUgYXR0ZW1wdCB0
byBvdmVycmlkZSBzeXN0ZW0gaGVhZGVyIGxvZ2ljIHdpdGggV2ViS2l0CisgICAgICAgIEFOR0xF
IGltcGxlbWVudGF0aW9uLiBUaGV5IGFyZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zCisgICAg
ICAgIGFuZCBvbmUgY2Fubm90IHJlcGxhY2UgdGhlIG90aGVyLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIFBsYXRm
b3JtL3NwaS9tYWMvQXBwS2l0U1BJLmg6CisgICAgICAgICogUGxhdGZvcm0vc3BpL21hYy9BcHBs
aWNhdGlvblNlcnZpY2VzU1BJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZMYXllckNvbnRyb2xsZXJTUEkuaDoKKwogMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdQVVAgV2ViR0w6IFdURjo6UmVmQ291bnRl
ZEJhc2U6OmFwcGx5UmVmRGVyZWZUaHJlYWRpbmdDaGVjaygpIGZhaWxzIGR1ZSB0byBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ODAzOTQ4NThhMTViOGEyNTY5NmFhZWM3YzhkOTRhYTcz
YWQ3MjIzLi5lZTA0ZTBlZGQwZDY5ZDM0NjU0OWY2MGQ0NGMxNmVjNTFjMmQwZmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTUgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBTkdMRSBpbmNsdWRl
cyBpbnRlcmZlcmUgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBhdHRlbXB0IHRvIG92ZXJy
aWRlIHN5c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAgICAgQU5HTEUgaW1wbGVt
ZW50YXRpb24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5k
IG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaDoKKwogMjAyMi0wMi0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBidWlsZCB3aXRoIHRoZSBsYXRlc3QgaU9T
IFNESy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWQ2ODAxNTBlYmY5YzExMTliYzk1ZTYxMTc3
MGVlMzM1MzAyZDAyZi4uNWU0OGU0MWFjZmZkYzVkM2U1NmI5ODg1ZDMwMjYwNmQ1NGJhMTFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5MDksNyArMTkwOSw2IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCiAgICAgICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAotICAgICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcAogICAg
ICAgICApCiAKICAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgQU5HTEU6OkdM
RVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVl
RnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1
ZUZyYW1lYnVmZmVyLmNwcAppbmRleCA3M2NlMmMyMGI2Mjk2YzFmNDg4OWQ1OWUzYjhmN2NiY2Jh
NWM0ZjAyLi45MmUxYTE4ZWE3ODk3ZjZhNDIyZDJmNDk3Y2I2OTQxMmYwMTU5MTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1
ZmZlci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogI2lm
IFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJz
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggZDFi
OTQ2NTJlZmNkMDk4NjM2NGNlNTg3MTFiNTIxZDg3M2NhMjk1Mi4uOTEyNjZmMTdkNDNmMTNkOGFk
Y2NhNjY3MTFjM2Y3NjA4MmY0MGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTQwLDEwICs0MCw2IEBACiAKICNpZiBIQVZFKENQ
UDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmluZSBDR0NPTE9SVEFHR0VE
UE9JTlRFUl9IXwotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19Q
Uk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4
dF9hdXRvZ2VuLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHRE
ZWxlZ2F0ZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVRv
b2xib3hTUEkuaAppbmRleCBmYjYwMDBkNzNlOTE2NTc5OThkOGRmY2Y5NTZhNTNjNDJkYmQ1ZmQ4
Li5jYzNhZWM0YTBhMDM4OTY2YzFlY2Y4ZTE1NGExOWY3MTJjNDJiY2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0yNyw2ICsyNywxMCBA
QAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2lmIEhBVkUoQ1BQMjBfSU5DT01Q
QVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCisjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hf
CisjZW5kaWYKKwogI2luY2x1ZGUgPENhcmJvbi9DYXJib25Qcml2Lmg+CiAKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCBjN2EyZGJkYWEwZTQwZGVjZWMwMjg0NzY5NDE0OTYyYTBm
ZmNlNWE1Li41NDAwMDU2YzBkZDI3NjdmZTI2ODc1MmYwMWI0OTMxOTk4MTQ3Y2FlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3NSw3ICszNzUsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9QYXR0ZXJuQ0cuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRp
bWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRpb25NYXRyaXhDRy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAotcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1
ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29j
b2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zsb2F0UmVjdENvY29hLm1tCkBAIC0zODYs
NyArMzg1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2Eu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVU
ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQotcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9IRVZDVXRpbGl0aWVzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtNDEyLDcgKzQxMCw2IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
Q1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCi1w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIubW0KIHBs
YXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBw
bGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckltYWdlQ29yZUltYWdl
Lm1tCkBAIC02MTQsOCArNjExLDEwIEBAIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHAKIHRl
c3RpbmcvY29jb2EvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5tbQogCiAvLyBU
aGUgZm9sbG93aW5nIGZpbGVzIGFyZW4ndCB1bmlmaWVkIHdpdGggb3RoZXJzIHRvIHByZXZlbnQg
dGhlbSBmcm9tIGJlaW5nIG1lcmdlZAotLy8gd2l0aCBmaWxlcyB0aGF0IHVzZSB0aGUgc3lzdGVt
IE9wZW5HTC4KKy8vIHdpdGggZmlsZXMgdGhhdCBpbmNsdWRlIHN5c3RlbSBoZWFkZXJzIHRoYXQg
aW5jbHVkZSBzeXN0ZW0gT3BlbkdMIGhlYWRlcnMuCiAKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0FOR0xFVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQotcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzI4
YzEzZDI2YjI1Y2I3YjVlOGY0Y2EwNzg1NGE4YWVmODE3MzRmNy4uNjY4M2MxMGMzOTFmZTI0MTdi
ZTY1ZTU5OTM4ZDEwZGY5NDc5NzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE5MCw4ICsyMTkwLDYgQEAKIAkJNkU0QUJD
RDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAw
QTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
ICovOyB9OwotCQk2RTcyRjU0RjIyOURDRDEzMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
MjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovOyB9
OwotCQk2RTcyRjU1MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTI5MDg2MzIy
OURCOTcwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggKi87IH07CiAJCTZFODRF
OUUxMTc2NjhCRjEwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU4NEU5REYxNzY2OEJBRDAwODE1QjY4IC8qIFJh
c3RlclNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNkU4QUNERUQyMzM0NUNCQzAwMjRBQUY1IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFOEFD
REVCMjMzNDVDQUYwMDI0QUFGNSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmggKi87IH07
CiAJCTZFQkYwRTQ5MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYwRTQ2MTJBODkyNjEw
MERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKQEAgLTI0MTgsNiArMjQxNiwxMCBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tICovOyB9OworCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMgLyogQU5HTEVVdGlsaXRp
ZXNDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkNENDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgKi87
IH07CisJCTdCRTM3RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEODI3MDU5
OUVGMDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9OworCQk3QkUzN0Y3RTI3QkI4
NkRCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlBMjU0OTcyMDAwMEM4QzFB
QyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwICovOyB9OwogCQk3QkU3NDI3MzgxRkE5
MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBK
U1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxh
eUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZE
MjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwODc2LDggKzEwODc4LDYgQEAKIAkJNkUyNDJC
MjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIy
Mjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBU
ZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlBTkdMRVNldHRpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNyAvKiBKU1dl
YkdMRGVwdGhUZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTNGQUQzNjE0NzMzRjQwMTBFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQxMSw4ICsyNDQxMSw2
IEBACiAJCQkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8s
CiAJCQkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwICovLAogCQkJCTdCOTVDRkVDMjc1NEZGN0MwMDAwNjBDRSAvKiBHcmFwaGljc0NvbnRleHRH
TEFOR0xFLmggKi8sCi0JCQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFO
R0xFU2V0dGluZy5jcHAgKi8sCi0JCQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBv
cmFyeUFOR0xFU2V0dGluZy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhbmdsZTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTkxNCwxMCArMjU5MTIsMTAgQEAKIAkJCQkzMTQ4NzdF
MDFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmNwcCAqLywKIAkJCQkzMTQ4NzdF
MTFGQUE4RkU5MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmggKi8sCiAJCQkJMzE0ODc3RDkx
RkFBODcwNjAwQzA1NzU5IC8qIE9mZnNjcmVlbkNhbnZhcy5pZGwgKi8sCi0JCQkJNDk0RUJEMDgy
N0FBOUM1MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKLQkJCQk0OTRFQkQwNjI3QUE5
QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQlGNTVCM0Q5NTEyNTFGMTJEMDAz
RUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDk2MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5oICovLAorCQkJCTQ5NEVCRDA4MjdBQTlDNTMw
MEY0ODQ0RiAvKiBQREZEb2N1bWVudC5jcHAgKi8sCisJCQkJNDk0RUJEMDYyN0FBOUM1MzAwRjQ4
NDRGIC8qIFBERkRvY3VtZW50LmggKi8sCiAJCQkJOTcyMDVBQjkxMjM5MjkyNzAwQjE3MzgwIC8q
IFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQk5NzIwNUFCQTEyMzkyOTI3MDBCMTczODAgLyog
UGx1Z2luRG9jdW1lbnQuaCAqLywKIAkJCQlDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVi
bGljVVJMTWFuYWdlci5jcHAgKi8sCkBAIC0zNzY3OSw3ICszNzY3Nyw2IEBACiAJCQkJRjU1QjNE
RDYxMjUxRjEyRDAwM0VGMjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxh
dGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU3MkY1NTEy
MjlEQ0QxQTAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOUUxNzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAq
LywKQEAgLTM4Njc3LDYgKzM4Njc0LDggQEAKIAkJCWZpbGVzID0gKAogCQkJCUE5Nzg3Q0I0MUY1
RjVDNjYwMEM1NTFDNiAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzFGN0I3MzEyNDQ4RjJBQzAwMTI0NTU3IC8qIEFHWENvbXBpbGVyU2VydmljZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3QkUzN0Y3RDI3QkI4NkNEMDA3QTZDRDMgLyogQU5HTEVV
dGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0MyN0JCODZCODAwN0E2Q0Qz
IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QwRUVFMEUx
NDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RBNzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbklPUy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzg3MDAsNiArMzg2OTks
OCBAQAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk2RTcyRjU0RTIyOURDRDEw
MDBCM0UxNTEgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBp
biBTb3VyY2VzICovLAorCQkJCTdCRTM3RjdFMjdCQjg2REIwMDdBNkNEMyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAw
QzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNkIzQTBB
MjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzkw
MEMzMTk0M0MwRkMwMDg2MjVCNSAvKiBIVFRQSGVhZGVyTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0zODc2MCw3ICszODc2MSw2IEBACiAJCQkJQ0RDOEI1QUExODA0N0ZGMTAwMTZFNjg1IC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M3
Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMx
NjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNkU3MkY1NEYyMjlEQ0QxMzAwQjNFMTUxIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTg4RUUyNjI0MTQ0NjdCMDA3RjI5QzIgLyogVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFERjZEODAwQjkyQTE4
RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM4RUM4MDMx
Rjk2QUY4MTAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCmluZGV4IGQ3ODU3
NmEyYjZkZjcxNTgxNjhkYzMzZjVjNzMyYWVlZWRlNTc3NWMuLjk0MDMxMDZmNTVlNzRkMzIzOTc2
MzY5NGFhYTNhNjAyMjNhNmYyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3QgR0xOYXRp
dmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2RldmljZSBjYWlyb19kZXZpY2Vf
dDsKICNlbmRpZgogCi10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0w7Cit0
eXBlZGVmIHZvaWQqIEdDR0xDb250ZXh0OwogCiAvLyBYMTEgaGVhZGVycyBkZWZpbmUgYSBidW5j
aCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5nIHdpdGggV2ViQ29yZSBh
bmQgV1RGIGVudW0gdmFsdWVzLgogLy8gQXMgYSB3b3JrYXJvdW5kLCB3ZSBleHBsaWNpdGx5IHVu
ZGVmIHRoZW0gaGVyZS4KQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIEdDR0xD
b250ZXh0IHBsYXRmb3JtQ29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEdMQ29udGV4
dChQbGF0Zm9ybURpc3BsYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDFjY2VlYjUzNzM1MzhkNTM1MjNmNDlk
Y2UyYTA2ODJlNDdkZmM4ZGQuLjNhY2JjNzU3OGI5YjgyNzgzMzU0MzNlMTVlMDJmNjAxMjRmM2Fm
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuaApAQCAtNDUsMTEgKzQ1LDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTDsKLXR5cGVkZWYgdm9pZCogUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXk7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zR0w7CiBj
bGFzcyBIb3N0V2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NUeXBlc0dMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzR0wuaAppbmRleCAzMzY1NmExNTYxM2RmNjMyMjY1YTkzMzI4ODJiZDEx
MWE2ODBkZjk1Li4wMDM5NjBkN2RlNDY5OTI4NWZjMDkwZTU3MzVhM2JmZTkyM2RlNGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzR0wu
aApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIGZsb2F0IEdDR0xmbG9hdDsKIHR5cGVkZWYgdW5z
aWduZWQgc2hvcnQgR0NHTGhhbGZmbG9hdDsKIHR5cGVkZWYgZmxvYXQgR0NHTGNsYW1wZjsKIHR5
cGVkZWYgY2hhciBHQ0dMY2hhcjsKLXR5cGVkZWYgc3RydWN0IF9fR0xzeW5jKiBHQ0dMc3luYzsK
K3R5cGVkZWYgdm9pZCogR0NHTHN5bmM7CiB0eXBlZGVmIHZvaWQgR0NHTHZvaWQ7CiAKIC8vIFRo
ZXNlIEdDR0wgdHlwZXMgZG8gbm90IHN0cmljdGx5IG1hdGNoIHRoZSBHTCB0eXBlcyBhcyBkZWZp
bmVkIGluIE9wZW5HTCBFUyAyLjAKQEAgLTU5LDExICs1OSwxOCBAQCB0eXBlZGVmIGludDY0X3Qg
R0NHTGludDY0OwogdHlwZWRlZiB1aW50NjRfdCBHQ0dMdWludDY0OwogCiB0eXBlZGVmIEdDR0x1
aW50IFBsYXRmb3JtR0xPYmplY3Q7Cit1c2luZyBHQ0dMRGlzcGxheSA9IHZvaWQqOwordXNpbmcg
R0NHTENvbmZpZyA9IHZvaWQqOwordXNpbmcgR0NHTENvbnRleHQgPSB2b2lkKjsKIAogI2lmICFQ
TEFURk9STShDT0NPQSkKIHR5cGVkZWYgdW5zaWduZWQgR0x1aW50OwogI2VuZGlmCiAKK3VzaW5n
IEdDR0xOYXRpdmVEaXNwbGF5VHlwZSA9IGludDsKKworaW5saW5lIGNvbnN0ZXhwciBHQ0dMTmF0
aXZlRGlzcGxheVR5cGUgZ2NHTERlZmF1bHREaXNwbGF5ID0gMDsKKwogaW5saW5lIGNvbnN0ZXhw
ciBzaXplX3QgZ2NHTFNwYW5EeW5hbWljRXh0ZW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IEV4dGVudCA9IGdjR0xT
cGFuRHluYW1pY0V4dGVudD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcAppbmRleCA3YzVmOGI1ODc3MzQ5MDAw
MTQ1Mzg5NGEwMTNmMjI3MWM5NzVhY2MzLi42NTk1NGRkMDZlNGQ3N2QxMjE4ZTBmN2E1Mjc4OWI0
Y2IzMDllNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9BTkdMRVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiQU5HTEVVdGlsaXRpZXMuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQor
I2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3
LDYgKzM4LDE0MCBAQCBib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCiB9CiAjZW5kaWYK
IAorU2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRp
bmcoR0NHTGVudW0gYmluZGluZ1BvaW50UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9v
bCBjb25kaXRpb24pCit7CisgICAgQVNTRVJUKGJpbmRpbmdQb2ludCAhPSBzdGF0aWNfY2FzdDxH
Q0dMZW51bT4oMHUpKTsKKyAgICBpZiAoY29uZGl0aW9uKSB7CisgICAgICAgIG1fYmluZGluZ1Bv
aW50ID0gYmluZGluZ1BvaW50OworICAgICAgICBHTF9HZXRJbnRlZ2VydihiaW5kaW5nUG9pbnRR
dWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHQ0dMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7CisgICAg
fQorfQorCitTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmc6On5TY29wZWRSZXN0b3JlVGV4dHVy
ZUJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmluZFRl
eHR1cmUobV9iaW5kaW5nUG9pbnQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVy
QmluZGluZzo6U2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIEdDR0x1
aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24pCit7CisgICAgaWYgKCFjb25kaXRpb24p
CisgICAgICAgIHJldHVybjsKKyAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShiaW5kaW5nUG9pbnQp
LCByZWludGVycHJldF9jYXN0PEdDR0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKKyAgICBpZiAo
YmluZGluZ1ZhbHVlID09IG1fYmluZGluZ1ZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9i
aW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7CisgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQ
b2ludCwgYmluZGluZ1ZhbHVlKTsKK30KKworU2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3BlZEJ1
ZmZlckJpbmRpbmcoKQoreworICAgIGlmIChtX2JpbmRpbmdQb2ludCkKKyAgICAgICAgR0xfQmlu
ZEJ1ZmZlcihtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOworfQorCit2b2lkIFNjb3Bl
ZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nOjpiaW5kRnJhbWVidWZmZXIoR0NHTHVpbnQg
YmluZGluZ1ZhbHVlKQoreworICAgIGlmICghbV9iaW5kaW5nQ2hhbmdlZCAmJiBtX2JpbmRpbmdW
YWx1ZSA9PSBiaW5kaW5nVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBHTF9CaW5kRnJhbWVi
dWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsKKyAgICBtX2JpbmRpbmdD
aGFuZ2VkID0gbV9iaW5kaW5nVmFsdWUgIT0gYmluZGluZ1ZhbHVlOworfQorCitTY29wZWRSZXN0
b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJC
aW5kaW5nKCkKK3sKKyAgICBpZiAobV9iaW5kaW5nQ2hhbmdlZCkKKyAgICAgICAgR0xfQmluZEZy
YW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJnZXQsIG1fYmluZGluZ1ZhbHVlKTsKK30KKworU2Nv
cGVkUGl4ZWxTdG9yYWdlTW9kZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1l
LCBib29sIGNvbmRpdGlvbikKKyAgICA6IG1fbmFtZShjb25kaXRpb24gPyBuYW1lIDogMCkKK3sK
KyAgICBpZiAobV9uYW1lKQorICAgICAgICBHTF9HZXRJbnRlZ2VydihtX25hbWUsICZtX29yaWdp
bmFsVmFsdWUpOworfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjpTY29wZWRQaXhlbFN0b3Jh
Z2VNb2RlKEdDR0xlbnVtIG5hbWUsIEdDR0xpbnQgdmFsdWUsIGJvb2wgY29uZGl0aW9uKQorICAg
IDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQoreworICAgIGlmIChtX25hbWUpIHsKKyAg
ICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKKyAgICAgICAg
cGl4ZWxTdG9yZSh2YWx1ZSk7CisgICAgfQorfQorCitTY29wZWRQaXhlbFN0b3JhZ2VNb2RlOjp+
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpCit7CisgICAgaWYgKG1fbmFtZSAmJiBtX3ZhbHVlQ2hh
bmdlZCkKKyAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCBtX29yaWdpbmFsVmFsdWUpOwor
fQorCit2b2lkIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6OnBpeGVsU3RvcmUoR0NHTGludCB2YWx1
ZSkKK3sKKyAgICBBU1NFUlQobV9uYW1lKTsKKyAgICBpZiAoIW1fdmFsdWVDaGFuZ2VkICYmIG1f
b3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEdMX1BpeGVsU3Rv
cmVpKG1fbmFtZSwgdmFsdWUpOworICAgIG1fdmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVl
ICE9IHZhbHVlOworfQorCitTY29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKCkKK3sKKyAgICBH
TF9HZW5UZXh0dXJlcygxLCAmbV9vYmplY3QpOworfQorCitTY29wZWRUZXh0dXJlOjp+U2NvcGVk
VGV4dHVyZSgpCit7CisgICAgR0xfRGVsZXRlVGV4dHVyZXMoMSwgJm1fb2JqZWN0KTsKK30KKwor
U2NvcGVkRnJhbWVidWZmZXI6OlNjb3BlZEZyYW1lYnVmZmVyKCkKK3sKKyAgICBHTF9HZW5GcmFt
ZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKK30KKworU2NvcGVkRnJhbWVidWZmZXI6On5TY29wZWRG
cmFtZWJ1ZmZlcigpCit7CisgICAgR0xfRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7
Cit9CisKK3ZvaWQgU2NvcGVkR0xGZW5jZTo6cmVzZXQoKQoreworICAgIGlmIChtX29iamVjdCkg
eworICAgICAgICBHTF9EZWxldGVTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4obV9vYmplY3QpKTsK
KyAgICAgICAgbV9vYmplY3QgPSB7IH07CisgICAgfQorfQorCit2b2lkIFNjb3BlZEdMRmVuY2U6
OmZlbmNlU3luYygpCit7CisgICAgcmVzZXQoKTsKKyAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3lu
YyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7Cit9CisKKworU2NvcGVkR0xDYXBh
YmlsaXR5OjpTY29wZWRHTENhcGFiaWxpdHkoR0NHTGVudW0gY2FwYWJpbGl0eSwgYm9vbCBlbmFi
bGUpCisgICAgOiBtX2NhcGFiaWxpdHkoY2FwYWJpbGl0eSkKKyAgICAsIG1fb3JpZ2luYWwoR0xf
SXNFbmFibGVkKG1fY2FwYWJpbGl0eSkgPT0gZW5hYmxlID8gc3RkOjpudWxsb3B0IDogc3RkOjpv
cHRpb25hbDxib29sPighZW5hYmxlKSkKK3sKKyAgICBpZiAoIW1fb3JpZ2luYWwpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5
KTsKKyAgICBlbHNlCisgICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKK30KKworU2Nv
cGVkR0xDYXBhYmlsaXR5Ojp+U2NvcGVkR0xDYXBhYmlsaXR5KCkKK3sKKyAgICBpZiAoIW1fb3Jp
Z2luYWwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKm1fb3JpZ2luYWwpCisgICAgICAgIEdM
X0VuYWJsZShtX2NhcGFiaWxpdHkpOworICAgIGVsc2UKKyAgICAgICAgR0xfRGlzYWJsZShtX2Nh
cGFiaWxpdHkpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmgKaW5kZXggNTE1YjlkOTEx
YTNlZGI3MjEzMzU2MjA1ZjY1MzViMjM2NzIxMmZiZi4uNzAyY2MxZWVhODE0YzM3OTY2ZmY2MzJm
NmVhM2FkNWJlZTI5ODM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGllcy5oCkBAIC0yNywxODUgKzI3LDEyNSBAQAog
CiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCiAKLSNpbmNsdWRlICJBTkdMRUhlYWRl
cnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
VHlwZXNHTC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjb3BlZFJlc3RvcmVUZXh0dXJl
QmluZGluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVRleHR1cmVC
aW5kaW5nKTsKLXB1YmxpYzoKLSAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0xlbnVt
IGJpbmRpbmdQb2ludFF1ZXJ5LCBHTGVudW0gYmluZGluZ1BvaW50LCBib29sIGNvbmRpdGlvbiA9
IHRydWUpCi0gICAgewotICAgICAgICBBU1NFUlQoYmluZGluZ1BvaW50ICE9IHN0YXRpY19jYXN0
PEdMZW51bT4oMHUpKTsKLSAgICAgICAgaWYgKGNvbmRpdGlvbikgewotICAgICAgICAgICAgbV9i
aW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7Ci0gICAgICAgICAgICBHTF9HZXRJbnRlZ2Vydihi
aW5kaW5nUG9pbnRRdWVyeSwgcmVpbnRlcnByZXRfY2FzdDxHTGludCo+KCZtX2JpbmRpbmdWYWx1
ZSkpOwotICAgICAgICB9Ci0gICAgfQogCi0gICAgflNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGlu
ZygpCi0gICAgewotICAgICAgICBpZiAobV9iaW5kaW5nUG9pbnQpCi0gICAgICAgICAgICBHTF9C
aW5kVGV4dHVyZShtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOwotICAgIH0KK3B1Ymxp
YzoKKyAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoR0NHTGVudW0gYmluZGluZ1BvaW50
UXVlcnksIEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24gPSB0cnVlKTsKKyAg
ICB+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgR0xlbnVt
IG1fYmluZGluZ1BvaW50IHsgMCB9OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07
CisgICAgR0NHTGVudW0gbV9iaW5kaW5nUG9pbnQgeyAwIH07CisgICAgR0NHTHVpbnQgbV9iaW5k
aW5nVmFsdWUgeyAwdSB9OwogfTsKIAotCiBjbGFzcyBTY29wZWRCdWZmZXJCaW5kaW5nIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRCdWZmZXJCaW5kaW5nKTsKLXB1YmxpYzoKLSAg
ICBTY29wZWRCdWZmZXJCaW5kaW5nKEdMZW51bSBiaW5kaW5nUG9pbnQsIEdMdWludCBiaW5kaW5n
VmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghY29uZGl0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9HZXRJbnRlZ2VydihxdWVyeShi
aW5kaW5nUG9pbnQpLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7
Ci0gICAgICAgIGlmIChiaW5kaW5nVmFsdWUgPT0gbV9iaW5kaW5nVmFsdWUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50OwotICAgICAg
ICBHTF9CaW5kQnVmZmVyKG1fYmluZGluZ1BvaW50LCBiaW5kaW5nVmFsdWUpOwotICAgIH0KIAot
ICAgIH5TY29wZWRCdWZmZXJCaW5kaW5nKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2JpbmRpbmdQ
b2ludCkKLSAgICAgICAgICAgIEdMX0JpbmRCdWZmZXIobV9iaW5kaW5nUG9pbnQsIG1fYmluZGlu
Z1ZhbHVlKTsKLSAgICB9CitwdWJsaWM6CisgICAgU2NvcGVkQnVmZmVyQmluZGluZyhHQ0dMZW51
bSBiaW5kaW5nUG9pbnQsIEdDR0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0
cnVlKTsKKyAgICB+U2NvcGVkQnVmZmVyQmluZGluZygpOwogCiBwcml2YXRlOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgR0xlbnVtIHF1ZXJ5KEdMZW51bSBiaW5kaW5nUG9pbnQpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHQ0dMZW51bSBxdWVyeShHQ0dMZW51bSBiaW5kaW5nUG9pbnQpCiAgICAgewot
ICAgICAgICBpZiAoYmluZGluZ1BvaW50ID09IEdMX1BJWEVMX1BBQ0tfQlVGRkVSKQotICAgICAg
ICAgICAgcmV0dXJuIEdMX1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc7Ci0gICAgICAgIEFTU0VS
VChiaW5kaW5nUG9pbnQgPT0gR0xfUElYRUxfVU5QQUNLX0JVRkZFUik7Ci0gICAgICAgIHJldHVy
biBHTF9QSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc7CisgICAgICAgIGlmIChiaW5kaW5nUG9p
bnQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlBJWEVMX1BBQ0tfQlVGRkVSKQorICAgICAgICAgICAg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HOworICAg
ICAgICBBU1NFUlQoYmluZGluZ1BvaW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBB
Q0tfQlVGRkVSKTsKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpQSVhFTF9VTlBB
Q0tfQlVGRkVSX0JJTkRJTkc7CiAgICAgfQotICAgIEdMaW50IG1fYmluZGluZ1BvaW50IHsgMCB9
OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CisgICAgR0NHTGludCBtX2JpbmRp
bmdQb2ludCB7IDAgfTsKKyAgICBHQ0dMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CiB9Owor
CiBjbGFzcyBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOworCiBw
dWJsaWM6Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0Zv
cldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSkKLSAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFy
Z2V0KGlzRm9yV2ViR0wyID8gR0xfUkVBRF9GUkFNRUJVRkZFUiA6IEdMX0ZSQU1FQlVGRkVSKQor
ICAgIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJHTDIs
IEdDR0x1aW50IHJlc3RvcmVWYWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlz
Rm9yV2ViR0wyID8gR3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGlj
c0NvbnRleHRHTDo6RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9y
ZVZhbHVlKQogICAgIHsKICAgICB9Ci0gICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJp
bmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0x1aW50IHJlc3RvcmVWYWx1ZSwgR0x1aW50IHZhbHVl
KQotICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJHTDIgPyBHTF9SRUFEX0ZS
QU1FQlVGRkVSIDogR0xfRlJBTUVCVUZGRVIpCisgICAgU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1
ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0NHTHVpbnQgcmVzdG9yZVZhbHVlLCBHQ0dM
dWludCB2YWx1ZSkKKyAgICAgICAgOiBtX2ZyYW1lYnVmZmVyVGFyZ2V0KGlzRm9yV2ViR0wyID8g
R3JhcGhpY3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVIgOiBHcmFwaGljc0NvbnRleHRHTDo6
RlJBTUVCVUZGRVIpCiAgICAgICAgICwgbV9iaW5kaW5nVmFsdWUocmVzdG9yZVZhbHVlKQogICAg
IHsKICAgICAgICAgYmluZEZyYW1lYnVmZmVyKHZhbHVlKTsKICAgICB9CisgICAgflNjb3BlZFJl
c3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCk7CiAgICAgdm9pZCBtYXJrQmluZGluZ0NoYW5n
ZWQoKQogICAgIHsKICAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9IHRydWU7CiAgICAgfQotICAg
IHZvaWQgYmluZEZyYW1lYnVmZmVyKEdMdWludCBiaW5kaW5nVmFsdWUpCi0gICAgewotICAgICAg
ICBpZiAoIW1fYmluZGluZ0NoYW5nZWQgJiYgbV9iaW5kaW5nVmFsdWUgPT0gYmluZGluZ1ZhbHVl
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFt
ZWJ1ZmZlclRhcmdldCwgYmluZGluZ1ZhbHVlKTsKLSAgICAgICAgbV9iaW5kaW5nQ2hhbmdlZCA9
IG1fYmluZGluZ1ZhbHVlICE9IGJpbmRpbmdWYWx1ZTsKLSAgICB9Ci0gICAgR0x1aW50IGZyYW1l
YnVmZmVyVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZWJ1ZmZlclRhcmdldDsgfQotICAg
IH5TY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZygpCi0gICAgewotICAgICAgICBp
ZiAobV9iaW5kaW5nQ2hhbmdlZCkKLSAgICAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2Zy
YW1lYnVmZmVyVGFyZ2V0LCBtX2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQorICAgIHZvaWQgYmluZEZy
YW1lYnVmZmVyKEdDR0x1aW50IGJpbmRpbmdWYWx1ZSk7CisgICAgR0NHTHVpbnQgZnJhbWVidWZm
ZXJUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lYnVmZmVyVGFyZ2V0OyB9CisKIHByaXZh
dGU6Ci0gICAgY29uc3QgR0xlbnVtIG1fZnJhbWVidWZmZXJUYXJnZXQ7Ci0gICAgR0x1aW50IG1f
YmluZGluZ1ZhbHVlIHsgMHUgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX2ZyYW1lYnVmZmVyVGFy
Z2V0OworICAgIEdDR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKICAgICBib29sIG1fYmlu
ZGluZ0NoYW5nZWQgeyBmYWxzZSB9OwogfTsKIAogY2xhc3MgU2NvcGVkUGl4ZWxTdG9yYWdlTW9k
ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSk7CisK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdMZW51bSBuYW1l
LCBib29sIGNvbmRpdGlvbiA9IHRydWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5h
bWUgOiAwKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSkKLSAgICAgICAgICAgIEdMX0dldElu
dGVnZXJ2KG1fbmFtZSwgJm1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIFNjb3BlZFBpeGVs
U3RvcmFnZU1vZGUoR0xlbnVtIG5hbWUsIEdMaW50IHZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRy
dWUpCi0gICAgICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQotICAgIHsKLSAgICAg
ICAgaWYgKG1fbmFtZSkgewotICAgICAgICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9v
cmlnaW5hbFZhbHVlKTsKLSAgICAgICAgICAgIHBpeGVsU3RvcmUodmFsdWUpOwotICAgICAgICB9
Ci0gICAgfQotICAgIH5TY29wZWRQaXhlbFN0b3JhZ2VNb2RlKCkKLSAgICB7Ci0gICAgICAgIGlm
IChtX25hbWUgJiYgbV92YWx1ZUNoYW5nZWQpCi0gICAgICAgICAgICBHTF9QaXhlbFN0b3JlaSht
X25hbWUsIG1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIHZvaWQgcGl4ZWxTdG9yZShHTGlu
dCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX25hbWUpOwotICAgICAgICBpZiAoIW1f
dmFsdWVDaGFuZ2VkICYmIG1fb3JpZ2luYWxWYWx1ZSA9PSB2YWx1ZSkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCB2YWx1ZSk7Ci0gICAgICAgIG1f
dmFsdWVDaGFuZ2VkID0gbV9vcmlnaW5hbFZhbHVlICE9IHZhbHVlOwotICAgIH0KLSAgICBvcGVy
YXRvciBHTGludCgpIGNvbnN0CisgICAgZXhwbGljaXQgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShH
Q0dMZW51bSBuYW1lLCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAgIFNjb3BlZFBpeGVsU3Rv
cmFnZU1vZGUoR0NHTGVudW0gbmFtZSwgR0NHTGludCB2YWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0
cnVlKTsKKyAgICB+U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZSgpOworICAgIHZvaWQgcGl4ZWxTdG9y
ZShHQ0dMaW50IHZhbHVlKTsKKyAgICBvcGVyYXRvciBHQ0dMaW50KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX25hbWUgJiYgIW1fdmFsdWVDaGFuZ2VkKTsKICAgICAgICAgcmV0dXJu
IG1fb3JpZ2luYWxWYWx1ZTsKICAgICB9CisKIHByaXZhdGU6Ci0gICAgY29uc3QgR0xlbnVtIG1f
bmFtZTsKKyAgICBjb25zdCBHQ0dMZW51bSBtX25hbWU7CiAgICAgYm9vbCBtX3ZhbHVlQ2hhbmdl
ZCB7IGZhbHNlIH07Ci0gICAgR0xpbnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OworICAgIEdDR0xp
bnQgbV9vcmlnaW5hbFZhbHVlIHsgMCB9OwogfTsKIAogY2xhc3MgU2NvcGVkVGV4dHVyZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkVGV4dHVyZSk7CisKIHB1YmxpYzoKLSAgICBT
Y29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0dlblRleHR1cmVzKDEsICZtX29iamVj
dCk7Ci0gICAgfQotICAgIH5TY29wZWRUZXh0dXJlKCkKLSAgICB7Ci0gICAgICAgIEdMX0RlbGV0
ZVRleHR1cmVzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMdWludCgpIGNv
bnN0CisgICAgU2NvcGVkVGV4dHVyZSgpOworICAgIH5TY29wZWRUZXh0dXJlKCk7CisgICAgb3Bl
cmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2JqZWN0Owog
ICAgIH0KKwogcHJpdmF0ZToKLSAgICBHTHVpbnQgbV9vYmplY3QgeyAwdSB9OworICAgIEdDR0x1
aW50IG1fb2JqZWN0IHsgMHUgfTsKIH07CiAKIGNsYXNzIFNjb3BlZEZyYW1lYnVmZmVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRGcmFtZWJ1ZmZlcik7CisKIHB1YmxpYzoKLSAg
ICBTY29wZWRGcmFtZWJ1ZmZlcigpCi0gICAgewotICAgICAgICBHTF9HZW5GcmFtZWJ1ZmZlcnMo
MSwgJm1fb2JqZWN0KTsKLSAgICB9Ci0gICAgflNjb3BlZEZyYW1lYnVmZmVyKCkKLSAgICB7Ci0g
ICAgICAgIEdMX0RlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9vYmplY3QpOwotICAgIH0KLSAgICBv
cGVyYXRvciBHTHVpbnQoKSBjb25zdAorICAgIFNjb3BlZEZyYW1lYnVmZmVyKCk7CisgICAgflNj
b3BlZEZyYW1lYnVmZmVyKCk7CisgICAgb3BlcmF0b3IgR0NHTHVpbnQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuIG1fb2JqZWN0OwogICAgIH0KIHByaXZhdGU6Ci0gICAgR0x1aW50IG1f
b2JqZWN0IHsgMCB9OworICAgIEdDR0x1aW50IG1fb2JqZWN0IHsgMCB9OwogfTsKIAogY2xhc3Mg
U2NvcGVkR0xGZW5jZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkR0xGZW5jZSk7
CisKIHB1YmxpYzoKICAgICBTY29wZWRHTEZlbmNlKCkgPSBkZWZhdWx0OwogICAgIFNjb3BlZEdM
RmVuY2UoU2NvcGVkR0xGZW5jZSYmIG90aGVyKQpAQCAtMjIxLDIzICsxNjEsMjYgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9Ci0gICAgdm9pZCByZXNl
dCgpCi0gICAgewotICAgICAgICBpZiAobV9vYmplY3QpIHsKLSAgICAgICAgICAgIEdMX0RlbGV0
ZVN5bmMobV9vYmplY3QpOwotICAgICAgICAgICAgbV9vYmplY3QgPSB7IH07Ci0gICAgICAgIH0K
LSAgICB9CisgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgYWJhbmRvbigpIHsgbV9vYmplY3Qg
PSB7IH07IH0KLSAgICB2b2lkIGZlbmNlU3luYygpCi0gICAgewotICAgICAgICByZXNldCgpOwot
ICAgICAgICBtX29iamVjdCA9IEdMX0ZlbmNlU3luYyhHTF9TWU5DX0dQVV9DT01NQU5EU19DT01Q
TEVURSwgMCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMc3luYygpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CisgICAgdm9pZCBmZW5jZVN5bmMoKTsKKyAgICBHQ0dMc3luYyBnZXQoKSBjb25z
dCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIG9wZXJhdG9yIEdDR0xzeW5jKCkgY29uc3QgeyBy
ZXR1cm4gbV9vYmplY3Q7IH0KICAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3Q7IH0KKworcHJpdmF0ZToKKyAgICBHQ0dMc3luYyBtX29iamVjdCB7IH07Cit9OworCitj
bGFzcyBTY29wZWRHTENhcGFiaWxpdHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjb3Bl
ZEdMQ2FwYWJpbGl0eSk7CitwdWJsaWM6CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5KEdDR0xlbnVt
IGNhcGFiaWxpdHksIGJvb2wgZW5hYmxlKTsKKyAgICB+U2NvcGVkR0xDYXBhYmlsaXR5KCk7CisK
IHByaXZhdGU6Ci0gICAgR0xzeW5jIG1fb2JqZWN0IHsgfTsKKyAgICBjb25zdCBHQ0dMZW51bSBt
X2NhcGFiaWxpdHk7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiBtX29yaWdpbmFsOwog
fTsKIAogYm9vbCBwbGF0Zm9ybUlzQU5HTEVBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAKaW5kZXggYzVjNmJmYTU3NWU5NDk0NjYxMDBlMTY1MzE4MzI4M2EwOGEw
ZGI3Yi4uMGMzOTQ5NzVmMmU2MGVjN2NmZGEzODRiMTM4MjZkMDUxZjgzMWRiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQaXhlbEJ1
ZmZlci5oIgotI2luY2x1ZGUgIlRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBA
IC0xNjQsMTAgKzE2MywxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlbGVhc2VU
aHJlYWRSZXNvdXJjZXMoUmVsZWFzZVRocmVhZFJlc291cmNlQmVoYXZpbwogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEFsbCByZXNvdXJjZXMgbXVzdCBoYXZlIGJlZW4gZGVz
dHJveWVkLgogICAgICAgICAgICAgRUdMX01ha2VDdXJyZW50KGN1cnJlbnREaXNwbGF5LCBFR0xf
Tk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKICAgICAgICAgfQot
ICAgICAgICBjb25zdGV4cHIgRUdMTmF0aXZlRGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheXNbXSA9
IHsKLSAgICAgICAgICAgIGRlZmF1bHREaXNwbGF5LAorICAgICAgICBjb25zdCBFR0xOYXRpdmVE
aXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5c1tdID0geworICAgICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDxFR0xOYXRpdmVEaXNwbGF5VHlwZT4oZGVmYXVsdERpc3BsYXkpLAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgICAgICAgICAgZGVmYXVsdE9wZW5HTERpc3BsYXksCisgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PEVHTE5hdGl2ZURpc3BsYXlUeXBlPihkZWZhdWx0T3BlbkdMRGlzcGxh
eSksCiAjZW5kaWYKICAgICAgICAgfTsKICAgICAgICAgZm9yIChhdXRvIG5hdGl2ZURpc3BsYXkg
OiBuYXRpdmVEaXNwbGF5cykgewpAQCAtMzIyLDggKzMyMSw4IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1aW50IGlu
dGVybmFsCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIFRlbXBvcmFyeUFOR0xF
U2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwotICAgIFRl
bXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7Cisg
ICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9G
QUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdM
X0ZBTFNFKTsKIAogICAgIEdMaW50IGJvdW5kRnJhbWVCdWZmZXIgPSAwOwogICAgIEdMaW50IGJv
dW5kUmVhZEZyYW1lQnVmZmVyID0gMDsKQEAgLTU2Nyw4ICs1NjYsOCBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnByZXBhcmVUZXh0dXJlSW1wbCgpCiAjZWxzZQogICAgIGlmIChtX3By
ZXNlcnZlRHJhd2luZ0J1ZmZlclRleHR1cmUpIHsKICAgICAgICAgLy8gQmxpdCBtX3ByZXNlcnZl
RHJhd2luZ0J1ZmZlclRleHR1cmUgaW50byBtX3RleHR1cmUuCi0gICAgICAgIFRlbXBvcmFyeUFO
R0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOwotICAg
ICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFM
U0UpOworICAgICAgICBTY29wZWRHTENhcGFiaWxpdHkgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09S
X1RFU1QsIEdMX0ZBTFNFKTsKKyAgICAgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZERpdGhl
cihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX0RS
QVdfRlJBTUVCVUZGRVJfQU5HTEUsIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyRkJPKTsKICAgICAg
ICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVJfQU5HTEUsIG1fZmJvKTsK
ICAgICAgICAgR0xfQmxpdEZyYW1lYnVmZmVyQU5HTEUoMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1f
Y3VycmVudEhlaWdodCwgMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgR0xf
Q09MT1JfQlVGRkVSX0JJVCwgR0xfTkVBUkVTVCk7CkBAIC02MjEsOCArNjIwLDggQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAg
ICBtX2N1cnJlbnRXaWR0aCA9IHdpZHRoOwogICAgIG1fY3VycmVudEhlaWdodCA9IGhlaWdodDsK
IAotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVT
VCwgR0xfRkFMU0UpOwotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyBzY29wZWREaXRoZXIoR0xf
RElUSEVSLCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3BlZFNjaXNzb3Io
R0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CisgICAgU2NvcGVkR0xDYXBhYmlsaXR5IHNjb3Bl
ZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICAgICBTY29wZWRCdWZmZXJCaW5kaW5nIHNj
b3BlZFBpeGVsVW5wYWNrQnVmZmVyUmVzZXQoR0xfUElYRUxfVU5QQUNLX0JVRkZFUiwgMCwgbV9p
c0ZvcldlYkdMMik7CiAKICAgICBib29sIG11c3RSZXN0b3JlRkJPID0gcmVzaGFwZUZCT3MoSW50
U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CkBAIC0yNzgyLDcgKzI3ODEsNyBAQCBHQ0dMYm9vbGVhbiBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjppc1N5bmMoR0NHTHN5bmMgc3luYykKICAgICBpZiAoIW1h
a2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7CiAKLSAgICByZXR1
cm4gR0xfSXNTeW5jKHN5bmMpOworICAgIHJldHVybiBHTF9Jc1N5bmMoc3RhdGljX2Nhc3Q8R0xz
eW5jPihzeW5jKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGVsZXRlU3lu
YyhHQ0dMc3luYyBzeW5jKQpAQCAtMjc5MCw3ICsyNzg5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpkZWxldGVTeW5jKEdDR0xzeW5jIHN5bmMpCiAgICAgaWYgKCFtYWtlQ29udGV4
dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR0xfRGVsZXRlU3luYyhzeW5jKTsK
KyAgICBHTF9EZWxldGVTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oc3luYykpOwogfQogCiBHQ0dM
ZW51bSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpjbGllbnRXYWl0U3luYyhHQ0dMc3luYyBzeW5j
LCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0x1aW50NjQgdGltZW91dCkKQEAgLTI3OTgsNyArMjc5
Nyw3IEBAIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNsaWVudFdhaXRTeW5jKEdD
R0xzeW5jIHN5bmMsIEdDR0xiaXRmaWVsZCBmbGFnCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJl
bnQoKSkKICAgICAgICAgcmV0dXJuIEdMX1dBSVRfRkFJTEVEOwogCi0gICAgcmV0dXJuIEdMX0Ns
aWVudFdhaXRTeW5jKHN5bmMsIGZsYWdzLCB0aW1lb3V0KTsKKyAgICByZXR1cm4gR0xfQ2xpZW50
V2FpdFN5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgZmxhZ3MsIHRpbWVvdXQpOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdD
R0xiaXRmaWVsZCBmbGFncywgR0NHTGludDY0IHRpbWVvdXQpCkBAIC0yODA2LDcgKzI4MDUsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdD
R0xiaXRmaWVsZCBmbGFncywgR0NHTGludAogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdMX1dhaXRTeW5jKHN5bmMsIGZsYWdzLCB0aW1lb3V0
KTsKKyAgICBHTF9XYWl0U3luYyhzdGF0aWNfY2FzdDxHTHN5bmM+KHN5bmMpLCBmbGFncywgdGlt
ZW91dCk7CiB9CiAKIEdDR0xpbnQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2koR0NH
THN5bmMgc3luYywgR0NHTGVudW0gcG5hbWUpCkBAIC0yODE1LDcgKzI4MTQsNyBAQCBHQ0dMaW50
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmdldFN5bmNpKEdDR0xzeW5jIHN5bmMsIEdDR0xlbnVt
IHBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiB2
YWx1ZTsKIAotICAgIEdMX0dldFN5bmNpdihzeW5jLCBwbmFtZSwgMSwgbnVsbHB0ciwgJnZhbHVl
KTsKKyAgICBHTF9HZXRTeW5jaXYoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSwgcG5hbWUsIDEs
IG51bGxwdHIsICZ2YWx1ZSk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCkBAIC0yOTc2LDcgKzI5
NzUsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OndhaXRBbmRVcGRhdGVPbGRlc3RG
cmFtZSgpCiAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGNyZWF0aW9uIG9mIHRoaXMgZmVuY2Ug
aGFzIGFscmVhZHkgYmVlbiBmbHVzaGVkLgogICAgICAgICBmbGFncyA9IDA7CiAjZW5kaWYKLSAg
ICAgICAgR0xlbnVtIHJlc3VsdCA9IEdMX0NsaWVudFdhaXRTeW5jKGZlbmNlLCBmbGFncywgbWF4
RnJhbWVEdXJhdGlvbi5uYW5vc2Vjb25kc0FzPEdMdWludDY0PigpKTsKKyAgICAgICAgR0xlbnVt
IHJlc3VsdCA9IEdMX0NsaWVudFdhaXRTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oZmVuY2UuZ2V0
KCkpLCBmbGFncywgbWF4RnJhbWVEdXJhdGlvbi5uYW5vc2Vjb25kc0FzPEdMdWludDY0PigpKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSBHTF9XQUlUX0ZBSUxFRCk7CiAgICAgICAgIHN1Y2Nl
c3MgPSByZXN1bHQgIT0gR0xfV0FJVF9GQUlMRUQgJiYgcmVzdWx0ICE9IEdMX1RJTUVPVVRfRVhQ
SVJFRDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKaW5kZXggMmZmZjc1MGE5
YTViMDM1OTEzMDFlNTlmNmRkZjVjYjE2NjYzZTZjNS4uODAzMTFmNGM5YzgyODMzZDkyMzgxZWMx
NjBhMmRiZjBlNGUwMmZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApAQCAtNjgs
OCArNjgsOCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTEFOR0xFIDog
cHVibGljIEdyYXBoaWNzQ29udGV4dEdMIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFwaGlj
c0NvbnRleHRHTEFOR0xFKCk7CiAKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxh
eSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
Q29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1E
aXNwbGF5KCkgY29uc3Q7CisgICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0Owog
ICAgIEdDR0xlbnVtIGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CiAgICAgc3RhdGljIEdD
R0xlbnVtIGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0UXVlcnlGb3JEcmF3aW5nVGFyZ2V0KEdD
R0xlbnVtIGRyYXdpbmdUYXJnZXQpOwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdpbmdCdWZm
ZXJUZXh0dXJlVGFyZ2V0Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsK
QEAgLTM2Myw5ICszNjMsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gcmVhZFJlbmRlcmluZ1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8
UGl4ZWxCdWZmZXI+IHJlYWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSAgICBj
b25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHREaXNwbGF5ID0gRUdM
X0RFRkFVTFRfRElTUExBWTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEdDR0xOYXRpdmVEaXNwbGF5
VHlwZSBkZWZhdWx0RGlzcGxheSA9IGdjR0xEZWZhdWx0RGlzcGxheTsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHRP
cGVuR0xEaXNwbGF5ID0gRUdMX0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0xKTsKKyAgICBj
b25zdGV4cHIgc3RhdGljIEdDR0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0T3BlbkdMRGlzcGxh
eSA9IHN0YXRpY19jYXN0PEdDR0xOYXRpdmVEaXNwbGF5VHlwZT4oLTEpOwogICAgIHN0YXRpY19h
c3NlcnQoZGVmYXVsdERpc3BsYXkgIT0gZGVmYXVsdE9wZW5HTERpc3BsYXkpOwogI2VuZGlmCiAK
QEAgLTQwNiw3ICs0MDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmID0gSW50UmVjdCgpKTsKICAgICB2b2lkIGF0
dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdDR0x1aW50IGludGVybmFsRGVwdGhT
dGVuY2lsRm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHN0YXRpYyBib29sIG1ha2VDdXJyZW50KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xE
aXNwbGF5LCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMKTsKKyAgICBzdGF0aWMgYm9vbCBtYWtl
Q3VycmVudChHQ0dMRGlzcGxheSwgR0NHTENvbnRleHQpOwogI2VuZGlmCiAgICAgdmlydHVhbCBi
b29sIHJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygpID0gMDsKIApAQCAtNDM5LDcgKzQzOSw3
IEBAIHByb3RlY3RlZDoKICAgICAvLyBBdHRhY2hlcyBtX3RleHR1cmUgd2hlbiBtX3ByZXNlcnZl
RHJhd2luZ0J1ZmZlclRleHR1cmUgaXMgbm9uLXplcm8uCiAgICAgR0NHTHVpbnQgbV9wcmVzZXJ2
ZURyYXdpbmdCdWZmZXJGQk8geyAwIH07CiAgICAgLy8gUXVlcmllZCBhdCBkaXNwbGF5IHN0YXJ0
dXAuCi0gICAgRUdMaW50IG1fZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQgeyAtMSB9OworICAg
IEdDR0xpbnQgbV9kcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCB7IC0xIH07CiAgICAgLy8gRXJy
b3JzIHJhaXNlZCBieSBzeW50aGVzaXplR0xFcnJvcigpLgogICAgIExpc3RIYXNoU2V0PEdDR0xl
bnVtPiBtX3N5bnRoZXRpY0Vycm9yczsKICAgICBib29sIG1faXNGb3JXZWJHTDIgeyBmYWxzZSB9
OwpAQCAtNDU0LDkgKzQ1NCw5IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdy
YXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwotICAgIEVHTERp
c3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0xDb25maWcgbV9jb25maWdPYmogeyBudWxscHRyIH07CisgICAgR0NHTERpc3BsYXkgbV9k
aXNwbGF5T2JqIHsgbnVsbHB0ciB9OworICAgIEdDR0xDb250ZXh0IG1fY29udGV4dE9iaiB7IG51
bGxwdHIgfTsKKyAgICBHQ0dMQ29uZmlnIG1fY29uZmlnT2JqIHsgbnVsbHB0ciB9OwogICAgIC8v
IEJhY2tpbmcgc3RvcmUgZm9yIHRoZSB0aGUgYnVmZmVyIHdoaWNoIGlzIGV2ZW50dWFsbHkgdXNl
ZCBmb3IgZGlzcGxheS4KICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSBmYWxz
ZSwgdGhpcyBpcyB0aGUgZHJhd2luZyBidWZmZXIgYmFja2luZyBzdG9yZS4KICAgICAvLyBXaGVu
IHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5n
IGRpc3BsYXkgcHJlcGFyZS4KQEAgLTQ3Myw3ICs0NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgY2xh
c3MgRUdMSW1hZ2VCYWNraW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBw
dWJsaWM6Ci0gICAgICAgIEVHTEltYWdlQmFja2luZyhQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
RGlzcGxheSk7CisgICAgICAgIEVHTEltYWdlQmFja2luZyhHQ0dMRGlzcGxheSk7CiAgICAgICAg
IH5FR0xJbWFnZUJhY2tpbmcoKTsKIAogICAgICAgICBib29sIHJlc2V0KGludCB3aWR0aCwgaW50
IGhlaWdodCwgYm9vbCBoYXNBbHBoYSk7CkBAIC00ODgsNyArNDg4LDcgQEAgcHJvdGVjdGVkOgog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwogCi0gICAgICAg
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IG1fZGlzcGxheTsKKyAgICAgICAgR0NH
TERpc3BsYXkgbV9kaXNwbGF5OwogCiAgICAgICAgIGdibV9ibyogbV9CTyB7IG51bGxwdHIgfTsK
ICAgICAgICAgaW50IG1fRkQgeyAtMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5Y2U1YjFjYTdjNmJiYzFjMTU2YmVlNGU2
ZmU5OTY5MmE0MGU2MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5H
TEVTZXR0aW5nLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCi0jaW5jbHVk
ZSAiVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgiCi0KLSNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1UZW1wb3JhcnlBTkdMRVNldHRpbmc6OlRlbXBvcmFy
eUFOR0xFU2V0dGluZyhHTGVudW0gY2FwYWJpbGl0eSwgR0xlbnVtIHNjb3BlZFN0YXRlKQotICAg
IDogbV9jYXBhYmlsaXR5KGNhcGFiaWxpdHkpCi0gICAgLCBtX3Njb3BlZFN0YXRlKHNjb3BlZFN0
YXRlKQotewotICAgIG1fb3JpZ2luYWxTdGF0ZSA9IEdMX0lzRW5hYmxlZChtX2NhcGFiaWxpdHkp
OwotICAgIGlmIChtX29yaWdpbmFsU3RhdGUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKEdMX1RSVUUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgR0xfRW5h
YmxlKG1fY2FwYWJpbGl0eSk7Ci0gICAgZWxzZQotICAgICAgICBHTF9EaXNhYmxlKG1fY2FwYWJp
bGl0eSk7Ci19Ci0KLVRlbXBvcmFyeUFOR0xFU2V0dGluZzo6flRlbXBvcmFyeUFOR0xFU2V0dGlu
ZygpCi17Ci0gICAgaWYgKG1fb3JpZ2luYWxTdGF0ZSA9PSBtX3Njb3BlZFN0YXRlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoR0xfVFJVRSA9PSBtX29yaWdpbmFsU3RhdGUpCi0gICAgICAg
IEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOwotICAgIGVsc2UKLSAgICAgICAgR0xfRGlzYWJsZSht
X2NhcGFiaWxpdHkpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpICYmIFVTRShB
TkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L1RlbXBvcmFyeUFOR0xFU2V0dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDMwNDc3MDk3NTM0NDgxMjRlOGYyZGM2OWUyYTAyM2U5NzgyOWNmMjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiR3JhcGhp
Y3NUeXBlc0dMLmgiCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0vLyBUZW1wb3JhcnlBTkdMRVNldHRpbmc8PiBpcyB1c2VmdWwgZm9yIHRl
bXBvcmFyaWx5IGRpc2FibGluZyAob3IgZW5hYmxpbmcpIGEgcGFydGljdWxhciBPcGVuR0wKLS8v
IGZlYXR1cmUgd2l0aCBhIHBhcnRpY3VsYXIgc2NvcGUuIEEgVGVtcG9yYXJ5QU5HTEVTZXR0aW5n
PD4gb2JqZWN0IHJldHVybnMgdGhlIGZsYWcgdG8gaXRzIG9yaWdpbmFsCi0vLyB2YWx1ZSB1cG9u
IGRlc3RydWN0aW9uLCBtYWtpbmcgaXQgYW4gYWx0ZXJuYXRpdmUgdG8gY2hlY2tpbmcsIGNsZWFy
aW5nLCBhbmQgcmVzZXR0aW5nIGVhY2ggZmxhZwotLy8gYXQgYWxsIG9mIGEgYmxvY2sncyBleGl0
IHBvaW50cy4KLS8vCi0vLyBCYXNlZCBvbiBTZXRGb3JTY29wZTw+Ci0KLWNsYXNzIFRlbXBvcmFy
eUFOR0xFU2V0dGluZyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nKTsKLXB1YmxpYzoKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcoR0NHTGVudW0gY2Fw
YWJpbGl0eSwgR0NHTGVudW0gc2NvcGVkU3RhdGUpOwotICAgIH5UZW1wb3JhcnlBTkdMRVNldHRp
bmcoKTsKLQotcHJpdmF0ZToKLSAgICBjb25zdCBHQ0dMZW51bSBtX2NhcGFiaWxpdHk7Ci0gICAg
Y29uc3QgR0NHTGVudW0gbV9zY29wZWRTdGF0ZTsKLSAgICBHQ0dMZW51bSBtX29yaWdpbmFsU3Rh
dGU7Ci19OwotCi19Ci0KLXVzaW5nIFdlYkNvcmU6OlRlbXBvcmFyeUFOR0xFU2V0dGluZzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRp
bGl0aWVzQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
QU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKaW5kZXggZTk5M2I3NzY3MTg5ZmU3ZWRmNmMyNjU5MjE1
YWNlM2MyZWEwNjkzOS4uNDA3ZTgyODQwN2ZiYjA5ZDdlZWViYTI4Njg4NDdlM2RhZjZmMDE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVV
dGlsaXRpZXNDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAKQEAgLTI3LDEyICsyNywyMyBAQAogI2luY2x1
ZGUgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLQorI2luY2x1
ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4KKworV1RG
X1dFQUtfTElOS19GT1JDRV9JTVBPUlQoRUdMX0luaXRpYWxpemUpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoRUdMRGlzcGxh
eSBkaXNwbGF5LCBFR0xDb25maWcgY29uZmlnLCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQgdXNhZ2VI
aW50LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LCBHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmIHN1cmZhY2UsIEdMdWludCBwbGFuZSkKK2Jvb2wg
cGxhdGZvcm1Jc0FOR0xFQXZhaWxhYmxlKCkKK3sKKyAgICAvLyBUaGUgQU5HTEUgaXMgd2VhayBs
aW5rZWQgaW4gZnVsbCwgYW5kIHRoZSBFR0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5IHdlYWsg
bGlua2VkIGFib3ZlCisgICAgLy8gc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNlIHdoZXJl
IEFOR0xFIGlzIG5vdCBwcmVzZW50LgorICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXplOworfQor
Cit2b2lkKiBjcmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEdDR0xEaXNwbGF5IGRpc3Bs
YXksIEdDR0xDb25maWcgY29uZmlnLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgdXNhZ2VIaW50
LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVp
Z2h0LCBHQ0dMZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0NHTHVpbnQgcGxhbmUp
CiB7CiAgICAgYXV0byBlZ2xUZXh0dXJlVGFyZ2V0ID0gdGFyZ2V0ID09IEdMX1RFWFRVUkVfUkVD
VEFOR0xFX0FOR0xFID8gRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIDogRUdMX1RFWFRVUkVf
MkQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0FOR0xFVXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuaAppbmRleCA5M2JhNGUwZGM5MTMyZTg1ODc3NWY5
YzI1YmFkNjc0OGM3Yzg2OWI4Li4wYWNkNzIxZDA4N2FhMmY3Yjg0MzZjYmYzNDU1NGE1NTlkZTE0
MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9B
TkdMRVV0aWxpdGllc0NvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5oCkBAIC0yNywxNiArMjcsMTYgQEAKIAogI2lm
IEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXNHTC5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0lPU3VyZmFjZSAqSU9TdXJmYWNl
UmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJldHVybnMgYSBoYW5kbGUgd2hpY2gs
IGlmIG5vbi1udWxsLCBtdXN0IGJlIHJlbGVhc2VkIHdpdGggZGVzdHJveVBidWZmZXJBbmREZXRh
Y2hJT1N1cmZhY2UoKS4KLXZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoRUdM
RGlzcGxheSwgRUdMQ29uZmlnLCBHTGVudW0gdGFyZ2V0LCBFR0xpbnQgdXNhZ2VIaW50LCBHTGVu
dW0gaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
dHlwZSwgSU9TdXJmYWNlUmVmLCBHTHVpbnQgcGxhbmUpOwordm9pZCogY3JlYXRlUGJ1ZmZlckFu
ZEF0dGFjaElPU3VyZmFjZShHQ0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMaW50IHVzYWdlSGludCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xzaXplaSB3
aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHQ0dM
dWludCBwbGFuZSk7CiAKLXZvaWQgZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZhY2UoRUdM
RGlzcGxheSwgdm9pZCogaGFuZGxlKTsKK3ZvaWQgZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1
cmZhY2UoR0NHTERpc3BsYXksIHZvaWQqIGhhbmRsZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EubW0KaW5kZXggMzZlOGYwZmIwMjkzNzdiNGVmZmU0MDUzNTIzN2U1ODIyMmZi
Zjc3MS4uNDdkNzEwNjExMWM1YjYxY2NiNDVjMjdhMGQxZjM0NGExYTUxYzBmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiCiAKKyNpbXBvcnQgIkFO
R0xFSGVhZGVycy5oIgogI2ltcG9ydCAiQU5HTEVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkFOR0xF
VXRpbGl0aWVzQ29jb2EuaCIKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJQaXhl
bEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRl
eHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01l
dGFsU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8
d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDE3ICs1OCw4IEBACiAjaW5jbHVkZSAi
TWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjZW5kaWYKIAotV1RGX1dFQUtfTElOS19GT1JDRV9JTVBP
UlQoRUdMX0luaXRpYWxpemUpOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgcGxhdGZv
cm1Jc0FOR0xFQXZhaWxhYmxlKCkKLXsKLSAgICAvLyBUaGUgQU5HTEUgaXMgd2VhayBsaW5rZWQg
aW4gZnVsbCwgYW5kIHRoZSBFR0xfSW5pdGlhbGl6ZSBpcyBleHBsaWNpdGx5IHdlYWsgbGlua2Vk
IGFib3ZlCi0gICAgLy8gc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IHRoZSBjYXNlIHdoZXJlIEFOR0xF
IGlzIG5vdCBwcmVzZW50LgotICAgIHJldHVybiAhIUVHTF9Jbml0aWFsaXplOwotfQotCiAvLyBJ
biBpc0N1cnJlbnRDb250ZXh0UHJlZGljdGFibGUoKSA9PSB0cnVlIGNhc2UgdGhpcyB2YXJpYWJs
ZSBpcyBhY2Nlc3NlZCBpbiBzaW5nbGUtdGhyZWFkZWQgbWFubmVyLgogLy8gSW4gaXNDdXJyZW50
Q29udGV4dFByZWRpY3RhYmxlKCkgPT0gZmFsc2UgY2FzZSB0aGlzIHZhcmlhYmxlIGlzIGFjY2Vz
c2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBidXQgYWx3YXlzIHNlcXVlbnRpYWxseQogLy8gYW5k
IGl0IGFsd2F5cyBjb250YWlucyBudWxscHRyIGFuZCBudWxscHRyIGlzIGFsd2F5cyB3cml0dGVu
IHRvIGl0LgpAQCAtNTk5LDcgKzU5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
YmluZERpc3BsYXlCdWZmZXJCYWNraW5nKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6bWFrZUN1cnJl
bnQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgZGlzcGxheSwgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTCBjb250ZXh0KQorYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjptYWtl
Q3VycmVudChHQ0dMRGlzcGxheSBkaXNwbGF5LCBHQ0dMQ29udGV4dCBjb250ZXh0KQogewogICAg
IGN1cnJlbnRDb250ZXh0ID0gbnVsbHB0cjsKICAgICByZXR1cm4gRUdMX01ha2VDdXJyZW50KGRp
c3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgY29udGV4dCk7CkBAIC04MDEs
MTIgKzc5MywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJv
bU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRmb3JtRwogfQogI2VuZGlmCiAKLVBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRm
b3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpw
bGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlPYmo7CiB9CiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6
cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29uZmlnT2JqOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKaW5kZXggMmM5OGY5ZDkyOTIzYzA0OWE5NGIz
NDliNGY3NzUyOTQ3NzE5ZTIyOC4uYTgzY2ZhMjk1NzA4NjBmMzM5MzRhMzg3Mjg2ZDY5YjUyODA0
YTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCR0wpICYmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElP
TikKIAorI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVz
Q29jb2EuaCIKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRH
TENvY29hLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCmluZGV4IDllMWI0NDQ5ZDNiNGJi
OWY1YzBkN2FlOGQ4NWYzMGVmMWQwNGJhOGEuLjc3ZGVkZDQ4NzI5MTE5NjExMzU3YmJkZGI2Y2M2
OGMzODg5YmIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCkBAIC01MSw5ICs1MSw5
IEBAIHByaXZhdGU6CiAKIAogICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG1fb3duZXI7Ci0g
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgbV9kaXNwbGF5IHsgbnVsbHB0ciB9
OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0IHsgbnVsbHB0ciB9Owot
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgbV9jb25maWcgeyBudWxscHRyIH07
CisgICAgR0NHTERpc3BsYXkgbV9kaXNwbGF5IHsgbnVsbHB0ciB9OworICAgIEdDR0xDb250ZXh0
IG1fY29udGV4dCB7IG51bGxwdHIgfTsKKyAgICBHQ0dMQ29uZmlnIG1fY29uZmlnIHsgbnVsbHB0
ciB9OwogCiAgICAgUGxhdGZvcm1HTE9iamVjdCBtX2ZyYW1lYnVmZmVyIHsgMCB9OwogICAgIFBs
YXRmb3JtR0xPYmplY3QgbV95dXZWZXJ0ZXhCdWZmZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IGM2
MWVlYmMzMDY3OTc2MzViZjI1Yzg5MGRhOTljZTViY2UzMjIwYjMuLjI2MmIyZmI5MDIzNzgwMmNk
ZjA1YTI3OGI0NDMxZTZlODA4OWIyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAg
dm9pZCBHTENvbnRleHRFR0w6OnN3YXBJbnRlcnZhbChpbnQgaW50ZXJ2YWwpCiAgICAgZWdsU3dh
cEludGVydmFsKG1fZGlzcGxheS5lZ2xEaXNwbGF5KCksIGludGVydmFsKTsKIH0KIAotUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgpCitHQ0dM
Q29udGV4dCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIG1f
Y29udGV4dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRFR0wuaAppbmRleCAzYzNhM2Q3ZjA1NzczYWRlYzBjNmNkODcxZWZiYTRkNmRi
MzVjNjQxLi41OThiMGI2NzMyNmE2NjQxMmQ2NTQyYmQ5YmU5MThjNGZkNzY3ZjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5o
CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwSW50ZXJ2YWwoaW50KSBv
dmVycmlkZTsKICAgICBib29sIGlzRUdMQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0
KCkgb3ZlcnJpZGU7CisgICAgR0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7
CiAKICAgICBlbnVtIEVHTFN1cmZhY2VUeXBlIHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRvd1N1cmZh
Y2UsIFBpeG1hcFN1cmZhY2UsIFN1cmZhY2VsZXNzIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKaW5kZXggNWZiZmFi
NmNkMGYzMTEzZmYwNDQ3YmIzZTFjNjlmMTc3ODAzNDEzYS4uOTgzOWQ5YmE5YTJlNWEwYzNkYmYw
NGJmNGQ5NGUwM2EzYzRjOWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lk
IEdMQ29udGV4dEdMWDo6c3dhcEludGVydmFsKGludCBpbnRlcnZhbCkKICAgICBnbFhTd2FwSW50
ZXJ2YWxTR0koaW50ZXJ2YWwpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIEdMQ29u
dGV4dEdMWDo6cGxhdGZvcm1Db250ZXh0KCkKK0dDR0xDb250ZXh0IEdMQ29udGV4dEdMWDo6cGxh
dGZvcm1Db250ZXh0KCkKIHsKICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5oCmlu
ZGV4IGQzZGIzNWQ2NTYxMWMxOGUwYTA1YmNhMTA0M2UxOWRmYTQ5NDcyNDIuLjgyMjJkNDk2M2Qw
OGFlZjZjYzI1OGUzMmU0ODFkYzU4MTk4MjMyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOwogICAgIGJvb2wg
aXNFR0xDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CisgICAg
R0NHTENvbnRleHQgcGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CiAKICAgICBHTENvbnRleHRH
TFgoUGxhdGZvcm1EaXNwbGF5JiwgWFVuaXF1ZUdMWENvbnRleHQmJiwgR0xOYXRpdmVXaW5kb3dU
eXBlKTsKICAgICBHTENvbnRleHRHTFgoUGxhdGZvcm1EaXNwbGF5JiwgWFVuaXF1ZUdMWENvbnRl
eHQmJiwgWFVuaXF1ZUdMWFBidWZmZXImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3Bs
YXlHU3RyZWFtZXIuY3BwCmluZGV4IDAwZjk5ZTgzNzRjNGRhMTAxN2NhNGQyMzE1ZGNmYTQ0NzJl
MjkwNjMuLjc1NGQ2MjQ0ODZlYzA0ZWM5NWVmMTNmMGZkNTcyMTkxNDBlNWExNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURp
c3BsYXlHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IGJvb2wgUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1cmVHc3RHTENvbnRleHQoKSBjb25zdAogICAg
IGF1dG8qIHNoYXJlZENvbnRleHQgPSBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxheSo+KHRoaXMp
LT5zaGFyaW5nR0xDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBjb250ZXh0SGFuZGxl
ID0gc2hhcmVkQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgR0NHTENvbnRleHQgY29u
dGV4dEhhbmRsZSA9IHNoYXJlZENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIGlmICgh
Y29udGV4dEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFO
R0xFTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcAppbmRleCAzOGMwNGQxZTZkZWUzNmYxZDIw
MmE5Zjg5YjI0MjU3Y2I2NTQ0ZTA4Li4yNWUyYjkxY2NjNGI5OGYzOTM0MGExNWVkMDY0NTEyMWYx
NGVmMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5j
cHAKQEAgLTIxNCwxNyArMjE0LDE3IEBAIGJvb2wgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4
dDo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGxhdGZvcm1H
cmFwaGljc0NvbnRleHRHTCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNv
bnRleHQoKSBjb25zdAorR0NHTENvbnRleHQgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6
cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0OwogfQogCi1Q
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250
ZXh0OjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NHTERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6
OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9k
aXNwbGF5OwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIEdDR0xBTkdMRUxh
eWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dDR0xDb25maWcgR0NH
TEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db25maWcoKSBjb25zdAogewogICAg
IHJldHVybiBtX2NvbmZpZzsKIH0KQEAgLTI0OCwxOSArMjQ4LDE5IEBAIGJvb2wgR0NHTEFOR0xF
TGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHRHTCBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0
IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVCht
X2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5wbGF0Zm9ybUNvbnRl
eHQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR0NHTEFOR0xFTGF5
ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6
cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwog
ICAgIHJldHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1EaXNwbGF5KCk7CiB9CiAKLVBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29uZmln
KCkgY29uc3QKK0dDR0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkgY29u
c3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2FuZ2xlQ29u
dGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
QU5HTEVMYXllci5oCmluZGV4IDRmOGRmNmVjZTA2YTU3NDJlZDNhN2I4ZjdlYTBlNTBkMGNiMDQ2
NDIuLmRmODNhODk0ZGQ1MDYwMTg1YWM5OTZjZjcxNGVhYmRiNzY1ZWQwMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
Q0dMQU5HTEVMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oCkBAIC02Miw5ICs2Miw5IEBAIHB1
YmxpYzoKIAogICAgICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShX
RUJHTCkKLSAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQo
KSBjb25zdDsKLSAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZv
cm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25m
aWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKKyAgICAgICAgR0NHTENvbnRleHQgcGxhdGZvcm1D
b250ZXh0KCkgY29uc3Q7CisgICAgICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNv
bnN0OworICAgICAgICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAjZW5kaWYK
IAogICAgIHByaXZhdGU6CkBAIC04MCw5ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5H
Q0dMQU5HTEVMYXllcigpOwogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwotICAgIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0Owot
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25z
dDsKKyAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyAgICBHQ0dMRGlz
cGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAgICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29u
ZmlnKCkgY29uc3Q7CiAKICAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGVudExheWVyOyB9CiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IDRlNGEy
YjNiZTUyZGMzNjU3MDBjN2I1OWM5NTUzMjJhZGVlODY2MDYuLjAxMGNjN2MzM2JlY2JiMmI4ZjZh
YjA3MGZkNzM1ZWZhYjAwZTI3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5
ZXIuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgR0NHTExheWVyOjptYWtlQ29udGV4dEN1cnJl
bnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBj
b25zdAorR0NHTENvbnRleHQgR0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaAppbmRleCAxOTY2
Yzc5ZmNiYmFkZWUzNmQ3MGFkNWYwYTRmNzBlZDdmMzFkYzM3Li5hYjFhMTY0ODE3ZGI2MTkyODk2
NTE3M2M0MGJmMjMxMWQ3MTUwNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXll
ci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIENvbnRlbnRMYXllciYgY29udGVu
dExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGF5ZXI7IH0KICAgICB2aXJ0dWFsIGJv
b2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgR0NHTENvbnRleHQg
cGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVkZWQo
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXJBTkdMRS5jcHAKaW5kZXggYTJlNjczZmM0NjM0ZDhlZWU2YmNlNWVhNWU5ODk3ZmE3
ZTYzZjg3MS4uMjAyOGE5NTg2NjM1N2YwZDk0MDA0YmFmODZlMDU1ZTI1NWYxNzdjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3Bw
CkBAIC0xMjUsNyArMTI1LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6R3JhcGhpY3NDb250
ZXh0R0xBTkdMRShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmkKIH0KIAogI2lmIFVT
RShOSUNPU0lBKQotR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJ
bWFnZUJhY2tpbmcoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgZGlzcGxheSkKK0dy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OkVHTEltYWdlQmFja2luZzo6RUdMSW1hZ2VCYWNraW5nKEdD
R0xEaXNwbGF5IGRpc3BsYXkpCiAgICAgOiBtX2Rpc3BsYXkoZGlzcGxheSkKIHsKIH0KQEAgLTIz
MSw3ICsyMzEsNyBAQCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0R0xB
TkdMRSgpCiAjZW5kaWYKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKK0dDR0xEaXNwbGF5
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiB7CiAjaWYg
VVNFKE5JQ09TSUEpCiAgICAgcmV0dXJuIG1fbmljb3NpYUxheWVyLT5wbGF0Zm9ybURpc3BsYXko
KTsKQEAgLTI0MCw3ICsyNDAsNyBAQCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogI2VuZGlmCiB9
CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgcmV0
dXJuIG1fbmljb3NpYUxheWVyLT5wbGF0Zm9ybUNvbmZpZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2MjY2ZWFmOTIxMDMxN2U2OWM2
MWE0MDFiNjdmZTRmMDNiYWFiM2ViLi5lNTMzNGVlMmY3NTc0OTI1ZjM4NjNiOTVmNTMxZmRjODI2
MjlmZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVy
LmNwcApAQCAtNjIsMTkgKzYyLDE5IEBAIGJvb2wgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgVGV4dHVyZU1h
cHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NHTENvbnRl
eHQgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25z
dAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkg
VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAor
R0NHTERpc3BsYXkgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9ybURpc3Bs
YXkoKSBjb25zdAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xD
b250ZXh0LT5wbGF0Zm9ybURpc3BsYXkoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TENvbmZpZyBUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkg
Y29uc3QKK0dDR0xDb25maWcgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOjpwbGF0Zm9y
bUNvbmZpZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKICAgICByZXR1cm4g
bV9nbENvbnRleHQtPnBsYXRmb3JtQ29uZmlnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDR0xQbGF0Zm9ybUxheWVyLmgKaW5kZXggZTNlZWQ2YmI5ZTM2NjYyNjkzNzM1YzJjY2QxMGNl
MWI3ZTZkNmUzYi4uZjdiODU3NGY4ZjAzMGQzMGQ2NTExZTZiOGQ4MDRjZDllNTAyMmQyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzgsOSAr
MzgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyKCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OworICAgIEdD
R0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgIEdDR0xEaXNwbGF5IHBsYXRm
b3JtRGlzcGxheSgpIGNvbnN0OworICAgIEdDR0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25z
dDsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBSZWZQdHI8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gcHJveHkoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKaW5kZXggMDQyMzc1ZDZiN2FlNTgxYTRiYWZkZDZkM2UxNzZiMTNlODM4OWY1
MC4uZmYyODQ1ZWQ0MmYzNDdhOWI4YWI4NTcyMWU2MmVlYjE0ZTUxN2YwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIHByb3RlY3RlZDoKICAgICBXZWFrUHRy
PEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsK
ICAgICBSZWZQdHI8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rp
b247CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdXNpbmcgUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHRHTCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E7CisgICAgdXNpbmcgR0NHTENv
bnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKLSAgICB1c2lu
ZyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xU
ZXh0dXJlTWFwcGVyOworICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyOwogI2VuZGlmCiAgICAgCi0gICAgUmVmUHRyPFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFt
VGhyZWFkKTsKKyAgICBSZWZQdHI8R0NHTENvbnRleHQ+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIg
bV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oCmluZGV4IDA1ZGMyMzc4MDM0
OTE0OGRlMTg0Y2YwMjExOWJmZGVlYTA0ZDIzMGIuLmU0NmI3ZmMzN2I5YzRmZDM4NjlkZWJiZDc0
YzZmZDI4YjdlYWJjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21h
Yy9BcHBLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0
U1BJLmgKQEAgLTI5LDEzICsyOSw2IEBACiAKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBPSU5URVJf
SF8KIAotI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCi0jaWZu
ZGVmIEdMX0dMRVNfUFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2Vu
ZGlmCi0jaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KLSNl
bmRpZgotCiAjaW1wb3J0IDxBcHBLaXQvTlNJbnNwZWN0b3JCYXIuaD4KICNpbXBvcnQgPEFwcEtp
dC9OU1RleHRJbnB1dENsaWVudF9Qcml2YXRlLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3df
UHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0Fw
cGxpY2F0aW9uU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21hYy9B
cHBsaWNhdGlvblNlcnZpY2VzU1BJLmgKaW5kZXggNmQ0YTMxNDZlNmU5NTcxNzcxOWM2M2YyZWYy
ZjZkOWRlNzU0NWQ3Ni4uZjA3OTUxNTZjNTc4NjJmODQ1MDljYzVhNGJjYWY4MGYyZmU3MDNkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2Vy
dmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwbGljYXRp
b25TZXJ2aWNlc1NQSS5oCkBAIC0zMSwxMCArMzEsNiBAQAogCiAjaWYgSEFWRShDUFAyMF9JTkNP
TVBBVElCTEVfSU5URVJOQUxfSEVBREVSUykKICNkZWZpbmUgQ0dDT0xPUlRBR0dFRFBPSU5URVJf
SF8KLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0jZGVmaW5lIEdMX0dMRVNfUFJPVE9UWVBF
UyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dl
bi5oPgogI2VuZGlmCiAKICNpbXBvcnQgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25T
ZXJ2aWNlc1ByaXYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaAppbmRleCAwN2NkMGQ5Mjg4MWI3
NTA4NjAzZmVjZmE0NDFiMTc5NTJjYzA2YmUwLi42N2Y3MjdkOTk2YjUzOTU2YjFhYjQ3MDJjOTdm
MjIyYmIwNWRjMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oCkBAIC0yNywxMyArMjcsNiBA
QAogCiAjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKSAmJiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQotI2lmbmRl
ZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRp
ZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+Ci0jZW5k
aWYKLQogI2ltcG9ydCA8UXVhcnR6L1F1YXJ0ei5oPgogCiBAY2xhc3MgQ1BSZWFkaW5nTW9kZWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5h
bC5oCmluZGV4IDMxNDdhNDVlYTIxMTI3ZWMwMDA5NTM4ZmMxODAxZjY0Y2QzMDA4MmYuLmFmMWYx
NTEzNDg2YmEzNzMzM2RiYzM1OWVjZmVjNTZkZmI3YTc1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC0yOCwxMyArMjgs
NiBAQAogCiAvLyBUaGlzIGhlYWRlciBjb250YWlucyBXZWJGcmFtZSBkZWNsYXJhdGlvbnMgdGhh
dCBjYW4gYmUgdXNlZCBhbnl3aGVyZSBpbiBXZWJLaXQsIGJ1dCBhcmUgbmVpdGhlciBTUEkgbm9y
IEFQSS4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIEhBVkUoQ1BQMjBfSU5DT01Q
QVRJQkxFX0lOVEVSTkFMX0hFQURFUlMpCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9UWVBFUwotI2Rl
ZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5HTEUvZW50cnlf
cG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KLSNlbmRpZgotCiAjaW1wb3J0ICJXZWJGcmFtZVBy
aXZhdGUuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9FZGl0QWN0aW9uLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452146</attachid>
            <date>2022-02-15 22:20:36 -0800</date>
            <delta_ts>2022-02-16 04:16:00 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236636-20220216082034.patch</filename>
            <type>text/plain</type>
            <size>73010</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4NWRjNjVlNzljNWVk
NzE1NTljODRkOTZmZWM3Yjk5YWYxODFhZi4uYzBlNjY0NTllMWM5YTkxZjQwZGE1YjFmMmMyMDlm
ZDY0NDU4OGRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMi0wMi0xNSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGluY2x1
ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1c2Ug
QU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0eXBl
cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBlcwor
ICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUgT3Bl
bkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0x7
RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAgICBH
Q0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNpc3Rl
bnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNlIGlu
IEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3ZlIGN1
cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAgICAg
ICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHksIGNv
bnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0aGUg
aW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNpbmNl
IHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRoZXNl
IG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rv
ci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBmaWxl
IGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZpbGUg
b3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
QU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5k
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3BlZEJ1ZmZl
ckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29w
ZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6
OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFRl
eHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZyYW1lYnVm
ZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRGcmFtZWJ1
ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYyk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2FwYWJpbGl0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRHTENhcGFi
aWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9yIEdDR0xp
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0b3IgR0NH
THVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6Om9wZXJh
dG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6Omdl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRvciBHQ0dM
c3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZyYW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRm
b3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVmZmVyQW5k
QXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdM
RVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1
cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNw
bGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRl
eHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxh
eWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xF
TGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpHQ0dMQU5H
TEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1D
b25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNSAgTmlrb2xhb3MgTW91Y2h0
YXJpcyAgPG5tb3VjaHRhcmlzQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgcGFyc2lu
ZyBhbmQgYW5pbWF0aW9uIHN1cHBvcnQgZm9yIG9mZnNldCBzaG9ydGhhbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCmluZGV4IDE3ZjM5YjNlODllZjIxODQxNzQ2NWFkYmNjYTgzNjBmYzc2MGViNTUuLjAwM2Q4
YjM3MTRlYzMzMWUyMTZjNDVmZmY5OTUyY2RiNjhiOTRlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIyLTAyLTE1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgaW5jbHVkZXMgaW50ZXJmZXJlIHdpdGggc3lzdGVt
IGhlYWRlciBpbmNsdWRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisg
ICAgICAgIFJlbW92ZSB0aGUgYXR0ZW1wdCB0byBvdmVycmlkZSBzeXN0ZW0gaGVhZGVyIGxvZ2lj
IHdpdGggV2ViS2l0CisgICAgICAgIEFOR0xFIGltcGxlbWVudGF0aW9uLiBUaGV5IGFyZSBkaWZm
ZXJlbnQgaW1wbGVtZW50YXRpb25zCisgICAgICAgIGFuZCBvbmUgY2Fubm90IHJlcGxhY2UgdGhl
IG90aGVyLgorCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKyAgICAg
ICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDoKKyAgICAgICAgQWRkIG1pc3NpbmcgQ0dD
T0xPUlRBR0dFRFBPSU5URVJfSF8gdGhhdCBtYWtlcyB0aGUgQ29jb2FQcml2LmgKKyAgICAgICAg
aW5jbHVkZWQgQ29yZUdyYXBoaWNzIGhlYWRlciBza2lwIHRoZSBpbmNvbXBhdGlibGUgdGFnZ2Vk
IHBvaW50ZXIKKyAgICAgICAgZGVjbGFyYXRpb25zLCBzaW1pbGFyIHRvIG90aGVyICpTUEkuaCBo
ZWFkZXJzLgorCiAyMDIyLTAyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRml4IGludGVybmFsIEJpZyBTdXIgYnVpbGQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjMxMWZkYThkZmNhOWYyMmMxMGU0YzkyMTVjMDIwMGE2ZDlhYWU1Ny4uNGYwOWEyNGVkNTA3
ZDdkMjAwMGUxN2VmODYyZWE3NGIwNWE2OGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMi0wMi0xNSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFOR0xFIGluY2x1ZGVzIGludGVyZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgor
CisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBSZW1vdmUgdGhl
IGF0dGVtcHQgdG8gb3ZlcnJpZGUgc3lzdGVtIGhlYWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAg
ICAgICBBTkdMRSBpbXBsZW1lbnRhdGlvbi4gVGhleSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0
aW9ucworICAgICAgICBhbmQgb25lIGNhbm5vdCByZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oOgorICAgICAgICAqIFBsYXRmb3JtL3Nw
aS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmg6CisKIDIwMjItMDItMTUgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDb2Nv
YV0gUmVlbnRyYW5jeSBpbiBXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6Om9wZW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwNGUxYTE5OWZkNDZjNjRmMmFjMjBhNTFjMzIzNWYy
ZWEzNDUyYTg4Li43OWNkODdlZmEwOGU5NWVkNmFjNDdmNzIwOTZkYjRhMTJjNDJiYWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTUgIEtp
bW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBTkdMRSBpbmNs
dWRlcyBpbnRlcmZlcmUgd2l0aCBzeXN0ZW0gaGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBhdHRlbXB0IHRvIG92
ZXJyaWRlIHN5c3RlbSBoZWFkZXIgbG9naWMgd2l0aCBXZWJLaXQKKyAgICAgICAgQU5HTEUgaW1w
bGVtZW50YXRpb24uIFRoZXkgYXJlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg
YW5kIG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUgb3RoZXIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkZyYW1lSW50ZXJuYWwuaDoKKwogMjAyMi0wMi0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIERvIHByZWxpbWluYXJ5IHdvcmsgdG8gcGFzcyBkb21haW4gbmFt
ZXMgdG8gQ29yZUxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFkNjgwMTUwZWJmOWMx
MTE5YmM5NWU2MTE3NzBlZTMzNTMwMmQwMmYuLjVlNDhlNDFhY2ZmZGM1ZDNlNTZiOTg4NWQzMDI2
MDZkNTRiYTExZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTA5LDcgKzE5MDksNiBAQCBp
ZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVzLmNwcAogICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5j
cHAKLSAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0
dGluZy5jcHAKICAgICAgICAgKQogCiAgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFS
SUVTIEFOR0xFOjpHTEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKaW5kZXggNzNjZTJjMjBiNjI5NmMxZjQ4ODlk
NTllM2I4ZjdjYmNiYTVjNGYwMi4uOTJlMWExOGVhNzg5N2Y2YTQyMmQyZjQ5N2NiNjk0MTJmMDE1
OTE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1
ZUZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
T3BhcXVlRnJhbWVidWZmZXIuY3BwCkBAIC01Miw3ICs1Miw2IEBACiAjaW5jbHVkZSA8d3RmL1Nj
b3BlLmg+CiAKICNpZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlFUl9EQVRBKQotI2luY2x1ZGUg
IkFOR0xFSGVhZGVycy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCmluZGV4IGQxYjk0NjUyZWZjZDA5ODYzNjRjZTU4NzExYjUyMWQ4NzNjYTI5NTIuLjkxMjY2
ZjE3ZDQzZjEzZDhhZGNjYTY2NzExYzNmNzYwODJmNDBlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCkBAIC00MCwxMCArNDAsNiBAQAog
CiAjaWYgSEFWRShDUFAyMF9JTkNPTVBBVElCTEVfSU5URVJOQUxfSEVBREVSUykKICNkZWZpbmUg
Q0dDT0xPUlRBR0dFRFBPSU5URVJfSF8KLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0jZGVm
aW5lIEdMX0dMRVNfUFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRyeV9w
b2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgogI2VuZGlmCiAKICNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dDb250ZXh0RGVsZWdhdGVQcml2YXRlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvSElUb29sYm94U1BJLmgKaW5kZXggZjM5NzY2OWFlYjc4OWY3ZTU3MTIxZGE0Yjc2
OWRjYzI4OWM3M2NlZi4uY2MzYWVjNGEwYTAzODk2NmMxZWNmOGUxNTRhMTlmNzEyYzQyYmNiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaApAQCAt
MjksMTAgKzI5LDYgQEAKIAogI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hF
QURFUlMpCiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCi0jaWZuZGVmIEdMX0dMRVNf
UFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVk
ZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KICNlbmRpZgogCiAjaW5j
bHVkZSA8Q2FyYm9uL0NhcmJvblByaXYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAy
ODE0ZDAyMjJiMjZlMjg5OWI4ZGFjYWVkMWE0MmU1NmI1NzQxOTQuLmNjYjA4Njg1OGMxYzljYzMx
MWE4N2ZiMzk1ODg3Njg4ODEwOTBlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMzc3
LDcgKzM3Nyw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9UcmFuc2Zvcm1hdGlvbk1hdHJpeENHLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJ
UmVnaXN0cnkuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29h
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQ29sb3JDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRmxvYXRSZWN0Q29jb2EubW0KQEAgLTM4OCw3ICszODcsNiBAQCBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250RGVzY3JpcHRpb25Db2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dENvY29hLm1tCi1wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0hFVkNV
dGlsaXRpZXNDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBA
IC00MTQsNyArNDEyLDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvR2x5cGhQYWdlQ29y
ZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNv
bG9yTWF0cml4Q29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdl
L0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLm1tCiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb3JlaW1hZ2UvRmlsdGVySW1hZ2VDb3JlSW1hZ2UubW0KQEAgLTYxNiw4ICs2MTMsMTAgQEAg
cmVuZGVyaW5nL1RleHRBdXRvU2l6aW5nLmNwcAogdGVzdGluZy9jb2NvYS9XZWJWaWV3VmlzdWFs
SWRlbnRpZmljYXRpb25PdmVybGF5Lm1tCiAKIC8vIFRoZSBmb2xsb3dpbmcgZmlsZXMgYXJlbid0
IHVuaWZpZWQgd2l0aCBvdGhlcnMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgbWVyZ2VkCi0v
LyB3aXRoIGZpbGVzIHRoYXQgdXNlIHRoZSBzeXN0ZW0gT3BlbkdMLgorLy8gd2l0aCBmaWxlcyB0
aGF0IGluY2x1ZGUgc3lzdGVtIGhlYWRlcnMgdGhhdCBpbmNsdWRlIHN5c3RlbSBPcGVuR0wgaGVh
ZGVycy4KIAogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAg
QG5vLXVuaWZ5Ci1wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcu
Y3BwIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2Nv
YS5jcHAgQG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLm1tIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYjlmYjdjYzIyMTg5ZjAzNDMwMjBjZjZjMGZh
M2Q2NjVkYjllYjM4Li5iYWVlNGIzMTI5OTkwNjFmZDkxY2NhMjJkMjEzNTYwNzk2MGNlOWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yMTk0LDggKzIxOTQsNiBAQAogCQk2RTRBQkNENTEzOEVBMEI3MDA3MUQyOTEgLyogSlNI
VE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVu
dC5oICovOyB9OwogCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkU0RTkxQUExMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RTcyRjU0RTIy
OURDRDEwMDBCM0UxNTEgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTI3RjI0MjIyOThDRTRCMDBGMUY2
MzIgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgKi87IH07Ci0JCTZFNzJGNTRGMjI5RENE
MTMwMEIzRTE1MSAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUyIC8q
IFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi87IH07Ci0JCTZFNzJGNTUxMjI5RENEMUEwMEIz
RTE1MSAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjkwODYzMjI5REI5NzAwMDA5ODZFMiAvKiBUZW1wb3Jh
cnlBTkdMRVNldHRpbmcuaCAqLzsgfTsKIAkJNkU4NEU5RTExNzY2OEJGMTAwODE1QjY4IC8qIFJh
c3RlclNoYXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTg0RTlERjE3NjY4QkFEMDA4MTVCNjggLyogUmFzdGVyU2hhcGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RThBQ0RFRDIzMzQ1Q0JDMDAy
NEFBRjUgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU4QUNERUIyMzM0NUNBRjAwMjRBQUY1IC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaCAqLzsgfTsKIAkJNkVCRjBFNDkxMkE4OTI2MTAwREIx
NzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkVCRjBFNDYxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9h
dC5oICovOyB9OwpAQCAtMjQyMiw2ICsyNDIwLDEwIEBACiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJC
ODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hl
Y2tzTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JEREEzMUYyNzRGQTAyMTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0
RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JEREEzNEMyNzVBMDEzMTAwMzg2
NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdC
RTM3RjdBMjdCQjg2QUIwMDdBNkNEMyAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JEREEzMUMyNzRGOURB
NDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi87IH07CisJCTdCRTM3RjdD
MjdCQjg2QjgwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllc0NvY29hLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQ0Q0MkRBMjcwNUM5NDkwMEVCMjEy
NyAvKiBBTkdMRVV0aWxpdGllc0NvY29hLmNwcCAqLzsgfTsKKwkJN0JFMzdGN0QyN0JCODZDRDAw
N0E2Q0QzIC8qIEFOR0xFVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdCQ0Q0MkQ4MjcwNTk5RUYwMEVCMjEyNyAvKiBBTkdMRVV0aWxp
dGllcy5jcHAgKi87IH07CisJCTdCRTM3RjdFMjdCQjg2REIwMDdBNkNEMyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0IxMDMzOUEyNTQ5NzIwMDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZD
b2NvYS5jcHAgKi87IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBo
aWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87
IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
RkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2
RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9y
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTA4ODQsOCArMTA4ODYsNiBAQAogCQk2RTI0MkIyOTIzMzU5M0Q3MDAyQ0FERDQgLyogSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkUyNDJCMkEyMzM1OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTI3RjI0MjIyOThDRTRCMDBGMUY2MzIgLyogR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhcnlBTkdMRVNldHRp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTI5MDg2MzIyOURCOTcwMDAw
OTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTERlcHRoVGV4dHVyZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAxMEU0MjMwNyAv
KiBKU1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI0NDMwLDggKzI0NDMwLDYgQEAKIAkJCQk3QkIzNEExNjI1MzQ1Q0Iy
MDAwMjlEMDggLyogQU5HTEVVdGlsaXRpZXMuaCAqLywKIAkJCQk2RTI3RjI0MjIyOThDRTRCMDBG
MUY2MzIgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgKi8sCiAJCQkJN0I5NUNGRUMyNzU0
RkY3QzAwMDA2MENFIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCAqLywKLQkJCQk2RTI5MDg2
MTIyOURCOTUwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCAqLywKLQkJCQk2
RTI5MDg2MzIyOURCOTcwMDAwOTg2RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGFuZ2xlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM3
Njk0LDcgKzM3NjkyLDYgQEAKIAkJCQlGNTVCM0RENjEyNTFGMTJEMDAzRUYyNjkgLyogVGVsZXBo
b25lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0M1NjRCODE4QkFCRUE2MDAxQjk2
NTIgLyogVGVsZXBob25lTnVtYmVyRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2NTA0
NkE5MTY3QkZCNTUwMENDMkE0RCAvKiBUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk2RTcyRjU1MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkU5NDRERDFBQzRCNEVBMDA3Qjg1
QjUgLyogVGVybS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgx
IC8qIFRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIwMDU2RTU4MSAv
KiBUZXh0QWZmaW5pdHkuaCBpbiBIZWFkZXJzICovLApAQCAtMzg2OTMsNiArMzg2OTAsOCBAQAog
CQkJZmlsZXMgPSAoCiAJCQkJQTk3ODdDQjQxRjVGNUM2NjAwQzU1MUM2IC8qIEFjY2Vzc2liaWxp
dHlNZWRpYU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMUY3QjczMTI0NDhGMkFDMDAx
MjQ1NTcgLyogQUdYQ29tcGlsZXJTZXJ2aWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCRTM3
RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9PdXRw
dXRVbml0QWRhcHRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREE3OTgyNzE3MEEyNzkx
MDBENDVDNTUgLyogQXVkaW9TZXNzaW9uSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q4QTdC
QkIxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0zODcxNyw2ICszODcxNiw4IEBACiAJCQkJNTFBOUQ5RTkxOTVCOTMxRjAw
MUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNzk2NENG
MUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUNvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0EyN0JCODZBQjAwN0E2Q0Qz
IC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk3QkUzN0Y3
RTI3QkI4NkRCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDZCM0EwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1l
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUM5MDBDMzE5NDNDMEZDMDA4NjI1QjUgLyogSFRU
UEhlYWRlck5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzg3NzgsNyArMzg3NzksNiBAQAog
CQkJCUNEQzhCNUFBMTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdO
YW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyog
U3lzdGVtQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTZFNzJGNTRGMjI5RENEMTMwMEIz
RTE1MSAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0U4
OEVFMjYyNDE0NDY3QjAwN0YyOUMyIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxREY2RDgwMEI5MkExOEUwMEMyREM4NSAvKiBUaHJlYWRDaGVjay5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDODAzMUY5NkFGODEwMDREMjJBOCAvKiBVbmlmaWVk
U291cmNlMS1tbS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HTENvbnRleHQuaAppbmRleCBkNzg1NzZhMmI2ZGY3MTU4MTY4ZGMzM2Y1YzczMmFl
ZWVkZTU3NzVjLi45NDAzMTA2ZjU1ZTc0ZDMyMzk3NjM2OTRhYWEzYTYwMjIzYTZmMjg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtNDgsNyAr
NDgsNyBAQCB0eXBlZGVmIHVpbnQ2NF90IEdMTmF0aXZlV2luZG93VHlwZTsKIHR5cGVkZWYgc3Ry
dWN0IF9jYWlyb19kZXZpY2UgY2Fpcm9fZGV2aWNlX3Q7CiAjZW5kaWYKIAotdHlwZWRlZiB2b2lk
KiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMOwordHlwZWRlZiB2b2lkKiBHQ0dMQ29udGV4dDsK
IAogLy8gWDExIGhlYWRlcnMgZGVmaW5lIGEgYnVuY2ggb2YgbWFjcm9zIHdpdGggY29tbW9uIHRl
cm1zLCBpbnRlcmZlcmluZyB3aXRoIFdlYkNvcmUgYW5kIFdURiBlbnVtIHZhbHVlcy4KIC8vIEFz
IGEgd29ya2Fyb3VuZCwgd2UgZXhwbGljaXRseSB1bmRlZiB0aGVtIGhlcmUuCkBAIC0xMTIsNyAr
MTEyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzRUdMQ29udGV4dCgpIGNvbnN0
ID0gMDsKIAotICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNv
bnRleHQoKSA9IDA7CisgICAgdmlydHVhbCBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQoKSA9
IDA7CiAKIHByb3RlY3RlZDoKICAgICBHTENvbnRleHQoUGxhdGZvcm1EaXNwbGF5Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wu
aAppbmRleCAxY2NlZWI1MzczNTM4ZDUzNTIzZjQ5ZGNlMmEwNjgyZTQ3ZGZjOGRkLi4zYWNiYzc1
NzhiOWI4Mjc4MzM1NDMzZTE1ZTAyZjYwMTI0ZjNhZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTQ1LDExICs0
NSw2IEBACiAjZW5kaWYKICNlbmRpZgogCi10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0R0w7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5
OwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMU3VyZmFjZTsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZzsKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRXh0ZW5zaW9uc0dMOwogY2xhc3MgSG9zdFdpbmRvdzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXNHTC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmgKaW5kZXgg
MzM2NTZhMTU2MTNkZjYzMjI2NWE5MzMyODgyYmQxMTFhNjgwZGY5NS4uMDAzOTYwZDdkZTQ2OTky
ODVmYzA5MGU1NzM1YTNiZmU5MjNkZTRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlc0dMLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRl
ZiBmbG9hdCBHQ0dMZmxvYXQ7CiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdDR0xoYWxmZmxvYXQ7
CiB0eXBlZGVmIGZsb2F0IEdDR0xjbGFtcGY7CiB0eXBlZGVmIGNoYXIgR0NHTGNoYXI7Ci10eXBl
ZGVmIHN0cnVjdCBfX0dMc3luYyogR0NHTHN5bmM7Cit0eXBlZGVmIHZvaWQqIEdDR0xzeW5jOwog
dHlwZWRlZiB2b2lkIEdDR0x2b2lkOwogCiAvLyBUaGVzZSBHQ0dMIHR5cGVzIGRvIG5vdCBzdHJp
Y3RseSBtYXRjaCB0aGUgR0wgdHlwZXMgYXMgZGVmaW5lZCBpbiBPcGVuR0wgRVMgMi4wCkBAIC01
OSwxMSArNTksMTggQEAgdHlwZWRlZiBpbnQ2NF90IEdDR0xpbnQ2NDsKIHR5cGVkZWYgdWludDY0
X3QgR0NHTHVpbnQ2NDsKIAogdHlwZWRlZiBHQ0dMdWludCBQbGF0Zm9ybUdMT2JqZWN0OwordXNp
bmcgR0NHTERpc3BsYXkgPSB2b2lkKjsKK3VzaW5nIEdDR0xDb25maWcgPSB2b2lkKjsKK3VzaW5n
IEdDR0xDb250ZXh0ID0gdm9pZCo7CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB0eXBlZGVmIHVu
c2lnbmVkIEdMdWludDsKICNlbmRpZgogCit1c2luZyBHQ0dMTmF0aXZlRGlzcGxheVR5cGUgPSBp
bnQ7CisKK2lubGluZSBjb25zdGV4cHIgR0NHTE5hdGl2ZURpc3BsYXlUeXBlIGdjR0xEZWZhdWx0
RGlzcGxheSA9IDA7CisKIGlubGluZSBjb25zdGV4cHIgc2l6ZV90IGdjR0xTcGFuRHluYW1pY0V4
dGVudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHNpemVfdCBFeHRlbnQgPSBnY0dMU3BhbkR5bmFtaWNFeHRlbnQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxp
dGllcy5jcHAKaW5kZXggN2M1ZjhiNTg3NzM0OTAwMDE0NTM4OTRhMDEzZjIyNzFjOTc1YWNjMy4u
NjU5NTRkZDA2ZTRkNzdkMTIxOGUwZjdhNTI3ODliNGNiMzA5ZTUwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCiAKICNp
ZiBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKKyNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw2ICszOCwxNDAgQEAgYm9vbCBwbGF0Zm9y
bUlzQU5HTEVBdmFpbGFibGUoKQogfQogI2VuZGlmCiAKK1Njb3BlZFJlc3RvcmVUZXh0dXJlQmlu
ZGluZzo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKEdDR0xlbnVtIGJpbmRpbmdQb2ludFF1
ZXJ5LCBHQ0dMZW51bSBiaW5kaW5nUG9pbnQsIGJvb2wgY29uZGl0aW9uKQoreworICAgIEFTU0VS
VChiaW5kaW5nUG9pbnQgIT0gc3RhdGljX2Nhc3Q8R0NHTGVudW0+KDB1KSk7CisgICAgaWYgKGNv
bmRpdGlvbikgeworICAgICAgICBtX2JpbmRpbmdQb2ludCA9IGJpbmRpbmdQb2ludDsKKyAgICAg
ICAgR0xfR2V0SW50ZWdlcnYoYmluZGluZ1BvaW50UXVlcnksIHJlaW50ZXJwcmV0X2Nhc3Q8R0NH
TGludCo+KCZtX2JpbmRpbmdWYWx1ZSkpOworICAgIH0KK30KKworU2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKCkKK3sKKyAgICBpZiAobV9i
aW5kaW5nUG9pbnQpCisgICAgICAgIEdMX0JpbmRUZXh0dXJlKG1fYmluZGluZ1BvaW50LCBtX2Jp
bmRpbmdWYWx1ZSk7Cit9CisKK1Njb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3BlZEJ1ZmZlckJpbmRp
bmcoR0NHTGVudW0gYmluZGluZ1BvaW50LCBHQ0dMdWludCBiaW5kaW5nVmFsdWUsIGJvb2wgY29u
ZGl0aW9uKQoreworICAgIGlmICghY29uZGl0aW9uKQorICAgICAgICByZXR1cm47CisgICAgR0xf
R2V0SW50ZWdlcnYocXVlcnkoYmluZGluZ1BvaW50KSwgcmVpbnRlcnByZXRfY2FzdDxHQ0dMaW50
Kj4oJm1fYmluZGluZ1ZhbHVlKSk7CisgICAgaWYgKGJpbmRpbmdWYWx1ZSA9PSBtX2JpbmRpbmdW
YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50
OworICAgIEdMX0JpbmRCdWZmZXIobV9iaW5kaW5nUG9pbnQsIGJpbmRpbmdWYWx1ZSk7Cit9CisK
K1Njb3BlZEJ1ZmZlckJpbmRpbmc6On5TY29wZWRCdWZmZXJCaW5kaW5nKCkKK3sKKyAgICBpZiAo
bV9iaW5kaW5nUG9pbnQpCisgICAgICAgIEdMX0JpbmRCdWZmZXIobV9iaW5kaW5nUG9pbnQsIG1f
YmluZGluZ1ZhbHVlKTsKK30KKwordm9pZCBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmlu
ZGluZzo6YmluZEZyYW1lYnVmZmVyKEdDR0x1aW50IGJpbmRpbmdWYWx1ZSkKK3sKKyAgICBpZiAo
IW1fYmluZGluZ0NoYW5nZWQgJiYgbV9iaW5kaW5nVmFsdWUgPT0gYmluZGluZ1ZhbHVlKQorICAg
ICAgICByZXR1cm47CisgICAgR0xfQmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJnZXQs
IGJpbmRpbmdWYWx1ZSk7CisgICAgbV9iaW5kaW5nQ2hhbmdlZCA9IG1fYmluZGluZ1ZhbHVlICE9
IGJpbmRpbmdWYWx1ZTsKK30KKworU2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6
On5TY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZygpCit7CisgICAgaWYgKG1fYmlu
ZGluZ0NoYW5nZWQpCisgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2ZyYW1lYnVmZmVyVGFy
Z2V0LCBtX2JpbmRpbmdWYWx1ZSk7Cit9CisKK1Njb3BlZFBpeGVsU3RvcmFnZU1vZGU6OlNjb3Bl
ZFBpeGVsU3RvcmFnZU1vZGUoR0NHTGVudW0gbmFtZSwgYm9vbCBjb25kaXRpb24pCisgICAgOiBt
X25hbWUoY29uZGl0aW9uID8gbmFtZSA6IDApCit7CisgICAgaWYgKG1fbmFtZSkKKyAgICAgICAg
R0xfR2V0SW50ZWdlcnYobV9uYW1lLCAmbV9vcmlnaW5hbFZhbHVlKTsKK30KKworU2NvcGVkUGl4
ZWxTdG9yYWdlTW9kZTo6U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dMZW51bSBuYW1lLCBHQ0dM
aW50IHZhbHVlLCBib29sIGNvbmRpdGlvbikKKyAgICA6IG1fbmFtZShjb25kaXRpb24gPyBuYW1l
IDogMCkKK3sKKyAgICBpZiAobV9uYW1lKSB7CisgICAgICAgIEdMX0dldEludGVnZXJ2KG1fbmFt
ZSwgJm1fb3JpZ2luYWxWYWx1ZSk7CisgICAgICAgIHBpeGVsU3RvcmUodmFsdWUpOworICAgIH0K
K30KKworU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoKQor
eworICAgIGlmIChtX25hbWUgJiYgbV92YWx1ZUNoYW5nZWQpCisgICAgICAgIEdMX1BpeGVsU3Rv
cmVpKG1fbmFtZSwgbV9vcmlnaW5hbFZhbHVlKTsKK30KKwordm9pZCBTY29wZWRQaXhlbFN0b3Jh
Z2VNb2RlOjpwaXhlbFN0b3JlKEdDR0xpbnQgdmFsdWUpCit7CisgICAgQVNTRVJUKG1fbmFtZSk7
CisgICAgaWYgKCFtX3ZhbHVlQ2hhbmdlZCAmJiBtX29yaWdpbmFsVmFsdWUgPT0gdmFsdWUpCisg
ICAgICAgIHJldHVybjsKKyAgICBHTF9QaXhlbFN0b3JlaShtX25hbWUsIHZhbHVlKTsKKyAgICBt
X3ZhbHVlQ2hhbmdlZCA9IG1fb3JpZ2luYWxWYWx1ZSAhPSB2YWx1ZTsKK30KKworU2NvcGVkVGV4
dHVyZTo6U2NvcGVkVGV4dHVyZSgpCit7CisgICAgR0xfR2VuVGV4dHVyZXMoMSwgJm1fb2JqZWN0
KTsKK30KKworU2NvcGVkVGV4dHVyZTo6flNjb3BlZFRleHR1cmUoKQoreworICAgIEdMX0RlbGV0
ZVRleHR1cmVzKDEsICZtX29iamVjdCk7Cit9CisKK1Njb3BlZEZyYW1lYnVmZmVyOjpTY29wZWRG
cmFtZWJ1ZmZlcigpCit7CisgICAgR0xfR2VuRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7Cit9
CisKK1Njb3BlZEZyYW1lYnVmZmVyOjp+U2NvcGVkRnJhbWVidWZmZXIoKQoreworICAgIEdMX0Rl
bGV0ZUZyYW1lYnVmZmVycygxLCAmbV9vYmplY3QpOworfQorCit2b2lkIFNjb3BlZEdMRmVuY2U6
OnJlc2V0KCkKK3sKKyAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgR0xfRGVsZXRlU3luYyhz
dGF0aWNfY2FzdDxHTHN5bmM+KG1fb2JqZWN0KSk7CisgICAgICAgIG1fb2JqZWN0ID0geyB9Owor
ICAgIH0KK30KKwordm9pZCBTY29wZWRHTEZlbmNlOjpmZW5jZVN5bmMoKQoreworICAgIHJlc2V0
KCk7CisgICAgbV9vYmplY3QgPSBHTF9GZW5jZVN5bmMoR0xfU1lOQ19HUFVfQ09NTUFORFNfQ09N
UExFVEUsIDApOworfQorCisKK1Njb3BlZEdMQ2FwYWJpbGl0eTo6U2NvcGVkR0xDYXBhYmlsaXR5
KEdDR0xlbnVtIGNhcGFiaWxpdHksIGJvb2wgZW5hYmxlKQorICAgIDogbV9jYXBhYmlsaXR5KGNh
cGFiaWxpdHkpCisgICAgLCBtX29yaWdpbmFsKEdMX0lzRW5hYmxlZChtX2NhcGFiaWxpdHkpID09
IGVuYWJsZSA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6b3B0aW9uYWw8Ym9vbD4oIWVuYWJsZSkpCit7
CisgICAgaWYgKCFtX29yaWdpbmFsKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGVuYWJsZSkK
KyAgICAgICAgR0xfRW5hYmxlKG1fY2FwYWJpbGl0eSk7CisgICAgZWxzZQorICAgICAgICBHTF9E
aXNhYmxlKG1fY2FwYWJpbGl0eSk7Cit9CisKK1Njb3BlZEdMQ2FwYWJpbGl0eTo6flNjb3BlZEdM
Q2FwYWJpbGl0eSgpCit7CisgICAgaWYgKCFtX29yaWdpbmFsKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCptX29yaWdpbmFsKQorICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5KTsKKyAg
ICBlbHNlCisgICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FO
R0xFVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9B
TkdMRVV0aWxpdGllcy5oCmluZGV4IDUxNWI5ZDkxMWEzZWRiNzIxMzM1NjIwNWY2NTM1YjIzNjcy
MTJmYmYuLjcwMmNjMWVlYTgxNGMzNzk2NmZmNjMyZjZlYTNhZDViZWUyOTgzNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvQU5HTEVVdGls
aXRpZXMuaApAQCAtMjcsMTg1ICsyNywxMjUgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNF
KEFOR0xFKQogCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0R0wuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKKyNpbmNsdWRlIDxvcHRp
b25hbD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZyk7Ci1wdWJsaWM6Ci0gICAgU2Nv
cGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKEdMZW51bSBiaW5kaW5nUG9pbnRRdWVyeSwgR0xlbnVt
IGJpbmRpbmdQb2ludCwgYm9vbCBjb25kaXRpb24gPSB0cnVlKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKGJpbmRpbmdQb2ludCAhPSBzdGF0aWNfY2FzdDxHTGVudW0+KDB1KSk7Ci0gICAgICAgIGlm
IChjb25kaXRpb24pIHsKLSAgICAgICAgICAgIG1fYmluZGluZ1BvaW50ID0gYmluZGluZ1BvaW50
OwotICAgICAgICAgICAgR0xfR2V0SW50ZWdlcnYoYmluZGluZ1BvaW50UXVlcnksIHJlaW50ZXJw
cmV0X2Nhc3Q8R0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKLSAgICAgICAgfQotICAgIH0KIAot
ICAgIH5TY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcoKQotICAgIHsKLSAgICAgICAgaWYgKG1f
YmluZGluZ1BvaW50KQotICAgICAgICAgICAgR0xfQmluZFRleHR1cmUobV9iaW5kaW5nUG9pbnQs
IG1fYmluZGluZ1ZhbHVlKTsKLSAgICB9CitwdWJsaWM6CisgICAgU2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nKEdDR0xlbnVtIGJpbmRpbmdQb2ludFF1ZXJ5LCBHQ0dMZW51bSBiaW5kaW5nUG9p
bnQsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSk7CisgICAgflNjb3BlZFJlc3RvcmVUZXh0dXJlQmlu
ZGluZygpOwogCiBwcml2YXRlOgotICAgIEdMZW51bSBtX2JpbmRpbmdQb2ludCB7IDAgfTsKLSAg
ICBHTHVpbnQgbV9iaW5kaW5nVmFsdWUgeyAwdSB9OworICAgIEdDR0xlbnVtIG1fYmluZGluZ1Bv
aW50IHsgMCB9OworICAgIEdDR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKIH07CiAKLQog
Y2xhc3MgU2NvcGVkQnVmZmVyQmluZGluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nv
cGVkQnVmZmVyQmluZGluZyk7Ci1wdWJsaWM6Ci0gICAgU2NvcGVkQnVmZmVyQmluZGluZyhHTGVu
dW0gYmluZGluZ1BvaW50LCBHTHVpbnQgYmluZGluZ1ZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRy
dWUpCi0gICAgewotICAgICAgICBpZiAoIWNvbmRpdGlvbikKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgR0xfR2V0SW50ZWdlcnYocXVlcnkoYmluZGluZ1BvaW50KSwgcmVpbnRlcnByZXRf
Y2FzdDxHTGludCo+KCZtX2JpbmRpbmdWYWx1ZSkpOwotICAgICAgICBpZiAoYmluZGluZ1ZhbHVl
ID09IG1fYmluZGluZ1ZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2JpbmRp
bmdQb2ludCA9IGJpbmRpbmdQb2ludDsKLSAgICAgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQ
b2ludCwgYmluZGluZ1ZhbHVlKTsKLSAgICB9CiAKLSAgICB+U2NvcGVkQnVmZmVyQmluZGluZygp
Ci0gICAgewotICAgICAgICBpZiAobV9iaW5kaW5nUG9pbnQpCi0gICAgICAgICAgICBHTF9CaW5k
QnVmZmVyKG1fYmluZGluZ1BvaW50LCBtX2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQorcHVibGljOgor
ICAgIFNjb3BlZEJ1ZmZlckJpbmRpbmcoR0NHTGVudW0gYmluZGluZ1BvaW50LCBHQ0dMdWludCBi
aW5kaW5nVmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSk7CisgICAgflNjb3BlZEJ1ZmZlckJp
bmRpbmcoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3RleHByIEdMZW51bSBxdWVyeShH
TGVudW0gYmluZGluZ1BvaW50KQorICAgIHN0YXRpYyBjb25zdGV4cHIgR0NHTGVudW0gcXVlcnko
R0NHTGVudW0gYmluZGluZ1BvaW50KQogICAgIHsKLSAgICAgICAgaWYgKGJpbmRpbmdQb2ludCA9
PSBHTF9QSVhFTF9QQUNLX0JVRkZFUikKLSAgICAgICAgICAgIHJldHVybiBHTF9QSVhFTF9QQUNL
X0JVRkZFUl9CSU5ESU5HOwotICAgICAgICBBU1NFUlQoYmluZGluZ1BvaW50ID09IEdMX1BJWEVM
X1VOUEFDS19CVUZGRVIpOwotICAgICAgICByZXR1cm4gR0xfUElYRUxfVU5QQUNLX0JVRkZFUl9C
SU5ESU5HOworICAgICAgICBpZiAoYmluZGluZ1BvaW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpQ
SVhFTF9QQUNLX0JVRkZFUikKKyAgICAgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6
UElYRUxfUEFDS19CVUZGRVJfQklORElORzsKKyAgICAgICAgQVNTRVJUKGJpbmRpbmdQb2ludCA9
PSBHcmFwaGljc0NvbnRleHRHTDo6UElYRUxfVU5QQUNLX0JVRkZFUik7CisgICAgICAgIHJldHVy
biBHcmFwaGljc0NvbnRleHRHTDo6UElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HOwogICAgIH0K
LSAgICBHTGludCBtX2JpbmRpbmdQb2ludCB7IDAgfTsKLSAgICBHTHVpbnQgbV9iaW5kaW5nVmFs
dWUgeyAwdSB9OworICAgIEdDR0xpbnQgbV9iaW5kaW5nUG9pbnQgeyAwIH07CisgICAgR0NHTHVp
bnQgbV9iaW5kaW5nVmFsdWUgeyAwdSB9OwogfTsKKwogY2xhc3MgU2NvcGVkUmVzdG9yZVJlYWRG
cmFtZWJ1ZmZlckJpbmRpbmcgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjb3BlZFJlc3Rv
cmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKTsKKwogcHVibGljOgotICAgIFNjb3BlZFJlc3RvcmVS
ZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJHTDIsIEdMdWludCByZXN0b3JlVmFs
dWUpCi0gICAgICAgIDogbV9mcmFtZWJ1ZmZlclRhcmdldChpc0ZvcldlYkdMMiA/IEdMX1JFQURf
RlJBTUVCVUZGRVIgOiBHTF9GUkFNRUJVRkZFUikKKyAgICBTY29wZWRSZXN0b3JlUmVhZEZyYW1l
YnVmZmVyQmluZGluZyhib29sIGlzRm9yV2ViR0wyLCBHQ0dMdWludCByZXN0b3JlVmFsdWUpCisg
ICAgICAgIDogbV9mcmFtZWJ1ZmZlclRhcmdldChpc0ZvcldlYkdMMiA/IEdyYXBoaWNzQ29udGV4
dEdMOjpSRUFEX0ZSQU1FQlVGRkVSIDogR3JhcGhpY3NDb250ZXh0R0w6OkZSQU1FQlVGRkVSKQog
ICAgICAgICAsIG1fYmluZGluZ1ZhbHVlKHJlc3RvcmVWYWx1ZSkKICAgICB7CiAgICAgfQotICAg
IFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJHTDIsIEdM
dWludCByZXN0b3JlVmFsdWUsIEdMdWludCB2YWx1ZSkKLSAgICAgICAgOiBtX2ZyYW1lYnVmZmVy
VGFyZ2V0KGlzRm9yV2ViR0wyID8gR0xfUkVBRF9GUkFNRUJVRkZFUiA6IEdMX0ZSQU1FQlVGRkVS
KQorICAgIFNjb3BlZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKGJvb2wgaXNGb3JXZWJH
TDIsIEdDR0x1aW50IHJlc3RvcmVWYWx1ZSwgR0NHTHVpbnQgdmFsdWUpCisgICAgICAgIDogbV9m
cmFtZWJ1ZmZlclRhcmdldChpc0ZvcldlYkdMMiA/IEdyYXBoaWNzQ29udGV4dEdMOjpSRUFEX0ZS
QU1FQlVGRkVSIDogR3JhcGhpY3NDb250ZXh0R0w6OkZSQU1FQlVGRkVSKQogICAgICAgICAsIG1f
YmluZGluZ1ZhbHVlKHJlc3RvcmVWYWx1ZSkKICAgICB7CiAgICAgICAgIGJpbmRGcmFtZWJ1ZmZl
cih2YWx1ZSk7CiAgICAgfQorICAgIH5TY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGlu
ZygpOwogICAgIHZvaWQgbWFya0JpbmRpbmdDaGFuZ2VkKCkKICAgICB7CiAgICAgICAgIG1fYmlu
ZGluZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KLSAgICB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihHTHVp
bnQgYmluZGluZ1ZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2JpbmRpbmdDaGFuZ2VkICYm
IG1fYmluZGluZ1ZhbHVlID09IGJpbmRpbmdWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJnZXQsIGJpbmRpbmdWYWx1
ZSk7Ci0gICAgICAgIG1fYmluZGluZ0NoYW5nZWQgPSBtX2JpbmRpbmdWYWx1ZSAhPSBiaW5kaW5n
VmFsdWU7Ci0gICAgfQotICAgIEdMdWludCBmcmFtZWJ1ZmZlclRhcmdldCgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhbWVidWZmZXJUYXJnZXQ7IH0KLSAgICB+U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1
ZmZlckJpbmRpbmcoKQotICAgIHsKLSAgICAgICAgaWYgKG1fYmluZGluZ0NoYW5nZWQpCi0gICAg
ICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlclRhcmdldCwgbV9iaW5kaW5n
VmFsdWUpOwotICAgIH0KKyAgICB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihHQ0dMdWludCBiaW5kaW5n
VmFsdWUpOworICAgIEdDR0x1aW50IGZyYW1lYnVmZmVyVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZWJ1ZmZlclRhcmdldDsgfQorCiBwcml2YXRlOgotICAgIGNvbnN0IEdMZW51bSBtX2Zy
YW1lYnVmZmVyVGFyZ2V0OwotICAgIEdMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1IH07CisgICAg
Y29uc3QgR0NHTGVudW0gbV9mcmFtZWJ1ZmZlclRhcmdldDsKKyAgICBHQ0dMdWludCBtX2JpbmRp
bmdWYWx1ZSB7IDB1IH07CiAgICAgYm9vbCBtX2JpbmRpbmdDaGFuZ2VkIHsgZmFsc2UgfTsKIH07
CiAKIGNsYXNzIFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOworCiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2Nv
cGVkUGl4ZWxTdG9yYWdlTW9kZShHTGVudW0gbmFtZSwgYm9vbCBjb25kaXRpb24gPSB0cnVlKQot
ICAgICAgICA6IG1fbmFtZShjb25kaXRpb24gPyBuYW1lIDogMCkKLSAgICB7Ci0gICAgICAgIGlm
IChtX25hbWUpCi0gICAgICAgICAgICBHTF9HZXRJbnRlZ2VydihtX25hbWUsICZtX29yaWdpbmFs
VmFsdWUpOwotICAgIH0KLSAgICBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdMZW51bSBuYW1lLCBH
TGludCB2YWx1ZSwgYm9vbCBjb25kaXRpb24gPSB0cnVlKQotICAgICAgICA6IG1fbmFtZShjb25k
aXRpb24gPyBuYW1lIDogMCkKLSAgICB7Ci0gICAgICAgIGlmIChtX25hbWUpIHsKLSAgICAgICAg
ICAgIEdMX0dldEludGVnZXJ2KG1fbmFtZSwgJm1fb3JpZ2luYWxWYWx1ZSk7Ci0gICAgICAgICAg
ICBwaXhlbFN0b3JlKHZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KLSAgICB+U2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZSgpCi0gICAgewotICAgICAgICBpZiAobV9uYW1lICYmIG1fdmFsdWVDaGFuZ2Vk
KQotICAgICAgICAgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCBtX29yaWdpbmFsVmFsdWUpOwot
ICAgIH0KLSAgICB2b2lkIHBpeGVsU3RvcmUoR0xpbnQgdmFsdWUpCi0gICAgewotICAgICAgICBB
U1NFUlQobV9uYW1lKTsKLSAgICAgICAgaWYgKCFtX3ZhbHVlQ2hhbmdlZCAmJiBtX29yaWdpbmFs
VmFsdWUgPT0gdmFsdWUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEdMX1BpeGVsU3Rv
cmVpKG1fbmFtZSwgdmFsdWUpOwotICAgICAgICBtX3ZhbHVlQ2hhbmdlZCA9IG1fb3JpZ2luYWxW
YWx1ZSAhPSB2YWx1ZTsKLSAgICB9Ci0gICAgb3BlcmF0b3IgR0xpbnQoKSBjb25zdAorICAgIGV4
cGxpY2l0IFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0NHTGVudW0gbmFtZSwgYm9vbCBjb25kaXRp
b24gPSB0cnVlKTsKKyAgICBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdDR0xlbnVtIG5hbWUsIEdD
R0xpbnQgdmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSk7CisgICAgflNjb3BlZFBpeGVsU3Rv
cmFnZU1vZGUoKTsKKyAgICB2b2lkIHBpeGVsU3RvcmUoR0NHTGludCB2YWx1ZSk7CisgICAgb3Bl
cmF0b3IgR0NHTGludCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9uYW1lICYmICFt
X3ZhbHVlQ2hhbmdlZCk7CiAgICAgICAgIHJldHVybiBtX29yaWdpbmFsVmFsdWU7CiAgICAgfQor
CiBwcml2YXRlOgotICAgIGNvbnN0IEdMZW51bSBtX25hbWU7CisgICAgY29uc3QgR0NHTGVudW0g
bV9uYW1lOwogICAgIGJvb2wgbV92YWx1ZUNoYW5nZWQgeyBmYWxzZSB9OwotICAgIEdMaW50IG1f
b3JpZ2luYWxWYWx1ZSB7IDAgfTsKKyAgICBHQ0dMaW50IG1fb3JpZ2luYWxWYWx1ZSB7IDAgfTsK
IH07CiAKIGNsYXNzIFNjb3BlZFRleHR1cmUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNj
b3BlZFRleHR1cmUpOworCiBwdWJsaWM6Ci0gICAgU2NvcGVkVGV4dHVyZSgpCi0gICAgewotICAg
ICAgICBHTF9HZW5UZXh0dXJlcygxLCAmbV9vYmplY3QpOwotICAgIH0KLSAgICB+U2NvcGVkVGV4
dHVyZSgpCi0gICAgewotICAgICAgICBHTF9EZWxldGVUZXh0dXJlcygxLCAmbV9vYmplY3QpOwot
ICAgIH0KLSAgICBvcGVyYXRvciBHTHVpbnQoKSBjb25zdAorICAgIFNjb3BlZFRleHR1cmUoKTsK
KyAgICB+U2NvcGVkVGV4dHVyZSgpOworICAgIG9wZXJhdG9yIEdDR0x1aW50KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX29iamVjdDsKICAgICB9CisKIHByaXZhdGU6Ci0gICAgR0x1
aW50IG1fb2JqZWN0IHsgMHUgfTsKKyAgICBHQ0dMdWludCBtX29iamVjdCB7IDB1IH07CiB9Owog
CiBjbGFzcyBTY29wZWRGcmFtZWJ1ZmZlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nv
cGVkRnJhbWVidWZmZXIpOworCiBwdWJsaWM6Ci0gICAgU2NvcGVkRnJhbWVidWZmZXIoKQotICAg
IHsKLSAgICAgICAgR0xfR2VuRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAg
IH5TY29wZWRGcmFtZWJ1ZmZlcigpCi0gICAgewotICAgICAgICBHTF9EZWxldGVGcmFtZWJ1ZmZl
cnMoMSwgJm1fb2JqZWN0KTsKLSAgICB9Ci0gICAgb3BlcmF0b3IgR0x1aW50KCkgY29uc3QKKyAg
ICBTY29wZWRGcmFtZWJ1ZmZlcigpOworICAgIH5TY29wZWRGcmFtZWJ1ZmZlcigpOworICAgIG9w
ZXJhdG9yIEdDR0x1aW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX29iamVjdDsK
ICAgICB9CiBwcml2YXRlOgotICAgIEdMdWludCBtX29iamVjdCB7IDAgfTsKKyAgICBHQ0dMdWlu
dCBtX29iamVjdCB7IDAgfTsKIH07CiAKIGNsYXNzIFNjb3BlZEdMRmVuY2UgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFNjb3BlZEdMRmVuY2UpOworCiBwdWJsaWM6CiAgICAgU2NvcGVkR0xG
ZW5jZSgpID0gZGVmYXVsdDsKICAgICBTY29wZWRHTEZlbmNlKFNjb3BlZEdMRmVuY2UmJiBvdGhl
cikKQEAgLTIyMSwyMyArMTYxLDI2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gKnRoaXM7CiAgICAgfQotICAgIHZvaWQgcmVzZXQoKQotICAgIHsKLSAgICAgICAgaWYgKG1f
b2JqZWN0KSB7Ci0gICAgICAgICAgICBHTF9EZWxldGVTeW5jKG1fb2JqZWN0KTsKLSAgICAgICAg
ICAgIG1fb2JqZWN0ID0geyB9OwotICAgICAgICB9Ci0gICAgfQorICAgIHZvaWQgcmVzZXQoKTsK
ICAgICB2b2lkIGFiYW5kb24oKSB7IG1fb2JqZWN0ID0geyB9OyB9Ci0gICAgdm9pZCBmZW5jZVN5
bmMoKQotICAgIHsKLSAgICAgICAgcmVzZXQoKTsKLSAgICAgICAgbV9vYmplY3QgPSBHTF9GZW5j
ZVN5bmMoR0xfU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUsIDApOwotICAgIH0KLSAgICBvcGVy
YXRvciBHTHN5bmMoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIHZvaWQgZmVuY2VT
eW5jKCk7CisgICAgR0NHTHN5bmMgZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KKyAg
ICBvcGVyYXRvciBHQ0dMc3luYygpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0OyB9CiAgICAgb3Bl
cmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0OyB9CisKK3ByaXZhdGU6CisgICAg
R0NHTHN5bmMgbV9vYmplY3QgeyB9OworfTsKKworY2xhc3MgU2NvcGVkR0xDYXBhYmlsaXR5IHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRHTENhcGFiaWxpdHkpOworcHVibGljOgor
ICAgIFNjb3BlZEdMQ2FwYWJpbGl0eShHQ0dMZW51bSBjYXBhYmlsaXR5LCBib29sIGVuYWJsZSk7
CisgICAgflNjb3BlZEdMQ2FwYWJpbGl0eSgpOworCiBwcml2YXRlOgotICAgIEdMc3luYyBtX29i
amVjdCB7IH07CisgICAgY29uc3QgR0NHTGVudW0gbV9jYXBhYmlsaXR5OworICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gbV9vcmlnaW5hbDsKIH07CiAKIGJvb2wgcGxhdGZvcm1Jc0FOR0xF
QXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IGM1YzZi
ZmE1NzVlOTQ5NDY2MTAwZTE2NTMxODMyODNhMDhhMGRiN2IuLjBjMzk0OTc1ZjJlNjBlYzdjZmRh
Mzg0YjEzODI2ZDA1MWY4MzFkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
CkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKLSNpbmNsdWRlICJUZW1wb3Jh
cnlBTkdMRVNldHRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgpAQCAtMTY0LDEwICsxNjMsMTAgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJl
YWRSZXNvdXJjZUJlaGF2aW8KICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBB
bGwgcmVzb3VyY2VzIG11c3QgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KICAgICAgICAgICAgIEVHTF9N
YWtlQ3VycmVudChjdXJyZW50RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgICAgIH0KLSAgICAgICAgY29uc3RleHByIEVHTE5hdGl2
ZURpc3BsYXlUeXBlIG5hdGl2ZURpc3BsYXlzW10gPSB7Ci0gICAgICAgICAgICBkZWZhdWx0RGlz
cGxheSwKKyAgICAgICAgY29uc3QgRUdMTmF0aXZlRGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheXNb
XSA9IHsKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RUdMTmF0aXZlRGlzcGxheVR5cGU+
KGRlZmF1bHREaXNwbGF5KSwKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgICAgIGRlZmF1
bHRPcGVuR0xEaXNwbGF5LAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxFR0xOYXRpdmVE
aXNwbGF5VHlwZT4oZGVmYXVsdE9wZW5HTERpc3BsYXkpLAogI2VuZGlmCiAgICAgICAgIH07CiAg
ICAgICAgIGZvciAoYXV0byBuYXRpdmVEaXNwbGF5IDogbmF0aXZlRGlzcGxheXMpIHsKQEAgLTMy
Miw4ICszMjEsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmF0dGFjaERlcHRoQW5k
U3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdMdWludCBpbnRlcm5hbAogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihHTF9T
Q0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVk
RGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOworICAgIFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29w
ZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0UpOworICAgIFNjb3BlZEdMQ2FwYWJp
bGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CiAKICAgICBHTGludCBib3Vu
ZEZyYW1lQnVmZmVyID0gMDsKICAgICBHTGludCBib3VuZFJlYWRGcmFtZUJ1ZmZlciA9IDA7CkBA
IC01NjcsOCArNTY2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwcmVwYXJlVGV4
dHVyZUltcGwoKQogI2Vsc2UKICAgICBpZiAobV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0dXJl
KSB7CiAgICAgICAgIC8vIEJsaXQgbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0dXJlIGludG8g
bV90ZXh0dXJlLgotICAgICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihH
TF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5n
IHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKKyAgICAgICAgU2NvcGVkR0xDYXBh
YmlsaXR5IHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CisgICAgICAg
IFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CiAg
ICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSX0FOR0xFLCBtX3By
ZXNlcnZlRHJhd2luZ0J1ZmZlckZCTyk7CiAgICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9S
RUFEX0ZSQU1FQlVGRkVSX0FOR0xFLCBtX2Zibyk7CiAgICAgICAgIEdMX0JsaXRGcmFtZWJ1ZmZl
ckFOR0xFKDAsIDAsIG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQsIDAsIDAsIG1fY3Vy
cmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX05FQVJF
U1QpOwpAQCAtNjIxLDggKzYyMCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cmVz
aGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgbV9jdXJyZW50V2lkdGggPSB3aWR0aDsK
ICAgICBtX2N1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7CiAKLSAgICBUZW1wb3JhcnlBTkdMRVNldHRp
bmcgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKLSAgICBUZW1wb3Jh
cnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOworICAgIFNj
b3BlZEdMQ2FwYWJpbGl0eSBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFMU0Up
OworICAgIFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxT
RSk7CiAgICAgU2NvcGVkQnVmZmVyQmluZGluZyBzY29wZWRQaXhlbFVucGFja0J1ZmZlclJlc2V0
KEdMX1BJWEVMX1VOUEFDS19CVUZGRVIsIDAsIG1faXNGb3JXZWJHTDIpOwogCiAgICAgYm9vbCBt
dXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUod2lkdGgsIGhlaWdodCkpOwpAQCAt
Mjc4Miw3ICsyNzgxLDcgQEAgR0NHTGJvb2xlYW4gR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNT
eW5jKEdDR0xzeW5jIHN5bmMpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAg
ICAgcmV0dXJuIEdMX0ZBTFNFOwogCi0gICAgcmV0dXJuIEdMX0lzU3luYyhzeW5jKTsKKyAgICBy
ZXR1cm4gR0xfSXNTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oc3luYykpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMoR0NHTHN5bmMgc3luYykKQEAgLTI3OTAs
NyArMjc4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGVsZXRlU3luYyhHQ0dM
c3luYyBzeW5jKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdMX0RlbGV0ZVN5bmMoc3luYyk7CisgICAgR0xfRGVsZXRlU3luYyhzdGF0aWNf
Y2FzdDxHTHN5bmM+KHN5bmMpKTsKIH0KIAogR0NHTGVudW0gR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6Y2xpZW50V2FpdFN5bmMoR0NHTHN5bmMgc3luYywgR0NHTGJpdGZpZWxkIGZsYWdzLCBHQ0dM
dWludDY0IHRpbWVvdXQpCkBAIC0yNzk4LDcgKzI3OTcsNyBAQCBHQ0dMZW51bSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjpjbGllbnRXYWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQg
ZmxhZwogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBHTF9X
QUlUX0ZBSUxFRDsKIAotICAgIHJldHVybiBHTF9DbGllbnRXYWl0U3luYyhzeW5jLCBmbGFncywg
dGltZW91dCk7CisgICAgcmV0dXJuIEdMX0NsaWVudFdhaXRTeW5jKHN0YXRpY19jYXN0PEdMc3lu
Yz4oc3luYyksIGZsYWdzLCB0aW1lb3V0KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjp3YWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0xpbnQ2
NCB0aW1lb3V0KQpAQCAtMjgwNiw3ICsyODA1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjp3YWl0U3luYyhHQ0dMc3luYyBzeW5jLCBHQ0dMYml0ZmllbGQgZmxhZ3MsIEdDR0xpbnQK
ICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBH
TF9XYWl0U3luYyhzeW5jLCBmbGFncywgdGltZW91dCk7CisgICAgR0xfV2FpdFN5bmMoc3RhdGlj
X2Nhc3Q8R0xzeW5jPihzeW5jKSwgZmxhZ3MsIHRpbWVvdXQpOwogfQogCiBHQ0dMaW50IEdyYXBo
aWNzQ29udGV4dEdMQU5HTEU6OmdldFN5bmNpKEdDR0xzeW5jIHN5bmMsIEdDR0xlbnVtIHBuYW1l
KQpAQCAtMjgxNSw3ICsyODE0LDcgQEAgR0NHTGludCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpn
ZXRTeW5jaShHQ0dMc3luYyBzeW5jLCBHQ0dMZW51bSBwbmFtZSkKICAgICBpZiAoIW1ha2VDb250
ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gdmFsdWU7CiAKLSAgICBHTF9HZXRTeW5jaXYo
c3luYywgcG5hbWUsIDEsIG51bGxwdHIsICZ2YWx1ZSk7CisgICAgR0xfR2V0U3luY2l2KHN0YXRp
Y19jYXN0PEdMc3luYz4oc3luYyksIHBuYW1lLCAxLCBudWxscHRyLCAmdmFsdWUpOwogICAgIHJl
dHVybiB2YWx1ZTsKIH0KIApAQCAtMjk3Niw3ICsyOTc1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xkZXN0RnJhbWUoKQogICAgICAgICAvLyBUaGlzIG1l
YW5zIHRoZSBjcmVhdGlvbiBvZiB0aGlzIGZlbmNlIGhhcyBhbHJlYWR5IGJlZW4gZmx1c2hlZC4K
ICAgICAgICAgZmxhZ3MgPSAwOwogI2VuZGlmCi0gICAgICAgIEdMZW51bSByZXN1bHQgPSBHTF9D
bGllbnRXYWl0U3luYyhmZW5jZSwgZmxhZ3MsIG1heEZyYW1lRHVyYXRpb24ubmFub3NlY29uZHNB
czxHTHVpbnQ2ND4oKSk7CisgICAgICAgIEdMZW51bSByZXN1bHQgPSBHTF9DbGllbnRXYWl0U3lu
YyhzdGF0aWNfY2FzdDxHTHN5bmM+KGZlbmNlLmdldCgpKSwgZmxhZ3MsIG1heEZyYW1lRHVyYXRp
b24ubmFub3NlY29uZHNBczxHTHVpbnQ2ND4oKSk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQgIT0g
R0xfV0FJVF9GQUlMRUQpOwogICAgICAgICBzdWNjZXNzID0gcmVzdWx0ICE9IEdMX1dBSVRfRkFJ
TEVEICYmIHJlc3VsdCAhPSBHTF9USU1FT1VUX0VYUElSRUQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5oCmluZGV4IDJmZmY3NTBhOWE1YjAzNTkxMzAxZTU5ZjZkZGY1Y2IxNjY2
M2U2YzUuLjgwMzExZjRjOWM4MjgzM2Q5MjM4MWVjMTYwYTJkYmYwZTRlMDJmZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAgLTY4LDggKzY4LDggQEAgY2xhc3MgV0VCQ09SRV9F
WFBPUlQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSgpOwogCi0gICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNv
bnN0OworICAgIEdDR0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OworICAgIEdDR0xD
b25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKICAgICBHQ0dMZW51bSBkcmF3aW5nQnVmZmVy
VGV4dHVyZVRhcmdldCgpOwogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5nQnVmZmVyVGV4dHVy
ZVRhcmdldFF1ZXJ5Rm9yRHJhd2luZ1RhcmdldChHQ0dMZW51bSBkcmF3aW5nVGFyZ2V0KTsKICAg
ICBzdGF0aWMgR0NHTGludCBFR0xEcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldEZvckRyYXdpbmdU
YXJnZXQoR0NHTGVudW0gZHJhd2luZ1RhcmdldCk7CkBAIC0zNjMsOSArMzYzLDkgQEAgcHVibGlj
OgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRSZW5kZXJpbmdSZXN1bHRzRm9y
UGFpbnRpbmcoKTsKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkQ29tcG9zaXRl
ZFJlc3VsdHNGb3JQYWludGluZygpOwogCi0gICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRpdmVE
aXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7CisgICAgY29u
c3RleHByIHN0YXRpYyBHQ0dMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBnY0dM
RGVmYXVsdERpc3BsYXk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgY29uc3RleHByIHN0YXRp
YyBFR0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0T3BlbkdMRGlzcGxheSA9IEVHTF9DQVNUKEVH
TE5hdGl2ZURpc3BsYXlUeXBlLCAtMSk7CisgICAgY29uc3RleHByIHN0YXRpYyBHQ0dMTmF0aXZl
RGlzcGxheVR5cGUgZGVmYXVsdE9wZW5HTERpc3BsYXkgPSBzdGF0aWNfY2FzdDxHQ0dMTmF0aXZl
RGlzcGxheVR5cGU+KC0xKTsKICAgICBzdGF0aWNfYXNzZXJ0KGRlZmF1bHREaXNwbGF5ICE9IGRl
ZmF1bHRPcGVuR0xEaXNwbGF5KTsKICNlbmRpZgogCkBAIC00MDYsNyArNDA2LDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRS
ZWN0JiA9IEludFJlY3QoKSk7CiAgICAgdm9pZCBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJ
Zk5lZWRlZChHQ0dMdWludCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGF0aWMgYm9vbCBtYWtlQ3Vy
cmVudChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSwgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHRHTCk7CisgICAgc3RhdGljIGJvb2wgbWFrZUN1cnJlbnQoR0NHTERpc3BsYXksIEdDR0xD
b250ZXh0KTsKICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCByZXNoYXBlRGlzcGxheUJ1ZmZlckJh
Y2tpbmcoKSA9IDA7CiAKQEAgLTQzOSw3ICs0MzksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gQXR0
YWNoZXMgbV90ZXh0dXJlIHdoZW4gbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJUZXh0dXJlIGlzIG5v
bi16ZXJvLgogICAgIEdDR0x1aW50IG1fcHJlc2VydmVEcmF3aW5nQnVmZmVyRkJPIHsgMCB9Owog
ICAgIC8vIFF1ZXJpZWQgYXQgZGlzcGxheSBzdGFydHVwLgotICAgIEVHTGludCBtX2RyYXdpbmdC
dWZmZXJUZXh0dXJlVGFyZ2V0IHsgLTEgfTsKKyAgICBHQ0dMaW50IG1fZHJhd2luZ0J1ZmZlclRl
eHR1cmVUYXJnZXQgeyAtMSB9OwogICAgIC8vIEVycm9ycyByYWlzZWQgYnkgc3ludGhlc2l6ZUdM
RXJyb3IoKS4KICAgICBMaXN0SGFzaFNldDxHQ0dMZW51bT4gbV9zeW50aGV0aWNFcnJvcnM7CiAg
ICAgYm9vbCBtX2lzRm9yV2ViR0wyIHsgZmFsc2UgfTsKQEAgLTQ1NCw5ICs0NTQsOSBAQCBwcm90
ZWN0ZWQ6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IE1vdmUgdGhlc2UgdG8g
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KICAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3
YXBDaGFpbiBtX3N3YXBDaGFpbjsKLSAgICBFR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxw
dHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxw
dHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIG1fY29uZmlnT2JqIHsg
bnVsbHB0ciB9OworICAgIEdDR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxwdHIgfTsKKyAg
ICBHQ0dMQ29udGV4dCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CisgICAgR0NHTENvbmZpZyBt
X2NvbmZpZ09iaiB7IG51bGxwdHIgfTsKICAgICAvLyBCYWNraW5nIHN0b3JlIGZvciB0aGUgdGhl
IGJ1ZmZlciB3aGljaCBpcyBldmVudHVhbGx5IHVzZWQgZm9yIGRpc3BsYXkuCiAgICAgLy8gV2hl
biBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPT0gZmFsc2UsIHRoaXMgaXMgdGhlIGRyYXdpbmcgYnVm
ZmVyIGJhY2tpbmcgc3RvcmUuCiAgICAgLy8gV2hlbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPT0g
dHJ1ZSwgdGhpcyBpcyBibGl0dGVkIHRvIGR1cmluZyBkaXNwbGF5IHByZXBhcmUuCkBAIC00NzMs
NyArNDczLDcgQEAgcHJvdGVjdGVkOgogICAgIGNsYXNzIEVHTEltYWdlQmFja2luZyB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBFR0xJbWFnZUJh
Y2tpbmcoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkpOworICAgICAgICBFR0xJbWFn
ZUJhY2tpbmcoR0NHTERpc3BsYXkpOwogICAgICAgICB+RUdMSW1hZ2VCYWNraW5nKCk7CiAKICAg
ICAgICAgYm9vbCByZXNldChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGJvb2wgaGFzQWxwaGEpOwpA
QCAtNDg4LDcgKzQ4OCw3IEBAIHByb3RlY3RlZDoKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IHJlbGVhc2VSZXNvdXJjZXMoKTsKIAotICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
RGlzcGxheSBtX2Rpc3BsYXk7CisgICAgICAgIEdDR0xEaXNwbGF5IG1fZGlzcGxheTsKIAogICAg
ICAgICBnYm1fYm8qIG1fQk8geyBudWxscHRyIH07CiAgICAgICAgIGludCBtX0ZEIHsgLTEgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBv
cmFyeUFOR0xFU2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjOWNlNWIxY2E3YzZiYmMxYzE1NmJlZTRlNmZlOTk2OTJhNDBlNjAyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJM
RShXRUJHTCkgJiYgVVNFKEFOR0xFKQotI2luY2x1ZGUgIlRlbXBvcmFyeUFOR0xFU2V0dGluZy5o
IgotCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
VGVtcG9yYXJ5QU5HTEVTZXR0aW5nOjpUZW1wb3JhcnlBTkdMRVNldHRpbmcoR0xlbnVtIGNhcGFi
aWxpdHksIEdMZW51bSBzY29wZWRTdGF0ZSkKLSAgICA6IG1fY2FwYWJpbGl0eShjYXBhYmlsaXR5
KQotICAgICwgbV9zY29wZWRTdGF0ZShzY29wZWRTdGF0ZSkKLXsKLSAgICBtX29yaWdpbmFsU3Rh
dGUgPSBHTF9Jc0VuYWJsZWQobV9jYXBhYmlsaXR5KTsKLSAgICBpZiAobV9vcmlnaW5hbFN0YXRl
ID09IG1fc2NvcGVkU3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChHTF9UUlVFID09
IG1fc2NvcGVkU3RhdGUpCi0gICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOwotICAgIGVs
c2UKLSAgICAgICAgR0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOwotfQotCi1UZW1wb3JhcnlBTkdM
RVNldHRpbmc6On5UZW1wb3JhcnlBTkdMRVNldHRpbmcoKQotewotICAgIGlmIChtX29yaWdpbmFs
U3RhdGUgPT0gbV9zY29wZWRTdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKEdMX1RS
VUUgPT0gbV9vcmlnaW5hbFN0YXRlKQotICAgICAgICBHTF9FbmFibGUobV9jYXBhYmlsaXR5KTsK
LSAgICBlbHNlCi0gICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKLX0KLQotfQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0
dGluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDQ3NzA5NzUzNDQ4MTI0ZThm
MmRjNjllMmEwMjNlOTc4MjljZjI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBv
cmFyeUFOR0xFU2V0dGluZy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgotCi0jaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nPD4gaXMgdXNlZnVsIGZvciB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgKG9yIGVu
YWJsaW5nKSBhIHBhcnRpY3VsYXIgT3BlbkdMCi0vLyBmZWF0dXJlIHdpdGggYSBwYXJ0aWN1bGFy
IHNjb3BlLiBBIFRlbXBvcmFyeUFOR0xFU2V0dGluZzw+IG9iamVjdCByZXR1cm5zIHRoZSBmbGFn
IHRvIGl0cyBvcmlnaW5hbAotLy8gdmFsdWUgdXBvbiBkZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFu
IGFsdGVybmF0aXZlIHRvIGNoZWNraW5nLCBjbGVhcmluZywgYW5kIHJlc2V0dGluZyBlYWNoIGZs
YWcKLS8vIGF0IGFsbCBvZiBhIGJsb2NrJ3MgZXhpdCBwb2ludHMuCi0vLwotLy8gQmFzZWQgb24g
U2V0Rm9yU2NvcGU8PgotCi1jbGFzcyBUZW1wb3JhcnlBTkdMRVNldHRpbmcgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFRlbXBvcmFyeUFOR0xFU2V0dGluZyk7Ci1wdWJsaWM6Ci0gICAgVGVt
cG9yYXJ5QU5HTEVTZXR0aW5nKEdDR0xlbnVtIGNhcGFiaWxpdHksIEdDR0xlbnVtIHNjb3BlZFN0
YXRlKTsKLSAgICB+VGVtcG9yYXJ5QU5HTEVTZXR0aW5nKCk7Ci0KLXByaXZhdGU6Ci0gICAgY29u
c3QgR0NHTGVudW0gbV9jYXBhYmlsaXR5OwotICAgIGNvbnN0IEdDR0xlbnVtIG1fc2NvcGVkU3Rh
dGU7Ci0gICAgR0NHTGVudW0gbV9vcmlnaW5hbFN0YXRlOwotfTsKLQotfQotCi11c2luZyBXZWJD
b3JlOjpUZW1wb3JhcnlBTkdMRVNldHRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwCmlu
ZGV4IGU5OTNiNzc2NzE4OWZlN2VkZjZjMjY1OTIxNWFjZTNjMmVhMDY5MzkuLjQwN2U4Mjg0MDdm
YmIwOWQ3ZWVlYmEyODY4ODQ3ZTNkYWY2ZjAxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29jb2Eu
Y3BwCkBAIC0yNywxMiArMjcsMjMgQEAKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllc0NvY29hLmgi
CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0KKyNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKKyNpbmNs
dWRlICJBTkdMRVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3
dGYvZGFyd2luL1dlYWtMaW5raW5nLmg+CisKK1dURl9XRUFLX0xJTktfRk9SQ0VfSU1QT1JUKEVH
TF9Jbml0aWFsaXplKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkKiBjcmVhdGVQYnVm
ZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmlnIGNvbmZp
ZywgR0xlbnVtIHRhcmdldCwgRUdMaW50IHVzYWdlSGludCwgR0xlbnVtIGludGVybmFsRm9ybWF0
LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIHR5cGUsIElPU3VyZmFjZVJl
ZiBzdXJmYWNlLCBHTHVpbnQgcGxhbmUpCitib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgp
Cit7CisgICAgLy8gVGhlIEFOR0xFIGlzIHdlYWsgbGlua2VkIGluIGZ1bGwsIGFuZCB0aGUgRUdM
X0luaXRpYWxpemUgaXMgZXhwbGljaXRseSB3ZWFrIGxpbmtlZCBhYm92ZQorICAgIC8vIHNvIHRo
YXQgd2UgY2FuIGRldGVjdCB0aGUgY2FzZSB3aGVyZSBBTkdMRSBpcyBub3QgcHJlc2VudC4KKyAg
ICByZXR1cm4gISFFR0xfSW5pdGlhbGl6ZTsKK30KKwordm9pZCogY3JlYXRlUGJ1ZmZlckFuZEF0
dGFjaElPU3VyZmFjZShHQ0dMRGlzcGxheSBkaXNwbGF5LCBHQ0dMQ29uZmlnIGNvbmZpZywgR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMaW50IHVzYWdlSGludCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gdHlwZSwgSU9TdXJm
YWNlUmVmIHN1cmZhY2UsIEdDR0x1aW50IHBsYW5lKQogewogICAgIGF1dG8gZWdsVGV4dHVyZVRh
cmdldCA9IHRhcmdldCA9PSBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSA/IEVHTF9URVhUVVJF
X1JFQ1RBTkdMRV9BTkdMRSA6IEVHTF9URVhUVVJFXzJEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29h
LmgKaW5kZXggOTNiYTRlMGRjOTEzMmU4NTg3NzVmOWMyNWJhZDY3NDhjN2M4NjliOC4uMGFjZDcy
MWQwODdhYTJmN2I4NDM2Y2JmMzQ1NTRhNTU5ZGUxNDM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVzQ29j
b2EuaApAQCAtMjcsMTYgKzI3LDE2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRl
ICJBTkdMRUhlYWRlcnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKIAogdHlwZWRl
ZiBzdHJ1Y3QgX19JT1N1cmZhY2UgKklPU3VyZmFjZVJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBSZXR1cm5zIGEgaGFuZGxlIHdoaWNoLCBpZiBub24tbnVsbCwgbXVzdCBiZSByZWxl
YXNlZCB3aXRoIGRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKCkuCi12b2lkKiBjcmVh
dGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xlbnVt
IHRhcmdldCwgRUdMaW50IHVzYWdlSGludCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiwgR0x1aW50
IHBsYW5lKTsKK3ZvaWQqIGNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoR0NHTERpc3Bs
YXksIEdDR0xDb25maWcsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCB1c2FnZUhpbnQsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdD
R0xlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiwgR0NHTHVpbnQgcGxhbmUpOwogCi12b2lkIGRlc3Ry
b3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKEVHTERpc3BsYXksIHZvaWQqIGhhbmRsZSk7Cit2
b2lkIGRlc3Ryb3lQYnVmZmVyQW5kRGV0YWNoSU9TdXJmYWNlKEdDR0xEaXNwbGF5LCB2b2lkKiBo
YW5kbGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDM2ZThm
MGZiMDI5Mzc3YjRlZmZlNDA1MzUyMzdlNTgyMjJmYmY3NzEuLjQ3ZDcxMDYxMTFjNWI2MWNjYjQ1
YzI3YTBkMWYzNDRhMWE1MWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpA
QCAtMjgsMTkgKzI4LDIwIEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oIgogCisjaW1wb3J0ICJBTkdMRUhlYWRlcnMuaCIKICNpbXBvcnQgIkFO
R0xFVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW1wb3J0
ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2lt
cG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBvcnQgIlByb2Nl
c3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRh
bC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KLSNpbXBvcnQgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC01NywxNyArNTgsOCBAQAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2Vu
ZGlmCiAKLVdURl9XRUFLX0xJTktfRk9SQ0VfSU1QT1JUKEVHTF9Jbml0aWFsaXplKTsKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIHBsYXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpCi17Ci0g
ICAgLy8gVGhlIEFOR0xFIGlzIHdlYWsgbGlua2VkIGluIGZ1bGwsIGFuZCB0aGUgRUdMX0luaXRp
YWxpemUgaXMgZXhwbGljaXRseSB3ZWFrIGxpbmtlZCBhYm92ZQotICAgIC8vIHNvIHRoYXQgd2Ug
Y2FuIGRldGVjdCB0aGUgY2FzZSB3aGVyZSBBTkdMRSBpcyBub3QgcHJlc2VudC4KLSAgICByZXR1
cm4gISFFR0xfSW5pdGlhbGl6ZTsKLX0KLQogLy8gSW4gaXNDdXJyZW50Q29udGV4dFByZWRpY3Rh
YmxlKCkgPT0gdHJ1ZSBjYXNlIHRoaXMgdmFyaWFibGUgaXMgYWNjZXNzZWQgaW4gc2luZ2xlLXRo
cmVhZGVkIG1hbm5lci4KIC8vIEluIGlzQ3VycmVudENvbnRleHRQcmVkaWN0YWJsZSgpID09IGZh
bHNlIGNhc2UgdGhpcyB2YXJpYWJsZSBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMg
YnV0IGFsd2F5cyBzZXF1ZW50aWFsbHkKIC8vIGFuZCBpdCBhbHdheXMgY29udGFpbnMgbnVsbHB0
ciBhbmQgbnVsbHB0ciBpcyBhbHdheXMgd3JpdHRlbiB0byBpdC4KQEAgLTU5OSw3ICs1OTEsNyBA
QCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmJpbmREaXNwbGF5QnVmZmVyQmFja2luZyhz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6Om1ha2VDdXJyZW50KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xEaXNwbGF5IGRpc3BsYXksIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgY29udGV4dCkKK2Jv
b2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6bWFrZUN1cnJlbnQoR0NHTERpc3BsYXkgZGlzcGxh
eSwgR0NHTENvbnRleHQgY29udGV4dCkKIHsKICAgICBjdXJyZW50Q29udGV4dCA9IG51bGxwdHI7
CiAgICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChkaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdM
X05PX1NVUkZBQ0UsIGNvbnRleHQpOwpAQCAtODAxLDEyICs3OTMsMTIgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVy
LCBQbGF0Zm9ybUcKIH0KICNlbmRpZgogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxh
eSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NHTERp
c3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9kaXNwbGF5T2JqOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
Q29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKK0dD
R0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2NvbmZpZ09iajsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwCmluZGV4IDJjOThmOWQ5MjkyM2MwNDlhOTRiMzQ5YjRmNzc1Mjk0NzcxOWUyMjguLmE4M2Nm
YTI5NTcwODYwZjMzOTM0YTM4NzI4NmQ2OWI1MjgwNGE1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBF
TkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlICJBTkdMRUhlYWRl
cnMuaCIKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSAiRm91ckND
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaAppbmRleCA5ZTFiNDQ0OWQzYjRiYjlmNWMwZDdhZThkODVmMzBlZjFkMDRiYThh
Li43N2RlZGQ0ODcyOTExOTYxMTM1N2JiZGRiNmNjNjhjMzg4OWJiMDAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuaApAQCAtNTEsOSArNTEsOSBAQCBwcml2YXRlOgogCiAKICAgICBHcmFw
aGljc0NvbnRleHRHTENvY29hJiBtX293bmVyOwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xEaXNwbGF5IG1fZGlzcGxheSB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMIG1fY29udGV4dCB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnIG1fY29uZmlnIHsgbnVsbHB0ciB9OworICAgIEdDR0xEaXNwbGF5IG1fZGlzcGxh
eSB7IG51bGxwdHIgfTsKKyAgICBHQ0dMQ29udGV4dCBtX2NvbnRleHQgeyBudWxscHRyIH07Cisg
ICAgR0NHTENvbmZpZyBtX2NvbmZpZyB7IG51bGxwdHIgfTsKIAogICAgIFBsYXRmb3JtR0xPYmpl
Y3QgbV9mcmFtZWJ1ZmZlciB7IDAgfTsKICAgICBQbGF0Zm9ybUdMT2JqZWN0IG1feXV2VmVydGV4
QnVmZmVyIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCBjNjFlZWJjMzA2Nzk3NjM1YmYyNWM4OTBkYTk5
Y2U1YmNlMzIyMGIzLi4yNjJiMmZiOTAyMzc4MDJjZGYwNWEyNzhiNDQzMWU2ZTgwODliMmY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgR0xDb250ZXh0RUdMOjpzd2FwSW50
ZXJ2YWwoaW50IGludGVydmFsKQogICAgIGVnbFN3YXBJbnRlcnZhbChtX2Rpc3BsYXkuZWdsRGlz
cGxheSgpLCBpbnRlcnZhbCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0xDb250
ZXh0RUdMOjpwbGF0Zm9ybUNvbnRleHQoKQorR0NHTENvbnRleHQgR0xDb250ZXh0RUdMOjpwbGF0
Zm9ybUNvbnRleHQoKQogewogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXggM2Mz
YTNkN2YwNTc3M2FkZWMwYzZjZDg3MWVmYmE0ZDZkYjM1YzY0MS4uNTk4YjBiNjczMjZhNjY0MTJk
NjU0MmJkOWJlOTE4YzRmZDc2N2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtODksNyArODksNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3dhcEludGVydmFsKGludCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0VHTENv
bnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIEdDR0xDb250
ZXh0IHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOwogCiAgICAgZW51bSBFR0xTdXJmYWNlVHlw
ZSB7IFBidWZmZXJTdXJmYWNlLCBXaW5kb3dTdXJmYWNlLCBQaXhtYXBTdXJmYWNlLCBTdXJmYWNl
bGVzcyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgvR0xDb250ZXh0R0xYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ds
eC9HTENvbnRleHRHTFguY3BwCmluZGV4IDVmYmZhYjZjZDBmMzExM2ZmMDQ0N2JiM2UxYzY5ZjE3
NzgwMzQxM2EuLjk4MzlkOWJhOWEyZTVhMGMzZGJmMDRiZjRkOTRlMDNhM2M0YzlmOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRH
TFguY3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBHTENvbnRleHRHTFg6OnN3YXBJbnRlcnZh
bChpbnQgaW50ZXJ2YWwpCiAgICAgZ2xYU3dhcEludGVydmFsU0dJKGludGVydmFsKTsKIH0KIAot
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBHTENvbnRleHRHTFg6OnBsYXRmb3JtQ29udGV4dCgp
CitHQ0dMQ29udGV4dCBHTENvbnRleHRHTFg6OnBsYXRmb3JtQ29udGV4dCgpCiB7CiAgICAgcmV0
dXJuIG1fY29udGV4dC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaAppbmRleCBkM2RiMzVkNjU2MTFjMThlMGEwNWJj
YTEwNDNlMTlkZmE0OTQ3MjQyLi44MjIyZDQ5NjNkMDhhZWY2Y2MyNThlMzJlNDgxZGM1ODE5ODIz
MjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xD
b250ZXh0R0xYLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dM
Q29udGV4dEdMWC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwSW50
ZXJ2YWwoaW50KSBvdmVycmlkZTsKICAgICBib29sIGlzRUdMQ29udGV4dCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBs
YXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4
dCgpIG92ZXJyaWRlOwogCiAgICAgR0xDb250ZXh0R0xYKFBsYXRmb3JtRGlzcGxheSYsIFhVbmlx
dWVHTFhDb250ZXh0JiYsIEdMTmF0aXZlV2luZG93VHlwZSk7CiAgICAgR0xDb250ZXh0R0xYKFBs
YXRmb3JtRGlzcGxheSYsIFhVbmlxdWVHTFhDb250ZXh0JiYsIFhVbmlxdWVHTFhQYnVmZmVyJiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAppbmRleCAwMGY5
OWU4Mzc0YzRkYTEwMTdjYTRkMjMxNWRjZmE0NDcyZTI5MDYzLi43NTRkNjI0NDg2ZWMwNGVjOTVl
ZjEzZjBmZDU3MjE5MTQwZTVhMTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5
R1N0cmVhbWVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCBib29sIFBsYXRmb3JtRGlzcGxheTo6dHJ5
RW5zdXJlR3N0R0xDb250ZXh0KCkgY29uc3QKICAgICBhdXRvKiBzaGFyZWRDb250ZXh0ID0gY29u
c3RfY2FzdDxQbGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+c2hhcmluZ0dMQ29udGV4dCgpOwogICAg
IGlmICghc2hhcmVkQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0wgY29udGV4dEhhbmRsZSA9IHNoYXJlZENvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgIEdDR0xDb250ZXh0IGNvbnRleHRIYW5kbGUgPSBzaGFyZWRDb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHRIYW5kbGUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXll
ci5jcHAKaW5kZXggMzhjMDRkMWU2ZGVlMzZmMWQyMDJhOWY4OWIyNDI1N2NiNjU0NGUwOC4uMjVl
MmI5MWNjYzRiOThmMzkzNDBhMTVlZDA2NDUxMjFmMTRlZjAyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdM
RUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCkBAIC0yMTQsMTcgKzIxNCwxNyBAQCBi
b29sIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTEFOR0xF
TGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0
IEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERp
c3BsYXkgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNwbGF5KCkgY29u
c3QKK0dDR0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtRGlz
cGxheSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheTsKIH0KIAotUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTENvbmZpZyBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9y
bUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6
OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb25maWc7CiB9CkBAIC0y
NDgsMTkgKzI0OCwxOSBAQCBib29sIEdDR0xBTkdMRUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQo
KQogCiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0NHTEFOR0xFTGF5ZXI6OnBsYXRm
b3JtQ29udGV4dCgpIGNvbnN0CitHQ0dMQ29udGV4dCBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1D
b250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9hbmdsZUNvbnRleHQpOwogICAgIHJldHVy
biBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25z
dAorR0NHTERpc3BsYXkgR0NHTEFOR0xFTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1fYW5nbGVDb250ZXh0KTsKICAgICByZXR1cm4gbV9hbmdsZUNvbnRleHQt
PnBsYXRmb3JtRGlzcGxheSgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmln
IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdDR0xB
TkdMRUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fYW5nbGVD
b250ZXh0KTsKICAgICByZXR1cm4gbV9hbmdsZUNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAppbmRleCA0ZjhkZjZl
Y2UwNmE1NzQyZWQzYTdiOGY3ZWEwZTUwZDBjYjA0NjQyLi5kZjgzYTg5NGRkNTA2MDE4NWFjOTk2
Y2Y3MTRlYWJkYjc2NWVkMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFO
R0xFTGF5ZXIuaApAQCAtNjIsOSArNjIsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgYm9vbCBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgICAgIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0OwotICAgICAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7
CisgICAgICAgIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgICAgICBH
Q0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAgICAgICAgR0NHTENvbmZpZyBw
bGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogI2VuZGlmCiAKICAgICBwcml2YXRlOgpAQCAtODAsOSAr
ODAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+R0NHTEFOR0xFTGF5ZXIoKTsKIAogICAgIGJv
b2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBw
bGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlz
cGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CisgICAgR0NHTENvbnRleHQgcGxhdGZv
cm1Db250ZXh0KCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29u
c3Q7CisgICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogCiAgICAgQ29udGVu
dExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMYXllcjsgfQog
ICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0NHTExheWVyLmNwcAppbmRleCA0ZTRhMmIzYmU1MmRjMzY1NzAwYzdiNTljOTU1MzIy
YWRlZTg2NjA2Li4wMTBjYzdjMzNiZWNiYjJiOGY2YWIwNzBmZDczNWVmYWIwMGUyN2U0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0NHTExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcApAQCAtNjEsNyArNjEsNyBAQCBi
b29sIEdDR0xMYXllcjo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gbV9nbENvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
IEdDR0xMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0IEdDR0xMYXll
cjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRleHQpOwog
ICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1h
cC9OaWNvc2lhR0NHTExheWVyLmgKaW5kZXggMTk2NmM3OWZjYmJhZGVlMzZkNzBhZDVmMGE0Zjcw
ZWQ3ZjMxZGMzNy4uYWIxYTE2NDgxN2RiNjE5Mjg5NjUxNzNjNDBiZjIzMTFkNzE1MDQ0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAKICAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGVudExheWVyOyB9CiAgICAgdmlydHVhbCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwot
ICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIEdDR0xDb250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0Owog
CiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXJBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCmluZGV4IGEy
ZTY3M2ZjNDYzNGQ4ZWVlNmJjZTVlYTVlOTg5N2ZhN2U2M2Y4NzEuLjIwMjhhOTU4NjYzNTdmMGQ5
NDAwNGJhZjg2ZTA1NWUyNTVmMTc3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dHJpCiB9CiAKICNpZiBVU0UoTklDT1NJQSkKLUdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OkVHTEltYWdlQmFja2luZzo6RUdMSW1hZ2VCYWNraW5nKFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xEaXNwbGF5IGRpc3BsYXkpCitHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpFR0xJ
bWFnZUJhY2tpbmc6OkVHTEltYWdlQmFja2luZyhHQ0dMRGlzcGxheSBkaXNwbGF5KQogICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCiB7CiB9CkBAIC0yMzEsNyArMjMxLDcgQEAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoKQogI2VuZGlmCiB9CiAKLVBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRm
b3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpw
bGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogI2lmIFVTRShOSUNPU0lBKQogICAgIHJldHVybiBt
X25pY29zaWFMYXllci0+cGxhdGZvcm1EaXNwbGF5KCk7CkBAIC0yNDAsNyArMjQwLDcgQEAgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxh
dGZvcm1EaXNwbGF5KCkgY29uc3QKICNlbmRpZgogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMQ29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnKCkgY29uc3QK
K0dDR0xDb25maWcgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1Db25maWcoKSBjb25z
dAogewogI2lmIFVTRShOSUNPU0lBKQogICAgIHJldHVybiBtX25pY29zaWFMYXllci0+cGxhdGZv
cm1Db25maWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXll
ci5jcHAKaW5kZXggNjI2NmVhZjkyMTAzMTdlNjljNjFhNDAxYjY3ZmU0ZjAzYmFhYjNlYi4uZTUz
MzRlZTJmNzU3NDkyNWYzODYzYjk1ZjUzMWZkYzgyNjI5ZmViMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKQEAgLTYyLDE5ICs2MiwxOSBAQCBi
b29sIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6bWFrZUNvbnRleHRDdXJyZW50KCkK
ICAgICByZXR1cm4gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCi1QbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dEdMIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxh
dGZvcm1Db250ZXh0KCkgY29uc3QKK0dDR0xDb250ZXh0IFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRl
eHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiB9CiAKLVBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1M
YXllcjo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKK0dDR0xEaXNwbGF5IFRleHR1cmVNYXBwZXJH
Q0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9nbENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1EaXNwbGF5KCk7
CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIFRleHR1cmVN
YXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db25maWcoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNvbmZp
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCmluZGV4
IGUzZWVkNmJiOWUzNjY2MjY5MzczNWMyY2NkMTBjZTFiN2U2ZDZlM2IuLmY3Yjg1NzRmOGYwMzBk
MzBkNjUxMWU2YjhkODA0Y2Q5ZTUwMjJkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDR0xQbGF0Zm9ybUxheWVyLmgKQEAgLTM4LDkgKzM4LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgflRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcigpOwogCiAgICAgYm9vbCBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29u
dGV4dCgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRm
b3JtRGlzcGxheSgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcg
cGxhdGZvcm1Db25maWcoKSBjb25zdDsKKyAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQo
KSBjb25zdDsKKyAgICBHQ0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKKyAgICBH
Q0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAKICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IHBy
b3h5KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDA0MjM3NWQ2
YjdhZTU4MWE0YmFmZGQ2ZDNlMTc2YjEzZTgzODlmNTAuLmZmMjg0NWVkNDJmMzQ3YTliOGFiODU3
MjFlNjJlZWIxNGU1MTdmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0xMzIsMTIgKzEz
MiwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
PiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIHVzaW5nIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgPSBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOworICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xDb2NvYTsKICNlbHNlCi0gICAgdXNpbmcgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjsKKyAgICB1c2luZyBH
Q0dMQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjsKICNl
bmRpZgogICAgIAotICAgIFJlZlB0cjxQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMPiBtX2NvbnRl
eHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CisgICAgUmVmUHRyPEdDR0xD
b250ZXh0PiBtX2NvbnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CiAg
ICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyOwogICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL21hYy9BcHBLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21h
Yy9BcHBLaXRTUEkuaAppbmRleCAwNWRjMjM3ODAzNDkxNDhkZTE4NGNmMDIxMTliZmRlZWEwNGQy
MzBiLi5lNDZiN2ZjMzdiOWM0ZmQzODY5ZGViYmQ3NGM2ZmQyOGI3ZWFiYzQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oCkBAIC0yOSwxMyArMjksNiBAQAog
CiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCiAKLSNpZiBIQVZFKENQUDIwX0lOQ09N
UEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNk
ZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5
X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+Ci0jZW5kaWYKLQogI2ltcG9ydCA8QXBwS2l0L05T
SW5zcGVjdG9yQmFyLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNUZXh0SW5wdXRDbGllbnRfUHJpdmF0
ZS5oPgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93X1ByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmggYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oCmlu
ZGV4IDZkNGEzMTQ2ZTZlOTU3MTc3MTljNjNmMmVmMmY2ZDlkZTc1NDVkNzYuLmYwNzk1MTU2YzU3
ODYyZjg0NTA5Y2M1YTRiY2FmODBmMmZlNzAzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaApAQCAtMzEsMTAg
KzMxLDYgQEAKIAogI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURFUlMp
CiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9U
WVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5H
TEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KICNlbmRpZgogCiAjaW1wb3J0IDxB
cHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVy
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250
cm9sbGVyU1BJLmgKaW5kZXggMDdjZDBkOTI4ODFiNzUwODYwM2ZlY2ZhNDQxYjE3OTUyY2MwNmJl
MC4uNjdmNzI3ZDk5NmI1Mzk1NmIxYWI0NzAyYzk3ZjIyMmJiMDVkYzEzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQ
SS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNv
bnRyb2xsZXJTUEkuaApAQCAtMjcsMTMgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShQREZLSVRfUExV
R0lOKQogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgSEFWRShDUFAyMF9JTkNPTVBB
VElCTEVfSU5URVJOQUxfSEVBREVSUykKLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0jZGVm
aW5lIEdMX0dMRVNfUFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRyeV9w
b2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgotI2VuZGlmCi0KICNpbXBvcnQgPFF1YXJ0ei9RdWFy
dHouaD4KIAogQGNsYXNzIENQUmVhZGluZ01vZGVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCAzMTQ3YTQ1ZWEyMTEyN2Vj
MDAwOTUzOGZjMTgwMWY2NGNkMzAwODJmLi5hZjFmMTUxMzQ4NmJhMzczMzNkYmMzNTllY2ZlYzU2
ZGZiN2E3NWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lSW50ZXJuYWwuaApAQCAtMjgsMTMgKzI4LDYgQEAKIAogLy8gVGhpcyBoZWFkZXIgY29u
dGFpbnMgV2ViRnJhbWUgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgYW55d2hlcmUgaW4g
V2ViS2l0LCBidXQgYXJlIG5laXRoZXIgU1BJIG5vciBBUEkuCiAKLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQot
I2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAK
LSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+
Ci0jZW5kaWYKLQogI2ltcG9ydCAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUvRWRpdEFjdGlvbi5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452177</attachid>
            <date>2022-02-16 04:16:04 -0800</date>
            <delta_ts>2022-02-16 10:42:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236636-20220216141602.patch</filename>
            <type>text/plain</type>
            <size>73623</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTliM2RkMTcwZjRjZmFj
NmExMTg2MzM3NzRjZTU4OWExNDJkN2NlNy4uMzViZjEyODI5MGY3ZWFjNDE5MGZiMTk5YTNiMzBj
NzViMDgyMmNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMi0wMi0xNiAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1
ZGVzIGludGVyZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBNb3ZlIEFOR0xFSGVhZGVycy5oIGluY2x1
ZGVzIG9ubHkgdG8gdGhlIC5jcHAvLm1tIGZpbGVzCisgICAgICAgIHRoYXQgbmVlZCB0byB1c2Ug
QU5HTEUuCisgICAgICAgIFVzZSBHQ0dMKiB0eXBlcyBjb25zaXN0ZW50bHkgaW4gdGhlIEdyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaAorICAgICAgICBkZWNsYXRpb25zLiBUaGUgV2ViQ29yZSB0eXBl
cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBwbGFjZSBvZiBPcGVuR0wsIEVHTCB0eXBlcwor
ICAgICAgICBzbyB0aGF0IFdlYkNvcmUgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUgT3Bl
bkdMIGhlYWRlcnMuCisKKyAgICAgICAgUmVuYW1lIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0x7
RGlzcGxheSwgQ29uZmlnfSwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCB0bworICAgICAgICBH
Q0dMRGlzcGxheSwgR0NHTENvbmZpZywgR0NHTENvbnRleHQgdG8gbWFrZSB0aGVtIGNvbnNpc3Rl
bnQgd2l0aCBvdGhlcgorICAgICAgICBkdXBsaWNhdGVkIHR5cGVzLiBEZWNsYXJlIHRoZXNlIGlu
IEdyYXBoaWNzVHlwZXNHTC5oLCBzaW1pbGFyIHRvIG90aGVycy4KKyAgICAgICAgUmVtb3ZlIGN1
cnJlbnRseSB1bnVzZWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1cmZhY2UuCisKKyAgICAg
ICAgUmVuYW1lIFRlbXBvcmFyeUFOR0xFU2V0dGluZyB0byBTY29wZWRHTENhcGFiaWxpdHksIGNv
bnNpc3RlbnQgd2l0aCBvdGhlciBTY29wZWRHTCoKKyAgICAgICAgY2xhc3Nlcy4gTW92ZSB0aGUg
aW1wbGVtZW50YXRpb25zIG9mIFNjb3BlZEdMKiB0byBBTkdMRVV0aWxpdGllcy5jcHAsIHNpbmNl
IHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0byB1c2UgQU5HTEUgYW5kIHRoZXNl
IG5lZWQgdGhlIEFOR0xFIGhlYWRlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rv
ci4gRml4ZXMgdGhlIGNvbXBpbGUgb24gQmlnIFN1ciwgaW50ZXJuYWwgU0RLIHdoZW4gYSBmaWxl
IGFkZCBvciByZW1vdmUKKyAgICAgICAgd291bGQgY2hhbmdlZCB1bmlmaWVkIGJ1aWxkIGZpbGUg
b3JkZXJpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlc0dMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
QU5HTEVVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVRleHR1
cmVCaW5kaW5nOjpTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5k
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEJ1ZmZlckJpbmRpbmc6OlNjb3BlZEJ1ZmZl
ckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkQnVmZmVyQmluZGluZzo6flNjb3Bl
ZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUmVzdG9yZVJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29w
ZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6flNjb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6
OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkUGl4ZWxT
dG9yYWdlTW9kZTo6flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NvcGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y29wZWRUZXh0dXJlOjpTY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFRl
eHR1cmU6On5TY29wZWRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEZyYW1lYnVm
ZmVyOjpTY29wZWRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRGcmFtZWJ1
ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVu
Y2U6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6OmZlbmNlU3luYyk6
CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6OlNjb3BlZEdMQ2FwYWJpbGl0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTENhcGFiaWxpdHk6On5TY29wZWRHTENhcGFi
aWxpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRCdWZmZXJCaW5kaW5nOjpxdWVyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZzo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
UmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmc6OmZyYW1lYnVmZmVyVGFyZ2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGU6Om9wZXJhdG9yIEdDR0xp
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkVGV4dHVyZTo6b3BlcmF0b3IgR0NH
THVpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkRnJhbWVidWZmZXI6Om9wZXJh
dG9yIEdDR0x1aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjb3BlZEdMRmVuY2U6Omdl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRHTEZlbmNlOjpvcGVyYXRvciBHQ0dM
c3luYyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cHJlcGFyZVRleHR1cmVJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6aXNTeW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRlbGV0ZVN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Z2V0U3luY2kpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZyYW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRm
b3JtSXNBTkdMRUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYnVmZmVyQW5k
QXR0YWNoSU9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdM
RVV0aWxpdGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6Om1ha2VDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZpZyBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ2x4L0dMQ29udGV4dEdMWC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9y
bURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1
cmVHc3RHTENvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpH
Q0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1EaXNw
bGF5IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRl
eHQ6OnBsYXRmb3JtQ29uZmlnIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OkdDR0xBTkdMRUxh
eWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAoTmljb3NpYTo6R0NHTEFOR0xF
TGF5ZXI6OnBsYXRmb3JtRGlzcGxheSBjb25zdCk6CisgICAgICAgIChOaWNvc2lhOjpHQ0dMQU5H
TEVMYXllcjo6cGxhdGZvcm1Db25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29uZmlnIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1EaXNwbGF5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1D
b25maWcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoKKwogMjAyMi0wMi0xNiAgQWxlamFuZHJvIEcuIENh
c3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVzZSBkcm0gcmVu
ZGVyIG5vZGVzIGluIEdibURldmljZSBhbmQgbWFrZSB0aGUgZmQgZ2xvYmFsIHRvIHRoZSBwcm9j
ZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAxN2YzOWIzZTg5ZWYyMTg0MTc0NjVhZGJjY2E4MzYw
ZmM3NjBlYjU1Li41ODVmNzJkNjYxNWYzZGQ1NDU5OTg3NjNlODBiOWQ5N2QzOWY5YzhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMi0xNiAgS2ltbW8gS2lubnVu
ZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFOR0xFIGluY2x1ZGVzIGludGVy
ZmVyZSB3aXRoIHN5c3RlbSBoZWFkZXIgaW5jbHVkZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzNgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
YW4gSmFja3Nvbi4KKworICAgICAgICBSZW1vdmUgdGhlIGF0dGVtcHQgdG8gb3ZlcnJpZGUgc3lz
dGVtIGhlYWRlciBsb2dpYyB3aXRoIFdlYktpdAorICAgICAgICBBTkdMRSBpbXBsZW1lbnRhdGlv
bi4gVGhleSBhcmUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucworICAgICAgICBhbmQgb25lIGNh
bm5vdCByZXBsYWNlIHRoZSBvdGhlci4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg6CisgICAgICAg
IEFkZCBtaXNzaW5nIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfIHRoYXQgbWFrZXMgdGhlIENvY29h
UHJpdi5oCisgICAgICAgIGluY2x1ZGVkIENvcmVHcmFwaGljcyBoZWFkZXIgc2tpcCB0aGUgaW5j
b21wYXRpYmxlIHRhZ2dlZCBwb2ludGVyCisgICAgICAgIGRlY2xhcmF0aW9ucywgc2ltaWxhciB0
byBvdGhlciAqU1BJLmggaGVhZGVycy4KKwogMjAyMi0wMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBCaWcgU3Vy
IGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDc2NDM5ODEyOGE0YTRlYWVlYzg2NzRiNzNiYmViNzhlYTdiNjVh
MjYuLjBlZWI5OTZhZTdlNDY4ZmExZDExZjkxOWQwZWE1ZWZjNjNiYTZhMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjItMDItMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KKworICAgICAgICBBTkdMRSBpbmNsdWRlcyBpbnRlcmZlcmUgd2l0aCBzeXN0ZW0g
aGVhZGVyIGluY2x1ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzY2MzYKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBhdHRlbXB0IHRvIG92ZXJyaWRlIHN5c3RlbSBoZWFkZXIgbG9naWMg
d2l0aCBXZWJLaXQKKyAgICAgICAgQU5HTEUgaW1wbGVtZW50YXRpb24uIFRoZXkgYXJlIGRpZmZl
cmVudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5kIG9uZSBjYW5ub3QgcmVwbGFjZSB0aGUg
b3RoZXIuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLmg6CisgICAgICAgICogUGxhdGZvcm0vc3BpL21hYy9BcHBLaXRTUEkuaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oOgorCiAyMDIy
LTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3RlVmlkZW9GcmFtZVByb3h5IGlzIG1pc3NpbmcgcmVmZXJlbmNlIGZpZWxkIGVuY29kZSwg
ZGVjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDRlMWExOTlmZDQ2YzY0ZjJh
YzIwYTUxYzMyMzVmMmVhMzQ1MmE4OC4uY2U5MTA3ODJmMjlhYmYzMTQ3NWIyMWQzYjk0MzY1MDI3
OTA3M2U0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIyLTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQU5HTEUgaW5jbHVkZXMgaW50ZXJmZXJlIHdpdGggc3lzdGVtIGhlYWRlciBpbmNsdWRlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlbW92ZSB0aGUg
YXR0ZW1wdCB0byBvdmVycmlkZSBzeXN0ZW0gaGVhZGVyIGxvZ2ljIHdpdGggV2ViS2l0CisgICAg
ICAgIEFOR0xFIGltcGxlbWVudGF0aW9uLiBUaGV5IGFyZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRp
b25zCisgICAgICAgIGFuZCBvbmUgY2Fubm90IHJlcGxhY2UgdGhlIG90aGVyLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmg6CisKIDIwMjItMDItMTUgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBwcmVsaW1pbmFyeSB3b3JrIHRvIHBh
c3MgZG9tYWluIG5hbWVzIHRvIENvcmVMb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAx
ZDY4MDE1MGViZjljMTExOWJjOTVlNjExNzcwZWUzMzUzMDJkMDJmLi41ZTQ4ZTQxYWNmZmRjNWQz
ZTU2Yjk4ODVkMzAyNjA2ZDU0YmExMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTkwOSw3
ICsxOTA5LDYgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9BTkdMRVV0aWxp
dGllcy5jcHAKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuY3BwCiAgICAgICAgICkKIAogICAgICAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX0xJQlJBUklFUyBBTkdMRTo6R0xFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwCmluZGV4IDczY2UyYzIw
YjYyOTZjMWY0ODg5ZDU5ZTNiOGY3Y2JjYmE1YzRmMDIuLjkyZTFhMThlYTc4OTdmNmE0MjJkMmY0
OTdjYjY5NDEyZjAxNTkxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgogCiAjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFU
QSkKLSNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRH
TENvY29hLmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAppbmRleCBkMWI5NDY1MmVmY2QwOTg2MzY0Y2U1ODcxMWI1MjFkODcz
Y2EyOTUyLi45MTI2NmYxN2Q0M2YxM2Q4YWRjY2E2NjcxMWMzZjc2MDgyZjQwZWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtNDAs
MTAgKzQwLDYgQEAKIAogI2lmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFMX0hFQURF
UlMpCiAjZGVmaW5lIENHQ09MT1JUQUdHRURQT0lOVEVSX0hfCi0jaWZuZGVmIEdMX0dMRVNfUFJP
VE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BST1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8
QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KICNlbmRpZgogCiAjaW5jbHVk
ZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dERlbGVnYXRlUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCmluZGV4IGYzOTc2NjlhZWI3ODlm
N2U1NzEyMWRhNGI3NjlkY2MyODljNzNjZWYuLmNjM2FlYzRhMGEwMzg5NjZjMWVjZjhlMTU0YTE5
ZjcxMmM0MmJjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9I
SVRvb2xib3hTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29s
Ym94U1BJLmgKQEAgLTI5LDEwICsyOSw2IEBACiAKICNpZiBIQVZFKENQUDIwX0lOQ09NUEFUSUJM
RV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmluZSBDR0NPTE9SVEFHR0VEUE9JTlRFUl9IXwotI2lm
bmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUgR0xfR0xFU19QUk9UT1RZUEVTIDAKLSNl
bmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CiAj
ZW5kaWYKIAogI2luY2x1ZGUgPENhcmJvbi9DYXJib25Qcml2Lmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAppbmRleCAwMjgxNGQwMjIyYjI2ZTI4OTliOGRhY2FlZDFhNDJlNTZiNTc0MTk0Li5jY2Iw
ODY4NThjMWM5Y2MzMTFhODdmYjM5NTg4NzY4ODgxMDkwZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTM3Nyw3ICszNzcsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRpb25NYXRyaXhDRy5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVV
dGlsaXRpZXNDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2
YXRlV2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0Zsb2F0UmVjdENvY29hLm1tCkBAIC0zODgsNyArMzg3LDYgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQotcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9IRVZDVXRpbGl0aWVzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5tbQpAQCAtNDE0LDcgKzQxMiw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0
L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCi1wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBo
aWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckltYWdlQ29yZUltYWdlLm1tCkBAIC02MTYs
OCArNjEzLDEwIEBAIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5jcHAKIHRlc3RpbmcvY29jb2Ev
V2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5tbQogCiAvLyBUaGUgZm9sbG93aW5n
IGZpbGVzIGFyZW4ndCB1bmlmaWVkIHdpdGggb3RoZXJzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJl
aW5nIG1lcmdlZAotLy8gd2l0aCBmaWxlcyB0aGF0IHVzZSB0aGUgc3lzdGVtIE9wZW5HTC4KKy8v
IHdpdGggZmlsZXMgdGhhdCBpbmNsdWRlIHN5c3RlbSBoZWFkZXJzIHRoYXQgaW5jbHVkZSBzeXN0
ZW0gT3BlbkdMIGhlYWRlcnMuCiAKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRpbGl0
aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIEBuby11bmlmeQotcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5
QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xF
VXRpbGl0aWVzQ29jb2EuY3BwIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI5ZmI3Y2MyMjE4OWYw
MzQzMDIwY2Y2YzBmYTNkNjY1ZGI5ZWIzOC4uYmFlZTRiMzEyOTk5MDYxZmQ5MWNjYTIyZDIxMzU2
MDc5NjBjZTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjE5NCw4ICsyMTk0LDYgQEAKIAkJNkU0QUJDRDUxMzhFQTBCNzAw
NzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1M
VW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRy
aWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyN0YyNDIy
Mjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovOyB9OwotCQk2
RTcyRjU0RjIyOURDRDEzMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjkwODYxMjI5REI5
NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovOyB9OwotCQk2RTcyRjU1
MTIyOURDRDFBMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTI5MDg2MzIyOURCOTcwMDAwOTg2
RTIgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmggKi87IH07CiAJCTZFODRFOUUxMTc2NjhCRjEw
MDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkU4NEU5REYxNzY2OEJBRDAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkU4QUNE
RUQyMzM0NUNCQzAwMjRBQUY1IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFOEFDREVCMjMzNDVDQUYw
MDI0QUFGNSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmggKi87IH07CiAJCTZFQkYwRTQ5
MTJBODkyNjEwMERCMTcwOSAvKiBPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYwRTQ2MTJBODkyNjEwMERCMTcwOSAvKiBP
RVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKQEAgLTI0MjIsNiArMjQyMCwxMCBAQAogCQk3QkI2ODBC
QTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAv
KiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRl
eHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRD
Mjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
RERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovOyB9
OworCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEQTI3
MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgKi87IH07CisJCTdCRTM3
RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEODI3MDU5OUVGMDBFQjIxMjcg
LyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9OworCQk3QkUzN0Y3RTI3QkI4NkRCMDA3QTZDRDMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlBMjU0OTcyMDAwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuY3BwICovOyB9OwogCQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMg
LyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNz
RWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2
ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEwODg0LDggKzEwODg2LDYgQEAKIAkJNkUyNDJCMjkyMzM1OTNENzAw
MkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVU
QzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFG
NjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTZFMjkwODYxMjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdM
RVNldHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyOTA4
NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlBTkdMRVNldHRpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0
dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZXB0
aFRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMz
RjQwMTBFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQzMCw4ICsyNDQzMCw2IEBACiAJCQkJN0JC
MzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyN0Yy
NDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovLAogCQkJ
CTdCOTVDRkVDMjc1NEZGN0MwMDAwNjBDRSAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFLmggKi8s
Ci0JCQkJNkUyOTA4NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5j
cHAgKi8sCi0JCQkJNkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0
dGluZy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhbmdsZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0zNzY5NCw3ICszNzY5Miw2IEBACiAJCQkJRjU1QjNERDYxMjUxRjEyRDAwM0VG
MjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NDNTY0Qjgx
OEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1l
bnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU3MkY1NTEyMjlEQ0QxQTAwQjNFMTUx
IC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQx
QUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5
REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2
NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTM4NjkzLDYg
KzM4NjkwLDggQEAKIAkJCWZpbGVzID0gKAogCQkJCUE5Nzg3Q0I0MUY1RjVDNjYwMEM1NTFDNiAv
KiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzFGN0I3
MzEyNDQ4RjJBQzAwMTI0NTU3IC8qIEFHWENvbXBpbGVyU2VydmljZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3QkUzN0Y3RDI3QkI4NkNEMDA3QTZDRDMgLyogQU5HTEVVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJN0JFMzdGN0MyN0JCODZCODAwN0E2Q0QzIC8qIEFOR0xFVXRpbGl0
aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEy
IC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
Nzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbklPUy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzg3MTcsNiArMzg3MTYsOCBAQAogCQkJCTUxQTlE
OUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFD
b2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJGNTRFMjI5RENEMTAwMEIzRTE1MSAvKiBH
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCRTM3RjdBMjdC
Qjg2QUIwMDdBNkNEMyAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJN0JFMzdGN0UyN0JCODZEQjAwN0E2Q0QzIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzNFNTEwQjE4REY4RjM1MDBDMTEyRjcgLyogSFRN
TENvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4RDA2QjNBMEEyNjVEQ0QwMDVFNzIw
MyAvKiBIVE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDOTAwQzMxOTQzQzBGQzAw
ODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM4Nzc4LDcg
KzM4Nzc5LDYgQEAKIAkJCQlDREM4QjVBQTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzdDQTBBMkNGMDZCMDBE
NTc2NjQgLyogU1ZHTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE2OTJERDIyM0QyM0FC
RDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gaW4gU291cmNlcyAqLywKLQkJCQk2RTcyRjU0
RjIyOURDRDEzMDBCM0UxNTEgLyogVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNFODhFRTI2MjQxNDQ2N0IwMDdGMjlDMiAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MURGNkQ4MDBCOTJBMThFMDBDMkRDODUgLyog
VGhyZWFkQ2hlY2subW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzhFQzgwMzFGOTZBRjgxMDA0RDIy
QTggLyogVW5pZmllZFNvdXJjZTEtbW0ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKaW5kZXggZDc4NTc2YTJiNmRmNzE1ODE2
OGRjMzNmNWM3MzJhZWVlZGU1Nzc1Yy4uOTQwMzEwNmY1NWU3NGQzMjM5NzYzNjk0YWFhM2E2MDIy
M2E2ZjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdHlwZWRlZiB1aW50NjRfdCBHTE5hdGl2ZVdpbmRvd1R5cGU7
CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZGV2aWNlIGNhaXJvX2RldmljZV90OwogI2VuZGlmCiAK
LXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTDsKK3R5cGVkZWYgdm9pZCog
R0NHTENvbnRleHQ7CiAKIC8vIFgxMSBoZWFkZXJzIGRlZmluZSBhIGJ1bmNoIG9mIG1hY3JvcyB3
aXRoIGNvbW1vbiB0ZXJtcywgaW50ZXJmZXJpbmcgd2l0aCBXZWJDb3JlIGFuZCBXVEYgZW51bSB2
YWx1ZXMuCiAvLyBBcyBhIHdvcmthcm91bmQsIHdlIGV4cGxpY2l0bHkgdW5kZWYgdGhlbSBoZXJl
LgpAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VHTENv
bnRleHQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0wgcGxhdGZvcm1Db250ZXh0KCkgPSAwOworICAgIHZpcnR1YWwgR0NHTENvbnRleHQgcGxhdGZv
cm1Db250ZXh0KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgR0xDb250ZXh0KFBsYXRmb3JtRGlz
cGxheSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmgKaW5kZXggMWNjZWViNTM3MzUzOGQ1MzUyM2Y0OWRjZTJhMDY4MmU0N2Rm
YzhkZC4uM2FjYmM3NTc4YjliODI3ODMzNTQzM2UxNWUwMmY2MDEyNGYzYWY5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5o
CkBAIC00NSwxMSArNDUsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotdHlwZWRlZiB2b2lkKiBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dEdMOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMRGlzcGxheTsKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTFN1
cmZhY2U7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWc7Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV4dGVuc2lvbnNHTDsKIGNsYXNzIEhvc3RXaW5k
b3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c1R5cGVzR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXNHTC5oCmluZGV4IDMzNjU2YTE1NjEzZGY2MzIyNjVhOTMzMjg4MmJkMTExYTY4MGRmOTUuLjAw
Mzk2MGQ3ZGU0Njk5Mjg1ZmMwOTBlNTczNWEzYmZlOTIzZGU0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXNHTC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXNHTC5oCkBAIC00Nyw3ICs0
Nyw3IEBAIHR5cGVkZWYgZmxvYXQgR0NHTGZsb2F0OwogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBH
Q0dMaGFsZmZsb2F0OwogdHlwZWRlZiBmbG9hdCBHQ0dMY2xhbXBmOwogdHlwZWRlZiBjaGFyIEdD
R0xjaGFyOwotdHlwZWRlZiBzdHJ1Y3QgX19HTHN5bmMqIEdDR0xzeW5jOwordHlwZWRlZiB2b2lk
KiBHQ0dMc3luYzsKIHR5cGVkZWYgdm9pZCBHQ0dMdm9pZDsKIAogLy8gVGhlc2UgR0NHTCB0eXBl
cyBkbyBub3Qgc3RyaWN0bHkgbWF0Y2ggdGhlIEdMIHR5cGVzIGFzIGRlZmluZWQgaW4gT3BlbkdM
IEVTIDIuMApAQCAtNTksMTEgKzU5LDE4IEBAIHR5cGVkZWYgaW50NjRfdCBHQ0dMaW50NjQ7CiB0
eXBlZGVmIHVpbnQ2NF90IEdDR0x1aW50NjQ7CiAKIHR5cGVkZWYgR0NHTHVpbnQgUGxhdGZvcm1H
TE9iamVjdDsKK3VzaW5nIEdDR0xEaXNwbGF5ID0gdm9pZCo7Cit1c2luZyBHQ0dMQ29uZmlnID0g
dm9pZCo7Cit1c2luZyBHQ0dMQ29udGV4dCA9IHZvaWQqOwogCiAjaWYgIVBMQVRGT1JNKENPQ09B
KQogdHlwZWRlZiB1bnNpZ25lZCBHTHVpbnQ7CiAjZW5kaWYKIAordXNpbmcgR0NHTE5hdGl2ZURp
c3BsYXlUeXBlID0gaW50OworCitpbmxpbmUgY29uc3RleHByIEdDR0xOYXRpdmVEaXNwbGF5VHlw
ZSBnY0dMRGVmYXVsdERpc3BsYXkgPSAwOworCiBpbmxpbmUgY29uc3RleHByIHNpemVfdCBnY0dM
U3BhbkR5bmFtaWNFeHRlbnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgRXh0ZW50ID0gZ2NHTFNwYW5EeW5hbWljRXh0
ZW50PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
QU5HTEVVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvQU5HTEVVdGlsaXRpZXMuY3BwCmluZGV4IDdjNWY4YjU4NzczNDkwMDAxNDUzODk0YTAxM2Yy
MjcxYzk3NWFjYzMuLjY1OTU0ZGQwNmU0ZDc3ZDEyMThlMGY3YTUyNzg5YjRjYjMwOWU1MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0FOR0xFVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9B
TkdMRVV0aWxpdGllcy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBTkdMRVV0aWxp
dGllcy5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiQU5H
TEVIZWFkZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNiArMzgsMTQwIEBA
IGJvb2wgcGxhdGZvcm1Jc0FOR0xFQXZhaWxhYmxlKCkKIH0KICNlbmRpZgogCitTY29wZWRSZXN0
b3JlVGV4dHVyZUJpbmRpbmc6OlNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZyhHQ0dMZW51bSBi
aW5kaW5nUG9pbnRRdWVyeSwgR0NHTGVudW0gYmluZGluZ1BvaW50LCBib29sIGNvbmRpdGlvbikK
K3sKKyAgICBBU1NFUlQoYmluZGluZ1BvaW50ICE9IHN0YXRpY19jYXN0PEdDR0xlbnVtPigwdSkp
OworICAgIGlmIChjb25kaXRpb24pIHsKKyAgICAgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5kaW5n
UG9pbnQ7CisgICAgICAgIEdMX0dldEludGVnZXJ2KGJpbmRpbmdQb2ludFF1ZXJ5LCByZWludGVy
cHJldF9jYXN0PEdDR0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKKyAgICB9Cit9CisKK1Njb3Bl
ZFJlc3RvcmVUZXh0dXJlQmluZGluZzo6flNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZygpCit7
CisgICAgaWYgKG1fYmluZGluZ1BvaW50KQorICAgICAgICBHTF9CaW5kVGV4dHVyZShtX2JpbmRp
bmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOworfQorCitTY29wZWRCdWZmZXJCaW5kaW5nOjpTY29w
ZWRCdWZmZXJCaW5kaW5nKEdDR0xlbnVtIGJpbmRpbmdQb2ludCwgR0NHTHVpbnQgYmluZGluZ1Zh
bHVlLCBib29sIGNvbmRpdGlvbikKK3sKKyAgICBpZiAoIWNvbmRpdGlvbikKKyAgICAgICAgcmV0
dXJuOworICAgIEdMX0dldEludGVnZXJ2KHF1ZXJ5KGJpbmRpbmdQb2ludCksIHJlaW50ZXJwcmV0
X2Nhc3Q8R0NHTGludCo+KCZtX2JpbmRpbmdWYWx1ZSkpOworICAgIGlmIChiaW5kaW5nVmFsdWUg
PT0gbV9iaW5kaW5nVmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2JpbmRpbmdQb2ludCA9
IGJpbmRpbmdQb2ludDsKKyAgICBHTF9CaW5kQnVmZmVyKG1fYmluZGluZ1BvaW50LCBiaW5kaW5n
VmFsdWUpOworfQorCitTY29wZWRCdWZmZXJCaW5kaW5nOjp+U2NvcGVkQnVmZmVyQmluZGluZygp
Cit7CisgICAgaWYgKG1fYmluZGluZ1BvaW50KQorICAgICAgICBHTF9CaW5kQnVmZmVyKG1fYmlu
ZGluZ1BvaW50LCBtX2JpbmRpbmdWYWx1ZSk7Cit9CisKK3ZvaWQgU2NvcGVkUmVzdG9yZVJlYWRG
cmFtZWJ1ZmZlckJpbmRpbmc6OmJpbmRGcmFtZWJ1ZmZlcihHQ0dMdWludCBiaW5kaW5nVmFsdWUp
Cit7CisgICAgaWYgKCFtX2JpbmRpbmdDaGFuZ2VkICYmIG1fYmluZGluZ1ZhbHVlID09IGJpbmRp
bmdWYWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2ZyYW1l
YnVmZmVyVGFyZ2V0LCBiaW5kaW5nVmFsdWUpOworICAgIG1fYmluZGluZ0NoYW5nZWQgPSBtX2Jp
bmRpbmdWYWx1ZSAhPSBiaW5kaW5nVmFsdWU7Cit9CisKK1Njb3BlZFJlc3RvcmVSZWFkRnJhbWVi
dWZmZXJCaW5kaW5nOjp+U2NvcGVkUmVzdG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoKQorewor
ICAgIGlmIChtX2JpbmRpbmdDaGFuZ2VkKQorICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIobV9m
cmFtZWJ1ZmZlclRhcmdldCwgbV9iaW5kaW5nVmFsdWUpOworfQorCitTY29wZWRQaXhlbFN0b3Jh
Z2VNb2RlOjpTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdDR0xlbnVtIG5hbWUsIGJvb2wgY29uZGl0
aW9uKQorICAgIDogbV9uYW1lKGNvbmRpdGlvbiA/IG5hbWUgOiAwKQoreworICAgIGlmIChtX25h
bWUpCisgICAgICAgIEdMX0dldEludGVnZXJ2KG1fbmFtZSwgJm1fb3JpZ2luYWxWYWx1ZSk7Cit9
CisKK1Njb3BlZFBpeGVsU3RvcmFnZU1vZGU6OlNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0NHTGVu
dW0gbmFtZSwgR0NHTGludCB2YWx1ZSwgYm9vbCBjb25kaXRpb24pCisgICAgOiBtX25hbWUoY29u
ZGl0aW9uID8gbmFtZSA6IDApCit7CisgICAgaWYgKG1fbmFtZSkgeworICAgICAgICBHTF9HZXRJ
bnRlZ2VydihtX25hbWUsICZtX29yaWdpbmFsVmFsdWUpOworICAgICAgICBwaXhlbFN0b3JlKHZh
bHVlKTsKKyAgICB9Cit9CisKK1Njb3BlZFBpeGVsU3RvcmFnZU1vZGU6On5TY29wZWRQaXhlbFN0
b3JhZ2VNb2RlKCkKK3sKKyAgICBpZiAobV9uYW1lICYmIG1fdmFsdWVDaGFuZ2VkKQorICAgICAg
ICBHTF9QaXhlbFN0b3JlaShtX25hbWUsIG1fb3JpZ2luYWxWYWx1ZSk7Cit9CisKK3ZvaWQgU2Nv
cGVkUGl4ZWxTdG9yYWdlTW9kZTo6cGl4ZWxTdG9yZShHQ0dMaW50IHZhbHVlKQoreworICAgIEFT
U0VSVChtX25hbWUpOworICAgIGlmICghbV92YWx1ZUNoYW5nZWQgJiYgbV9vcmlnaW5hbFZhbHVl
ID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgR0xfUGl4ZWxTdG9yZWkobV9uYW1lLCB2
YWx1ZSk7CisgICAgbV92YWx1ZUNoYW5nZWQgPSBtX29yaWdpbmFsVmFsdWUgIT0gdmFsdWU7Cit9
CisKK1Njb3BlZFRleHR1cmU6OlNjb3BlZFRleHR1cmUoKQoreworICAgIEdMX0dlblRleHR1cmVz
KDEsICZtX29iamVjdCk7Cit9CisKK1Njb3BlZFRleHR1cmU6On5TY29wZWRUZXh0dXJlKCkKK3sK
KyAgICBHTF9EZWxldGVUZXh0dXJlcygxLCAmbV9vYmplY3QpOworfQorCitTY29wZWRGcmFtZWJ1
ZmZlcjo6U2NvcGVkRnJhbWVidWZmZXIoKQoreworICAgIEdMX0dlbkZyYW1lYnVmZmVycygxLCAm
bV9vYmplY3QpOworfQorCitTY29wZWRGcmFtZWJ1ZmZlcjo6flNjb3BlZEZyYW1lYnVmZmVyKCkK
K3sKKyAgICBHTF9EZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fb2JqZWN0KTsKK30KKwordm9pZCBT
Y29wZWRHTEZlbmNlOjpyZXNldCgpCit7CisgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgIEdM
X0RlbGV0ZVN5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihtX29iamVjdCkpOworICAgICAgICBtX29i
amVjdCA9IHsgfTsKKyAgICB9Cit9CisKK3ZvaWQgU2NvcGVkR0xGZW5jZTo6ZmVuY2VTeW5jKCkK
K3sKKyAgICByZXNldCgpOworICAgIG1fb2JqZWN0ID0gR0xfRmVuY2VTeW5jKEdMX1NZTkNfR1BV
X0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsKK30KKworCitTY29wZWRHTENhcGFiaWxpdHk6OlNjb3Bl
ZEdMQ2FwYWJpbGl0eShHQ0dMZW51bSBjYXBhYmlsaXR5LCBib29sIGVuYWJsZSkKKyAgICA6IG1f
Y2FwYWJpbGl0eShjYXBhYmlsaXR5KQorICAgICwgbV9vcmlnaW5hbChHTF9Jc0VuYWJsZWQobV9j
YXBhYmlsaXR5KSA9PSBlbmFibGUgPyBzdGQ6Om51bGxvcHQgOiBzdGQ6Om9wdGlvbmFsPGJvb2w+
KCFlbmFibGUpKQoreworICAgIGlmICghbV9vcmlnaW5hbCkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmIChlbmFibGUpCisgICAgICAgIEdMX0VuYWJsZShtX2NhcGFiaWxpdHkpOworICAgIGVsc2UK
KyAgICAgICAgR0xfRGlzYWJsZShtX2NhcGFiaWxpdHkpOworfQorCitTY29wZWRHTENhcGFiaWxp
dHk6On5TY29wZWRHTENhcGFiaWxpdHkoKQoreworICAgIGlmICghbV9vcmlnaW5hbCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICgqbV9vcmlnaW5hbCkKKyAgICAgICAgR0xfRW5hYmxlKG1fY2Fw
YWJpbGl0eSk7CisgICAgZWxzZQorICAgICAgICBHTF9EaXNhYmxlKG1fY2FwYWJpbGl0eSk7Cit9
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9BTkdMRVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvQU5HTEVVdGlsaXRpZXMuaAppbmRleCA1MTViOWQ5MTFhM2VkYjcyMTMzNTYy
MDVmNjUzNWIyMzY3MjEyZmJmLi43MDJjYzFlZWE4MTRjMzc5NjZmZjYzMmY2ZWEzYWQ1YmVlMjk4
Mzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9B
TkdMRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0FOR0xFVXRpbGl0aWVzLmgKQEAgLTI3LDE4NSArMjcsMTI1IEBACiAKICNpZiBFTkFCTEUo
V0VCR0wpICYmIFVTRShBTkdMRSkKIAotI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCisj
aW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcpOwotcHVi
bGljOgotICAgIFNjb3BlZFJlc3RvcmVUZXh0dXJlQmluZGluZyhHTGVudW0gYmluZGluZ1BvaW50
UXVlcnksIEdMZW51bSBiaW5kaW5nUG9pbnQsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChiaW5kaW5nUG9pbnQgIT0gc3RhdGljX2Nhc3Q8R0xlbnVtPigwdSkp
OwotICAgICAgICBpZiAoY29uZGl0aW9uKSB7Ci0gICAgICAgICAgICBtX2JpbmRpbmdQb2ludCA9
IGJpbmRpbmdQb2ludDsKLSAgICAgICAgICAgIEdMX0dldEludGVnZXJ2KGJpbmRpbmdQb2ludFF1
ZXJ5LCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJm1fYmluZGluZ1ZhbHVlKSk7Ci0gICAgICAg
IH0KLSAgICB9CiAKLSAgICB+U2NvcGVkUmVzdG9yZVRleHR1cmVCaW5kaW5nKCkKLSAgICB7Ci0g
ICAgICAgIGlmIChtX2JpbmRpbmdQb2ludCkKLSAgICAgICAgICAgIEdMX0JpbmRUZXh0dXJlKG1f
YmluZGluZ1BvaW50LCBtX2JpbmRpbmdWYWx1ZSk7Ci0gICAgfQorcHVibGljOgorICAgIFNjb3Bl
ZFJlc3RvcmVUZXh0dXJlQmluZGluZyhHQ0dMZW51bSBiaW5kaW5nUG9pbnRRdWVyeSwgR0NHTGVu
dW0gYmluZGluZ1BvaW50LCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAgIH5TY29wZWRSZXN0
b3JlVGV4dHVyZUJpbmRpbmcoKTsKIAogcHJpdmF0ZToKLSAgICBHTGVudW0gbV9iaW5kaW5nUG9p
bnQgeyAwIH07Ci0gICAgR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKKyAgICBHQ0dMZW51
bSBtX2JpbmRpbmdQb2ludCB7IDAgfTsKKyAgICBHQ0dMdWludCBtX2JpbmRpbmdWYWx1ZSB7IDB1
IH07CiB9OwogCi0KIGNsYXNzIFNjb3BlZEJ1ZmZlckJpbmRpbmcgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNjb3BlZEJ1ZmZlckJpbmRpbmcpOwotcHVibGljOgotICAgIFNjb3BlZEJ1ZmZl
ckJpbmRpbmcoR0xlbnVtIGJpbmRpbmdQb2ludCwgR0x1aW50IGJpbmRpbmdWYWx1ZSwgYm9vbCBj
b25kaXRpb24gPSB0cnVlKQotICAgIHsKLSAgICAgICAgaWYgKCFjb25kaXRpb24pCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIEdMX0dldEludGVnZXJ2KHF1ZXJ5KGJpbmRpbmdQb2ludCks
IHJlaW50ZXJwcmV0X2Nhc3Q8R0xpbnQqPigmbV9iaW5kaW5nVmFsdWUpKTsKLSAgICAgICAgaWYg
KGJpbmRpbmdWYWx1ZSA9PSBtX2JpbmRpbmdWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9iaW5kaW5nUG9pbnQgPSBiaW5kaW5nUG9pbnQ7Ci0gICAgICAgIEdMX0JpbmRCdWZm
ZXIobV9iaW5kaW5nUG9pbnQsIGJpbmRpbmdWYWx1ZSk7Ci0gICAgfQogCi0gICAgflNjb3BlZEJ1
ZmZlckJpbmRpbmcoKQotICAgIHsKLSAgICAgICAgaWYgKG1fYmluZGluZ1BvaW50KQotICAgICAg
ICAgICAgR0xfQmluZEJ1ZmZlcihtX2JpbmRpbmdQb2ludCwgbV9iaW5kaW5nVmFsdWUpOwotICAg
IH0KK3B1YmxpYzoKKyAgICBTY29wZWRCdWZmZXJCaW5kaW5nKEdDR0xlbnVtIGJpbmRpbmdQb2lu
dCwgR0NHTHVpbnQgYmluZGluZ1ZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAgIH5T
Y29wZWRCdWZmZXJCaW5kaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBH
TGVudW0gcXVlcnkoR0xlbnVtIGJpbmRpbmdQb2ludCkKKyAgICBzdGF0aWMgY29uc3RleHByIEdD
R0xlbnVtIHF1ZXJ5KEdDR0xlbnVtIGJpbmRpbmdQb2ludCkKICAgICB7Ci0gICAgICAgIGlmIChi
aW5kaW5nUG9pbnQgPT0gR0xfUElYRUxfUEFDS19CVUZGRVIpCi0gICAgICAgICAgICByZXR1cm4g
R0xfUElYRUxfUEFDS19CVUZGRVJfQklORElORzsKLSAgICAgICAgQVNTRVJUKGJpbmRpbmdQb2lu
dCA9PSBHTF9QSVhFTF9VTlBBQ0tfQlVGRkVSKTsKLSAgICAgICAgcmV0dXJuIEdMX1BJWEVMX1VO
UEFDS19CVUZGRVJfQklORElORzsKKyAgICAgICAgaWYgKGJpbmRpbmdQb2ludCA9PSBHcmFwaGlj
c0NvbnRleHRHTDo6UElYRUxfUEFDS19CVUZGRVIpCisgICAgICAgICAgICByZXR1cm4gR3JhcGhp
Y3NDb250ZXh0R0w6OlBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc7CisgICAgICAgIEFTU0VSVChi
aW5kaW5nUG9pbnQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlBJWEVMX1VOUEFDS19CVUZGRVIpOwor
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OlBJWEVMX1VOUEFDS19CVUZGRVJfQklO
RElORzsKICAgICB9Ci0gICAgR0xpbnQgbV9iaW5kaW5nUG9pbnQgeyAwIH07Ci0gICAgR0x1aW50
IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKKyAgICBHQ0dMaW50IG1fYmluZGluZ1BvaW50IHsgMCB9
OworICAgIEdDR0x1aW50IG1fYmluZGluZ1ZhbHVlIHsgMHUgfTsKIH07CisKIGNsYXNzIFNjb3Bl
ZFJlc3RvcmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyk7CisKIHB1YmxpYzoKLSAgICBT
Y29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyhib29sIGlzRm9yV2ViR0wyLCBHTHVp
bnQgcmVzdG9yZVZhbHVlKQotICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJH
TDIgPyBHTF9SRUFEX0ZSQU1FQlVGRkVSIDogR0xfRlJBTUVCVUZGRVIpCisgICAgU2NvcGVkUmVz
dG9yZVJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcoYm9vbCBpc0ZvcldlYkdMMiwgR0NHTHVpbnQgcmVz
dG9yZVZhbHVlKQorICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJHTDIgPyBH
cmFwaGljc0NvbnRleHRHTDo6UkVBRF9GUkFNRUJVRkZFUiA6IEdyYXBoaWNzQ29udGV4dEdMOjpG
UkFNRUJVRkZFUikKICAgICAgICAgLCBtX2JpbmRpbmdWYWx1ZShyZXN0b3JlVmFsdWUpCiAgICAg
ewogICAgIH0KLSAgICBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyhib29sIGlz
Rm9yV2ViR0wyLCBHTHVpbnQgcmVzdG9yZVZhbHVlLCBHTHVpbnQgdmFsdWUpCi0gICAgICAgIDog
bV9mcmFtZWJ1ZmZlclRhcmdldChpc0ZvcldlYkdMMiA/IEdMX1JFQURfRlJBTUVCVUZGRVIgOiBH
TF9GUkFNRUJVRkZFUikKKyAgICBTY29wZWRSZXN0b3JlUmVhZEZyYW1lYnVmZmVyQmluZGluZyhi
b29sIGlzRm9yV2ViR0wyLCBHQ0dMdWludCByZXN0b3JlVmFsdWUsIEdDR0x1aW50IHZhbHVlKQor
ICAgICAgICA6IG1fZnJhbWVidWZmZXJUYXJnZXQoaXNGb3JXZWJHTDIgPyBHcmFwaGljc0NvbnRl
eHRHTDo6UkVBRF9GUkFNRUJVRkZFUiA6IEdyYXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUikK
ICAgICAgICAgLCBtX2JpbmRpbmdWYWx1ZShyZXN0b3JlVmFsdWUpCiAgICAgewogICAgICAgICBi
aW5kRnJhbWVidWZmZXIodmFsdWUpOwogICAgIH0KKyAgICB+U2NvcGVkUmVzdG9yZVJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmcoKTsKICAgICB2b2lkIG1hcmtCaW5kaW5nQ2hhbmdlZCgpCiAgICAgewog
ICAgICAgICBtX2JpbmRpbmdDaGFuZ2VkID0gdHJ1ZTsKICAgICB9Ci0gICAgdm9pZCBiaW5kRnJh
bWVidWZmZXIoR0x1aW50IGJpbmRpbmdWYWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghbV9iaW5k
aW5nQ2hhbmdlZCAmJiBtX2JpbmRpbmdWYWx1ZSA9PSBiaW5kaW5nVmFsdWUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihtX2ZyYW1lYnVmZmVyVGFyZ2V0
LCBiaW5kaW5nVmFsdWUpOwotICAgICAgICBtX2JpbmRpbmdDaGFuZ2VkID0gbV9iaW5kaW5nVmFs
dWUgIT0gYmluZGluZ1ZhbHVlOwotICAgIH0KLSAgICBHTHVpbnQgZnJhbWVidWZmZXJUYXJnZXQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lYnVmZmVyVGFyZ2V0OyB9Ci0gICAgflNjb3BlZFJlc3Rv
cmVSZWFkRnJhbWVidWZmZXJCaW5kaW5nKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2JpbmRpbmdD
aGFuZ2VkKQotICAgICAgICAgICAgR0xfQmluZEZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXJUYXJn
ZXQsIG1fYmluZGluZ1ZhbHVlKTsKLSAgICB9CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0NH
THVpbnQgYmluZGluZ1ZhbHVlKTsKKyAgICBHQ0dMdWludCBmcmFtZWJ1ZmZlclRhcmdldCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVidWZmZXJUYXJnZXQ7IH0KKwogcHJpdmF0ZToKLSAgICBjb25z
dCBHTGVudW0gbV9mcmFtZWJ1ZmZlclRhcmdldDsKLSAgICBHTHVpbnQgbV9iaW5kaW5nVmFsdWUg
eyAwdSB9OworICAgIGNvbnN0IEdDR0xlbnVtIG1fZnJhbWVidWZmZXJUYXJnZXQ7CisgICAgR0NH
THVpbnQgbV9iaW5kaW5nVmFsdWUgeyAwdSB9OwogICAgIGJvb2wgbV9iaW5kaW5nQ2hhbmdlZCB7
IGZhbHNlIH07CiB9OwogCiBjbGFzcyBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKTsKKwogcHVibGljOgotICAg
IGV4cGxpY2l0IFNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoR0xlbnVtIG5hbWUsIGJvb2wgY29uZGl0
aW9uID0gdHJ1ZSkKLSAgICAgICAgOiBtX25hbWUoY29uZGl0aW9uID8gbmFtZSA6IDApCi0gICAg
ewotICAgICAgICBpZiAobV9uYW1lKQotICAgICAgICAgICAgR0xfR2V0SW50ZWdlcnYobV9uYW1l
LCAmbV9vcmlnaW5hbFZhbHVlKTsKLSAgICB9Ci0gICAgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShH
TGVudW0gbmFtZSwgR0xpbnQgdmFsdWUsIGJvb2wgY29uZGl0aW9uID0gdHJ1ZSkKLSAgICAgICAg
OiBtX25hbWUoY29uZGl0aW9uID8gbmFtZSA6IDApCi0gICAgewotICAgICAgICBpZiAobV9uYW1l
KSB7Ci0gICAgICAgICAgICBHTF9HZXRJbnRlZ2VydihtX25hbWUsICZtX29yaWdpbmFsVmFsdWUp
OwotICAgICAgICAgICAgcGl4ZWxTdG9yZSh2YWx1ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
flNjb3BlZFBpeGVsU3RvcmFnZU1vZGUoKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZSAmJiBt
X3ZhbHVlQ2hhbmdlZCkKLSAgICAgICAgICAgIEdMX1BpeGVsU3RvcmVpKG1fbmFtZSwgbV9vcmln
aW5hbFZhbHVlKTsKLSAgICB9Ci0gICAgdm9pZCBwaXhlbFN0b3JlKEdMaW50IHZhbHVlKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fbmFtZSk7Ci0gICAgICAgIGlmICghbV92YWx1ZUNoYW5nZWQg
JiYgbV9vcmlnaW5hbFZhbHVlID09IHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBHTF9QaXhlbFN0b3JlaShtX25hbWUsIHZhbHVlKTsKLSAgICAgICAgbV92YWx1ZUNoYW5nZWQg
PSBtX29yaWdpbmFsVmFsdWUgIT0gdmFsdWU7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMaW50KCkg
Y29uc3QKKyAgICBleHBsaWNpdCBTY29wZWRQaXhlbFN0b3JhZ2VNb2RlKEdDR0xlbnVtIG5hbWUs
IGJvb2wgY29uZGl0aW9uID0gdHJ1ZSk7CisgICAgU2NvcGVkUGl4ZWxTdG9yYWdlTW9kZShHQ0dM
ZW51bSBuYW1lLCBHQ0dMaW50IHZhbHVlLCBib29sIGNvbmRpdGlvbiA9IHRydWUpOworICAgIH5T
Y29wZWRQaXhlbFN0b3JhZ2VNb2RlKCk7CisgICAgdm9pZCBwaXhlbFN0b3JlKEdDR0xpbnQgdmFs
dWUpOworICAgIG9wZXJhdG9yIEdDR0xpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fbmFtZSAmJiAhbV92YWx1ZUNoYW5nZWQpOwogICAgICAgICByZXR1cm4gbV9vcmlnaW5hbFZh
bHVlOwogICAgIH0KKwogcHJpdmF0ZToKLSAgICBjb25zdCBHTGVudW0gbV9uYW1lOworICAgIGNv
bnN0IEdDR0xlbnVtIG1fbmFtZTsKICAgICBib29sIG1fdmFsdWVDaGFuZ2VkIHsgZmFsc2UgfTsK
LSAgICBHTGludCBtX29yaWdpbmFsVmFsdWUgeyAwIH07CisgICAgR0NHTGludCBtX29yaWdpbmFs
VmFsdWUgeyAwIH07CiB9OwogCiBjbGFzcyBTY29wZWRUZXh0dXJlIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShTY29wZWRUZXh0dXJlKTsKKwogcHVibGljOgotICAgIFNjb3BlZFRleHR1cmUo
KQotICAgIHsKLSAgICAgICAgR0xfR2VuVGV4dHVyZXMoMSwgJm1fb2JqZWN0KTsKLSAgICB9Ci0g
ICAgflNjb3BlZFRleHR1cmUoKQotICAgIHsKLSAgICAgICAgR0xfRGVsZXRlVGV4dHVyZXMoMSwg
Jm1fb2JqZWN0KTsKLSAgICB9Ci0gICAgb3BlcmF0b3IgR0x1aW50KCkgY29uc3QKKyAgICBTY29w
ZWRUZXh0dXJlKCk7CisgICAgflNjb3BlZFRleHR1cmUoKTsKKyAgICBvcGVyYXRvciBHQ0dMdWlu
dCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9vYmplY3Q7CiAgICAgfQorCiBwcml2
YXRlOgotICAgIEdMdWludCBtX29iamVjdCB7IDB1IH07CisgICAgR0NHTHVpbnQgbV9vYmplY3Qg
eyAwdSB9OwogfTsKIAogY2xhc3MgU2NvcGVkRnJhbWVidWZmZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNjb3BlZEZyYW1lYnVmZmVyKTsKKwogcHVibGljOgotICAgIFNjb3BlZEZyYW1l
YnVmZmVyKCkKLSAgICB7Ci0gICAgICAgIEdMX0dlbkZyYW1lYnVmZmVycygxLCAmbV9vYmplY3Qp
OwotICAgIH0KLSAgICB+U2NvcGVkRnJhbWVidWZmZXIoKQotICAgIHsKLSAgICAgICAgR0xfRGVs
ZXRlRnJhbWVidWZmZXJzKDEsICZtX29iamVjdCk7Ci0gICAgfQotICAgIG9wZXJhdG9yIEdMdWlu
dCgpIGNvbnN0CisgICAgU2NvcGVkRnJhbWVidWZmZXIoKTsKKyAgICB+U2NvcGVkRnJhbWVidWZm
ZXIoKTsKKyAgICBvcGVyYXRvciBHQ0dMdWludCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gbV9vYmplY3Q7CiAgICAgfQogcHJpdmF0ZToKLSAgICBHTHVpbnQgbV9vYmplY3QgeyAwIH07
CisgICAgR0NHTHVpbnQgbV9vYmplY3QgeyAwIH07CiB9OwogCiBjbGFzcyBTY29wZWRHTEZlbmNl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY29wZWRHTEZlbmNlKTsKKwogcHVibGljOgog
ICAgIFNjb3BlZEdMRmVuY2UoKSA9IGRlZmF1bHQ7CiAgICAgU2NvcGVkR0xGZW5jZShTY29wZWRH
TEZlbmNlJiYgb3RoZXIpCkBAIC0yMjEsMjMgKzE2MSwyNiBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KLSAgICB2b2lkIHJlc2V0KCkKLSAgICB7Ci0g
ICAgICAgIGlmIChtX29iamVjdCkgewotICAgICAgICAgICAgR0xfRGVsZXRlU3luYyhtX29iamVj
dCk7Ci0gICAgICAgICAgICBtX29iamVjdCA9IHsgfTsKLSAgICAgICAgfQotICAgIH0KKyAgICB2
b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBhYmFuZG9uKCkgeyBtX29iamVjdCA9IHsgfTsgfQotICAg
IHZvaWQgZmVuY2VTeW5jKCkKLSAgICB7Ci0gICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIG1fb2Jq
ZWN0ID0gR0xfRmVuY2VTeW5jKEdMX1NZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsKLSAg
ICB9Ci0gICAgb3BlcmF0b3IgR0xzeW5jKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KKyAg
ICB2b2lkIGZlbmNlU3luYygpOworICAgIEdDR0xzeW5jIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CisgICAgb3BlcmF0b3IgR0NHTHN5bmMoKSBjb25zdCB7IHJldHVybiBtX29iamVj
dDsgfQogICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorCitw
cml2YXRlOgorICAgIEdDR0xzeW5jIG1fb2JqZWN0IHsgfTsKK307CisKK2NsYXNzIFNjb3BlZEdM
Q2FwYWJpbGl0eSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkR0xDYXBhYmlsaXR5
KTsKK3B1YmxpYzoKKyAgICBTY29wZWRHTENhcGFiaWxpdHkoR0NHTGVudW0gY2FwYWJpbGl0eSwg
Ym9vbCBlbmFibGUpOworICAgIH5TY29wZWRHTENhcGFiaWxpdHkoKTsKKwogcHJpdmF0ZToKLSAg
ICBHTHN5bmMgbV9vYmplY3QgeyB9OworICAgIGNvbnN0IEdDR0xlbnVtIG1fY2FwYWJpbGl0eTsK
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fb3JpZ2luYWw7CiB9OwogCiBib29sIHBs
YXRmb3JtSXNBTkdMRUF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNw
cAppbmRleCBjNWM2YmZhNTc1ZTk0OTQ2NjEwMGUxNjUzMTgzMjgzYTA4YTBkYjdiLi4wYzM5NDk3
NWYyZTYwZWM3Y2ZkYTM4NGIxMzgyNmQwNTFmODMxZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRl
eHRHTEFOR0xFLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBpeGVsQnVmZmVyLmgiCi0jaW5j
bHVkZSAiVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2lu
Y2x1ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTE2NCwxMCArMTYz
LDEwIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cmVsZWFzZVRocmVhZFJlc291cmNl
cyhSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgLy8gQWxsIHJlc291cmNlcyBtdXN0IGhhdmUgYmVlbiBkZXN0cm95ZWQuCiAgICAg
ICAgICAgICBFR0xfTWFrZUN1cnJlbnQoY3VycmVudERpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwogICAgICAgICB9Ci0gICAgICAgIGNvbnN0
ZXhwciBFR0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5c1tdID0gewotICAgICAgICAg
ICAgZGVmYXVsdERpc3BsYXksCisgICAgICAgIGNvbnN0IEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5h
dGl2ZURpc3BsYXlzW10gPSB7CisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PEVHTE5hdGl2
ZURpc3BsYXlUeXBlPihkZWZhdWx0RGlzcGxheSksCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
ICAgICAgICBkZWZhdWx0T3BlbkdMRGlzcGxheSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nh
c3Q8RUdMTmF0aXZlRGlzcGxheVR5cGU+KGRlZmF1bHRPcGVuR0xEaXNwbGF5KSwKICNlbmRpZgog
ICAgICAgICB9OwogICAgICAgICBmb3IgKGF1dG8gbmF0aXZlRGlzcGxheSA6IG5hdGl2ZURpc3Bs
YXlzKSB7CkBAIC0zMjIsOCArMzIxLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjph
dHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWwKIAogdm9p
ZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNjb3Bl
ZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7Ci0gICAgVGVtcG9yYXJ5QU5HTEVT
ZXR0aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKKyAgICBTY29wZWRHTENh
cGFiaWxpdHkgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNFKTsKKyAgICBT
Y29wZWRHTENhcGFiaWxpdHkgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOwogCiAg
ICAgR0xpbnQgYm91bmRGcmFtZUJ1ZmZlciA9IDA7CiAgICAgR0xpbnQgYm91bmRSZWFkRnJhbWVC
dWZmZXIgPSAwOwpAQCAtNTY3LDggKzU2Niw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6cHJlcGFyZVRleHR1cmVJbXBsKCkKICNlbHNlCiAgICAgaWYgKG1fcHJlc2VydmVEcmF3aW5n
QnVmZmVyVGV4dHVyZSkgewogICAgICAgICAvLyBCbGl0IG1fcHJlc2VydmVEcmF3aW5nQnVmZmVy
VGV4dHVyZSBpbnRvIG1fdGV4dHVyZS4KLSAgICAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNj
b3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7Ci0gICAgICAgIFRlbXBvcmFy
eUFOR0xFU2V0dGluZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CisgICAgICAg
IFNjb3BlZEdMQ2FwYWJpbGl0eSBzY29wZWRTY2lzc29yKEdMX1NDSVNTT1JfVEVTVCwgR0xfRkFM
U0UpOworICAgICAgICBTY29wZWRHTENhcGFiaWxpdHkgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwg
R0xfRkFMU0UpOwogICAgICAgICBHTF9CaW5kRnJhbWVidWZmZXIoR0xfRFJBV19GUkFNRUJVRkZF
Ul9BTkdMRSwgbV9wcmVzZXJ2ZURyYXdpbmdCdWZmZXJGQk8pOwogICAgICAgICBHTF9CaW5kRnJh
bWVidWZmZXIoR0xfUkVBRF9GUkFNRUJVRkZFUl9BTkdMRSwgbV9mYm8pOwogICAgICAgICBHTF9C
bGl0RnJhbWVidWZmZXJBTkdMRSgwLCAwLCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0
LCAwLCAwLCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0LCBHTF9DT0xPUl9CVUZGRVJf
QklULCBHTF9ORUFSRVNUKTsKQEAgLTYyMSw4ICs2MjAsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIG1fY3VycmVudFdp
ZHRoID0gd2lkdGg7CiAgICAgbV9jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0OwogCi0gICAgVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nIHNjb3BlZFNjaXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7
Ci0gICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZB
TFNFKTsKKyAgICBTY29wZWRHTENhcGFiaWxpdHkgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RF
U1QsIEdMX0ZBTFNFKTsKKyAgICBTY29wZWRHTENhcGFiaWxpdHkgc2NvcGVkRGl0aGVyKEdMX0RJ
VEhFUiwgR0xfRkFMU0UpOwogICAgIFNjb3BlZEJ1ZmZlckJpbmRpbmcgc2NvcGVkUGl4ZWxVbnBh
Y2tCdWZmZXJSZXNldChHTF9QSVhFTF9VTlBBQ0tfQlVGRkVSLCAwLCBtX2lzRm9yV2ViR0wyKTsK
IAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSByZXNoYXBlRkJPcyhJbnRTaXplKHdpZHRoLCBo
ZWlnaHQpKTsKQEAgLTI3ODIsNyArMjc4MSw3IEBAIEdDR0xib29sZWFuIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OmlzU3luYyhHQ0dMc3luYyBzeW5jKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJy
ZW50KCkpCiAgICAgICAgIHJldHVybiBHTF9GQUxTRTsKIAotICAgIHJldHVybiBHTF9Jc1N5bmMo
c3luYyk7CisgICAgcmV0dXJuIEdMX0lzU3luYyhzdGF0aWNfY2FzdDxHTHN5bmM+KHN5bmMpKTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkZWxldGVTeW5jKEdDR0xzeW5jIHN5
bmMpCkBAIC0yNzkwLDcgKzI3ODksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRl
bGV0ZVN5bmMoR0NHTHN5bmMgc3luYykKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBHTF9EZWxldGVTeW5jKHN5bmMpOworICAgIEdMX0RlbGV0
ZVN5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihzeW5jKSk7CiB9CiAKIEdDR0xlbnVtIEdyYXBoaWNz
Q29udGV4dEdMQU5HTEU6OmNsaWVudFdhaXRTeW5jKEdDR0xzeW5jIHN5bmMsIEdDR0xiaXRmaWVs
ZCBmbGFncywgR0NHTHVpbnQ2NCB0aW1lb3V0KQpAQCAtMjc5OCw3ICsyNzk3LDcgQEAgR0NHTGVu
dW0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6Y2xpZW50V2FpdFN5bmMoR0NHTHN5bmMgc3luYywg
R0NHTGJpdGZpZWxkIGZsYWcKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAg
ICByZXR1cm4gR0xfV0FJVF9GQUlMRUQ7CiAKLSAgICByZXR1cm4gR0xfQ2xpZW50V2FpdFN5bmMo
c3luYywgZmxhZ3MsIHRpbWVvdXQpOworICAgIHJldHVybiBHTF9DbGllbnRXYWl0U3luYyhzdGF0
aWNfY2FzdDxHTHN5bmM+KHN5bmMpLCBmbGFncywgdGltZW91dCk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMoR0NHTHN5bmMgc3luYywgR0NHTGJpdGZpZWxkIGZs
YWdzLCBHQ0dMaW50NjQgdGltZW91dCkKQEAgLTI4MDYsNyArMjgwNSw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRTo6d2FpdFN5bmMoR0NHTHN5bmMgc3luYywgR0NHTGJpdGZpZWxkIGZs
YWdzLCBHQ0dMaW50CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgR0xfV2FpdFN5bmMoc3luYywgZmxhZ3MsIHRpbWVvdXQpOworICAgIEdMX1dh
aXRTeW5jKHN0YXRpY19jYXN0PEdMc3luYz4oc3luYyksIGZsYWdzLCB0aW1lb3V0KTsKIH0KIAog
R0NHTGludCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpnZXRTeW5jaShHQ0dMc3luYyBzeW5jLCBH
Q0dMZW51bSBwbmFtZSkKQEAgLTI4MTUsNyArMjgxNCw3IEBAIEdDR0xpbnQgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6Z2V0U3luY2koR0NHTHN5bmMgc3luYywgR0NHTGVudW0gcG5hbWUpCiAgICAg
aWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAg
R0xfR2V0U3luY2l2KHN5bmMsIHBuYW1lLCAxLCBudWxscHRyLCAmdmFsdWUpOworICAgIEdMX0dl
dFN5bmNpdihzdGF0aWNfY2FzdDxHTHN5bmM+KHN5bmMpLCBwbmFtZSwgMSwgbnVsbHB0ciwgJnZh
bHVlKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKQEAgLTI5NzYsNyArMjk3NSw3IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVwZGF0ZU9sZGVzdEZyYW1lKCkKICAgICAg
ICAgLy8gVGhpcyBtZWFucyB0aGUgY3JlYXRpb24gb2YgdGhpcyBmZW5jZSBoYXMgYWxyZWFkeSBi
ZWVuIGZsdXNoZWQuCiAgICAgICAgIGZsYWdzID0gMDsKICNlbmRpZgotICAgICAgICBHTGVudW0g
cmVzdWx0ID0gR0xfQ2xpZW50V2FpdFN5bmMoZmVuY2UsIGZsYWdzLCBtYXhGcmFtZUR1cmF0aW9u
Lm5hbm9zZWNvbmRzQXM8R0x1aW50NjQ+KCkpOworICAgICAgICBHTGVudW0gcmVzdWx0ID0gR0xf
Q2xpZW50V2FpdFN5bmMoc3RhdGljX2Nhc3Q8R0xzeW5jPihmZW5jZS5nZXQoKSksIGZsYWdzLCBt
YXhGcmFtZUR1cmF0aW9uLm5hbm9zZWNvbmRzQXM8R0x1aW50NjQ+KCkpOwogICAgICAgICBBU1NF
UlQocmVzdWx0ICE9IEdMX1dBSVRfRkFJTEVEKTsKICAgICAgICAgc3VjY2VzcyA9IHJlc3VsdCAh
PSBHTF9XQUlUX0ZBSUxFRCAmJiByZXN1bHQgIT0gR0xfVElNRU9VVF9FWFBJUkVEOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCAyZmZmNzUwYTlhNWIwMzU5MTMwMWU1
OWY2ZGRmNWNiMTY2NjNlNmM1Li44MDMxMWY0YzljODI4MzNkOTIzODFlYzE2MGEyZGJmMGU0ZTAy
ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC02OCw4ICs2OCw4IEBAIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgOiBwdWJsaWMgR3JhcGhp
Y3NDb250ZXh0R0wgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMQU5H
TEUoKTsKIAotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBsYXRmb3JtRGlz
cGxheSgpIGNvbnN0OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZv
cm1Db25maWcoKSBjb25zdDsKKyAgICBHQ0dMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25z
dDsKKyAgICBHQ0dMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CiAgICAgR0NHTGVudW0g
ZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKICAgICBzdGF0aWMgR0NHTGVudW0gZHJhd2lu
Z0J1ZmZlclRleHR1cmVUYXJnZXRRdWVyeUZvckRyYXdpbmdUYXJnZXQoR0NHTGVudW0gZHJhd2lu
Z1RhcmdldCk7CiAgICAgc3RhdGljIEdDR0xpbnQgRUdMRHJhd2luZ0J1ZmZlclRleHR1cmVUYXJn
ZXRGb3JEcmF3aW5nVGFyZ2V0KEdDR0xlbnVtIGRyYXdpbmdUYXJnZXQpOwpAQCAtMzYzLDkgKzM2
Myw5IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkUmVuZGVy
aW5nUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4g
cmVhZENvbXBvc2l0ZWRSZXN1bHRzRm9yUGFpbnRpbmcoKTsKIAotICAgIGNvbnN0ZXhwciBzdGF0
aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBFR0xfREVGQVVMVF9ESVNQ
TEFZOworICAgIGNvbnN0ZXhwciBzdGF0aWMgR0NHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHRE
aXNwbGF5ID0gZ2NHTERlZmF1bHREaXNwbGF5OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGNv
bnN0ZXhwciBzdGF0aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdE9wZW5HTERpc3BsYXkg
PSBFR0xfQ0FTVChFR0xOYXRpdmVEaXNwbGF5VHlwZSwgLTEpOworICAgIGNvbnN0ZXhwciBzdGF0
aWMgR0NHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHRPcGVuR0xEaXNwbGF5ID0gc3RhdGljX2Nh
c3Q8R0NHTE5hdGl2ZURpc3BsYXlUeXBlPigtMSk7CiAgICAgc3RhdGljX2Fzc2VydChkZWZhdWx0
RGlzcGxheSAhPSBkZWZhdWx0T3BlbkdMRGlzcGxheSk7CiAjZW5kaWYKIApAQCAtNDA2LDcgKzQw
Niw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3Nh
cnkoY29uc3QgSW50UmVjdCYgPSBJbnRSZWN0KCkpOwogICAgIHZvaWQgYXR0YWNoRGVwdGhBbmRT
dGVuY2lsQnVmZmVySWZOZWVkZWQoR0NHTHVpbnQgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQs
IGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RhdGlj
IGJvb2wgbWFrZUN1cnJlbnQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTERpc3BsYXksIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0wpOworICAgIHN0YXRpYyBib29sIG1ha2VDdXJyZW50KEdDR0xE
aXNwbGF5LCBHQ0dMQ29udGV4dCk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgcmVzaGFwZURp
c3BsYXlCdWZmZXJCYWNraW5nKCkgPSAwOwogCkBAIC00MzksNyArNDM5LDcgQEAgcHJvdGVjdGVk
OgogICAgIC8vIEF0dGFjaGVzIG1fdGV4dHVyZSB3aGVuIG1fcHJlc2VydmVEcmF3aW5nQnVmZmVy
VGV4dHVyZSBpcyBub24temVyby4KICAgICBHQ0dMdWludCBtX3ByZXNlcnZlRHJhd2luZ0J1ZmZl
ckZCTyB7IDAgfTsKICAgICAvLyBRdWVyaWVkIGF0IGRpc3BsYXkgc3RhcnR1cC4KLSAgICBFR0xp
bnQgbV9kcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCB7IC0xIH07CisgICAgR0NHTGludCBtX2Ry
YXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0IHsgLTEgfTsKICAgICAvLyBFcnJvcnMgcmFpc2VkIGJ5
IHN5bnRoZXNpemVHTEVycm9yKCkuCiAgICAgTGlzdEhhc2hTZXQ8R0NHTGVudW0+IG1fc3ludGhl
dGljRXJyb3JzOwogICAgIGJvb2wgbV9pc0ZvcldlYkdMMiB7IGZhbHNlIH07CkBAIC00NTQsOSAr
NDU0LDkgQEAgcHJvdGVjdGVkOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIEZJWE1FOiBN
b3ZlIHRoZXNlIHRvIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuCiAgICAgR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47Ci0gICAgRUdMRGlzcGxheSBtX2Rpc3Bs
YXlPYmogeyBudWxscHRyIH07Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBtX2NvbnRl
eHRPYmogeyBudWxscHRyIH07Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBt
X2NvbmZpZ09iaiB7IG51bGxwdHIgfTsKKyAgICBHQ0dMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBu
dWxscHRyIH07CisgICAgR0NHTENvbnRleHQgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OworICAg
IEdDR0xDb25maWcgbV9jb25maWdPYmogeyBudWxscHRyIH07CiAgICAgLy8gQmFja2luZyBzdG9y
ZSBmb3IgdGhlIHRoZSBidWZmZXIgd2hpY2ggaXMgZXZlbnR1YWxseSB1c2VkIGZvciBkaXNwbGF5
LgogICAgIC8vIFdoZW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyID09IGZhbHNlLCB0aGlzIGlzIHRo
ZSBkcmF3aW5nIGJ1ZmZlciBiYWNraW5nIHN0b3JlLgogICAgIC8vIFdoZW4gcHJlc2VydmVEcmF3
aW5nQnVmZmVyID09IHRydWUsIHRoaXMgaXMgYmxpdHRlZCB0byBkdXJpbmcgZGlzcGxheSBwcmVw
YXJlLgpAQCAtNDczLDcgKzQ3Myw3IEBAIHByb3RlY3RlZDoKICAgICBjbGFzcyBFR0xJbWFnZUJh
Y2tpbmcgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAg
ICAgRUdMSW1hZ2VCYWNraW5nKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5KTsKKyAg
ICAgICAgRUdMSW1hZ2VCYWNraW5nKEdDR0xEaXNwbGF5KTsKICAgICAgICAgfkVHTEltYWdlQmFj
a2luZygpOwogCiAgICAgICAgIGJvb2wgcmVzZXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBib29s
IGhhc0FscGhhKTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCk7CiAKLSAgICAgICAgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTERpc3BsYXkgbV9kaXNwbGF5OworICAgICAgICBHQ0dMRGlzcGxheSBtX2Rp
c3BsYXk7CiAKICAgICAgICAgZ2JtX2JvKiBtX0JPIHsgbnVsbHB0ciB9OwogICAgICAgICBpbnQg
bV9GRCB7IC0xIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzljZTViMWNhN2M2YmJjMWMxNTZiZWU0ZTZmZTk5NjkyYTQwZTYw
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKLSNpbmNsdWRlICJUZW1wb3JhcnlB
TkdMRVNldHRpbmcuaCIKLQotI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVRlbXBvcmFyeUFOR0xFU2V0dGluZzo6VGVtcG9yYXJ5QU5HTEVTZXR0aW5n
KEdMZW51bSBjYXBhYmlsaXR5LCBHTGVudW0gc2NvcGVkU3RhdGUpCi0gICAgOiBtX2NhcGFiaWxp
dHkoY2FwYWJpbGl0eSkKLSAgICAsIG1fc2NvcGVkU3RhdGUoc2NvcGVkU3RhdGUpCi17Ci0gICAg
bV9vcmlnaW5hbFN0YXRlID0gR0xfSXNFbmFibGVkKG1fY2FwYWJpbGl0eSk7Ci0gICAgaWYgKG1f
b3JpZ2luYWxTdGF0ZSA9PSBtX3Njb3BlZFN0YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoR0xfVFJVRSA9PSBtX3Njb3BlZFN0YXRlKQotICAgICAgICBHTF9FbmFibGUobV9jYXBhYmls
aXR5KTsKLSAgICBlbHNlCi0gICAgICAgIEdMX0Rpc2FibGUobV9jYXBhYmlsaXR5KTsKLX0KLQot
VGVtcG9yYXJ5QU5HTEVTZXR0aW5nOjp+VGVtcG9yYXJ5QU5HTEVTZXR0aW5nKCkKLXsKLSAgICBp
ZiAobV9vcmlnaW5hbFN0YXRlID09IG1fc2NvcGVkU3RhdGUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChHTF9UUlVFID09IG1fb3JpZ2luYWxTdGF0ZSkKLSAgICAgICAgR0xfRW5hYmxlKG1f
Y2FwYWJpbGl0eSk7Ci0gICAgZWxzZQotICAgICAgICBHTF9EaXNhYmxlKG1fY2FwYWJpbGl0eSk7
Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9yYXJ5QU5H
TEVTZXR0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA0Nzcw
OTc1MzQ0ODEyNGU4ZjJkYzY5ZTJhMDIzZTk3ODI5Y2YyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIK
LQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LS8vIFRlbXBvcmFyeUFOR0xFU2V0dGluZzw+IGlzIHVzZWZ1bCBmb3IgdGVtcG9yYXJpbHkgZGlz
YWJsaW5nIChvciBlbmFibGluZykgYSBwYXJ0aWN1bGFyIE9wZW5HTAotLy8gZmVhdHVyZSB3aXRo
IGEgcGFydGljdWxhciBzY29wZS4gQSBUZW1wb3JhcnlBTkdMRVNldHRpbmc8PiBvYmplY3QgcmV0
dXJucyB0aGUgZmxhZyB0byBpdHMgb3JpZ2luYWwKLS8vIHZhbHVlIHVwb24gZGVzdHJ1Y3Rpb24s
IG1ha2luZyBpdCBhbiBhbHRlcm5hdGl2ZSB0byBjaGVja2luZywgY2xlYXJpbmcsIGFuZCByZXNl
dHRpbmcgZWFjaCBmbGFnCi0vLyBhdCBhbGwgb2YgYSBibG9jaydzIGV4aXQgcG9pbnRzLgotLy8K
LS8vIEJhc2VkIG9uIFNldEZvclNjb3BlPD4KLQotY2xhc3MgVGVtcG9yYXJ5QU5HTEVTZXR0aW5n
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUZW1wb3JhcnlBTkdMRVNldHRpbmcpOwotcHVi
bGljOgotICAgIFRlbXBvcmFyeUFOR0xFU2V0dGluZyhHQ0dMZW51bSBjYXBhYmlsaXR5LCBHQ0dM
ZW51bSBzY29wZWRTdGF0ZSk7Ci0gICAgflRlbXBvcmFyeUFOR0xFU2V0dGluZygpOwotCi1wcml2
YXRlOgotICAgIGNvbnN0IEdDR0xlbnVtIG1fY2FwYWJpbGl0eTsKLSAgICBjb25zdCBHQ0dMZW51
bSBtX3Njb3BlZFN0YXRlOwotICAgIEdDR0xlbnVtIG1fb3JpZ2luYWxTdGF0ZTsKLX07Ci0KLX0K
LQotdXNpbmcgV2ViQ29yZTo6VGVtcG9yYXJ5QU5HTEVTZXR0aW5nOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRpZXNDb2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGll
c0NvY29hLmNwcAppbmRleCBlOTkzYjc3NjcxODlmZTdlZGY2YzI2NTkyMTVhY2UzYzJlYTA2OTM5
Li40MDdlODI4NDA3ZmJiMDlkN2VlZWJhMjg2ODg0N2UzZGFmNmYwMThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0aWxpdGllc0NvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdMRVV0
aWxpdGllc0NvY29hLmNwcApAQCAtMjcsMTIgKzI3LDIzIEBACiAjaW5jbHVkZSAiQU5HTEVVdGls
aXRpZXNDb2NvYS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotCisjaW5jbHVkZSAiQU5HTEVIZWFk
ZXJzLmgiCisjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgorCitXVEZfV0VBS19MSU5LX0ZP
UkNFX0lNUE9SVChFR0xfSW5pdGlhbGl6ZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCogY3JlYXRlUGJ1ZmZlckFuZEF0dGFjaElPU3VyZmFjZShFR0xEaXNwbGF5IGRpc3BsYXksIEVH
TENvbmZpZyBjb25maWcsIEdMZW51bSB0YXJnZXQsIEVHTGludCB1c2FnZUhpbnQsIEdMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSB0eXBl
LCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0x1aW50IHBsYW5lKQorYm9vbCBwbGF0Zm9ybUlzQU5H
TEVBdmFpbGFibGUoKQoreworICAgIC8vIFRoZSBBTkdMRSBpcyB3ZWFrIGxpbmtlZCBpbiBmdWxs
LCBhbmQgdGhlIEVHTF9Jbml0aWFsaXplIGlzIGV4cGxpY2l0bHkgd2VhayBsaW5rZWQgYWJvdmUK
KyAgICAvLyBzbyB0aGF0IHdlIGNhbiBkZXRlY3QgdGhlIGNhc2Ugd2hlcmUgQU5HTEUgaXMgbm90
IHByZXNlbnQuCisgICAgcmV0dXJuICEhRUdMX0luaXRpYWxpemU7Cit9CisKK3ZvaWQqIGNyZWF0
ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZhY2UoR0NHTERpc3BsYXkgZGlzcGxheSwgR0NHTENvbmZp
ZyBjb25maWcsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCB1c2FnZUhpbnQsIEdDR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVt
IHR5cGUsIElPU3VyZmFjZVJlZiBzdXJmYWNlLCBHQ0dMdWludCBwbGFuZSkKIHsKICAgICBhdXRv
IGVnbFRleHR1cmVUYXJnZXQgPSB0YXJnZXQgPT0gR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUg
PyBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUgOiBFR0xfVEVYVFVSRV8yRDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVVdGlsaXRp
ZXNDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQU5HTEVV
dGlsaXRpZXNDb2NvYS5oCmluZGV4IDkzYmE0ZTBkYzkxMzJlODU4Nzc1ZjljMjViYWQ2NzQ4Yzdj
ODY5YjguLjBhY2Q3MjFkMDg3YWEyZjdiODQzNmNiZjM0NTU0YTU1OWRlMTQzNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0FOR0xFVXRpbGl0aWVz
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BTkdM
RVV0aWxpdGllc0NvY29hLmgKQEAgLTI3LDE2ICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKFdFQkdM
KQogCi0jaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dM
LmgiCiAKIHR5cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gUmV0dXJucyBhIGhhbmRsZSB3aGljaCwgaWYgbm9uLW51bGws
IG11c3QgYmUgcmVsZWFzZWQgd2l0aCBkZXN0cm95UGJ1ZmZlckFuZERldGFjaElPU3VyZmFjZSgp
Lgotdm9pZCogY3JlYXRlUGJ1ZmZlckFuZEF0dGFjaElPU3VyZmFjZShFR0xEaXNwbGF5LCBFR0xD
b25maWcsIEdMZW51bSB0YXJnZXQsIEVHTGludCB1c2FnZUhpbnQsIEdMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSB0eXBlLCBJT1N1cmZh
Y2VSZWYsIEdMdWludCBwbGFuZSk7Cit2b2lkKiBjcmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJm
YWNlKEdDR0xEaXNwbGF5LCBHQ0dMQ29uZmlnLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgdXNh
Z2VIaW50LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYsIEdDR0x1aW50IHBsYW5lKTsK
IAotdm9pZCBkZXN0cm95UGJ1ZmZlckFuZERldGFjaElPU3VyZmFjZShFR0xEaXNwbGF5LCB2b2lk
KiBoYW5kbGUpOwordm9pZCBkZXN0cm95UGJ1ZmZlckFuZERldGFjaElPU3VyZmFjZShHQ0dMRGlz
cGxheSwgdm9pZCogaGFuZGxlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQppbmRleCAzNmU4ZjBmYjAyOTM3N2I0ZWZmZTQwNTM1MjM3ZTU4MjIyZmJmNzcxLi40N2Q3MTA2
MTExYzViNjFjY2I0NWMyN2EwZDFmMzQ0YTFhNTFjMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KQEAgLTI4LDE5ICsyOCwyMCBAQAogI2lmIEVOQUJMRShXRUJHTCkKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIKIAorI2ltcG9ydCAiQU5HTEVIZWFkZXJzLmgi
CiAjaW1wb3J0ICJBTkdMRVV0aWxpdGllcy5oIgogI2ltcG9ydCAiQU5HTEVVdGlsaXRpZXNDb2Nv
YS5oIgogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAj
aW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9y
dCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Ci0jaW1wb3J0IDx3dGYvZGFyd2luL1dl
YWtMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtNTcsMTcgKzU4LDggQEAKICNpbmNsdWRlICJNZWRpYVNhbXBsZUFW
Rk9iakMuaCIKICNlbmRpZgogCi1XVEZfV0VBS19MSU5LX0ZPUkNFX0lNUE9SVChFR0xfSW5pdGlh
bGl6ZSk7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBwbGF0Zm9ybUlzQU5HTEVBdmFp
bGFibGUoKQotewotICAgIC8vIFRoZSBBTkdMRSBpcyB3ZWFrIGxpbmtlZCBpbiBmdWxsLCBhbmQg
dGhlIEVHTF9Jbml0aWFsaXplIGlzIGV4cGxpY2l0bHkgd2VhayBsaW5rZWQgYWJvdmUKLSAgICAv
LyBzbyB0aGF0IHdlIGNhbiBkZXRlY3QgdGhlIGNhc2Ugd2hlcmUgQU5HTEUgaXMgbm90IHByZXNl
bnQuCi0gICAgcmV0dXJuICEhRUdMX0luaXRpYWxpemU7Ci19Ci0KIC8vIEluIGlzQ3VycmVudENv
bnRleHRQcmVkaWN0YWJsZSgpID09IHRydWUgY2FzZSB0aGlzIHZhcmlhYmxlIGlzIGFjY2Vzc2Vk
IGluIHNpbmdsZS10aHJlYWRlZCBtYW5uZXIuCiAvLyBJbiBpc0N1cnJlbnRDb250ZXh0UHJlZGlj
dGFibGUoKSA9PSBmYWxzZSBjYXNlIHRoaXMgdmFyaWFibGUgaXMgYWNjZXNzZWQgZnJvbSBtdWx0
aXBsZSB0aHJlYWRzIGJ1dCBhbHdheXMgc2VxdWVudGlhbGx5CiAvLyBhbmQgaXQgYWx3YXlzIGNv
bnRhaW5zIG51bGxwdHIgYW5kIG51bGxwdHIgaXMgYWx3YXlzIHdyaXR0ZW4gdG8gaXQuCkBAIC01
OTksNyArNTkxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpiaW5kRGlzcGxheUJ1
ZmZlckJhY2tpbmcoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjptYWtlQ3VycmVudChQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMRGlzcGxheSBkaXNwbGF5LCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
IGNvbnRleHQpCitib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6Om1ha2VDdXJyZW50KEdDR0xE
aXNwbGF5IGRpc3BsYXksIEdDR0xDb250ZXh0IGNvbnRleHQpCiB7CiAgICAgY3VycmVudENvbnRl
eHQgPSBudWxscHRyOwogICAgIHJldHVybiBFR0xfTWFrZUN1cnJlbnQoZGlzcGxheSwgRUdMX05P
X1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBjb250ZXh0KTsKQEAgLTgwMSwxMiArNzkzLDEyIEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQ
bGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiB9CiAjZW5kaWYKIAotUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHRHTERpc3BsYXkgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkg
Y29uc3QKK0dDR0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxh
eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheU9iajsKIH0KIAotUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNvbmZp
ZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtQ29u
ZmlnKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb25maWdPYmo7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyYzk4ZjlkOTI5MjNjMDQ5YTk0YjM0OWI0Zjc3NTI5NDc3
MTllMjI4Li5hODNjZmEyOTU3MDg2MGYzMzkzNGEzODcyODZkNjliNTI4MDRhNTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHTCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW5jbHVk
ZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXNDb2NvYS5oIgogI2lu
Y2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29u
dGV4dEdMQ1ZDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmgKaW5kZXggOWUxYjQ0NDlkM2I0YmI5ZjVjMGQ3YWU4ZDg1
ZjMwZWYxZDA0YmE4YS4uNzdkZWRkNDg3MjkxMTk2MTEzNTdiYmRkYjZjYzY4YzM4ODliYjAwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKQEAgLTUxLDkgKzUxLDkgQEAgcHJpdmF0ZToK
IAogCiAgICAgR3JhcGhpY3NDb250ZXh0R0xDb2NvYSYgbV9vd25lcjsKLSAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMRGlzcGxheSBtX2Rpc3BsYXkgeyBudWxscHRyIH07Ci0gICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTCBtX2NvbnRleHQgeyBudWxscHRyIH07Ci0gICAgUGxhdGZvcm1H
cmFwaGljc0NvbnRleHRHTENvbmZpZyBtX2NvbmZpZyB7IG51bGxwdHIgfTsKKyAgICBHQ0dMRGlz
cGxheSBtX2Rpc3BsYXkgeyBudWxscHRyIH07CisgICAgR0NHTENvbnRleHQgbV9jb250ZXh0IHsg
bnVsbHB0ciB9OworICAgIEdDR0xDb25maWcgbV9jb25maWcgeyBudWxscHRyIH07CiAKICAgICBQ
bGF0Zm9ybUdMT2JqZWN0IG1fZnJhbWVidWZmZXIgeyAwIH07CiAgICAgUGxhdGZvcm1HTE9iamVj
dCBtX3l1dlZlcnRleEJ1ZmZlciB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKaW5kZXggYzYxZWViYzMwNjc5NzYz
NWJmMjVjODkwZGE5OWNlNWJjZTMyMjBiMy4uMjYyYjJmYjkwMjM3ODAyY2RmMDVhMjc4YjQ0MzFl
NmU4MDg5YjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIEdMQ29udGV4
dEVHTDo6c3dhcEludGVydmFsKGludCBpbnRlcnZhbCkKICAgICBlZ2xTd2FwSW50ZXJ2YWwobV9k
aXNwbGF5LmVnbERpc3BsYXkoKSwgaW50ZXJ2YWwpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMIEdMQ29udGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KCkKK0dDR0xDb250ZXh0IEdMQ29u
dGV4dEVHTDo6cGxhdGZvcm1Db250ZXh0KCkKIHsKICAgICByZXR1cm4gbV9jb250ZXh0OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5oCmluZGV4IDNjM2EzZDdmMDU3NzNhZGVjMGM2Y2Q4NzFlZmJhNGQ2ZGIzNWM2NDEuLjU5OGIw
YjY3MzI2YTY2NDEyZDY1NDJiZDliZTkxOGM0ZmQ3NjdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTg5LDcgKzg5
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0g
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVycmlkZTsK
KyAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVycmlkZTsKIAogICAgIGVudW0g
RUdMU3VyZmFjZVR5cGUgeyBQYnVmZmVyU3VyZmFjZSwgV2luZG93U3VyZmFjZSwgUGl4bWFwU3Vy
ZmFjZSwgU3VyZmFjZWxlc3MgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAppbmRleCA1ZmJmYWI2Y2QwZjMxMTNmZjA0
NDdiYjNlMWM2OWYxNzc4MDM0MTNhLi45ODM5ZDliYTlhMmU1YTBjM2RiZjA0YmY0ZDk0ZTAzYTNj
NGM5Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgv
R0xDb250ZXh0R0xYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgvR0xDb250ZXh0R0xYLmNwcApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgR0xDb250ZXh0R0xY
Ojpzd2FwSW50ZXJ2YWwoaW50IGludGVydmFsKQogICAgIGdsWFN3YXBJbnRlcnZhbFNHSShpbnRl
cnZhbCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgR0xDb250ZXh0R0xYOjpwbGF0
Zm9ybUNvbnRleHQoKQorR0NHTENvbnRleHQgR0xDb250ZXh0R0xYOjpwbGF0Zm9ybUNvbnRleHQo
KQogewogICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKaW5kZXggZDNkYjM1ZDY1
NjExYzE4ZTBhMDViY2ExMDQzZTE5ZGZhNDk0NzI0Mi4uODIyMmQ0OTYzZDA4YWVmNmNjMjU4ZTMy
ZTQ4MWRjNTgxOTgyMzIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dseC9HTENvbnRleHRHTFguaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3dhcEludGVydmFsKGludCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0VHTENvbnRleHQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBHQ0dMQ29udGV4dCBw
bGF0Zm9ybUNvbnRleHQoKSBvdmVycmlkZTsKIAogICAgIEdMQ29udGV4dEdMWChQbGF0Zm9ybURp
c3BsYXkmLCBYVW5pcXVlR0xYQ29udGV4dCYmLCBHTE5hdGl2ZVdpbmRvd1R5cGUpOwogICAgIEdM
Q29udGV4dEdMWChQbGF0Zm9ybURpc3BsYXkmLCBYVW5pcXVlR0xYQ29udGV4dCYmLCBYVW5pcXVl
R0xYUGJ1ZmZlciYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5j
cHAKaW5kZXggMDBmOTllODM3NGM0ZGExMDE3Y2E0ZDIzMTVkY2ZhNDQ3MmUyOTA2My4uNzU0ZDYy
NDQ4NmVjMDRlYzk1ZWYxM2YwZmQ1NzIxOTE0MGU1YTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Bs
YXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgYm9vbCBQbGF0Zm9y
bURpc3BsYXk6OnRyeUVuc3VyZUdzdEdMQ29udGV4dCgpIGNvbnN0CiAgICAgYXV0byogc2hhcmVk
Q29udGV4dCA9IGNvbnN0X2Nhc3Q8UGxhdGZvcm1EaXNwbGF5Kj4odGhpcyktPnNoYXJpbmdHTENv
bnRleHQoKTsKICAgICBpZiAoIXNoYXJlZENvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIGNvbnRleHRIYW5kbGUgPSBzaGFyZWRDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBHQ0dMQ29udGV4dCBjb250ZXh0SGFuZGxlID0g
c2hhcmVkQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0SGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTEFOR0xFTGF5ZXIuY3BwCmluZGV4IDM4YzA0ZDFlNmRlZTM2ZjFkMjAyYTlmODliMjQyNTdj
YjY1NDRlMDguLjI1ZTJiOTFjY2M0Yjk4ZjM5MzQwYTE1ZWQwNjQ1MTIxZjE0ZWYwMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQ0dMQU5HTEVMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcApAQCAtMjE0LDE3
ICsyMTQsMTcgQEAgYm9vbCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjptYWtlQ29udGV4
dEN1cnJlbnQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dEdMIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0
CitHQ0dMQ29udGV4dCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAKLVBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3Jt
RGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0
OjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXk7CiB9CiAK
LVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgR0NHTEFOR0xFTGF5ZXI6OkFOR0xFQ29u
dGV4dDo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENvbmZpZyBHQ0dMQU5HTEVMYXllcjo6
QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbmZpZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29u
ZmlnOwogfQpAQCAtMjQ4LDE5ICsyNDgsMTkgQEAgYm9vbCBHQ0dMQU5HTEVMYXllcjo6bWFrZUNv
bnRleHRDdXJyZW50KCkKIAogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIEdDR0xBTkdM
RUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAorR0NHTENvbnRleHQgR0NHTEFOR0xFTGF5
ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fYW5nbGVDb250ZXh0
KTsKICAgICByZXR1cm4gbV9hbmdsZUNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogfQogCi1Q
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1E
aXNwbGF5KCkgY29uc3QKK0dDR0xEaXNwbGF5IEdDR0xBTkdMRUxheWVyOjpwbGF0Zm9ybURpc3Bs
YXkoKSBjb25zdAogewogICAgIEFTU0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1f
YW5nbGVDb250ZXh0LT5wbGF0Zm9ybURpc3BsYXkoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHRHTENvbmZpZyBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NH
TENvbmZpZyBHQ0dMQU5HTEVMYXllcjo6cGxhdGZvcm1Db25maWcoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmgK
aW5kZXggNGY4ZGY2ZWNlMDZhNTc0MmVkM2E3YjhmN2VhMGU1MGQwY2IwNDY0Mi4uZGY4M2E4OTRk
ZDUwNjAxODVhYzk5NmNmNzE0ZWFiZGI3NjVlZDAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xBTkdMRUxheWVyLmgKQEAgLTYyLDkgKzYyLDkgQEAgcHVibGljOgogCiAgICAg
ICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAjaWYgRU5BQkxFKFdFQkdMKQotICAgICAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwotICAg
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBj
b25zdDsKLSAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0OworICAgICAgICBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRleHQoKSBjb25z
dDsKKyAgICAgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7CisgICAgICAg
IEdDR0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsKICNlbmRpZgogCiAgICAgcHJpdmF0
ZToKQEAgLTgwLDkgKzgwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdDR0xBTkdMRUxheWVy
KCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0R0wgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7Ci0gICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3Q7Ci0gICAgUGxhdGZvcm1H
cmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OworICAgIEdDR0xD
b250ZXh0IHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworICAgIEdDR0xEaXNwbGF5IHBsYXRmb3Jt
RGlzcGxheSgpIGNvbnN0OworICAgIEdDR0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdDsK
IAogICAgIENvbnRlbnRMYXllciYgY29udGVudExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZW50TGF5ZXI7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVkZWQoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQ0dMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggNGU0YTJiM2JlNTJkYzM2NTcw
MGM3YjU5Yzk1NTMyMmFkZWU4NjYwNi4uMDEwY2M3YzMzYmVjYmIyYjhmNmFiMDcwZmQ3MzVlZmFi
MDBlMjdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgYm9vbCBHQ0dMTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgcmV0
dXJuIG1fZ2xDb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTCBHQ0dMTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CitHQ0dMQ29u
dGV4dCBHQ0dMTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
Z2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oCmluZGV4IDE5NjZjNzlmY2JiYWRlZTM2
ZDcwYWQ1ZjBhNGY3MGVkN2YzMWRjMzcuLmFiMWExNjQ4MTdkYjYxOTI4OTY1MTczYzQwYmYyMzEx
ZDcxNTA0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogCiAgICAgQ29udGVudExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRlbnRMYXllcjsgfQogICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgcGxhdGZv
cm1Db250ZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBHQ0dMQ29udGV4dCBwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdDsKIAogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRlZCgpIG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xF
LmNwcAppbmRleCBhMmU2NzNmYzQ2MzRkOGVlZTZiY2U1ZWE1ZTk4OTdmYTdlNjNmODcxLi4yMDI4
YTk1ODY2MzU3ZjBkOTQwMDRiYWY4NmUwNTVlMjU1ZjE3N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJl
TWFwcGVyQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKQEAgLTEyNSw3ICsx
MjUsNyBAQCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaQogfQogCiAjaWYgVVNFKE5JQ09TSUEpCi1H
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpFR0xJbWFnZUJhY2tpbmc6OkVHTEltYWdlQmFja2luZyhQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBkaXNwbGF5KQorR3JhcGhpY3NDb250ZXh0
R0xBTkdMRTo6RUdMSW1hZ2VCYWNraW5nOjpFR0xJbWFnZUJhY2tpbmcoR0NHTERpc3BsYXkgZGlz
cGxheSkKICAgICA6IG1fZGlzcGxheShkaXNwbGF5KQogewogfQpAQCAtMjMxLDcgKzIzMSw3IEBA
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKCkKICNlbmRp
ZgogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBHcmFwaGljc0NvbnRleHRH
TEFOR0xFOjpwbGF0Zm9ybURpc3BsYXkoKSBjb25zdAorR0NHTERpc3BsYXkgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6cGxhdGZvcm1EaXNwbGF5KCkgY29uc3QKIHsKICNpZiBVU0UoTklDT1NJQSkK
ICAgICByZXR1cm4gbV9uaWNvc2lhTGF5ZXItPnBsYXRmb3JtRGlzcGxheSgpOwpAQCAtMjQwLDcg
KzI0MCw3IEBAIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IEdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiAjZW5kaWYKIH0KIAotUGxhdGZvcm1H
cmFwaGljc0NvbnRleHRHTENvbmZpZyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0CitHQ0dMQ29uZmlnIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3Jt
Q29uZmlnKCkgY29uc3QKIHsKICNpZiBVU0UoTklDT1NJQSkKICAgICByZXR1cm4gbV9uaWNvc2lh
TGF5ZXItPnBsYXRmb3JtQ29uZmlnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NH
TFBsYXRmb3JtTGF5ZXIuY3BwCmluZGV4IDYyNjZlYWY5MjEwMzE3ZTY5YzYxYTQwMWI2N2ZlNGYw
M2JhYWIzZWIuLmU1MzM0ZWUyZjc1NzQ5MjVmMzg2M2I5NWY1MzFmZGM4MjYyOWZlYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwCkBAIC02Miwx
OSArNjIsMTkgQEAgYm9vbCBUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6Om1ha2VDb250
ZXh0Q3VycmVudCgpCiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBUZXh0dXJlTWFwcGVyR0NHTFBsYXRm
b3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CitHQ0dMQ29udGV4dCBUZXh0dXJlTWFw
cGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKG1fZ2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBUZXh0dXJlTWFwcGVy
R0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CitHQ0dMRGlzcGxheSBU
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtRGlzcGxheSgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBsYXRm
b3JtRGlzcGxheSgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIFRleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db25maWcoKSBjb25zdAorR0NHTENv
bmZpZyBUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29uZmlnKCkgY29u
c3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+
cGxhdGZvcm1Db25maWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXIuaAppbmRleCBlM2VlZDZiYjllMzY2NjI2OTM3MzVjMmNjZDEwY2UxYjdlNmQ2ZTNiLi5m
N2I4NTc0ZjhmMDMwZDMwZDY1MTFlNmI4ZDgwNGNkOWU1MDIyZDIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCkBAIC0zOCw5ICszOCw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIoKTsKIAogICAg
IGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdM
RGlzcGxheSBwbGF0Zm9ybURpc3BsYXkoKSBjb25zdDsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3Q7CisgICAgR0NHTENvbnRleHQgcGxh
dGZvcm1Db250ZXh0KCkgY29uc3Q7CisgICAgR0NHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkg
Y29uc3Q7CisgICAgR0NHTENvbmZpZyBwbGF0Zm9ybUNvbmZpZygpIGNvbnN0OwogCiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllclByb3h5PiBwcm94eSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApp
bmRleCAwNDIzNzVkNmI3YWU1ODFhNGJhZmRkNmQzZTE3NmIxM2U4Mzg5ZjUwLi5mZjI4NDVlZDQy
ZjM0N2E5YjhhYjg1NzIxZTYyZWViMTRlNTE3ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApA
QCAtMTMyLDEyICsxMzIsMTIgQEAgcHJvdGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICB1c2luZyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMID0gV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTsKKyAgICB1c2luZyBHQ0dMQ29udGV4dCA9IFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E7CiAjZWxzZQotICAgIHVzaW5nIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0R0wgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXI7
CisgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXI7CiAjZW5kaWYKICAgICAKLSAgICBSZWZQdHI8UGxhdGZvcm1HcmFwaGljc0NvbnRl
eHRHTD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOworICAg
IFJlZlB0cjxHQ0dMQ29udGV4dD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJl
YW1UaHJlYWQpOwogICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29u
dGV4dEdMSWRlbnRpZmllcjsKICAgICBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5k
ZXJpbmdCYWNrZW5kOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKaW5kZXggZDJiOTI5MWQwM2Mw
ODYyNTBmNmEyNTliYmVhOWZhZTQwYzQ0MDA1MS4uMmM5OTIzYTIxNThiZGQzMWE4MzNmNzI3YzY0
Y2NlNzdmNWQ0MDM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL3djL1dDU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy93Yy9XQ1NjZW5lLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldDQ29udGVudEJ1
ZmZlck1hbmFnZXIuaCIKICNpbmNsdWRlICJXQ1NjZW5lQ29udGV4dC5oIgogI2luY2x1ZGUgIldD
VXBhdGVJbmZvLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BTkdMRUhlYWRlcnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0dXJlTWFwcGVyTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMv
QXBwS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmgK
aW5kZXggMDVkYzIzNzgwMzQ5MTQ4ZGUxODRjZjAyMTE5YmZkZWVhMDRkMjMwYi4uZTQ2YjdmYzM3
YjljNGZkMzg2OWRlYmJkNzRjNmZkMjhiN2VhYmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL21hYy9BcHBLaXRTUEkuaApAQCAtMjksMTMgKzI5LDYgQEAKIAogI2RlZmluZSBDR0NP
TE9SVEFHR0VEUE9JTlRFUl9IXwogCi0jaWYgSEFWRShDUFAyMF9JTkNPTVBBVElCTEVfSU5URVJO
QUxfSEVBREVSUykKLSNpZm5kZWYgR0xfR0xFU19QUk9UT1RZUEVTCi0jZGVmaW5lIEdMX0dMRVNf
UFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19l
eHRfYXV0b2dlbi5oPgotI2VuZGlmCi0KICNpbXBvcnQgPEFwcEtpdC9OU0luc3BlY3RvckJhci5o
PgogI2ltcG9ydCA8QXBwS2l0L05TVGV4dElucHV0Q2xpZW50X1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFwcEtpdC9OU1dpbmRvd19Qcml2YXRlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9tYWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9zcGkvbWFjL0FwcGxpY2F0aW9uU2VydmljZXNTUEkuaAppbmRleCA2ZDRhMzE0NmU2
ZTk1NzE3NzE5YzYzZjJlZjJmNmQ5ZGU3NTQ1ZDc2Li5mMDc5NTE1NmM1Nzg2MmY4NDUwOWNjNWE0
YmNhZjgwZjJmZTcwM2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9t
YWMvQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL21hYy9BcHBsaWNhdGlvblNlcnZpY2VzU1BJLmgKQEAgLTMxLDEwICszMSw2IEBACiAKICNp
ZiBIQVZFKENQUDIwX0lOQ09NUEFUSUJMRV9JTlRFUk5BTF9IRUFERVJTKQogI2RlZmluZSBDR0NP
TE9SVEFHR0VEUE9JTlRFUl9IXwotI2lmbmRlZiBHTF9HTEVTX1BST1RPVFlQRVMKLSNkZWZpbmUg
R0xfR0xFU19QUk9UT1RZUEVTIDAKLSNlbmRpZgotI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50
c19nbGVzX2V4dF9hdXRvZ2VuLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2
aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERkxheWVyQ29udHJvbGxlclNQSS5oCmlu
ZGV4IDA3Y2QwZDkyODgxYjc1MDg2MDNmZWNmYTQ0MWIxNzk1MmNjMDZiZTAuLjY3ZjcyN2Q5OTZi
NTM5NTZiMWFiNDcwMmM5N2YyMjJiYjA1ZGMxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZMYXllckNvbnRyb2xsZXJTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGTGF5ZXJDb250cm9sbGVyU1BJLmgK
QEAgLTI3LDEzICsyNyw2IEBACiAKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspICYmIEhBVkUoQ1BQMjBfSU5DT01QQVRJQkxFX0lOVEVSTkFM
X0hFQURFUlMpCi0jaWZuZGVmIEdMX0dMRVNfUFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVTX1BS
T1RPVFlQRVMgMAotI2VuZGlmCi0jaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0
X2F1dG9nZW4uaD4KLSNlbmRpZgotCiAjaW1wb3J0IDxRdWFydHovUXVhcnR6Lmg+CiAKIEBjbGFz
cyBDUFJlYWRpbmdNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXggMzE0N2E0NWVhMjExMjdlYzAwMDk1MzhmYzE4MDFm
NjRjZDMwMDgyZi4uYWYxZjE1MTM0ODZiYTM3MzMzZGJjMzU5ZWNmZWM1NmRmYjdhNzVlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFs
LmgKQEAgLTI4LDEzICsyOCw2IEBACiAKIC8vIFRoaXMgaGVhZGVyIGNvbnRhaW5zIFdlYkZyYW1l
IGRlY2xhcmF0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGFueXdoZXJlIGluIFdlYktpdCwgYnV0IGFy
ZSBuZWl0aGVyIFNQSSBub3IgQVBJLgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYg
SEFWRShDUFAyMF9JTkNPTVBBVElCTEVfSU5URVJOQUxfSEVBREVSUykKLSNpZm5kZWYgR0xfR0xF
U19QUk9UT1RZUEVTCi0jZGVmaW5lIEdMX0dMRVNfUFJPVE9UWVBFUyAwCi0jZW5kaWYKLSNpbmNs
dWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgotI2VuZGlmCi0KICNp
bXBvcnQgIldlYkZyYW1lUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRBY3Rpb24uaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>