<?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>232804</bug_id>
          
          <creation_ts>2021-11-07 19:16:08 -0800</creation_ts>
          <short_desc>[WebGPU] Connect JS bindings code to internal WebGPU interface</short_desc>
          <delta_ts>2021-11-08 13:45:21 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812526</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-07 19:16:08 -0800</bug_when>
    <thetext>[WebGPU] Connect JS bindings code to internal WebGPU interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812527</commentid>
    <comment_count>1</comment_count>
      <attachid>443523</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-07 19:33:00 -0800</bug_when>
    <thetext>Created attachment 443523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812537</commentid>
    <comment_count>2</comment_count>
      <attachid>443526</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-07 21:32:40 -0800</bug_when>
    <thetext>Created attachment 443526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812815</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-08 13:44:56 -0800</bug_when>
    <thetext>Committed r285429 (243985@main): &lt;https://commits.webkit.org/243985@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443526.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812816</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-08 13:45:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85171257&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443523</attachid>
            <date>2021-11-07 19:33:00 -0800</date>
            <delta_ts>2021-11-07 21:43:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232804-20211107193259.patch</filename>
            <type>text/plain</type>
            <size>353980</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE1ODkxNTQzNzQxZTIz
MWQzMGRhNTZiZjlhODIxZTliZDkxMzI0ZC4uODcxODIxZWRiZWMyMWM1NjIzYzQwMjZlMWQ5YzU0
YjA4ODM3OTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5NyBAQAorMjAyMS0xMS0wNyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVd
IENvbm5lY3QgSlMgYmluZGluZ3MgY29kZSB0byBpbnRlcm5hbCBXZWJHUFUgaW50ZXJmYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIHRo
ZSBKYXZhc2NyaXB0IGJpbmRpbmdzIGNvZGUgZm9yIFdlYkdQVSwgYW5kIHdlIGhhdmUgb3VyIGlu
dGVybmFsIGludGVyZmFjZQorICAgICAgICBmb3IgV2ViR1BVIHRvbyAoaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjc5MikuIFRoZSBpbnRlcm5hbCBpbnRlcmZhY2UK
KyAgICAgICAgaXMgYSBidW5jaCBvZiB2aXJ0dWFsIGNsYXNzZXMuIFRoaXMgY29kZSBob29rZXMg
dXAgdGhlIHR3byBvZiB0aGVtLCBzbyBjYWxsaW5nIGEKKyAgICAgICAgSmF2YXNjcmlwdCBiaW5k
aW5ncyBmdW5jdGlvbiB3aWxsIGVuZCB1cCBjYWxsaW5nIHRocm91Z2ggdG8gb3VyIGludGVybmFs
IGludGVyZmFjZS4KKworICAgICAgICBUaGUgc3RyYXRlZ3kgdG8gY29ubmVjdCB0aGVtIGlzIHRv
IGdpdmUgZWFjaCBvZiB0aGUgYmluZGluZ3Mgb2JqZWN0cyBhIFJlZiBvZiBpdHMgYmFja2luZwor
ICAgICAgICBpbnRlcmZhY2UsIHdoaWNoIGlzIHBhc3NlZCBpbiB0byBpdHMgY3JlYXRlKCkgZnVu
Y3Rpb24uIFdoZW4gSlMgY2FsbHMgYSBtZXRob2Qgb2Ygb25lIG9mCisgICAgICAgIHRoZXNlIG9i
amVjdHMsIHRoZSBiaW5kaW5ncyBvYmplY3Qgd2lsbCBqdXN0IGZvcndhcmQgdGhlIGNhbGwgb24g
dGhyb3VnaCBpdHMgYmFja2luZworICAgICAgICBSZWYuCisKKyAgICAgICAgSW4gb3JkZXIgZm9y
IHRoaXMgdG8gd29yaywgdGhlcmUgaGF2ZSB0byBiZSBhIGJ1bmNoIG9mIGNvbnZlcnRlciBmdW5j
dGlvbnMgZm9yIGFsbCB0aGUKKyAgICAgICAgZGVzY3JpcHRvciBkaWN0aW9uYXJpZXMgd2hpY2gg
YXJlIHVzZWQgYXMgYXJndW1lbnRzIHRvIG1ldGhvZHMuIFRoZSBjb252ZXJ0ZXIgZnVuY3Rpb25z
CisgICAgICAgIGNvbnZlcnQgdGhlIGJpbmRpbmdzIGRpY3Rpb25hcnkgdG8gdGhlIHJlbGV2YW50
IGludGVybmFsIHN0cnVjdC4gVGhlc2UgbWV0aG9kcyBhcmUgYWxsCisgICAgICAgIGNhbGxlZCBj
b252ZXJ0VG9CYWNraW5nKCksIGFuZCBmb3Igc3RydWN0IHR5cGVzLCB0aGV5J3JlIG1lbWJlciBm
dW5jdGlvbnMgb2YgdGhlIHN0cnVjdCwKKyAgICAgICAgYW5kIGZvciBlbnVtIHR5cGVzIGFuZCB0
eXBlZGVmIHR5cGVzLCB0aGV5IGFyZSBzdGFuZGFsb25lIGZ1bmN0aW9ucy4KKworICAgICAgICBT
bywgZm9yIGEgYmluZGluZ3MgbWV0aG9kIGZvbyhkZXNjcmlwdG9yRGljdGlvbmFyeSksIHRoaXMg
Z2V0cyB0dXJuZWQgaW50bzoKKyAgICAgICAgbV9iYWNraW5nLT5mb28oZGVzY3JpcHRvckRpY3Rp
b25hcnkuY29udmVydFRvQmFja2luZygpKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgeWV0LgorCisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFU6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVOjpiYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVTo6R1BVKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUFkYXB0ZXI6Om5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6ZmVhdHVyZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6bGltaXRzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUFkYXB0ZXI6OmlzRmFsbGJhY2tBZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6
cmVxdWVzdERldmljZSk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUFkYXB0ZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6YmFj
a2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVBZGFwdGVyOjpHUFVBZGFwdGVyKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVBZGRyZXNzTW9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6bGFiZWwgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpzZXRMYWJlbCk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXA6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6OmJhY2tpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpiYWNraW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXBFbnRyeTo6
Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpzZXRM
YWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQmluZEdyb3VwTGF5b3V0OjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0RW50cnk6OmNvbnZlcnRUb0JhY2tpbmcg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUJsZW5kQ29tcG9uZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCbGVuZENvbXBvbmVudDo6Y29udmVydFRvQmFja2luZyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmxlbmRGYWN0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQ
VUJsZW5kT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCbGVuZFN0YXRlLmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCbGVuZFN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVy
OjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnNldExhYmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6bWFwQXN5bmMpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQnVmZmVyOjpnZXRNYXBwZWRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZm
ZXI6OnVubWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6ZGVzdHJveSk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVC
dWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OmJhY2tpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXJCaW5kaW5nOjpj
b252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCdWZm
ZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXJCaW5kaW5nTGF5
b3V0Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVCdWZmZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2lu
Zyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyVXNhZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnRCdWZmZXJVc2FnZUZsYWdzVG9CYWNraW5nKToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
Q2FudmFzQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29uZmln
dXJhdGlvbjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJH
UFUvR1BVQ29sb3JEaWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb2xvckRpY3Q6OmNvbnZl
cnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JUYXJnZXRTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQ29sb3JUYXJnZXRTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JXcml0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydENvbG9yV3JpdGVGbGFnc1RvQmFja2luZyk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21t
YW5kQnVmZmVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVm
ZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVDb21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbW1hbmRFbmNvZGVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVDb21tYW5kRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1h
bmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVD
b21tYW5kRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
bWFuZEVuY29kZXI6OnBvcERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1h
bmRFbmNvZGVyOjp3cml0ZVRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6cmVzb2x2ZVF1ZXJ5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVuY29kZXI6OmZpbmlzaCk6Cisg
ICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEVuY29kZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUNvbW1hbmRFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tbWFuZEVuY29kZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVu
Y29kZXI6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVuY29k
ZXI6OkdQVUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcGlsYXRpb25JbmZvOjptZXNzYWdlcyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVDb21waWxhdGlvbkluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVDb21waWxhdGlvbkluZm86OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tcGlsYXRpb25JbmZvOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uSW5mbzo6R1BVQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cGlsYXRpb25NZXNzYWdlOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
aWxhdGlvbk1lc3NhZ2U6OmxpbmVOdW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cGlsYXRpb25NZXNzYWdlOjpsaW5lUG9zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6b2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXBpbGF0
aW9uTWVzc2FnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXBpbGF0aW9uTWVz
c2FnZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21waWxhdGlvbk1lc3NhZ2U6
OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcGlsYXRpb25NZXNzYWdl
OjpHUFVDb21waWxhdGlvbk1lc3NhZ2UpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNv
bXBpbGF0aW9uTWVzc2FnZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOjpjb252ZXJ0VG9C
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc0Vu
Y29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpsYWJl
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0VuY29kZXI6OnNldExh
YmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3BhdGNoSW5kaXJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpiZWdpblBpcGVs
aW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5j
b2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1
dGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1
dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIpOgorICAgICAgICAqIE1vZHVsZXMv
V2ViR1BVL0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cHV0ZVBhc3NFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBh
c3NFbmNvZGVyOjpiYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5j
b2Rlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0Vu
Y29kZXI6OkdQVUNvbXB1dGVQYXNzRW5jb2Rlcik6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxp
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpsYWJlbCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbXB1dGVQaXBlbGluZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
dXRlUGlwZWxpbmU6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0
ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVUN1bGxNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVEZXB0aFN0ZW5jaWxT
dGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVuY2lsU3RhdGU6OmNvbnZlcnRU
b0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVURldmljZTo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNl
OjpmZWF0dXJlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmxpbWl0cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
RGV2aWNlOjpjcmVhdGVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVURldmljZTo6aW1wb3J0RXh0ZXJuYWxUZXh0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2
aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpj
cmVhdGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVh
dGVSZW5kZXJQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRl
UmVuZGVyUGlwZWxpbmVBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0
ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlUmVu
ZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6cHVzaEVycm9yU2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6YmFja2luZyk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVEZXZpY2U6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpHUFVEZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjptX2Jh
Y2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZUxvc3RJbmZvOjpyZWFzb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86Om1lc3NhZ2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86OkdQVURldmljZUxvc3RJbmZvKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5oOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2VMb3N0SW5mbzo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZp
Y2VMb3N0SW5mbzo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2VM
b3N0SW5mbzo6R1BVRGV2aWNlTG9zdEluZm8pOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQ
VURldmljZUxvc3RSZWFzb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcp
OgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVF
eHRlbnQzRERpY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVudDNERGljdDo6Y29udmVy
dFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRXh0ZXJuYWxUZXh0dXJlOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVFeHRlcm5hbFRleHR1cmU6OnNldExhYmVsKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVy
bmFsVGV4dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVybmFsVGV4dHVy
ZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVFeHRlcm5hbFRleHR1cmU6OmJhY2tp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRXh0ZXJuYWxUZXh0dXJlOjpHUFVFeHRl
cm5hbFRleHR1cmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
V2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVGaWx0
ZXJNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAg
KiBNb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVGcmFnbWVudFN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weUJ1ZmZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVSW1hZ2VDb3B5QnVmZmVyOjpjb252ZXJ0VG9CYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlOjpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlU
ZXh0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlUZXh0dXJlOjpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUltYWdlRGF0YUxheW91
dDo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
SW5kZXhGb3JtYXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUxvYWRPcC5oOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVTWFwTW9kZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydE1hcE1vZGVGbGFnc1RvQmFja2luZyk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVTXVsdGlzYW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVTXVsdGlzYW1wbGVTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVU9iamVjdERlc2NyaXB0b3JCYXNlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVPcmlnaW4yRERpY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVU9yaWdpbjJERGljdDo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVPcmlnaW4zRERpY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVU9yaWdpbjNERGljdDo6Y29u
dmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5n
KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVPdXRPZk1lbW9yeUVycm9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVPdXRPZk1lbW9yeUVycm9yOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVT3V0T2ZNZW1vcnlFcnJvcjo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVPdXRPZk1lbW9yeUVycm9yOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VU91dE9mTWVtb3J5RXJyb3I6OkdQVU91dE9mTWVtb3J5RXJyb3IpOgorICAgICAgICAqIE1vZHVs
ZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVQaXBlbGluZUxheW91dDo6c2V0TGFiZWwpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVVBpcGVsaW5lTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpiYWNraW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpiYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpHUFVQaXBlbGluZUxheW91dCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmNvbnZlcnRU
b0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lU3Rh
dGlzdGljTmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVByaW1pdGl2ZVN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVQcmltaXRpdmVUb3BvbG9neS5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVN0
YWdlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVRdWVyeVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWVyeVNldDo6bGFiZWwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXQ6OnNldExhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVF1ZXJ5U2V0OjpkZXN0cm95KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVRdWVyeVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWVyeVNldDo6YmFja2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVRdWVyeVNldDo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVR
dWVyeVNldDo6R1BVUXVlcnlTZXQpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXREZXNjcmlwdG9y
Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVR
dWVyeVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1
ZXVlOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6c2V0TGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OnN1Ym1pdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVRdWV1ZTo6b25TdWJtaXR0ZWRXb3JrRG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVR
dWV1ZTo6d3JpdGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OndyaXRlVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VUb1Rl
eHR1cmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpi
YWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpiYWNraW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpHUFVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1
bmRsZTo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQnVuZGxlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJCdW5kbGU6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyQnVuZGxlOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1
bmRsZTo6R1BVUmVuZGVyQnVuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OnNldFZlcnRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpH
UFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVF
bmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpi
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6
OkdQVVJlbmRlckJ1bmRsZUVuY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudDo6Y29udmVydFRvQmFj
a2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRo
U3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BV
UmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFNjaXNzb3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTdGVuY2lsUmVmZXJlbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjplbmRPY2NsdXNpb25RdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0
YXRpc3RpY3NRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVy
UGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjplbmRQYXNzKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmFja2lu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmFja2luZyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6R1BVUmVuZGVyUGFz
c0VuY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NMYXlvdXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NMYXlvdXQ6OmNvbnZlcnRUb0JhY2tp
bmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NUaW1lc3Rh
bXBMb2NhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmNvbnZlcnRUb0JhY2tp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBpcGVsaW5lOjpzZXRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
aXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6YmFja2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6YmFja2luZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUpOgor
ICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpjb252ZXJ0VG9C
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZXF1ZXN0QWRhcHRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9uczo6
Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU2Ft
cGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjpsYWJlbCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjpzZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVU2FtcGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXI6OmJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVU2FtcGxlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVTYW1wbGVyOjpHUFVTYW1wbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTYW1w
bGVyQmluZGluZ0xheW91dC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlckJpbmRpbmdM
YXlvdXQ6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVVNhbXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFj
a2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXJEZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5n
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjpsYWJlbCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVTaGFkZXJNb2R1bGU6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVTaGFkZXJNb2R1bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZTo6YmFja2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVTaGFkZXJNb2R1bGU6OmJhY2tpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjpHUFVTaGFkZXJNb2R1bGUpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVNoYWRlclN0YWdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0U2hhZGVyU3RhZ2VGbGFnc1RvQmFja2luZyk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbEZhY2VTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
R1BVU3RlbmNpbEZhY2VTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRl
eHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Ojpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmg6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVT
dXBwb3J0ZWRGZWF0dXJlczo6aW5pdGlhbGl6ZVNldExpa2UgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVTdXBwb3J0ZWRGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBv
cnRlZEZlYXR1cmVzOjpiYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZEZl
YXR1cmVzOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZEZl
YXR1cmVzOjpHUFVTdXBwb3J0ZWRGZWF0dXJlcyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVU3VwcG9ydGVkTGltaXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExp
bWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjFEIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjJEIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjNEIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZUFycmF5
TGF5ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4
QmluZEdyb3VwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
Om1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJz
UGVyUGlwZWxpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVk
TGltaXRzOjptYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2Ug
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhTdG9yYWdl
QnVmZmVyc1BlclNoYWRlclN0YWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBv
cnRlZExpbWl0czo6bWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhVbmlmb3JtQnVmZmVyc1BlclNo
YWRlclN0YWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6
bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVN1cHBvcnRlZExpbWl0czo6bWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWluVW5pZm9ybUJ1ZmZlck9mZnNl
dEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
Om1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhWZXJ0ZXhCdWZmZXJzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VmVydGV4QXR0cmlidXRlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFZlcnRleEJ1ZmZlckFy
cmF5U3RyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6
bWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlSW52b2Nh
dGlvbnNQZXJXb3JrZ3JvdXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVk
TGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3Vw
U2l6ZVogY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhD
b21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0
ZWRMaW1pdHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjpiYWNraW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6R1BVU3VwcG9y
dGVkTGltaXRzKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVRleHR1cmU6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6Y3JlYXRlVmlldyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVVGV4dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmJh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6YmFja2luZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVUZXh0dXJlQXNwZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQ6OmNvbnZl
cnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVE
ZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6Y29u
dmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVy
ZURpbWVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUZvcm1hdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVy
ZVNhbXBsZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVVc2FnZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFRleHR1cmVVc2FnZUZsYWdzVG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJl
Vmlldzo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXc6OnNl
dExhYmVsKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVUZXh0dXJlVmlldzo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJl
Vmlldzo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlVmlldzo6
R1BVVGV4dHVyZVZpZXcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3
RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9y
Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVU
ZXh0dXJlVmlld0RpbWVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2lu
Zyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6OmVycm9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50OjpHUFVVbmNhcHR1
cmVkRXJyb3JFdmVudCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVW5j
YXB0dXJlZEVycm9yRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVVuY2FwdHVyZWRFcnJv
ckV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQ6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6
OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQ6OkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVWYWxpZGF0aW9uRXJyb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVy
cm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJv
cjo6R1BVVmFsaWRhdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVWYWxpZGF0aW9uRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25F
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJvcjo6YmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVWYWxpZGF0aW9uRXJyb3I6OmJhY2tpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVycm9yOjpHUFVWYWxpZGF0aW9u
RXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVVmVydGV4QXR0cmlidXRlOjpjb252ZXJ0VG9CYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVZlcnRleEJ1ZmZlckxheW91dDo6Y29udmVydFRvQmFja2lu
ZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4Rm9ybWF0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmVydGV4U3RhdGU6
OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVZl
cnRleFN0ZXBNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAg
ICAgICAgKiBwYWdlL05hdmlnYXRvckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yQmFzZTo6TmF2aWdhdG9yQmFzZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JCYXNlOjpncHUpOgorCiAyMDIxLTExLTA3ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMsIGVhcmx5IE5vdmVtYmVyIDIwMjEgZWRpdGlvbiB0YWtlIHR3bwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggMTYwYzg1ZTZhZDUwZTVkZmYxZjkwMTgzNmU1YWY3ZmEwNzU1ZTlj
Zi4uYTMwOGVhNDNmNTk4ZTRjMDAxYWE3YzBmZGQ0YjdmMGRlZjQ5OTdjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTEtMDcgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBDb25uZWN0IEpTIGJpbmRp
bmdzIGNvZGUgdG8gaW50ZXJuYWwgV2ViR1BVIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmFyaW91cyBhc3NvcnRlZCBjbGVhbnVwcy4K
KworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVBZGFwdGVyLmg6CisgICAgICAgIChQQUw6OldlYkdQVTo6QWRhcHRlcjo6QWRhcHRl
cik6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlw
dG9yLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRy
eS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg6CisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JEaWN0LmguCisg
ICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmguCisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpE
ZXZpY2U6OmZlYXR1cmVzKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2U6OmxpbWl0cyk6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVudDNERGljdC5oLgor
ICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1h
Z2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
cmlnaW4yRERpY3QuaC4KKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdp
bjNELmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPcmlnaW4zRERpY3QuaC4KKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRv
ci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oLgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oOgorCiAyMDIxLTExLTA3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQ
VV0gQWRkIGludGVybmFsIFdlYkdQVSBBUEkgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVLmNwcAppbmRleCBlNWQwZjIzZjFhYmU3OThhNTM2NzE4MWQ4NmNkNjQ3ZjljNDNm
Mjc2Li4yNjEzZjJmNzg5NGZlMGIzYTFkZDNkZjM4MGZlM2RiYTI0YjcwZmFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVS5jcHAKQEAgLTI2LDExICsyNiwyNSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkdQVS5oIgogCisjaW5jbHVkZSAiSlNHUFVBZGFwdGVyLmgi
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBHUFU6OnJlcXVlc3RBZGFwdGVyKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYsIFJlcXVlc3RBZGFwdGVy
UHJvbWlzZSYmKQorc3RhdGljIFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMgY29u
dmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cz4mIG9wdGlvbnMpCiB7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4geyBzdGQ6
Om51bGxvcHQsIGZhbHNlIH07CisKKyAgICByZXR1cm4gb3B0aW9ucy0+Y29udmVydFRvQmFja2lu
ZygpOworfQogCit2b2lkIEdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxH
UFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiBvcHRpb25zLCBSZXF1ZXN0QWRhcHRlclByb21pc2Um
JiBwcm9taXNlKQoreworICAgIG1fYmFja2luZy0+cmVxdWVzdEFkYXB0ZXIoY29udmVydFRvQmFj
a2luZyhvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVmUHRyPFBBTDo6
V2ViR1BVOjpBZGFwdGVyPiYmIGFkYXB0ZXIpIG11dGFibGUgeworICAgICAgICBpZiAoIWFkYXB0
ZXIpCisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHByb21p
c2UucmVzb2x2ZShHUFVBZGFwdGVyOjpjcmVhdGUoYWRhcHRlci5yZWxlYXNlTm9uTnVsbCgpKS5w
dHIoKSk7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVLmgKaW5k
ZXggNmM5MzhkNThiYjM2ODIyYzRiYzEyZTkxOThjYzYzYjIxMmE5NzBhMi4uMTZlNDc3NGIzMWM4
ZDZlMmFlYzg3MTg2NzkwMTU3YTdlZmVmZTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPG9wdGlv
bmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM2LDE2ICszNywy
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVSA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVPiBjcmVhdGUoKQorICAgIHN0YXRp
YyBSZWY8R1BVPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpHUFU+JiYgYmFja2luZykKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICB1c2luZyBS
ZXF1ZXN0QWRhcHRlclByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURM
SW50ZXJmYWNlPEdQVUFkYXB0ZXI+Pj47CiAgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBz
dGQ6Om9wdGlvbmFsPEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucz4mLCBSZXF1ZXN0QWRhcHRlclBy
b21pc2UmJik7CiAKKyAgICBQQUw6OldlYkdQVTo6R1BVJiBiYWNraW5nKCkgeyByZXR1cm4gbV9i
YWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSYgYmFja2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVSgpID0gZGVmYXVsdDsKKyAg
ICBHUFUoUmVmPFBBTDo6V2ViR1BVOjpHUFU+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tp
bmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BV
OjpHUFU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQWRhcHRlci5jcHAKaW5kZXggMTIzYTA3NGMwODQxZDZkODFjODE5MjQ4MjNiMzIzMTgz
MzJiMzQ5Zi4uZGI4MDgzN2RiY2E2M2ZiMjI5Zjc0Y2YxNTRhZDgzYzBhZTY4YjhlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5jcHAKQEAgLTI2LDMwICsy
Niw0MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdQVUFkYXB0ZXIuaCIKIAor
I2luY2x1ZGUgIkpTR1BVRGV2aWNlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5n
IEdQVUFkYXB0ZXI6Om5hbWUoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0
eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPm5hbWUoKTsKIH0KIAogUmVmPEdQVVN1cHBvcnRl
ZEZlYXR1cmVzPiBHUFVBZGFwdGVyOjpmZWF0dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQ
VVN1cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVU3VwcG9ydGVkRmVh
dHVyZXM6OmNyZWF0ZShQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM6OmNsb25lKG1fYmFj
a2luZy0+ZmVhdHVyZXMoKSkpOwogfQogCiBSZWY8R1BVU3VwcG9ydGVkTGltaXRzPiBHUFVBZGFw
dGVyOjpsaW1pdHMoKSBjb25zdAogewotICAgIHJldHVybiBHUFVTdXBwb3J0ZWRMaW1pdHM6OmNy
ZWF0ZSgpOworICAgIHJldHVybiBHUFVTdXBwb3J0ZWRMaW1pdHM6OmNyZWF0ZShQQUw6OldlYkdQ
VTo6U3VwcG9ydGVkTGltaXRzOjpjbG9uZShtX2JhY2tpbmctPmxpbWl0cygpKSk7CiB9CiAKIGJv
b2wgR1BVQWRhcHRlcjo6aXNGYWxsYmFja0FkYXB0ZXIoKSBjb25zdAogewotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5pc0ZhbGxiYWNrQWRhcHRlcigpOworfQorCitz
dGF0aWMgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZyhjb25z
dCBzdGQ6Om9wdGlvbmFsPEdQVURldmljZURlc2NyaXB0b3I+JiBvcHRpb25zKQoreworICAgIGlm
ICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBvcHRpb25zLT5j
b252ZXJ0VG9CYWNraW5nKCk7CiB9CiAKLXZvaWQgR1BVQWRhcHRlcjo6cmVxdWVzdERldmljZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVEZXZpY2VEZXNj
cmlwdG9yPiYsIFJlcXVlc3REZXZpY2VQcm9taXNlJiYpCit2b2lkIEdQVUFkYXB0ZXI6OnJlcXVl
c3REZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BV
RGV2aWNlRGVzY3JpcHRvcj4mIGRldmljZURlc2NyaXB0b3IsIFJlcXVlc3REZXZpY2VQcm9taXNl
JiYgcHJvbWlzZSkKIHsKKyAgICBtX2JhY2tpbmctPnJlcXVlc3REZXZpY2UoY29udmVydFRvQmFj
a2luZyhkZXZpY2VEZXNjcmlwdG9yKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVm
PFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYgZGV2aWNlKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKEdQVURldmljZTo6Y3JlYXRlKG51bGxwdHIsIFdURk1vdmUoZGV2aWNlKSkpOwor
ICAgIH0pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVBZGFwdGVy
LmgKaW5kZXggOTYxMjQxZGZlMWE5ZWExNjRhNmVmMzUzYjRkNzdhZDEyMjhmZDdlMi4uMGEyMzFj
ODMwYTBlZWUxOTY0NTI2YzQyNGI4OTdkNGRmNTk2NTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUFkYXB0ZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDAsOSArNDEsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUFkYXB0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVBZGFwdGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVBZGFwdGVyPiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVQWRhcHRlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQ
VTo6QWRhcHRlcj4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR1BVQWRhcHRlcigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQWRhcHRl
cihXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsK
QEAgLTUzLDggKzU0LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZXF1ZXN0RGV2aWNlUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8R1BVRGV2aWNlPj47CiAgICAgdm9p
ZCByZXF1ZXN0RGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPEdQVURldmljZURlc2NyaXB0b3I+JiwgUmVxdWVzdERldmljZVByb21pc2UmJik7CiAKKyAg
ICBQQUw6OldlYkdQVTo6QWRhcHRlciYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQor
ICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVQWRhcHRlcigpID0gZGVmYXVsdDsKKyAg
ICBHUFVBZGFwdGVyKFJlZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkFkYXB0ZXI+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUFkZHJlc3NNb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVBZGRyZXNzTW9kZS5oCmluZGV4IDgxNWEzZDFjMGYxYmUz
MjZkYWY3ZTRjNTczMWMxZDAxM2I2NjIyOTAuLmEwZTNmODgxNDU2YzExMDU2MTIzMDdkMTY4MmZl
MGU4NmUwM2VhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUFkZHJlc3NNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRk
cmVzc01vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBlbnVtIGNsYXNz
IEdQVUFkZHJlc3NNb2RlIDogdWludDhfdCB7CiAgICAgTWlycm9yUmVwZWF0CiB9OwogCitpbmxp
bmUgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlIGNvbnZlcnRUb0JhY2tpbmcoR1BVQWRkcmVzc01v
ZGUgYWRkcmVzc01vZGUpCit7CisgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgIGNhc2Ug
R1BVQWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OkFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZTsKKyAgICBjYXNlIEdQVUFkZHJlc3NNb2RlOjpSZXBl
YXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6OlJlcGVhdDsKKyAg
ICBjYXNlIEdQVUFkZHJlc3NNb2RlOjpNaXJyb3JSZXBlYXQ6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJvclJlcGVhdDsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUJpbmRHcm91cC5jcHAKaW5kZXggMTNhZjk4MTVjMDY4NmIyNjY0NTYyZTAyMmM2
MjVmNWJmYWJkYTEyMS4uYTJlN2Q0MGFmNmIxNzkwNWM0ZjJmY2QyY2ExNzNhMTNmOTNmOTRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXAuY3BwCkBA
IC0zMCwxMSArMzAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgR1BVQmluZEdy
b3VwOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVCaW5kR3JvdXA6OnNl
dExhYmVsKFN0cmluZyYmKQordm9pZCBHUFVCaW5kR3JvdXA6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQogeworICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXAu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cC5oCmluZGV4IDY0
YmRhZDVmNGVlNDAxMjRhOTJhZjlhMTIyZDA2MGMyY2YxMTJlMmEuLjRjMWQ4NTg0OWI4ODE5YzRj
MDg3MGMwYTI3ZjFhYmM2NzljMDA2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXAuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDE2ICszNCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdQVUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJpbmRHcm91cD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+
JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJpbmRH
cm91cCgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3VwKFdURk1v
dmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2
b2lkIHNldExhYmVsKFN0cmluZyYmKTsKIAorICAgIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJh
Y2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6
Ci0gICAgR1BVQmluZEdyb3VwKCkgPSBkZWZhdWx0OworICAgIEdQVUJpbmRHcm91cChSZWY8UEFM
OjpXZWJHUFU6OkJpbmRHcm91cD4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZN
b3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRH
cm91cD4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCmluZGV4IDI0OTYxMjQwYTNjZTZh
MmI5ZjljMWQ5Mjg1Y2EwNzdhNjk1YzVmNjEuLjUzNWUzNTc0NjE5MWZkZjIxNTdiNzlhNTNjYzI2
NmZhYjIyN2M0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAgLTI4LDEyICsyOCwyOSBAQAogI2luY2x1ZGUg
IkdQVUJpbmRHcm91cEVudHJ5LmgiCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0LmgiCiAj
aW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJpbmRHcm91cERlc2Ny
aXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewotICAgIFJlZlB0cjxHUFVC
aW5kR3JvdXBMYXlvdXQ+IGxheW91dDsKKyAgICBQQUw6OldlYkdQVTo6QmluZEdyb3VwRGVzY3Jp
cHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChsYXlv
dXQpOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAg
ICAgbGF5b3V0LT5iYWNraW5nKCksCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAg
ICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5PiBlbnRyaWVzOworICAg
ICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVz
LnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBiaW5kR3JvdXBFbnRyeSA6IHRo
aXMtPmVudHJpZXMpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMudW5jaGVja2VkQXBwZW5k
KGJpbmRHcm91cEVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGVudHJpZXM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0KKworICAg
IEdQVUJpbmRHcm91cExheW91dCogbGF5b3V0OwogICAgIFZlY3RvcjxHUFVCaW5kR3JvdXBFbnRy
eT4gZW50cmllczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cEVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVCaW5kR3JvdXBFbnRyeS5oCmluZGV4IDM2NjMyNTRiMWIyNDk5MmI1NWJjODY3Yjg1YzhhY2Uy
MjAxNGY2NmUuLjNkZDY0Njk0MDRkMTA4NDFlMDY3OGQ0MmI1ZDFhMjAxMGFjNTg1ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cEVudHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRW50cnkuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRl
ICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5Lmg+CiAjaW5jbHVkZSA8dXRp
bGl0eT4KICNpbmNsdWRlIDx2YXJpYW50PgogCkBAIC0zNyw3ICszOCwzMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIEdQVUJpbmRpbmdSZXNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQ
dHI8R1BVU2FtcGxlcj4sIFJlZlB0cjxHUFVUZXh0dXJlVmlldz4sIEdQVUJ1ZmZlckJpbmRpbmcs
IFJlZlB0cjxHUFVFeHRlcm5hbFRleHR1cmU+PjsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCaW5k
aW5nUmVzb3VyY2UgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIGJp
bmRpbmdSZXNvdXJjZSkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihiaW5kaW5nUmVzb3Vy
Y2UsIFtdIChjb25zdCBSZWZQdHI8R1BVU2FtcGxlcj4mIHNhbXBsZXIpIC0+IFBBTDo6V2ViR1BV
OjpCaW5kaW5nUmVzb3VyY2UgeworICAgICAgICBBU1NFUlQoc2FtcGxlcik7CisgICAgICAgIHJl
dHVybiBzYW1wbGVyLT5iYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IFJlZlB0cjxHUFVUZXh0
dXJlVmlldz4mIHRleHR1cmVWaWV3KSAtPiBQQUw6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlIHsK
KyAgICAgICAgQVNTRVJUKHRleHR1cmVWaWV3KTsKKyAgICAgICAgcmV0dXJuIHRleHR1cmVWaWV3
LT5iYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IEdQVUJ1ZmZlckJpbmRpbmcmIGJ1ZmZlckJp
bmRpbmcpIC0+IFBBTDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2UgeworICAgICAgICByZXR1cm4g
YnVmZmVyQmluZGluZy5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IFJlZlB0
cjxHUFVFeHRlcm5hbFRleHR1cmU+JiBleHRlcm5hbFRleHR1cmUpIC0+IFBBTDo6V2ViR1BVOjpC
aW5kaW5nUmVzb3VyY2UgeworICAgICAgICBBU1NFUlQoZXh0ZXJuYWxUZXh0dXJlKTsKKyAgICAg
ICAgcmV0dXJuIGV4dGVybmFsVGV4dHVyZS0+YmFja2luZygpOworICAgIH0pOworfQorCiBzdHJ1
Y3QgR1BVQmluZEdyb3VwRW50cnkgeworICAgIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBFbnRyeSBj
b252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAg
ICAgICBiaW5kaW5nLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhyZXNv
dXJjZSksCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVSW5kZXgzMiBiaW5kaW5nOwogICAg
IEdQVUJpbmRpbmdSZXNvdXJjZSByZXNvdXJjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmNwcAppbmRleCA0OGQ3YTAxZTY4
MzcwMjE3MzEyZThkOTIzOTJiYzFhZGMwNzI1ZDMwLi40Nzc5ZTUyZTU4NWNlMjdhMDVhY2QwNDE5
ZThiNDE0NTMyN2FlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cExheW91dC5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFN0cmluZyBHUFVCaW5kR3JvdXBMYXlvdXQ6OmxhYmVsKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5s
YWJlbCgpOwogfQogCi12b2lkIEdQVUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYp
Cit2b2lkIEdQVUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7Cisg
ICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXgg
ZDVlNmM3MmEyZWIxOGUwYzdiNmI2ODkxNjM5ZDQ3MjU0NzIzMTNhOS4uMDEyY2I0NTFlMzc2Nzkw
ZDVhYTJjNTFiMWEzYmE5MzRlMzhlN2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0IDogcHVibGlj
IFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVCaW5kR3Jv
dXBMYXlvdXQ+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4mJiBiYWNr
aW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3VwTGF5
b3V0KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCaW5kR3JvdXBMYXlvdXQo
V1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OkJpbmRHcm91
cExheW91dCYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVCaW5kR3JvdXBMYXlvdXQoKSA9IGRlZmF1bHQ7Cisg
ICAgR1BVQmluZEdyb3VwTGF5b3V0KFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0PiYm
IGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgewor
ICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0PiBtX2JhY2tpbmc7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggZWJhNDBiNDlhMDAzZThmNWUy
OGMwYzgxZDc2MmYwNzEzMDA1MjEwMi4uM2RjYjU0MDcwMTRiYjliMjMyYTg3NDk1YjZlZWQ5MWY3
MjVmYTU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaApAQCAtMjcsMTEgKzI3LDI2IEBACiAK
ICNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIgogI2luY2x1ZGUgIkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
IDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxhYmVsIH0sCisgICAgICAgICAgICAoW3Ro
aXNdICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExh
eW91dEVudHJ5PiBlbnRyaWVzOworICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChh
dXRvJiBlbnRyeSA6IHRoaXMtPmVudHJpZXMpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMu
dW5jaGVja2VkQXBwZW5kKGVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGVudHJpZXM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0K
KwogICAgIFZlY3RvcjxHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZW50cmllczsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91
dEVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5oCmluZGV4IGJiYjE2NzUyYThiNDVmNGFkZDZkNzBlNzRiODQwNWNmM2Q0NzhhMjUu
LmQ5ODViNWYzYzA0ZDBjZTkwNTA1YWQ4MTJjNzUyYjMxNjY3YTNhMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dEVudHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aApAQCAtMzMsMTAgKzMzLDI0IEBACiAjaW5jbHVkZSAiR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKICNpbmNsdWRl
IDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJpbmRH
cm91cExheW91dEVudHJ5IHsKKyAgICBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnkg
Y29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgYmluZGluZywKKyAgICAgICAgICAgIGNvbnZlcnRTaGFkZXJTdGFnZUZsYWdzVG9CYWNr
aW5nKHZpc2liaWxpdHkpLAorICAgICAgICAgICAgYnVmZmVyID8gc3RkOjpvcHRpb25hbCB7IGJ1
ZmZlci0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBz
YW1wbGVyID8gc3RkOjpvcHRpb25hbCB7IHNhbXBsZXItPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDog
c3RkOjpudWxsb3B0LAorICAgICAgICAgICAgdGV4dHVyZSA/IHN0ZDo6b3B0aW9uYWwgeyB0ZXh0
dXJlLT5jb252ZXJ0VG9CYWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIHN0
b3JhZ2VUZXh0dXJlID8gc3RkOjpvcHRpb25hbCB7IHN0b3JhZ2VUZXh0dXJlLT5jb252ZXJ0VG9C
YWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIGV4dGVybmFsVGV4dHVyZSA/
IHN0ZDo6b3B0aW9uYWwgeyBleHRlcm5hbFRleHR1cmUtPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDog
c3RkOjpudWxsb3B0LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUluZGV4MzIgYmluZGlu
ZzsKICAgICBHUFVTaGFkZXJTdGFnZUZsYWdzIHZpc2liaWxpdHk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kQ29tcG9uZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZENvbXBvbmVudC5oCmluZGV4IDc1NjdmMTQx
MTFlMjUyMTgxMDQyMGRlZDdkODYwYTJjMmMzY2MzNTQuLjZiMmNmN2M5ODI0MTljOTU4YjgxNjAz
NjE0ZmY1MTA3MDMxYjZjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJsZW5kQ29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQmxlbmRDb21wb25lbnQuaApAQCAtMjcsMTAgKzI3LDIwIEBACiAKICNpbmNsdWRlICJH
UFVCbGVuZEZhY3Rvci5oIgogI2luY2x1ZGUgIkdQVUJsZW5kT3BlcmF0aW9uLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCbGVuZENvbXBvbmVudCB7CisgICAgUEFMOjpXZWJH
UFU6OkJsZW5kQ29tcG9uZW50IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcob3BlcmF0
aW9uKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoc3JjRmFjdG9yKSwK
KyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoZHN0RmFjdG9yKSwKKyAgICAg
ICAgfTsKKyAgICB9CisKICAgICBHUFVCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgR1BV
QmxlbmRGYWN0b3Igc3JjRmFjdG9yOwogICAgIEdQVUJsZW5kRmFjdG9yIGRzdEZhY3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZEZhY3Rvci5oCmluZGV4IGQ5
NWE1MDgzOWZiYTZlNDdhZWI1ZmE2MTBhMGJjZTBhMmJiNTc0NTYuLmQ5ZDRhYWUyNWM4NjVlMzY4
MTAxMmRjOGJjY2U1M2JhMjU3OTc2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUJsZW5kRmFjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQmxlbmRGYWN0b3IuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
QmxlbmRGYWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSw0ICs0NiwzNyBA
QCBlbnVtIGNsYXNzIEdQVUJsZW5kRmFjdG9yIDogdWludDhfdCB7CiAgICAgT25lTWludXNDb25z
dGFudAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3RvciBjb252ZXJ0VG9CYWNr
aW5nKEdQVUJsZW5kRmFjdG9yIGJsZW5kRmFjdG9yKQoreworICAgIHN3aXRjaCAoYmxlbmRGYWN0
b3IpIHsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpaZXJvOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9u
ZToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lOworICAgIGNh
c2UgR1BVQmxlbmRGYWN0b3I6OlNyYzoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVu
ZEZhY3Rvcjo6U3JjOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c1NyYzsKKyAgICBj
YXNlIEdQVUJsZW5kRmFjdG9yOjpTcmNBbHBoYToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6T25lTWlu
dXNTcmNBbHBoYToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25l
TWludXNTcmNBbHBoYTsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpEc3Q6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OkRzdDsKKyAgICBjYXNlIEdQVUJsZW5kRmFj
dG9yOjpPbmVNaW51c0RzdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rv
cjo6T25lTWludXNEc3Q7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6RHN0QWxwaGE6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OkRzdEFscGhhOworICAgIGNhc2Ug
R1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzRHN0QWxwaGE6CisgICAgICAgIHJldHVybiBQQUw6Oldl
YkdQVTo6QmxlbmRGYWN0b3I6Ok9uZU1pbnVzRHN0QWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZh
Y3Rvcjo6U3JjQWxwaGFTYXR1cmF0ZWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Qmxl
bmRGYWN0b3I6OlNyY0FscGhhU2F0dXJhdGVkOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6OkNv
bnN0YW50OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFu
dDsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50OgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50OworICAgIH0K
KyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZE9wZXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmxlbmRPcGVyYXRpb24uaAppbmRleCA1ZGNkYzIz
YTE2MTkwZDg0ZTQ0ZmU1ZTA4MjhiMDkxOTU2ODBjMjYyLi45N2UzOTI2ZWFlZWMwY2JhMWQ3YTk2
ODZmZDg1ZTQxYTQyZTBlMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCbGVuZE9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJsZW5kT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJsZW5kT3BlcmF0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNCArMzgs
MjEgQEAgZW51bSBjbGFzcyBHUFVCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogICAgIE1heAog
fTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbiBjb252ZXJ0VG9CYWNraW5n
KEdQVUJsZW5kT3BlcmF0aW9uIGJsZW5kT3BlcmF0aW9uKQoreworICAgIHN3aXRjaCAoYmxlbmRP
cGVyYXRpb24pIHsKKyAgICBjYXNlIEdQVUJsZW5kT3BlcmF0aW9uOjpBZGQ6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZDsKKyAgICBjYXNlIEdQVUJsZW5k
T3BlcmF0aW9uOjpTdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZE9w
ZXJhdGlvbjo6U3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6UmV2ZXJzZVN1
YnRyYWN0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpSZXZl
cnNlU3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6TWluOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpNaW47CisgICAgY2FzZSBHUFVCbGVu
ZE9wZXJhdGlvbjo6TWF4OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0
aW9uOjpNYXg7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kU3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kU3RhdGUuaAppbmRl
eCAyNGIwNjI2OTExZDBkN2MwMzdkNjYwMjI2YWNlYzNlNDE0ZGExOWFmLi45Y2VjZGI1YTY1NTk4
MDk3YTVkYzg2N2QxZWI3ZDQwYjQxMjMzYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVCbGVuZFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQmxlbmRTdGF0ZS5oCkBAIC0yNiwxMCArMjYsMTkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiR1BVQmxlbmRDb21wb25lbnQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dHJ1Y3QgR1BVQmxlbmRTdGF0ZSB7CisgICAgUEFMOjpXZWJHUFU6OkJsZW5kU3RhdGUgY29udmVy
dFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
Y29sb3IuY29udmVydFRvQmFja2luZygpLAorICAgICAgICAgICAgYWxwaGEuY29udmVydFRvQmFj
a2luZygpLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUJsZW5kQ29tcG9uZW50IGNvbG9y
OwogICAgIEdQVUJsZW5kQ29tcG9uZW50IGFscGhhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVCdWZmZXIuY3BwCmluZGV4IGIzZDBmMjczMDBkZTVmNmEwMDViNGFhODdk
YzI4OWE4YjE3NTkwNWYuLmU4MTg5ZGJmMDVlZTE0M2M3YmM1YjFjNGZlZTMwYjlmMDgzY2JlNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyLmNwcApAQCAtMzIs
MzMgKzMyLDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVUJ1ZmZlcjo6bGFi
ZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVy
biBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVQnVmZmVyOjpzZXRMYWJlbChTdHJp
bmcmJikKK3ZvaWQgR1BVQnVmZmVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBt
X2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVCdWZmZXI6
Om1hcEFzeW5jKEdQVU1hcE1vZGVGbGFncyBtb2RlLCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJikKK3ZvaWQgR1BVQnVmZmVyOjptYXBBc3luYyhHUFVNYXBNb2RlRmxhZ3MgbW9kZSwgc3Rk
OjpvcHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNp
emUsIE1hcEFzeW5jUHJvbWlzZSYmIHByb21pc2UpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1vZGUp
OwotICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAg
ICBtX2JhY2tpbmctPm1hcEFzeW5jKGNvbnZlcnRNYXBNb2RlRmxhZ3NUb0JhY2tpbmcobW9kZSks
IG9mZnNldCwgc2l6ZSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgIH0pOwogfQogCiBSZWY8SlND
OjpBcnJheUJ1ZmZlcj4gR1BVQnVmZmVyOjpnZXRNYXBwZWRSYW5nZShzdGQ6Om9wdGlvbmFsPEdQ
VVNpemU2ND4gb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKIHsKLSAgICBV
TlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Ci0gICAgcmV0dXJu
IEFycmF5QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7CisgICAgYXV0byBtYXBwZWRSYW5nZSA9
IG1fYmFja2luZy0+Z2V0TWFwcGVkUmFuZ2Uob2Zmc2V0LCBzaXplKTsKKyAgICByZXR1cm4gQXJy
YXlCdWZmZXI6OmNyZWF0ZShtYXBwZWRSYW5nZS5zb3VyY2UsIG1hcHBlZFJhbmdlLmJ5dGVMZW5n
dGgpOwogfQogCiB2b2lkIEdQVUJ1ZmZlcjo6dW5tYXAoKQogeworICAgIG1fYmFja2luZy0+dW5t
YXAoKTsKIH0KIAogdm9pZCBHUFVCdWZmZXI6OmRlc3Ryb3koKQogeworICAgIG1fYmFja2luZy0+
ZGVzdHJveSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZl
ci5oCmluZGV4IGI0NTFhMzhlNDYxOWRkZGQyZWI5OGUzNmY5N2RhZmZlZTczZDRhODguLmM2Mjhj
YzA2N2MwNDMxMDMwYzk2ZjVjOTE2ZDFjYjkyYTgwMDc3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUg
PG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zOSwyMiArNDAsMzEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHUFVCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVCdWZm
ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUJ1ZmZlcj4gY3JlYXRlKCkKKyAgICBz
dGF0aWMgUmVmPEdQVUJ1ZmZlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPiYmIGJh
Y2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCdWZmZXIoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKGJhY2tpbmcp
KSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYWJl
bChTdHJpbmcmJik7CiAKLSAgICB2b2lkIG1hcEFzeW5jKEdQVU1hcE1vZGVGbGFncywgc3RkOjpv
cHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemVG
b3JNYXAsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHVzaW5nIE1hcEFzeW5jUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsPjsKKyAgICB2b2lkIG1hcEFzeW5jKEdQVU1h
cE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25h
bDxHUFVTaXplNjQ+IHNpemVGb3JNYXAsIE1hcEFzeW5jUHJvbWlzZSYmKTsKICAgICBSZWY8SlND
OjpBcnJheUJ1ZmZlcj4gZ2V0TWFwcGVkUmFuZ2Uoc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IG9m
ZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHJhbmdlU2l6ZSk7CiAgICAgdm9pZCB1bm1h
cCgpOwogCiAgICAgdm9pZCBkZXN0cm95KCk7CiAKKyAgICBQQUw6OldlYkdQVTo6QnVmZmVyJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJ1
ZmZlciYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgot
ICAgIEdQVUJ1ZmZlcigpID0gZGVmYXVsdDsKKyAgICBHUFVCdWZmZXIoUmVmPFBBTDo6V2ViR1BV
OjpCdWZmZXI+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5n
KSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpCdWZmZXI+IG1fYmFja2lu
ZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZl
ckJpbmRpbmcuaAppbmRleCBkNzBlZmYxOWM2YzU3OGJkMjk0NzUwZjJiZDU5M2E1MTJjNjBlNzkx
Li5lZGQwZTI2YWIxZjVhM2Q3MGE0NzBmZTk2MzBhY2YyYTA2YjE3ODQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJCaW5kaW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyQmluZGluZy5oCkBAIC0yOCwxMiAr
MjgsMjMgQEAKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCdWZmZXJCaW5kaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCdWZmZXJCaW5kaW5nIHsKLSAgICBSZWZQdHI8R1BV
QnVmZmVyPiBidWZmZXI7CisgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmcgY29udmVydFRv
QmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIGJ1ZmZlci0+YmFja2luZygpLAorICAgICAgICAgICAgb2Zm
c2V0LAorICAgICAgICAgICAgc2l6ZSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBHUFVCdWZm
ZXIqIGJ1ZmZlcjsKICAgICBHUFVTaXplNjQgb2Zmc2V0OwogICAgIHN0ZDo6b3B0aW9uYWw8R1BV
U2l6ZTY0PiBzaXplOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAppbmRleCBjNmFmMTk1NDI1Yzc0MGZlN2MxMzMx
ZmEwYzVjMzlkYzdlZmEzZWI0Li4wOTA2ZGFiYzVmNTZiYWFkZWM1MzdkMDQyZDc0Nzc0NmMxYTc5
MmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJC
aW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVm
ZmVyQmluZGluZ0xheW91dC5oCkBAIC0yNywxMCArMjcsMjAgQEAKIAogI2luY2x1ZGUgIkdQVUJ1
ZmZlckJpbmRpbmdUeXBlLmgiCiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCdWZmZXJCaW5kaW5nTGF5b3V0IHsKKyAg
ICBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKHR5cGUpLAorICAgICAgICAgICAgaGFzRHluYW1pY09mZnNldCwKKyAgICAgICAg
ICAgIG1pbkJpbmRpbmdTaXplLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUJ1ZmZlckJp
bmRpbmdUeXBlIHR5cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIEdQVVNpemU2
NCBtaW5CaW5kaW5nU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCdWZmZXJCaW5kaW5nVHlwZS5oCmluZGV4IDQ2NzczZTU0ZDYyNDYxOWUzZmIzODFlZGMz
M2QwMGNmMmQ1YTAzNzQuLjIwMjZiMmQzMGQ5ZDgxMmYzZTZlZDhiNDhiZDE0YzdiMmMwNzE1NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyQmlu
ZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Z1R5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBlbnVt
IGNsYXNzIEdQVUJ1ZmZlckJpbmRpbmdUeXBlIDogdWludDhfdCB7CiAgICAgUmVhZE9ubHlTdG9y
YWdlCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlIGNvbnZlcnRU
b0JhY2tpbmcoR1BVQnVmZmVyQmluZGluZ1R5cGUgYnVmZmVyQmluZGluZ1R5cGUpCit7CisgICAg
c3dpdGNoIChidWZmZXJCaW5kaW5nVHlwZSkgeworICAgIGNhc2UgR1BVQnVmZmVyQmluZGluZ1R5
cGU6OlVuaWZvcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5
cGU6OlVuaWZvcm07CisgICAgY2FzZSBHUFVCdWZmZXJCaW5kaW5nVHlwZTo6U3RvcmFnZToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZTo6U3RvcmFnZTsKKyAg
ICBjYXNlIEdQVUJ1ZmZlckJpbmRpbmdUeXBlOjpSZWFkT25seVN0b3JhZ2U6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5cGU6OlJlYWRPbmx5U3RvcmFnZTsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4
IDAzYWU5Zjk2MzRjMGYzNTIxODUzNzY2MTMyOTEyYjE2YmU5YmI4ZGMuLjczMjI3NjcyM2I1NGMw
MzdlYzc5YWNjZjBhYzBkMzhlNzE5MzY3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTI4LDEwICsyOCwyMSBAQAog
I2luY2x1ZGUgIkdQVUJ1ZmZlclVzYWdlLmgiCiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5o
IgogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVUJ1ZmZlckRlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yIGNvbnZlcnRU
b0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHsg
bGFiZWwgfSwKKyAgICAgICAgICAgIHNpemUsCisgICAgICAgICAgICBjb252ZXJ0QnVmZmVyVXNh
Z2VGbGFnc1RvQmFja2luZyh1c2FnZSksCisgICAgICAgICAgICBtYXBwZWRBdENyZWF0aW9uLAor
ICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBzaXplOwogICAgIEdQVUJ1ZmZlclVz
YWdlRmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlclVzYWdlLmgKaW5kZXggM2Q0ZGJlYmNkNjI0
MjM5MGM3ZDEzOTQwYzA4OWJkYzFiYjBhODI5ZS4uMTk4YjgyMGNkOWEyZTUyMzMyZTg4ODNiNjYy
YTRiMmU4NzhlZmM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVC
dWZmZXJVc2FnZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUJ1ZmZlclVzYWdlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNCArNDgsMzAgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBRVUVSWV9SRVNPTFZFID0gMHgwMjAwOwogfTsKIAor
aW5saW5lIFBBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzIGNvbnZlcnRCdWZmZXJVc2FnZUZs
YWdzVG9CYWNraW5nKEdQVUJ1ZmZlclVzYWdlRmxhZ3MgYnVmZmVyVXNhZ2VGbGFncykKK3sKKyAg
ICBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2VGbGFncyByZXN1bHQgPSAwOworICAgIGlmIChidWZm
ZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6Ok1BUF9SRUFEKQorICAgICAgICByZXN1bHQg
fD0gUEFMOjpXZWJHUFU6OkJ1ZmZlclVzYWdlOjpNQVBfUkVBRDsKKyAgICBpZiAoYnVmZmVyVXNh
Z2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpNQVBfV1JJVEUpCisgICAgICAgIHJlc3VsdCB8PSBQ
QUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6Ok1BUF9XUklURTsKKyAgICBpZiAoYnVmZmVyVXNhZ2VG
bGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpDT1BZX1NSQykKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6
V2ViR1BVOjpCdWZmZXJVc2FnZTo6Q09QWV9TUkM7CisgICAgaWYgKGJ1ZmZlclVzYWdlRmxhZ3Mg
JiBHUFVCdWZmZXJVc2FnZTo6Q09QWV9EU1QpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQ
VTo6QnVmZmVyVXNhZ2U6OkNPUFlfRFNUOworICAgIGlmIChidWZmZXJVc2FnZUZsYWdzICYgR1BV
QnVmZmVyVXNhZ2U6OklOREVYKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OkJ1ZmZl
clVzYWdlOjpJTkRFWDsKKyAgICBpZiAoYnVmZmVyVXNhZ2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdl
OjpWRVJURVgpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlZF
UlRFWDsKKyAgICBpZiAoYnVmZmVyVXNhZ2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpVTklGT1JN
KQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OkJ1ZmZlclVzYWdlOjpVTklGT1JNOwor
ICAgIGlmIChidWZmZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6OlNUT1JBR0UpCisgICAg
ICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlNUT1JBR0U7CisgICAgaWYg
KGJ1ZmZlclVzYWdlRmxhZ3MgJiBHUFVCdWZmZXJVc2FnZTo6SU5ESVJFQ1QpCisgICAgICAgIHJl
c3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OklORElSRUNUOworICAgIGlmIChidWZm
ZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6OlFVRVJZX1JFU09MVkUpCisgICAgICAgIHJl
c3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlFVRVJZX1JFU09MVkU7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgKaW5kZXggODY1YWI0
MDA4ODA5MDc2OWQ4Y2VlZGVjZTg0MWNjMmVhMjc1ZDFjMS4uN2M1YjM3YjY4OTI4MWZiMzAyOTI4
Yjg3Mjk5NDVjNTM4MjM1NGQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BV
Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKICAgICBQcmVtdWx0aXBsaWVk
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlIGNv
bnZlcnRUb0JhY2tpbmcoR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgY2FudmFzQ29tcG9z
aXRpbmdBbHBoYU1vZGUpCit7CisgICAgc3dpdGNoIChjYW52YXNDb21wb3NpdGluZ0FscGhhTW9k
ZSkgeworICAgIGNhc2UgR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGU6Ok9wYXF1ZToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZTo6T3Bh
cXVlOworICAgIGNhc2UgR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGU6OlByZW11bHRpcGxp
ZWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1v
ZGU6OlByZW11bHRpcGxpZWQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBhMWM4YzhhOTA2ZTZhNjk5N2RmNGNjOGVjOGE0
MzU0M2M3NDM4MzI3Li5lY2E2YmVmZDQ5MGM3M2U2NDAxMjM4ODNjMDE4ZWZlZDYzNDgxMzdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5oCkBAIC0zMCwxNiArMzAsMjkgQEAKICNpbmNsdWRlICJHUFVFeHRlbnQzRERp
Y3QuaCIKICNpbmNsdWRlICJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkdQ
VVRleHR1cmVGb3JtYXQuaCIKKyNpbmNsdWRlICJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRl
IDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBHUFVUZXh0dXJlVXNhZ2VGbGFncyA9
IHVpbnQzMl90OyAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgaGVyZS4KLQogc3Ry
dWN0IEdQVUNhbnZhc0NvbmZpZ3VyYXRpb24gewotICAgIFJlZlB0cjxHUFVEZXZpY2U+IGRldmlj
ZTsKKyAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29uZmlndXJhdGlvbiBjb252ZXJ0VG9CYWNraW5n
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChkZXZpY2UpOworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgZGV2aWNlLT5iYWNraW5nKCksCisgICAgICAgICAgICBXZWJDb3JlOjpj
b252ZXJ0VG9CYWNraW5nKGZvcm1hdCksCisgICAgICAgICAgICBjb252ZXJ0VGV4dHVyZVVzYWdl
RmxhZ3NUb0JhY2tpbmcodXNhZ2UpLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFj
a2luZyhjb2xvclNwYWNlKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmco
Y29tcG9zaXRpbmdBbHBoYU1vZGUpLAorICAgICAgICAgICAgc2l6ZSA/IHN0ZDo6b3B0aW9uYWwg
eyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpzaXplKSB9IDogc3RkOjpudWxsb3B0LAorICAg
ICAgICB9OworICAgIH0KKworICAgIEdQVURldmljZSogZGV2aWNlOwogICAgIEdQVVRleHR1cmVG
b3JtYXQgZm9ybWF0OwogICAgIEdQVVRleHR1cmVVc2FnZUZsYWdzIHVzYWdlOyAvLyBHUFVUZXh0
dXJlVXNhZ2UuUkVOREVSX0FUVEFDSE1FTlQKICAgICBHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZSBj
b2xvclNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29sb3JEaWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3Qu
aAppbmRleCA1N2VmYjNjYzVmYTJiMmNiNWQ4MDJhNmE4MmQxNGM0Nzg3YjRiZGE4Li44NDRiMTRh
NmUzYjg0NjFkM2FjMzA3MGNjODE0YTZlNzhiZDQwOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3QuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3IuaD4KICNp
bmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMyLDYgKzMzLDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVDb2xvckRpY3QgeworICAgIFBBTDo6V2ViR1BVOjpDb2xvckRpY3QgY29u
dmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgciwKKyAgICAgICAgICAgIGcsCisgICAgICAgICAgICBiLAorICAgICAgICAgICAgYSwKKyAg
ICAgICAgfTsKKyAgICB9CisKICAgICBkb3VibGUgcjsKICAgICBkb3VibGUgZzsKICAgICBkb3Vi
bGUgYjsKQEAgLTQwLDQgKzUxLDEzIEBAIHN0cnVjdCBHUFVDb2xvckRpY3QgewogCiB1c2luZyBH
UFVDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91YmxlPiwgR1BVQ29sb3JEaWN0PjsKIAor
aW5saW5lIFBBTDo6V2ViR1BVOjpDb2xvciBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IEdQVUNvbG9y
JiBjb2xvcikKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihjb2xvciwgW10gKGNvbnN0IFZl
Y3Rvcjxkb3VibGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpDb2xvciB7CisgICAgICAgIHJl
dHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVUNvbG9yRGljdCYgY29sb3IpIC0+IFBB
TDo6V2ViR1BVOjpDb2xvciB7CisgICAgICAgIHJldHVybiBjb2xvci5jb252ZXJ0VG9CYWNraW5n
KCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbG9yVGFyZ2V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbG9yVGFyZ2V0U3RhdGUuaAppbmRleCBjNTJkODA4OTkzZmM0NTVhM2Q3YmMyOGVh
ODA3YTRmYzIzNWVlMDE3Li4xM2FlOGIzODA1NDQ4OGYzODlkNTg3MzU0MGNkZTU3NjZiZDBhZjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvclRhcmdl
dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JUYXJn
ZXRTdGF0ZS5oCkBAIC0yOSwxMCArMjksMjAgQEAKICNpbmNsdWRlICJHUFVDb2xvcldyaXRlLmgi
CiAjaW5jbHVkZSAiR1BVVGV4dHVyZUZvcm1hdC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVDb2xvclRhcmdldFN0YXRlIHsKKyAgICBQ
QUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKGZvcm1hdCksCisgICAgICAgICAgICBibGVuZCA/IHN0ZDo6b3B0aW9uYWwgeyBibGVuZC0+
Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBjb252ZXJ0
Q29sb3JXcml0ZUZsYWdzVG9CYWNraW5nKHdyaXRlTWFzayksCisgICAgICAgIH07CisgICAgfQor
CiAgICAgR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAKICAgICBzdGQ6Om9wdGlvbmFsPEdQVUJs
ZW5kU3RhdGU+IGJsZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQ29sb3JXcml0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29s
b3JXcml0ZS5oCmluZGV4IGUwZDdjYzM1ZTk0NTIyMDQ4YWRjMDhiN2MyODI1M2JmYjkwMDJjZGIu
LjIyZGM5YjA4ZTZhOTkzMmE3ZTQxNzQ4MDc4ZjhkNThhYzM3YWZlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbG9yV3JpdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvcldyaXRlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJHUFVCbGVuZE9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVUludGVncmFsVHlw
ZXMuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29sb3JXcml0ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQzLDQgKzQ0LDE4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIEdQVUZsYWdzQ29uc3RhbnQgQUxMICAgPSAweEY7CiB9OwogCitpbmxpbmUgUEFMOjpX
ZWJHUFU6OkNvbG9yV3JpdGVGbGFncyBjb252ZXJ0Q29sb3JXcml0ZUZsYWdzVG9CYWNraW5nKEdQ
VUNvbG9yV3JpdGVGbGFncyBjb2xvcldyaXRlRmxhZ3MpCit7CisgICAgUEFMOjpXZWJHUFU6OkNv
bG9yV3JpdGVGbGFncyByZXN1bHQgPSAwOworICAgIGlmIChjb2xvcldyaXRlRmxhZ3MgJiBHUFVD
b2xvcldyaXRlOjpSRUQpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6Q29sb3JXcml0
ZTo6UkVEOworICAgIGlmIChjb2xvcldyaXRlRmxhZ3MgJiBHUFVDb2xvcldyaXRlOjpHUkVFTikK
KyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpDb2xvcldyaXRlOjpHUkVFTjsKKyAgICBp
ZiAoY29sb3JXcml0ZUZsYWdzICYgR1BVQ29sb3JXcml0ZTo6QkxVRSkKKyAgICAgICAgcmVzdWx0
IHw9IFBBTDo6V2ViR1BVOjpDb2xvcldyaXRlOjpCTFVFOworICAgIGlmIChjb2xvcldyaXRlRmxh
Z3MgJiBHUFVDb2xvcldyaXRlOjpBTFBIQSkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BV
OjpDb2xvcldyaXRlOjpBTFBIQTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCmluZGV4
IDI2MjkwMzk3NDRjNjE1NzBiNTIyZmQ0MzQ2MjRhNGFhNTk0ZjU5ODAuLjM2ODJkZDA5MTYxNjA3
YjBiODUzOWI1NmZlZTRmZDUxNjkyN2RlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0zMCwxMSArMzAsMTIgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgR1BVQ29tbWFuZEJ1ZmZlcjo6bGFiZWwoKSBjb25z
dAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tp
bmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6c2V0TGFiZWwoU3RyaW5n
JiYpCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogewor
ICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggZTM0
NDVmYTNlMmQ1OWFmZDgzZWNkNTBhMTUyZmVkMTQyMzQ4YjYzYi4uZTJjZjExNmU3Zjg3ZDVhYTI0
NGJjY2Y5MTUyMjNmODU1ZGRiMTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUNvbW1hbmRCdWZmZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUNvbW1hbmRC
dWZmZXI+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVDb21tYW5kQnVmZmVyPiBjcmVhdGUo
UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21tYW5kQnVmZmVyKCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21tYW5kQnVmZmVyKFdURk1vdmUoYmFja2luZykpKTsKICAg
ICB9CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2b2lkIHNldExhYmVsKFN0cmlu
ZyYmKTsKIAorICAgIFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBiYWNraW5nKCkgeyByZXR1
cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXImIGJh
Y2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVD
b21tYW5kQnVmZmVyKCkgPSBkZWZhdWx0OworICAgIEdQVUNvbW1hbmRCdWZmZXIoUmVmPFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyPiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdU
Rk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlcj4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXgg
ZDlkMTRlM2NhOWZhMDNiZDI2YjJmNzg0MzBmOGY4NWQ4ZmYwMWJhNS4uNWEwOGE0ZTUxMTczODBh
NDBmYzlhM2JlOTc2ZDQxMjA4ODY0M2RmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNiwx
MCArMjYsMTcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAg
ICBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAor
ICAgICAgICB9OworICAgIH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcAppbmRleCBiMDM1ODVjZjY3YjlmNGFjZTE5
ZjhhZTlhZDc4Mjg4ZDYzMjY3YjNhLi40ODFjZDUwNTRkYzgyNDVkYWNkZTE2YWEyMjM2OTZkNjc2
M2NiYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21t
YW5kRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29t
bWFuZEVuY29kZXIuY3BwCkBAIC0zNSwyMSArMzUsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBTdHJpbmcgR1BVQ29tbWFuZEVuY29kZXI6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwogfQog
Ci12b2lkIEdQVUNvbW1hbmRFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVQ29t
bWFuZEVuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogeworICAgIG1fYmFja2luZy0+
c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCi1SZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+
IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MoR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IpCitSZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJl
bmRlclBhc3MoY29uc3QgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3ImIHJlbmRlclBhc3NEZXNjcmlw
dG9yKQogewotICAgIHJldHVybiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6Y3JlYXRlKCk7CisgICAg
cmV0dXJuIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpjcmVhdGUobV9iYWNraW5nLT5iZWdpblJlbmRl
clBhc3MocmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29udmVydFRvQmFja2luZygpKSk7CiB9CiAKLVJl
ZjxHUFVDb21wdXRlUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpbkNvbXB1dGVQ
YXNzKHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPikKK1JlZjxHUFVDb21w
dXRlUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpbkNvbXB1dGVQYXNzKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgY29tcHV0ZVBhc3NEZXNj
cmlwdG9yKQogewotICAgIHJldHVybiBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmNyZWF0ZShtX2JhY2tpbmctPmJlZ2lu
Q29tcHV0ZVBhc3MoY29tcHV0ZVBhc3NEZXNjcmlwdG9yID8gc3RkOjpvcHRpb25hbCB7IGNvbXB1
dGVQYXNzRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQpKTsK
IH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKApAQCAtNTks
NDEgKzYwLDMxIEBAIHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcigK
ICAgICBHUFVTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCiAgICAgR1BVU2l6ZTY0IHNpemUpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZU9mZnNl
dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVz
dGluYXRpb25PZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAgICBtX2JhY2tpbmct
PmNvcHlCdWZmZXJUb0J1ZmZlcihzb3VyY2UuYmFja2luZygpLCBzb3VyY2VPZmZzZXQsIGRlc3Rp
bmF0aW9uLmJhY2tpbmcoKSwgZGVzdGluYXRpb25PZmZzZXQsIHNpemUpOwogfQogCiB2b2lkIEdQ
VUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKAotICAgIEdQVUltYWdlQ29weUJ1
ZmZlciBzb3VyY2UsCi0gICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwKLSAgICBH
UFVFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICBjb25zdCBHUFVJbWFnZUNvcHlCdWZmZXImIHNvdXJj
ZSwKKyAgICBjb25zdCBHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25z
dCBHUFVFeHRlbnQzRCYgY29weVNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oY29weVNpemUp
OworICAgIG1fYmFja2luZy0+Y29weUJ1ZmZlclRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFj
a2luZygpLCBkZXN0aW5hdGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmco
Y29weVNpemUpKTsKIH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb0J1
ZmZlcigKLSAgICBHUFVJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwKLSAgICBHUFVJbWFnZUNvcHlC
dWZmZXIgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0ZW50M0QgY29weVNpemUpCisgICAgY29uc3Qg
R1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgIGNvbnN0IEdQVUltYWdlQ29weUJ1ZmZl
ciYgZGVzdGluYXRpb24sCisgICAgY29uc3QgR1BVRXh0ZW50M0QmIGNvcHlTaXplKQogewotICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0g
ICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKKyAgICBtX2JhY2tpbmctPmNvcHlUZXh0dXJlVG9C
dWZmZXIoc291cmNlLmNvbnZlcnRUb0JhY2tpbmcoKSwgZGVzdGluYXRpb24uY29udmVydFRvQmFj
a2luZygpLCBjb252ZXJ0VG9CYWNraW5nKGNvcHlTaXplKSk7CiB9CiAKIHZvaWQgR1BVQ29tbWFu
ZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKAotICAgIEdQVUltYWdlQ29weVRleHR1cmUg
c291cmNlLAotICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0
ZW50M0QgY29weVNpemUpCisgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAor
ICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IEdQ
VUV4dGVudDNEJiBjb3B5U2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cisg
ICAgbV9iYWNraW5nLT5jb3B5VGV4dHVyZVRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFja2lu
ZygpLCBkZXN0aW5hdGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmcoY29w
eVNpemUpKTsKIH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcigKQEAgLTEw
MSw0NyArOTIsNTAgQEAgdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcigKICAgICBH
UFVTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCiAgICAgR1BVU2l6ZTY0IHNpemUpCiB7Ci0gICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25P
ZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAgICBtX2JhY2tpbmctPmZpbGxCdWZm
ZXIoZGVzdGluYXRpb24uYmFja2luZygpLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSk7CiB9CiAK
IHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFi
ZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworICAgIG1fYmFja2luZy0+cHVz
aERlYnVnR3JvdXAoV1RGTW92ZShncm91cExhYmVsKSk7CiB9CiAKIHZvaWQgR1BVQ29tbWFuZEVu
Y29kZXI6OnBvcERlYnVnR3JvdXAoKQogewotCisgICAgbV9iYWNraW5nLT5wb3BEZWJ1Z0dyb3Vw
KCk7CiB9CiAKIHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmlu
ZyYmIG1hcmtlckxhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7CisgICAg
bV9iYWNraW5nLT5pbnNlcnREZWJ1Z01hcmtlcihXVEZNb3ZlKG1hcmtlckxhYmVsKSk7CiB9CiAK
LXZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OndyaXRlVGltZXN0YW1wKGNvbnN0IEdQVVF1ZXJ5U2V0
JiwgR1BVU2l6ZTMyIHF1ZXJ5SW5kZXgpCit2b2lkIEdQVUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcChjb25zdCBHUFVRdWVyeVNldCYgcXVlcnlTZXQsIEdQVVNpemUzMiBxdWVyeUluZGV4
KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPndyaXRl
VGltZXN0YW1wKHF1ZXJ5U2V0LmJhY2tpbmcoKSwgcXVlcnlJbmRleCk7CiB9CiAKIHZvaWQgR1BV
Q29tbWFuZEVuY29kZXI6OnJlc29sdmVRdWVyeVNldCgKLSAgICBjb25zdCBHUFVRdWVyeVNldCYs
CisgICAgY29uc3QgR1BVUXVlcnlTZXQmIHF1ZXJ5U2V0LAogICAgIEdQVVNpemUzMiBmaXJzdFF1
ZXJ5LAogICAgIEdQVVNpemUzMiBxdWVyeUNvdW50LAogICAgIGNvbnN0IEdQVUJ1ZmZlciYgZGVz
dGluYXRpb24sCiAgICAgR1BVU2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0KQogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFF1ZXJ5KTsKLSAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3VudCk7Ci0gICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25P
ZmZzZXQpOworICAgIG1fYmFja2luZy0+cmVzb2x2ZVF1ZXJ5U2V0KHF1ZXJ5U2V0LmJhY2tpbmco
KSwgZmlyc3RRdWVyeSwgcXVlcnlDb3VudCwgZGVzdGluYXRpb24uYmFja2luZygpLCBkZXN0aW5h
dGlvbk9mZnNldCk7Cit9CisKK3N0YXRpYyBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yPiYgY29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpCit7CisgICAgaWYgKCFjb21t
YW5kQnVmZmVyRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBj
b21tYW5kQnVmZmVyRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpOwogfQogCi1SZWY8R1BV
Q29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEVuY29kZXI6OmZpbmlzaChzdGQ6Om9wdGlvbmFsPEdQ
VUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yPikKK1JlZjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21t
YW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3I+JiBjb21tYW5kQnVmZmVyRGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29t
bWFuZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0
ZShtX2JhY2tpbmctPmZpbmlzaChjb252ZXJ0VG9CYWNraW5nKGNvbW1hbmRCdWZmZXJEZXNjcmlw
dG9yKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tbWFuZEVuY29kZXIuaAppbmRleCBmYTllYjljMmE2Yjg1Y2ViZWFmNzg5YjdkN2ZkZGVhMzhi
ZWQ3ZmY5Li5hMDFlMzI2ODQ1NDg4M2Q5YTZlNGJlMmQ4NjI2N2EyNWQwMDRkZDkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kRW5jb2Rlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmgKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkdQVVJlbmRlclBhc3NFbmNvZGVyLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDcsMTYgKzQ4LDE2IEBAIGNsYXNzIEdQVVF1ZXJ5U2V0
OwogCiBjbGFzcyBHUFVDb21tYW5kRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbW1h
bmRFbmNvZGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVDb21tYW5kRW5jb2Rlcj4g
Y3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVUNvbW1hbmRFbmNvZGVyPiBjcmVhdGUoUmVmPFBB
TDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR1BVQ29tbWFuZEVuY29kZXIoKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdQVUNvbW1hbmRFbmNvZGVyKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9
CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2b2lkIHNldExhYmVsKFN0cmluZyYm
KTsKIAotICAgIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gYmVnaW5SZW5kZXJQYXNzKEdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yKTsKLSAgICBSZWY8R1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdp
bkNvbXB1dGVQYXNzKHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPik7Cisg
ICAgUmVmPEdQVVJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRlclBhc3MoY29uc3QgR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3ImKTsKKyAgICBSZWY8R1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdp
bkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9y
PiYpOwogCiAgICAgdm9pZCBjb3B5QnVmZmVyVG9CdWZmZXIoCiAgICAgICAgIGNvbnN0IEdQVUJ1
ZmZlciYgc291cmNlLApAQCAtNjYsMTkgKzY3LDE5IEBAIHB1YmxpYzoKICAgICAgICAgR1BVU2l6
ZTY0KTsKIAogICAgIHZvaWQgY29weUJ1ZmZlclRvVGV4dHVyZSgKLSAgICAgICAgR1BVSW1hZ2VD
b3B5QnVmZmVyIHNvdXJjZSwKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlv
biwKLSAgICAgICAgR1BVRXh0ZW50M0QgY29weVNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFn
ZUNvcHlCdWZmZXImIHNvdXJjZSwKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYg
ZGVzdGluYXRpb24sCisgICAgICAgIGNvbnN0IEdQVUV4dGVudDNEJiBjb3B5U2l6ZSk7CiAKICAg
ICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIoCi0gICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUg
c291cmNlLAotICAgICAgICBHUFVJbWFnZUNvcHlCdWZmZXIgZGVzdGluYXRpb24sCi0gICAgICAg
IEdQVUV4dGVudDNEIGNvcHlTaXplKTsKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVy
ZSYgc291cmNlLAorICAgICAgICBjb25zdCBHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9u
LAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgY29weVNpemUpOwogCiAgICAgdm9pZCBjb3B5
VGV4dHVyZVRvVGV4dHVyZSgKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBzb3VyY2UsCi0g
ICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRpb24sCi0gICAgICAgIEdQVUV4dGVu
dDNEIGNvcHlTaXplKTsKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNl
LAorICAgICAgICBjb25zdCBHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICAg
ICAgY29uc3QgR1BVRXh0ZW50M0QmIGNvcHlTaXplKTsKIAogICAgIHZvaWQgZmlsbEJ1ZmZlcigK
ICAgICAgICAgY29uc3QgR1BVQnVmZmVyJiBkZXN0aW5hdGlvbiwKQEAgLTk4LDEwICs5OSwxOCBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IEdQVUJ1ZmZlciYgZGVzdGluYXRpb24sCiAgICAgICAg
IEdQVVNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCk7CiAKLSAgICBSZWY8R1BVQ29tbWFuZEJ1ZmZl
cj4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+KTsKKyAg
ICBSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4gZmluaXNoKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3I+Jik7CisKKyAgICBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29k
ZXImIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0K
IAogcHJpdmF0ZToKLSAgICBHUFVDb21tYW5kRW5jb2RlcigpID0gZGVmYXVsdDsKKyAgICBHUFVD
b21tYW5kRW5jb2RlcihSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPiYmIGJhY2tpbmcp
CisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yLmgKaW5kZXggNDM1OTZmYzYyZTRjYmIzYjAzYWYwNzViYzdiZjFj
ODI1ZGQ0OTgzZi4uODVlNTI1YmE5OTJiNDgxYWI1ODhmZDZmNThhNTZiMTU4YTdmMmRhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTI2LDEwICsyNiwxNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciA6IHB1Ymxp
YyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICB7IGxhYmVsIH0sCisgICAgICAgIH07CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGFyZUZ1
bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rp
b24uaAppbmRleCAzYWY4Yjc1Mjc4MjIxMDI3YmY3MGFjZmMwZTkxMzhjOGNjZGNjY2Q3Li44M2Yx
NjZmODYzYzI3ZjIwYjM5MTJkNDQ0YzM2M2ZlNjI3MGU4NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDAsNCArNDEsMjcgQEAgZW51bSBjbGFzcyBHUFVDb21wYXJlRnVuY3Rpb24g
OiB1aW50OF90IHsKICAgICBBbHdheXMKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6Q29tcGFy
ZUZ1bmN0aW9uIGNvbnZlcnRUb0JhY2tpbmcoR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5j
dGlvbikKK3sKKyAgICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgIGNhc2UgR1BVQ29t
cGFyZUZ1bmN0aW9uOjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpDb21wYXJl
RnVuY3Rpb246Ok5ldmVyOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVzczsKKyAgICBjYXNl
IEdQVUNvbXBhcmVGdW5jdGlvbjo6RXF1YWw6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
Q29tcGFyZUZ1bmN0aW9uOjpFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlcjsKKyAgICBjYXNlIEdQ
VUNvbXBhcmVGdW5jdGlvbjo6Tm90RXF1YWw6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6
R3JlYXRlckVxdWFsOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlv
bjo6R3JlYXRlckVxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpBbHdheXM6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXM7CisgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwCmluZGV4
IDY4MmFhNzNmYmExNjg3Y2VjNzE5YTcyZmU0Y2I4YjlmZGE2ODJmMDYuLjBiN2JiMWM1OTIyOWQ1
ZWQwN2JkNzY5NTY3OWQ4NmZlNmI4ZjZkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcApAQCAtMzAsNyArMzAsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBWZWN0b3I8UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+
IEdQVUNvbXBpbGF0aW9uSW5mbzo6bWVzc2FnZXMoKSBjb25zdAogewotICAgIHJldHVybiB7IH07
CisgICAgYXV0byBtZXNzYWdlcyA9IG1fYmFja2luZy0+bWVzc2FnZXMoKTsKKyAgICBWZWN0b3I8
UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShtZXNzYWdlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbWVzc2FnZSA6
IG1lc3NhZ2VzKQorICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEdQVUNvbXBpbGF0aW9u
TWVzc2FnZTo6Y3JlYXRlKFdURk1vdmUobWVzc2FnZSkpKTsKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
aWxhdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0
aW9uSW5mby5oCmluZGV4IDUzYjg4OGE2YWIwMWYyYTIxMWYwODFiZTM2ZDFlODI2NTNlMDY4MWMu
LjUwM2MzYWZjMTlkMDFlMzBhYjMzZWMyNGI4Yjk3NTA1ZGFlZTczOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25JbmZv
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
QEAgLTMzLDE1ICszNCwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUNvbXBp
bGF0aW9uSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXBpbGF0aW9uSW5mbz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcGlsYXRpb25JbmZvPiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8R1BVQ29tcGlsYXRpb25JbmZvPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpDb21w
aWxhdGlvbkluZm8+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEdQVUNvbXBpbGF0aW9uSW5mbygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQ29tcGlsYXRpb25JbmZvKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBWZWN0
b3I8UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+IG1lc3NhZ2VzKCkgY29uc3Q7CiAKKyAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25JbmZvJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5n
OyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbyYgYmFja2luZygpIGNv
bnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVUNvbXBpbGF0aW9u
SW5mbygpID0gZGVmYXVsdDsKKyAgICBHUFVDb21waWxhdGlvbkluZm8oUmVmPFBBTDo6V2ViR1BV
OjpDb21waWxhdGlvbkluZm8+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92
ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21waWxh
dGlvbkluZm8+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDhhZjJmNDY1
YzQzYjlhYTNhMTNiMTE0MjE3OGEzNWZhMTk0NGI0NTMuLjVlZGM2OTg5NDAwYjVmMzBmMDUwNGI1
OTY4NzViODFjZWU3N2RiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcApAQCAtMjgsMzQgKzI4LDQyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3RyaW5nIEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6bWVz
c2FnZSgpIGNvbnN0Citjb25zdCBTdHJpbmcmIEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6bWVzc2Fn
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0dXJu
IG1fYmFja2luZy0+bWVzc2FnZSgpOwogfQogCiBHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlIEdQ
VUNvbXBpbGF0aW9uTWVzc2FnZTo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVUNvbXBp
bGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yOworICAgIHN3aXRjaCAobV9iYWNraW5nLT50eXBlKCkp
IHsKKyAgICBjYXNlIFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjoK
KyAgICAgICAgcmV0dXJuIEdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yOworICAgIGNh
c2UgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6Oldhcm5pbmc6CisgICAgICAg
IHJldHVybiBHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpXYXJuaW5nOworICAgIGNhc2UgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm86CisgICAgICAgIHJldHVybiBH
UFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpJbmZvOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCiB1aW50NjRfdCBHUFVDb21waWxhdGlvbk1lc3NhZ2U6Omxp
bmVOdW0oKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPmxp
bmVOdW0oKTsKIH0KIAogdWludDY0X3QgR1BVQ29tcGlsYXRpb25NZXNzYWdlOjpsaW5lUG9zKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5saW5lUG9zKCk7
CiB9CiAKIHVpbnQ2NF90IEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6b2Zmc2V0KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5vZmZzZXQoKTsKIH0KIAogdWlu
dDY0X3QgR1BVQ29tcGlsYXRpb25NZXNzYWdlOjpsZW5ndGgoKSBjb25zdAogewotICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2JhY2tpbmctPmxlbmd0aCgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCmlu
ZGV4IDg0NzYzN2QyOTE5OGIxNDFmNTgyNjI0Y2RlYTk2ODRiOWU5MzYyZGEuLmJhOTRiZjI4MTU4
ZjFhMWIxMDk5Mzg5N2E2YWE3N2IxODY0ZTJiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgiCiAjaW5jbHVkZSA8
Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsMjAgKzM2LDI4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tcGlsYXRpb25NZXNzYWdlIDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQ29tcGlsYXRpb25NZXNzYWdlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxHUFVDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxH
UFVDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQ29tcGlsYXRpb25NZXNzYWdlKCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
UFVDb21waWxhdGlvbk1lc3NhZ2UoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAotICAgIFN0
cmluZyBtZXNzYWdlKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3Q7
CiAgICAgR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgdWludDY0
X3QgbGluZU51bSgpIGNvbnN0OwogICAgIHVpbnQ2NF90IGxpbmVQb3MoKSBjb25zdDsKICAgICB1
aW50NjRfdCBvZmZzZXQoKSBjb25zdDsKICAgICB1aW50NjRfdCBsZW5ndGgoKSBjb25zdDsKIAor
ICAgIFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UmIGJhY2tpbmcoKSB7IHJldHVybiBt
X2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlJiBi
YWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BV
Q29tcGlsYXRpb25NZXNzYWdlKCkgPSBkZWZhdWx0OworICAgIEdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNz
YWdlVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25N
ZXNzYWdlVHlwZS5oCmluZGV4IDMwMjQ1YmE5YjVlZDdjMDU0OTg2Mzg3NTYwNWI2ZGQ3MDE3ZjFh
OTIuLmMxNTAzNTM2OGQxM2MxYWFiMTljMDY3YTJmZDg4MGVjNGM5YjU0ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3Nh
Z2VUeXBlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0
ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVz
c2FnZVR5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBl
bnVtIGNsYXNzIEdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUgOiB1aW50OF90IHsKICAgICBJbmZv
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGUgY29udmVy
dFRvQmFja2luZyhHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlIGNvbXBpbGF0aW9uTWVzc2FnZVR5
cGUpCit7CisgICAgc3dpdGNoIChjb21waWxhdGlvbk1lc3NhZ2VUeXBlKSB7CisgICAgY2FzZSBH
UFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjsKKyAgICBjYXNlIEdQVUNvbXBpbGF0
aW9uTWVzc2FnZVR5cGU6Oldhcm5pbmc6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29t
cGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZzsKKyAgICBjYXNlIEdQVUNvbXBpbGF0aW9uTWVz
c2FnZVR5cGU6OkluZm86CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25N
ZXNzYWdlVHlwZTo6SW5mbzsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCAwN2NlMWUzNTM1ODU4M2Q3OTIyYzdmYjU0
NmJhMGVmYzc2NmU5NTUzLi44NDllNDlkOTY1YzAwM2I5ZjkzMjE0M2E5NDU4YzkzZTNmZjQ4ZWM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFz
c0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuaApAQCAtMjcsMTAgKzI3LDE5IEBACiAKICNpbmNsdWRlICJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgiCiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
RGVzY3JpcHRvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVDb21wdXRl
UGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgeworICAgIFBB
TDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAg
ICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh0aW1lc3RhbXBXcml0ZXMpLAorICAgICAg
ICB9OworICAgIH0KKwogICAgIEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFt
cFdyaXRlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVDb21wdXRlUGFzc0VuY29kZXIuY3BwCmluZGV4IGU2NzI5OWNiNjIyZjQzMWIyODIzYmY1
YjE2ZmM0MmU5YWVkMGNkZDUuLmI1ZTE1ZTUwNDBiNmE1NzEzMmYzZWM4ZTEyNzI1MWQ0NzQ5Njgx
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQ
YXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29t
cHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAtMzcsNzQgKzM3LDcxIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU3RyaW5nIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6bGFiZWwoKSBjb25zdAogewotICAg
IHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVs
KCk7CiB9CiAKLXZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikK
K3ZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsK
KyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVD
b21wdXRlUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSYp
Cit2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0
ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGlu
ZShjb21wdXRlUGlwZWxpbmUuYmFja2luZygpKTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoKEdQVVNpemUzMiB4LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemUzMj4geSwg
c3RkOjpvcHRpb25hbDxHUFVTaXplMzI+IHopCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAg
IFVOVVNFRF9QQVJBTSh5KTsKLSAgICBVTlVTRURfUEFSQU0oeik7CisgICAgbV9iYWNraW5nLT5k
aXNwYXRjaCh4LCB5LCB6KTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3Bh
dGNoSW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6ZTY0IGlu
ZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7Ci0gICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRpc3BhdGNoSW5k
aXJlY3QoaW5kaXJlY3RCdWZmZXIuYmFja2luZygpLCBpbmRpcmVjdE9mZnNldCk7CiB9CiAKLXZv
aWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KGNv
bnN0IEdQVVF1ZXJ5U2V0JiwgR1BVU2l6ZTMyIHF1ZXJ5SW5kZXgpCit2b2lkIEdQVUNvbXB1dGVQ
YXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShjb25zdCBHUFVRdWVyeVNl
dCYgcXVlcnlTZXQsIEdQVVNpemUzMiBxdWVyeUluZGV4KQogewotICAgIFVOVVNFRF9QQVJBTShx
dWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnko
cXVlcnlTZXQuYmFja2luZygpLCBxdWVyeUluZGV4KTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFz
c0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKIHsKLQorICAgIG1fYmFja2lu
Zy0+ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFz
c0VuY29kZXI6OmVuZFBhc3MoKQogewotCisgICAgbV9iYWNraW5nLT5lbmRQYXNzKCk7CiB9CiAK
LXZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiwgY29u
c3QgR1BVQmluZEdyb3VwJiwKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxHUFVCdWZmZXJEeW5h
bWljT2Zmc2V0Pj4mJikKK3ZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAo
R1BVSW5kZXgzMiBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCisgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8R1BVQnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNl
dHMpCiB7Ci0KKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChpbmRleCwgYmluZEdyb3VwLmJh
Y2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQogCi12b2lkIEdQVUNvbXB1dGVQ
YXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIsIGNvbnN0IEdQVUJpbmRHcm91cCYs
Cit2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIgaW5k
ZXgsIGNvbnN0IEdQVUJpbmRHcm91cCYgYmluZEdyb3VwLAogICAgIGNvbnN0IEpTQzo6VWludDMy
QXJyYXkmIGR5bmFtaWNPZmZzZXRzRGF0YSwKICAgICBHUFVTaXplNjQgZHluYW1pY09mZnNldHNE
YXRhU3RhcnQsCiAgICAgR1BVU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhKTsKLSAgICBVTlVTRURfUEFSQU0oZHlu
YW1pY09mZnNldHNEYXRhU3RhcnQpOwotICAgIFVOVVNFRF9QQVJBTShkeW5hbWljT2Zmc2V0c0Rh
dGFMZW5ndGgpOworICAgIG1fYmFja2luZy0+c2V0QmluZEdyb3VwKGluZGV4LCBiaW5kR3JvdXAu
YmFja2luZygpLCBkeW5hbWljT2Zmc2V0c0RhdGEuZGF0YSgpLCBkeW5hbWljT2Zmc2V0c0RhdGEu
bGVuZ3RoKCksIGR5bmFtaWNPZmZzZXRzRGF0YVN0YXJ0LCBkeW5hbWljT2Zmc2V0c0RhdGFMZW5n
dGgpOwogfQogCiB2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAoU3Ry
aW5nJiYgZ3JvdXBMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZ3JvdXBMYWJlbCk7CisgICAg
bV9iYWNraW5nLT5wdXNoRGVidWdHcm91cChXVEZNb3ZlKGdyb3VwTGFiZWwpKTsKIH0KIAogdm9p
ZCBHUFVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogewotCisgICAgbV9iYWNr
aW5nLT5wb3BEZWJ1Z0dyb3VwKCk7CiB9CiAKIHZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpp
bnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFS
QU0obWFya2VyTGFiZWwpOworICAgIG1fYmFja2luZy0+aW5zZXJ0RGVidWdNYXJrZXIoV1RGTW92
ZShtYXJrZXJMYWJlbCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5oCmluZGV4IDgwOGE0ZjY2M2U1MWIxNDg2
OGVjNzM4NWFiOWIzZDE1MDgxYzhmY2QuLjcwNjY4YTcxZDYwMmIyOWVlYjAxODcyNTIzMWVkODA3
YWIzZmJmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNv
bXB1dGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNvbXB1dGVQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQzMkFycmF5Lmg+CiAj
aW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00Miw5ICs0Myw5IEBA
IGNsYXNzIEdQVVF1ZXJ5U2V0OwogCiBjbGFzcyBHUFVDb21wdXRlUGFzc0VuY29kZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVDb21wdXRlUGFzc0VuY29kZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEdQVUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQ
VUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NF
bmNvZGVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
UFVDb21wdXRlUGFzc0VuY29kZXIoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQ
VUNvbXB1dGVQYXNzRW5jb2RlcihXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3Ry
aW5nIGxhYmVsKCkgY29uc3Q7CkBAIC03MSw4ICs3MiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
b3BEZWJ1Z0dyb3VwKCk7CiAgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJr
ZXJMYWJlbCk7CiAKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiBiYWNraW5n
KCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQ
YXNzRW5jb2RlciYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2
YXRlOgotICAgIEdQVUNvbXB1dGVQYXNzRW5jb2RlcigpID0gZGVmYXVsdDsKKyAgICBHUFVDb21w
dXRlUGFzc0VuY29kZXIoUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+JiYgYmFj
a2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAg
fQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+IG1fYmFja2luZzsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNv
bXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCA1NTMxYTZjOGNiNjE0
OGM1MThlYzAzOGNlN2UwMzc3MWY2MDFmYTFlLi4zYzNmY2M0NmY2ZTQ5MDc3YzVmODc5NWVmY2Nl
NTY2NDFhMzAwNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIDogdWludDhfdCB7CiAgICAgRW5kCiB9OwogCitp
bmxpbmUgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24gY29udmVydFRv
QmFja2luZyhHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIGNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24pCit7CisgICAgc3dpdGNoIChjb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
KSB7CisgICAgY2FzZSBHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpCZWdpbm5pbmc6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlv
bjo6QmVnaW5uaW5nOworICAgIGNhc2UgR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
RW5kOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9j
YXRpb246OkVuZDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oCmluZGV4IDY5OWFiZGQ4YjI0ZGViOWIyMTEyNDg1
NGJkNjFmNzIxNDZiZDJmMTQuLjJjOTQ1Njg4MTM2YWQ3ZDlkYmY1MWI1NDkzYzVjYmZiNDVlOTAy
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgKQEAgLTI4LDE3ICsyOCwzNyBAQAogI2luY2x1
ZGUgIkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaCIKICNpbmNsdWRlICJHUFVJbnRl
Z3JhbFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVUXVlcnlTZXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSB7Ci0gICAgUmVm
UHRyPEdQVVF1ZXJ5U2V0PiBxdWVyeVNldDsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChxdWVyeVNldCk7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBxdWVyeVNldC0+
YmFja2luZygpLAorICAgICAgICAgICAgcXVlcnlJbmRleCwKKyAgICAgICAgICAgIFdlYkNvcmU6
OmNvbnZlcnRUb0JhY2tpbmcobG9jYXRpb24pLAorICAgICAgICB9OworICAgIH0KKworICAgIEdQ
VVF1ZXJ5U2V0KiBxdWVyeVNldDsKICAgICBHUFVTaXplMzIgcXVlcnlJbmRleDsKICAgICBHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIGxvY2F0aW9uOwogfTsKIAogdXNpbmcgR1BVQ29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZT47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMg
Y29udmVydFRvQmFja2luZyhjb25zdCBHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYgY29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMpCit7CisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGVzIHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgY29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSA6IGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzKQorICAg
ICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUuY29u
dmVydFRvQmFja2luZygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRl
eCA3ZGJlN2MwNDRkNmFiMmU4OGNlODU0ZmJjZTQ1YTViNjhiZDJlZWZmLi5kNzE0OGVlMzZmYjMz
Y2JiYjU3ODM0NWZjNmY1NTY2NmNkNjJkZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQaXBlbGluZS5jcHAKQEAgLTMyLDE2ICszMiwxNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVDb21wdXRlUGlwZWxpbmU6OmxhYmVs
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4g
bV9iYWNraW5nLT5sYWJlbCgpOwogfQogCi12b2lkIEdQVUNvbXB1dGVQaXBlbGluZTo6c2V0TGFi
ZWwoU3RyaW5nJiYpCit2b2lkIEdQVUNvbXB1dGVQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAK
LVJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90KQorUmVmPEdQVUJpbmRHcm91cExheW91dD4gR1BVQ29tcHV0ZVBpcGVs
aW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIEdQ
VUJpbmRHcm91cExheW91dDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91cExheW91
dDo6Y3JlYXRlKG1fYmFja2luZy0+Z2V0QmluZEdyb3VwTGF5b3V0KGluZGV4KSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQaXBl
bGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5l
LmgKaW5kZXggYzhjZDdjMGZhZDExY2JkZDkyNTg5NzkwYmE0MDU3N2Q1MzE2NmNmZS4uMmU2OWZj
NTVmOWI2YTNjOTEyN2I3YjkxMzZkMjU5ODFmMGMyODVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzYsOSArMzcsOSBAQCBjbGFzcyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiAKIGNs
YXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXB1dGVQaXBl
bGluZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVh
dGUoKQorICAgIHN0YXRpYyBSZWY8R1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVmPFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEdQVUNvbXB1dGVQaXBlbGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9
CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKQEAgLTQ2LDEwICs0NywxNiBAQCBwdWJsaWM6
CiAKICAgICBSZWY8R1BVQmluZEdyb3VwTGF5b3V0PiBnZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgaW5kZXgpOwogCisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYgYmFja2luZygp
IHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmUmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToK
LSAgICBHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisgICAgR1BVQ29tcHV0ZVBpcGVs
aW5lKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiYmIGJhY2tpbmcpCisgICAgICAg
IDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KIAotICAgIFN0cmlu
ZyBtX2xhYmVsOworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiBtX2JhY2tp
bmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggZDFmOTNhODQwZGE1MzBh
OGIyM2VhMjdkNjM1ZTRkZjViOTk1YjkzOC4uMjQxNDM4MGFiZDc5MDIwMDU2ZDU3ZWFmMjA2ZGM5
NmM5NWZmOTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMjcsMTAgKzI3LDIyIEBA
CiAKICNpbmNsdWRlICJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgICAgIGxh
eW91dCA/ICZsYXlvdXQtPmJhY2tpbmcoKSA6IG51bGxwdHIsCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgY29tcHV0ZS5jb252ZXJ0VG9CYWNraW5nKCkKKyAgICAgICAgfTsKKyAgICB9CisK
ICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZSBjb21wdXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ3VsbE1vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUN1bGxNb2RlLmgKaW5kZXggMGQ5MTcxYmI1MzNmNThmYWE3MGJj
NjU2MzZkNmMxZTI1OTQzOWJhOS4uNzkwZGZhNGU2MDc0MzM0MjJhMTZlMDhhNjMwZGVlMzU0NmVh
Y2ExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ3VsbE1v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDdWxsTW9kZS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVQ3VsbE1vZGUgOiB1
aW50OF90IHsKICAgICBCYWNrCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkN1bGxNb2RlIGNv
bnZlcnRUb0JhY2tpbmcoR1BVQ3VsbE1vZGUgY3VsbE1vZGUpCit7CisgICAgc3dpdGNoIChjdWxs
TW9kZSkgeworICAgIGNhc2UgR1BVQ3VsbE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6Ok5vbmU7CisgICAgY2FzZSBHUFVDdWxsTW9kZTo6RnJvbnQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250OworICAgIGNhc2UgR1BV
Q3VsbE1vZGU6OkJhY2s6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkJh
Y2s7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURlcHRoU3RlbmNpbFN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5oCmluZGV4IGM2OTU1ODhiYjBiODE1Njg5MGZkZDBmODg1MmJhNTNmZTcyNTdkMTQuLmE4Yzkx
ZjljZGU2MDMxMmQzOTI5YjdjYTMyYjQ0ZGUzY2M4YTk5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURlcHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGVwdGhTdGVuY2lsU3RhdGUuaApAQCAtMzAsMTAg
KzMwLDI3IEBACiAjaW5jbHVkZSAiR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIgogI2luY2x1ZGUgIkdQ
VVRleHR1cmVGb3JtYXQuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVURlcHRoU3RlbmNpbFN0YXRlIHsKKyAgICBQQUw6OldlYkdQVTo6
RGVwdGhTdGVuY2lsU3RhdGUgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhmb3JtYXQp
LAorICAgICAgICAgICAgZGVwdGhXcml0ZUVuYWJsZWQsCisgICAgICAgICAgICBXZWJDb3JlOjpj
b252ZXJ0VG9CYWNraW5nKGRlcHRoQ29tcGFyZSksCisgICAgICAgICAgICBzdGVuY2lsRnJvbnQu
Y29udmVydFRvQmFja2luZygpLAorICAgICAgICAgICAgc3RlbmNpbEJhY2suY29udmVydFRvQmFj
a2luZygpLAorICAgICAgICAgICAgc3RlbmNpbFJlYWRNYXNrID8gc3RkOjpvcHRpb25hbCB7ICpz
dGVuY2lsUmVhZE1hc2sgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIHN0ZW5jaWxXcml0
ZU1hc2sgPyBzdGQ6Om9wdGlvbmFsIHsgKnN0ZW5jaWxXcml0ZU1hc2sgfSA6IHN0ZDo6bnVsbG9w
dCwKKyAgICAgICAgICAgIGRlcHRoQmlhcywKKyAgICAgICAgICAgIGRlcHRoQmlhc1Nsb3BlU2Nh
bGUsCisgICAgICAgICAgICBkZXB0aEJpYXNDbGFtcCwKKyAgICAgICAgfTsKKyAgICB9CisKICAg
ICBHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdDsKIAogICAgIGJvb2wgZGVwdGhXcml0ZUVuYWJsZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlLmNwcAppbmRleCA1YWE4
N2VmZmVkZTcwZDIxYWFjY2NlMmU5ZThjYTgyODFiNWFiMWIyLi43Yjg3MzIzZjU0ZDg3MTI2MTY2
MjIwOTVjZWIyMmM3NDM2MWUyNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVURldmljZS5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiR1BVU3VwcG9ydGVk
TGltaXRzLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiSlNHUFVDb21wdXRlUGlwZWxpbmUuaCIKKyNpbmNsdWRl
ICJKU0dQVU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJKU0dQVVJlbmRlclBpcGVsaW5l
LmgiCisjaW5jbHVkZSAiSlNHUFVWYWxpZGF0aW9uRXJyb3IuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02MSwxMDYgKzY1LDE1NSBAQCBHUFVEZXZpY2U6On5HUFVEZXZpY2UoKSA9IGRl
ZmF1bHQ7CiAKIFN0cmluZyBHUFVEZXZpY2U6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwogfQog
Ci12b2lkIEdQVURldmljZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVURldmljZTo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3Zl
KGxhYmVsKSk7CiB9CiAKIFJlZjxHUFVTdXBwb3J0ZWRGZWF0dXJlcz4gR1BVRGV2aWNlOjpmZWF0
dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVVN1cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUo
KTsKKyAgICByZXR1cm4gR1BVU3VwcG9ydGVkRmVhdHVyZXM6OmNyZWF0ZShtX2JhY2tpbmctPmZl
YXR1cmVzKCkpOwogfQogCiBSZWY8R1BVU3VwcG9ydGVkTGltaXRzPiBHUFVEZXZpY2U6OmxpbWl0
cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVVN1cHBvcnRlZExpbWl0czo6Y3JlYXRlKCk7Cisg
ICAgcmV0dXJuIEdQVVN1cHBvcnRlZExpbWl0czo6Y3JlYXRlKG1fYmFja2luZy0+bGltaXRzKCkp
OwogfQogCiB2b2lkIEdQVURldmljZTo6ZGVzdHJveSgpCiB7CisgICAgbV9iYWNraW5nLT5kZXN0
cm95KCk7CiB9CiAKLVJlZjxHUFVCdWZmZXI+IEdQVURldmljZTo6Y3JlYXRlQnVmZmVyKGNvbnN0
IEdQVUJ1ZmZlckRlc2NyaXB0b3ImKQorUmVmPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjpjcmVhdGVC
dWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgYnVmZmVyRGVzY3JpcHRvcikKIHsKLSAg
ICByZXR1cm4gR1BVQnVmZmVyOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVQnVmZmVyOjpjcmVh
dGUobV9iYWNraW5nLT5jcmVhdGVCdWZmZXIoYnVmZmVyRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNr
aW5nKCkpKTsKIH0KIAotUmVmPEdQVVRleHR1cmU+IEdQVURldmljZTo6Y3JlYXRlVGV4dHVyZShj
b25zdCBHUFVUZXh0dXJlRGVzY3JpcHRvciYpCitSZWY8R1BVVGV4dHVyZT4gR1BVRGV2aWNlOjpj
cmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlwdG9yJiB0ZXh0dXJlRGVzY3JpcHRv
cikKIHsKLSAgICByZXR1cm4gR1BVVGV4dHVyZTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVVRl
eHR1cmU6OmNyZWF0ZShtX2JhY2tpbmctPmNyZWF0ZVRleHR1cmUodGV4dHVyZURlc2NyaXB0b3Iu
Y29udmVydFRvQmFja2luZygpKSk7CiB9CiAKLVJlZjxHUFVTYW1wbGVyPiBHUFVEZXZpY2U6OmNy
ZWF0ZVNhbXBsZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVTYW1wbGVyRGVzY3JpcHRvcj4mKQor
c3RhdGljIFBBTDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8R1BVU2FtcGxlckRlc2NyaXB0b3I+JiBzYW1wbGVyRGVzY3JpcHRv
cikKIHsKLSAgICByZXR1cm4gR1BVU2FtcGxlcjo6Y3JlYXRlKCk7CisgICAgaWYgKCFzYW1wbGVy
RGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyB9LAorICAgICAg
ICAgICAgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZSwKKyAgICAgICAgICAg
IFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgICAgICBQQUw6
OldlYkdQVTo6QWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlLAorICAgICAgICAgICAgUEFMOjpXZWJH
UFU6OkZpbHRlck1vZGU6Ok5lYXJlc3QsCisgICAgICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVy
TW9kZTo6TmVhcmVzdCwKKyAgICAgICAgICAgIFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2RlOjpOZWFy
ZXN0LAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDMyLAorICAgICAgICAgICAgc3RkOjpu
dWxsb3B0LAorICAgICAgICAgICAgMQorICAgICAgICB9OworICAgIH0KKworICAgIHJldHVybiBz
YW1wbGVyRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpOworfQorCitSZWY8R1BVU2FtcGxl
cj4gR1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVU2FtcGxl
ckRlc2NyaXB0b3I+JiBzYW1wbGVyRGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gR1BVU2FtcGxl
cjo6Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlU2FtcGxlcihjb252ZXJ0VG9CYWNraW5nKHNhbXBs
ZXJEZXNjcmlwdG9yKSkpOwogfQogCi1SZWY8R1BVRXh0ZXJuYWxUZXh0dXJlPiBHUFVEZXZpY2U6
OmltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
JikKK1JlZjxHUFVFeHRlcm5hbFRleHR1cmU+IEdQVURldmljZTo6aW1wb3J0RXh0ZXJuYWxUZXh0
dXJlKGNvbnN0IEdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImIGV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVUV4dGVybmFsVGV4dHVyZTo6Y3JlYXRlKCk7Cisg
ICAgcmV0dXJuIEdQVUV4dGVybmFsVGV4dHVyZTo6Y3JlYXRlKG1fYmFja2luZy0+aW1wb3J0RXh0
ZXJuYWxUZXh0dXJlKGV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY29udmVydFRvQmFja2luZygp
KSk7CiB9CiAKLVJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVURldmljZTo6Y3JlYXRlQmluZEdy
b3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKQorUmVmPEdQVUJp
bmRHcm91cExheW91dD4gR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcikKIHsK
LSAgICByZXR1cm4gR1BVQmluZEdyb3VwTGF5b3V0OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BV
QmluZEdyb3VwTGF5b3V0OjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVCaW5kR3JvdXBMYXlvdXQo
YmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotUmVm
PEdQVVBpcGVsaW5lTGF5b3V0PiBHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0
IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYpCitSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IEdQ
VURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yJiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVVBpcGVs
aW5lTGF5b3V0OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVUGlwZWxpbmVMYXlvdXQ6OmNyZWF0
ZShtX2JhY2tpbmctPmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotUmVmPEdQVUJpbmRHcm91cD4gR1BVRGV2aWNl
OjpjcmVhdGVCaW5kR3JvdXAoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYpCitSZWY8R1BV
QmluZEdyb3VwPiBHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiBiaW5kR3JvdXBEZXNjcmlwdG9yKQogewotICAgIHJldHVybiBHUFVCaW5kR3Jv
dXA6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVCaW5kR3JvdXA6OmNyZWF0ZShtX2JhY2tpbmct
PmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9yLmNvbnZlcnRUb0JhY2tpbmcoKSkp
OwogfQogCi1SZWY8R1BVU2hhZGVyTW9kdWxlPiBHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVs
ZShjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikKK1JlZjxHUFVTaGFkZXJNb2R1bGU+
IEdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3ImIHNoYWRlck1vZHVsZURlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVVNoYWRlck1v
ZHVsZTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKG1fYmFj
a2luZy0+Y3JlYXRlU2hhZGVyTW9kdWxlKHNoYWRlck1vZHVsZURlc2NyaXB0b3IuY29udmVydFRv
QmFja2luZygpKSk7CiB9CiAKLVJlZjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6Y3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKQor
UmVmPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUo
Y29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgY29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoKTsKKyAgICBy
ZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVDb21wdXRl
UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsK
IH0KIAotUmVmPEdQVVJlbmRlclBpcGVsaW5lPiBHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVs
aW5lKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpCitSZWY8R1BVUmVuZGVyUGlw
ZWxpbmU+IEdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yJiByZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJu
IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVUmVuZGVyUGlwZWxp
bmU6OmNyZWF0ZShtX2JhY2tpbmctPmNyZWF0ZVJlbmRlclBpcGVsaW5lKHJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotdm9pZCBHUFVEZXZpY2U6OmNy
ZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3ImLCBDcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY1Byb21pc2UmJikKK3ZvaWQgR1BVRGV2aWNl
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yJiBjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLCBDcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luY1Byb21pc2UmJiBwcm9taXNlKQogeworICAgIG1fYmFja2luZy0+Y3JlYXRlQ29tcHV0ZVBp
cGVsaW5lQXN5bmMoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lPiYmIGNvbXB1dGVQaXBlbGluZSkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVz
b2x2ZShHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZShXVEZNb3ZlKGNvbXB1dGVQaXBlbGluZSkp
KTsKKyAgICB9KTsKIH0KIAotdm9pZCBHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5
bmMoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgQ3JlYXRlUmVuZGVyUGlwZWxp
bmVBc3luY1Byb21pc2UmJikKK3ZvaWQgR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFz
eW5jKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgcmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLCBDcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jUHJvbWlzZSYmIHByb21pc2UpCiB7Cisg
ICAgbV9iYWNraW5nLT5jcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKHJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+JiYgcmVuZGVyUGlwZWxpbmUpIG11dGFi
bGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShX
VEZNb3ZlKHJlbmRlclBpcGVsaW5lKSkpOworICAgIH0pOworfQorCitzdGF0aWMgUEFMOjpXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8R1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYgY29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yKQoreworICAgIGlmICghY29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgcmV0dXJuIGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci0+Y29udmVy
dFRvQmFja2luZygpOwogfQogCi1SZWY8R1BVQ29tbWFuZEVuY29kZXI+IEdQVURldmljZTo6Y3Jl
YXRlQ29tbWFuZEVuY29kZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3I+JikKK1JlZjxHUFVDb21tYW5kRW5jb2Rlcj4gR1BVRGV2aWNlOjpjcmVhdGVDb21t
YW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
cj4mIGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29tbWFuZEVu
Y29kZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKG1f
YmFja2luZy0+Y3JlYXRlQ29tbWFuZEVuY29kZXIoY29udmVydFRvQmFja2luZyhjb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IpKSk7CiB9CiAKLVJlZjxHUFVSZW5kZXJCdW5kbGVFbmNvZGVyPiBHUFVE
ZXZpY2U6OmNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgR1BVUmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3ImKQorUmVmPEdQVVJlbmRlckJ1bmRsZUVuY29kZXI+IEdQVURldmljZTo6
Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvciYgcmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQ
VVJlbmRlckJ1bmRsZUVuY29kZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVSZW5kZXJCdW5k
bGVFbmNvZGVyOjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKHJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNvbnZlcnRUb0JhY2tpbmcoKSkpOwogfQogCi1S
ZWY8R1BVUXVlcnlTZXQ+IEdQVURldmljZTo6Y3JlYXRlUXVlcnlTZXQoY29uc3QgR1BVUXVlcnlT
ZXREZXNjcmlwdG9yJikKK1JlZjxHUFVRdWVyeVNldD4gR1BVRGV2aWNlOjpjcmVhdGVRdWVyeVNl
dChjb25zdCBHUFVRdWVyeVNldERlc2NyaXB0b3ImIHF1ZXJ5U2V0RGVzY3JpcHRvcikKIHsKLSAg
ICByZXR1cm4gR1BVUXVlcnlTZXQ6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVRdWVyeVNldDo6
Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlUXVlcnlTZXQocXVlcnlTZXREZXNjcmlwdG9yLmNvbnZl
cnRUb0JhY2tpbmcoKSkpOwogfQogCi12b2lkIEdQVURldmljZTo6cHVzaEVycm9yU2NvcGUoR1BV
RXJyb3JGaWx0ZXIpCit2b2lkIEdQVURldmljZTo6cHVzaEVycm9yU2NvcGUoR1BVRXJyb3JGaWx0
ZXIgZXJyb3JGaWx0ZXIpCiB7CisgICAgbV9iYWNraW5nLT5wdXNoRXJyb3JTY29wZShjb252ZXJ0
VG9CYWNraW5nKGVycm9yRmlsdGVyKSk7CiB9CiAKLXZvaWQgR1BVRGV2aWNlOjpwb3BFcnJvclNj
b3BlKEVycm9yU2NvcGVQcm9taXNlJiYpCit2b2lkIEdQVURldmljZTo6cG9wRXJyb3JTY29wZShF
cnJvclNjb3BlUHJvbWlzZSYmIGVycm9yU2NvcGVQcm9taXNlKQogeworICAgIG1fYmFja2luZy0+
cG9wRXJyb3JTY29wZShbcHJvbWlzZSA9IFdURk1vdmUoZXJyb3JTY29wZVByb21pc2UpXSAoc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+JiYgZXJyb3IpIG11dGFibGUgeworICAgICAg
ICBpZiAoIWVycm9yKQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHN0ZDo6bnVsbG9wdCk7
CisgICAgICAgIFdURjo6c3dpdGNoT24oV1RGTW92ZSgqZXJyb3IpLCBbJl0gKFJlZjxQQUw6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcj4mJiBvdXRPZk1lbW9yeUVycm9yKSB7CisgICAgICAgICAg
ICBHUFVFcnJvciBlcnJvciA9IFJlZlB0cjxHUFVPdXRPZk1lbW9yeUVycm9yPihHUFVPdXRPZk1l
bW9yeUVycm9yOjpjcmVhdGUoV1RGTW92ZShvdXRPZk1lbW9yeUVycm9yKSkpOworICAgICAgICAg
ICAgcHJvbWlzZS5yZXNvbHZlKGVycm9yKTsKKyAgICAgICAgfSwgWyZdIChSZWY8UEFMOjpXZWJH
UFU6OlZhbGlkYXRpb25FcnJvcj4mJiB2YWxpZGF0aW9uRXJyb3IpIHsKKyAgICAgICAgICAgIEdQ
VUVycm9yIGVycm9yID0gUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4oR1BVVmFsaWRhdGlvbkVy
cm9yOjpjcmVhdGUoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3IpKSk7CisgICAgICAgICAgICBwcm9t
aXNlLnJlc29sdmUoZXJyb3IpOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaAppbmRleCBjNTA1OWUzNWU4NGY1MDBh
MTgyYjdhZTE4YTE3NTg1OGU2MTdmMmMzLi4wNWQ2YjY0M2U0NjA2NGZlNzI3NjIxMjVlODNhZTE2
ODAwZGQ4ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVE
ZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw5ICs3NSw5
IEBAIHN0cnVjdCBHUFVUZXh0dXJlRGVzY3JpcHRvcjsKIAogY2xhc3MgR1BVRGV2aWNlIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVRGV2aWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICBzdGF0aWMgUmVmPEdQVURldmlj
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVEZXZpY2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVEZXZpY2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkdQVURldmljZSgp
OwpAQCAtMTEyLDE1ICsxMTMsMTkgQEAgcHVibGljOgogICAgIFJlZjxHUFVRdWVyeVNldD4gY3Jl
YXRlUXVlcnlTZXQoY29uc3QgR1BVUXVlcnlTZXREZXNjcmlwdG9yJik7CiAKICAgICB2b2lkIHB1
c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyKTsKLSAgICB1c2luZyBFcnJvclNjb3BlUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8R1BVRXJyb3I+
Pj47CisgICAgdXNpbmcgRXJyb3JTY29wZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURM
TnVsbGFibGU8SURMVW5pb248SURMSW50ZXJmYWNlPEdQVU91dE9mTWVtb3J5RXJyb3I+LCBJRExJ
bnRlcmZhY2U8R1BVVmFsaWRhdGlvbkVycm9yPj4+PjsKICAgICB2b2lkIHBvcEVycm9yU2NvcGUo
RXJyb3JTY29wZVByb21pc2UmJik7CiAKICAgICB1c2luZyBMb3N0UHJvbWlzZSA9IERPTVByb21p
c2VQcm94eTxJRExJbnRlcmZhY2U8R1BVRGV2aWNlTG9zdEluZm8+PjsKICAgICBMb3N0UHJvbWlz
ZSYgbG9zdCgpIHsgcmV0dXJuIG1fbG9zdFByb21pc2U7IH0KIAorICAgIFBBTDo6V2ViR1BVOjpE
ZXZpY2UmIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6Oldl
YkdQVTo6RGV2aWNlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHBy
aXZhdGU6Ci0gICAgR1BVRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpCisgICAgR1BVRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmIGJhY2tpbmcpCiAg
ICAgICAgIDogQWN0aXZlRE9NT2JqZWN0IHsgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB9CisgICAg
ICAgICwgbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCiAgICAgewogICAgIH0KIApAQCAtMTM1
LDYgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CiAKICAgICBMb3N0UHJvbWlzZSBtX2xvc3RQcm9taXNlOworICAgIFJlZjxQ
QUw6OldlYkdQVTo6RGV2aWNlPiYmIG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaAppbmRleCA0MjRm
OWM2YzlhNTkxMjcyMTU4YjdjMTk2ZTdjNjViOTk2ZTJiNDQ2Li4yZmY1MmI5ZDlmMWJkMWU5NTE2
OWZiODlmMTU1MTliNDE0MDRkZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiR1BVRmVhdHVyZU5hbWUuaCIKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5o
IgogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VEZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvS2V5VmFsdWVQYWlyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsNiAr
MzcsMjAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVURldmljZURlc2NyaXB0
b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpE
ZXZpY2VEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIChbdGhpc10gKCkg
eworICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVp
cmVkRmVhdHVyZXM7CisgICAgICAgICAgICAgICAgcmVxdWlyZWRGZWF0dXJlcy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPnJlcXVpcmVkRmVhdHVyZXMuc2l6ZSgpKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlcXVpcmVkRmVhdHVyZSA6IHRoaXMtPnJlcXVpcmVkRmVh
dHVyZXMpCisgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkRmVhdHVyZXMudW5jaGVja2VkQXBw
ZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocmVxdWlyZWRGZWF0dXJlKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVpcmVkRmVhdHVyZXM7CisgICAgICAgICAgICB9KSgpLAorICAg
ICAgICB9OworICAgIH0KKwogICAgIFZlY3RvcjxHUFVGZWF0dXJlTmFtZT4gcmVxdWlyZWRGZWF0
dXJlczsKICAgICAvLyBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgdWludDY0X3Q+PiByZXF1
aXJlZExpbWl0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVEZXZpY2VMb3N0SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVEZXZpY2VMb3N0SW5mby5jcHAKaW5kZXggMGQ5Yjg5OWUzMmMzN2JiZGM1NTEzNWQzMjg4MmZm
ZjZlNzA5M2NiZC4uMjhiNjBlMGY1YzI5MGRjNTJmNzY4NTc3MzhkMGM0MTE3M2RmOTY1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZv
LmNwcApAQCAtMjgsMTkgKzI4LDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR1BVRGV2
aWNlTG9zdEluZm86OkdQVURldmljZUxvc3RJbmZvKFJlYXNvbiYmLCBTdHJpbmcmJiBtZXNzYWdl
KQotewotICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKLX0KLQogYXV0byBHUFVEZXZpY2VMb3N0
SW5mbzo6cmVhc29uKCkgY29uc3QgLT4gUmVhc29uCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYmFja2luZy0+cmVhc29uKCk7CisgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3dpdGNoICgqcmVzdWx0KSB7
CisgICAgY2FzZSBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbjo6RGVzdHJveWVkOgorICAg
ICAgICByZXR1cm4gR1BVRGV2aWNlTG9zdFJlYXNvbjo6RGVzdHJveWVkOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1TdHJpbmcgR1BVRGV2aWNlTG9zdElu
Zm86Om1lc3NhZ2UoKSBjb25zdAorY29uc3QgU3RyaW5nJiBHUFVEZXZpY2VMb3N0SW5mbzo6bWVz
c2FnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0
dXJuIG1fYmFja2luZy0+bWVzc2FnZSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uaAppbmRleCA5M2VjNzk0N2EwYjRiYmI4
OWFmZTIxNTM5MWQwZDgzMmNmNTk4MTM5Li45NTE3ZDE5YTY3MzZkZjdlYjJiMmM5NmZiOWVhYmMy
NzVlZjhjNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVE
ZXZpY2VMb3N0SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURl
dmljZUxvc3RJbmZvLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkdQVURldmljZUxv
c3RSZWFzb24uaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVURldmljZUxvc3RJbmZvLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC0zNywxNiArMzgsMjQgQEAgY2xhc3MgR1BVRGV2aWNlTG9zdEluZm8gOiBwdWJsaWMgUmVm
Q291bnRlZDxHUFVEZXZpY2VMb3N0SW5mbz4gewogcHVibGljOgogICAgIHVzaW5nIFJlYXNvbiA9
IHN0ZDo6b3B0aW9uYWw8R1BVRGV2aWNlTG9zdFJlYXNvbj47CiAKLSAgICBzdGF0aWMgUmVmPEdQ
VURldmljZUxvc3RJbmZvPiBjcmVhdGUoUmVhc29uJiYgcmVhc29uLCBTdHJpbmcmJiBtZXNzYWdl
KQorICAgIHN0YXRpYyBSZWY8R1BVRGV2aWNlTG9zdEluZm8+IGNyZWF0ZShSZWY8UEFMOjpXZWJH
UFU6OkRldmljZUxvc3RJbmZvPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHUFVEZXZpY2VMb3N0SW5mbyhXVEZNb3ZlKHJlYXNvbiksIFdURk1vdmUobWVz
c2FnZSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVRGV2aWNlTG9zdEluZm8o
V1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFJlYXNvbiByZWFzb24oKSBjb25zdDsK
LSAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgp
IGNvbnN0OworCisgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RJbmZvJiBiYWNraW5nKCkgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RJbmZv
JiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAg
R1BVRGV2aWNlTG9zdEluZm8oUmVhc29uJiYsIFN0cmluZyYmIG1lc3NhZ2UpOworICAgIEdQVURl
dmljZUxvc3RJbmZvKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlTG9zdEluZm8+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2VMb3N0SW5mbz4gbV9iYWNraW5nOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdFJl
YXNvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdFJlYXNv
bi5oCmluZGV4IGJkOGM4NmY5NWMwMDVkYzkxMjkzNGI1YzU4NDUwOTg5NTViMTE5OWIuLmZiZWE4
Njk1OWE0OGRjMDNjZjJmMzBhNGJkN2NiNjQ5M2I2NjA2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RSZWFzb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0UmVhc29uLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zMyw0ICszNCwxMyBAQCBlbnVtIGNsYXNzIEdQVURldmljZUxvc3RSZWFz
b24gOiB1aW50OF90IHsKICAgICBEZXN0cm95ZWQKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
RGV2aWNlTG9zdFJlYXNvbiBjb252ZXJ0VG9CYWNraW5nKEdQVURldmljZUxvc3RSZWFzb24gZGV2
aWNlTG9zdFJlYXNvbikKK3sKKyAgICBzd2l0Y2ggKGRldmljZUxvc3RSZWFzb24pIHsKKyAgICBj
YXNlIEdQVURldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpEZXZpY2VMb3N0UmVhc29uOjpEZXN0cm95ZWQ7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVFcnJvckZpbHRlci5oCmluZGV4IGUwNWJjNTUyMWVkN2I1MmMzNGFlNWZiNDYy
OWJlNmMwZTIwNzJlZjUuLjYzZjg4ZGE1NjY4NTE5NDFkZGI3N2RhMjcwZjdiZGZhYjAyNWNjOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXJyb3JGaWx0ZXIuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNCw0ICszNSwxNSBAQCBlbnVtIGNsYXNzIEdQVUVycm9yRmls
dGVyIDogdWludDhfdCB7CiAgICAgVmFsaWRhdGlvbgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BV
OjpFcnJvckZpbHRlciBjb252ZXJ0VG9CYWNraW5nKEdQVUVycm9yRmlsdGVyIGVycm9yRmlsdGVy
KQoreworICAgIHN3aXRjaCAoZXJyb3JGaWx0ZXIpIHsKKyAgICBjYXNlIEdQVUVycm9yRmlsdGVy
OjpPdXRPZk1lbW9yeToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcjo6
T3V0T2ZNZW1vcnk7CisgICAgY2FzZSBHUFVFcnJvckZpbHRlcjo6VmFsaWRhdGlvbjoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcjo6VmFsaWRhdGlvbjsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZW50M0REaWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlbnQzRERpY3QuaAppbmRleCAzNzA5ZmU3YzkxN2Y3
OGZiNDQ2ZTVkODc3OGYxNmEwZGJkOWZmYTFhLi45NmY0MjA2ODY3YWIzYzdhMjQ2ZmY0OWMwYzJm
MGMzYTgxMmM2ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVFeHRlbnQzRERpY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVF
eHRlbnQzRERpY3QuaApAQCAtMjYsMTIgKzI2LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUV4dGVudDNELmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUV4dGVudDNERGljdCB7Cisg
ICAgUEFMOjpXZWJHUFU6OkV4dGVudDNERGljdCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB3aWR0aCwKKyAgICAgICAgICAgIGhl
aWdodCwKKyAgICAgICAgICAgIGRlcHRoT3JBcnJheUxheWVycywKKyAgICAgICAgfTsKKyAgICB9
CisKICAgICBHUFVJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aDsKICAgICBHUFVJbnRlZ2VyQ29vcmRp
bmF0ZSBoZWlnaHQ7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgZGVwdGhPckFycmF5TGF5ZXJz
OwpAQCAtMzksNCArNDksMTMgQEAgc3RydWN0IEdQVUV4dGVudDNERGljdCB7CiAKIHVzaW5nIEdQ
VUV4dGVudDNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxHUFVJbnRlZ2VyQ29vcmRpbmF0ZT4sIEdQ
VUV4dGVudDNERGljdD47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6RXh0ZW50M0QgY29udmVydFRv
QmFja2luZyhjb25zdCBHUFVFeHRlbnQzRCYgZXh0ZW50M0QpCit7CisgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24oZXh0ZW50M0QsIFtdIChjb25zdCBWZWN0b3I8R1BVSW50ZWdlckNvb3JkaW5hdGU+
JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpFeHRlbnQzRCB7CisgICAgICAgIHJldHVybiB2ZWN0
b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVUV4dGVudDNERGljdCYgZXh0ZW50M0QpIC0+IFBBTDo6
V2ViR1BVOjpFeHRlbnQzRCB7CisgICAgICAgIHJldHVybiBleHRlbnQzRC5jb252ZXJ0VG9CYWNr
aW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuY3BwCmluZGV4IDMzNmIyN2JlZmUyZTg2NjlmOTVk
Yzg5YjQ3MGQwMDQ3NDFlYmQ0MzUuLjdiMDliNGI1MDVmNmEwZmQ2M2U1NzY2N2Q0N2E3NWEyZmM2
ZDk2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVy
bmFsVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0
ZXJuYWxUZXh0dXJlLmNwcApAQCAtMzAsMTEgKzMwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogU3RyaW5nIEdQVUV4dGVybmFsVGV4dHVyZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVy
biBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9
CiAKLXZvaWQgR1BVRXh0ZXJuYWxUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BV
RXh0ZXJuYWxUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tp
bmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuaAppbmRleCAxMGQzMTUzYjZm
NzQ1ZjZmZjJmM2ExYmIyMmNlMDYzM2Q1NmJlZjE5Li44ZmMyMmIwYmQyMzZjMjg5ZTFlMjljMDA2
ZTRiNWZhMWQxYzhiMzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVFeHRlcm5hbFRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVFeHRlcm5hbFRleHR1cmUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zMywxNiArMzQsMjQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHUFVFeHRlcm5hbFRleHR1cmUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVFeHRlcm5hbFRleHR1cmU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUV4dGVy
bmFsVGV4dHVyZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVUV4dGVybmFsVGV4dHVyZT4g
Y3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPiYmIGJhY2tpbmcpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVFeHRlcm5hbFRleHR1cmUoKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUV4dGVybmFsVGV4dHVyZShXVEZNb3ZlKGJh
Y2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRMYWJlbChTdHJpbmcmJik7CiAKKyAgICBQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkV4
dGVybmFsVGV4dHVyZSYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBw
cml2YXRlOgotICAgIEdQVUV4dGVybmFsVGV4dHVyZSgpID0gZGVmYXVsdDsKKyAgICBHUFVFeHRl
cm5hbFRleHR1cmUoUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAppbmRleCAzY2ZmMjVjNTVlODE2ODc2MDljMmVm
MzVhNWFhZWIzYmVmMTA4MWIzLi4yNWJjYzBmNjk5N2NlM2EyYjBjM2NkNGRiMTU4MmYyZjFjNTM2
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5h
bFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0yNSw5ICsyNSwxNSBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
cnVjdCBHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvci5oCmluZGV4IDY5MzcwMGNlNjFiYjM2Y2NmNGExYjRmY2FkOWNkMjU5ZWFmYzU2OGQuLmY5
ZjRhZjIxZWM3NTJmMzZmY2M3MjFkMWU5ZTdlYTUwZjZlZDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmVEZXNj
cmlwdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgogI2luY2x1ZGUgIkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAi
SFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNyArMzYsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIAogc3RydWN0IEdQVUV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewotICAgIFJlZlB0cjxI
VE1MVmlkZW9FbGVtZW50PiBzb3VyY2U7CisgICAgUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSB0aGUgdmlkZW8gZWxlbWVudC4KKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcoY29sb3JTcGFjZSksCisgICAgICAgIH07CisgICAgfQorCisgICAgSFRNTFZpZGVvRWxlbWVu
dCogc291cmNlOwogICAgIEdQVVByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGZWF0dXJlTmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRmVhdHVyZU5hbWUuaAppbmRl
eCBkZWU1ZjFkYWI2NTkxODU0ZGE3Y2Y3OTc3YmNkNzBiZTkzN2I5ZmFlLi5lY2MyMmYzOTUyOWJi
OWYyZDU5NWY1YTg2YWU4Y2M5NWM4NDYyZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVGZWF0dXJlTmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUZlYXR1cmVOYW1lLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZlYXR1cmVOYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNCArNDEs
MjcgQEAgZW51bSBjbGFzcyBHUFVGZWF0dXJlTmFtZSA6IHVpbnQ4X3QgewogICAgIFRpbWVzdGFt
cFF1ZXJ5CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lIGNvbnZlcnRUb0Jh
Y2tpbmcoR1BVRmVhdHVyZU5hbWUgZmVhdHVyZU5hbWUpCit7CisgICAgc3dpdGNoIChmZWF0dXJl
TmFtZSkgeworICAgIGNhc2UgR1BVRmVhdHVyZU5hbWU6OkRlcHRoQ2xhbXBpbmc6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkRlcHRoQ2xhbXBpbmc7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6RGVwdGgyNHVub3JtU3RlbmNpbDg6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OworICAgIGNhc2Ug
R1BVRmVhdHVyZU5hbWU6OkRlcHRoMzJmbG9hdFN0ZW5jaWw4OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpEZXB0aDMyZmxvYXRTdGVuY2lsODsKKyAgICBjYXNlIEdQ
VUZlYXR1cmVOYW1lOjpQaXBlbGluZVN0YXRpc3RpY3NRdWVyeToKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnk7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQmM6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkJjOworICAgIGNhc2Ug
R1BVRmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkV0YzI6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkV0YzI7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQXN0YzoKKyAgICAgICAgcmV0dXJu
IFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQXN0YzsKKyAgICBj
YXNlIEdQVUZlYXR1cmVOYW1lOjpUaW1lc3RhbXBRdWVyeToKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGltZXN0YW1wUXVlcnk7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUZpbHRlck1vZGUuaAppbmRleCBhNDljMWZiOTNlMmE0NWJkMzAwNzM3YmUxNWEz
ZjVjYmE3NmQ2NzUyLi41YmM0YzE5OGFmMTkwODA3OTAzNzkyNDI2M2QyYjY4YWFkYmZmZGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGaWx0ZXJNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRmlsdGVyTW9kZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVGaWx0ZXJNb2RlIDog
dWludDhfdCB7CiAgICAgTGluZWFyCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkZpbHRlck1v
ZGUgY29udmVydFRvQmFja2luZyhHUFVGaWx0ZXJNb2RlIGZpbHRlck1vZGUpCit7CisgICAgc3dp
dGNoIChmaWx0ZXJNb2RlKSB7CisgICAgY2FzZSBHUFVGaWx0ZXJNb2RlOjpOZWFyZXN0OgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6Ok5lYXJlc3Q7CisgICAgY2FzZSBH
UFVGaWx0ZXJNb2RlOjpMaW5lYXI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6RmlsdGVy
TW9kZTo6TGluZWFyOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFn
bWVudFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0
YXRlLmgKaW5kZXggNDRjZmFlYTVhYTdiNDUxZDFmZGZhY2QwYmY4MDI1NjI4MzFlYmI4ZC4uOWIy
MGUyZWY4OGI1MDVjNWU0Mjg4N2RlODljODAzMGFiMjIzNTlkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21lbnRTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUZyYWdtZW50U3RhdGUuaApAQCAtMjcsMTEgKzI3LDM3
IEBACiAKICNpbmNsdWRlICJHUFVDb2xvclRhcmdldFN0YXRlLmgiCiAjaW5jbHVkZSAiR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZy
YWdtZW50U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVUZyYWdtZW50U3RhdGUgOiBwdWJsaWMgR1BVUHJvZ3JhbW1hYmxl
U3RhZ2UgeworICAgIFBBTDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1vZHVsZSk7CisgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCisgICAg
ICAgICAgICAgICAgZW50cnlQb2ludCwKKyAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BV
OjpQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0YW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkp
OworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogdGhpcy0+
Y29uc3RhbnRzKQorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFw
cGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50czsKKyAgICAgICAgICAgICAgICB9KSgp
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAg
ICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKKyAgICAg
ICAgICAgICAgICB0YXJnZXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+dGFyZ2V0cy5z
aXplKCkpOworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogdGhpcy0+dGFyZ2V0
cykKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQodGFyZ2V0LmNv
bnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldHM7CisgICAg
ICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0KKwogICAgIFZlY3RvcjxHUFVDb2xvclRh
cmdldFN0YXRlPiB0YXJnZXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVRnJvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVGcm9udEZhY2UuaAppbmRleCBiMTkyYzQ2MzVhNGJlODRmNWQ4MWUyMzQzOGFiMmU3NTdk
YWQwYmRmLi5iMjI1MDAzZmM5ZjkzMjE3MDMwMDlkMWQ0NzQxZTQ0NWE4ZmFjNGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVGcm9udEZhY2UgOiB1aW50OF90IHsK
ICAgICBDdwogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpGcm9udEZhY2UgY29udmVydFRvQmFj
a2luZyhHUFVGcm9udEZhY2UgZnJvbnRGYWNlKQoreworICAgIHN3aXRjaCAoZnJvbnRGYWNlKSB7
CisgICAgY2FzZSBHUFVGcm9udEZhY2U6OkNjdzoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpGcm9udEZhY2U6OkNDVzsKKyAgICBjYXNlIEdQVUZyb250RmFjZTo6Q3c6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6RnJvbnRGYWNlOjpDVzsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVJbWFnZUNvcHlCdWZmZXIuaAppbmRleCAxNTNjMmRiYjE2NzRmN2Y5Y2ZhOTEw
MzYzZTEyZDI2OWY3MDNiMjllLi4yNzFhNTBmZTFkZTQ4YzVlYmY1YmQxZGFkMjJjNTUwYTUzYTM4
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNv
cHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNv
cHlCdWZmZXIuaApAQCAtMjcsMTIgKzI3LDI2IEBACiAKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIK
ICNpbmNsdWRlICJHUFVJbWFnZURhdGFMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVSW1hZ2VDb3B5QnVmZmVyIDogcHVi
bGljIEdQVUltYWdlRGF0YUxheW91dCB7Ci0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gYnVmZmVyOwor
ICAgIFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIgY29udmVydFRvQmFja2luZygpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgYnl0ZXNQ
ZXJSb3csCisgICAgICAgICAgICAgICAgcm93c1BlckltYWdlLAorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIGJ1ZmZlci0+YmFja2luZygpCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BV
QnVmZmVyKiBidWZmZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKaW5kZXggM2I3MTQ2OWY2
OTA2NWE0N2Q2NjYyZWVkMGM3YmY3YjM3MDk3MmJiMi4uNGNjY2FiN2YwMDU2NmEzMTM2YTI1Nzg5
MGI4OTFiOTdkYzM1YTg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMjksMTIgKzI5LDIxIEBA
CiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlIHsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYW52YXMgZWxlbWVudC4KKyAgICAgICAg
ICAgIG9yaWdpbiA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpv
cmlnaW4pIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgIH07CisgICAgfQorCiAgICAgc3RkOjp2
YXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNv
dXJjZTsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVU9yaWdpbjJEPiBvcmlnaW47CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCmlu
ZGV4IGQ5ZGQ3M2MyZjFmNDEwYTYwMjhmMWIzNTYwYWVkMWEyZThhZGIzNGUuLjc5MzI3ZWNkODVk
M2VlMzAwNDEyZTNiYjgwODA2NWY5NTEwMzdkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlUZXh0dXJlLmgKQEAgLTMwLDEyICszMCwyNCBA
QAogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlQXNwZWN0Lmgi
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlUZXh0dXJlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVJbWFnZUNvcHlUZXh0dXJlIHsKLSAgICBSZWZQdHI8
R1BVVGV4dHVyZT4gdGV4dHVyZTsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBj
b252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCh0ZXh0dXJlKTsK
KyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRleHR1cmUtPmJhY2tpbmcoKSwKKyAgICAg
ICAgICAgIG1pcExldmVsLAorICAgICAgICAgICAgb3JpZ2luID8gc3RkOjpvcHRpb25hbCB7IFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKm9yaWdpbikgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAg
ICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYXNwZWN0KSwKKyAgICAgICAgfTsKKyAg
ICB9CisKKyAgICBHUFVUZXh0dXJlKiB0ZXh0dXJlOwogICAgIEdQVUludGVnZXJDb29yZGluYXRl
IG1pcExldmVsOwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVT3JpZ2luM0Q+IG9yaWdpbjsKICAgICBH
UFVUZXh0dXJlQXNwZWN0IGFzcGVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaAppbmRleCAwZThmYmU4NzRi
M2ZjMTY2MjQwMjQxZGJmYmIxYWYyOWM4M2YyMGE4Li5lMTVmOGRmYWFhNzkwYzJkNjkzZTBhMTll
NmNlMzkzYjQzMTZjOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCkBAIC0yNywxMCArMjcsMjYgQEAK
IAogI2luY2x1ZGUgIkdQVUltYWdlQ29weVRleHR1cmUuaCIKICNpbmNsdWRlICJHUFVQcmVkZWZp
bmVkQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBH
UFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEdQVUltYWdlQ29weVRleHR1cmUgewor
ICAgIFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHRleHR1cmUpOworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHR1cmUtPmJhY2tpbmcoKSwKKyAg
ICAgICAgICAgICAgICBtaXBMZXZlbCwKKyAgICAgICAgICAgICAgICBvcmlnaW4gPyBzdGQ6Om9w
dGlvbmFsIHsgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZygqb3JpZ2luKSB9IDogc3RkOjpudWxs
b3B0LAorICAgICAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYXNwZWN0KSwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGNv
bG9yU3BhY2UpLAorICAgICAgICAgICAgcHJlbXVsdGlwbGllZEFscGhhLAorICAgICAgICB9Owor
ICAgIH0KKwogICAgIEdQVVByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CiAgICAgYm9v
bCBwcmVtdWx0aXBsaWVkQWxwaGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVSW1hZ2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVJbWFnZURhdGFMYXlvdXQuaAppbmRleCA5ZjVkZGIyMWYxNDkyZjI3YTcwOGU1
MDRhNWVkMjVhMDU1YzFlZjM4Li41ZDFiMWQ5ZWY4NDMzNDVlMGM1MjYyNmZlNmI3YmFmN2I2ZDRm
YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZURh
dGFMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZURh
dGFMYXlvdXQuaApAQCAtMjcsMTAgKzI3LDIwIEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1
Y3QgR1BVSW1hZ2VEYXRhTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgIGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgcm93
c1BlckltYWdlLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBvZmZzZXQ7CiAg
ICAgc3RkOjpvcHRpb25hbDxHUFVTaXplMzI+IGJ5dGVzUGVyUm93OwogICAgIHN0ZDo6b3B0aW9u
YWw8R1BVU2l6ZTMyPiByb3dzUGVySW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVJbmRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVSW5kZXhGb3JtYXQuaAppbmRleCBiNjBhNTIxNzMwMjI1Mjc4ZjI2NzIyZDFkZjY0
ZmQ3YjI5MWZjZTQxLi5hNmMyNDNhM2Y0MmZjOWY3MGZhZjE5MTVmYjlmZjg1YjA4ZGViOTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbmRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUluZGV4Rm9ybWF0LmgKQEAg
LTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVJbmRleEZvcm1h
dCA6IHVpbnQ4X3QgewogICAgIFVpbnQzMgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpJbmRl
eEZvcm1hdCBjb252ZXJ0VG9CYWNraW5nKEdQVUluZGV4Rm9ybWF0IGluZGV4Rm9ybWF0KQorewor
ICAgIHN3aXRjaCAoaW5kZXhGb3JtYXQpIHsKKyAgICBjYXNlIEdQVUluZGV4Rm9ybWF0OjpVaW50
MTY6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ6OlVpbnQxNjsKKyAg
ICBjYXNlIEdQVUluZGV4Rm9ybWF0OjpVaW50MzI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6SW5kZXhGb3JtYXQ6OlVpbnQzMjsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVTG9hZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVMb2FkT3Au
aAppbmRleCA4ODQ4MzBhYTlkNzY2NjI4ZjY1NWVkNzFhZTk0OTIwYjI5OTQxZjlhLi5kNjVjODhj
YTczOGRhNTg3NzM3OTkwN2MzNWI4MjhiY2Q3NjcxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVMb2FkT3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVMb2FkT3AuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
TG9hZE9wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMsNCArMzQsMTMgQEAgZW51
bSBjbGFzcyBHUFVMb2FkT3AgOiB1aW50OF90IHsKICAgICBMb2FkCiB9OwogCitpbmxpbmUgUEFM
OjpXZWJHUFU6OkxvYWRPcCBjb252ZXJ0VG9CYWNraW5nKEdQVUxvYWRPcCBsb2FkT3ApCit7Cisg
ICAgc3dpdGNoIChsb2FkT3ApIHsKKyAgICBjYXNlIEdQVUxvYWRPcDo6TG9hZDoKKyAgICAgICAg
cmV0dXJuIFBBTDo6V2ViR1BVOjpMb2FkT3A6OkxvYWQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVU1hcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVU1hcE1vZGUuaAppbmRleCBhM2U3ZGE3OGI1MzExMzFiZWVhYjUxZTVlNjlmMjAxNjk1YjI4
ZTQ0Li41ODMxNWYzMzhhMTYwMmI4ZWZhNzZiYTgxZWRmYjY0MTY3OTU0OWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVNYXBNb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVTWFwTW9kZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw0ICs0MCwxNCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFVGbGFnc0NvbnN0YW50IFdSSVRFID0gMHgw
MDAyOwogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgY29udmVydE1hcE1v
ZGVGbGFnc1RvQmFja2luZyhHUFVNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzKQoreworICAgIFBB
TDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgcmVzdWx0ID0gMDsKKyAgICBpZiAobWFwTW9kZUZsYWdz
ICYgR1BVTWFwTW9kZTo6UkVBRCkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpNYXBN
b2RlOjpSRUFEOworICAgIGlmIChtYXBNb2RlRmxhZ3MgJiBHUFVNYXBNb2RlOjpXUklURSkKKyAg
ICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpNYXBNb2RlOjpXUklURTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVNdWx0aXNhbXBsZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVNdWx0aXNhbXBsZVN0YXRlLmgKaW5kZXggOTlhNWUwZjU1YTU3YTE2MzZlZjZhMzBkMTlkNmM3
NTFmMGE2NTYyMi4uMWE2ZmU2ZDZjN2NjMWI0ZWM2ZWI0NWM4YTBmZjM5ODcxZjJiYWU3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVTXVsdGlzYW1wbGVTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU11bHRpc2FtcGxlU3Rh
dGUuaApAQCAtMjYsMTAgKzI2LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU11bHRp
c2FtcGxlU3RhdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVTXVsdGlz
YW1wbGVTdGF0ZSB7CisgICAgUEFMOjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGUgY29udmVydFRv
QmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgY291
bnQsCisgICAgICAgICAgICBtYXNrLAorICAgICAgICAgICAgYWxwaGFUb0NvdmVyYWdlRW5hYmxl
ZCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBHUFVTaXplMzIgY291bnQ7CiAgICAgR1BVU2Ft
cGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oCmluZGV4IDQwMDRjZTU4MzhlYjdlMGFhMjc5NTdiZTM0MGM4MzdhMWRlN2U1OWQuLjUwMzQ4
MTQyOTQzNjIzN2ZlY2U5MmZmYTExMjVmNTRmZWFhODNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAt
MjUsMTEgKzI1LDE3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgbGFiZWwgfTsK
KyAgICB9CisKICAgICBTdHJpbmcgbGFiZWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVPcmlnaW4yRERpY3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjJERGljdC5oCmluZGV4IGQ2ZWY1NDc5NDY2M2I5MDJmMWE2
MzE0NWZhZDU2MDBjMTc4YjI1OWMuLmUyOGQzOTQxYmM0ZjYyOTViODBhMDZkMDYyMWQ0YzI0MDY4
MTQzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdp
bjJERGljdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjJE
RGljdC5oCkBAIC0yNiwxNiArMjYsMzQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BV
SW50ZWdyYWxUeXBlcy5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3Jp
Z2luMkQuaD4KICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVT3JpZ2luMkREaWN0IHsKKyAgICBQQUw6
OldlYkdQVTo6T3JpZ2luMkREaWN0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHgsCisgICAgICAgICAgICB5LAorICAgICAgICB9
OworICAgIH0KKwogICAgIEdQVUludGVnZXJDb29yZGluYXRlIHg7CiAgICAgR1BVSW50ZWdlckNv
b3JkaW5hdGUgeTsKIH07CiAKIHVzaW5nIEdQVU9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3Rv
cjxHUFVJbnRlZ2VyQ29vcmRpbmF0ZT4sIEdQVU9yaWdpbjJERGljdD47CiAKK2lubGluZSBQQUw6
OldlYkdQVTo6T3JpZ2luMkQgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVPcmlnaW4yRCYgb3Jp
Z2luMkQpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24ob3JpZ2luMkQsIFtdIChjb25zdCBW
ZWN0b3I8R1BVSW50ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpPcmln
aW4yRCB7CisgICAgICAgIHJldHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVU9yaWdp
bjJERGljdCYgb3JpZ2luMkQpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4yRCB7CisgICAgICAgIHJl
dHVybiBvcmlnaW4yRC5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjNERGljdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKaW5kZXggNjU3
NzgyZGVjNzk3OGQyYTMyYmFiZDFhY2ZlNDMxMWE1MTgyN2IyYS4uYjU1M2U2MjYzZTVmOTRhODRi
NjJjNTQ0NmMwNzRhODY2MTBmZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKQEAgLTI2LDEyICsyNiwyMiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVPcmlnaW4z
RERpY3QgeworICAgIFBBTDo6V2ViR1BVOjpPcmlnaW4zRERpY3QgY29udmVydFRvQmFja2luZygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeCwKKyAgICAgICAg
ICAgIHksCisgICAgICAgICAgICB6LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUludGVn
ZXJDb29yZGluYXRlIHg7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgeTsKICAgICBHUFVJbnRl
Z2VyQ29vcmRpbmF0ZSB6OwpAQCAtMzksNCArNDksMTMgQEAgc3RydWN0IEdQVU9yaWdpbjNERGlj
dCB7CiAKIHVzaW5nIEdQVU9yaWdpbjNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZT4sIEdQVU9yaWdpbjNERGljdD47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6T3Jp
Z2luM0QgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVPcmlnaW4zRCYgb3JpZ2luM0QpCit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24ob3JpZ2luM0QsIFtdIChjb25zdCBWZWN0b3I8R1BVSW50
ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4zRCB7CisgICAg
ICAgIHJldHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVU9yaWdpbjNERGljdCYgb3Jp
Z2luM0QpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4zRCB7CisgICAgICAgIHJldHVybiBvcmlnaW4z
RC5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU91dE9mTWVtb3J5RXJyb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU91dE9mTWVtb3J5RXJyb3IuaAppbmRleCAxM2M1ZDQw
YjczYzkwOGViN2Y5MDFlNTdmYzM2NDJmNTAxYzkxMTBlLi42MTVlYjE2NjEzYjZhYzljNWE0Zjk4
YmJiYzdkM2NiMWU3OTA0OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVPdXRPZk1lbW9yeUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVT3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVy
cm9yLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKQEAgLTM3LDggKzM4LDI1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR1BVT3V0T2ZNZW1vcnlFcnJvcigpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEdQVU91
dE9mTWVtb3J5RXJyb3I+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I+
JiYgYmFja2luZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVU91dE9m
TWVtb3J5RXJyb3IoV1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKworICAgIFBBTDo6V2ViR1BV
OjpPdXRPZk1lbW9yeUVycm9yKiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nLmdldCgpOyB9
CisgICAgY29uc3QgUEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3IqIGJhY2tpbmcoKSBjb25z
dCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVPdXRPZk1l
bW9yeUVycm9yKCkgPSBkZWZhdWx0OworICAgIEdQVU91dE9mTWVtb3J5RXJyb3IoKQorICAgIHsK
KyAgICB9CisKKyAgICBHUFVPdXRPZk1lbW9yeUVycm9yKFJlZjxQQUw6OldlYkdQVTo6T3V0T2ZN
ZW1vcnlFcnJvcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tp
bmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5
RXJyb3I+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCA1YzNiMTg3
MTVjNWQyMGI5YjJjODBiN2YyNTRjNTRhNjg4M2YxNjQzLi4yYWRhNzNlOTdmMzM5NjI1ZjZhYjA5
YmQyNmVmNThjYzg4Yzk1Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywxMSArMjcsMjAg
QEAKIAogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiR1BV
UGlwZWxpbmVMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
R1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZSB7Ci0gICAgUmVmUHRyPEdQVVBpcGVsaW5lTGF5b3V0PiBsYXlvdXQ7CisgICAgUEFMOjpXZWJH
UFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2UgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAg
bGF5b3V0ID8gJmxheW91dC0+YmFja2luZygpIDogbnVsbHB0ciwKKyAgICAgICAgfTsKKyAgICB9
CisKKyAgICBHUFVQaXBlbGluZUxheW91dCogbGF5b3V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCmluZGV4IGE3
OTcwMWNjZTQ4NzE3MDUxMmE4ZjQxNzMyMjU0ODEyM2Q2NzI3MWMuLmM3OTM2NGMzODM2OTNiZmY2
ZDgyMzYxYjU2MWM4Njg1NTlkYzI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dC5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVQaXBlbGluZUxheW91dDo6bGFiZWwoKSBjb25z
dAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tp
bmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVUGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKFN0cmlu
ZyYmKQordm9pZCBHUFVQaXBlbGluZUxheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7
CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dC5oCmluZGV4
IDU0MWEzZmRiZWU5OTcxNDdjNWZmZDMwNjA4YTM1NmRjNTAyNDk2MWQuLmFlZTI4NmM2NWI2ZDM3
YmI4MzI1MWY0OTJkNzljZDkyMzc0ZWY2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVM
YXlvdXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDE2ICszNCwyNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVBpcGVsaW5lTGF5b3V0IDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVUGlwZWxpbmVMYXlvdXQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQ
VVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUGlwZWxpbmVMYXlv
dXQ+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0PiYmIGJhY2tpbmcpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVQaXBlbGluZUxheW91dCgpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUGlwZWxpbmVMYXlvdXQoV1RGTW92ZShi
YWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0JiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lTGF5b3V0JiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHBy
aXZhdGU6Ci0gICAgR1BVUGlwZWxpbmVMYXlvdXQoKSA9IGRlZmF1bHQ7CisgICAgR1BVUGlwZWxp
bmVMYXlvdXQoUmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4mJiBiYWNraW5nKQorICAg
ICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0PiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oCmluZGV4IDMzMzkyYzBmMTUxMWY1ZWFjMjgwOWVkNTc1YWU1NzQ4NjQ5
NWJhZWMuLmEyNGI5N2Q3Mzk1MDZjMWNiOTNiNGJhMDg0YWVlZGM5ZDNmODFjOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oCkBAIC0yNywxMSArMjcsMjggQEAKIAogI2luY2x1ZGUgIkdQVUJpbmRH
cm91cExheW91dC5oIgogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlw
dG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBjb252
ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICB7IGxhYmVsIH0sCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICBW
ZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0
Pj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgICAgICAgICBiaW5kR3JvdXBMYXlvdXRzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+YmluZEdyb3VwTGF5b3V0cy5zaXplKCkpOworICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYmluZEdyb3VwTGF5b3V0IDogdGhpcy0+Ymlu
ZEdyb3VwTGF5b3V0cykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYmluZEdyb3VwTGF5
b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgYmluZEdyb3VwTGF5b3V0cy51bmNoZWNrZWRBcHBl
bmQoYmluZEdyb3VwTGF5b3V0LT5iYWNraW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgICAgIH0pKCksCisg
ICAgICAgIH07CisgICAgfQorCiAgICAgVmVjdG9yPFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+
PiBiaW5kR3JvdXBMYXlvdXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaAppbmRleCA4M2ZkYWVlNTY0
MjQ1MjU1M2Y3MmIwNWEzYjcxOTlmYzU3ZTJiZDk2Li4xNWI0YjllNTdiMDlkNmZjMmUwZWU4MTZi
NzEwYTYxMTQwN2QxNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzcsNCArMzgsMjEgQEAgZW51bSBjbGFzcyBHUFVQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKICAgICBDb21wdXRlU2hhZGVySW52b2NhdGlvbnMKIH07CiAKK2lubGlu
ZSBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lIGNvbnZlcnRUb0JhY2tpbmcoR1BV
UGlwZWxpbmVTdGF0aXN0aWNOYW1lIHBpcGVsaW5lU3RhdGlzdGljTmFtZSkKK3sKKyAgICBzd2l0
Y2ggKHBpcGVsaW5lU3RhdGlzdGljTmFtZSkgeworICAgIGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0
aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9uczoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU6OlZlcnRleFNoYWRlckludm9jYXRpb25zOworICAg
IGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVySW52b2NhdGlvbnM6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVySW52
b2NhdGlvbnM7CisgICAgY2FzZSBHUFVQaXBlbGluZVN0YXRpc3RpY05hbWU6OkNsaXBwZXJQcmlt
aXRpdmVzT3V0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6Q2xpcHBlclByaW1pdGl2ZXNPdXQ7CisgICAgY2FzZSBHUFVQaXBlbGluZVN0YXRpc3Rp
Y05hbWU6OkZyYWdtZW50U2hhZGVySW52b2NhdGlvbnM6CisgICAgICAgIHJldHVybiBQQUw6Oldl
YkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpGcmFnbWVudFNoYWRlckludm9jYXRpb25zOwor
ICAgIGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDb21wdXRlU2hhZGVySW52b2NhdGlv
bnM6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpD
b21wdXRlU2hhZGVySW52b2NhdGlvbnM7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVBvd2VyUHJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVUG93ZXJQcmVmZXJlbmNlLmgKaW5kZXggYzk1MjIyMzk3MmUwNjdhYTczZDM0NTI5MGMzNDNj
ZDM4OGU2ZmFjMS4uOGYzNGI3ODEwODVkYTc0OWFkYTEyMjcyNDIyZDQ3YzE5Y2Y2MTIxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNl
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5jZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BV
UG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiAgICAgSGlnaFBlcmZvcm1hbmNlCiB9OwogCitp
bmxpbmUgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZSBjb252ZXJ0VG9CYWNraW5nKEdQVVBv
d2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UpCit7CisgICAgc3dpdGNoIChwb3dlclByZWZl
cmVuY2UpIHsKKyAgICBjYXNlIEdQVVBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXI6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcjsKKyAgICBjYXNl
IEdQVVBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaAppbmRleCA1
YmNjZGZlNzc0YmFiNTNkNTVkZjZmMDM3ZmYyNzI1ODRhOGFkNjVkLi4wNGUwNTE5NWM3ZjlkMWI2
NzZkN2Q5YTUxYWRmMjNlMzg4ZjhiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVByZWRlZmluZWRDb2xvclNwYWNlLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzMsNCArMzQsMTMgQEAgZW51bSBjbGFzcyBHUFVQcmVkZWZpbmVkQ29s
b3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
UHJlZGVmaW5lZENvbG9yU3BhY2UgY29udmVydFRvQmFja2luZyhHUFVQcmVkZWZpbmVkQ29sb3JT
cGFjZSBwcmVkZWZpbmVkQ29sb3JTcGFjZSkKK3sKKyAgICBzd2l0Y2ggKHByZWRlZmluZWRDb2xv
clNwYWNlKSB7CisgICAgY2FzZSBHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQjoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQjsKKyAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXggOTQ0YjY3
YjNiZWVlMDQwZTEzMmIzYjkwYjMyZDE1OTJlZGE3YzYxZi4uMjgyMGRlNDM0ZGY1MjQzMDExMTUw
MDhhODc4NjU5YzI5NDg4NTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVQcmltaXRpdmVTdGF0ZS5oCkBAIC0zMSwxMCArMzEsMjIgQEAKICNpbmNsdWRlICJH
UFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCIKICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBy
aW1pdGl2ZVN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVByaW1p
dGl2ZVN0YXRlIHsKKyAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlU3RhdGUgY29udmVydFRvQmFj
a2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyh0b3BvbG9neSksCisgICAgICAgICAgICBzdHJpcEluZGV4Rm9y
bWF0ID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKnN0cmlwSW5k
ZXhGb3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKGZyb250RmFjZSksCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKGN1bGxNb2RlKSwKKyAgICAgICAgICAgIHVuY2xpcHBlZERlcHRoLAorICAgICAgICB9Owor
ICAgIH0KKwogICAgIEdQVVByaW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5OwogICAgIHN0ZDo6b3B0
aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IHN0cmlwSW5kZXhGb3JtYXQ7CiAgICAgR1BVRnJvbnRGYWNl
IGZyb250RmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VVByaW1pdGl2ZVRvcG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQ
cmltaXRpdmVUb3BvbG9neS5oCmluZGV4IGI0OWJjYmMyNDI2MTljYjU0NjUyYTg3OWI5ZDg2OGE4
MTUwMTdhMGUuLjQwY2Q3ZmQ5MDAxMjVmMTIwODkwZjUwMjVlMWI1YTdiYTRjMjNmODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByaW1pdGl2ZVRvcG9sb2d5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3ku
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw0ICszOCwyMSBAQCBlbnVtIGNsYXNz
IEdQVVByaW1pdGl2ZVRvcG9sb2d5IDogdWludDhfdCB7CiAgICAgVHJpYW5nbGVTdHJpcAogfTsK
IAoraW5saW5lIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neSBjb252ZXJ0VG9CYWNraW5n
KEdQVVByaW1pdGl2ZVRvcG9sb2d5IHByaW1pdGl2ZVRvcG9sb2d5KQoreworICAgIHN3aXRjaCAo
cHJpbWl0aXZlVG9wb2xvZ3kpIHsKKyAgICBjYXNlIEdQVVByaW1pdGl2ZVRvcG9sb2d5OjpQb2lu
dExpc3Q6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBv
aW50TGlzdDsKKyAgICBjYXNlIEdQVVByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdDoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neTo6TGluZUxpc3Q7CisgICAg
Y2FzZSBHUFVQcmltaXRpdmVUb3BvbG9neTo6TGluZVN0cmlwOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXA7CisgICAgY2FzZSBHUFVQcmlt
aXRpdmVUb3BvbG9neTo6VHJpYW5nbGVMaXN0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpUcmlhbmdsZUxpc3Q7CisgICAgY2FzZSBHUFVQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVTdHJpcDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmlt
aXRpdmVUb3BvbG9neTo6VHJpYW5nbGVTdHJpcDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVByb2dyYW1tYWJsZVN0YWdlLmgKaW5kZXggODVkOWIzMjU2OGRiMzFlZTQ4YTkx
Yzk2OThkODY2MTY0MTIyZThjMi4uYTExNWE2YzA5OGQxZTkzNGNiNzFiNDUyNzdhYmU0OGI1NmQ3
YTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcm9n
cmFtbWFibGVTdGFnZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaD4KICNpbmNsdWRlIDx3dGYvS2V5VmFsdWVQYWlyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM1LDcg
KzM2LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIEdQVVBpcGVsaW5lQ29uc3RhbnRW
YWx1ZSA9IGRvdWJsZTsgLy8gTWF5IHJlcHJlc2VudCBXR1NM4oCZcyBib29sLCBmMzIsIGkzMiwg
dTMyLgogCiBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2UgewotICAgIFJlZlB0cjxHUFVTaGFk
ZXJNb2R1bGU+IG1vZHVsZTsKKyAgICBQQUw6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UgY29u
dmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobW9kdWxlKTsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG1vZHVsZS0+YmFja2luZygpLAorICAgICAgICAg
ICAgZW50cnlQb2ludCwKKyAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQQUw6OldlYkdQVTo6UGlwZWxpbmVDb25zdGFu
dFZhbHVlPj4gY29uc3RhbnRzOworICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgYXV0byYgY29uc3RhbnQgOiB0aGlzLT5jb25zdGFudHMpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0YW50cy51bmNoZWNrZWRBcHBlbmQobWFrZUtleVZhbHVlUGFpcihjb25zdGFu
dC5rZXksIGNvbnN0YW50LnZhbHVlKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50
czsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVU2hhZGVy
TW9kdWxlKiBtb2R1bGU7CiAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CiAgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIEdQVVBpcGVsaW5lQ29uc3RhbnRWYWx1ZT4+IGNvbnN0YW50czsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldC5jcHAKaW5kZXgg
Y2U2OGMyODllNzk1N2RmNGVjOGNlMDcxOTE1Yjg2MWMzNDBjYWQwYy4uNTY1MTNlMWM0MWI2YWMw
M2I1MDRjZWIwMDQxODFiOGYwM2I0N2UxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUXVlcnlTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVF1ZXJ5U2V0LmNwcApAQCAtMzIsMTUgKzMyLDE3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogU3RyaW5nIEdQVVF1ZXJ5U2V0OjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0K
IAotdm9pZCBHUFVRdWVyeVNldDo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVF1ZXJ5U2V0
OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdU
Rk1vdmUobGFiZWwpKTsKIH0KIAogdm9pZCBHUFVRdWVyeVNldDo6ZGVzdHJveSgpCiB7CisgICAg
bV9iYWNraW5nLT5kZXN0cm95KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVRdWVyeVNldC5oCmluZGV4IDVmZjI1NjhlNThlMmJhMmQ3NjExYmYwZjc0MzgxNDU0
ZDE1ODA2ZjYuLmI2NWExNGZkMWM3ZTE0NjQ1MGZmZmVlMWViYTZkMjViMmI1NjAzYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXQuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUXVlcnlTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDkgKzM0LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVRdWVyeVNldCA6IHB1YmxpYyBSZWZD
b3VudGVkPEdQVVF1ZXJ5U2V0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVRdWVyeVNl
dD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVF1ZXJ5U2V0PiBjcmVhdGUoUmVmPFBBTDo6
V2ViR1BVOjpRdWVyeVNldD4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgR1BVUXVlcnlTZXQoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQ
VVF1ZXJ5U2V0KFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBTdHJpbmcgbGFiZWwo
KSBjb25zdDsKQEAgLTQzLDggKzQ0LDE2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVzdHJveSgp
OwogCisgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNr
aW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBiYWNraW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVUXVlcnlTZXQoKSA9IGRl
ZmF1bHQ7CisgICAgR1BVUXVlcnlTZXQoUmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4mJiBiYWNr
aW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBtX2JhY2tpbmc7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldERlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3Jp
cHRvci5oCmluZGV4IGMwMTMxYWQ1OTdjNzA3ZjQ0OTA0ZWZlZTY0YjkzNTU0ZDlkNjlmYTcuLjAy
OGRhNWNiZDEzN2UzMGRhOTQxNDA1NDRhODE2YmUxMWYxZmM1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCkBAIC0y
OSwxMiArMjksMjkgQEAKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2lu
Y2x1ZGUgIkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oIgogI2luY2x1ZGUgIkdQVVF1ZXJ5VHlw
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlw
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVUXVlcnlTZXREZXNjcmlwdG9yIDog
cHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UXVlcnlT
ZXREZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZl
cnRUb0JhY2tpbmcodHlwZSksCisgICAgICAgICAgICBjb3VudCwKKyAgICAgICAgICAgIChbdGhp
c10gKCkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0
aXN0aWNOYW1lPiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgICAgICAgICAgcGlwZWxpbmVT
dGF0aXN0aWNzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+cGlwZWxpbmVTdGF0aXN0aWNz
LnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwaXBlbGluZVN0YXRp
c3RpYyA6IHRoaXMtPnBpcGVsaW5lU3RhdGlzdGljcykKKyAgICAgICAgICAgICAgICAgICAgcGlw
ZWxpbmVTdGF0aXN0aWNzLnVuY2hlY2tlZEFwcGVuZChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5n
KHBpcGVsaW5lU3RhdGlzdGljKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBpcGVsaW5lU3Rh
dGlzdGljczsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BV
UXVlcnlUeXBlIHR5cGU7CiAgICAgR1BVU2l6ZTMyIGNvdW50OwogICAgIFZlY3RvcjxHUFVQaXBl
bGluZVN0YXRpc3RpY05hbWU+IHBpcGVsaW5lU3RhdGlzdGljczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlUeXBlLmgKaW5kZXggNTkyYzVjMmQ5OGNkNmE4NGUyNzM0
ZTY2ZDgxN2MxODQ0YWFmNDU2Mi4uYzhkNDE0NDFmNWYyYzcwMTM4MGQwNThhNjk0MWYwYWUxYWQ0
ODhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlUeXBlLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVUXVlcnlUeXBl
IDogdWludDhfdCB7CiAgICAgVGltZXN0YW1wCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlF1
ZXJ5VHlwZSBjb252ZXJ0VG9CYWNraW5nKEdQVVF1ZXJ5VHlwZSBxdWVyeVR5cGUpCit7CisgICAg
c3dpdGNoIChxdWVyeVR5cGUpIHsKKyAgICBjYXNlIEdQVVF1ZXJ5VHlwZTo6T2NjbHVzaW9uOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZTo6T2NjbHVzaW9uOworICAgIGNh
c2UgR1BVUXVlcnlUeXBlOjpQaXBlbGluZVN0YXRpc3RpY3M6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6UXVlcnlUeXBlOjpQaXBlbGluZVN0YXRpc3RpY3M7CisgICAgY2FzZSBHUFVRdWVy
eVR5cGU6OlRpbWVzdGFtcDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6
OlRpbWVzdGFtcDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUuY3BwCmluZGV4IDkx
YWY0OGE0OTQxZDM4ZTdhMWJiNjQ5ZDU3Y2FhNzJkOWEyNWU3NzcuLmU3MjVmNWY4NzdmZWMzMDZj
YzVlOGViOWIxZDJiZjU1MTYzMGM3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVRdWV1ZS5jcHAKQEAgLTM0LDUzICszNCw1OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFN0cmluZyBHUFVRdWV1ZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBs
OjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BV
UXVldWU6OnNldExhYmVsKFN0cmluZyYmKQordm9pZCBHUFVRdWV1ZTo6c2V0TGFiZWwoU3RyaW5n
JiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9
CiAKLXZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
PikKK3ZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
PiYmIGNvbW1hbmRCdWZmZXJzKQogeworICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVy
PFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNvbW1hbmRCdWZmZXJzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBjb21tYW5kQnVmZmVyIDogY29tbWFuZEJ1ZmZlcnMpIHsKKyAgICAgICAgaWYgKCFjb21t
YW5kQnVmZmVyKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJlc3VsdC51bmNoZWNr
ZWRBcHBlbmQoY29tbWFuZEJ1ZmZlci0+YmFja2luZygpKTsKKyAgICB9CisgICAgbV9iYWNraW5n
LT5zdWJtaXQoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBHUFVRdWV1ZTo6b25TdWJtaXR0
ZWRXb3JrRG9uZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKQordm9pZCBHUFVRdWV1ZTo6b25TdWJt
aXR0ZWRXb3JrRG9uZShPblN1Ym1pdHRlZFdvcmtEb25lUHJvbWlzZSYmIHByb21pc2UpCiB7Cisg
ICAgbV9iYWNraW5nLT5vblN1Ym1pdHRlZFdvcmtEb25lKFtwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBHUFVRdWV1ZTo6d3JpdGVCdWZmZXIoCi0gICAgY29uc3QgR1BVQnVm
ZmVyJiwKKyAgICBjb25zdCBHUFVCdWZmZXImIGJ1ZmZlciwKICAgICBHUFVTaXplNjQgYnVmZmVy
T2Zmc2V0LAogICAgIEJ1ZmZlclNvdXJjZSYmIGRhdGEsCiAgICAgc3RkOjpvcHRpb25hbDxHUFVT
aXplNjQ+IGRhdGFPZmZzZXQsCiAgICAgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemUpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKGJ1ZmZlck9mZnNldCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGEp
OwotICAgIFVOVVNFRF9QQVJBTShkYXRhT2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7
CisgICAgbV9iYWNraW5nLT53cml0ZUJ1ZmZlcihidWZmZXIuYmFja2luZygpLCBidWZmZXJPZmZz
ZXQsIGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpLCBkYXRhT2Zmc2V0LnZhbHVlX29yKDApLCBz
aXplKTsKIH0KIAogdm9pZCBHUFVRdWV1ZTo6d3JpdGVUZXh0dXJlKAotICAgIEdQVUltYWdlQ29w
eVRleHR1cmUgZGVzdGluYXRpb24sCisgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVz
dGluYXRpb24sCiAgICAgQnVmZmVyU291cmNlJiYgZGF0YSwKLSAgICBHUFVJbWFnZURhdGFMYXlv
dXQsCi0gICAgR1BVRXh0ZW50M0Qgc2l6ZSkKKyAgICBjb25zdCBHUFVJbWFnZURhdGFMYXlvdXQm
IGltYWdlRGF0YUxheW91dCwKKyAgICBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKIHsKLSAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oc2l6ZSk7CisgICAgbV9iYWNraW5nLT53cml0ZVRleHR1cmUoZGVzdGluYXRp
b24uY29udmVydFRvQmFja2luZygpLCBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSwgaW1hZ2VE
YXRhTGF5b3V0LmNvbnZlcnRUb0JhY2tpbmcoKSwgY29udmVydFRvQmFja2luZyhzaXplKSk7CiB9
CiAKIHZvaWQgR1BVUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKAotICAgIEdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2Ugc291cmNlLAotICAgIEdQVUltYWdlQ29weVRleHR1cmVUYWdn
ZWQgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0ZW50M0QgY29weVNpemUpCisgICAgY29uc3QgR1BV
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291cmNlLAorICAgIGNvbnN0IEdQVUltYWdlQ29weVRl
eHR1cmVUYWdnZWQmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IEdQVUV4dGVudDNEJiBjb3B5U2l6
ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGlu
YXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7CisgICAgbV9iYWNraW5nLT5jb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFja2luZygpLCBkZXN0aW5h
dGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmcoY29weVNpemUpKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmgKaW5kZXggZmRiNTEz
MTZlY2YxZDE0MDIzODFmZjRlNzhkMjM1NTk4ZjQ3MTlkZC4uZmVjMmZiZDI3NGRmOTVkMzQ1Njlk
ZGJhNWRiNWUwYzAyN2MyMzdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVR
dWV1ZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KQEAgLTQ3LDE3ICs0OCwxOCBAQCBjbGFzcyBHUFVCdWZmZXI7CiAKIGNsYXNzIEdQVVF1
ZXVlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUXVldWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEdQVVF1ZXVlPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUXVldWU+IGNyZWF0ZShS
ZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBHUFVRdWV1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVUXVldWUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCi0gICAgdm9pZCBzdWJtaXQo
VmVjdG9yPFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPj4pOworICAgIHZvaWQgc3VibWl0KFZlY3Rv
cjxSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4+JiYpOwogCi0gICAgdm9pZCBvblN1Ym1pdHRlZFdv
cmtEb25lKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHVzaW5nIE9uU3VibWl0dGVkV29y
a0RvbmVQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETE51bGw+OworICAgIHZvaWQgb25T
dWJtaXR0ZWRXb3JrRG9uZShPblN1Ym1pdHRlZFdvcmtEb25lUHJvbWlzZSYmKTsKIAogICAgIHZv
aWQgd3JpdGVCdWZmZXIoCiAgICAgICAgIGNvbnN0IEdQVUJ1ZmZlciYsCkBAIC02NywxOCArNjks
MjYgQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4pOwogCiAgICAg
dm9pZCB3cml0ZVRleHR1cmUoCi0gICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRp
b24sCisgICAgICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAogICAg
ICAgICBCdWZmZXJTb3VyY2UmJiBkYXRhLAotICAgICAgICBHUFVJbWFnZURhdGFMYXlvdXQsCi0g
ICAgICAgIEdQVUV4dGVudDNEIHNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFnZURhdGFMYXlv
dXQmLAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSk7CiAKICAgICB2b2lkIGNvcHlF
eHRlcm5hbEltYWdlVG9UZXh0dXJlKAotICAgICAgICBHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
IHNvdXJjZSwKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCBkZXN0aW5hdGlvbiwK
LSAgICAgICAgR1BVRXh0ZW50M0QgY29weVNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1
cmVUYWdnZWQmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgY29weVNp
emUpOworCisgICAgUEFMOjpXZWJHUFU6OlF1ZXVlJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNr
aW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlJiBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgR1BVUXVldWUoKSA9IGRlZmF1bHQ7
CisgICAgR1BVUXVldWUoUmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OlF1ZXVlPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmNwcAppbmRleCAwZWFlZGZmN2Q1
YTAxY2Y5M2QyMzE2MzE2YTlkNTQ2YzdkY2YzZmMwLi45MGI4OTkwOGNiY2ZlNmE1YzhmZTE1OWI3
NTQ3ZDNlZDJhZDk5YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVSZW5kZXJCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVVJlbmRlckJ1bmRsZS5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFN0cmluZyBHUFVSZW5kZXJCdW5kbGU6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwog
fQogCi12b2lkIEdQVVJlbmRlckJ1bmRsZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVJl
bmRlckJ1bmRsZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5z
ZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmgKaW5kZXggNDhjYjY5OWU1YzlkNTE2OTBmNzY5
NzAyMDQyYTNiZTVjZjc5M2ViNi4uMTBjMmRmN2Q4ODcyYTg2MjA3ODI2ZjNiNzFlNWNmZWQ3N2Vl
NjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
QnVuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVu
ZGxlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
R1BVUmVuZGVyQnVuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyQnVuZGxlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGNyZWF0ZSgpCisgICAgc3Rh
dGljIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1
bmRsZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BV
UmVuZGVyQnVuZGxlKCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVSZW5kZXJC
dW5kbGUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZSYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBB
TDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVSZW5kZXJCdW5kbGUoKSA9IGRlZmF1bHQ7CisgICAg
R1BVUmVuZGVyQnVuZGxlKFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiYmIGJhY2tpbmcp
CisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5k
bGVEZXNjcmlwdG9yLmgKaW5kZXggMGMxYzlmN2Y2MTJhMTU0ODI5N2Y0YjdjMTRhODM4ZDU4YTZj
Nzg5YS4uMjRhMmEyN2RiYWVhYjNjMGJiYWE0ZTkxMjU5OTM2MGVmNmNmMzBhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZURl
c2NyaXB0b3IuaApAQCAtMjYsMTAgKzI2LDE3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RydWN0IEdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIHsgbGFiZWwgfSwKKyAgICAgICAgfTsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3Bw
CmluZGV4IDI1M2E5ZDQxYTcyMDJjZjQ2NTI2Y2NkOGNlMmI2YjA0MDU3ZWM5ZTQuLmJlODU0NDUw
ZjY4ZTdlMjhjZDU0OTE3YjBkOGYxZjZhZGVmODE1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCkBAIC0y
OCw0NCArMjgsNDIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyLmgiCiAKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKICNpbmNsdWRlICJH
UFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJCdW5kbGUuaCIKKyNpbmNsdWRlICJHUFVS
ZW5kZXJQaXBlbGluZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6
OmVtcHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5z
ZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0UGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmUmKQordm9pZCBHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZSYgcmVuZGVy
UGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGluZShyZW5kZXJQaXBlbGluZS5i
YWNraW5nKCkpOwogfQogCi12b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEluZGV4QnVm
ZmVyKGNvbnN0IEdQVUJ1ZmZlciYsIEdQVUluZGV4Rm9ybWF0LCBHUFVTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKK3ZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0SW5kZXhCdWZmZXIoY29uc3QgR1BVQnVmZmVyJiBidWZmZXIsIEdQVUluZGV4Rm9ybWF0
IGluZGV4Rm9ybWF0LCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
c2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6
ZSk7CisgICAgbV9iYWNraW5nLT5zZXRJbmRleEJ1ZmZlcihidWZmZXIuYmFja2luZygpLCBjb252
ZXJ0VG9CYWNraW5nKGluZGV4Rm9ybWF0KSwgb2Zmc2V0LCBzaXplKTsKIH0KIAotdm9pZCBHUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoR1BVSW5kZXgzMiBzbG90LCBjb25z
dCBHUFVCdWZmZXImLCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
c2l6ZSkKK3ZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKEdQVUlu
ZGV4MzIgc2xvdCwgY29uc3QgR1BVQnVmZmVyJiBidWZmZXIsIEdQVVNpemU2NCBvZmZzZXQsIHN0
ZDo6b3B0aW9uYWw8R1BVU2l6ZTY0PiBzaXplKQogewotICAgIFVOVVNFRF9QQVJBTShzbG90KTsK
LSAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisgICAg
bV9iYWNraW5nLT5zZXRWZXJ0ZXhCdWZmZXIoc2xvdCwgYnVmZmVyLmJhY2tpbmcoKSwgb2Zmc2V0
LCBzaXplKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KEdQVVNpemUz
MiB2ZXJ0ZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQsCiAgICAgR1BVU2l6ZTMyIGZp
cnN0VmVydGV4LCBHUFVTaXplMzIgZmlyc3RJbnN0YW5jZSkKIHsKLSAgICBVTlVTRURfUEFSQU0o
dmVydGV4Q291bnQpOwotICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKLSAgICBVTlVT
RURfUEFSQU0oZmlyc3RWZXJ0ZXgpOwotICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsK
KyAgICBtX2JhY2tpbmctPmRyYXcodmVydGV4Q291bnQsIGluc3RhbmNlQ291bnQsIGZpcnN0VmVy
dGV4LCBmaXJzdEluc3RhbmNlKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpk
cmF3SW5kZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQs
CkBAIC03Myw1OCArNzEsNTggQEAgdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5k
ZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmMKICAgICBHUFVTaWdu
ZWRPZmZzZXQzMiBiYXNlVmVydGV4LAogICAgIEdQVVNpemUzMiBmaXJzdEluc3RhbmNlKQogewot
ICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKLSAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VD
b3VudCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOwotICAgIFVOVVNFRF9QQVJBTShi
YXNlVmVydGV4KTsKLSAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7CisgICAgbV9iYWNr
aW5nLT5kcmF3SW5kZXhlZChpbmRleENvdW50LCBpbnN0YW5jZUNvdW50LCBmaXJzdEluZGV4LCBi
YXNlVmVydGV4LCBmaXJzdEluc3RhbmNlKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNv
ZGVyOjpkcmF3SW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6
ZTY0IGluZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7
Ci0gICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRyYXdJ
bmRpcmVjdChpbmRpcmVjdEJ1ZmZlci5iYWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAog
dm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KGNvbnN0IEdQ
VUJ1ZmZlciYgaW5kaXJlY3RCdWZmZXIsIEdQVVNpemU2NCBpbmRpcmVjdE9mZnNldCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0oaW5kaXJlY3RCdWZmZXIpOwotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVj
dE9mZnNldCk7CisgICAgbV9iYWNraW5nLT5kcmF3SW5kZXhlZEluZGlyZWN0KGluZGlyZWN0QnVm
ZmVyLmJhY2tpbmcoKSwgaW5kaXJlY3RPZmZzZXQpOwogfQogCi12b2lkIEdQVVJlbmRlckJ1bmRs
ZUVuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRleDMyLCBjb25zdCBHUFVCaW5kR3JvdXAmLAor
dm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiBpbmRl
eCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8R1BVQnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCiB7Ci0gICAgVU5V
U0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRzKTsKKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChp
bmRleCwgYmluZEdyb3VwLmJhY2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQog
Ci12b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRleDMyLCBj
b25zdCBHUFVCaW5kR3JvdXAmLAordm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRCaW5k
R3JvdXAoR1BVSW5kZXgzMiBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAg
ICAgY29uc3QgVWludDMyQXJyYXkmIGR5bmFtaWNPZmZzZXRzRGF0YSwKICAgICBHUFVTaXplNjQg
ZHluYW1pY09mZnNldHNEYXRhU3RhcnQsCiAgICAgR1BVU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0
YUxlbmd0aCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhU3RhcnQpOwotICAgIFVOVVNFRF9QQVJBTShk
eW5hbWljT2Zmc2V0c0RhdGFMZW5ndGgpOworICAgIG1fYmFja2luZy0+c2V0QmluZEdyb3VwKGlu
ZGV4LCBiaW5kR3JvdXAuYmFja2luZygpLCBkeW5hbWljT2Zmc2V0c0RhdGEuZGF0YSgpLCBkeW5h
bWljT2Zmc2V0c0RhdGEubGVuZ3RoKCksIGR5bmFtaWNPZmZzZXRzRGF0YVN0YXJ0LCBkeW5hbWlj
T2Zmc2V0c0RhdGFMZW5ndGgpOwogfQogCiB2b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1
c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdy
b3VwTGFiZWwpOworICAgIG1fYmFja2luZy0+cHVzaERlYnVnR3JvdXAoV1RGTW92ZShncm91cExh
YmVsKSk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgp
CiB7CisgICAgbV9iYWNraW5nLT5wb3BEZWJ1Z0dyb3VwKCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKKyAgICBtX2JhY2tpbmctPmluc2VydERl
YnVnTWFya2VyKFdURk1vdmUobWFya2VyTGFiZWwpKTsKIH0KIAotUmVmPEdQVVJlbmRlckJ1bmRs
ZT4gR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVUmVuZGVy
QnVuZGxlRGVzY3JpcHRvcj4pCitzdGF0aWMgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3I+JiByZW5kZXJCdW5kbGVEZXNjcmlwdG9yKQogewotICAgIHJldHVybiBHUFVS
ZW5kZXJCdW5kbGU6OmNyZWF0ZSgpOworICAgIGlmICghcmVuZGVyQnVuZGxlRGVzY3JpcHRvcikK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gcmVuZGVyQnVuZGxlRGVzY3JpcHRvci0+
Y29udmVydFRvQmFja2luZygpOworfQorCitSZWY8R1BVUmVuZGVyQnVuZGxlPiBHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpmaW5pc2goY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yPiYgcmVuZGVyQnVuZGxlRGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gR1BVUmVu
ZGVyQnVuZGxlOjpjcmVhdGUobV9iYWNraW5nLT5maW5pc2goY29udmVydFRvQmFja2luZyhyZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggMTk3NTcyODA3
ZDY0ODhlMzA4MTY1N2Y5NDU1N2JhNDViNzk4OGU3Ny4uNGU3OTU2MmZlNjMwNTg3NDE5NTM4ZDcz
MDNlNzAyYTBlYWY3OTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9VaW50MzJBcnJheS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ0LDkgKzQ1LDkgQEAgY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIEdQ
VVJlbmRlckJ1bmRsZUVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVSZW5kZXJCdW5kbGVF
bmNvZGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJCdW5kbGVFbmNvZGVy
PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUmVuZGVyQnVuZGxlRW5jb2Rlcj4gY3JlYXRl
KFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4mJiBiYWNraW5nKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyQnVuZGxlRW5jb2RlcigpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyQnVuZGxlRW5jb2RlcihXVEZN
b3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CkBAIC03
OSwxMCArODAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9wRGVidWdHcm91cCgpOwogICAgIHZv
aWQgaW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpOwogCi0gICAgUmVmPEdQ
VVJlbmRlckJ1bmRsZT4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVUmVuZGVyQnVuZGxlRGVzY3Jp
cHRvcj4pOworICAgIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGZpbmlzaChjb25zdCBzdGQ6Om9wdGlv
bmFsPEdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3I+Jik7CisKKyAgICBQQUw6OldlYkdQVTo6UmVu
ZGVyQnVuZGxlRW5jb2RlciYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyJiBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cigpID0gZGVmYXVsdDsKKyAgICBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyKFJlZjxQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhX
VEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXI+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVy
RGVzY3JpcHRvci5oCmluZGV4IDNkZWIwOGM5OTRlMDhjYzgwZjkxNTczOTQzZTNiODljM2ZiMjg5
ZmEuLjY5NTdlYTU5MzIzMWU3MWRmZTYxNDI3Y2QzZTBmZmEzZGVkZWIyNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVu
ZGxlRW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMjYsMTAgKzI2LDMxIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkdQVVJlbmRlclBhc3NMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
IDogcHVibGljIEdQVVJlbmRlclBhc3NMYXlvdXQgeworICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9
LAorICAgICAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAgICAgICBWZWN0
b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9ybWF0czsKKyAgICAgICAgICAg
ICAgICAgICAgY29sb3JGb3JtYXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+Y29sb3JG
b3JtYXRzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY29s
b3JGb3JtYXQgOiB0aGlzLT5jb2xvckZvcm1hdHMpCisgICAgICAgICAgICAgICAgICAgICAgICBj
b2xvckZvcm1hdHMudW5jaGVja2VkQXBwZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29s
b3JGb3JtYXQpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yRm9ybWF0czsKKyAg
ICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/
IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxG
b3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICAgICAgc2FtcGxlQ291bnQsCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZGVwdGhSZWFkT25seSwKKyAgICAgICAgICAgIHN0
ZW5jaWxSZWFkT25seSwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBib29sIGRlcHRoUmVhZE9u
bHk7CiAgICAgYm9vbCBzdGVuY2lsUmVhZE9ubHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5o
CmluZGV4IDkyYjU0YTczMzAzNGNiYmFjZGZjNDQ2MzFjZTE3NzEzMDhjNTdjYmQuLmIzYjA3MGEz
NDRlYmNhZDU4NzE1MzIxODNlZGRhNTYwMjA1YjI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJHUFVMb2FkT3AuaCIKICNpbmNsdWRlICJH
UFVTdG9yZU9wLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaD4KICNpbmNs
dWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC0zNiw4ICszNywyNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCB7Ci0gICAgUmVmUHRyPEdQVVRleHR1cmVWaWV3
PiB2aWV3OwotICAgIFJlZlB0cjxHUFVUZXh0dXJlVmlldz4gcmVzb2x2ZVRhcmdldDsKKyAgICBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCBjb252ZXJ0VG9CYWNraW5nKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCh2aWV3KTsKKyAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgIHZpZXctPmJhY2tpbmcoKSwKKyAgICAgICAgICAgIHJlc29sdmVUYXJnZXQgPyAm
cmVzb2x2ZVRhcmdldC0+YmFja2luZygpIDogbnVsbHB0ciwKKyAgICAgICAgICAgIFdURjo6c3dp
dGNoT24obG9hZFZhbHVlLCBbJl0gKEdQVUxvYWRPcCBsb2FkT3ApIC0+IHN0ZDo6dmFyaWFudDxQ
QUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFMOjpXZWJHUFU6OkNvbG9yRGlj
dD4geworICAgICAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGxv
YWRPcCk7CisgICAgICAgICAgICB9LCBbJl0gKGNvbnN0IFZlY3Rvcjxkb3VibGU+JiB2ZWN0b3Ip
IC0+IHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFM
OjpXZWJHUFU6OkNvbG9yRGljdD4geworICAgICAgICAgICAgICAgIHJldHVybiB2ZWN0b3I7Cisg
ICAgICAgICAgICB9LCBbJl0gKGNvbnN0IEdQVUNvbG9yRGljdCYgY29sb3IpIC0+IHN0ZDo6dmFy
aWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFMOjpXZWJHUFU6OkNv
bG9yRGljdD4geworICAgICAgICAgICAgICAgIHJldHVybiBjb2xvci5jb252ZXJ0VG9CYWNraW5n
KCk7CisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcoc3RvcmVPcCksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVVGV4dHVyZVZpZXcqIHZp
ZXc7CisgICAgR1BVVGV4dHVyZVZpZXcqIHJlc29sdmVUYXJnZXQ7CiAKICAgICBzdGQ6OnZhcmlh
bnQ8R1BVTG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgR1BVQ29sb3JEaWN0PiBsb2FkVmFsdWU7CiAg
ICAgR1BVU3RvcmVPcCBzdG9yZU9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmgKaW5kZXggODZkOGI0MmVmNzdiZTZjYmEyYmYwZWJlMWZlNDVhY2RlMzZmNzZkNi4uOWE1YjY2
YTFmOWU3NGM5ODk2ODIwMjVlOTAxMzVhY2RhMWFhMjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudC5oCkBAIC0yOSwxMyArMjksMzYgQEAKICNpbmNsdWRlICJHUFVMb2Fk
T3AuaCIKICNpbmNsdWRlICJHUFVTdG9yZU9wLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50Lmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50IHsKLSAgICBSZWZQdHI8R1BVVGV4dHVyZVZpZXc+IHZpZXc7Cisg
ICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50IGNvbnZlcnRU
b0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHZpZXcpOworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgdmlldy0+YmFja2luZygpLAorICAgICAgICAgICAgV1RGOjpz
d2l0Y2hPbihkZXB0aExvYWRWYWx1ZSwgWyZdIChHUFVMb2FkT3AgbG9hZE9wKSAtPiBzdGQ6OnZh
cmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+IHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhsb2FkT3ApOworICAgICAgICAgICAgfSwgWyZd
IChmbG9hdCBmKSAtPiBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+IHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gZjsKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAg
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhkZXB0aFN0b3JlT3ApLAorICAgICAgICAgICAgZGVw
dGhSZWFkT25seSwKKyAgICAgICAgICAgIFdURjo6c3dpdGNoT24oc3RlbmNpbExvYWRWYWx1ZSwg
WyZdIChHUFVMb2FkT3AgbG9hZE9wKSAtPiBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRP
cCwgUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4geworICAgICAgICAgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGxvYWRPcCk7CisgICAgICAgICAgICB9LCBbJl0gKEdQ
VVN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpIC0+IHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6
TG9hZE9wLCBQQUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlPiB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZW5jaWxWYWx1ZTsKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyhzdGVuY2lsU3RvcmVPcCksCisgICAgICAgICAgICBzdGVuY2lsUmVh
ZE9ubHksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVVGV4dHVyZVZpZXcqIHZpZXc7CiAK
ICAgICBzdGQ6OnZhcmlhbnQ8R1BVTG9hZE9wLCBmbG9hdD4gZGVwdGhMb2FkVmFsdWU7CiAgICAg
R1BVU3RvcmVPcCBkZXB0aFN0b3JlT3A7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAppbmRleCBhZmNhOGU4ZjgxMjAx
NDg3MGVhY2YzZDRkMGVjNzdhMmU4MWU3ZTU3Li5hNWZjODMwMDIzMDRmZmIwZDYwY2ZhYjlmNWMy
NDYwY2VjZDVlMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKQEAgLTMxLDE1ICszMSwzMyBAQAogI2luY2x1
ZGUgIkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yIDogcHVibGljIEdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gewor
ICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgKFt0aGlzXSAoKSB7CisgICAgICAg
ICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBj
b2xvckF0dGFjaG1lbnRzOworICAgICAgICAgICAgICAgIGNvbG9yQXR0YWNobWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb2xvckF0dGFjaG1lbnRzLnNpemUoKSk7CisgICAgICAg
ICAgICAgICAgZm9yIChhdXRvJiBjb2xvckF0dGFjaG1lbnQgOiB0aGlzLT5jb2xvckF0dGFjaG1l
bnRzKQorICAgICAgICAgICAgICAgICAgICBjb2xvckF0dGFjaG1lbnRzLnVuY2hlY2tlZEFwcGVu
ZChjb2xvckF0dGFjaG1lbnQuY29udmVydFRvQmFja2luZygpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gY29sb3JBdHRhY2htZW50czsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBk
ZXB0aFN0ZW5jaWxBdHRhY2htZW50ID8gc3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbEF0dGFj
aG1lbnQtPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAg
b2NjbHVzaW9uUXVlcnlTZXQgPyAmb2NjbHVzaW9uUXVlcnlTZXQtPmJhY2tpbmcoKSA6IG51bGxw
dHIsCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHRpbWVzdGFtcFdyaXRl
cyksCisgICAgICAgIH07CisgICAgfQorCiAgICAgVmVjdG9yPEdQVVJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnQ+IGNvbG9yQXR0YWNobWVudHM7CiAgICAgc3RkOjpvcHRpb25hbDxHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudD4gZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKLSAgICBS
ZWZQdHI8R1BVUXVlcnlTZXQ+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgIEdQVVF1ZXJ5U2V0KiBv
Y2NsdXNpb25RdWVyeVNldDsKICAgICBHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVz
dGFtcFdyaXRlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAppbmRleCA1MmYxZDhhOTY5YzJkNmNmZGIxODU3
M2U1YTdkZGRjZWJjZjg2OWM2Li5lOWIxOGM2Y2Q2OTBiYTcyNzZkYjA4MDYyZDczOTk3NTFhZjAz
MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQ
YXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVu
ZGVyUGFzc0VuY29kZXIuY3BwCkBAIC0zNCwzNyArMzQsMzMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTdHJpbmcgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmxhYmVsKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgp
OwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3Zv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogeworICAg
IG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCi12b2lkIEdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZSYpCit2b2lk
IEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGlu
ZSYgcmVuZGVyUGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGluZShyZW5kZXJQ
aXBlbGluZS5iYWNraW5nKCkpOwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJ
bmRleEJ1ZmZlcihjb25zdCBHUFVCdWZmZXImLCBHUFVJbmRleEZvcm1hdCwgR1BVU2l6ZTY0IG9m
ZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemUpCit2b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihjb25zdCBHUFVCdWZmZXImIGJ1ZmZlciwgR1BVSW5kZXhG
b3JtYXQgaW5kZXhGb3JtYXQsIEdQVVNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8R1BVU2l6
ZTY0PiBzaXplKQogewotICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwotICAgIFVOVVNFRF9QQVJB
TShzaXplKTsKKyAgICBtX2JhY2tpbmctPnNldEluZGV4QnVmZmVyKGJ1ZmZlci5iYWNraW5nKCks
IGNvbnZlcnRUb0JhY2tpbmcoaW5kZXhGb3JtYXQpLCBvZmZzZXQsIHNpemUpOwogfQogCi12b2lk
IEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoR1BVSW5kZXgzMiBzbG90LCBj
b25zdCBHUFVCdWZmZXImLCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2
ND4gc2l6ZSkKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihHUFVJ
bmRleDMyIHNsb3QsIGNvbnN0IEdQVUJ1ZmZlciYgYnVmZmVyLCBHUFVTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc2xvdCk7
Ci0gICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNpemUpOworICAg
IG1fYmFja2luZy0+c2V0VmVydGV4QnVmZmVyKHNsb3QsIGJ1ZmZlci5iYWNraW5nKCksIG9mZnNl
dCwgc2l6ZSk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcoR1BVU2l6ZTMy
IHZlcnRleENvdW50LCBHUFVTaXplMzIgaW5zdGFuY2VDb3VudCwKICAgICBHUFVTaXplMzIgZmly
c3RWZXJ0ZXgsIEdQVVNpemUzMiBmaXJzdEluc3RhbmNlKQogewotICAgIFVOVVNFRF9QQVJBTSh2
ZXJ0ZXhDb3VudCk7Ci0gICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlQ291bnQpOwotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFZlcnRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2UpOwor
ICAgIG1fYmFja2luZy0+ZHJhdyh2ZXJ0ZXhDb3VudCwgaW5zdGFuY2VDb3VudCwgZmlyc3RWZXJ0
ZXgsIGZpcnN0SW5zdGFuY2UpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3
SW5kZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQsCkBA
IC03MiwxMDggKzY4LDEwNiBAQCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhl
ZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQwogICAgIEdQVVNpZ25l
ZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCiAgICAgR1BVU2l6ZTMyIGZpcnN0SW5zdGFuY2UpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKGluZGV4Q291bnQpOwotICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNv
dW50KTsKLSAgICBVTlVTRURfUEFSQU0oZmlyc3RJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VWZXJ0ZXgpOwotICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKKyAgICBtX2JhY2tp
bmctPmRyYXdJbmRleGVkKGluZGV4Q291bnQsIGluc3RhbmNlQ291bnQsIGZpcnN0SW5kZXgsIGJh
c2VWZXJ0ZXgsIGZpcnN0SW5zdGFuY2UpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3SW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6ZTY0
IGluZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7Ci0g
ICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRyYXdJbmRp
cmVjdChpbmRpcmVjdEJ1ZmZlci5iYWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAogdm9p
ZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdChjb25zdCBHUFVCdWZm
ZXImIGluZGlyZWN0QnVmZmVyLCBHUFVTaXplNjQgaW5kaXJlY3RPZmZzZXQpCiB7Ci0gICAgVU5V
U0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKLSAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZz
ZXQpOworICAgIG1fYmFja2luZy0+ZHJhd0luZGV4ZWRJbmRpcmVjdChpbmRpcmVjdEJ1ZmZlci5i
YWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAotdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIsIGNvbnN0IEdQVUJpbmRHcm91cCYsCit2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiBpbmRleCwgY29uc3Qg
R1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8R1BVQnVm
ZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCiB7Ci0gICAgVU5VU0VEX1BBUkFN
KGR5bmFtaWNPZmZzZXRzKTsKKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChpbmRleCwgYmlu
ZEdyb3VwLmJhY2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQogCi12b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiwgY29uc3QgR1BVQmlu
ZEdyb3VwJiwKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRl
eDMyIGluZGV4LCBjb25zdCBHUFVCaW5kR3JvdXAmIGJpbmRHcm91cCwKICAgICBjb25zdCBVaW50
MzJBcnJheSYgZHluYW1pY09mZnNldHNEYXRhLAogICAgIEdQVVNpemU2NCBkeW5hbWljT2Zmc2V0
c0RhdGFTdGFydCwKICAgICBHUFVTaXplMzIgZHluYW1pY09mZnNldHNEYXRhTGVuZ3RoKQogewot
ICAgIFVOVVNFRF9QQVJBTShkeW5hbWljT2Zmc2V0c0RhdGEpOwotICAgIFVOVVNFRF9QQVJBTShk
eW5hbWljT2Zmc2V0c0RhdGFTdGFydCk7Ci0gICAgVU5VU0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRz
RGF0YUxlbmd0aCk7CisgICAgbV9iYWNraW5nLT5zZXRCaW5kR3JvdXAoaW5kZXgsIGJpbmRHcm91
cC5iYWNraW5nKCksIGR5bmFtaWNPZmZzZXRzRGF0YS5kYXRhKCksIGR5bmFtaWNPZmZzZXRzRGF0
YS5sZW5ndGgoKSwgZHluYW1pY09mZnNldHNEYXRhU3RhcnQsIGR5bmFtaWNPZmZzZXRzRGF0YUxl
bmd0aCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0
cmluZyYmIGdyb3VwTGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworICAg
IG1fYmFja2luZy0+cHVzaERlYnVnR3JvdXAoV1RGTW92ZShncm91cExhYmVsKSk7CiB9CiAKIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogeworICAgIG1fYmFja2lu
Zy0+cG9wRGVidWdHcm91cCgpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0o
bWFya2VyTGFiZWwpOworICAgIG1fYmFja2luZy0+aW5zZXJ0RGVidWdNYXJrZXIoV1RGTW92ZSht
YXJrZXJMYWJlbCkpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9y
dChmbG9hdCB4LCBmbG9hdCB5LAogICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsCiAgICAg
ZmxvYXQgbWluRGVwdGgsIGZsb2F0IG1heERlcHRoKQogewotICAgIFVOVVNFRF9QQVJBTSh4KTsK
LSAgICBVTlVTRURfUEFSQU0oeSk7Ci0gICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKLSAgICBVTlVT
RURfUEFSQU0oaGVpZ2h0KTsKLSAgICBVTlVTRURfUEFSQU0obWluRGVwdGgpOwotICAgIFVOVVNF
RF9QQVJBTShtYXhEZXB0aCk7CisgICAgbV9iYWNraW5nLT5zZXRWaWV3cG9ydCh4LCB5LCB3aWR0
aCwgaGVpZ2h0LCBtaW5EZXB0aCwgbWF4RGVwdGgpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRTY2lzc29yUmVjdChHUFVJbnRlZ2VyQ29vcmRpbmF0ZSB4LCBHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZSB5LAogICAgIEdQVUludGVnZXJDb29yZGluYXRlIHdpZHRoLCBHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZSBoZWlnaHQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9Q
QVJBTSh5KTsKLSAgICBVTlVTRURfUEFSQU0od2lkdGgpOwotICAgIFVOVVNFRF9QQVJBTShoZWln
aHQpOworICAgIG1fYmFja2luZy0+c2V0U2Npc3NvclJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7
CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJsZW5kQ29uc3RhbnQoR1BVQ29s
b3IpCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KEdQVUNvbG9y
IGNvbG9yKQogeworICAgIG1fYmFja2luZy0+c2V0QmxlbmRDb25zdGFudChjb252ZXJ0VG9CYWNr
aW5nKGNvbG9yKSk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxS
ZWZlcmVuY2UoR1BVU3RlbmNpbFZhbHVlKQordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
U3RlbmNpbFJlZmVyZW5jZShHUFVTdGVuY2lsVmFsdWUgc3RlbmNpbFZhbHVlKQogeworICAgIG1f
YmFja2luZy0+c2V0U3RlbmNpbFJlZmVyZW5jZShzdGVuY2lsVmFsdWUpOwogfQogCiB2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KEdQVVNpemUzMiBxdWVyeUlu
ZGV4KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPmJl
Z2luT2NjbHVzaW9uUXVlcnkocXVlcnlJbmRleCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KCkKIHsKKyAgICBtX2JhY2tpbmctPmVuZE9jY2x1c2lv
blF1ZXJ5KCk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoY29uc3QgR1BVUXVlcnlTZXQmLCBHUFVTaXplMzIgcXVlcnlJbmRleCkK
K3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnko
Y29uc3QgR1BVUXVlcnlTZXQmIHF1ZXJ5U2V0LCBHUFVTaXplMzIgcXVlcnlJbmRleCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7CisgICAgbV9iYWNraW5nLT5iZWdpblBpcGVsaW5l
U3RhdGlzdGljc1F1ZXJ5KHF1ZXJ5U2V0LmJhY2tpbmcoKSwgcXVlcnlJbmRleCk7CiB9CiAKIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKIHsK
KyAgICBtX2JhY2tpbmctPmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CiB9CiAKLXZvaWQg
R1BVUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxSZWZQdHI8R1BVUmVu
ZGVyQnVuZGxlPj4mJikKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVz
KFZlY3RvcjxSZWZQdHI8R1BVUmVuZGVyQnVuZGxlPj4mJiBidW5kbGVzKQogeworICAgIFZlY3Rv
cjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+PiByZXN1
bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYnVuZGxlcy5zaXplKCkpOwor
ICAgIGZvciAoY29uc3QgYXV0byYgYnVuZGxlIDogYnVuZGxlcykgeworICAgICAgICBpZiAoIWJ1
bmRsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQudW5jaGVja2VkQXBw
ZW5kKGJ1bmRsZS0+YmFja2luZygpKTsKKyAgICB9CisgICAgbV9iYWNraW5nLT5leGVjdXRlQnVu
ZGxlcyhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpl
bmRQYXNzKCkKIHsKKyAgICBtX2JhY2tpbmctPmVuZFBhc3MoKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5k
ZXggNDJlODA0MzliNTkzN2M0YmI5ZmNhYzMwNTI4YmE1YTFiOWMyNjYyMC4uZmM4MTcxYzRhZWE0
ZWVlMzZkOGMyNzA3Nzg2NmU3NjBkYjZlZGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1VpbnQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
QEAgLTQ2LDkgKzQ3LDkgQEAgY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIEdQVVJl
bmRlclBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyUGFzc0VuY29kZXI+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUo
KQorICAgIHN0YXRpYyBSZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+IGNyZWF0ZShSZWY8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVSZW5kZXJQYXNzRW5jb2RlcigpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92ZShiYWNraW5nKSkpOwog
ICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwpAQCAtMTAwLDggKzEwMSwxNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8UmVmUHRyPEdQVVJlbmRlckJ1
bmRsZT4+JiYpOwogICAgIHZvaWQgZW5kUGFzcygpOwogCisgICAgUEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NFbmNvZGVyJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3Qg
UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVUmVuZGVyUGFzc0VuY29kZXIoKSA9IGRl
ZmF1bHQ7CisgICAgR1BVUmVuZGVyUGFzc0VuY29kZXIoUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQ
YXNzRW5jb2Rlcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tp
bmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNv
ZGVyPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmgKaW5kZXggODBlMjYwMjg3M2UyNzVjNWE3ODFm
YTNlYTMwOTQyOGI5MmU0M2I5NC4uNjE0NDdmM2U2NzA5MzE0ZGRhOTI3YmE5ZmI4MjFhYzg5MWUx
Y2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
UGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBhc3NMYXlvdXQuaApAQCAtMjksMTEgKzI5LDI4IEBACiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlRm9ybWF0LmgiCiAjaW5jbHVkZSA8
b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
TGF5b3V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0
b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91dCBjb252ZXJ0VG9CYWNr
aW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxhYmVs
IH0sCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9ybWF0czsKKyAgICAgICAgICAgICAgICBj
b2xvckZvcm1hdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb2xvckZvcm1hdHMuc2l6
ZSgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbG9yRm9ybWF0IDogdGhp
cy0+Y29sb3JGb3JtYXRzKQorICAgICAgICAgICAgICAgICAgICBjb2xvckZvcm1hdHMudW5jaGVj
a2VkQXBwZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29sb3JGb3JtYXQpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY29sb3JGb3JtYXRzOworICAgICAgICAgICAgfSkoKSwKKyAgICAg
ICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxGb3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAg
ICAgICAgICBzYW1wbGVDb3VudCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBWZWN0b3I8R1BV
VGV4dHVyZUZvcm1hdD4gY29sb3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVVGV4dHVy
ZUZvcm1hdD4gZGVwdGhTdGVuY2lsRm9ybWF0OwogICAgIEdQVVNpemUzMiBzYW1wbGVDb3VudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVu
ZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKaW5kZXggZmYxNjIxYTMyMTg5ODRhNTlhMzU1ZmUx
ZGEwZjc0NWJlNjMzZjNiMC4uYWQ2MGRjZWZjZWQzYTA1ODkyZjVhMzFlOTcwZDEyOGYxZTI4MjAy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcExvY2F0aW9uIDogdWludDhfdCB7CiAgICAgRW5kCiB9OwogCitpbmxpbmUgUEFMOjpXZWJH
UFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbiBjb252ZXJ0VG9CYWNraW5nKEdQVVJlbmRl
clBhc3NUaW1lc3RhbXBMb2NhdGlvbiByZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24pCit7Cisg
ICAgc3dpdGNoIChyZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24pIHsKKyAgICBjYXNlIEdQVVJl
bmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6QmVnaW5uaW5nOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6QmVnaW5uaW5nOworICAgIGNh
c2UgR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpFbmQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpFbmQ7CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
LmgKaW5kZXggNzdjOTM1YjQ0ODVkZjQzNGQ4MjA4YTBmMWZlZTgwMGRiMjZkM2QyMS4uZmMxMmMx
NGY5NWRiZDVjZWJmMmQxOWIyMTg3ZDZmYWNhMGZmMGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
LmgKQEAgLTI4LDE3ICsyOCwzNyBAQAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNp
bmNsdWRlICJHUFVRdWVyeVNldC5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBhc3NUaW1lc3RhbXBM
b2NhdGlvbi5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZSB7Ci0gICAgUmVmUHRyPEdQVVF1ZXJ5U2V0PiBxdWVyeVNldDsKKyAg
ICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHF1ZXJ5U2V0KTsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHF1ZXJ5U2V0LT5iYWNraW5nKCksCisgICAgICAgICAgICBxdWVyeUlu
ZGV4LAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhsb2NhdGlvbiksCisg
ICAgICAgIH07CisgICAgfQorCisgICAgR1BVUXVlcnlTZXQqIHF1ZXJ5U2V0OwogICAgIEdQVVNp
emUzMiBxdWVyeUluZGV4OwogICAgIEdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbiBsb2Nh
dGlvbjsKIH07CiAKIHVzaW5nIEdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8
R1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPjsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGVzIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcyYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykKK3sKKyAgICBQQUw6
OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyByZXN1bHQ7CisgICAgcmVzdWx0LnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOwor
ICAgIGZvciAoYXV0byYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlIDogcmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlcykKKyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChyZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQaXBl
bGluZS5jcHAKaW5kZXggMTBhZGJjMGYwZjMyNGZjMWIxYzc5YjAwOWRjYWM3MzZiMzdjMGJlMi4u
MmRiNzJjOTRmMTRmZDJhMTk3ZjA2ZGFjOTVhMmQ5ZWEwOTczODE4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMzIs
MTYgKzMyLDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVVJlbmRlclBpcGVs
aW5lOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVSZW5kZXJQaXBlbGlu
ZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVJlbmRlclBpcGVsaW5lOjpzZXRMYWJlbChT
dHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwp
KTsKIH0KIAotUmVmPEdQVUJpbmRHcm91cExheW91dD4gR1BVUmVuZGVyUGlwZWxpbmU6OmdldEJp
bmRHcm91cExheW91dCh1aW50MzJfdCkKK1JlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVVJlbmRl
clBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgpCiB7Ci0gICAgcmV0
dXJuIEdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91
cExheW91dDo6Y3JlYXRlKG1fYmFja2luZy0+Z2V0QmluZEdyb3VwTGF5b3V0KGluZGV4KSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQaXBl
bGluZS5oCmluZGV4IDQ4ZGQ3ODdhYzJmOGVkYmZlYTQ3NzYxYTI4N2EzMjU2MmNkMDk1ZWEuLjA1
OTgwMDJmMzc5YTA0NDFhMmI0NzFiNDdmNWQ0ZGE5ZWFhODU0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KQEAgLTM2LDkgKzM3LDkgQEAgY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0OwogCiBj
bGFzcyBHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVJlbmRlclBpcGVs
aW5lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRl
KCkKKyAgICBzdGF0aWMgUmVmPEdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoUmVmPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVUmVuZGVyUGlwZWxpbmUoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAg
ICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKQEAgLTQ2LDggKzQ3LDE2IEBAIHB1YmxpYzoKIAogICAg
IFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRl
eCk7CiAKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUmIGJhY2tpbmcoKSB7IHJldHVy
biBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUmIGJh
Y2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVS
ZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKyAgICBHUFVSZW5kZXJQaXBlbGluZShSZWY8UEFM
OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5n
KFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6
UmVuZGVyUGlwZWxpbmU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
aW5kZXggZWFmZjlkMDJmZWE4NWI2NjhhY2EzOTA4ZDQ1ZGM1OTg5ZWRlMzk3MS4uMTI5YTk3YzI1
MmFkNmMxZjNhOWVhN2QzNWRlOTk5YTYzNzI3NGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
QEAgLTMyLDEwICszMiwyNiBAQAogI2luY2x1ZGUgIkdQVVByaW1pdGl2ZVN0YXRlLmgiCiAjaW5j
bHVkZSAiR1BVVmVydGV4U3RhdGUuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Ig
OiBwdWJsaWMgR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9
LAorICAgICAgICAgICAgICAgIGxheW91dCA/ICZsYXlvdXQtPmJhY2tpbmcoKSA6IG51bGxwdHIs
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVydGV4LmNvbnZlcnRUb0JhY2tpbmcoKSwK
KyAgICAgICAgICAgIHByaW1pdGl2ZSA/IHN0ZDo6b3B0aW9uYWwgeyBwcmltaXRpdmUtPmNvbnZl
cnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgZGVwdGhTdGVuY2ls
ID8gc3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbC0+Y29udmVydFRvQmFja2luZygpIH0gOiBz
dGQ6Om51bGxvcHQsCisgICAgICAgICAgICBtdWx0aXNhbXBsZSA/IHN0ZDo6b3B0aW9uYWwgeyBt
dWx0aXNhbXBsZS0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAg
ICAgICBmcmFnbWVudCA/IHN0ZDo6b3B0aW9uYWwgeyBmcmFnbWVudC0+Y29udmVydFRvQmFja2lu
ZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVVmVydGV4
U3RhdGUgdmVydGV4OwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVUHJpbWl0aXZlU3RhdGU+IHByaW1p
dGl2ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVURlcHRoU3RlbmNpbFN0YXRlPiBkZXB0aFN0ZW5j
aWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5oCmluZGV4IDdmYTA5ZTkwYmU0Y2VlZjJhYWViMGFlM2M4ZjEyMTQ1
OGM0N2QzNTEuLjJmMGFiYjU2NWIwMDk5NWExM2YxOTA3M2QzMmNlMGIxMzM3M2NkYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5oCkBAIC0yNywxMCArMjcsMTkgQEAKIAogI2luY2x1ZGUgIkdQVVBvd2VyUHJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucyB7CisgICAgUEFMOjpXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBwb3dlclByZWZlcmVuY2UgPyBzdGQ6Om9wdGlv
bmFsIHsgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZygqcG93ZXJQcmVmZXJlbmNlKSB9IDogc3Rk
OjpudWxsb3B0LAorICAgICAgICAgICAgZm9yY2VGYWxsYmFja0FkYXB0ZXIsCisgICAgICAgIH07
CisgICAgfQorCiAgICAgc3RkOjpvcHRpb25hbDxHUFVQb3dlclByZWZlcmVuY2U+IHBvd2VyUHJl
ZmVyZW5jZTsKICAgICBib29sIGZvcmNlRmFsbGJhY2tBZGFwdGVyOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlci5jcHAKaW5kZXggZDU5ODBhMzNiNTU5ZmY2
NDNjNTZiMDk2YjZiMGFiZGNjNTY1Y2FhYy4uZDM3NTY3ZTQ5OWEzZmMxNWE1NmY3MzViNjU2ZGFl
ODMxNzc5NWZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxl
ci5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBH
UFVTYW1wbGVyOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5
KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVTYW1wbGVy
OjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVU2FtcGxlcjo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIuaAppbmRleCAyOGJk
YTY2ZjJkMmRjNjlhNGMwY2NiMzVjNTZhOGY1ZjFhMDQzNzhiLi5kODkyNDliMTNjZDJjNmNiYTA3
NmEwZTljMjZjZDRlZmFlODIzZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVTYW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVU2FtcGxlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0zMywxNiArMzQsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBHUFVTYW1wbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVU2FtcGxlcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8R1BVU2FtcGxlcj4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVNh
bXBsZXI+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+JiYgYmFja2luZykKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVNhbXBsZXIoKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEdQVVNhbXBsZXIoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0K
IAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYp
OwogCisgICAgUEFMOjpXZWJHUFU6OlNhbXBsZXImIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciYgYmFja2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVVNhbXBsZXIoKSA9IGRlZmF1
bHQ7CisgICAgR1BVU2FtcGxlcihSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTYW1wbGVyQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdMYXlv
dXQuaAppbmRleCAzZWVkMWY0YmUwYWFjMTIzOTk4MDI1YTNkZjBkMzA5MzhkOGFkZTVlLi40OWQz
ZThiMDZhNDY2OTNiNzU5ZmRiYTcwNjNiODcxMjFiM2M5NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgKQEAg
LTI2LDEwICsyNiwxOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJHUFVTYW1wbGVyQmlu
ZGluZ1R5cGUuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVNhbXBs
ZXJCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQg
Y29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh0eXBlKSwKKyAgICAgICAgfTsKKyAgICB9
CisKICAgICBHUFVTYW1wbGVyQmluZGluZ1R5cGUgdHlwZTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJCaW5kaW5nVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKaW5kZXgg
NzZhNTdlZmFlNWJhMmVlY2ExZDA5ZTQ3OWNmOWI4MmRmZWU5MWQ3My4uYWEyOWY1YmUxZTYyNWRh
MDc2Y2JkNzk3NjhlNmUwY2I4ZjIyZTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVU2FtcGxlckJpbmRpbmdUeXBl
IDogdWludDhfdCB7CiAgICAgQ29tcGFyaXNvbgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpT
YW1wbGVyQmluZGluZ1R5cGUgY29udmVydFRvQmFja2luZyhHUFVTYW1wbGVyQmluZGluZ1R5cGUg
c2FtcGxlckJpbmRpbmdUeXBlKQoreworICAgIHN3aXRjaCAoc2FtcGxlckJpbmRpbmdUeXBlKSB7
CisgICAgY2FzZSBHUFVTYW1wbGVyQmluZGluZ1R5cGU6OkZpbHRlcmluZzoKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6OkZpbHRlcmluZzsKKyAgICBjYXNl
IEdQVVNhbXBsZXJCaW5kaW5nVHlwZTo6Tm9uRmlsdGVyaW5nOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Tm9uRmlsdGVyaW5nOworICAgIGNhc2UgR1BV
U2FtcGxlckJpbmRpbmdUeXBlOjpDb21wYXJpc29uOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJH
UFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbjsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJEZXNjcmlwdG9yLmgKaW5kZXggNGE1YjljOThhNmY1YmI1
YWRkNTBlZGZlMWM5MzUzMmE2ZWFmMjI0ZS4uODhlMmFjZDgzMWZhNmQxZmVlMzYyZjc3ZWRlMDdl
ZjNjMDczMTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U2FtcGxlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVTYW1wbGVyRGVzY3JpcHRvci5oCkBAIC0zMSwxMCArMzEsMjggQEAKICNpbmNsdWRlICJHUFVP
YmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8b3B0
aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVTYW1wbGVyRGVzY3Jp
cHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6
OlNhbXBsZXJEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6
OmNvbnZlcnRUb0JhY2tpbmcoYWRkcmVzc01vZGVVKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNv
bnZlcnRUb0JhY2tpbmcoYWRkcmVzc01vZGVWKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZl
cnRUb0JhY2tpbmcoYWRkcmVzc01vZGVXKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRU
b0JhY2tpbmcobWFnRmlsdGVyKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcobWluRmlsdGVyKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcobWlw
bWFwRmlsdGVyKSwKKyAgICAgICAgICAgIGxvZE1pbkNsYW1wLAorICAgICAgICAgICAgbG9kTWF4
Q2xhbXAsCisgICAgICAgICAgICBjb21wYXJlID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNv
bnZlcnRUb0JhY2tpbmcoKmNvbXBhcmUpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBt
YXhBbmlzb3Ryb3B5LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUFkZHJlc3NNb2RlIGFk
ZHJlc3NNb2RlVTsKICAgICBHUFVBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVY7CiAgICAgR1BVQWRk
cmVzc01vZGUgYWRkcmVzc01vZGVXOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVNoYWRlck1vZHVsZS5jcHAKaW5kZXggNGNhNzU4MDhhNzRlMjhhZjBkMTgwZDQyZTVi
NTc3ZTU5MzhkYzhiYy4uMzQ2MTMyNTA0MTBiZDJmODk2NTg0YjRmODk4NjdkMjFiNTliZTlkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGUu
Y3BwCkBAIC0yNSwyMCArMjUsMjUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIkpTR1BVQ29tcGlsYXRpb25JbmZvLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVVNoYWRlck1vZHVsZTo6bGFiZWwoKSBj
b25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2Jh
Y2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJp
bmcmJikKK3ZvaWQgR1BVU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsK
KyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVT
aGFkZXJNb2R1bGU6OmNvbXBpbGF0aW9uSW5mbyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmKQordm9p
ZCBHUFVTaGFkZXJNb2R1bGU6OmNvbXBpbGF0aW9uSW5mbyhDb21waWxhdGlvbkluZm9Qcm9taXNl
JiYgcHJvbWlzZSkKIHsKKyAgICBtX2JhY2tpbmctPmNvbXBpbGF0aW9uSW5mbyhbcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldIChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbz4mJiBj
b21waWxhdGlvbkluZm8pIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoR1BVQ29t
cGlsYXRpb25JbmZvOjpjcmVhdGUoV1RGTW92ZShjb21waWxhdGlvbkluZm8pKSk7CisgICAgfSk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNo
YWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9k
dWxlLmgKaW5kZXggYjJlNTE3MzllZWM4NmE2YmQ4ZTE2MDdhYTU0OTc5N2JjODI1MDhmNC4uN2Nk
YTBmYjVmYjRiZDhkOWJiNzY0ZjgzMGEwOTczMzM1OGEwYmUyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmgKQEAgLTI2LDYgKzI2LDkgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0LmgiCisjaW5jbHVk
ZSAiR1BVQ29tcGlsYXRpb25JbmZvLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYsMTggKzM5LDI3IEBAIGNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIAogY2xhc3MgR1BVU2hhZGVyTW9kdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVU2hhZGVyTW9kdWxlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTaGFkZXJNb2R1
bGU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZShSZWY8
UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR1BVU2hhZGVyTW9kdWxlKCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHUFVTaGFkZXJNb2R1bGUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAog
ICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwog
Ci0gICAgdm9pZCBjb21waWxhdGlvbkluZm8oUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAg
dXNpbmcgQ29tcGlsYXRpb25JbmZvUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8R1BVQ29tcGlsYXRpb25JbmZvPj47CisgICAgdm9pZCBjb21waWxhdGlvbkluZm8oQ29t
cGlsYXRpb25JbmZvUHJvbWlzZSYmKTsKKworICAgIFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUm
IGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6
U2hhZGVyTW9kdWxlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKIHBy
aXZhdGU6Ci0gICAgR1BVU2hhZGVyTW9kdWxlKCkgPSBkZWZhdWx0OworICAgIEdQVVNoYWRlck1v
ZHVsZShSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4mJiBiYWNraW5nKQorICAgICAgICA6
IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFM
OjpXZWJHUFU6OlNoYWRlck1vZHVsZT4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oCmluZGV4IGU4MDBiNzA5OWE3ZTZmODM1NmVjYzMzNzZhZDFkOWRjZGJkMTc2YmQuLjE2MTcz
MjVhZjNhYzczNDRkMjk3NTFlNTYwZTRmOTNiZjQyNTkxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgK
QEAgLTI4LDExICsyOCwyMSBAQAogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlNo
YWRlck1vZHVsZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgY29kZSwK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIHNvdXJjZU1hcC4KKyAgICAgICAgfTsK
KyAgICB9CisKICAgICBTdHJpbmcgY29kZTsKICAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
PiBzb3VyY2VNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU2hhZGVyU3RhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNo
YWRlclN0YWdlLmgKaW5kZXggOWMxZDQ5ZWQ3MTVlMDQwZmVlNWYyZjUwZmJlYjA0ODNjYjBhODJm
Yy4uN2VkYTNiYjBiYzUwMjJmZjQwOTkyNjJiY2ZlMjY3NGI3ZDUxODU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyU3RhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJTdGFnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlclN0YWdlLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNCAr
NDAsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBD
T01QVVRFICA9IDB4NDsKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFn
cyBjb252ZXJ0U2hhZGVyU3RhZ2VGbGFnc1RvQmFja2luZyhHUFVTaGFkZXJTdGFnZUZsYWdzIHNo
YWRlclN0YWdlRmxhZ3MpCit7CisgICAgUEFMOjpXZWJHUFU6OlNoYWRlclN0YWdlRmxhZ3MgcmVz
dWx0ID0gMDsKKyAgICBpZiAoc2hhZGVyU3RhZ2VGbGFncyAmIEdQVVNoYWRlclN0YWdlOjpWRVJU
RVgpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2U6OlZFUlRFWDsK
KyAgICBpZiAoc2hhZGVyU3RhZ2VGbGFncyAmIEdQVVNoYWRlclN0YWdlOjpGUkFHTUVOVCkKKyAg
ICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZTo6RlJBR01FTlQ7CisgICAg
aWYgKHNoYWRlclN0YWdlRmxhZ3MgJiBHUFVTaGFkZXJTdGFnZTo6Q09NUFVURSkKKyAgICAgICAg
cmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZTo6Q09NUFVURTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVTdGVuY2lsRmFjZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVTdGVuY2lsRmFjZVN0YXRlLmgKaW5kZXggMTUxMGZhZTY3NWViZjM3ZjZjNTRlNDVmNjMzNDBj
OTNmMGI3YmMzYS4uOTI0NTVmYTU1YTdiY2FjN2RjY2JmY2ZkYjYyYzhlYWFmNjQ0ZDQ5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0ZW5jaWxGYWNlU3Rh
dGUuaApAQCAtMjcsMTAgKzI3LDIxIEBACiAKICNpbmNsdWRlICJHUFVDb21wYXJlRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJHUFVTdGVuY2lsT3BlcmF0aW9uLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEdQVVN0ZW5jaWxGYWNlU3RhdGUgeworICAgIFBBTDo6V2ViR1BVOjpTdGVu
Y2lsRmFjZVN0YXRlIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29tcGFyZSksCisg
ICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGZhaWxPcCksCisgICAgICAgICAg
ICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGRlcHRoRmFpbE9wKSwKKyAgICAgICAgICAgIFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocGFzc09wKSwKKyAgICAgICAgfTsKKyAgICB9CisKICAg
ICBHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZTsKICAgICBHUFVTdGVuY2lsT3BlcmF0aW9uIGZh
aWxPcDsKICAgICBHUFVTdGVuY2lsT3BlcmF0aW9uIGRlcHRoRmFpbE9wOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oCmluZGV4IDhm
M2RiYzNhYmFiZGMxYTQ2ZDA5MzZjZmY0NWI5YzRkYzdlN2UxZDMuLjhjODM4YTcxNTg2MmRmMDA5
NDc4NGViNzBlOGZiMjJlMTBlMTJlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVN0ZW5jaWxPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVTdGVuY2lsT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00MCw0ICs0MSwyNyBAQCBlbnVtIGNsYXNzIEdQVVN0ZW5jaWxPcGVyYXRpb24gOiB1aW50OF90
IHsKICAgICBEZWNyZW1lbnRXcmFwCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlN0ZW5jaWxP
cGVyYXRpb24gY29udmVydFRvQmFja2luZyhHUFVTdGVuY2lsT3BlcmF0aW9uIHN0ZW5jaWxPcGVy
YXRpb24pCit7CisgICAgc3dpdGNoIChzdGVuY2lsT3BlcmF0aW9uKSB7CisgICAgY2FzZSBHUFVT
dGVuY2lsT3BlcmF0aW9uOjpLZWVwOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0ZW5j
aWxPcGVyYXRpb246OktlZXA7CisgICAgY2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpaZXJvOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm87CisgICAg
Y2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246OlJlcGxhY2U7CisgICAgY2FzZSBHUFVTdGVuY2lsT3Bl
cmF0aW9uOjpJbnZlcnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6SW52ZXJ0OworICAgIGNhc2UgR1BVU3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xh
bXA6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVt
ZW50Q2xhbXA7CisgICAgY2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcDoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRD
bGFtcDsKKyAgICBjYXNlIEdQVVN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXA6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50V3JhcDsK
KyAgICBjYXNlIEdQVVN0ZW5jaWxPcGVyYXRpb246OkRlY3JlbWVudFdyYXA6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6RGVjcmVtZW50V3JhcDsKKyAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgK
aW5kZXggYWZjMzg4MWRjNDIzZGVhMjdiOWU4Mjg4NjlkYmU4MzVhNWVkM2E0MC4uYjViMGRlNTQ2
ZTZhY2QxNjhmMDA2YmU0Y2I4N2UxNWVjZTEzMjRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDQgKzM0LDEzIEBAIGVudW0gY2xhc3MgR1BVU3RvcmFn
ZVRleHR1cmVBY2Nlc3MgOiB1aW50OF90IHsKICAgICBXcml0ZU9ubHkKIH07CiAKK2lubGluZSBQ
QUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3MgY29udmVydFRvQmFja2luZyhHUFVTdG9y
YWdlVGV4dHVyZUFjY2VzcyBzdG9yYWdlVGV4dHVyZUFjY2VzcykKK3sKKyAgICBzd2l0Y2ggKHN0
b3JhZ2VUZXh0dXJlQWNjZXNzKSB7CisgICAgY2FzZSBHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzczo6
V3JpdGVPbmx5OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNj
ZXNzOjpXcml0ZU9ubHk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0
b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggYWFjNjU0YTRmOTQzMGQy
NzA2N2EzZTExZmU2NmNiMjJkYmI2MTk1Mi4uMjM3YTc5YmFmNjIzNjgwZjA3YmY1YmMzNjdkNDg5
MTAyYmUyMGJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI4LDEwICsyOCwy
MCBAQAogI2luY2x1ZGUgIkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgiCiAjaW5jbHVkZSAiR1BV
VGV4dHVyZUZvcm1hdC5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVU3RvcmFnZVRleHR1
cmVCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYWNjZXNzKSwKKyAgICAgICAg
ICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoZm9ybWF0KSwKKyAgICAgICAgICAgIFdlYkNv
cmU6OmNvbnZlcnRUb0JhY2tpbmcodmlld0RpbWVuc2lvbiksCisgICAgICAgIH07CisgICAgfQor
CiAgICAgR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MgYWNjZXNzOwogICAgIEdQVVRleHR1cmVGb3Jt
YXQgZm9ybWF0OwogICAgIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmgKaW5kZXggYzAxNmZkNjg2
MDU0ZmJhNTc4NDRjYjQ0YmMxOWJiNWQzYWEwMTg0MS4uNDUxZTVmMDcwNmMyZWRhNzAzMGRiYjFm
YWFhNTg3MjFmNWU3MmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU3RvcmVPcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0
b3JlT3AuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3Rk
aW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmVPcC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BVU3Rv
cmVPcCA6IHVpbnQ4X3QgewogICAgIERpc2NhcmQKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
U3RvcmVPcCBjb252ZXJ0VG9CYWNraW5nKEdQVVN0b3JlT3Agc3RvcmVPcCkKK3sKKyAgICBzd2l0
Y2ggKHN0b3JlT3ApIHsKKyAgICBjYXNlIEdQVVN0b3JlT3A6OlN0b3JlOgorICAgICAgICByZXR1
cm4gUEFMOjpXZWJHUFU6OlN0b3JlT3A6OlN0b3JlOworICAgIGNhc2UgR1BVU3RvcmVPcDo6RGlz
Y2FyZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkOworICAg
IH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAK
aW5kZXggNjEzZmViMzI4ZjM0YTdlZDQ1MzVkNjI2OTBhNGI0YTY3OWE5YmNlOS4uM2UyOTE2NDdm
ZjlmOWY0NDczZjQ5YmY2N2UzYmFiYzg0MzQ4MTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcApAQCAtMjUsMTEg
KzI1LDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBHUFVTdXBwb3J0ZWRGZWF0dXJlczo6aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRh
cHRlciYpIGNvbnN0Cit2b2lkIEdQVVN1cHBvcnRlZEZlYXR1cmVzOjppbml0aWFsaXplU2V0TGlr
ZShET01TZXRBZGFwdGVyJiBzZXQpIGNvbnN0CiB7CisgICAgZm9yIChjb25zdCBhdXRvJiBmZWF0
dXJlIDogbV9iYWNraW5nLT5mZWF0dXJlcygpKQorICAgICAgICBzZXQuYWRkPElETERPTVN0cmlu
Zz4oZmVhdHVyZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCmluZGV4IGFkZWQ0YjY0ZGRmZTkzNDdiNGYwMDky
YjQyNzU0MzBkMTJmZjA5MGYuLmM3OGI1NTIzMjM4NGNhNmE1ODA3NmUzMDIyMTBhYzhmNTliNzk1
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRl
ZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9y
dGVkRmVhdHVyZXMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIK
ICNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC0zNSwxNSArMzYsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVTdXBw
b3J0ZWRGZWF0dXJlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVN1cHBvcnRlZEZlYXR1cmVzPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRGZWF0dXJlcz4gY3JlYXRlKCkK
KyAgICBzdGF0aWMgUmVmPEdQVVN1cHBvcnRlZEZlYXR1cmVzPiBjcmVhdGUoUmVmPFBBTDo6V2Vi
R1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR1BVU3VwcG9ydGVkRmVhdHVyZXMoKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdQVVN1cHBvcnRlZEZlYXR1cmVzKFdURk1vdmUoYmFja2luZykpKTsKICAg
ICB9CiAKICAgICB2b2lkIGluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImKSBjb25zdDsK
IAorICAgIFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYgYmFja2luZygpIHsgcmV0dXJu
IG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQ
VVN1cHBvcnRlZEZlYXR1cmVzKCkgPSBkZWZhdWx0OworICAgIEdQVVN1cHBvcnRlZEZlYXR1cmVz
KFJlZjxQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM+JiYgYmFja2luZykKKyAgICAgICAg
OiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZExpbWl0cy5jcHAK
aW5kZXggMWRkODBhYjcwMTRmY2MwM2ZhZTZmNWNjZmVlMWRkZThiY2RmYTc5YS4uYjBhYjQyNzNl
MWMzMTQ4YzkxNjI3YTY2ZWUwNjUzYTFjNWVmYWUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRMaW1pdHMuY3BwCkBAIC0zMCwxMzIgKzMw
LDEzMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0
czo6bWF4VGV4dHVyZURpbWVuc2lvbjFEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbV9iYWNraW5nLT5tYXhUZXh0dXJlRGltZW5zaW9uMUQoKTsKIH0KIAogdWludDMyX3Qg
R1BVU3VwcG9ydGVkTGltaXRzOjptYXhUZXh0dXJlRGltZW5zaW9uMkQoKSBjb25zdAogewotICAg
IHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFRleHR1cmVEaW1lbnNpb24yRCgp
OwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFRleHR1cmVEaW1lbnNpb24z
RCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VGV4
dHVyZURpbWVuc2lvbjNEKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4
VGV4dHVyZUFycmF5TGF5ZXJzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9iYWNraW5nLT5tYXhUZXh0dXJlQXJyYXlMYXllcnMoKTsKIH0KIAogdWludDMyX3QgR1BVU3Vw
cG9ydGVkTGltaXRzOjptYXhCaW5kR3JvdXBzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbV9iYWNraW5nLT5tYXhCaW5kR3JvdXBzKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQo
KSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heER5bmFt
aWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQo
KSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heER5bmFt
aWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2UoKSBjb25zdAog
ewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFNhbXBsZWRUZXh0dXJl
c1BlclNoYWRlclN0YWdlKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4
U2FtcGxlcnNQZXJTaGFkZXJTdGFnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1fYmFja2luZy0+bWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZSgpOwogfQogCiB1aW50MzJf
dCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UoKSBj
b25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFN0b3JhZ2VC
dWZmZXJzUGVyU2hhZGVyU3RhZ2UoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3Rh
Z2UoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhVbmlmb3JtQnVmZmVy
c1BlclNoYWRlclN0YWdlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9i
YWNraW5nLT5tYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlKCk7CiB9CiAKIHVpbnQ2NF90
IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5tYXhVbmlmb3JtQnVmZmVy
QmluZGluZ1NpemUoKTsKIH0KIAogdWludDY0X3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhTdG9y
YWdlQnVmZmVyQmluZGluZ1NpemUoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVy
biBtX2JhY2tpbmctPm1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSgpOwogfQogCiB1aW50MzJf
dCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQoKSBj
b25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1pblVuaWZvcm1C
dWZmZXJPZmZzZXRBbGlnbm1lbnQoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5taW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50
KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4VmVydGV4QnVmZmVycygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VmVydGV4
QnVmZmVycygpOwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFZlcnRleEF0
dHJpYnV0ZXMoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmct
Pm1heFZlcnRleEF0dHJpYnV0ZXMoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VmVydGV4QnVmZmVyQXJyYXlTdHJpZGUoKTsKIH0KIAog
dWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50
cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4SW50
ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGlt
aXRzOjptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUoKSBjb25zdAogewotICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6
ZSgpOwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heENvbXB1dGVJbnZvY2F0
aW9uc1Blcldvcmtncm91cCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1f
YmFja2luZy0+bWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwKCk7CiB9CiAKIHVpbnQz
Ml90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4Q29tcHV0ZVdvcmtncm91cFNpemVYKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5tYXhDb21wdXRlV29ya2dy
b3VwU2l6ZVgoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVkoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2Jh
Y2tpbmctPm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWSgpOwogfQogCiB1aW50MzJfdCBHUFVTdXBw
b3J0ZWRMaW1pdHM6Om1heENvbXB1dGVXb3JrZ3JvdXBTaXplWigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKCk7
CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4Q29tcHV0ZVdvcmtncm91cHNQ
ZXJEaW1lbnNpb24oKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tp
bmctPm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uKCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZExpbWl0cy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKaW5kZXgg
NTg2NzI1MzdlMzA1NTJlMzI1MGQxMWVkZjFmM2JlZjIyYjNjYzMyYS4uZjdjZmQ1NzEyYTZlNDAy
NGEzYzVhNDU2ZGYzM2EyZjQ3ZWI4ZDE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC0zMyw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgR1BVU3VwcG9ydGVkTGltaXRzIDogcHVibGljIFJlZkNvdW50ZWQ8R1BV
U3VwcG9ydGVkTGltaXRzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRM
aW1pdHM+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRMaW1pdHM+IGNyZWF0
ZShSZWY8UEFMOjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cz4mJiBiYWNraW5nKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVU3VwcG9ydGVkTGltaXRzKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVTdXBwb3J0ZWRMaW1pdHMoV1RGTW92ZShiYWNraW5n
KSkpOwogICAgIH0KIAogICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCgpIGNvbnN0
OwpAQCAtNjUsOCArNjYsMTYgQEAgcHVibGljOgogICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3Jr
Z3JvdXBTaXplWigpIGNvbnN0OwogICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVy
RGltZW5zaW9uKCkgY29uc3Q7CiAKKyAgICBQQUw6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlN1
cHBvcnRlZExpbWl0cyYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBw
cml2YXRlOgotICAgIEdQVVN1cHBvcnRlZExpbWl0cygpID0gZGVmYXVsdDsKKyAgICBHUFVTdXBw
b3J0ZWRMaW1pdHMoUmVmPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZS5jcHAKaW5kZXggMjk5
YzY3YjAzN2FjYTc2YTRjNjkwNGQ3MTZmNTc4MGI3ZmU4MjFlMi4uZjNmNDkwZmFjZWRjYzBlNTYw
YmRjMDJiNzE3Mjg2YWFhNGJjMjAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZS5jcHAKQEAgLTI3LDIxICsyNyw0MSBAQAogI2luY2x1ZGUgIkdQVVRleHR1
cmUuaCIKIAogI2luY2x1ZGUgIkdQVVRleHR1cmVWaWV3LmgiCisjaW5jbHVkZSAiR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlld0Rlc2NyaXB0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcg
R1BVVGV4dHVyZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0
eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVVGV4dHVy
ZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVRleHR1cmU6OnNldExhYmVsKFN0cmluZyYm
IGxhYmVsKQogeworICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQog
Ci1SZWY8R1BVVGV4dHVyZVZpZXc+IEdQVVRleHR1cmU6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpv
cHRpb25hbDxHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JikgY29uc3QKK3N0YXRpYyBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoY29uc3Qgc3RkOjpv
cHRpb25hbDxHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiB0ZXh0dXJlVmlld0Rlc2NyaXB0b3Ip
CiB7Ci0gICAgcmV0dXJuIEdQVVRleHR1cmVWaWV3OjpjcmVhdGUoKTsKKyAgICBpZiAoIXRleHR1
cmVWaWV3RGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyB9LAor
ICAgICAgICAgICAgc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgc3RkOjpudWxsb3B0LAorICAg
ICAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q6OkFsbCwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
c3RkOjpudWxsb3B0CisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB0ZXh0dXJlVmlld0Rl
c2NyaXB0b3ItPmNvbnZlcnRUb0JhY2tpbmcoKTsKK30KKworUmVmPEdQVVRleHR1cmVWaWV3PiBH
UFVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yPiYgdGV4dHVyZVZpZXdEZXNjcmlwdG9yKSBjb25zdAoreworICAgIHJldHVybiBH
UFVUZXh0dXJlVmlldzo6Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlVmlldyhjb252ZXJ0VG9CYWNr
aW5nKHRleHR1cmVWaWV3RGVzY3JpcHRvcikpKTsKIH0KIAogdm9pZCBHUFVUZXh0dXJlOjpkZXN0
cm95KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1
cmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmUuaAppbmRleCA3
YjA0YTZmYThiZDBiZWViNDYzY2Y0YTcwYWUzNmRhMWYyNjIzM2UxLi40OGE4NDA3NWE2MWNhZjg5
OTJmZjgyZDljY2U1OWU2ZTlmYmRlYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVy
ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzcsOSArMzgsOSBAQCBzdHJ1Y3Qg
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yOwogCiBjbGFzcyBHUFVUZXh0dXJlIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVVGV4dHVyZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVVGV4dHVy
ZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVRleHR1cmU+IGNyZWF0ZShSZWY8UEFMOjpX
ZWJHUFU6OlRleHR1cmU+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEdQVVRleHR1cmUoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVRl
eHR1cmUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNv
bnN0OwpAQCAtNDksOCArNTAsMTYgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXN0cm95KCk7CiAK
KyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZSYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsg
fQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVVGV4dHVyZSgpID0gZGVmYXVsdDsK
KyAgICBHUFVUZXh0dXJlKFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4mJiBiYWNraW5nKQorICAg
ICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVBc3BlY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVBc3BlY3QuaAppbmRleCAwNjVjZmZm
MGNmNjE3OWJmMDQ1YWIwMDA2M2NmZjVlMWE2ZDQ1NzZkLi4yOTIyZTQ5ZDUwNjY0NjlmOTZiZGFj
ZWY3ZGYxYTgyMjE1NmQzOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVUZXh0dXJlQXNwZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZUFzcGVjdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlQXNwZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsNCArMzYsMTcg
QEAgZW51bSBjbGFzcyBHUFVUZXh0dXJlQXNwZWN0IDogdWludDhfdCB7CiAgICAgRGVwdGhPbmx5
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgY29udmVydFRvQmFja2lu
ZyhHUFVUZXh0dXJlQXNwZWN0IHRleHR1cmVBc3BlY3QpCit7CisgICAgc3dpdGNoICh0ZXh0dXJl
QXNwZWN0KSB7CisgICAgY2FzZSBHUFVUZXh0dXJlQXNwZWN0OjpBbGw6CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdDo6QWxsOworICAgIGNhc2UgR1BVVGV4dHVyZUFz
cGVjdDo6U3RlbmNpbE9ubHk6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUFz
cGVjdDo6U3RlbmNpbE9ubHk7CisgICAgY2FzZSBHUFVUZXh0dXJlQXNwZWN0OjpEZXB0aE9ubHk6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdDo6RGVwdGhPbmx5Owor
ICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaAppbmRleCBhODIxZDUzNDc1OGIzYTMzN2NmNGY3OTZlZDViMjY4NDRiMTFmYWNlLi4yM2Ew
MTY2OWNmMmFmMDZiY2I1Y2NkOGZhMDRiOWY4ZWFmMDc0ZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAg
LTI3LDEwICsyNywyMCBAQAogCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVNhbXBsZVR5cGUuaCIKICNp
bmNsdWRlICJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdHJ1Y3QgR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQgeworICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHNh
bXBsZVR5cGUpLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh2aWV3RGlt
ZW5zaW9uKSwKKyAgICAgICAgICAgIG11bHRpc2FtcGxlZCwKKyAgICAgICAgfTsKKyAgICB9CisK
ICAgICBHUFVUZXh0dXJlU2FtcGxlVHlwZSBzYW1wbGVUeXBlOwogICAgIEdQVVRleHR1cmVWaWV3
RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBtdWx0aXNhbXBsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaApp
bmRleCBiOGZlZGQ0NjFkNDE2MzcxOTVlZTczNWJiNTBmNjhhMTgxNTU1NTQ5Li5hMTcyMTllZGJh
YTUyMTllNDNhYjdiZmQwZTdjZGNlNGVmZmRlOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTMxLDEwICszMSwy
NCBAQAogI2luY2x1ZGUgIkdQVVRleHR1cmVEaW1lbnNpb24uaCIKICNpbmNsdWRlICJHUFVUZXh0
dXJlRm9ybWF0LmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVVzYWdlLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoc2l6
ZSksCisgICAgICAgICAgICBtaXBMZXZlbENvdW50LAorICAgICAgICAgICAgc2FtcGxlQ291bnQs
CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGRpbWVuc2lvbiksCisgICAg
ICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGZvcm1hdCksCisgICAgICAgICAgICBj
b252ZXJ0VGV4dHVyZVVzYWdlRmxhZ3NUb0JhY2tpbmcodXNhZ2UpLAorICAgICAgICB9OworICAg
IH0KKwogICAgIEdQVUV4dGVudDNEIHNpemU7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgbWlw
TGV2ZWxDb3VudDsKICAgICBHUFVTaXplMzIgc2FtcGxlQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGltZW5zaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGltZW5zaW9uLmgKaW5kZXggZDQ2Yzhk
ZGE5YWM3MDMxYWI2Y2ZjYTQyOWQzOGY3OWE1ZDkyNDQ1My4uMTg3MmY3ZDYyMGYyMmI4MzFmZDQy
OTMyOWE3ZDQ3M2NiZjcwOTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVGV4dHVyZURpbWVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVRleHR1cmVEaW1lbnNpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1
LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVVGV4dHVyZURpbWVuc2lvbiA6IHVpbnQ4X3Qgewog
ICAgIF8zZAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uIGNvbnZl
cnRUb0JhY2tpbmcoR1BVVGV4dHVyZURpbWVuc2lvbiB0ZXh0dXJlRGltZW5zaW9uKQoreworICAg
IHN3aXRjaCAodGV4dHVyZURpbWVuc2lvbikgeworICAgIGNhc2UgR1BVVGV4dHVyZURpbWVuc2lv
bjo6XzFkOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb246Ol8x
ZDsKKyAgICBjYXNlIEdQVVRleHR1cmVEaW1lbnNpb246Ol8yZDoKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uOjpfMmQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRGlt
ZW5zaW9uOjpfM2Q6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lv
bjo6XzNkOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRm9y
bWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRm9ybWF0LmgK
aW5kZXggZTBlOTVhODgwZjYwZmY3NDEwZDk1Yzk1MTI0ODA4MjllMDQ4ZDBkZi4uOGEwMWIwNzAy
Yjk2MGRiNDlmMzZiOTNlZGIzMzBkODY2YmU2N2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVGb3JtYXQuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTE1Miw0ICsxNTMsMjAxIEBAIGVudW0gY2xhc3MgR1BVVGV4dHVyZUZvcm1hdCA6IHVpbnQ4X3Qg
ewogICAgIERlcHRoMzJmbG9hdFN0ZW5jaWw4CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQgY29udmVydFRvQmFja2luZyhHUFVUZXh0dXJlRm9ybWF0IHRleHR1cmVGb3Jt
YXQpCit7CisgICAgc3dpdGNoICh0ZXh0dXJlRm9ybWF0KSB7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OlI4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSOHNub3JtOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c25vcm07CisgICAgY2FzZSBH
UFVUZXh0dXJlRm9ybWF0OjpSOHVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6Ujh1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6UjhzaW50Ogor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludDsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIxNnVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6UjE2dWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIx
NnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIxNmZsb2F0OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIxNmZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6Umc4dW5vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6Umc4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzhzbm9ybToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzhzbm9ybTsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnOHVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJn
OHNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIzMnVpbnQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMydWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVG
b3JtYXQ6OlIzMnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6UjMyc2ludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0OgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0OworICAgIGNhc2Ug
R1BVVGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzE2
c2ludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzE2c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMTZmbG9hdDoKKyAgICAgICAgcmV0dXJu
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzE2ZmxvYXQ7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpSZ2JhOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OlJnYmE4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhOHVu
b3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2Jh
OHVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm06CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYThzbm9ybTsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnYmE4dWludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0
OjpSZ2JhOHNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYThzaW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybToKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtOworICAgIGNh
c2UgR1BVVGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpSZ2I5ZTV1ZmxvYXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6UmdiOWU1dWZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6Umdi
MTBhMnVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YjEwYTJ1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMTFiMTB1ZmxvYXQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxMWIxMHVmbG9hdDsK
KyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMzJ1aW50OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJ1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZv
cm1hdDo6UmczMnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6UmczMnNpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzMyZmxvYXQ6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMmZsb2F0OworICAgIGNh
c2UgR1BVVGV4dHVyZUZvcm1hdDo6UmdiYTE2dWludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMTZ1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1h
dDo6UmdiYTE2c2ludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSZ2JhMTZzaW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6UmdiYTE2ZmxvYXQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTE2ZmxvYXQ7Cisg
ICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1aW50OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMnVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpSZ2JhMzJzaW50OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnYmEzMnNpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhMzJmbG9h
dDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJmbG9h
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlN0ZW5jaWw4OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlN0ZW5jaWw4OworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6RGVwdGgxNnVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkRlcHRoMTZ1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkRlcHRo
MjRwbHVzOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRo
MjRwbHVzOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6RGVwdGgyNHBsdXNTdGVuY2lsODoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDI0cGx1c1N0
ZW5jaWw4OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0OgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMzJmbG9hdDsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2JhVW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpCYzFSZ2JhVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0
OjpCYzJSZ2JhVW5vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6QmMyUmdiYVVub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3Jt
U1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzJSZ2Jh
VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmMzUmdiYVVub3JtOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybTsKKyAg
ICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0I6CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMzUmdiYVVub3JtU1JHQjsKKyAgICBjYXNl
IEdQVVRleHR1cmVGb3JtYXQ6OkJjNFJVbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpC
YzRSU25vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmM0
UlNub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmM1UmdVbm9ybToKKyAgICAgICAg
cmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtOworICAgIGNhc2Ug
R1BVVGV4dHVyZUZvcm1hdDo6QmM1UmdTbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Nub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6
QmM2aFJnYlVmbG9hdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpCYzZoUmdiVWZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmM2aFJnYkZsb2F0
OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNmhSZ2JGbG9h
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybToKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm07CisgICAgY2FzZSBH
UFVUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpFdGMyUmdiOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpF
dGMyUmdiOHVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpFdGMyUmdiOHVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkV0YzJS
Z2I4YTF1bm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpF
dGMyUmdiOGExdW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFdGMyUmdiOGExdW5v
cm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJS
Z2I4YTF1bm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1bm9y
bToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1
bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtU1JHQjoKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1bm9ybVNS
R0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFYWNSMTF1bm9ybToKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNSMTF1bm9ybTsKKyAgICBjYXNlIEdQ
VVRleHR1cmVGb3JtYXQ6OkVhY1IxMXNub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OkVhY1IxMXNub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6
RWFjUmcxMXVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkVhY1JnMTF1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkVhY1JnMTFzbm9ybToK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNSZzExc25vcm07
CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNHg0VW5vcm06CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtOworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNHg0VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6QXN0YzV4NFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGM1eDRVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM1
eDRVbm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
QXN0YzV4NFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM1eDVVbm9y
bToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg1VW5v
cm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNXg1VW5vcm1TUkdCOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM1eDVVbm9ybVNSR0I7Cisg
ICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNng1VW5vcm06CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzZ4NVVub3JtOworICAgIGNhc2UgR1BVVGV4
dHVyZUZvcm1hdDo6QXN0YzZ4NVVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng1VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZv
cm1hdDo6QXN0YzZ4NlVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM2eDZVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM2eDZV
bm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0
YzZ4NlVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM4eDVVbm9ybToK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm07
CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDVVbm9ybVNSR0I7CisgICAg
Y2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjOHg2VW5vcm06CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NlVub3JtOworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NlVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpBc3RjOHg2VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1h
dDo6QXN0Yzh4OFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkFzdGM4eDhVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM4eDhVbm9y
bVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4
OFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm06Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVVbm9ybTsK
KyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1TUkdCOworICAg
IGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybToKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4NlVub3JtOworICAgIGNhc2UgR1BVVGV4
dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpBc3RjMTB4OFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3Rj
MTB4OFVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpBc3RjMTB4OFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHgx
MFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMx
MHgxMFVub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm1TUkdC
OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHgxMFVu
b3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtOwor
ICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEwVW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQjsKKyAg
ICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtOgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtOworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRl
eHR1cmVGb3JtYXQ6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0U3RlbmNpbDg6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0U3RlbmNpbDg7CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDZiN2Jl
N2RjNTBiNWFiNmIzY2ZkOTBiZmY5ODk2NmQxYjE0YzEwMGEuLjI2YmQ2OWM4NTg3NTIyNzhhYzUy
YmRiMTQwYTIzMTBhNzIyYjU2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVGV4dHVyZVNhbXBsZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zNyw0ICszOCwyMSBAQCBlbnVtIGNsYXNzIEdQVVRleHR1cmVTYW1wbGVUeXBlIDogdWludDhf
dCB7CiAgICAgVWludAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlw
ZSBjb252ZXJ0VG9CYWNraW5nKEdQVVRleHR1cmVTYW1wbGVUeXBlIHRleHR1cmVTYW1wbGVUeXBl
KQoreworICAgIHN3aXRjaCAodGV4dHVyZVNhbXBsZVR5cGUpIHsKKyAgICBjYXNlIEdQVVRleHR1
cmVTYW1wbGVUeXBlOjpGbG9hdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJl
U2FtcGxlVHlwZTo6RmxvYXQ7CisgICAgY2FzZSBHUFVUZXh0dXJlU2FtcGxlVHlwZTo6VW5maWx0
ZXJhYmxlRmxvYXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5
cGU6OlVuZmlsdGVyYWJsZUZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZVNhbXBsZVR5cGU6OkRl
cHRoOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpEZXB0
aDsKKyAgICBjYXNlIEdQVVRleHR1cmVTYW1wbGVUeXBlOjpTaW50OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50OworICAgIGNhc2UgR1BVVGV4dHVy
ZVNhbXBsZVR5cGU6OlVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVNh
bXBsZVR5cGU6OlVpbnQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRl
eHR1cmVVc2FnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVz
YWdlLmgKaW5kZXggMjQ0NWJjODZkZWFhODIyZWVmMDZjM2Q5ODU1NjQ2N2MxMzJiMjg3Zi4uYTRm
MzZmY2NhOWQwNmJhOGQ3NzgzY2NkY2JiMTdiMDhhNWEzYmMxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVzYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVzYWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsNCArNDIs
MjAgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBSRU5E
RVJfQVRUQUNITUVOVCA9IDB4MTA7CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRleHR1cmVV
c2FnZUZsYWdzIGNvbnZlcnRUZXh0dXJlVXNhZ2VGbGFnc1RvQmFja2luZyhHUFVUZXh0dXJlVXNh
Z2VGbGFncyB0ZXh0dXJlVXNhZ2VGbGFncykKK3sKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVVz
YWdlRmxhZ3MgcmVzdWx0ID0gMDsKKyAgICBpZiAodGV4dHVyZVVzYWdlRmxhZ3MgJiBHUFVUZXh0
dXJlVXNhZ2U6OkNPUFlfU1JDKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OlRleHR1
cmVVc2FnZTo6Q09QWV9TUkM7CisgICAgaWYgKHRleHR1cmVVc2FnZUZsYWdzICYgR1BVVGV4dHVy
ZVVzYWdlOjpDT1BZX0RTVCkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpUZXh0dXJl
VXNhZ2U6OkNPUFlfRFNUOworICAgIGlmICh0ZXh0dXJlVXNhZ2VGbGFncyAmIEdQVVRleHR1cmVV
c2FnZTo6VEVYVFVSRV9CSU5ESU5HKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OlRl
eHR1cmVVc2FnZTo6VEVYVFVSRV9CSU5ESU5HOworICAgIGlmICh0ZXh0dXJlVXNhZ2VGbGFncyAm
IEdQVVRleHR1cmVVc2FnZTo6U1RPUkFHRV9CSU5ESU5HKQorICAgICAgICByZXN1bHQgfD0gUEFM
OjpXZWJHUFU6OlRleHR1cmVVc2FnZTo6U1RPUkFHRV9CSU5ESU5HOworICAgIGlmICh0ZXh0dXJl
VXNhZ2VGbGFncyAmIEdQVVRleHR1cmVVc2FnZTo6UkVOREVSX0FUVEFDSE1FTlQpCisgICAgICAg
IHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlOjpSRU5ERVJfQVRUQUNITUVOVDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHAKaW5kZXggYmMzYWZkODk4OGMzYjEzZTc5MDdlZjNl
NGI1NDkyOGY3OWJjNTNlOS4uNDQzY2Y2NTg4NGEwNTMwMzhiOGZmYWZjOGJlNWNhZmZmMDc5ZDNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3
LmNwcApAQCAtMzAsMTEgKzMwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQ
VVRleHR1cmVWaWV3OjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVt
cHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVUZXh0
dXJlVmlldzo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVRleHR1cmVWaWV3OjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFi
ZWwpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVGV4dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1
cmVWaWV3LmgKaW5kZXggOTUxNGEyMzVhNDVkNzMyODUwZGE5N2NlODVlM2IyOGZhMjM0NzFlMS4u
MWY3M2EzYzM0ZDZiZGY4OWJmMmZmZmQ5Zjg5NDUwNGMyYWQ1ZWFmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVVGV4dHVyZVZpZXcgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVUZXh0dXJlVmlldz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BV
VGV4dHVyZVZpZXc+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVUZXh0dXJlVmlldz4gY3Jl
YXRlKFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+JiYgYmFja2luZykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVRleHR1cmVWaWV3KCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVUZXh0dXJlVmlldyhXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAg
fQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcm
Jik7CiAKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIGJhY2tpbmcoKSB7IHJldHVybiBt
X2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIGJhY2tpbmco
KSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVUZXh0dXJl
VmlldygpID0gZGVmYXVsdDsKKyAgICBHUFVUZXh0dXJlVmlldyhSZWY8UEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3PiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2lu
ZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IG1f
YmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKaW5kZXggZWZlMDM1YTllMTQzMmJkYjg0
ZTZjOGU0ZmVmOTRiMjQ4Y2QyZDg2ZC4uZjRkMWU5OTgyMDY1MDJmZDZlN2QxYjhiM2RiYWVjZWEw
NjY1MWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4
dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKQEAgLTMxLDEwICszMSwyNSBAQAogI2luY2x1ZGUg
IkdQVVRleHR1cmVGb3JtYXQuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEdQVVRleHR1cmVWaWV3RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9y
QmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvciBjb252ZXJ0VG9C
YWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxh
YmVsIH0sCisgICAgICAgICAgICBmb3JtYXQgPyBzdGQ6Om9wdGlvbmFsIHsgV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZygqZm9ybWF0KSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgZGlt
ZW5zaW9uID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKmRpbWVu
c2lvbikgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcoYXNwZWN0KSwKKyAgICAgICAgICAgIGJhc2VNaXBMZXZlbCwKKyAgICAgICAgICAgIG1p
cExldmVsQ291bnQsCisgICAgICAgICAgICBiYXNlQXJyYXlMYXllciwKKyAgICAgICAgICAgIGFy
cmF5TGF5ZXJDb3VudCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBzdGQ6Om9wdGlvbmFsPEdQ
VVRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVVRleHR1cmVWaWV3
RGltZW5zaW9uPiBkaW1lbnNpb247CiAgICAgR1BVVGV4dHVyZUFzcGVjdCBhc3BlY3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlld0RpbWVu
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZpZXdEaW1l
bnNpb24uaAppbmRleCA4NTkzMDYzYmFkZGQ0MmUyMTkzYjI5MmFmOGI3NGVlNzVlYmYzYTM3Li43
M2E0OTZjOTliNTBhNDJmNmMxYWU3YWI0N2QzOWFjYWMyNTE4ZTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsNCArMzksMjMgQEAgZW51bSBjbGFzcyBH
UFVUZXh0dXJlVmlld0RpbWVuc2lvbiA6IHVpbnQ4X3QgewogICAgIF8zZAogfTsKIAoraW5saW5l
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbiBjb252ZXJ0VG9CYWNraW5nKEdQVVRl
eHR1cmVWaWV3RGltZW5zaW9uIHRleHR1cmVWaWV3RGltZW5zaW9uKQoreworICAgIHN3aXRjaCAo
dGV4dHVyZVZpZXdEaW1lbnNpb24pIHsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9u
OjpfMWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246
Ol8xZDsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpfMmQ6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZDsKKyAgICBjYXNlIEdQ
VVRleHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzJkQXJyYXk7CisgICAgY2FzZSBHUFVUZXh0dXJl
Vmlld0RpbWVuc2lvbjo6Q3ViZToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Vmlld0RpbWVuc2lvbjo6Q3ViZTsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpD
dWJlQXJyYXk6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNp
b246OkN1YmVBcnJheTsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpfM2Q6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8zZDsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQuY3BwCmluZGV4IDFiMWQyMmE0MGYwNzc3MjMzY2UwNmZjNGJhYTg5NGJjMjExMmE1ODMuLjA4
ZjkwYzMzZWUxOWIwZjYyZjEwOWU4NDg2MDYwMzJmZmViNDhlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudC5j
cHAKQEAgLTI4LDE0ICsyOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdQVVVuY2Fw
dHVyZWRFcnJvckV2ZW50OjpHUFVVbmNhcHR1cmVkRXJyb3JFdmVudChTdHJpbmcmJiB0eXBlLCBj
b25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQmKQotewotICAgIFVOVVNFRF9QQVJBTSh0
eXBlKTsKLX0KLQogR1BVRXJyb3IgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6OmVycm9yKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gUmVmUHRyPEdQVU91dE9mTWVtb3J5RXJyb3I+KEdQVU91dE9mTWVt
b3J5RXJyb3I6OmNyZWF0ZSgpKTsKKyAgICBpZiAoIW1fYmFja2luZykKKyAgICAgICAgcmV0dXJu
IG1fdW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmVycm9yOworCisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24oUEFMOjpXZWJHUFU6OkVycm9yKG1fYmFja2luZy0+ZXJyb3IoKSksIFtdIChSZWY8UEFM
OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I+JiYgb3V0T2ZNZW1vcnlFcnJvcikgLT4gR1BVRXJy
b3IgeworICAgICAgICByZXR1cm4gUmVmUHRyPEdQVU91dE9mTWVtb3J5RXJyb3I+KEdQVU91dE9m
TWVtb3J5RXJyb3I6OmNyZWF0ZShXVEZNb3ZlKG91dE9mTWVtb3J5RXJyb3IpKSk7CisgICAgfSwg
W10gKFJlZjxQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yPiYmIHZhbGlkYXRpb25FcnJvcikg
LT4gR1BVRXJyb3IgeworICAgICAgICByZXR1cm4gUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4o
R1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3IpKSk7Cisg
ICAgfSk7CisKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmgKaW5kZXggMWYxMjA4OTVlNjk2Nzg3NmFjMDgx
NTdlNGQ2Njg1MDc4ZWUyOTIzZi4uYzYzOWZiODQ1YmIwM2E3MDdhZGE4NWM3MjA5ZTA1ZTc2OGM2
NjQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0
dXJlZEVycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVV
bmNhcHR1cmVkRXJyb3JFdmVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJHUFVFcnJvci5oIgogI2luY2x1ZGUgIkdQVVVuY2FwdHVyZWRFcnJvckV2
ZW50SW5pdC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVW5jYXB0dXJl
ZEVycm9yRXZlbnQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQxLDEwICs0Miwz
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVVuY2FwdHVyZWRF
cnJvckV2ZW50KFdURk1vdmUodHlwZSksIGdwdVVuY2FwdHVyZWRFcnJvckV2ZW50SW5pdERpY3Qp
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50PiBjcmVh
dGUoUmVmPFBBTDo6V2ViR1BVOjpVbmNhcHR1cmVkRXJyb3JFdmVudD4mJiBiYWNraW5nKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQo
V1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKwogICAgIEdQVUVycm9yIGVycm9yKCkgY29uc3Q7
CiAKKyAgICBQQUw6OldlYkdQVTo6VW5jYXB0dXJlZEVycm9yRXZlbnQqIGJhY2tpbmcoKSB7IHJl
dHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6VW5jYXB0dXJl
ZEVycm9yRXZlbnQqIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0K
KwogcHJpdmF0ZToKLSAgICBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudChTdHJpbmcmJiB0eXBlLCBj
b25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQmKTsKKyAgICBHUFVVbmNhcHR1cmVkRXJy
b3JFdmVudChTdHJpbmcmJiB0eXBlLCBjb25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQm
IHVuY2FwdHVyZWRFcnJvckV2ZW50SW5pdCkKKyAgICAgICAgOiBtX3R5cGUoV1RGTW92ZSh0eXBl
KSkKKyAgICAgICAgLCBtX3VuY2FwdHVyZWRFcnJvckV2ZW50SW5pdCh1bmNhcHR1cmVkRXJyb3JF
dmVudEluaXQpCisgICAgeworICAgIH0KKworICAgIEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50KFJl
ZjxQQUw6OldlYkdQVTo6VW5jYXB0dXJlZEVycm9yRXZlbnQ+JiYgYmFja2luZykKKyAgICAgICAg
OiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5n
IG1fdHlwZTsKKyAgICBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQgbV91bmNhcHR1cmVkRXJy
b3JFdmVudEluaXQ7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpVbmNhcHR1cmVkRXJyb3JFdmVu
dD4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaAppbmRleCA2NmFiYWM2
Njg5MTAxZjgwNDk0NmJjYTBiNmMwY2QwMDZlMzgxMzE5Li5jYTZjOGUyMjU2OWQ0YTlkZTM2NmE1
ZDlhY2MyM2IzN2ZlYjczYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaW5jbHVkZSAiRXZlbnRJbml0LmgiCiAjaW5jbHVkZSAiR1BVRXJyb3IuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50SW5p
dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVZhbGlkYXRpb25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVWYWxpZGF0aW9uRXJyb3IuY3BwCmluZGV4IGMxYmIzNzI1NjUxNzQw
MTRmNGYzY2RkMzMzMjFhMDI1ODI5ZDk5MTEuLmU0NGJkNzA2M2E3OTc5ZjEyYzFjODJiMGQzNjA4
ZTFmZjE4NWFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VVZhbGlkYXRpb25FcnJvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVmFsaWRhdGlvbkVycm9yLmNwcApAQCAtMjgsMTQgKzI4LDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotR1BVVmFsaWRhdGlvbkVycm9yOjpHUFVWYWxpZGF0aW9uRXJyb3IoU3RyaW5n
JiYgbWVzc2FnZSkKK2NvbnN0IFN0cmluZyYgR1BVVmFsaWRhdGlvbkVycm9yOjptZXNzYWdlKCkg
Y29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7Ci19Ci0KLVN0cmluZyBHUFVWYWxp
ZGF0aW9uRXJyb3I6Om1lc3NhZ2UoKSBjb25zdAotewotICAgIHJldHVybiBTdHJpbmdJbXBsOjpl
bXB0eSgpOworICAgIGlmIChtX2JhY2tpbmcpCisgICAgICAgIHJldHVybiBtX2JhY2tpbmctPm1l
c3NhZ2UoKTsKKyAgICByZXR1cm4gbV9tZXNzYWdlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWYWxpZGF0aW9uRXJyb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCmluZGV4IDUyM2QzMzQ5
MTNmNGFkMDFiY2Y2NDc0ZWY3MGRmNzNiNzgxMmY1YzEuLmJjZTYzZTRiY2M2MTcyMzg2NGRmODkz
MjQwYjZjOGYxOWFlYjQ0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM4LDEyICszOSwyOSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVZhbGlkYXRpb25FcnJvcihXVEZNb3Zl
KG1lc3NhZ2UpKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKKyAgICBz
dGF0aWMgUmVmPEdQVVZhbGlkYXRpb25FcnJvcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6VmFs
aWRhdGlvbkVycm9yPiYmIGJhY2tpbmcpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBHUFVWYWxpZGF0aW9uRXJyb3IoV1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKworICAg
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0OworCisgICAgUEFMOjpXZWJHUFU6OlZhbGlk
YXRpb25FcnJvciogYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZy5nZXQoKTsgfQorICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3IqIGJhY2tpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tpbmcuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVWYWxpZGF0aW9uRXJyb3Io
U3RyaW5nJiYgbWVzc2FnZSk7CisgICAgR1BVVmFsaWRhdGlvbkVycm9yKFN0cmluZyYmIG1lc3Nh
Z2UpCisgICAgICAgIDogbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCisgICAgeworICAgIH0K
KworICAgIEdQVVZhbGlkYXRpb25FcnJvcihSZWY8UEFMOjpXZWJHUFU6OlZhbGlkYXRpb25FcnJv
cj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAg
IHsKKyAgICB9CiAKICAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIFJlZlB0cjxQQUw6OldlYkdQ
VTo6VmFsaWRhdGlvbkVycm9yPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhBdHRyaWJ1dGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCmluZGV4IGYxYTBiNTFm
N2M1ZTUzNmM3YWQyMTE5NTEwZjUzM2YwMDMyOThmNDQuLjU3NzFkNzBjODhkZDhjZjQwZmUyMzE4
NjgxZjI1ZmM5MDI1ZDNmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCkBAIC0yNywxMCArMjcsMjAgQEAKIAogI2luY2x1ZGUg
IkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlICJHUFVWZXJ0ZXhGb3JtYXQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVWZXJ0ZXhBdHRyaWJ1dGUgeworICAgIFBBTDo6
V2ViR1BVOjpWZXJ0ZXhBdHRyaWJ1dGUgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhm
b3JtYXQpLAorICAgICAgICAgICAgb2Zmc2V0LAorICAgICAgICAgICAgc2hhZGVyTG9jYXRpb24s
CisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVVmVydGV4Rm9ybWF0IGZvcm1hdDsKICAgICBH
UFVTaXplNjQgb2Zmc2V0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oCmluZGV4IDFhMmM3Y2I5MTY4NGNkY2E2ZWFjMDQz
MGJmZTM2YTI3NmIwYTA3NTUuLmMzOGVhNjMxN2E4OTVmMTg3ZDljNGU3YjVmMTA4YTg0Njk1Zjc0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1
ZmZlckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRl
eEJ1ZmZlckxheW91dC5oCkBAIC0yOCwxMSArMjgsMjcgQEAKICNpbmNsdWRlICJHUFVJbnRlZ3Jh
bFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVVmVydGV4QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiR1BV
VmVydGV4U3RlcE1vZGUuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZl
cnRleEJ1ZmZlckxheW91dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVVmVydGV4QnVmZmVyTGF5b3V0IHsKKyAgICBQQUw6Oldl
YkdQVTo6VmVydGV4QnVmZmVyTGF5b3V0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGFycmF5U3RyaWRlLAorICAgICAgICAgICAg
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhzdGVwTW9kZSksCisgICAgICAgICAgICAoW3RoaXNd
ICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0
ZT4gYXR0cmlidXRlczsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodGhpcy0+YXR0cmlidXRlcy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAo
YXV0byYgYXR0cmlidXRlIDogdGhpcy0+YXR0cmlidXRlcykKKyAgICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlcy51bmNoZWNrZWRBcHBlbmQoYXR0cmlidXRlLmNvbnZlcnRUb0JhY2tpbmcoKSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CisgICAgICAgICAgICB9KSgpLAor
ICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBhcnJheVN0cmlkZTsKICAgICBHUFVW
ZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8R1BVVmVydGV4QXR0cmlidXRlPiBh
dHRyaWJ1dGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
VmVydGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhG
b3JtYXQuaAppbmRleCAwODQyZTkxM2M5ZTJkMDJlMjcyZjYwYTIxMjljNjg2NWI5ZDU2ODk3Li5i
NTllODUwNGI5M2IwMmEzZjQ1NWMyNWZjMjljOTVhMjUzNjE3Njk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhGb3JtYXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhGb3JtYXQuaApAQCAtMjYsNiArMjYsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjIsNCArNjMsNzEgQEAgZW51bSBjbGFzcyBHUFVWZXJ0ZXhGb3JtYXQgOiB1aW50OF90
IHsKICAgICBTaW50MzJ4NAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQg
Y29udmVydFRvQmFja2luZyhHUFVWZXJ0ZXhGb3JtYXQgdmVydGV4Rm9ybWF0KQoreworICAgIHN3
aXRjaCAodmVydGV4Rm9ybWF0KSB7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlVpbnQ4eDI6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHgyOworICAg
IGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50OHg0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDh4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6U2lu
dDh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQ4eDI7
CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQ4eDQ6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0
OjpVbm9ybTh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVu
b3JtOHgyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVbm9ybTh4NDoKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtOHg0OworICAgIGNhc2UgR1BVVmVy
dGV4Rm9ybWF0OjpTbm9ybTh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlNub3JtOHgyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTbm9ybTh4NDoKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHg0OworICAgIGNh
c2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OlVpbnQxNngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50
MTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQxNng0
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTaW50MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQxNngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9y
bWF0OjpTaW50MTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNpbnQxNng0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVbm9ybTE2eDI6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVbm9ybTE2eDI7CisgICAgY2FzZSBH
UFVWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpW
ZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6U25vcm0x
NngyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U25vcm0xNngy
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTbm9ybTE2eDQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTE2eDQ7CisgICAgY2FzZSBHUFVWZXJ0ZXhG
b3JtYXQ6OkZsb2F0MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ6OkZsb2F0MTZ4MjsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXQxNng0OgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNng0OworICAgIGNh
c2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdDMyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlZlcnRleEZvcm1hdDo6RmxvYXQzMjsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXQz
MngyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQzMngy
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdDMyeDM6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDMyeDM7CisgICAgY2FzZSBHUFVWZXJ0ZXhG
b3JtYXQ6OkZsb2F0MzJ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ6OkZsb2F0MzJ4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6VWludDMyOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyOworICAgIGNhc2UgR1BV
VmVydGV4Rm9ybWF0OjpVaW50MzJ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0
ZXhGb3JtYXQ6OlVpbnQzMngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MzJ4MzoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzOworICAg
IGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MzJ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMng0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpT
aW50MzI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzI7
CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQzMngyOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDI7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3Jt
YXQ6OlNpbnQzMngzOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6
U2ludDMyeDM7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0OgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDQ7CisgICAgfQorICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDVmYWE4OWM5ZDFlNDhjMTQ4MmU1
OWU0Njk2MzFkOWI0ZmE2MzA5YmIuLjkzODUyMTBkZThiZWQ2YzM2ZWNiMDQ4MWE4OTk0MmU2ODNj
M2UwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRl
eFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4U3Rh
dGUuaApAQCAtMjgsMTEgKzI4LDM3IEBACiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
aCIKICNpbmNsdWRlICJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCIKICNpbmNsdWRlIDxvcHRpb25h
bD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBH
UFVWZXJ0ZXhTdGF0ZSA6IHB1YmxpYyBHUFVQcm9ncmFtbWFibGVTdGFnZSB7CisgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleFN0YXRlIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUKG1vZHVsZSk7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCisgICAgICAgICAgICAgICAgZW50cnlQb2lu
dCwKKyAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0YW50VmFs
dWU+PiBjb25zdGFudHM7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOworICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8mIGNvbnN0YW50IDogdGhpcy0+Y29uc3RhbnRzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0
YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNv
bnN0YW50czsKKyAgICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ+PiBidWZmZXJzOworICAgICAgICAgICAgICAg
IGJ1ZmZlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5idWZmZXJzLnNpemUoKSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvJiBidWZmZXIgOiB0aGlzLT5idWZmZXJzKQorICAgICAg
ICAgICAgICAgICAgICBidWZmZXJzLmFwcGVuZChidWZmZXIgPyBzdGQ6Om9wdGlvbmFsIHsgYnVm
ZmVyLT5jb252ZXJ0VG9CYWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGJ1ZmZlcnM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0K
KwogICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPEdQVVZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZl
cnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVW
ZXJ0ZXhTdGVwTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4
U3RlcE1vZGUuaAppbmRleCAyYzg5ZjE1NzgyN2Y5MjYxMzY0ZmI4ZTM0YjhhZmIyNWMwNjRmYWU5
Li5kODU3NmRmZmNjNzUyY2JiMDBkOWVjMTBhZjBiNzBmNGVlNWM1YjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGVwTW9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0ZXBNb2RlLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVWZXJ0ZXhTdGVwTW9k
ZSA6IHVpbnQ4X3QgewogICAgIEluc3RhbmNlCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlZl
cnRleFN0ZXBNb2RlIGNvbnZlcnRUb0JhY2tpbmcoR1BVVmVydGV4U3RlcE1vZGUgdmVydGV4U3Rl
cE1vZGUpCit7CisgICAgc3dpdGNoICh2ZXJ0ZXhTdGVwTW9kZSkgeworICAgIGNhc2UgR1BVVmVy
dGV4U3RlcE1vZGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhT
dGVwTW9kZTo6VmVydGV4OworICAgIGNhc2UgR1BVVmVydGV4U3RlcE1vZGU6Okluc3RhbmNlOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZTsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5YmM2
ZjFlMGIwODE1NTZlZjE1NDI3OWE3ODA2ZWQ2N2NiYjkxOWIuLjA5ZTZmNGU1YTEyMTE5NjI3YTUy
YzAwMTMxNmU1NWU3MzljNjE3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNiw2ICsxMTYsMTM0IEBACiAJCTFDQzNBQ0U4
MjJCRDdFQzUwMEYzNjBGMCAvKiBNZXRhbFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDM0FDRTcyMkJEN0VCODAwRjM2MEYwIC8qIE1ldGFsU1BJ
LmggKi87IH07CiAJCTFDQ0VFNEY1MjBEODcxOTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0VFNEY0MjBEODcx
OTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCAqLzsgfTsKIAkJMUNDRUU0RjcyMEQ4NzQzRjAwNDdC
MDk3IC8qIE5TQXBwZWFyYW5jZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDRUU0RjYyMEQ4NzQzRjAwNDdCMDk3IC8qIE5TQXBwZWFyYW5jZVNQ
SS5oICovOyB9OworCQkxQ0VGQTFDMzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmluZEdyb3Vw
RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNDNUU0NkUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aCAqLzsgfTsKKwkJMUNFRkExQzQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQyMzI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAqLzsg
fTsKKwkJMUNFRkExQzUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQWNj
ZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQyMDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCAqLzsg
fTsKKwkJMUNFRkExQzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDYz
MjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmggKi87IH07CisJCTFD
RUZBMUM3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFcnJvckZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjIyNzM3NDk0ODAwNkY2
RkY0IC8qIFdlYkdQVUVycm9yRmlsdGVyLmggKi87IH07CisJCTFDRUZBMUM4MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDhDMjczNzQ5NEEwMDZGNkZGNCAvKiBX
ZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkExQzkyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVRleHR1cmVEaW1lbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDIxMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJH
UFVUZXh0dXJlRGltZW5zaW9uLmggKi87IH07CisJCTFDRUZBMUNBMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVDb21waWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU5MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21waWxh
dGlvbkluZm8uaCAqLzsgfTsKKwkJMUNFRkExQ0IyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0NUEyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTFDQzI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDdDMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZS5oICovOyB9OworCQkxQ0VGQTFDRDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVVmFsaWRhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0M1RTQxNjI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVVmFsaWRhdGlv
bkVycm9yLmggKi87IH07CisJCTFDRUZBMUNFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDYW52
YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0OTMyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0Nv
bXBvc2l0aW5nQWxwaGFNb2RlLmggKi87IH07CisJCTFDRUZBMUNGMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQzVFNDcxMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFUuaCAqLzsgfTsKKwkJMUNFRkExRDAy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUZyb250RmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzAyNzM3NDk0ODAwNkY2RkY0IC8qIFdl
YkdQVUZyb250RmFjZS5oICovOyB9OworCQkxQ0VGQTFEMTI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVVmVydGV4U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDMwMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICov
OyB9OworCQkxQ0VGQTFEMjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVuZGVyQnVuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MjI3
Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyQnVuZGxlLmggKi87IH07CisJCTFDRUZBMUQz
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0MTI3Mzc0OTQ2MDA2
RjZGRjQgLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oICovOyB9OworCQkxQ0VGQTFENDI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2QTI3Mzc0OTQ4
MDA2RjZGRjQgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggKi87IH07CisJCTFD
RUZBMUQ1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kRW5jb2Rlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEUyNzM3NDk0NzAw
NkY2RkY0IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyLmggKi87IH07CisJCTFDRUZBMUQ2MjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVCbGVuZEZhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjEyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQ
VUJsZW5kRmFjdG9yLmggKi87IH07CisJCTFDRUZBMUQ3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJH
UFVTYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ4RjI3Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVU2FtcGxlci5oICovOyB9OworCQkx
Q0VGQTFEODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDM4MjczNzQ5
NDYwMDZGNkZGNCAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oICovOyB9OworCQkxQ0VGQTFE
OTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MjcyNzM3NDkyRDAwNkY2RkY0IC8qIFdl
YkdQVVRleHR1cmUuaCAqLzsgfTsKKwkJMUNFRkExREEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQ
VU9yaWdpbjJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ1NTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLzsgfTsKKwkJ
MUNFRkExREIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1RDI3Mzc0OTQ4MDA2
RjZGRjQgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLzsgfTsKKwkJMUNFRkExREMyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0N0IyNzM3NDk0OTAwNkY2RkY0IC8q
IFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oICovOyB9OworCQkxQ0VGQTFERDI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MUMyNzM3NDkyQzAwNkY2RkY0IC8qIFdl
YkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExREUyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVVBvd2VyUHJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0N0EyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVBvd2Vy
UHJlZmVyZW5jZS5oICovOyB9OworCQkxQ0VGQTFERjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BV
VW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQyOTI3Mzc0OTJEMDA2RjZGRjQgLyogV2ViR1BVVW5jYXB0
dXJlZEVycm9yRXZlbnRJbml0LmggKi87IH07CisJCTFDRUZBMUUwMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzYyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUJp
bmRHcm91cExheW91dEVudHJ5LmggKi87IH07CisJCTFDRUZBMUUxMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMxMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0
ZXhCdWZmZXJMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkExRTIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVUNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ3RTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29sb3IuaCAqLzsgfTsKKwkJMUNF
RkExRTMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0M0UyNzM3NDk0
NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oICovOyB9OworCQkxQ0VGQTFF
NDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEYyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLzsgfTsKKwkJMUNFRkExRTUyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2RDI3Mzc0OTQ4MDA2RjZGRjQgLyogV2Vi
R1BVUHJpbWl0aXZlU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExRTYyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVUV4dGVudDNELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0M1RTQzNzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVRXh0ZW50M0QuaCAqLzsg
fTsKKwkJMUNFRkExRTcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUFkZHJlc3NNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2QzI3Mzc0
OTQ4MDA2RjZGRjQgLyogV2ViR1BVQWRkcmVzc01vZGUuaCAqLzsgfTsKKwkJMUNFRkExRTgyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0NDI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUXVl
dWUuaCAqLzsgfTsKKwkJMUNFRkExRTkyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUltYWdlQ29w
eUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0NTYyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5oICovOyB9
OworCQkxQ0VGQTFFQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1MTI3
Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmggKi87IH07CisJCTFDRUZB
MUVCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDdWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODUyNzM3NDk0OTAwNkY2RkY0IC8q
IFdlYkdQVUN1bGxNb2RlLmggKi87IH07CisJCTFDRUZBMUVDMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0MTcyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZBMUVEMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVC
bGVuZE9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNDNUU0M0QyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUJsZW5kT3BlcmF0aW9uLmgg
Ki87IH07CisJCTFDRUZBMUVFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQxQjI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oICovOyB9OworCQkxQ0VGQTFFRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyRGVz
Y3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0NjUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAqLzsg
fTsKKwkJMUNFRkExRjAyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QzVFNDM2MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgg
Ki87IH07CisJCTFDRUZBMUYxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QzVFNDNDMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaCAqLzsg
fTsKKwkJMUNFRkExRjIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0
QTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCAqLzsgfTsKKwkJ
MUNFRkExRjMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVF
NDRDMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgg
Ki87IH07CisJCTFDRUZBMUY0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDREMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuaCAqLzsgfTsKKwkJMUNFRkExRjUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQzVFNDQ4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZBMUY2MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4MTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlci5oICovOyB9OworCQkxQ0VGQTFGNzI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0M1RTQ3OTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29tcGlsYXRp
b25NZXNzYWdlLmggKi87IH07CisJCTFDRUZBMUY4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1
dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggKi87IH07CisJCTFDRUZBMUY5MjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2MDI3Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5oICovOyB9OworCQkxQ0VGQTFGQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRGV2
aWNlTG9zdEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDZCMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVEZXZpY2VMb3N0SW5mby5oICov
OyB9OworCQkxQ0VGQTFGQjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXJyb3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDgzMjczNzQ5NDkw
MDZGNkZGNCAvKiBXZWJHUFVFcnJvci5oICovOyB9OworCQkxQ0VGQTFGQzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjQyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUZyYWdt
ZW50U3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExRkQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVBp
cGVsaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0M1RTQ0NTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCAq
LzsgfTsKKwkJMUNFRkExRkUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3Rh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVF
NDhCMjczNzQ5NEEwMDZGNkZGNCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmggKi87IH07CisJ
CTFDRUZBMUZGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQzRjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5o
ICovOyB9OworCQkxQ0VGQTIwMDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU2hhZGVyTW9kdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQx
RDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2hhZGVyTW9kdWxlLmggKi87IH07CisJCTFDRUZB
MjAxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDEz
MjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAq
LzsgfTsKKwkJMUNFRkEyMDIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVZlcnRleFN0ZXBNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQy
NDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVVmVydGV4U3RlcE1vZGUuaCAqLzsgfTsKKwkJMUNF
RkEyMDMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUFkYXB0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDdGMjczNzQ5NDkwMDZGNkZGNCAv
KiBXZWJHUFVBZGFwdGVyLmggKi87IH07CisJCTFDRUZBMjA0MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVCaW5kR3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDg0MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3JvdXAuaCAqLzsg
fTsKKwkJMUNFRkEyMDUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDgyMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmggKi87IH07CisJCTFDRUZBMjA2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVG
ZWF0dXJlTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNDNUU0OEUyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUZlYXR1cmVOYW1lLmggKi87IH07
CisJCTFDRUZBMjA3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NUYyNzM3NDk0
ODAwNkY2RkY0IC8qIFdlYkdQVUluZGV4Rm9ybWF0LmggKi87IH07CisJCTFDRUZBMjA4MjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4MDI3Mzc0OTQ5MDA2
RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oICovOyB9OworCQkxQ0VG
QTIwOTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDI2MjczNzQ5MkQwMDZGNkZG
NCAvKiBXZWJHUFVTaGFkZXJTdGFnZS5oICovOyB9OworCQkxQ0VGQTIwQTI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODkyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVURl
dmljZURlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkEyMEIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODgyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oICovOyB9OworCQkxQ0VGQTIwQzI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0MjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlLmggKi87IH07CisJCTFDRUZBMjBEMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQzVFNDg3MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyMEUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVURl
dmljZUxvc3RSZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDc3MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVEZXZpY2VMb3N0UmVhc29u
LmggKi87IH07CisJCTFDRUZBMjBGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0dXJlU2Ft
cGxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0MkUyNzM3NDkyRDAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggKi87
IH07CisJCTFDRUZBMjEwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQ2RjI3Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5o
ICovOyB9OworCQkxQ0VGQTIxMTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyQmluZGlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NjYyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuaCAqLzsgfTsKKwkJMUNF
RkEyMTIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NUMyNzM3NDk0
ODAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTIx
MzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MkYyNzM3NDkyRDAwNkY2RkY0
IC8qIFdlYkdQVVRleHR1cmVGb3JtYXQuaCAqLzsgfTsKKwkJMUNFRkEyMTQyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUludGVncmFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDg2MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVJbnRl
Z3JhbFR5cGVzLmggKi87IH07CisJCTFDRUZBMjE1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVW
ZXJ0ZXhGb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDJEMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0ZXhGb3JtYXQuaCAqLzsg
fTsKKwkJMUNFRkEyMTYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQ3RDI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaCAqLzsg
fTsKKwkJMUNFRkEyMTcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2OTI3
Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVQmluZEdyb3VwRW50cnkuaCAqLzsgfTsKKwkJMUNFRkEy
MTgyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVByaW1pdGl2ZVRvcG9sb2d5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1MzI3Mzc0OTQ3MDA2
RjZGRjQgLyogV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCAqLzsgfTsKKwkJMUNFRkEyMTkyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQxOTI3Mzc0OTJDMDA2RjZG
RjQgLyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyMUEyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MzkyNzM3NDk0NjAwNkY2
RkY0IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oICovOyB9OworCQkxQ0VGQTIxQjI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRDb21wb25lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDc4MjczNzQ5NDkwMDZGNkZGNCAv
KiBXZWJHUFVCbGVuZENvbXBvbmVudC5oICovOyB9OworCQkxQ0VGQTIxQzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMyMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJH
UFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oICovOyB9OworCQkxQ0VGQTIxRDI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVTG9hZE9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0M1RTQ1MDI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTG9hZE9wLmggKi87
IH07CisJCTFDRUZBMjFFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1
NzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oICovOyB9OworCQkx
Q0VGQTIxRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4RDI3Mzc0OTRBMDA2RjZGRjQg
LyogV2ViR1BVQnVmZmVyLmggKi87IH07CisJCTFDRUZBMjIwMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0NzUyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckJp
bmRpbmdUeXBlLmggKi87IH07CisJCTFDRUZBMjIxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVT
dXBwb3J0ZWRMaW1pdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDJCMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMu
aCAqLzsgfTsKKwkJMUNFRkEyMjIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDY3MjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmggKi87IH07CisJCTFDRUZBMjIzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVRdWVyeVNl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NTIyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5U2V0LmggKi87IH07CisJCTFDRUZBMjI0
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MTI3Mzc0
OTRBMDA2RjZGRjQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oICovOyB9Owor
CQkxQ0VGQTIyNTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NUUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLzsg
fTsKKwkJMUNFRkEyMjYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUND
NUU0MTQyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oICov
OyB9OworCQkxQ0VGQTIyNzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVuZGVyUGlwZWxpbmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU0
MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZS5oICovOyB9OworCQkxQ0VG
QTIyODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MTgyNzM3NDkyQzAw
NkY2RkY0IC8qIFdlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCAqLzsgfTsKKwkJMUNFRkEyMjkyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0b3JlT3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDFGMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVT
dG9yZU9wLmggKi87IH07CisJCTFDRUZBMjJBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVVbmNh
cHR1cmVkRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNDNUU0MTUyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVVuY2FwdHVyZWRFcnJv
ckV2ZW50LmggKi87IH07CisJCTFDRUZBMjJCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVGaWx0
ZXJNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQzNDI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVRmlsdGVyTW9kZS5oICovOyB9OworCQkx
Q0VGQTIyQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEIyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVUJsZW5kU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkEyMkQyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmggKi87IH07CisJCTFDRUZBMjJFMjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVNYXBNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0M1RTQ0MzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVTWFwTW9kZS5oICov
OyB9OworCQkxQ0VGQTIyRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4QXR0cmlidXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQy
QTI3Mzc0OTJEMDA2RjZGRjQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi87IH07CisJCTFD
RUZBMjMwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVRdWVyeVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDczMjczNzQ5NDkwMDZGNkZG
NCAvKiBXZWJHUFVRdWVyeVR5cGUuaCAqLzsgfTsKKwkJMUNFRkEyMzEyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0OTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVRGVw
dGhTdGVuY2lsU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkEyMzIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVUltYWdlQ29weVRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQzVFNDM1MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmggKi87IH07CisJCTFDRUZBMjMzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlVXNhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQzVFNDI1MjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVUZXh0dXJlVXNhZ2UuaCAqLzsgfTsK
KwkJMUNFRkEyMzQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVU9yaWdpbjNELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ3NDI3Mzc0OTQ5MDA2
RjZGRjQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLzsgfTsKKwkJMUNFRkEyMzUyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVVRleHR1cmVBc3BlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDIyMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVUZXh0
dXJlQXNwZWN0LmggKi87IH07CisJCTFDRUZBMjM2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVS
ZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzIyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggKi87IH07CisJCTFDRUZBMjM3Mjcz
N0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0OEEyNzM3NDk0OTAw
NkY2RkY0IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZB
MjM4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDFBMjczNzQ5MkMwMDZG
NkZGNCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCAqLzsgfTsKKwkJMUNFRkEyMzkyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2ODI3Mzc0OTQ4MDA2RjZGRjQg
LyogV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyM0EyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDNBMjczNzQ5NDYw
MDZGNkZGNCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi87IH07CisJ
CTFDRUZBMjNCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDQ3MjczNzQ5
NDcwMDZGNkZGNCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyM0My
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQyQzI3Mzc0OTJEMDA2RjZGRjQgLyog
V2ViR1BVVGV4dHVyZVZpZXcuaCAqLzsgfTsKKwkJMUNFRkEyM0QyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1QjI3Mzc0OTQ3MDA2RjZGRjQgLyog
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkEyM0Uy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yV3JpdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMzMjczNzQ5NDYwMDZGNkZGNCAvKiBX
ZWJHUFVDb2xvcldyaXRlLmggKi87IH07CisJCTFDRUZBMjNGMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MDI3Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5oICovOyB9OworCQkxQ0VGQTI0MDI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDNCMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTI0MTI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDI4MjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVTdXBw
b3J0ZWRGZWF0dXJlcy5oICovOyB9OworCQkxQ0VGQTI0MjI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQxRTI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVRGV2aWNlLmggKi87IH07CiAJCTFE
MTJDQzRCMjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMTJDQzRBMjQxMUJDQUUwMEZEQTBB
MyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCAqLzsgfTsKIAkJMUQyQjQxMzQyNUYwNUUzNTAwQTNGNzBB
IC8qIENsb2NrR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDJCNDEzMjI1RjA1RTM0MDBBM0Y3MEEgLyogQ2xvY2tHZW5lcmljLmNwcCAq
LzsgfTsKIAkJMUQyQjQxMzUyNUYwNUUzNTAwQTNGNzBBIC8qIENsb2NrR2VuZXJpYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQjQxMzMyNUYwNUUz
NTAwQTNGNzBBIC8qIENsb2NrR2VuZXJpYy5oICovOyB9OwpAQCAtMzc0LDcgKzUwMiw3IEBACiAJ
CTFDQzVFNDM0MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVGaWx0ZXJNb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVUZpbHRlck1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUNDNUU0MzUyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0M1RTQzNjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29tcGlsYXRpb25N
ZXNzYWdlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQzVFNDM3MjczNzQ5NDYwMDZGNkZG
NCAvKiBXZWJHUFVFeHRlbnQzRERpY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRXh0ZW50M0RE
aWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDM3MjczNzQ5NDYwMDZG
NkZGNCAvKiBXZWJHUFVFeHRlbnQzRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVFeHRlbnQzRC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQzODI3Mzc0OTQ2MDA2RjZGRjQg
LyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0MzkyNzM3
NDk0NjAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUNDNUU0M0EyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmlu
ZGluZ0xheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgyLDggKzUxMCw4
IEBACiAJCTFDQzVFNDNDMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDNEMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVC
bGVuZE9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCbGVuZE9wZXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQzRTI3Mzc0OTQ2MDA2RjZGRjQgLyog
V2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQ
YXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0M1RTQzRjI3Mzc0
OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxQ0M1RTQ0MDI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDNGMjczNzQ5
NDYwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDQxMjcz
NzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNDNUU0NDIyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1cmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NDMyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVU1hcE1vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVTWFwTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDAzLDcgKzUzMSw3IEBACiAJCTFDQzVFNDUyMjczNzQ5NDcwMDZGNkZGNCAvKiBX
ZWJHUFVRdWVyeVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVRdWVyeVNldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1MzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NTQyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVJlbmRl
clBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQzVFNDU1MjczNzQ5
NDcwMDZGNkZGNCAvKiBXZWJHUFVPcmlnaW4yRERpY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BV
T3JpZ2luMkREaWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDU1Mjcz
NzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVPcmlnaW4yRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVP
cmlnaW4yRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1NjI3Mzc0OTQ3
MDA2RjZGRjQgLyogV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQ
VUltYWdlQ29weUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1
NzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDQzVFNDU4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNCw3ICs1NjIsNyBAQAogCQkxQ0M1RTQ3MTI3Mzc0OTQ4
MDA2RjZGRjQgLyogV2ViR1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ3MjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNDNUU0NzMyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVRdWVyeVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUNDNUU0NzQyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVU9yaWdpbjNERGljdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVPcmlnaW4zRERpY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNDNUU0NzQyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVU9yaWdpbjNELmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdQVU9yaWdpbjNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQzVFNDc1MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0M1RTQ3NjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NzcyNzM3NDk0OTAwNkY2RkY0
IC8qIFdlYkdQVURldmljZUxvc3RSZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRGV2aWNl
TG9zdFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ0LDcgKzU3Miw3
IEBACiAJCTFDQzVFNDdCMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDdDMjczNzQ5NDkwMDZGNkZGNCAvKiBX
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ3RDI3
Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yRGljdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVDb2xvckRpY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVUNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVF
NDdGMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdQVUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0ODAyNzM3
NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0M1RTQ4MTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzIsNyArMTA2MCw3IEBACiAJCQkJ
MUNDNUU0NUQyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8sCiAJCQkJ
MUNDNUU0OTMyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFN
b2RlLmggKi8sCiAJCQkJMUNDNUU0NTgyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0Nv
bmZpZ3VyYXRpb24uaCAqLywKLQkJCQkxQ0M1RTQ3RTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BV
Q29sb3JEaWN0LmggKi8sCisJCQkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNv
bG9yLmggKi8sCiAJCQkJMUNDNUU0OEIyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yVGFy
Z2V0U3RhdGUuaCAqLywKIAkJCQkxQ0M1RTQzMzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29s
b3JXcml0ZS5oICovLAogCQkJCTFDQzVFNDYwMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVDb21t
YW5kQnVmZmVyLmggKi8sCkBAIC05NDYsNyArMTA3NCw3IEBACiAJCQkJMUNDNUU0OEMyNzM3NDk0
QTAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oICovLAogCQkJCTFDQzVF
NDNFMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaCAqLywKIAkJ
CQkxQ0M1RTQ4MjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBM
b2NhdGlvbi5oICovLAotCQkJCTFDQzVFNDQwMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlLmggKi8sCisJCQkJMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0
IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8sCiAJCQkJMUNDNUU0MUEy
NzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZS5oICovLAogCQkJCTFDQzVF
NDQ4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgg
Ki8sCiAJCQkJMUNDNUU0ODUyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUN1bGxNb2RlLmggKi8s
CkBAIC05NTcsNyArMTA4NSw3IEBACiAJCQkJMUNDNUU0NzcyNzM3NDk0OTAwNkY2RkY0IC8qIFdl
YkdQVURldmljZUxvc3RSZWFzb24uaCAqLywKIAkJCQkxQ0M1RTQ4MzI3Mzc0OTQ5MDA2RjZGRjQg
LyogV2ViR1BVRXJyb3IuaCAqLywKIAkJCQkxQ0M1RTQ2MjI3Mzc0OTQ4MDA2RjZGRjQgLyogV2Vi
R1BVRXJyb3JGaWx0ZXIuaCAqLywKLQkJCQkxQ0M1RTQzNzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2Vi
R1BVRXh0ZW50M0REaWN0LmggKi8sCisJCQkJMUNDNUU0MzcyNzM3NDk0NjAwNkY2RkY0IC8qIFdl
YkdQVUV4dGVudDNELmggKi8sCiAJCQkJMUNDNUU0NDIyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQ
VUV4dGVybmFsVGV4dHVyZS5oICovLAogCQkJCTFDQzVFNDNBMjczNzQ5NDYwMDZGNkZGNCAvKiBX
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNDNUU0OTEyNzM3
NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCAqLywKQEAg
LTk3Niw4ICsxMTA0LDggQEAKIAkJCQkxQ0M1RTQ0MzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BV
TWFwTW9kZS5oICovLAogCQkJCTFDQzVFNDU3MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVNdWx0
aXNhbXBsZVN0YXRlLmggKi8sCiAJCQkJMUNDNUU0N0MyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmggKi8sCi0JCQkJMUNDNUU0NTUyNzM3NDk0NzAwNkY2RkY0
IC8qIFdlYkdQVU9yaWdpbjJERGljdC5oICovLAotCQkJCTFDQzVFNDc0MjczNzQ5NDkwMDZGNkZG
NCAvKiBXZWJHUFVPcmlnaW4zRERpY3QuaCAqLywKKwkJCQkxQ0M1RTQ1NTI3Mzc0OTQ3MDA2RjZG
RjQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLywKKwkJCQkxQ0M1RTQ3NDI3Mzc0OTQ5MDA2RjZGRjQg
LyogV2ViR1BVT3JpZ2luM0QuaCAqLywKIAkJCQkxQ0M1RTQ0RjI3Mzc0OTQ3MDA2RjZGRjQgLyog
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAogCQkJCTFDQzVFNDVFMjczNzQ5NDgwMDZGNkZG
NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNDNUU0NDUyNzM3
NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0LmggKi8sCkBAIC0xMDAyLDcgKzEx
MzAsNyBAQAogCQkJCTFDQzVFNDRBMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5oICovLAogCQkJCTFDQzVFNDYzMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5k
ZXJQYXNzTGF5b3V0LmggKi8sCiAJCQkJMUNDNUU0ODgyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oICovLAotCQkJCTFDQzVFNDNGMjczNzQ5NDYw
MDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaCAqLywKKwkJCQkxQ0M1
RTQzRjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5o
ICovLAogCQkJCTFDQzVFNDU0MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBlbGlu
ZS5oICovLAogCQkJCTFDQzVFNDVBMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0M1RTQ3QjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2Vi
R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggKi8sCkBAIC0xMjk5LDYgKzE0MjcsMTM0IEBACiAJ
CQkJMDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQ2QjhDNEYyNjc0MEFEODAwN0E2NTU0IC8qIFZpc2lvbktpdENv
cmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5MUYzQkVCNDkwMERCQzMxNyAvKiBX
ZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUNGMjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjAzMjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVBZGFwdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFF
NzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQWRkcmVzc01vZGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjA0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFDRUZBMUMzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxNzI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVQmluZEdyb3VwRW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjBEMjcz
N0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUYzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFMDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjFC
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUNFRkExRDYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJsZW5kRmFjdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFRDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjJDMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCbGVuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxRjI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMTI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFRkExRDMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjIwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVC
dWZmZXJCaW5kaW5nVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUYyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFD
RUZBMURCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUNFRkExQ0UyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNhbnZhc0NvbXBvc2l0
aW5nQWxwaGFNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyRDI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNF
RkExRTIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFGRTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyM0UyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9y
V3JpdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUY5MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVDb21tYW5kQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzNzI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMUQ1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kRW5jb2Rlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRDQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUEyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBhcmVGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFRkExQ0EyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uSW5mby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRjcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRjAyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDRUZBMUM4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUUzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjA1MjczN0E0Qzgw
MEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxQ0VGQTFGODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjM4MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUY1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFQjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ3Vs
bE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjMxMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyNDIyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVURldmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEy
MEEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMUZBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVEZXZpY2VMb3N0SW5m
by5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMEUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQ
VURldmljZUxvc3RSZWFzb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUZCMjczN0E0Qzgw
MEYwREE5NSAvKiBXZWJHUFVFcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExQzcyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVUVycm9yRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
Q0VGQTFFNjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXh0ZW50M0QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMjBDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjNBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIy
NDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMDYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUZlYXR1
cmVOYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyQjI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVRmlsdGVyTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRkMyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUQwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVGcm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUU5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMjEwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzMjI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUNFRkEyM0YyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjNCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJ
bWFnZURhdGFMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjA3MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMTQy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUludGVncmFsVHlwZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjFEMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVMb2FkT3AuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjJFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVNYXBNb2RlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxRTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExQ0MyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VG
QTFEQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVT3JpZ2luMkQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjM0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVPcmlnaW4zRC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMUNFRkExRTQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVU91dE9mTWVtb3J5
RXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI1MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFG
RDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMUY0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjFBMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MURFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQb3dlclByZWZlcmVuY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjE2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQcmVkZWZpbmVkQ29s
b3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRTUyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVVByaW1pdGl2ZVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxODI3MzdB
NEM4MDBGMERBOTUgLyogV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUQ4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMjMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1
ZXJ5U2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMjI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzMDI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUXVlcnlUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
Q0VGQTFFODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUXVldWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUQyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJCdW5kbGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDRUZBMjIyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJC
dW5kbGVEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFGNjI3MzdBNEM4MDBG
MERBOTUgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUNFRkEyM0QyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIwODI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNF
RkEyMzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTI0MDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUYy
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUNFRkExQzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjBCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUZGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyNzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUNCMjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDRUZBMURDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUQ3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVT
YW1wbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzOTI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUYx
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMUM0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMDAyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVVNoYWRlck1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUUyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjA5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTaGFkZXJTdGFnZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMUNFRkExREQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0ZW5jaWxG
YWNlU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI4MjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFDNTI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjAxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI5MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVTdG9yZU9wLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTI0MTI3MzdB
NEM4MDBGMERBOTUgLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjIxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMUQ5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzNTI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVVGV4dHVyZUFzcGVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMTkyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFFQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMUM5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlRGltZW5zaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVGV4dHVyZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMEYy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQ0VGQTIzMzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZVVzYWdlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4
dHVyZVZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI2MjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MjFDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMUNFRkEyMkEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVVuY2FwdHVy
ZWRFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFERjI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFDRDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4
QXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFMTI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIx
NTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4Rm9ybWF0LmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQ0VGQTFEMTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4U3RhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDRUZBMjAyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVWZXJ0ZXhT
dGVwTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwODI2RjkxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVLmgKaW5kZXggZjkyZTY5YzQ5ZDEwZWNmNDg3ZTdlMDIyMTRjNzkxMWEx
ODk5MTA5YS4uOGI0YWM4ZWE3YzVjYmExNWRjNThhMzQ0ZDM2NzU1NTIwNGQzYTFmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKQEAgLTQw
LDcgKzQwLDcgQEAgY2xhc3MgR1BVIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVPiB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+R1BVKCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RBZGFwdGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYsIHN0
ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QWRhcHRlcj4pPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChSZWZQdHI8QWRhcHRlcj4mJik+JiYpID0gMDsKIAogcHJvdGVjdGVkOgogICAg
IEdQVSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaAppbmRleCAzNzViY2ZmOTM5NTAzYmFmODA5Nzg4
OTNlODMzODUwZGQxMTBjYmNkLi40MmVlYmU5YzJkN2I3YmJhNWFkMzBlNDM5OWFlYTg1NWM5YTVi
NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVBZGFwdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQWRhcHRlci5oCkBAIC00OCwxMyArNDgsMTMgQEAgcHVibGljOgogICAgIGNvbnN0
IFN1cHBvcnRlZExpbWl0cyYgbGltaXRzKCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAg
ICBib29sIGlzRmFsbGJhY2tBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRh
cHRlcjsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3Qgc3RkOjpvcHRp
b25hbDxEZXZpY2VEZXNjcmlwdG9yPiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+KT4mJikgPSAwOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgQWRhcHRlcihTdHJpbmcmJiBuYW1lLCBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+
JiYgZmVhdHVyZXMsIFJlZjxTdXBwb3J0ZWRMaW1pdHM+JiYgbGltaXRzLCBib29sIGlzRmFsbGJh
Y2tBZGFwdGVyKQorICAgIEFkYXB0ZXIoU3RyaW5nJiYgbmFtZSwgU3VwcG9ydGVkRmVhdHVyZXMm
IGZlYXR1cmVzLCBTdXBwb3J0ZWRMaW1pdHMmIGxpbWl0cywgYm9vbCBpc0ZhbGxiYWNrQWRhcHRl
cikKICAgICAgICAgOiBtX25hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAgICAgLCBtX2ZlYXR1cmVz
KFdURk1vdmUoZmVhdHVyZXMpKQotICAgICAgICAsIG1fbGltaXRzKFdURk1vdmUobGltaXRzKSkK
KyAgICAgICAgLCBtX2ZlYXR1cmVzKGZlYXR1cmVzKQorICAgICAgICAsIG1fbGltaXRzKGxpbWl0
cykKICAgICAgICAgLCBtX2lzRmFsbGJhY2tBZGFwdGVyKGlzRmFsbGJhY2tBZGFwdGVyKQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKaW5kZXggYzJlNjEy
ZDUzMGJmOThjY2FmOGE4ODUxYTEwMjlhMDQ1MDcyZGVhZS4uNmE5ODMzMTcwNzdhZTg2YzllZWYy
NzkxNjAxNTRjOTQxM2I0N2FjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgUEFMIHsKIG5hbWVzcGFjZSBXZWJHUFUgewog
CiBzdHJ1Y3QgQmluZEdyb3VwRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFz
ZSB7Ci0gICAgUmVmUHRyPEJpbmRHcm91cExheW91dD4gbGF5b3V0OworICAgIEJpbmRHcm91cExh
eW91dCYgbGF5b3V0OwogICAgIFZlY3RvcjxCaW5kR3JvdXBFbnRyeT4gZW50cmllczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cEVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oCmluZGV4IGVlZWRjZDZlYjZlMmI1MjMyN2M2OTA4YzY0
MGUzZTA4NWUzYjM0NDAuLmEzNjBkMDFhZDE0MjZlMzA5YzdiZThmNjc4ODUxOGQ5MGI5OWU3MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNl
IFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAotdXNpbmcgQmluZGluZ1Jlc291cmNlID0gc3Rk
Ojp2YXJpYW50PFJlZlB0cjxTYW1wbGVyPiwgUmVmUHRyPFRleHR1cmVWaWV3PiwgQnVmZmVyQmlu
ZGluZywgUmVmUHRyPEV4dGVybmFsVGV4dHVyZT4+OwordXNpbmcgQmluZGluZ1Jlc291cmNlID0g
c3RkOjp2YXJpYW50PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8U2FtcGxlcj4sIHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+LCBCdWZmZXJCaW5kaW5nLCBzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPEV4dGVybmFsVGV4dHVyZT4+OwogCiBzdHJ1Y3QgQmluZEdyb3VwRW50cnkgewogICAg
IEluZGV4MzIgYmluZGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmgKaW5kZXggMzE1NzRiMzQ3NGI2MDk3ZmZjNTUyNTIw
MmE5NzI0NDA1YjU1MzY4MC4uMTgzOTFkNmFmNzM3NDIwZDRkMDE0NzE5YWI3ODIwZWQ5ZWM4OWNi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQnVmZmVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2
b2lkKiBzb3VyY2U7CiAgICAgICAgIHNpemVfdCBieXRlTGVuZ3RoOwogICAgIH07Ci0gICAgdmly
dHVhbCBNYXBwZWRSYW5nZSBnZXRNYXBwZWRSYW5nZShzdGQ6Om9wdGlvbmFsPFNpemU2ND4gb2Zm
c2V0LCBzdGQ6Om9wdGlvbmFsPFNpemU2ND4gcmFuZ2VTaXplKSA9IDA7CisgICAgdmlydHVhbCBN
YXBwZWRSYW5nZSBnZXRNYXBwZWRSYW5nZShzdGQ6Om9wdGlvbmFsPFNpemU2ND4gb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPFNpemU2ND4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXAoKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcu
aAppbmRleCAwMzQ0MzE1YjA4M2YwY2JkODljZjhmZjg2ZTU2YjM4OWYzMzQ3NjFmLi5jOGZkYjAx
OTE3NGNmMjBiOTYwYWM5NTc5Y2Q3MGZjYWYxNzgzMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Zy5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7
CiAKIHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKLSAgICBSZWZQdHI8QnVmZmVyPiBidWZmZXI7Cisg
ICAgQnVmZmVyJiBidWZmZXI7CiAgICAgU2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFs
PFNpemU2ND4gc2l6ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5k
ZXggN2U1M2FhOTYyYTNkMGUxODk5YzVkNjY2ODIyZDFlMDMzODUzZGYwNy4uZDZiZTJlNjI4Yjhj
ODc3Zjc5NjczOGVhMGVmMTI0NGQyY2RmYzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZp
Z3VyYXRpb24uaApAQCAtMjYsMTIgKzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IldlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgiCi0jaW5jbHVkZSAiV2ViR1BVRXh0
ZW50M0REaWN0LmgiCisjaW5jbHVkZSAiV2ViR1BVRXh0ZW50M0QuaCIKICNpbmNsdWRlICJXZWJH
UFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVGb3JtYXQu
aCIKICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBQQUwgewogbmFt
ZXNwYWNlIFdlYkdQVSB7CkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIERldmljZTsKIHVzaW5nIFRl
eHR1cmVVc2FnZUZsYWdzID0gdWludDMyX3Q7IC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgbmVlZCB0
byBiZSBoZXJlLgogCiBzdHJ1Y3QgQ2FudmFzQ29uZmlndXJhdGlvbiB7Ci0gICAgUmVmUHRyPERl
dmljZT4gZGV2aWNlOworICAgIERldmljZSYgZGV2aWNlOwogICAgIFRleHR1cmVGb3JtYXQgZm9y
bWF0OwogICAgIFRleHR1cmVVc2FnZUZsYWdzIHVzYWdlOyAvLyBUZXh0dXJlVXNhZ2UuUkVOREVS
X0FUVEFDSE1FTlQKICAgICBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDk5NTRhM2VmN2ZmZTZiZTk1ZmNjNzljNzQ0OWU2MWFhNGZjN2FhZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUNvbG9yLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8dmFyaWFudD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBQQUwgeworbmFtZXNwYWNlIFdlYkdQ
VSB7CisKK3N0cnVjdCBDb2xvckRpY3QgeworICAgIGRvdWJsZSByOworICAgIGRvdWJsZSBnOwor
ICAgIGRvdWJsZSBiOworICAgIGRvdWJsZSBhOworfTsKKwordXNpbmcgQ29sb3IgPSBzdGQ6OnZh
cmlhbnQ8VmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD47CisKK30KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yRGljdC5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JEaWN0LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5OTU0YTNlZjdmZmU2YmU5NWZjYzc5Yzc0
NDllNjFhYTRmYzdhYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JE
aWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlIDx2YXJpYW50PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFBBTCB7Ci1uYW1lc3Bh
Y2UgV2ViR1BVIHsKLQotc3RydWN0IENvbG9yRGljdCB7Ci0gICAgZG91YmxlIHI7Ci0gICAgZG91
YmxlIGc7Ci0gICAgZG91YmxlIGI7Ci0gICAgZG91YmxlIGE7Ci19OwotCi11c2luZyBDb2xvciA9
IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91YmxlPiwgQ29sb3JEaWN0PjsKLQotfQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEVuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRFbmNvZGVyLmgKaW5kZXggOTE3MzNiNWJmNWRmMDQ0ZmIxOGEwNzEzNTk0ODRiNzBm
Y2NmNDM2Mi4uMTY0N2IyN2FlN2ZhODJkMjhmZDBiMGE2NDNmNDA3ZmYyNGM5MDMwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEVuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVDb21tYW5kRW5jb2Rlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViR1BV
Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc0Rl
c2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaCIKLSNpbmNs
dWRlICJXZWJHUFVFeHRlbnQzRERpY3QuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgog
I2luY2x1ZGUgIldlYkdQVUltYWdlQ29weUJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdl
Q29weVRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHUFVJbnRlZ3JhbFR5cGVzLmgiCkBAIC01OCw4
ICs1OCw4IEBAIHB1YmxpYzoKICAgICAgICAgc2V0TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIFJlZjxSZW5kZXJQYXNzRW5jb2Rlcj4gYmVnaW5SZW5kZXJQYXNz
KFJlbmRlclBhc3NEZXNjcmlwdG9yKSA9IDA7Ci0gICAgdmlydHVhbCBSZWY8Q29tcHV0ZVBhc3NF
bmNvZGVyPiBiZWdpbkNvbXB1dGVQYXNzKHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlw
dG9yPikgPSAwOworICAgIHZpcnR1YWwgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRl
clBhc3MoY29uc3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3ImKSA9IDA7CisgICAgdmlydHVhbCBSZWY8
Q29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdpbkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8
Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5QnVm
ZmVyVG9CdWZmZXIoCiAgICAgICAgIGNvbnN0IEJ1ZmZlciYgc291cmNlLApAQCAtMTAxLDcgKzEw
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgQnVmZmVyJiBkZXN0aW5hdGlvbiwKICAgICAg
ICAgU2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0KSA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZjxDb21t
YW5kQnVmZmVyPiBmaW5pc2goc3RkOjpvcHRpb25hbDxDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4p
ID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxDb21tYW5kQnVmZmVyPiBmaW5pc2goY29uc3QgQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3ImKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBDb21tYW5kRW5jb2Rl
cigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKaW5k
ZXggMGRhNzIyNjgzYmUyMGY1YmY5ODU2ZDJiMjM4MmRkYjljNDEyOTU0Yi4uMDg2YWI3MDIxYWIw
ZjE3NWFlYjlmNWFhYmJkMjZkMjdlYjc5NzQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBh
c3NEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgiCisjaW5jbHVkZSAiV2ViR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oIgogCiBuYW1lc3BhY2UgUEFMIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NF
bmNvZGVyLmgKaW5kZXggZGVhNjYyYjI1ZTJmYjdjYjI1NGFiMWNlYTk4MjE5ZGRlYmMzMjAxYi4u
YzIxODYyNWJlOGRlMTJjODM1MDg5MjQ2MzljMzZhNzRhNmU0MWJiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NFbmNv
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAgLTY2LDcgKzY2LDggQEAgcHVibGljOgogICAgICAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJikgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHNldEJpbmRHcm91cChJbmRleDMyLCBjb25zdCBCaW5kR3JvdXAmLAotICAg
ICAgICBWZWN0b3I8dWludDMyX3Q+JiYgZHluYW1pY09mZnNldHNEYXRhLAorICAgICAgICBjb25z
dCB1aW50MzJfdCogZHluYW1pY09mZnNldHNBcnJheUJ1ZmZlciwKKyAgICAgICAgc2l6ZV90IGR5
bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJMZW5ndGgsCiAgICAgICAgIFNpemU2NCBkeW5hbWljT2Zm
c2V0c0RhdGFTdGFydCwKICAgICAgICAgU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwNzMxYjdhZTkyOGFiYmU0ZjU2ZDI4NmEzMjkw
NjIzYTdmMzIxYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBMb2NhdGlvbi5oIgotI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKLSNpbmNsdWRl
ICJXZWJHUFVRdWVyeVNldC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBQQUwgewotbmFtZXNwYWNlIFdlYkdQVSB7Ci0KLXN0
cnVjdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlIHsKLSAgICBSZWZQdHI8UXVlcnlTZXQ+IHF1
ZXJ5U2V0OwotICAgIFNpemUzMiBxdWVyeUluZGV4OwotICAgIENvbXB1dGVQYXNzVGltZXN0YW1w
TG9jYXRpb24gbG9jYXRpb247Ci19OwotCi11c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
cyA9IFZlY3RvcjxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKLQotfQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4ZDk2
YTAwNTBlNjM5NmY1MWI2OWI4NmU5ODU1NDIzMjg1Zjg3OQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIgorI2lu
Y2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldC5o
IgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBQQUwgeworbmFtZXNwYWNlIFdlYkdQVSB7CisKK3N0cnVjdCBDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlIHsKKyAgICBRdWVyeVNldCYgcXVlcnlTZXQ7CisgICAgU2l6ZTMyIHF1ZXJ5SW5k
ZXg7CisgICAgQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbiBsb2NhdGlvbjsKK307CisKK3Vz
aW5nIENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPENvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGU+OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oCmluZGV4IDBkNmMxOGQ4ZmNjZDBlYjU1NjA1NmZi
YWIyZTJmYTExNDlmZGI5YmQuLjU1NjA0MjJiNGE3ZTExNzljZTIxMDEyMTI3YzFmMjBlOTMwMWNm
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVURldmljZS5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViR1BVRXJyb3Iu
aCIKICNpbmNsdWRlICJXZWJHUFVFcnJvckZpbHRlci5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRl
clBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNs
dWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC02NSw4ICs2Nyw2IEBA
IGNsYXNzIFNhbXBsZXI7CiBzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3I7CiBjbGFzcyBTaGFkZXJN
b2R1bGU7CiBzdHJ1Y3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvcjsKLWNsYXNzIFN1cHBvcnRlZEZl
YXR1cmVzOwotY2xhc3MgU3VwcG9ydGVkTGltaXRzOwogY2xhc3MgVGV4dHVyZTsKIHN0cnVjdCBU
ZXh0dXJlRGVzY3JpcHRvcjsKIApAQCAtODIsMTQgKzgyLDE2IEBAIHB1YmxpYzoKICAgICAgICAg
c2V0TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsKICAgICB9CiAKKyAgICBTdXBwb3J0ZWRGZWF0dXJl
cyYgZmVhdHVyZXMoKSB7IHJldHVybiBtX2ZlYXR1cmVzOyB9CiAgICAgY29uc3QgU3VwcG9ydGVk
RmVhdHVyZXMmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQorICAgIFN1
cHBvcnRlZExpbWl0cyYgbGltaXRzKCkgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBjb25zdCBT
dXBwb3J0ZWRMaW1pdHMmIGxpbWl0cygpIGNvbnN0IHsgcmV0dXJuIG1fbGltaXRzOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpID0gMDsKIAogICAgIHZpcnR1YWwgUmVmPEJ1ZmZlcj4g
Y3JlYXRlQnVmZmVyKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWY8VGV4dHVyZT4gY3JlYXRlVGV4dHVyZShjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYpID0gMDsK
LSAgICB2aXJ0dWFsIFJlZjxTYW1wbGVyPiBjcmVhdGVTYW1wbGVyKGNvbnN0IHN0ZDo6b3B0aW9u
YWw8U2FtcGxlckRlc2NyaXB0b3I+JikgPSAwOworICAgIHZpcnR1YWwgUmVmPFNhbXBsZXI+IGNy
ZWF0ZVNhbXBsZXIoY29uc3QgU2FtcGxlckRlc2NyaXB0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWY8RXh0ZXJuYWxUZXh0dXJlPiBpbXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgRXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvciYpID0gMDsKIAogICAgIHZpcnR1YWwgUmVmPEJpbmRHcm91cExheW91
dD4gY3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3Im
KSA9IDA7CkBAIC05OSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWY8U2hhZGVy
TW9kdWxlPiBjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYp
ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNvbXB1dGVQaXBl
bGluZShjb25zdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwg
UmVmPFJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBl
bGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoUmVmPENvbXB1dGVQaXBlbGluZT4pPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNy
ZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwg
c3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxSZW5kZXJQaXBlbGluZT4pPiYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPENvbXB1dGVQaXBlbGluZT4mJik+
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25z
dCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPFJlbmRl
clBpcGVsaW5lPiYmKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCBSZWY8Q29tbWFuZEVuY29kZXI+
IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yPiYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxSZW5kZXJCdW5kbGVFbmNvZGVyPiBj
cmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlw
dG9yJikgPSAwOwpAQCAtMTA4LDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZjxR
dWVyeVNldD4gY3JlYXRlUXVlcnlTZXQoY29uc3QgUXVlcnlTZXREZXNjcmlwdG9yJikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHB1c2hFcnJvclNjb3BlKEVycm9yRmlsdGVyKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHBvcEVycm9yU2NvcGUoc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RXJyb3I+KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3BFcnJvclNjb3BlKHN0ZDo6
ZnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPEVycm9yPiYmKT4mJikgPSAwOwogCiAgICAgY2xh
c3MgRGV2aWNlTG9zdENsaWVudCB7CiAgICAgICAgIHZpcnR1YWwgfkRldmljZUxvc3RDbGllbnQo
KSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKaW5kZXggOTkwYjFiNzE5
OTJhZGY3ZDExZGUyZWEzYTU3YTRmMzliMzRkYTlhOS4uODVlYjQ0YTYyMzU3MGRlNDZiYmY2YWFl
ZWRhNjgxMzc2ZGY5ZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaApAQCAtMzAs
NyArMzAsNiBAQAogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvS2V5VmFsdWVQYWlyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFBBTCB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3IuaAppbmRleCBl
OGJlNTdlODhmYzUwODAxZWUxN2FjN2RiNTU1NDg0MWUxNGQ4NjllLi4wMjczZTZhNmZlZjQ3YThl
Y2VjZmMzZTllYjI2MjFiOTFkZTgxZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yLmgKQEAgLTI4LDEyICsyOCwxMiBAQAog
I2luY2x1ZGUgIldlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCIKICNpbmNsdWRlICJXZWJHUFVWYWxp
ZGF0aW9uRXJyb3IuaCIKICNpbmNsdWRlIDx2YXJpYW50PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdl
YkdQVSB7CiAKLXVzaW5nIEVycm9yID0gc3RkOjp2YXJpYW50PFJlZlB0cjxPdXRPZk1lbW9yeUVy
cm9yPiwgUmVmUHRyPFZhbGlkYXRpb25FcnJvcj4+OwordXNpbmcgRXJyb3IgPSBzdGQ6OnZhcmlh
bnQ8UmVmPE91dE9mTWVtb3J5RXJyb3I+LCBSZWY8VmFsaWRhdGlvbkVycm9yPj47CiAKIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUV4dGVudDNELmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVFeHRlbnQzRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMTIwNGQ1NjMwNzk5Zjg4NjM3NjBkNTQwNDI0YWFj
ZjEyNmJhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNs
dWRlIDx2YXJpYW50PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFBBTCB7
CituYW1lc3BhY2UgV2ViR1BVIHsKKworc3RydWN0IEV4dGVudDNERGljdCB7CisgICAgSW50ZWdl
ckNvb3JkaW5hdGUgd2lkdGg7CisgICAgSW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0OworICAgIElu
dGVnZXJDb29yZGluYXRlIGRlcHRoT3JBcnJheUxheWVyczsKK307CisKK3VzaW5nIEV4dGVudDNE
ID0gc3RkOjp2YXJpYW50PFZlY3RvcjxJbnRlZ2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGljdD47
CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUV4dGVudDNERGljdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRXh0ZW50M0REaWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkwMTIwNGQ1NjMwNzk5Zjg4NjM3NjBkNTQwNDI0YWFjZjEyNmJhMTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0REaWN0LmgKKysrIC9kZXYvbnVsbApAQCAt
MSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJXZWJH
UFVJbnRlZ3JhbFR5cGVzLmgiCi0jaW5jbHVkZSA8dmFyaWFudD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0KLW5hbWVzcGFjZSBQQUwgewotbmFtZXNwYWNlIFdlYkdQVSB7Ci0KLXN0cnVjdCBF
eHRlbnQzRERpY3QgewotICAgIEludGVnZXJDb29yZGluYXRlIHdpZHRoOwotICAgIEludGVnZXJD
b29yZGluYXRlIGhlaWdodDsKLSAgICBJbnRlZ2VyQ29vcmRpbmF0ZSBkZXB0aE9yQXJyYXlMYXll
cnM7Ci19OwotCi11c2luZyBFeHRlbnQzRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8SW50ZWdlckNv
b3JkaW5hdGU+LCBFeHRlbnQzRERpY3Q+OwotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXggMTcxMDk5NjViNDczMmRkZDYwNjg1MjlhMzhl
MzkzMDI3M2Q5Yjc0OS4uZmRiMGZjNjQ5YjZmNDI3MTExZmQ1NjAxMGYwNmFiOTk0ZDdmNzMwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaApAQCAtMjcs
NyArMjcsNiBAQAogCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKICNp
bmNsdWRlICJXZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNl
LmgKaW5kZXggYWRmZTU3ODM1Yjk0M2ZhNTU3MGRiZjczYTc3YTA3OTg3NDIyZDg3OS4uMjk2MDll
YTA5YjI0ZGY4NmVhNGIyZDc4ODVkNzcxNWMxMzUyNTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAg
LTMxLDggKzMxLDggQEAgbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogZW51
bSBjbGFzcyBGcm9udEZhY2UgOiB1aW50OF90IHsKLSAgICBDY3csCi0gICAgQ3cKKyAgICBDQ1cs
CisgICAgQ1cKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXggNDQ4ZGRi
MDRjNmMwNTAxOTI4YTVmMGFlZTYwODFhMGNlNTRjYzJiMi4uZjIyYzZiZDljMDNmNDdhYWQ3NDAy
N2E3OTQ2MDdkMmRmYjI5M2EzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTI3
LDEzICsyNywxMyBAQAogCiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3Ry
dWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1YmxpYyBJbWFnZURhdGFMYXlvdXQgewotICAgIFJlZlB0
cjxCdWZmZXI+IGJ1ZmZlcjsKKyAgICBCdWZmZXImIGJ1ZmZlcjsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eUV4dGVybmFsSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaAppbmRleCA4NDc1OTFmNWY5NmRmN2FhMDYw
MzcxMWQ5MTMxYmIyNTg3M2FjMTQzLi4wMjQyYjA4Yzg2MzI4OTNlNTY1MzRkMDNhZGY3Y2M3ODYz
ZGYzNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCkBAIC0y
NSwxMCArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkdQVU9yaWdpbjJE
RGljdC5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdpbjJELmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+
CiAjaW5jbHVkZSA8dmFyaWFudD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgK
aW5kZXggMDU3YjVlOGFmNDQyZWRjYTQyNmQwOThjMGI4ODJmZWUwYzk1ZmYzYS4uNzZmMWEwZTU0
OGM2MDY4MWZiZWNlYWY0ZjNlNWI5Njk4NDY1Y2M5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRl
eHR1cmUuaApAQCAtMjYsMTcgKzI2LDE3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldl
YkdQVUludGVncmFsVHlwZXMuaCIKLSNpbmNsdWRlICJXZWJHUFVPcmlnaW4zRERpY3QuaCIKKyNp
bmNsdWRlICJXZWJHUFVPcmlnaW4zRC5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmUuaCIKICNp
bmNsdWRlICJXZWJHUFVUZXh0dXJlQXNwZWN0LmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Ci0jaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFBB
TCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weVRleHR1cmUgewotICAg
IFJlZlB0cjxUZXh0dXJlPiB0ZXh0dXJlOworICAgIFRleHR1cmUmIHRleHR1cmU7CiAgICAgSW50
ZWdlckNvb3JkaW5hdGUgbWlwTGV2ZWw7CiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4zRD4gb3Jp
Z2luOwogICAgIFRleHR1cmVBc3BlY3QgYXNwZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmU3ZDljNmRhMDA2MmE4MDBjZjQ1Y2RlMzZiMDlhYmJiMWY1MWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJE
LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgUEFMIHsKK25hbWVzcGFjZSBXZWJHUFUgeworCitz
dHJ1Y3QgT3JpZ2luMkREaWN0IHsKKyAgICBJbnRlZ2VyQ29vcmRpbmF0ZSB4OworICAgIEludGVn
ZXJDb29yZGluYXRlIHk7Cit9OworCit1c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFudDxWZWN0
b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OworCit9Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4yRERp
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdp
bjJERGljdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTdkOWM2ZGEwMDYyYTgw
MGNmNDVjZGUzNmIwOWFiYmIxZjUxZDBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVU9yaWdpbjJERGljdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgot
I2luY2x1ZGUgPHZhcmlhbnQ+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2Ug
UEFMIHsKLW5hbWVzcGFjZSBXZWJHUFUgewotCi1zdHJ1Y3QgT3JpZ2luMkREaWN0IHsKLSAgICBJ
bnRlZ2VyQ29vcmRpbmF0ZSB4OwotICAgIEludGVnZXJDb29yZGluYXRlIHk7Ci19OwotCi11c2lu
ZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBPcmln
aW4yRERpY3Q+OwotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGZlMjE0ODE1NDMw
NmFkNTlmN2U5Zjk5M2FmNDcwOTgyZmM5M2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJHUFVJbnRl
Z3JhbFR5cGVzLmgiCisjaW5jbHVkZSA8dmFyaWFudD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBQQUwgeworbmFtZXNwYWNlIFdlYkdQVSB7CisKK3N0cnVjdCBPcmlnaW4z
RERpY3QgeworICAgIEludGVnZXJDb29yZGluYXRlIHg7CisgICAgSW50ZWdlckNvb3JkaW5hdGUg
eTsKKyAgICBJbnRlZ2VyQ29vcmRpbmF0ZSB6OworfTsKKwordXNpbmcgT3JpZ2luM0QgPSBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPEludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luM0REaWN0PjsKKworfQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVT3JpZ2luM0REaWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPcmlnaW4zRERpY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRm
ZTIxNDgxNTQzMDZhZDU5ZjdlOWY5OTNhZjQ3MDk4MmZjOTNiYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4zRERpY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIldlYkdQVUludGVn
cmFsVHlwZXMuaCIKLSNpbmNsdWRlIDx2YXJpYW50PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LQotbmFtZXNwYWNlIFBBTCB7Ci1uYW1lc3BhY2UgV2ViR1BVIHsKLQotc3RydWN0IE9yaWdpbjNE
RGljdCB7Ci0gICAgSW50ZWdlckNvb3JkaW5hdGUgeDsKLSAgICBJbnRlZ2VyQ29vcmRpbmF0ZSB5
OwotICAgIEludGVnZXJDb29yZGluYXRlIHo7Ci19OwotCi11c2luZyBPcmlnaW4zRCA9IHN0ZDo6
dmFyaWFudDxWZWN0b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4zRERpY3Q+OwotCi19Ci19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKaW5kZXggNDZiNjhlY2Iw
NjZkYTQxNGNiM2E2NWI3MDRkZGRkZDY3ZGRhMGE1Zi4uMDg4MDMyOTg1NTQ3YWRiYWE0NDk2NTky
MDJjNjYzNmViMDZjZjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJh
c2UuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgUEFMIHsKIG5hbWVzcGFjZSBXZWJHUFUg
ewogCiBzdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSA6IHB1YmxpYyBPYmplY3REZXNjcmlw
dG9yQmFzZSB7Ci0gICAgUmVmUHRyPFBpcGVsaW5lTGF5b3V0PiBsYXlvdXQ7CisgICAgUGlwZWxp
bmVMYXlvdXQqIGxheW91dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yLmgKaW5kZXggZTE1NTZkNzQ0NThmMjZkYmU1Mzg0NGRlMTM1ZjIxOWMzY2E4
ZjFhMy4uYTE5ZjNkYWIwNWY4YzEyZDk4MTAwN2MzYzBlZTM3MGQ2YmI1ZmNjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTI3LDEzICsyNywxNCBA
QAogCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgiCiAjaW5jbHVkZSAiV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3Ry
dWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFz
ZSB7Ci0gICAgVmVjdG9yPFJlZlB0cjxCaW5kR3JvdXBMYXlvdXQ+PiBiaW5kR3JvdXBMYXlvdXRz
OworICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPEJpbmRHcm91cExheW91dD4+IGJp
bmRHcm91cExheW91dHM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaApp
bmRleCA0MWY3MWQ0NjdjMmQ4YTEyNTM5ZDFmMmM3Y2I1NDU2YzNhMTQxNmZhLi43NjNjYmY4MzU0
ZDQyYjdjMmI2OGZkZmZkMDk3ZWUzZDM4NWVkZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJs
ZVN0YWdlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVs
ZS5oIgogI2luY2x1ZGUgPHd0Zi9LZXlWYWx1ZVBhaXIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFBBTCB7CkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJHUFUgewogdXNpbmcg
UGlwZWxpbmVDb25zdGFudFZhbHVlID0gZG91YmxlOyAvLyBNYXkgcmVwcmVzZW50IFdHU0zigJlz
IGJvb2wsIGYzMiwgaTMyLCB1MzIuCiAKIHN0cnVjdCBQcm9ncmFtbWFibGVTdGFnZSB7Ci0gICAg
UmVmUHRyPFNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgIFNoYWRlck1vZHVsZSYgbW9kdWxlOwog
ICAgIFN0cmluZyBlbnRyeVBvaW50OwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQ
aXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNl
dERlc2NyaXB0b3IuaAppbmRleCAyZjliNjdmYzkzMjMxOTljOWNlYzc5ZDY5NzQ1ZjcwZjdmZDg3
MzA5Li41NTY5ZmFlMjE1MTRjNmI0MjhlYWNlNjY1YzY5NTMyNzE1MWZiMTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldERl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIldl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVTdGF0
aXN0aWNOYW1lLmgiCiAjaW5jbHVkZSAiV2ViR1BVUXVlcnlUeXBlLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFBBTCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVl
dWUuaAppbmRleCAzZGM5ZWU5NTQ1ODBkNzlhYzBjOTlmOTU0MTllNjA1OGU5NTQyOGI3Li5jMzM5
NzZlYzc0MTM3OWZiNjJlZTY2NWJmMzIwODc3MTViYTMzYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmgKQEAgLTI2LDcg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZlci5o
IgotI2luY2x1ZGUgIldlYkdQVUV4dGVudDNERGljdC5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVu
dDNELmgiCiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIgogI2luY2x1
ZGUgIldlYkdQVUltYWdlQ29weVRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkLmgiCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSA8dXRpbGl0eT4KICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC01Nyw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0
TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VibWl0
KFZlY3RvcjxSZWZQdHI8Q29tbWFuZEJ1ZmZlcj4+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN1
Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxDb21tYW5kQnVmZmVyPj4mJikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmUoc3RkOjpmdW5jdGlvbjx2
b2lkKCk+JiYpID0gMDsKIApAQCAtNjYsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNpemU2
NCBidWZmZXJPZmZzZXQsCiAgICAgICAgIGNvbnN0IHZvaWQqIHNvdXJjZSwKICAgICAgICAgc2l6
ZV90IGJ5dGVMZW5ndGgsCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBkYXRhT2Zmc2V0
LAorICAgICAgICBTaXplNjQgZGF0YU9mZnNldCwKICAgICAgICAgc3RkOjpvcHRpb25hbDxTaXpl
NjQ+KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUZXh0dXJlKApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
RW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UmVuZGVyQnVuZGxlRW5jb2Rlci5oCmluZGV4IDNhYThkMGNjODc5ZWYyN2Q3Yjc0ZmFkYjM2NGNm
MWFmMDdmMTVhYjguLjE3MDUzMjFjNDA3ZTc0NTMzMDBmNWI5MjkzNGI2ZmZjN2ViNzg2ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlckJ1bmRsZUVuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKQEAgLTczLDcgKzczLDggQEAgcHVi
bGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxCdWZmZXJEeW5hbWljT2Zmc2V0Pj4m
JiBkeW5hbWljT2Zmc2V0cykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEJpbmRHcm91cChJ
bmRleDMyLCBjb25zdCBCaW5kR3JvdXAmLAotICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiYgZHlu
YW1pY09mZnNldHNEYXRhLAorICAgICAgICBjb25zdCB1aW50MzJfdCogZHluYW1pY09mZnNldHNB
cnJheUJ1ZmZlciwKKyAgICAgICAgc2l6ZV90IGR5bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJMZW5n
dGgsCiAgICAgICAgIFNpemU2NCBkeW5hbWljT2Zmc2V0c0RhdGFTdGFydCwKICAgICAgICAgU2l6
ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkgPSAwOwogCkBAIC04MSw3ICs4Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9wRGVidWdHcm91cCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpID0gMDsKIAotICAg
IHZpcnR1YWwgUmVmPFJlbmRlckJ1bmRsZT4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVu
ZGxlRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxSZW5kZXJCdW5kbGU+IGZpbmlz
aChjb25zdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAg
UmVuZGVyQnVuZGxlRW5jb2RlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnQuaAppbmRleCAzNDkzMGRiOWNmMzUzNWE4OWIwZDQ4MDA1OWJj
MTdkYTdiYjhlOGM2Li4zNGE5ODRkYTE1YmViZGI3ZDY0YWZiZDE0ZDY2MmI4ZDIxOWVkYzgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCkBAIC0yNSwy
MCArMjUsMjAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJHUFVDb2xvckRpY3Qu
aCIKKyNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgogI2luY2x1ZGUgIldlYkdQVUxvYWRPcC5oIgog
I2luY2x1ZGUgIldlYkdQVVN0b3JlT3AuaCIKICNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVmlldy5o
IgogI2luY2x1ZGUgPHZhcmlhbnQ+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBQQUwgewog
bmFtZXNwYWNlIFdlYkdQVSB7CiAKIHN0cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50IHsK
LSAgICBSZWZQdHI8VGV4dHVyZVZpZXc+IHZpZXc7Ci0gICAgUmVmUHRyPFRleHR1cmVWaWV3PiBy
ZXNvbHZlVGFyZ2V0OworICAgIFRleHR1cmVWaWV3JiB2aWV3OworICAgIFRleHR1cmVWaWV3KiBy
ZXNvbHZlVGFyZ2V0OwogCiAgICAgc3RkOjp2YXJpYW50PExvYWRPcCwgVmVjdG9yPGRvdWJsZT4s
IENvbG9yRGljdD4gbG9hZFZhbHVlOwogICAgIFN0b3JlT3Agc3RvcmVPcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NE
ZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oCmluZGV4IDNi
MDU0OTcxYTc3NjJiOTZmNzE0N2ZhYzg0ZDQxYzMyNTE1NTQzN2UuLjRkOTQxYzE5ZjY4OTU5YzZl
NzU5Mzg4N2ZkNWE4MDMxNGVkYTliMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApAQCAtMzAsMTMgKzMwLDEzIEBACiAjaW5j
bHVkZSAiV2ViR1BVU3RvcmVPcC5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3LmgiCiAj
aW5jbHVkZSA8dmFyaWFudD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogCiBuYW1lc3BhY2UgUEFMIHsKIG5hbWVzcGFjZSBXZWJHUFUgewogCiBzdHJ1Y3Qg
UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQgewotICAgIFJlZlB0cjxUZXh0dXJlVmll
dz4gdmlldzsKKyAgICBUZXh0dXJlVmlldyYgdmlldzsKIAogICAgIHN0ZDo6dmFyaWFudDxMb2Fk
T3AsIGZsb2F0PiBkZXB0aExvYWRWYWx1ZTsKICAgICBTdG9yZU9wIGRlcHRoU3RvcmVPcDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IDM0ZTlmMzUyNWVhOThmNWIz
NTY0NjA4NDY4Mzg2NjE1ZGZiMjVhZGUuLjFkNjZmMDY4NWY0NzEyN2UwYmZmNTg3M2E1OGU3YTgy
MDA3YzczZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaApAQCAtMjks
OSArMjksOCBAQAogI2luY2x1ZGUgIldlYkdQVVF1ZXJ5U2V0LmgiCiAjaW5jbHVkZSAiV2ViR1BV
UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NE
ZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgiCi0jaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBQQUwgewpAQCAtNDAsNyArMzksNyBAQCBuYW1l
c3BhY2UgV2ViR1BVIHsKIHN0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvciA6IHB1YmxpYyBPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CiAgICAgVmVjdG9yPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+
IGNvbG9yQXR0YWNobWVudHM7CiAgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudD4gZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKLSAgICBSZWZQdHI8UXVlcnlT
ZXQ+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgIFF1ZXJ5U2V0KiBvY2NsdXNpb25RdWVyeVNldDsK
ICAgICBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFtcFdyaXRlczsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDQ5NTZlZTQxNTRhMWE0N2RkOTNkZjJl
ODVhOTRlZmI3MzdjMTIxZmUuLjJiYzFhMzI2ODA2ZGEwYTU2NDgyY2YyZGVhZDRkMDI1MWEwNGJj
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtMjUsMTMgKzI1LDEzIEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR1BVQ29sb3JEaWN0LmgiCisjaW5jbHVk
ZSAiV2ViR1BVQ29sb3IuaCIKICNpbmNsdWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1
ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRl
IDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTc1LDcgKzc1LDggQEAgcHVibGlj
OgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBk
eW5hbWljT2Zmc2V0cykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEJpbmRHcm91cChJbmRl
eDMyLCBjb25zdCBCaW5kR3JvdXAmLAotICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiYgZHluYW1p
Y09mZnNldHNEYXRhLAorICAgICAgICBjb25zdCB1aW50MzJfdCogZHluYW1pY09mZnNldHNBcnJh
eUJ1ZmZlciwKKyAgICAgICAgc2l6ZV90IGR5bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJMZW5ndGgs
CiAgICAgICAgIFNpemU2NCBkeW5hbWljT2Zmc2V0c0RhdGFTdGFydCwKICAgICAgICAgU2l6ZTMy
IGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkgPSAwOwogCkBAIC05OSw3ICsxMDAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoY29uc3Qg
UXVlcnlTZXQmLCBTaXplMzIgcXVlcnlJbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQ
aXBlbGluZVN0YXRpc3RpY3NRdWVyeSgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBleGVjdXRl
QnVuZGxlcyhWZWN0b3I8UmVmUHRyPFJlbmRlckJ1bmRsZT4+JiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhlY3V0ZUJ1bmRsZXMoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UmVuZGVy
QnVuZGxlPj4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQYXNzKCkgPSAwOwogCiBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWE4YTcyZTNmYWUwMGNjY2ZmOGIyN2Q5NDEyNmUz
ZjU1YTAxOWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgotI2lu
Y2x1ZGUgIldlYkdQVVF1ZXJ5U2V0LmgiCi0jaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcExvY2F0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLQotbmFtZXNwYWNlIFBBTCB7Ci1uYW1lc3BhY2UgV2ViR1BVIHsKLQotc3RydWN0
IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSB7Ci0gICAgUmVmUHRyPFF1ZXJ5U2V0PiBxdWVyeVNl
dDsKLSAgICBTaXplMzIgcXVlcnlJbmRleDsKLSAgICBSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRp
b24gbG9jYXRpb247Ci19OwotCi11c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVj
dG9yPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT47Ci0KLX0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTQ4YmRjZTY1ZWE2NDRl
NDY3NTE3NDlmODZkYjViNzBiZGNlODBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldC5oIgor
I2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBQQUwgewor
bmFtZXNwYWNlIFdlYkdQVSB7CisKK3N0cnVjdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUgewor
ICAgIFF1ZXJ5U2V0JiBxdWVyeVNldDsKKyAgICBTaXplMzIgcXVlcnlJbmRleDsKKyAgICBSZW5k
ZXJQYXNzVGltZXN0YW1wTG9jYXRpb24gbG9jYXRpb247Cit9OworCit1c2luZyBSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT47CisKK30K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVNoYWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKaW5kZXggNGZiNDJmOTBhYWQ4MDNkNmUxYTYxNzI3ZDlh
NzBiNmFiOTA0NTYyMi4uZTgwMDkzZmIxZmYxYmI0YWM0NTAxZjAzODMyMjhjNGU4NjUwNjI4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAg
ICBzZXRMYWJlbEludGVybmFsKG1fbGFiZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBj
b21waWxhdGlvbkluZm8oc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxDb21waWxhdGlvbkluZm8+KT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkluZm8oc3RkOjpmdW5jdGlvbjx2
b2lkKFJlZjxDb21waWxhdGlvbkluZm8+JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBT
aGFkZXJNb2R1bGUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaApp
bmRleCAwYTFmM2QyMjcxZThhZDU3NDVkMTkxOTg1NzIyMDQ1YjBlYWI5NjFmLi4zODUwNTJiNDdl
YTI4NTUwOTZiMjc5NjRmYTcxMzVmZGQwZjg0ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZl
YXR1cmVzLmgKQEAgLTM5LDYgKzM5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3VwcG9ydGVkRmVhdHVyZXMoV1RGTW92ZShmZWF0dXJlcykpKTsKICAgICB9CiAK
KyAgICBzdGF0aWMgUmVmPFN1cHBvcnRlZEZlYXR1cmVzPiBjbG9uZShjb25zdCBTdXBwb3J0ZWRG
ZWF0dXJlcyYgZmVhdHVyZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
dXBwb3J0ZWRGZWF0dXJlcyhWZWN0b3I8U3RyaW5nPihmZWF0dXJlcy5mZWF0dXJlcygpKSkpOwor
ICAgIH0KKwogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0
dXJuIG1fZmVhdHVyZXM7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMu
aAppbmRleCA5Zjk2MGRmZjY3YzU2ZjhiN2JhMTU0NmU2YWEzNDI0MGQxNmU0MzlkLi40OGQ5OTU4
MzMzZDUzYjdkYzhhOTM5NGY0MjQ1ODYyNzU3M2VhYjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRM
aW1pdHMuaApAQCAtOTAsNiArOTAsMzcgQEAgcHVibGljOgogICAgICAgICAgICAgbWF4Q29tcHV0
ZVdvcmtncm91cHNQZXJEaW1lbnNpb24pKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPFN1cHBv
cnRlZExpbWl0cz4gY2xvbmUoY29uc3QgU3VwcG9ydGVkTGltaXRzJiBsaW1pdHMpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdXBwb3J0ZWRMaW1pdHMoCisgICAgICAgICAg
ICBsaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjFEKCksCisgICAgICAgICAgICBsaW1pdHMubWF4
VGV4dHVyZURpbWVuc2lvbjJEKCksCisgICAgICAgICAgICBsaW1pdHMubWF4VGV4dHVyZURpbWVu
c2lvbjNEKCksCisgICAgICAgICAgICBsaW1pdHMubWF4VGV4dHVyZUFycmF5TGF5ZXJzKCksCisg
ICAgICAgICAgICBsaW1pdHMubWF4QmluZEdyb3VwcygpLAorICAgICAgICAgICAgbGltaXRzLm1h
eER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KCksCisgICAgICAgICAgICBs
aW1pdHMubWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQoKSwKKyAgICAg
ICAgICAgIGxpbWl0cy5tYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSgpLAorICAgICAg
ICAgICAgbGltaXRzLm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UoKSwKKyAgICAgICAgICAgIGxp
bWl0cy5tYXhTdG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlKCksCisgICAgICAgICAgICBsaW1p
dHMubWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UoKSwKKyAgICAgICAgICAgIGxpbWl0
cy5tYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlKCksCisgICAgICAgICAgICBsaW1pdHMu
bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplKCksCisgICAgICAgICAgICBsaW1pdHMubWF4U3Rv
cmFnZUJ1ZmZlckJpbmRpbmdTaXplKCksCisgICAgICAgICAgICBsaW1pdHMubWluVW5pZm9ybUJ1
ZmZlck9mZnNldEFsaWdubWVudCgpLAorICAgICAgICAgICAgbGltaXRzLm1pblN0b3JhZ2VCdWZm
ZXJPZmZzZXRBbGlnbm1lbnQoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhWZXJ0ZXhCdWZmZXJz
KCksCisgICAgICAgICAgICBsaW1pdHMubWF4VmVydGV4QXR0cmlidXRlcygpLAorICAgICAgICAg
ICAgbGltaXRzLm1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlKCksCisgICAgICAgICAgICBsaW1p
dHMubWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMoKSwKKyAgICAgICAgICAgIGxpbWl0cy5t
YXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhD
b21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXAoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhD
b21wdXRlV29ya2dyb3VwU2l6ZVgoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29y
a2dyb3VwU2l6ZVkoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6
ZVooKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lv
bigpKSk7CisgICAgfQorCiAgICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjFEKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhUZXh0dXJlRGltZW5zaW9uMUQ7IH0KICAgICB1aW50MzJfdCBtYXhU
ZXh0dXJlRGltZW5zaW9uMkQoKSBjb25zdCB7IHJldHVybiBtX21heFRleHR1cmVEaW1lbnNpb24y
RDsgfQogICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24zRCgpIGNvbnN0IHsgcmV0dXJu
IG1fbWF4VGV4dHVyZURpbWVuc2lvbjNEOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3Iu
aAppbmRleCBiY2IyZTRmNDIzMzlhM2Q3YmEzYWIwZGM0ZTg0OWMzNDIzMTA5MmQ1Li40NGUzZGQx
OTg4NDdmMWEwZGZhMTNhYTMxYzAxOGE5ZmE1YWUxZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
ICJXZWJHUFVFeHRlbnQzRERpY3QuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgogI2lu
Y2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVEaW1lbnNpb24uaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCmluZGV4IDNjNjdmZTRjYzU5OGViOTVhM2ZhNmNi
OGI5NjQ2OGJmZjRhYzdkYmQuLmU4MTMwZTU4MGJmYTAwNjQwMGJkYzg2NDJhMzAxMzJkMjc3MzU0
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtNjgsNyArNjgsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5hdmlnYXRvckJhc2U6Ok5hdmlnYXRvckJhc2UoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyKGNvbnRleHQpCi0gICAgLCBtX2dwdUZvcldlYkdQVShHUFU6OmNyZWF0ZSgpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oCmluZGV4IDIyOWQ0N2IyZDYzYjg3OTMw
ZjNhMTcwNWMzMDE1ZDRhNzljYzU3YjYuLmI1MTIyYTRiZGFlMzA2OWFlYjM3ZmRhYmMxYTZkNjY0
YTJjNDZjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oCkBAIC02Myw3ICs2Myw3
IEBAIHB1YmxpYzoKIAogICAgIFN0b3JhZ2VNYW5hZ2VyJiBzdG9yYWdlKCk7CiAgICAgV2ViTG9j
a01hbmFnZXImIGxvY2tzKCk7Ci0gICAgR1BVJiBncHUoKSB7IHJldHVybiBtX2dwdUZvcldlYkdQ
VTsgfTsKKyAgICBHUFUmIGdwdSgpIHsgcmV0dXJuICptX2dwdUZvcldlYkdQVTsgfTsKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IE5hdmlnYXRvckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwpAQCAtNzEsNyArNzEsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlZlB0cjxT
dG9yYWdlTWFuYWdlcj4gbV9zdG9yYWdlTWFuYWdlcjsKICAgICBSZWZQdHI8V2ViTG9ja01hbmFn
ZXI+IG1fd2ViTG9ja01hbmFnZXI7Ci0gICAgUmVmPEdQVT4gbV9ncHVGb3JXZWJHUFU7CisgICAg
UmVmUHRyPEdQVT4gbV9ncHVGb3JXZWJHUFU7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiBwdWJsaWM6Cg==
</data>
<flag name="commit-queue"
          id="468275"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443526</attachid>
            <date>2021-11-07 21:32:40 -0800</date>
            <delta_ts>2021-11-08 13:44:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232804-20211107213239.patch</filename>
            <type>text/plain</type>
            <size>360283</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE1ODkxNTQzNzQxZTIz
MWQzMGRhNTZiZjlhODIxZTliZDkxMzI0ZC4uODcxODIxZWRiZWMyMWM1NjIzYzQwMjZlMWQ5YzU0
YjA4ODM3OTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5NyBAQAorMjAyMS0xMS0wNyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVd
IENvbm5lY3QgSlMgYmluZGluZ3MgY29kZSB0byBpbnRlcm5hbCBXZWJHUFUgaW50ZXJmYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIHRo
ZSBKYXZhc2NyaXB0IGJpbmRpbmdzIGNvZGUgZm9yIFdlYkdQVSwgYW5kIHdlIGhhdmUgb3VyIGlu
dGVybmFsIGludGVyZmFjZQorICAgICAgICBmb3IgV2ViR1BVIHRvbyAoaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjc5MikuIFRoZSBpbnRlcm5hbCBpbnRlcmZhY2UK
KyAgICAgICAgaXMgYSBidW5jaCBvZiB2aXJ0dWFsIGNsYXNzZXMuIFRoaXMgY29kZSBob29rZXMg
dXAgdGhlIHR3byBvZiB0aGVtLCBzbyBjYWxsaW5nIGEKKyAgICAgICAgSmF2YXNjcmlwdCBiaW5k
aW5ncyBmdW5jdGlvbiB3aWxsIGVuZCB1cCBjYWxsaW5nIHRocm91Z2ggdG8gb3VyIGludGVybmFs
IGludGVyZmFjZS4KKworICAgICAgICBUaGUgc3RyYXRlZ3kgdG8gY29ubmVjdCB0aGVtIGlzIHRv
IGdpdmUgZWFjaCBvZiB0aGUgYmluZGluZ3Mgb2JqZWN0cyBhIFJlZiBvZiBpdHMgYmFja2luZwor
ICAgICAgICBpbnRlcmZhY2UsIHdoaWNoIGlzIHBhc3NlZCBpbiB0byBpdHMgY3JlYXRlKCkgZnVu
Y3Rpb24uIFdoZW4gSlMgY2FsbHMgYSBtZXRob2Qgb2Ygb25lIG9mCisgICAgICAgIHRoZXNlIG9i
amVjdHMsIHRoZSBiaW5kaW5ncyBvYmplY3Qgd2lsbCBqdXN0IGZvcndhcmQgdGhlIGNhbGwgb24g
dGhyb3VnaCBpdHMgYmFja2luZworICAgICAgICBSZWYuCisKKyAgICAgICAgSW4gb3JkZXIgZm9y
IHRoaXMgdG8gd29yaywgdGhlcmUgaGF2ZSB0byBiZSBhIGJ1bmNoIG9mIGNvbnZlcnRlciBmdW5j
dGlvbnMgZm9yIGFsbCB0aGUKKyAgICAgICAgZGVzY3JpcHRvciBkaWN0aW9uYXJpZXMgd2hpY2gg
YXJlIHVzZWQgYXMgYXJndW1lbnRzIHRvIG1ldGhvZHMuIFRoZSBjb252ZXJ0ZXIgZnVuY3Rpb25z
CisgICAgICAgIGNvbnZlcnQgdGhlIGJpbmRpbmdzIGRpY3Rpb25hcnkgdG8gdGhlIHJlbGV2YW50
IGludGVybmFsIHN0cnVjdC4gVGhlc2UgbWV0aG9kcyBhcmUgYWxsCisgICAgICAgIGNhbGxlZCBj
b252ZXJ0VG9CYWNraW5nKCksIGFuZCBmb3Igc3RydWN0IHR5cGVzLCB0aGV5J3JlIG1lbWJlciBm
dW5jdGlvbnMgb2YgdGhlIHN0cnVjdCwKKyAgICAgICAgYW5kIGZvciBlbnVtIHR5cGVzIGFuZCB0
eXBlZGVmIHR5cGVzLCB0aGV5IGFyZSBzdGFuZGFsb25lIGZ1bmN0aW9ucy4KKworICAgICAgICBT
bywgZm9yIGEgYmluZGluZ3MgbWV0aG9kIGZvbyhkZXNjcmlwdG9yRGljdGlvbmFyeSksIHRoaXMg
Z2V0cyB0dXJuZWQgaW50bzoKKyAgICAgICAgbV9iYWNraW5nLT5mb28oZGVzY3JpcHRvckRpY3Rp
b25hcnkuY29udmVydFRvQmFja2luZygpKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgeWV0LgorCisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFU6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVOjpiYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVTo6R1BVKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUFkYXB0ZXI6Om5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6ZmVhdHVyZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6bGltaXRzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUFkYXB0ZXI6OmlzRmFsbGJhY2tBZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6
cmVxdWVzdERldmljZSk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUFkYXB0ZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQWRhcHRlcjo6YmFj
a2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVBZGFwdGVyOjpHUFVBZGFwdGVyKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVBZGRyZXNzTW9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6bGFiZWwgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpzZXRMYWJlbCk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXA6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6OmJhY2tpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpiYWNraW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBFbnRyeS5oOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXBFbnRyeTo6
Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0OjpzZXRM
YWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQmluZEdyb3VwTGF5b3V0OjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwTGF5b3V0RW50cnk6OmNvbnZlcnRUb0JhY2tpbmcg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUJsZW5kQ29tcG9uZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCbGVuZENvbXBvbmVudDo6Y29udmVydFRvQmFja2luZyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQmxlbmRGYWN0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQ
VUJsZW5kT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCbGVuZFN0YXRlLmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCbGVuZFN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVy
OjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnNldExhYmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6bWFwQXN5bmMpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQnVmZmVyOjpnZXRNYXBwZWRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZm
ZXI6OnVubWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6ZGVzdHJveSk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVC
dWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OmJhY2tpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXJCaW5kaW5nOjpj
b252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVCdWZm
ZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXJCaW5kaW5nTGF5
b3V0Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVCdWZmZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2lu
Zyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyVXNhZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnRCdWZmZXJVc2FnZUZsYWdzVG9CYWNraW5nKToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
Q2FudmFzQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29uZmln
dXJhdGlvbjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJH
UFUvR1BVQ29sb3JEaWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb2xvckRpY3Q6OmNvbnZl
cnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JUYXJnZXRTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVQ29sb3JUYXJnZXRTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JXcml0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydENvbG9yV3JpdGVGbGFnc1RvQmFja2luZyk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21t
YW5kQnVmZmVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVm
ZmVyOjpzZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVDb21tYW5kQnVmZmVyOjpHUFVDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbW1hbmRFbmNvZGVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVDb21tYW5kRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEVuY29kZXI6OmJlZ2luUmVuZGVyUGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6YmVnaW5Db21wdXRlUGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1h
bmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VUNvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVD
b21tYW5kRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
bWFuZEVuY29kZXI6OnBvcERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1h
bmRFbmNvZGVyOjp3cml0ZVRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
RW5jb2Rlcjo6cmVzb2x2ZVF1ZXJ5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVuY29kZXI6OmZpbmlzaCk6Cisg
ICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEVuY29kZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUNvbW1hbmRFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tbWFuZEVuY29kZXI6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVu
Y29kZXI6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEVuY29k
ZXI6OkdQVUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVQ29tcGFyZUZ1bmN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcGlsYXRpb25JbmZvOjptZXNzYWdlcyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVDb21waWxhdGlvbkluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVDb21waWxhdGlvbkluZm86OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tcGlsYXRpb25JbmZvOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uSW5mbzo6R1BVQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cGlsYXRpb25NZXNzYWdlOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
aWxhdGlvbk1lc3NhZ2U6OmxpbmVOdW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cGlsYXRpb25NZXNzYWdlOjpsaW5lUG9zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6b2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXBpbGF0aW9uTWVzc2FnZTo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXBpbGF0
aW9uTWVzc2FnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXBpbGF0aW9uTWVz
c2FnZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21waWxhdGlvbk1lc3NhZ2U6
OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcGlsYXRpb25NZXNzYWdl
OjpHUFVDb21waWxhdGlvbk1lc3NhZ2UpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNv
bXBpbGF0aW9uTWVzc2FnZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOjpjb252ZXJ0VG9C
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc0Vu
Y29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpsYWJl
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0VuY29kZXI6OnNldExh
YmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpkaXNwYXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3BhdGNoSW5kaXJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpiZWdpblBpcGVs
aW5lU3RhdGlzdGljc1F1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5j
b2Rlcjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
Q29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1
dGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1
dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIpOgorICAgICAgICAqIE1vZHVsZXMv
V2ViR1BVL0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
cHV0ZVBhc3NFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBh
c3NFbmNvZGVyOjpiYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5j
b2Rlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0Vu
Y29kZXI6OkdQVUNvbXB1dGVQYXNzRW5jb2Rlcik6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxp
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpsYWJlbCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmU6OnNldExhYmVsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbXB1dGVQaXBlbGluZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
dXRlUGlwZWxpbmU6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0
ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVUN1bGxNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVEZXB0aFN0ZW5jaWxT
dGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGVwdGhTdGVuY2lsU3RhdGU6OmNvbnZlcnRU
b0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVURldmljZTo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNl
OjpmZWF0dXJlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmxpbWl0cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BV
RGV2aWNlOjpjcmVhdGVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVURldmljZTo6aW1wb3J0RXh0ZXJuYWxUZXh0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2
aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpj
cmVhdGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVh
dGVSZW5kZXJQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRl
UmVuZGVyUGlwZWxpbmVBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0
ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlUmVu
ZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZVF1
ZXJ5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6cHVzaEVycm9yU2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpwb3BFcnJvclNjb3BlKToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6YmFja2luZyk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVEZXZpY2U6OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpHUFVEZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjptX2Jh
Y2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZUxvc3RJbmZvOjpyZWFzb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86Om1lc3NhZ2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86OkdQVURldmljZUxvc3RJbmZvKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5oOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2VMb3N0SW5mbzo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZp
Y2VMb3N0SW5mbzo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2VM
b3N0SW5mbzo6R1BVRGV2aWNlTG9zdEluZm8pOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQ
VURldmljZUxvc3RSZWFzb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcp
OgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVF
eHRlbnQzRERpY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVudDNERGljdDo6Y29udmVy
dFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRXh0ZXJuYWxUZXh0dXJlOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVFeHRlcm5hbFRleHR1cmU6OnNldExhYmVsKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVy
bmFsVGV4dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVybmFsVGV4dHVy
ZTo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVFeHRlcm5hbFRleHR1cmU6OmJhY2tp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRXh0ZXJuYWxUZXh0dXJlOjpHUFVFeHRl
cm5hbFRleHR1cmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQ6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
V2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUZlYXR1cmVOYW1lLmg6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVGaWx0
ZXJNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAg
KiBNb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVGcmFnbWVudFN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weUJ1ZmZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVSW1hZ2VDb3B5QnVmZmVyOjpjb252ZXJ0VG9CYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlOjpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlU
ZXh0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlUZXh0dXJlOjpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUltYWdlRGF0YUxheW91
dDo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
SW5kZXhGb3JtYXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVUxvYWRPcC5oOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVTWFwTW9kZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydE1hcE1vZGVGbGFnc1RvQmFja2luZyk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVTXVsdGlzYW1wbGVTdGF0ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVTXVsdGlzYW1wbGVTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVU9iamVjdERlc2NyaXB0b3JCYXNlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVPcmlnaW4yRERpY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVU9yaWdpbjJERGljdDo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVPcmlnaW4zRERpY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVU9yaWdpbjNERGljdDo6Y29u
dmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5n
KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVPdXRPZk1lbW9yeUVycm9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVPdXRPZk1lbW9yeUVycm9yOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVT3V0T2ZNZW1vcnlFcnJvcjo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVPdXRPZk1lbW9yeUVycm9yOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VU91dE9mTWVtb3J5RXJyb3I6OkdQVU91dE9mTWVtb3J5RXJyb3IpOgorICAgICAgICAqIE1vZHVs
ZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2U6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVQaXBlbGluZUxheW91dDo6c2V0TGFiZWwpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVVBpcGVsaW5lTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpiYWNraW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpiYWNraW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lTGF5b3V0OjpHUFVQaXBlbGluZUxheW91dCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I6OmNvbnZlcnRU
b0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lU3Rh
dGlzdGljTmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVQcmVk
ZWZpbmVkQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVByaW1pdGl2ZVN0YXRlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVQcmltaXRpdmVUb3BvbG9neS5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVN0
YWdlOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVRdWVyeVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWVyeVNldDo6bGFiZWwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXQ6OnNldExhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVF1ZXJ5U2V0OjpkZXN0cm95KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVRdWVyeVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWVyeVNldDo6YmFja2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVRdWVyeVNldDo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVR
dWVyeVNldDo6R1BVUXVlcnlTZXQpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVlcnlTZXREZXNjcmlwdG9y
Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVR
dWVyeVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1
ZXVlOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6c2V0TGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OnN1Ym1pdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVRdWV1ZTo6b25TdWJtaXR0ZWRXb3JrRG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVR
dWV1ZTo6d3JpdGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OndyaXRlVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6Y29weUV4dGVybmFsSW1hZ2VUb1Rl
eHR1cmUpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpi
YWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpiYWNraW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpHUFVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1
bmRsZTo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQnVuZGxlOjpz
ZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJCdW5kbGU6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyQnVuZGxlOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1
bmRsZTo6R1BVUmVuZGVyQnVuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OnNldEluZGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlckJ1bmRsZUVuY29kZXI6OnNldFZlcnRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpH
UFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRleGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
ckJ1bmRsZUVuY29kZXI6OmRyYXdJbmRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cCk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVF
bmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpi
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlckJ1bmRsZUVuY29kZXI6
OkdQVVJlbmRlckJ1bmRsZUVuY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudDo6Y29udmVydFRvQmFj
a2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRo
U3RlbmNpbEF0dGFjaG1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpsYWJlbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6R1BV
UmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFNjaXNzb3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTdGVuY2lsUmVmZXJlbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjplbmRPY2NsdXNpb25RdWVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0
YXRpc3RpY3NRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVy
UGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjplbmRQYXNzKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmFja2lu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6YmFja2luZyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6R1BVUmVuZGVyUGFz
c0VuY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NMYXlvdXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NMYXlvdXQ6OmNvbnZlcnRUb0JhY2tp
bmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NUaW1lc3Rh
bXBMb2NhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU6OmNvbnZlcnRUb0JhY2tp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVJlbmRlclBpcGVsaW5lOjpzZXRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
aXBlbGluZTo6Z2V0QmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6YmFja2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6YmFja2luZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUpOgor
ICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpjb252ZXJ0VG9C
YWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZXF1ZXN0QWRhcHRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9uczo6
Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU2Ft
cGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjpsYWJlbCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjpzZXRMYWJlbCk6CisgICAgICAgICogTW9kdWxl
cy9XZWJHUFUvR1BVU2FtcGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXI6OmJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVU2FtcGxlcjo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVTYW1wbGVyOjpHUFVTYW1wbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTYW1w
bGVyQmluZGluZ0xheW91dC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlckJpbmRpbmdM
YXlvdXQ6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BV
L0dQVVNhbXBsZXJCaW5kaW5nVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFj
a2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXJEZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5n
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjpsYWJlbCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVTaGFkZXJNb2R1bGU6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVTaGFkZXJNb2R1bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZTo6YmFja2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVTaGFkZXJNb2R1bGU6OmJhY2tpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjpHUFVTaGFkZXJNb2R1bGUpOgorICAgICAg
ICAqIE1vZHVsZXMvV2ViR1BVL0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVNoYWRlclN0YWdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0U2hhZGVyU3RhZ2VGbGFnc1RvQmFja2luZyk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbEZhY2VTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
R1BVU3RlbmNpbEZhY2VTdGF0ZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRl
eHR1cmVBY2Nlc3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Ojpjb252ZXJ0
VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmg6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVT
dXBwb3J0ZWRGZWF0dXJlczo6aW5pdGlhbGl6ZVNldExpa2UgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVTdXBwb3J0ZWRGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBv
cnRlZEZlYXR1cmVzOjpiYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZEZl
YXR1cmVzOjpiYWNraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZEZl
YXR1cmVzOjpHUFVTdXBwb3J0ZWRGZWF0dXJlcyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVU3VwcG9ydGVkTGltaXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExp
bWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjFEIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjJEIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZURpbWVuc2lvbjNEIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VGV4dHVyZUFycmF5
TGF5ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4
QmluZEdyb3VwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
Om1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJz
UGVyUGlwZWxpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVk
TGltaXRzOjptYXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2Ug
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhTdG9yYWdl
QnVmZmVyc1BlclNoYWRlclN0YWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBv
cnRlZExpbWl0czo6bWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhVbmlmb3JtQnVmZmVyc1BlclNo
YWRlclN0YWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6
bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVN1cHBvcnRlZExpbWl0czo6bWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWluVW5pZm9ybUJ1ZmZlck9mZnNl
dEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
Om1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhWZXJ0ZXhCdWZmZXJzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6bWF4VmVydGV4QXR0cmlidXRlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFZlcnRleEJ1ZmZlckFy
cmF5U3RyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6
bWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlSW52b2Nh
dGlvbnNQZXJXb3JrZ3JvdXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVk
TGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRlV29ya2dyb3Vw
U2l6ZVogY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjptYXhD
b21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9X
ZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0
ZWRMaW1pdHM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTdXBwb3J0ZWRMaW1pdHM6
OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU3VwcG9ydGVkTGltaXRzOjpiYWNraW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN1cHBvcnRlZExpbWl0czo6R1BVU3VwcG9y
dGVkTGltaXRzKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVRleHR1cmU6OnNldExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6Y3JlYXRlVmlldyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVVGV4dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OmJh
Y2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6YmFja2luZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVUZXh0dXJlQXNwZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQ6OmNvbnZl
cnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVE
ZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6Y29u
dmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVy
ZURpbWVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUZvcm1hdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVy
ZVNhbXBsZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcpOgorICAg
ICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVVc2FnZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFRleHR1cmVVc2FnZUZsYWdzVG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVz
L1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJl
Vmlldzo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXc6OnNl
dExhYmVsKToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVUZXh0dXJlVmlldzo6YmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJl
Vmlldzo6YmFja2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlVmlldzo6
R1BVVGV4dHVyZVZpZXcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3
RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9y
Ojpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVU
ZXh0dXJlVmlld0RpbWVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2lu
Zyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6OmVycm9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50OjpHUFVVbmNhcHR1
cmVkRXJyb3JFdmVudCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVW5j
YXB0dXJlZEVycm9yRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVVuY2FwdHVyZWRFcnJv
ckV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQ6OmJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6
OmJhY2tpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQ6OkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9H
UFVWYWxpZGF0aW9uRXJyb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVy
cm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJv
cjo6R1BVVmFsaWRhdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQ
VS9HUFVWYWxpZGF0aW9uRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25F
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVZhbGlkYXRpb25FcnJvcjo6YmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVWYWxpZGF0aW9uRXJyb3I6OmJhY2tpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmFsaWRhdGlvbkVycm9yOjpHUFVWYWxpZGF0aW9u
RXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVVmVydGV4QXR0cmlidXRlOjpjb252ZXJ0VG9CYWNraW5nIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVZlcnRleEJ1ZmZlckxheW91dDo6Y29udmVydFRvQmFja2lu
ZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4Rm9ybWF0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVVmVydGV4U3RhdGU6
OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVZl
cnRleFN0ZXBNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKToKKyAg
ICAgICAgKiBwYWdlL05hdmlnYXRvckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yQmFzZTo6TmF2aWdhdG9yQmFzZSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JCYXNlOjpncHUpOgorCiAyMDIxLTExLTA3ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMsIGVhcmx5IE5vdmVtYmVyIDIwMjEgZWRpdGlvbiB0YWtlIHR3bwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggMTYwYzg1ZTZhZDUwZTVkZmYxZjkwMTgzNmU1YWY3ZmEwNzU1ZTlj
Zi4uYTMwOGVhNDNmNTk4ZTRjMDAxYWE3YzBmZGQ0YjdmMGRlZjQ5OTdjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTEtMDcgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBDb25uZWN0IEpTIGJpbmRp
bmdzIGNvZGUgdG8gaW50ZXJuYWwgV2ViR1BVIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmFyaW91cyBhc3NvcnRlZCBjbGVhbnVwcy4K
KworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVBZGFwdGVyLmg6CisgICAgICAgIChQQUw6OldlYkdQVTo6QWRhcHRlcjo6QWRhcHRl
cik6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlw
dG9yLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRy
eS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg6CisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAg
ICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JEaWN0LmguCisg
ICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIu
aDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmguCisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpE
ZXZpY2U6OmZlYXR1cmVzKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2U6OmxpbWl0cyk6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oOgorICAgICAgICAq
IHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVudDNERGljdC5oLgor
ICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaDoK
KyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1h
Z2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1
cmUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
cmlnaW4yRERpY3QuaC4KKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdp
bjNELmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVPcmlnaW4zRERpY3QuaC4KKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmg6
CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRv
ci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oLgorICAgICAgICAqIHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgICogcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oOgorCiAyMDIxLTExLTA3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQ
VV0gQWRkIGludGVybmFsIFdlYkdQVSBBUEkgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVLmNwcAppbmRleCBlNWQwZjIzZjFhYmU3OThhNTM2NzE4MWQ4NmNkNjQ3ZjljNDNm
Mjc2Li4yNjEzZjJmNzg5NGZlMGIzYTFkZDNkZjM4MGZlM2RiYTI0YjcwZmFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVS5jcHAKQEAgLTI2LDExICsyNiwyNSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkdQVS5oIgogCisjaW5jbHVkZSAiSlNHUFVBZGFwdGVyLmgi
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBHUFU6OnJlcXVlc3RBZGFwdGVyKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYsIFJlcXVlc3RBZGFwdGVy
UHJvbWlzZSYmKQorc3RhdGljIFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMgY29u
dmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cz4mIG9wdGlvbnMpCiB7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4geyBzdGQ6
Om51bGxvcHQsIGZhbHNlIH07CisKKyAgICByZXR1cm4gb3B0aW9ucy0+Y29udmVydFRvQmFja2lu
ZygpOworfQogCit2b2lkIEdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxH
UFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+JiBvcHRpb25zLCBSZXF1ZXN0QWRhcHRlclByb21pc2Um
JiBwcm9taXNlKQoreworICAgIG1fYmFja2luZy0+cmVxdWVzdEFkYXB0ZXIoY29udmVydFRvQmFj
a2luZyhvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVmUHRyPFBBTDo6
V2ViR1BVOjpBZGFwdGVyPiYmIGFkYXB0ZXIpIG11dGFibGUgeworICAgICAgICBpZiAoIWFkYXB0
ZXIpCisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHByb21p
c2UucmVzb2x2ZShHUFVBZGFwdGVyOjpjcmVhdGUoYWRhcHRlci5yZWxlYXNlTm9uTnVsbCgpKS5w
dHIoKSk7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVLmgKaW5k
ZXggNmM5MzhkNThiYjM2ODIyYzRiYzEyZTkxOThjYzYzYjIxMmE5NzBhMi4uMTZlNDc3NGIzMWM4
ZDZlMmFlYzg3MTg2NzkwMTU3YTdlZmVmZTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPG9wdGlv
bmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM2LDE2ICszNywy
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVSA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVPiBjcmVhdGUoKQorICAgIHN0YXRp
YyBSZWY8R1BVPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpHUFU+JiYgYmFja2luZykKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICB1c2luZyBS
ZXF1ZXN0QWRhcHRlclByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURM
SW50ZXJmYWNlPEdQVUFkYXB0ZXI+Pj47CiAgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBz
dGQ6Om9wdGlvbmFsPEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucz4mLCBSZXF1ZXN0QWRhcHRlclBy
b21pc2UmJik7CiAKKyAgICBQQUw6OldlYkdQVTo6R1BVJiBiYWNraW5nKCkgeyByZXR1cm4gbV9i
YWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSYgYmFja2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVSgpID0gZGVmYXVsdDsKKyAg
ICBHUFUoUmVmPFBBTDo6V2ViR1BVOjpHUFU+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tp
bmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BV
OjpHUFU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQWRhcHRlci5jcHAKaW5kZXggMTIzYTA3NGMwODQxZDZkODFjODE5MjQ4MjNiMzIzMTgz
MzJiMzQ5Zi4uZGI4MDgzN2RiY2E2M2ZiMjI5Zjc0Y2YxNTRhZDgzYzBhZTY4YjhlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5jcHAKQEAgLTI2LDMwICsy
Niw0MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdQVUFkYXB0ZXIuaCIKIAor
I2luY2x1ZGUgIkpTR1BVRGV2aWNlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5n
IEdQVUFkYXB0ZXI6Om5hbWUoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0
eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPm5hbWUoKTsKIH0KIAogUmVmPEdQVVN1cHBvcnRl
ZEZlYXR1cmVzPiBHUFVBZGFwdGVyOjpmZWF0dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQ
VVN1cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVU3VwcG9ydGVkRmVh
dHVyZXM6OmNyZWF0ZShQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM6OmNsb25lKG1fYmFj
a2luZy0+ZmVhdHVyZXMoKSkpOwogfQogCiBSZWY8R1BVU3VwcG9ydGVkTGltaXRzPiBHUFVBZGFw
dGVyOjpsaW1pdHMoKSBjb25zdAogewotICAgIHJldHVybiBHUFVTdXBwb3J0ZWRMaW1pdHM6OmNy
ZWF0ZSgpOworICAgIHJldHVybiBHUFVTdXBwb3J0ZWRMaW1pdHM6OmNyZWF0ZShQQUw6OldlYkdQ
VTo6U3VwcG9ydGVkTGltaXRzOjpjbG9uZShtX2JhY2tpbmctPmxpbWl0cygpKSk7CiB9CiAKIGJv
b2wgR1BVQWRhcHRlcjo6aXNGYWxsYmFja0FkYXB0ZXIoKSBjb25zdAogewotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5pc0ZhbGxiYWNrQWRhcHRlcigpOworfQorCitz
dGF0aWMgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZyhjb25z
dCBzdGQ6Om9wdGlvbmFsPEdQVURldmljZURlc2NyaXB0b3I+JiBvcHRpb25zKQoreworICAgIGlm
ICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBvcHRpb25zLT5j
b252ZXJ0VG9CYWNraW5nKCk7CiB9CiAKLXZvaWQgR1BVQWRhcHRlcjo6cmVxdWVzdERldmljZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVEZXZpY2VEZXNj
cmlwdG9yPiYsIFJlcXVlc3REZXZpY2VQcm9taXNlJiYpCit2b2lkIEdQVUFkYXB0ZXI6OnJlcXVl
c3REZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BV
RGV2aWNlRGVzY3JpcHRvcj4mIGRldmljZURlc2NyaXB0b3IsIFJlcXVlc3REZXZpY2VQcm9taXNl
JiYgcHJvbWlzZSkKIHsKKyAgICBtX2JhY2tpbmctPnJlcXVlc3REZXZpY2UoY29udmVydFRvQmFj
a2luZyhkZXZpY2VEZXNjcmlwdG9yKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVm
PFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYgZGV2aWNlKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKEdQVURldmljZTo6Y3JlYXRlKG51bGxwdHIsIFdURk1vdmUoZGV2aWNlKSkpOwor
ICAgIH0pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVBZGFwdGVy
LmgKaW5kZXggOTYxMjQxZGZlMWE5ZWExNjRhNmVmMzUzYjRkNzdhZDEyMjhmZDdlMi4uMGEyMzFj
ODMwYTBlZWUxOTY0NTI2YzQyNGI4OTdkNGRmNTk2NTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUFkYXB0ZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDAsOSArNDEsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUFkYXB0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVBZGFwdGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVBZGFwdGVyPiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVQWRhcHRlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQ
VTo6QWRhcHRlcj4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR1BVQWRhcHRlcigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQWRhcHRl
cihXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsK
QEAgLTUzLDggKzU0LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZXF1ZXN0RGV2aWNlUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8R1BVRGV2aWNlPj47CiAgICAgdm9p
ZCByZXF1ZXN0RGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPEdQVURldmljZURlc2NyaXB0b3I+JiwgUmVxdWVzdERldmljZVByb21pc2UmJik7CiAKKyAg
ICBQQUw6OldlYkdQVTo6QWRhcHRlciYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQor
ICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVQWRhcHRlcigpID0gZGVmYXVsdDsKKyAg
ICBHUFVBZGFwdGVyKFJlZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkFkYXB0ZXI+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUFkZHJlc3NNb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVBZGRyZXNzTW9kZS5oCmluZGV4IDgxNWEzZDFjMGYxYmUz
MjZkYWY3ZTRjNTczMWMxZDAxM2I2NjIyOTAuLmEwZTNmODgxNDU2YzExMDU2MTIzMDdkMTY4MmZl
MGU4NmUwM2VhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUFkZHJlc3NNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQWRk
cmVzc01vZGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRkcmVzc01vZGUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBlbnVtIGNsYXNz
IEdQVUFkZHJlc3NNb2RlIDogdWludDhfdCB7CiAgICAgTWlycm9yUmVwZWF0CiB9OwogCitpbmxp
bmUgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlIGNvbnZlcnRUb0JhY2tpbmcoR1BVQWRkcmVzc01v
ZGUgYWRkcmVzc01vZGUpCit7CisgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgIGNhc2Ug
R1BVQWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OkFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZTsKKyAgICBjYXNlIEdQVUFkZHJlc3NNb2RlOjpSZXBl
YXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6QWRkcmVzc01vZGU6OlJlcGVhdDsKKyAg
ICBjYXNlIEdQVUFkZHJlc3NNb2RlOjpNaXJyb3JSZXBlYXQ6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6QWRkcmVzc01vZGU6Ok1pcnJvclJlcGVhdDsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUJpbmRHcm91cC5jcHAKaW5kZXggMTNhZjk4MTVjMDY4NmIyNjY0NTYyZTAyMmM2
MjVmNWJmYWJkYTEyMS4uYTJlN2Q0MGFmNmIxNzkwNWM0ZjJmY2QyY2ExNzNhMTNmOTNmOTRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXAuY3BwCkBA
IC0zMCwxMSArMzAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgR1BVQmluZEdy
b3VwOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVCaW5kR3JvdXA6OnNl
dExhYmVsKFN0cmluZyYmKQordm9pZCBHUFVCaW5kR3JvdXA6OnNldExhYmVsKFN0cmluZyYmIGxh
YmVsKQogeworICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXAu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cC5oCmluZGV4IDY0
YmRhZDVmNGVlNDAxMjRhOTJhZjlhMTIyZDA2MGMyY2YxMTJlMmEuLjRjMWQ4NTg0OWI4ODE5YzRj
MDg3MGMwYTI3ZjFhYmM2NzljMDA2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXAuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDE2ICszNCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdQVUJpbmRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJpbmRHcm91cD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+
JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJpbmRH
cm91cCgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3VwKFdURk1v
dmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2
b2lkIHNldExhYmVsKFN0cmluZyYmKTsKIAorICAgIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAmIGJh
Y2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6
Ci0gICAgR1BVQmluZEdyb3VwKCkgPSBkZWZhdWx0OworICAgIEdQVUJpbmRHcm91cChSZWY8UEFM
OjpXZWJHUFU6OkJpbmRHcm91cD4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZN
b3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OkJpbmRH
cm91cD4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCmluZGV4IDI0OTYxMjQwYTNjZTZh
MmI5ZjljMWQ5Mjg1Y2EwNzdhNjk1YzVmNjEuLjUzNWUzNTc0NjE5MWZkZjIxNTdiNzlhNTNjYzI2
NmZhYjIyN2M0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUJpbmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAgLTI4LDEyICsyOCwyOSBAQAogI2luY2x1ZGUg
IkdQVUJpbmRHcm91cEVudHJ5LmgiCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0LmgiCiAj
aW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJpbmRHcm91cERlc2Ny
aXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewotICAgIFJlZlB0cjxHUFVC
aW5kR3JvdXBMYXlvdXQ+IGxheW91dDsKKyAgICBQQUw6OldlYkdQVTo6QmluZEdyb3VwRGVzY3Jp
cHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChsYXlv
dXQpOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAg
ICAgbGF5b3V0LT5iYWNraW5nKCksCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAg
ICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5PiBlbnRyaWVzOworICAg
ICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVz
LnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBiaW5kR3JvdXBFbnRyeSA6IHRo
aXMtPmVudHJpZXMpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMudW5jaGVja2VkQXBwZW5k
KGJpbmRHcm91cEVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGVudHJpZXM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0KKworICAg
IEdQVUJpbmRHcm91cExheW91dCogbGF5b3V0OwogICAgIFZlY3RvcjxHUFVCaW5kR3JvdXBFbnRy
eT4gZW50cmllczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cEVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVCaW5kR3JvdXBFbnRyeS5oCmluZGV4IDM2NjMyNTRiMWIyNDk5MmI1NWJjODY3Yjg1YzhhY2Uy
MjAxNGY2NmUuLjNkZDY0Njk0MDRkMTA4NDFlMDY3OGQ0MmI1ZDFhMjAxMGFjNTg1ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cEVudHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRW50cnkuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRl
ICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5Lmg+CiAjaW5jbHVkZSA8dXRp
bGl0eT4KICNpbmNsdWRlIDx2YXJpYW50PgogCkBAIC0zNyw3ICszOCwzMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIEdQVUJpbmRpbmdSZXNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQ
dHI8R1BVU2FtcGxlcj4sIFJlZlB0cjxHUFVUZXh0dXJlVmlldz4sIEdQVUJ1ZmZlckJpbmRpbmcs
IFJlZlB0cjxHUFVFeHRlcm5hbFRleHR1cmU+PjsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCaW5k
aW5nUmVzb3VyY2UgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIGJp
bmRpbmdSZXNvdXJjZSkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihiaW5kaW5nUmVzb3Vy
Y2UsIFtdIChjb25zdCBSZWZQdHI8R1BVU2FtcGxlcj4mIHNhbXBsZXIpIC0+IFBBTDo6V2ViR1BV
OjpCaW5kaW5nUmVzb3VyY2UgeworICAgICAgICBBU1NFUlQoc2FtcGxlcik7CisgICAgICAgIHJl
dHVybiBzYW1wbGVyLT5iYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IFJlZlB0cjxHUFVUZXh0
dXJlVmlldz4mIHRleHR1cmVWaWV3KSAtPiBQQUw6OldlYkdQVTo6QmluZGluZ1Jlc291cmNlIHsK
KyAgICAgICAgQVNTRVJUKHRleHR1cmVWaWV3KTsKKyAgICAgICAgcmV0dXJuIHRleHR1cmVWaWV3
LT5iYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IEdQVUJ1ZmZlckJpbmRpbmcmIGJ1ZmZlckJp
bmRpbmcpIC0+IFBBTDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2UgeworICAgICAgICByZXR1cm4g
YnVmZmVyQmluZGluZy5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSwgW10gKGNvbnN0IFJlZlB0
cjxHUFVFeHRlcm5hbFRleHR1cmU+JiBleHRlcm5hbFRleHR1cmUpIC0+IFBBTDo6V2ViR1BVOjpC
aW5kaW5nUmVzb3VyY2UgeworICAgICAgICBBU1NFUlQoZXh0ZXJuYWxUZXh0dXJlKTsKKyAgICAg
ICAgcmV0dXJuIGV4dGVybmFsVGV4dHVyZS0+YmFja2luZygpOworICAgIH0pOworfQorCiBzdHJ1
Y3QgR1BVQmluZEdyb3VwRW50cnkgeworICAgIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBFbnRyeSBj
b252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAg
ICAgICBiaW5kaW5nLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhyZXNv
dXJjZSksCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVSW5kZXgzMiBiaW5kaW5nOwogICAg
IEdQVUJpbmRpbmdSZXNvdXJjZSByZXNvdXJjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmNwcAppbmRleCA0OGQ3YTAxZTY4
MzcwMjE3MzEyZThkOTIzOTJiYzFhZGMwNzI1ZDMwLi40Nzc5ZTUyZTU4NWNlMjdhMDVhY2QwNDE5
ZThiNDE0NTMyN2FlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cExheW91dC5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFN0cmluZyBHUFVCaW5kR3JvdXBMYXlvdXQ6OmxhYmVsKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5s
YWJlbCgpOwogfQogCi12b2lkIEdQVUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYp
Cit2b2lkIEdQVUJpbmRHcm91cExheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7Cisg
ICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXgg
ZDVlNmM3MmEyZWIxOGUwYzdiNmI2ODkxNjM5ZDQ3MjU0NzIzMTNhOS4uMDEyY2I0NTFlMzc2Nzkw
ZDVhYTJjNTFiMWEzYmE5MzRlMzhlN2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0IDogcHVibGlj
IFJlZkNvdW50ZWQ8R1BVQmluZEdyb3VwTGF5b3V0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVCaW5kR3Jv
dXBMYXlvdXQ+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4mJiBiYWNr
aW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3VwTGF5
b3V0KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCaW5kR3JvdXBMYXlvdXQo
V1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OkJpbmRHcm91
cExheW91dCYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVCaW5kR3JvdXBMYXlvdXQoKSA9IGRlZmF1bHQ7Cisg
ICAgR1BVQmluZEdyb3VwTGF5b3V0KFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0PiYm
IGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgewor
ICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0PiBtX2JhY2tpbmc7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggZWJhNDBiNDlhMDAzZThmNWUy
OGMwYzgxZDc2MmYwNzEzMDA1MjEwMi4uM2RjYjU0MDcwMTRiYjliMjMyYTg3NDk1YjZlZWQ5MWY3
MjVmYTU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaApAQCAtMjcsMTEgKzI3LDI2IEBACiAK
ICNpbmNsdWRlICJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIgogI2luY2x1ZGUgIkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
IDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxhYmVsIH0sCisgICAgICAgICAgICAoW3Ro
aXNdICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExh
eW91dEVudHJ5PiBlbnRyaWVzOworICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChh
dXRvJiBlbnRyeSA6IHRoaXMtPmVudHJpZXMpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMu
dW5jaGVja2VkQXBwZW5kKGVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGVudHJpZXM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0K
KwogICAgIFZlY3RvcjxHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeT4gZW50cmllczsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91
dEVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5oCmluZGV4IGJiYjE2NzUyYThiNDVmNGFkZDZkNzBlNzRiODQwNWNmM2Q0NzhhMjUu
LmQ5ODViNWYzYzA0ZDBjZTkwNTA1YWQ4MTJjNzUyYjMxNjY3YTNhMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dEVudHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aApAQCAtMzMsMTAgKzMzLDI0IEBACiAjaW5jbHVkZSAiR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKICNpbmNsdWRl
IDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJpbmRH
cm91cExheW91dEVudHJ5IHsKKyAgICBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnkg
Y29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgYmluZGluZywKKyAgICAgICAgICAgIGNvbnZlcnRTaGFkZXJTdGFnZUZsYWdzVG9CYWNr
aW5nKHZpc2liaWxpdHkpLAorICAgICAgICAgICAgYnVmZmVyID8gc3RkOjpvcHRpb25hbCB7IGJ1
ZmZlci0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBz
YW1wbGVyID8gc3RkOjpvcHRpb25hbCB7IHNhbXBsZXItPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDog
c3RkOjpudWxsb3B0LAorICAgICAgICAgICAgdGV4dHVyZSA/IHN0ZDo6b3B0aW9uYWwgeyB0ZXh0
dXJlLT5jb252ZXJ0VG9CYWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIHN0
b3JhZ2VUZXh0dXJlID8gc3RkOjpvcHRpb25hbCB7IHN0b3JhZ2VUZXh0dXJlLT5jb252ZXJ0VG9C
YWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIGV4dGVybmFsVGV4dHVyZSA/
IHN0ZDo6b3B0aW9uYWwgeyBleHRlcm5hbFRleHR1cmUtPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDog
c3RkOjpudWxsb3B0LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUluZGV4MzIgYmluZGlu
ZzsKICAgICBHUFVTaGFkZXJTdGFnZUZsYWdzIHZpc2liaWxpdHk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kQ29tcG9uZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZENvbXBvbmVudC5oCmluZGV4IDc1NjdmMTQx
MTFlMjUyMTgxMDQyMGRlZDdkODYwYTJjMmMzY2MzNTQuLjZiMmNmN2M5ODI0MTljOTU4YjgxNjAz
NjE0ZmY1MTA3MDMxYjZjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJsZW5kQ29tcG9uZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQmxlbmRDb21wb25lbnQuaApAQCAtMjcsMTAgKzI3LDIwIEBACiAKICNpbmNsdWRlICJH
UFVCbGVuZEZhY3Rvci5oIgogI2luY2x1ZGUgIkdQVUJsZW5kT3BlcmF0aW9uLmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCbGVuZENvbXBvbmVudCB7CisgICAgUEFMOjpXZWJH
UFU6OkJsZW5kQ29tcG9uZW50IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcob3BlcmF0
aW9uKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoc3JjRmFjdG9yKSwK
KyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoZHN0RmFjdG9yKSwKKyAgICAg
ICAgfTsKKyAgICB9CisKICAgICBHUFVCbGVuZE9wZXJhdGlvbiBvcGVyYXRpb247CiAgICAgR1BV
QmxlbmRGYWN0b3Igc3JjRmFjdG9yOwogICAgIEdQVUJsZW5kRmFjdG9yIGRzdEZhY3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kRmFjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZEZhY3Rvci5oCmluZGV4IGQ5
NWE1MDgzOWZiYTZlNDdhZWI1ZmE2MTBhMGJjZTBhMmJiNTc0NTYuLmQ5ZDRhYWUyNWM4NjVlMzY4
MTAxMmRjOGJjY2U1M2JhMjU3OTc2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUJsZW5kRmFjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQmxlbmRGYWN0b3IuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
QmxlbmRGYWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSw0ICs0NiwzNyBA
QCBlbnVtIGNsYXNzIEdQVUJsZW5kRmFjdG9yIDogdWludDhfdCB7CiAgICAgT25lTWludXNDb25z
dGFudAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3RvciBjb252ZXJ0VG9CYWNr
aW5nKEdQVUJsZW5kRmFjdG9yIGJsZW5kRmFjdG9yKQoreworICAgIHN3aXRjaCAoYmxlbmRGYWN0
b3IpIHsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpaZXJvOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpaZXJvOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9u
ZToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25lOworICAgIGNh
c2UgR1BVQmxlbmRGYWN0b3I6OlNyYzoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVu
ZEZhY3Rvcjo6U3JjOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzU3JjOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c1NyYzsKKyAgICBj
YXNlIEdQVUJsZW5kRmFjdG9yOjpTcmNBbHBoYToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpCbGVuZEZhY3Rvcjo6U3JjQWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6T25lTWlu
dXNTcmNBbHBoYToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rvcjo6T25l
TWludXNTcmNBbHBoYTsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpEc3Q6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OkRzdDsKKyAgICBjYXNlIEdQVUJsZW5kRmFj
dG9yOjpPbmVNaW51c0RzdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZEZhY3Rv
cjo6T25lTWludXNEc3Q7CisgICAgY2FzZSBHUFVCbGVuZEZhY3Rvcjo6RHN0QWxwaGE6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6QmxlbmRGYWN0b3I6OkRzdEFscGhhOworICAgIGNhc2Ug
R1BVQmxlbmRGYWN0b3I6Ok9uZU1pbnVzRHN0QWxwaGE6CisgICAgICAgIHJldHVybiBQQUw6Oldl
YkdQVTo6QmxlbmRGYWN0b3I6Ok9uZU1pbnVzRHN0QWxwaGE7CisgICAgY2FzZSBHUFVCbGVuZEZh
Y3Rvcjo6U3JjQWxwaGFTYXR1cmF0ZWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Qmxl
bmRGYWN0b3I6OlNyY0FscGhhU2F0dXJhdGVkOworICAgIGNhc2UgR1BVQmxlbmRGYWN0b3I6OkNv
bnN0YW50OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpDb25zdGFu
dDsKKyAgICBjYXNlIEdQVUJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50OgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kRmFjdG9yOjpPbmVNaW51c0NvbnN0YW50OworICAgIH0K
KyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCbGVuZE9wZXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmxlbmRPcGVyYXRpb24uaAppbmRleCA1ZGNkYzIz
YTE2MTkwZDg0ZTQ0ZmU1ZTA4MjhiMDkxOTU2ODBjMjYyLi45N2UzOTI2ZWFlZWMwY2JhMWQ3YTk2
ODZmZDg1ZTQxYTQyZTBlMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCbGVuZE9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJsZW5kT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJsZW5kT3BlcmF0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNCArMzgs
MjEgQEAgZW51bSBjbGFzcyBHUFVCbGVuZE9wZXJhdGlvbiA6IHVpbnQ4X3QgewogICAgIE1heAog
fTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpCbGVuZE9wZXJhdGlvbiBjb252ZXJ0VG9CYWNraW5n
KEdQVUJsZW5kT3BlcmF0aW9uIGJsZW5kT3BlcmF0aW9uKQoreworICAgIHN3aXRjaCAoYmxlbmRP
cGVyYXRpb24pIHsKKyAgICBjYXNlIEdQVUJsZW5kT3BlcmF0aW9uOjpBZGQ6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QmxlbmRPcGVyYXRpb246OkFkZDsKKyAgICBjYXNlIEdQVUJsZW5k
T3BlcmF0aW9uOjpTdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCbGVuZE9w
ZXJhdGlvbjo6U3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6UmV2ZXJzZVN1
YnRyYWN0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpSZXZl
cnNlU3VidHJhY3Q7CisgICAgY2FzZSBHUFVCbGVuZE9wZXJhdGlvbjo6TWluOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0aW9uOjpNaW47CisgICAgY2FzZSBHUFVCbGVu
ZE9wZXJhdGlvbjo6TWF4OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkJsZW5kT3BlcmF0
aW9uOjpNYXg7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kU3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJsZW5kU3RhdGUuaAppbmRl
eCAyNGIwNjI2OTExZDBkN2MwMzdkNjYwMjI2YWNlYzNlNDE0ZGExOWFmLi45Y2VjZGI1YTY1NTk4
MDk3YTVkYzg2N2QxZWI3ZDQwYjQxMjMzYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVCbGVuZFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQmxlbmRTdGF0ZS5oCkBAIC0yNiwxMCArMjYsMTkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiR1BVQmxlbmRDb21wb25lbnQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dHJ1Y3QgR1BVQmxlbmRTdGF0ZSB7CisgICAgUEFMOjpXZWJHUFU6OkJsZW5kU3RhdGUgY29udmVy
dFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
Y29sb3IuY29udmVydFRvQmFja2luZygpLAorICAgICAgICAgICAgYWxwaGEuY29udmVydFRvQmFj
a2luZygpLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUJsZW5kQ29tcG9uZW50IGNvbG9y
OwogICAgIEdQVUJsZW5kQ29tcG9uZW50IGFscGhhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVCdWZmZXIuY3BwCmluZGV4IGIzZDBmMjczMDBkZTVmNmEwMDViNGFhODdk
YzI4OWE4YjE3NTkwNWYuLmU4MTg5ZGJmMDVlZTE0M2M3YmM1YjFjNGZlZTMwYjlmMDgzY2JlNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyLmNwcApAQCAtMzIs
MzMgKzMyLDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVUJ1ZmZlcjo6bGFi
ZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVy
biBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVQnVmZmVyOjpzZXRMYWJlbChTdHJp
bmcmJikKK3ZvaWQgR1BVQnVmZmVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBt
X2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVCdWZmZXI6
Om1hcEFzeW5jKEdQVU1hcE1vZGVGbGFncyBtb2RlLCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
b2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJikKK3ZvaWQgR1BVQnVmZmVyOjptYXBBc3luYyhHUFVNYXBNb2RlRmxhZ3MgbW9kZSwgc3Rk
OjpvcHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNp
emUsIE1hcEFzeW5jUHJvbWlzZSYmIHByb21pc2UpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1vZGUp
OwotICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAg
ICBtX2JhY2tpbmctPm1hcEFzeW5jKGNvbnZlcnRNYXBNb2RlRmxhZ3NUb0JhY2tpbmcobW9kZSks
IG9mZnNldCwgc2l6ZSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgIH0pOwogfQogCiBSZWY8SlND
OjpBcnJheUJ1ZmZlcj4gR1BVQnVmZmVyOjpnZXRNYXBwZWRSYW5nZShzdGQ6Om9wdGlvbmFsPEdQ
VVNpemU2ND4gb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKIHsKLSAgICBV
TlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Ci0gICAgcmV0dXJu
IEFycmF5QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7CisgICAgYXV0byBtYXBwZWRSYW5nZSA9
IG1fYmFja2luZy0+Z2V0TWFwcGVkUmFuZ2Uob2Zmc2V0LCBzaXplKTsKKyAgICByZXR1cm4gQXJy
YXlCdWZmZXI6OmNyZWF0ZShtYXBwZWRSYW5nZS5zb3VyY2UsIG1hcHBlZFJhbmdlLmJ5dGVMZW5n
dGgpOwogfQogCiB2b2lkIEdQVUJ1ZmZlcjo6dW5tYXAoKQogeworICAgIG1fYmFja2luZy0+dW5t
YXAoKTsKIH0KIAogdm9pZCBHUFVCdWZmZXI6OmRlc3Ryb3koKQogeworICAgIG1fYmFja2luZy0+
ZGVzdHJveSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZl
ci5oCmluZGV4IGI0NTFhMzhlNDYxOWRkZGQyZWI5OGUzNmY5N2RhZmZlZTczZDRhODguLmM2Mjhj
YzA2N2MwNDMxMDMwYzk2ZjVjOTE2ZDFjYjkyYTgwMDc3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUg
PG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zOSwyMiArNDAsMzEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHUFVCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVCdWZm
ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUJ1ZmZlcj4gY3JlYXRlKCkKKyAgICBz
dGF0aWMgUmVmPEdQVUJ1ZmZlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPiYmIGJh
Y2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVCdWZmZXIoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKGJhY2tpbmcp
KSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYWJl
bChTdHJpbmcmJik7CiAKLSAgICB2b2lkIG1hcEFzeW5jKEdQVU1hcE1vZGVGbGFncywgc3RkOjpv
cHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemVG
b3JNYXAsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHVzaW5nIE1hcEFzeW5jUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsPjsKKyAgICB2b2lkIG1hcEFzeW5jKEdQVU1h
cE1vZGVGbGFncywgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IG9mZnNldCwgc3RkOjpvcHRpb25h
bDxHUFVTaXplNjQ+IHNpemVGb3JNYXAsIE1hcEFzeW5jUHJvbWlzZSYmKTsKICAgICBSZWY8SlND
OjpBcnJheUJ1ZmZlcj4gZ2V0TWFwcGVkUmFuZ2Uoc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IG9m
ZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHJhbmdlU2l6ZSk7CiAgICAgdm9pZCB1bm1h
cCgpOwogCiAgICAgdm9pZCBkZXN0cm95KCk7CiAKKyAgICBQQUw6OldlYkdQVTo6QnVmZmVyJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJ1
ZmZlciYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgot
ICAgIEdQVUJ1ZmZlcigpID0gZGVmYXVsdDsKKyAgICBHUFVCdWZmZXIoUmVmPFBBTDo6V2ViR1BV
OjpCdWZmZXI+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5n
KSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpCdWZmZXI+IG1fYmFja2lu
ZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZl
ckJpbmRpbmcuaAppbmRleCBkNzBlZmYxOWM2YzU3OGJkMjk0NzUwZjJiZDU5M2E1MTJjNjBlNzkx
Li5lZGQwZTI2YWIxZjVhM2Q3MGE0NzBmZTk2MzBhY2YyYTA2YjE3ODQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJCaW5kaW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyQmluZGluZy5oCkBAIC0yOCwxMiAr
MjgsMjMgQEAKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCdWZmZXJCaW5kaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCdWZmZXJCaW5kaW5nIHsKLSAgICBSZWZQdHI8R1BV
QnVmZmVyPiBidWZmZXI7CisgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmcgY29udmVydFRv
QmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIGJ1ZmZlci0+YmFja2luZygpLAorICAgICAgICAgICAgb2Zm
c2V0LAorICAgICAgICAgICAgc2l6ZSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBHUFVCdWZm
ZXIqIGJ1ZmZlcjsKICAgICBHUFVTaXplNjQgb2Zmc2V0OwogICAgIHN0ZDo6b3B0aW9uYWw8R1BV
U2l6ZTY0PiBzaXplOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAppbmRleCBjNmFmMTk1NDI1Yzc0MGZlN2MxMzMx
ZmEwYzVjMzlkYzdlZmEzZWI0Li4wOTA2ZGFiYzVmNTZiYWFkZWM1MzdkMDQyZDc0Nzc0NmMxYTc5
MmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJC
aW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVm
ZmVyQmluZGluZ0xheW91dC5oCkBAIC0yNywxMCArMjcsMjAgQEAKIAogI2luY2x1ZGUgIkdQVUJ1
ZmZlckJpbmRpbmdUeXBlLmgiCiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVCdWZmZXJCaW5kaW5nTGF5b3V0IHsKKyAg
ICBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKHR5cGUpLAorICAgICAgICAgICAgaGFzRHluYW1pY09mZnNldCwKKyAgICAgICAg
ICAgIG1pbkJpbmRpbmdTaXplLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUJ1ZmZlckJp
bmRpbmdUeXBlIHR5cGU7CiAgICAgYm9vbCBoYXNEeW5hbWljT2Zmc2V0OwogICAgIEdQVVNpemU2
NCBtaW5CaW5kaW5nU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUJ1ZmZlckJpbmRpbmdUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVCdWZmZXJCaW5kaW5nVHlwZS5oCmluZGV4IDQ2NzczZTU0ZDYyNDYxOWUzZmIzODFlZGMz
M2QwMGNmMmQ1YTAzNzQuLjIwMjZiMmQzMGQ5ZDgxMmYzZTZlZDhiNDhiZDE0YzdiMmMwNzE1NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlckJpbmRp
bmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyQmlu
ZGluZ1R5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Z1R5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBlbnVt
IGNsYXNzIEdQVUJ1ZmZlckJpbmRpbmdUeXBlIDogdWludDhfdCB7CiAgICAgUmVhZE9ubHlTdG9y
YWdlCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdUeXBlIGNvbnZlcnRU
b0JhY2tpbmcoR1BVQnVmZmVyQmluZGluZ1R5cGUgYnVmZmVyQmluZGluZ1R5cGUpCit7CisgICAg
c3dpdGNoIChidWZmZXJCaW5kaW5nVHlwZSkgeworICAgIGNhc2UgR1BVQnVmZmVyQmluZGluZ1R5
cGU6OlVuaWZvcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5
cGU6OlVuaWZvcm07CisgICAgY2FzZSBHUFVCdWZmZXJCaW5kaW5nVHlwZTo6U3RvcmFnZToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nVHlwZTo6U3RvcmFnZTsKKyAg
ICBjYXNlIEdQVUJ1ZmZlckJpbmRpbmdUeXBlOjpSZWFkT25seVN0b3JhZ2U6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ1R5cGU6OlJlYWRPbmx5U3RvcmFnZTsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4
IDAzYWU5Zjk2MzRjMGYzNTIxODUzNzY2MTMyOTEyYjE2YmU5YmI4ZGMuLjczMjI3NjcyM2I1NGMw
MzdlYzc5YWNjZjBhYzBkMzhlNzE5MzY3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVCdWZmZXJEZXNjcmlwdG9yLmgKQEAgLTI4LDEwICsyOCwyMSBAQAog
I2luY2x1ZGUgIkdQVUJ1ZmZlclVzYWdlLmgiCiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5o
IgogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVUJ1ZmZlckRlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yIGNvbnZlcnRU
b0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHsg
bGFiZWwgfSwKKyAgICAgICAgICAgIHNpemUsCisgICAgICAgICAgICBjb252ZXJ0QnVmZmVyVXNh
Z2VGbGFnc1RvQmFja2luZyh1c2FnZSksCisgICAgICAgICAgICBtYXBwZWRBdENyZWF0aW9uLAor
ICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBzaXplOwogICAgIEdQVUJ1ZmZlclVz
YWdlRmxhZ3MgdXNhZ2U7CiAgICAgYm9vbCBtYXBwZWRBdENyZWF0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQnVmZmVyVXNhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJ1ZmZlclVzYWdlLmgKaW5kZXggM2Q0ZGJlYmNkNjI0
MjM5MGM3ZDEzOTQwYzA4OWJkYzFiYjBhODI5ZS4uMTk4YjgyMGNkOWEyZTUyMzMyZTg4ODNiNjYy
YTRiMmU4NzhlZmM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVQnVmZmVyVXNhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVC
dWZmZXJVc2FnZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUJ1ZmZlclVzYWdlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNCArNDgsMzAgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBRVUVSWV9SRVNPTFZFID0gMHgwMjAwOwogfTsKIAor
aW5saW5lIFBBTDo6V2ViR1BVOjpCdWZmZXJVc2FnZUZsYWdzIGNvbnZlcnRCdWZmZXJVc2FnZUZs
YWdzVG9CYWNraW5nKEdQVUJ1ZmZlclVzYWdlRmxhZ3MgYnVmZmVyVXNhZ2VGbGFncykKK3sKKyAg
ICBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2VGbGFncyByZXN1bHQgPSAwOworICAgIGlmIChidWZm
ZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6Ok1BUF9SRUFEKQorICAgICAgICByZXN1bHQg
fD0gUEFMOjpXZWJHUFU6OkJ1ZmZlclVzYWdlOjpNQVBfUkVBRDsKKyAgICBpZiAoYnVmZmVyVXNh
Z2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpNQVBfV1JJVEUpCisgICAgICAgIHJlc3VsdCB8PSBQ
QUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6Ok1BUF9XUklURTsKKyAgICBpZiAoYnVmZmVyVXNhZ2VG
bGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpDT1BZX1NSQykKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6
V2ViR1BVOjpCdWZmZXJVc2FnZTo6Q09QWV9TUkM7CisgICAgaWYgKGJ1ZmZlclVzYWdlRmxhZ3Mg
JiBHUFVCdWZmZXJVc2FnZTo6Q09QWV9EU1QpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQ
VTo6QnVmZmVyVXNhZ2U6OkNPUFlfRFNUOworICAgIGlmIChidWZmZXJVc2FnZUZsYWdzICYgR1BV
QnVmZmVyVXNhZ2U6OklOREVYKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OkJ1ZmZl
clVzYWdlOjpJTkRFWDsKKyAgICBpZiAoYnVmZmVyVXNhZ2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdl
OjpWRVJURVgpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlZF
UlRFWDsKKyAgICBpZiAoYnVmZmVyVXNhZ2VGbGFncyAmIEdQVUJ1ZmZlclVzYWdlOjpVTklGT1JN
KQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OkJ1ZmZlclVzYWdlOjpVTklGT1JNOwor
ICAgIGlmIChidWZmZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6OlNUT1JBR0UpCisgICAg
ICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlNUT1JBR0U7CisgICAgaWYg
KGJ1ZmZlclVzYWdlRmxhZ3MgJiBHUFVCdWZmZXJVc2FnZTo6SU5ESVJFQ1QpCisgICAgICAgIHJl
c3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OklORElSRUNUOworICAgIGlmIChidWZm
ZXJVc2FnZUZsYWdzICYgR1BVQnVmZmVyVXNhZ2U6OlFVRVJZX1JFU09MVkUpCisgICAgICAgIHJl
c3VsdCB8PSBQQUw6OldlYkdQVTo6QnVmZmVyVXNhZ2U6OlFVRVJZX1JFU09MVkU7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgKaW5kZXggODY1YWI0
MDA4ODA5MDc2OWQ4Y2VlZGVjZTg0MWNjMmVhMjc1ZDFjMS4uN2M1YjM3YjY4OTI4MWZiMzAyOTI4
Yjg3Mjk5NDVjNTM4MjM1NGQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BV
Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgOiB1aW50OF90IHsKICAgICBQcmVtdWx0aXBsaWVk
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlIGNv
bnZlcnRUb0JhY2tpbmcoR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGUgY2FudmFzQ29tcG9z
aXRpbmdBbHBoYU1vZGUpCit7CisgICAgc3dpdGNoIChjYW52YXNDb21wb3NpdGluZ0FscGhhTW9k
ZSkgeworICAgIGNhc2UgR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGU6Ok9wYXF1ZToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpDYW52YXNDb21wb3NpdGluZ0FscGhhTW9kZTo6T3Bh
cXVlOworICAgIGNhc2UgR1BVQ2FudmFzQ29tcG9zaXRpbmdBbHBoYU1vZGU6OlByZW11bHRpcGxp
ZWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q2FudmFzQ29tcG9zaXRpbmdBbHBoYU1v
ZGU6OlByZW11bHRpcGxpZWQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNhbnZhc0NvbmZpZ3VyYXRpb24uaAppbmRleCBhMWM4YzhhOTA2ZTZhNjk5N2RmNGNjOGVjOGE0
MzU0M2M3NDM4MzI3Li5lY2E2YmVmZDQ5MGM3M2U2NDAxMjM4ODNjMDE4ZWZlZDYzNDgxMzdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDYW52YXNDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5oCkBAIC0zMCwxNiArMzAsMjkgQEAKICNpbmNsdWRlICJHUFVFeHRlbnQzRERp
Y3QuaCIKICNpbmNsdWRlICJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkdQ
VVRleHR1cmVGb3JtYXQuaCIKKyNpbmNsdWRlICJHUFVUZXh0dXJlVXNhZ2UuaCIKICNpbmNsdWRl
IDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBHUFVUZXh0dXJlVXNhZ2VGbGFncyA9
IHVpbnQzMl90OyAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgaGVyZS4KLQogc3Ry
dWN0IEdQVUNhbnZhc0NvbmZpZ3VyYXRpb24gewotICAgIFJlZlB0cjxHUFVEZXZpY2U+IGRldmlj
ZTsKKyAgICBQQUw6OldlYkdQVTo6Q2FudmFzQ29uZmlndXJhdGlvbiBjb252ZXJ0VG9CYWNraW5n
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChkZXZpY2UpOworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgZGV2aWNlLT5iYWNraW5nKCksCisgICAgICAgICAgICBXZWJDb3JlOjpj
b252ZXJ0VG9CYWNraW5nKGZvcm1hdCksCisgICAgICAgICAgICBjb252ZXJ0VGV4dHVyZVVzYWdl
RmxhZ3NUb0JhY2tpbmcodXNhZ2UpLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFj
a2luZyhjb2xvclNwYWNlKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmco
Y29tcG9zaXRpbmdBbHBoYU1vZGUpLAorICAgICAgICAgICAgc2l6ZSA/IHN0ZDo6b3B0aW9uYWwg
eyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpzaXplKSB9IDogc3RkOjpudWxsb3B0LAorICAg
ICAgICB9OworICAgIH0KKworICAgIEdQVURldmljZSogZGV2aWNlOwogICAgIEdQVVRleHR1cmVG
b3JtYXQgZm9ybWF0OwogICAgIEdQVVRleHR1cmVVc2FnZUZsYWdzIHVzYWdlOyAvLyBHUFVUZXh0
dXJlVXNhZ2UuUkVOREVSX0FUVEFDSE1FTlQKICAgICBHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZSBj
b2xvclNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29sb3JEaWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3Qu
aAppbmRleCA1N2VmYjNjYzVmYTJiMmNiNWQ4MDJhNmE4MmQxNGM0Nzg3YjRiZGE4Li44NDRiMTRh
NmUzYjg0NjFkM2FjMzA3MGNjODE0YTZlNzhiZDQwOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVDb2xvckRpY3QuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3IuaD4KICNp
bmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMyLDYgKzMzLDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVDb2xvckRpY3QgeworICAgIFBBTDo6V2ViR1BVOjpDb2xvckRpY3QgY29u
dmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgciwKKyAgICAgICAgICAgIGcsCisgICAgICAgICAgICBiLAorICAgICAgICAgICAgYSwKKyAg
ICAgICAgfTsKKyAgICB9CisKICAgICBkb3VibGUgcjsKICAgICBkb3VibGUgZzsKICAgICBkb3Vi
bGUgYjsKQEAgLTQwLDQgKzUxLDEzIEBAIHN0cnVjdCBHUFVDb2xvckRpY3QgewogCiB1c2luZyBH
UFVDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91YmxlPiwgR1BVQ29sb3JEaWN0PjsKIAor
aW5saW5lIFBBTDo6V2ViR1BVOjpDb2xvciBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IEdQVUNvbG9y
JiBjb2xvcikKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihjb2xvciwgW10gKGNvbnN0IFZl
Y3Rvcjxkb3VibGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpDb2xvciB7CisgICAgICAgIHJl
dHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVUNvbG9yRGljdCYgY29sb3IpIC0+IFBB
TDo6V2ViR1BVOjpDb2xvciB7CisgICAgICAgIHJldHVybiBjb2xvci5jb252ZXJ0VG9CYWNraW5n
KCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbG9yVGFyZ2V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbG9yVGFyZ2V0U3RhdGUuaAppbmRleCBjNTJkODA4OTkzZmM0NTVhM2Q3YmMyOGVh
ODA3YTRmYzIzNWVlMDE3Li4xM2FlOGIzODA1NDQ4OGYzODlkNTg3MzU0MGNkZTU3NjZiZDBhZjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvclRhcmdl
dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29sb3JUYXJn
ZXRTdGF0ZS5oCkBAIC0yOSwxMCArMjksMjAgQEAKICNpbmNsdWRlICJHUFVDb2xvcldyaXRlLmgi
CiAjaW5jbHVkZSAiR1BVVGV4dHVyZUZvcm1hdC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVDb2xvclRhcmdldFN0YXRlIHsKKyAgICBQ
QUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKGZvcm1hdCksCisgICAgICAgICAgICBibGVuZCA/IHN0ZDo6b3B0aW9uYWwgeyBibGVuZC0+
Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBjb252ZXJ0
Q29sb3JXcml0ZUZsYWdzVG9CYWNraW5nKHdyaXRlTWFzayksCisgICAgICAgIH07CisgICAgfQor
CiAgICAgR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQ7CiAKICAgICBzdGQ6Om9wdGlvbmFsPEdQVUJs
ZW5kU3RhdGU+IGJsZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVQ29sb3JXcml0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29s
b3JXcml0ZS5oCmluZGV4IGUwZDdjYzM1ZTk0NTIyMDQ4YWRjMDhiN2MyODI1M2JmYjkwMDJjZGIu
LjIyZGM5YjA4ZTZhOTkzMmE3ZTQxNzQ4MDc4ZjhkNThhYzM3YWZlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbG9yV3JpdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb2xvcldyaXRlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJHUFVCbGVuZE9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVUludGVncmFsVHlw
ZXMuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29sb3JXcml0ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQzLDQgKzQ0LDE4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIEdQVUZsYWdzQ29uc3RhbnQgQUxMICAgPSAweEY7CiB9OwogCitpbmxpbmUgUEFMOjpX
ZWJHUFU6OkNvbG9yV3JpdGVGbGFncyBjb252ZXJ0Q29sb3JXcml0ZUZsYWdzVG9CYWNraW5nKEdQ
VUNvbG9yV3JpdGVGbGFncyBjb2xvcldyaXRlRmxhZ3MpCit7CisgICAgUEFMOjpXZWJHUFU6OkNv
bG9yV3JpdGVGbGFncyByZXN1bHQgPSAwOworICAgIGlmIChjb2xvcldyaXRlRmxhZ3MgJiBHUFVD
b2xvcldyaXRlOjpSRUQpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6Q29sb3JXcml0
ZTo6UkVEOworICAgIGlmIChjb2xvcldyaXRlRmxhZ3MgJiBHUFVDb2xvcldyaXRlOjpHUkVFTikK
KyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpDb2xvcldyaXRlOjpHUkVFTjsKKyAgICBp
ZiAoY29sb3JXcml0ZUZsYWdzICYgR1BVQ29sb3JXcml0ZTo6QkxVRSkKKyAgICAgICAgcmVzdWx0
IHw9IFBBTDo6V2ViR1BVOjpDb2xvcldyaXRlOjpCTFVFOworICAgIGlmIChjb2xvcldyaXRlRmxh
Z3MgJiBHUFVDb2xvcldyaXRlOjpBTFBIQSkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BV
OjpDb2xvcldyaXRlOjpBTFBIQTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCmluZGV4
IDI2MjkwMzk3NDRjNjE1NzBiNTIyZmQ0MzQ2MjRhNGFhNTk0ZjU5ODAuLjM2ODJkZDA5MTYxNjA3
YjBiODUzOWI1NmZlZTRmZDUxNjkyN2RlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0zMCwxMSArMzAsMTIgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgR1BVQ29tbWFuZEJ1ZmZlcjo6bGFiZWwoKSBjb25z
dAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tp
bmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6c2V0TGFiZWwoU3RyaW5n
JiYpCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogewor
ICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggZTM0
NDVmYTNlMmQ1OWFmZDgzZWNkNTBhMTUyZmVkMTQyMzQ4YjYzYi4uZTJjZjExNmU3Zjg3ZDVhYTI0
NGJjY2Y5MTUyMjNmODU1ZGRiMTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbW1hbmRCdWZmZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVUNvbW1hbmRCdWZmZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUNvbW1hbmRC
dWZmZXI+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVDb21tYW5kQnVmZmVyPiBjcmVhdGUo
UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21tYW5kQnVmZmVyKCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21tYW5kQnVmZmVyKFdURk1vdmUoYmFja2luZykpKTsKICAg
ICB9CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2b2lkIHNldExhYmVsKFN0cmlu
ZyYmKTsKIAorICAgIFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyJiBiYWNraW5nKCkgeyByZXR1
cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXImIGJh
Y2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVD
b21tYW5kQnVmZmVyKCkgPSBkZWZhdWx0OworICAgIEdQVUNvbW1hbmRCdWZmZXIoUmVmPFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyPiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdU
Rk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlcj4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXgg
ZDlkMTRlM2NhOWZhMDNiZDI2YjJmNzg0MzBmOGY4NWQ4ZmYwMWJhNS4uNWEwOGE0ZTUxMTczODBh
NDBmYzlhM2JlOTc2ZDQxMjA4ODY0M2RmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNiwx
MCArMjYsMTcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAg
ICBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAor
ICAgICAgICB9OworICAgIH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmNwcAppbmRleCBiMDM1ODVjZjY3YjlmNGFjZTE5
ZjhhZTlhZDc4Mjg4ZDYzMjY3YjNhLi40ODFjZDUwNTRkYzgyNDVkYWNkZTE2YWEyMjM2OTZkNjc2
M2NiYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21t
YW5kRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29t
bWFuZEVuY29kZXIuY3BwCkBAIC0zNSwyMSArMzUsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBTdHJpbmcgR1BVQ29tbWFuZEVuY29kZXI6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwogfQog
Ci12b2lkIEdQVUNvbW1hbmRFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVQ29t
bWFuZEVuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogeworICAgIG1fYmFja2luZy0+
c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCi1SZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+
IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJlbmRlclBhc3MoR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IpCitSZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpblJl
bmRlclBhc3MoY29uc3QgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3ImIHJlbmRlclBhc3NEZXNjcmlw
dG9yKQogewotICAgIHJldHVybiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6Y3JlYXRlKCk7CisgICAg
cmV0dXJuIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpjcmVhdGUobV9iYWNraW5nLT5iZWdpblJlbmRl
clBhc3MocmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29udmVydFRvQmFja2luZygpKSk7CiB9CiAKLVJl
ZjxHUFVDb21wdXRlUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpbkNvbXB1dGVQ
YXNzKHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPikKK1JlZjxHUFVDb21w
dXRlUGFzc0VuY29kZXI+IEdQVUNvbW1hbmRFbmNvZGVyOjpiZWdpbkNvbXB1dGVQYXNzKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYgY29tcHV0ZVBhc3NEZXNj
cmlwdG9yKQogewotICAgIHJldHVybiBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmNyZWF0ZShtX2JhY2tpbmctPmJlZ2lu
Q29tcHV0ZVBhc3MoY29tcHV0ZVBhc3NEZXNjcmlwdG9yID8gc3RkOjpvcHRpb25hbCB7IGNvbXB1
dGVQYXNzRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQpKTsK
IH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKApAQCAtNTks
NDEgKzYwLDMxIEBAIHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcigK
ICAgICBHUFVTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCiAgICAgR1BVU2l6ZTY0IHNpemUpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZU9mZnNl
dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVz
dGluYXRpb25PZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAgICBtX2JhY2tpbmct
PmNvcHlCdWZmZXJUb0J1ZmZlcihzb3VyY2UuYmFja2luZygpLCBzb3VyY2VPZmZzZXQsIGRlc3Rp
bmF0aW9uLmJhY2tpbmcoKSwgZGVzdGluYXRpb25PZmZzZXQsIHNpemUpOwogfQogCiB2b2lkIEdQ
VUNvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKAotICAgIEdQVUltYWdlQ29weUJ1
ZmZlciBzb3VyY2UsCi0gICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlvbiwKLSAgICBH
UFVFeHRlbnQzRCBjb3B5U2l6ZSkKKyAgICBjb25zdCBHUFVJbWFnZUNvcHlCdWZmZXImIHNvdXJj
ZSwKKyAgICBjb25zdCBHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICBjb25z
dCBHUFVFeHRlbnQzRCYgY29weVNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oY29weVNpemUp
OworICAgIG1fYmFja2luZy0+Y29weUJ1ZmZlclRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFj
a2luZygpLCBkZXN0aW5hdGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmco
Y29weVNpemUpKTsKIH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb0J1
ZmZlcigKLSAgICBHUFVJbWFnZUNvcHlUZXh0dXJlIHNvdXJjZSwKLSAgICBHUFVJbWFnZUNvcHlC
dWZmZXIgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0ZW50M0QgY29weVNpemUpCisgICAgY29uc3Qg
R1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAorICAgIGNvbnN0IEdQVUltYWdlQ29weUJ1ZmZl
ciYgZGVzdGluYXRpb24sCisgICAgY29uc3QgR1BVRXh0ZW50M0QmIGNvcHlTaXplKQogewotICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0g
ICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsKKyAgICBtX2JhY2tpbmctPmNvcHlUZXh0dXJlVG9C
dWZmZXIoc291cmNlLmNvbnZlcnRUb0JhY2tpbmcoKSwgZGVzdGluYXRpb24uY29udmVydFRvQmFj
a2luZygpLCBjb252ZXJ0VG9CYWNraW5nKGNvcHlTaXplKSk7CiB9CiAKIHZvaWQgR1BVQ29tbWFu
ZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9UZXh0dXJlKAotICAgIEdQVUltYWdlQ29weVRleHR1cmUg
c291cmNlLAotICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0
ZW50M0QgY29weVNpemUpCisgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLAor
ICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IEdQ
VUV4dGVudDNEJiBjb3B5U2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7Cisg
ICAgbV9iYWNraW5nLT5jb3B5VGV4dHVyZVRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFja2lu
ZygpLCBkZXN0aW5hdGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmcoY29w
eVNpemUpKTsKIH0KIAogdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcigKQEAgLTEw
MSw0NyArOTIsNTAgQEAgdm9pZCBHUFVDb21tYW5kRW5jb2Rlcjo6ZmlsbEJ1ZmZlcigKICAgICBH
UFVTaXplNjQgZGVzdGluYXRpb25PZmZzZXQsCiAgICAgR1BVU2l6ZTY0IHNpemUpCiB7Ci0gICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25P
ZmZzZXQpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAgICBtX2JhY2tpbmctPmZpbGxCdWZm
ZXIoZGVzdGluYXRpb24uYmFja2luZygpLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSk7CiB9CiAK
IHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFi
ZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworICAgIG1fYmFja2luZy0+cHVz
aERlYnVnR3JvdXAoV1RGTW92ZShncm91cExhYmVsKSk7CiB9CiAKIHZvaWQgR1BVQ29tbWFuZEVu
Y29kZXI6OnBvcERlYnVnR3JvdXAoKQogewotCisgICAgbV9iYWNraW5nLT5wb3BEZWJ1Z0dyb3Vw
KCk7CiB9CiAKIHZvaWQgR1BVQ29tbWFuZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKFN0cmlu
ZyYmIG1hcmtlckxhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTShtYXJrZXJMYWJlbCk7CisgICAg
bV9iYWNraW5nLT5pbnNlcnREZWJ1Z01hcmtlcihXVEZNb3ZlKG1hcmtlckxhYmVsKSk7CiB9CiAK
LXZvaWQgR1BVQ29tbWFuZEVuY29kZXI6OndyaXRlVGltZXN0YW1wKGNvbnN0IEdQVVF1ZXJ5U2V0
JiwgR1BVU2l6ZTMyIHF1ZXJ5SW5kZXgpCit2b2lkIEdQVUNvbW1hbmRFbmNvZGVyOjp3cml0ZVRp
bWVzdGFtcChjb25zdCBHUFVRdWVyeVNldCYgcXVlcnlTZXQsIEdQVVNpemUzMiBxdWVyeUluZGV4
KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPndyaXRl
VGltZXN0YW1wKHF1ZXJ5U2V0LmJhY2tpbmcoKSwgcXVlcnlJbmRleCk7CiB9CiAKIHZvaWQgR1BV
Q29tbWFuZEVuY29kZXI6OnJlc29sdmVRdWVyeVNldCgKLSAgICBjb25zdCBHUFVRdWVyeVNldCYs
CisgICAgY29uc3QgR1BVUXVlcnlTZXQmIHF1ZXJ5U2V0LAogICAgIEdQVVNpemUzMiBmaXJzdFF1
ZXJ5LAogICAgIEdQVVNpemUzMiBxdWVyeUNvdW50LAogICAgIGNvbnN0IEdQVUJ1ZmZlciYgZGVz
dGluYXRpb24sCiAgICAgR1BVU2l6ZTY0IGRlc3RpbmF0aW9uT2Zmc2V0KQogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFF1ZXJ5KTsKLSAgICBVTlVTRURfUEFSQU0ocXVlcnlDb3VudCk7Ci0gICAg
VU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25P
ZmZzZXQpOworICAgIG1fYmFja2luZy0+cmVzb2x2ZVF1ZXJ5U2V0KHF1ZXJ5U2V0LmJhY2tpbmco
KSwgZmlyc3RRdWVyeSwgcXVlcnlDb3VudCwgZGVzdGluYXRpb24uYmFja2luZygpLCBkZXN0aW5h
dGlvbk9mZnNldCk7Cit9CisKK3N0YXRpYyBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yPiYgY29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpCit7CisgICAgaWYgKCFjb21t
YW5kQnVmZmVyRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBj
b21tYW5kQnVmZmVyRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpOwogfQogCi1SZWY8R1BV
Q29tbWFuZEJ1ZmZlcj4gR1BVQ29tbWFuZEVuY29kZXI6OmZpbmlzaChzdGQ6Om9wdGlvbmFsPEdQ
VUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yPikKK1JlZjxHUFVDb21tYW5kQnVmZmVyPiBHUFVDb21t
YW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3I+JiBjb21tYW5kQnVmZmVyRGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29t
bWFuZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0
ZShtX2JhY2tpbmctPmZpbmlzaChjb252ZXJ0VG9CYWNraW5nKGNvbW1hbmRCdWZmZXJEZXNjcmlw
dG9yKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tbWFuZEVuY29kZXIuaAppbmRleCBmYTllYjljMmE2Yjg1Y2ViZWFmNzg5YjdkN2ZkZGVhMzhi
ZWQ3ZmY5Li5hMDFlMzI2ODQ1NDg4M2Q5YTZlNGJlMmQ4NjI2N2EyNWQwMDRkZDkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21tYW5kRW5jb2Rlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNvZGVyLmgKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkdQVVJlbmRlclBhc3NFbmNvZGVyLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDcsMTYgKzQ4LDE2IEBAIGNsYXNzIEdQVVF1ZXJ5U2V0
OwogCiBjbGFzcyBHUFVDb21tYW5kRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbW1h
bmRFbmNvZGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVDb21tYW5kRW5jb2Rlcj4g
Y3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVUNvbW1hbmRFbmNvZGVyPiBjcmVhdGUoUmVmPFBB
TDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlcj4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR1BVQ29tbWFuZEVuY29kZXIoKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdQVUNvbW1hbmRFbmNvZGVyKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9
CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKICAgICB2b2lkIHNldExhYmVsKFN0cmluZyYm
KTsKIAotICAgIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gYmVnaW5SZW5kZXJQYXNzKEdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yKTsKLSAgICBSZWY8R1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdp
bkNvbXB1dGVQYXNzKHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yPik7Cisg
ICAgUmVmPEdQVVJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRlclBhc3MoY29uc3QgR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3ImKTsKKyAgICBSZWY8R1BVQ29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdp
bkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9y
PiYpOwogCiAgICAgdm9pZCBjb3B5QnVmZmVyVG9CdWZmZXIoCiAgICAgICAgIGNvbnN0IEdQVUJ1
ZmZlciYgc291cmNlLApAQCAtNjYsMTkgKzY3LDE5IEBAIHB1YmxpYzoKICAgICAgICAgR1BVU2l6
ZTY0KTsKIAogICAgIHZvaWQgY29weUJ1ZmZlclRvVGV4dHVyZSgKLSAgICAgICAgR1BVSW1hZ2VD
b3B5QnVmZmVyIHNvdXJjZSwKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBkZXN0aW5hdGlv
biwKLSAgICAgICAgR1BVRXh0ZW50M0QgY29weVNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFn
ZUNvcHlCdWZmZXImIHNvdXJjZSwKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYg
ZGVzdGluYXRpb24sCisgICAgICAgIGNvbnN0IEdQVUV4dGVudDNEJiBjb3B5U2l6ZSk7CiAKICAg
ICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIoCi0gICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUg
c291cmNlLAotICAgICAgICBHUFVJbWFnZUNvcHlCdWZmZXIgZGVzdGluYXRpb24sCi0gICAgICAg
IEdQVUV4dGVudDNEIGNvcHlTaXplKTsKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVy
ZSYgc291cmNlLAorICAgICAgICBjb25zdCBHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9u
LAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgY29weVNpemUpOwogCiAgICAgdm9pZCBjb3B5
VGV4dHVyZVRvVGV4dHVyZSgKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZSBzb3VyY2UsCi0g
ICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRpb24sCi0gICAgICAgIEdQVUV4dGVu
dDNEIGNvcHlTaXplKTsKKyAgICAgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNl
LAorICAgICAgICBjb25zdCBHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwKKyAgICAg
ICAgY29uc3QgR1BVRXh0ZW50M0QmIGNvcHlTaXplKTsKIAogICAgIHZvaWQgZmlsbEJ1ZmZlcigK
ICAgICAgICAgY29uc3QgR1BVQnVmZmVyJiBkZXN0aW5hdGlvbiwKQEAgLTk4LDEwICs5OSwxOCBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IEdQVUJ1ZmZlciYgZGVzdGluYXRpb24sCiAgICAgICAg
IEdQVVNpemU2NCBkZXN0aW5hdGlvbk9mZnNldCk7CiAKLSAgICBSZWY8R1BVQ29tbWFuZEJ1ZmZl
cj4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+KTsKKyAg
ICBSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4gZmluaXNoKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3I+Jik7CisKKyAgICBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29k
ZXImIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXImIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0K
IAogcHJpdmF0ZToKLSAgICBHUFVDb21tYW5kRW5jb2RlcigpID0gZGVmYXVsdDsKKyAgICBHUFVD
b21tYW5kRW5jb2RlcihSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyPiYmIGJhY2tpbmcp
CisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yLmgKaW5kZXggNDM1OTZmYzYyZTRjYmIzYjAzYWYwNzViYzdiZjFj
ODI1ZGQ0OTgzZi4uODVlNTI1YmE5OTJiNDgxYWI1ODhmZDZmNThhNTZiMTU4YTdmMmRhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTI2LDEwICsyNiwxNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciA6IHB1Ymxp
YyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICB7IGxhYmVsIH0sCisgICAgICAgIH07CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGFyZUZ1
bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rp
b24uaAppbmRleCAzYWY4Yjc1Mjc4MjIxMDI3YmY3MGFjZmMwZTkxMzhjOGNjZGNjY2Q3Li44M2Yx
NjZmODYzYzI3ZjIwYjM5MTJkNDQ0YzM2M2ZlNjI3MGU4NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wYXJlRnVuY3Rpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDAsNCArNDEsMjcgQEAgZW51bSBjbGFzcyBHUFVDb21wYXJlRnVuY3Rpb24g
OiB1aW50OF90IHsKICAgICBBbHdheXMKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6Q29tcGFy
ZUZ1bmN0aW9uIGNvbnZlcnRUb0JhY2tpbmcoR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5j
dGlvbikKK3sKKyAgICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgIGNhc2UgR1BVQ29t
cGFyZUZ1bmN0aW9uOjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpDb21wYXJl
RnVuY3Rpb246Ok5ldmVyOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVzczsKKyAgICBjYXNl
IEdQVUNvbXBhcmVGdW5jdGlvbjo6RXF1YWw6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
Q29tcGFyZUZ1bmN0aW9uOjpFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6TGVz
c0VxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlcjsKKyAgICBjYXNlIEdQ
VUNvbXBhcmVGdW5jdGlvbjo6Tm90RXF1YWw6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
Q29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6
R3JlYXRlckVxdWFsOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXBhcmVGdW5jdGlv
bjo6R3JlYXRlckVxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpBbHdheXM6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcGFyZUZ1bmN0aW9uOjpBbHdheXM7CisgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwCmluZGV4
IDY4MmFhNzNmYmExNjg3Y2VjNzE5YTcyZmU0Y2I4YjlmZGE2ODJmMDYuLjBiN2JiMWM1OTIyOWQ1
ZWQwN2JkNzY5NTY3OWQ4NmZlNmI4ZjZkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcApAQCAtMzAsNyArMzAsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBWZWN0b3I8UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+
IEdQVUNvbXBpbGF0aW9uSW5mbzo6bWVzc2FnZXMoKSBjb25zdAogewotICAgIHJldHVybiB7IH07
CisgICAgYXV0byBtZXNzYWdlcyA9IG1fYmFja2luZy0+bWVzc2FnZXMoKTsKKyAgICBWZWN0b3I8
UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShtZXNzYWdlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbWVzc2FnZSA6
IG1lc3NhZ2VzKQorICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEdQVUNvbXBpbGF0aW9u
TWVzc2FnZTo6Y3JlYXRlKFdURk1vdmUobWVzc2FnZSkpKTsKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
aWxhdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0
aW9uSW5mby5oCmluZGV4IDUzYjg4OGE2YWIwMWYyYTIxMWYwODFiZTM2ZDFlODI2NTNlMDY4MWMu
LjUwM2MzYWZjMTlkMDFlMzBhYjMzZWMyNGI4Yjk3NTA1ZGFlZTczOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25JbmZv
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
QEAgLTMzLDE1ICszNCwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUNvbXBp
bGF0aW9uSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXBpbGF0aW9uSW5mbz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcGlsYXRpb25JbmZvPiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8R1BVQ29tcGlsYXRpb25JbmZvPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpDb21w
aWxhdGlvbkluZm8+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEdQVUNvbXBpbGF0aW9uSW5mbygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQ29tcGlsYXRpb25JbmZvKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBWZWN0
b3I8UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+IG1lc3NhZ2VzKCkgY29uc3Q7CiAKKyAgICBQ
QUw6OldlYkdQVTo6Q29tcGlsYXRpb25JbmZvJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5n
OyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbyYgYmFja2luZygpIGNv
bnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVUNvbXBpbGF0aW9u
SW5mbygpID0gZGVmYXVsdDsKKyAgICBHUFVDb21waWxhdGlvbkluZm8oUmVmPFBBTDo6V2ViR1BV
OjpDb21waWxhdGlvbkluZm8+JiYgYmFja2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92
ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21waWxh
dGlvbkluZm8+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDhhZjJmNDY1
YzQzYjlhYTNhMTNiMTE0MjE3OGEzNWZhMTk0NGI0NTMuLjVlZGM2OTg5NDAwYjVmMzBmMDUwNGI1
OTY4NzViODFjZWU3N2RiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcApAQCAtMjgsMzQgKzI4LDQyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3RyaW5nIEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6bWVz
c2FnZSgpIGNvbnN0Citjb25zdCBTdHJpbmcmIEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6bWVzc2Fn
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0dXJu
IG1fYmFja2luZy0+bWVzc2FnZSgpOwogfQogCiBHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlIEdQ
VUNvbXBpbGF0aW9uTWVzc2FnZTo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVUNvbXBp
bGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yOworICAgIHN3aXRjaCAobV9iYWNraW5nLT50eXBlKCkp
IHsKKyAgICBjYXNlIFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjoK
KyAgICAgICAgcmV0dXJuIEdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkVycm9yOworICAgIGNh
c2UgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6Oldhcm5pbmc6CisgICAgICAg
IHJldHVybiBHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpXYXJuaW5nOworICAgIGNhc2UgUEFM
OjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGU6OkluZm86CisgICAgICAgIHJldHVybiBH
UFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpJbmZvOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCiB1aW50NjRfdCBHUFVDb21waWxhdGlvbk1lc3NhZ2U6Omxp
bmVOdW0oKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPmxp
bmVOdW0oKTsKIH0KIAogdWludDY0X3QgR1BVQ29tcGlsYXRpb25NZXNzYWdlOjpsaW5lUG9zKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5saW5lUG9zKCk7
CiB9CiAKIHVpbnQ2NF90IEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6b2Zmc2V0KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5vZmZzZXQoKTsKIH0KIAogdWlu
dDY0X3QgR1BVQ29tcGlsYXRpb25NZXNzYWdlOjpsZW5ndGgoKSBjb25zdAogewotICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2JhY2tpbmctPmxlbmd0aCgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCmlu
ZGV4IDg0NzYzN2QyOTE5OGIxNDFmNTgyNjI0Y2RlYTk2ODRiOWU5MzYyZGEuLmJhOTRiZjI4MTU4
ZjFhMWIxMDk5Mzg5N2E2YWE3N2IxODY0ZTJiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgiCiAjaW5jbHVkZSA8
Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsMjAgKzM2LDI4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tcGlsYXRpb25NZXNzYWdlIDogcHVi
bGljIFJlZkNvdW50ZWQ8R1BVQ29tcGlsYXRpb25NZXNzYWdlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxHUFVDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxH
UFVDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVQ29tcGlsYXRpb25NZXNzYWdlKCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
UFVDb21waWxhdGlvbk1lc3NhZ2UoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAotICAgIFN0
cmluZyBtZXNzYWdlKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3Q7
CiAgICAgR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgdWludDY0
X3QgbGluZU51bSgpIGNvbnN0OwogICAgIHVpbnQ2NF90IGxpbmVQb3MoKSBjb25zdDsKICAgICB1
aW50NjRfdCBvZmZzZXQoKSBjb25zdDsKICAgICB1aW50NjRfdCBsZW5ndGgoKSBjb25zdDsKIAor
ICAgIFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UmIGJhY2tpbmcoKSB7IHJldHVybiBt
X2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlJiBi
YWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BV
Q29tcGlsYXRpb25NZXNzYWdlKCkgPSBkZWZhdWx0OworICAgIEdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNz
YWdlVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25N
ZXNzYWdlVHlwZS5oCmluZGV4IDMwMjQ1YmE5YjVlZDdjMDU0OTg2Mzg3NTYwNWI2ZGQ3MDE3ZjFh
OTIuLmMxNTAzNTM2OGQxM2MxYWFiMTljMDY3YTJmZDg4MGVjNGM5YjU0ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3Nh
Z2VUeXBlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0
ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVz
c2FnZVR5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw0ICszNiwxNyBAQCBl
bnVtIGNsYXNzIEdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUgOiB1aW50OF90IHsKICAgICBJbmZv
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZVR5cGUgY29udmVy
dFRvQmFja2luZyhHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlIGNvbXBpbGF0aW9uTWVzc2FnZVR5
cGUpCit7CisgICAgc3dpdGNoIChjb21waWxhdGlvbk1lc3NhZ2VUeXBlKSB7CisgICAgY2FzZSBH
UFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpDb21waWxhdGlvbk1lc3NhZ2VUeXBlOjpFcnJvcjsKKyAgICBjYXNlIEdQVUNvbXBpbGF0
aW9uTWVzc2FnZVR5cGU6Oldhcm5pbmc6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29t
cGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZzsKKyAgICBjYXNlIEdQVUNvbXBpbGF0aW9uTWVz
c2FnZVR5cGU6OkluZm86CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25N
ZXNzYWdlVHlwZTo6SW5mbzsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRleCAwN2NlMWUzNTM1ODU4M2Q3OTIyYzdmYjU0
NmJhMGVmYzc2NmU5NTUzLi44NDllNDlkOTY1YzAwM2I5ZjkzMjE0M2E5NDU4YzkzZTNmZjQ4ZWM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFz
c0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuaApAQCAtMjcsMTAgKzI3LDE5IEBACiAKICNpbmNsdWRlICJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgiCiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
RGVzY3JpcHRvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVDb21wdXRl
UGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgeworICAgIFBB
TDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAg
ICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh0aW1lc3RhbXBXcml0ZXMpLAorICAgICAg
ICB9OworICAgIH0KKwogICAgIEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVzdGFt
cFdyaXRlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVDb21wdXRlUGFzc0VuY29kZXIuY3BwCmluZGV4IGU2NzI5OWNiNjIyZjQzMWIyODIzYmY1
YjE2ZmM0MmU5YWVkMGNkZDUuLmI1ZTE1ZTUwNDBiNmE1NzEzMmYzZWM4ZTEyNzI1MWQ0NzQ5Njgx
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQ
YXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29t
cHV0ZVBhc3NFbmNvZGVyLmNwcApAQCAtMzcsNzQgKzM3LDcxIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU3RyaW5nIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6bGFiZWwoKSBjb25zdAogewotICAg
IHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVs
KCk7CiB9CiAKLXZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikK
K3ZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsK
KyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVD
b21wdXRlUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSYp
Cit2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0
ZVBpcGVsaW5lJiBjb21wdXRlUGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGlu
ZShjb21wdXRlUGlwZWxpbmUuYmFja2luZygpKTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFzc0Vu
Y29kZXI6OmRpc3BhdGNoKEdQVVNpemUzMiB4LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemUzMj4geSwg
c3RkOjpvcHRpb25hbDxHUFVTaXplMzI+IHopCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAg
IFVOVVNFRF9QQVJBTSh5KTsKLSAgICBVTlVTRURfUEFSQU0oeik7CisgICAgbV9iYWNraW5nLT5k
aXNwYXRjaCh4LCB5LCB6KTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFzc0VuY29kZXI6OmRpc3Bh
dGNoSW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6ZTY0IGlu
ZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7Ci0gICAg
VU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRpc3BhdGNoSW5k
aXJlY3QoaW5kaXJlY3RCdWZmZXIuYmFja2luZygpLCBpbmRpcmVjdE9mZnNldCk7CiB9CiAKLXZv
aWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpiZWdpblBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KGNv
bnN0IEdQVVF1ZXJ5U2V0JiwgR1BVU2l6ZTMyIHF1ZXJ5SW5kZXgpCit2b2lkIEdQVUNvbXB1dGVQ
YXNzRW5jb2Rlcjo6YmVnaW5QaXBlbGluZVN0YXRpc3RpY3NRdWVyeShjb25zdCBHUFVRdWVyeVNl
dCYgcXVlcnlTZXQsIEdQVVNpemUzMiBxdWVyeUluZGV4KQogewotICAgIFVOVVNFRF9QQVJBTShx
dWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnko
cXVlcnlTZXQuYmFja2luZygpLCBxdWVyeUluZGV4KTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFz
c0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKIHsKLQorICAgIG1fYmFja2lu
Zy0+ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKTsKIH0KIAogdm9pZCBHUFVDb21wdXRlUGFz
c0VuY29kZXI6OmVuZFBhc3MoKQogewotCisgICAgbV9iYWNraW5nLT5lbmRQYXNzKCk7CiB9CiAK
LXZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiwgY29u
c3QgR1BVQmluZEdyb3VwJiwKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxHUFVCdWZmZXJEeW5h
bWljT2Zmc2V0Pj4mJikKK3ZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAo
R1BVSW5kZXgzMiBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCisgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8R1BVQnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNl
dHMpCiB7Ci0KKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChpbmRleCwgYmluZEdyb3VwLmJh
Y2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQogCi12b2lkIEdQVUNvbXB1dGVQ
YXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIsIGNvbnN0IEdQVUJpbmRHcm91cCYs
Cit2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIgaW5k
ZXgsIGNvbnN0IEdQVUJpbmRHcm91cCYgYmluZEdyb3VwLAogICAgIGNvbnN0IEpTQzo6VWludDMy
QXJyYXkmIGR5bmFtaWNPZmZzZXRzRGF0YSwKICAgICBHUFVTaXplNjQgZHluYW1pY09mZnNldHNE
YXRhU3RhcnQsCiAgICAgR1BVU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhKTsKLSAgICBVTlVTRURfUEFSQU0oZHlu
YW1pY09mZnNldHNEYXRhU3RhcnQpOwotICAgIFVOVVNFRF9QQVJBTShkeW5hbWljT2Zmc2V0c0Rh
dGFMZW5ndGgpOworICAgIG1fYmFja2luZy0+c2V0QmluZEdyb3VwKGluZGV4LCBiaW5kR3JvdXAu
YmFja2luZygpLCBkeW5hbWljT2Zmc2V0c0RhdGEuZGF0YSgpLCBkeW5hbWljT2Zmc2V0c0RhdGEu
bGVuZ3RoKCksIGR5bmFtaWNPZmZzZXRzRGF0YVN0YXJ0LCBkeW5hbWljT2Zmc2V0c0RhdGFMZW5n
dGgpOwogfQogCiB2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAoU3Ry
aW5nJiYgZ3JvdXBMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZ3JvdXBMYWJlbCk7CisgICAg
bV9iYWNraW5nLT5wdXNoRGVidWdHcm91cChXVEZNb3ZlKGdyb3VwTGFiZWwpKTsKIH0KIAogdm9p
ZCBHUFVDb21wdXRlUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogewotCisgICAgbV9iYWNr
aW5nLT5wb3BEZWJ1Z0dyb3VwKCk7CiB9CiAKIHZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpp
bnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFS
QU0obWFya2VyTGFiZWwpOworICAgIG1fYmFja2luZy0+aW5zZXJ0RGVidWdNYXJrZXIoV1RGTW92
ZShtYXJrZXJMYWJlbCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzRW5jb2Rlci5oCmluZGV4IDgwOGE0ZjY2M2U1MWIxNDg2
OGVjNzM4NWFiOWIzZDE1MDgxYzhmY2QuLjcwNjY4YTcxZDYwMmIyOWVlYjAxODcyNTIzMWVkODA3
YWIzZmJmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNv
bXB1dGVQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNvbXB1dGVQYXNzRW5jb2Rlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiR1BVSW50
ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQzMkFycmF5Lmg+CiAj
aW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00Miw5ICs0Myw5IEBA
IGNsYXNzIEdQVVF1ZXJ5U2V0OwogCiBjbGFzcyBHUFVDb21wdXRlUGFzc0VuY29kZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVDb21wdXRlUGFzc0VuY29kZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEdQVUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQ
VUNvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NF
bmNvZGVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
UFVDb21wdXRlUGFzc0VuY29kZXIoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQ
VUNvbXB1dGVQYXNzRW5jb2RlcihXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3Ry
aW5nIGxhYmVsKCkgY29uc3Q7CkBAIC03MSw4ICs3MiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
b3BEZWJ1Z0dyb3VwKCk7CiAgICAgdm9pZCBpbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJr
ZXJMYWJlbCk7CiAKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyJiBiYWNraW5n
KCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQ
YXNzRW5jb2RlciYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2
YXRlOgotICAgIEdQVUNvbXB1dGVQYXNzRW5jb2RlcigpID0gZGVmYXVsdDsKKyAgICBHUFVDb21w
dXRlUGFzc0VuY29kZXIoUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+JiYgYmFj
a2luZykKKyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAg
fQorCisgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+IG1fYmFja2luZzsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNv
bXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaAppbmRleCA1NTMxYTZjOGNiNjE0
OGM1MThlYzAzOGNlN2UwMzc3MWY2MDFmYTFlLi4zYzNmY2M0NmY2ZTQ5MDc3YzVmODc5NWVmY2Nl
NTY2NDFhMzAwNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIDogdWludDhfdCB7CiAgICAgRW5kCiB9OwogCitp
bmxpbmUgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24gY29udmVydFRv
QmFja2luZyhHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIGNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24pCit7CisgICAgc3dpdGNoIChjb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9u
KSB7CisgICAgY2FzZSBHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpCZWdpbm5pbmc6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlv
bjo6QmVnaW5uaW5nOworICAgIGNhc2UgR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6
RW5kOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wTG9j
YXRpb246OkVuZDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oCmluZGV4IDY5OWFiZGQ4YjI0ZGViOWIyMTEyNDg1
NGJkNjFmNzIxNDZiZDJmMTQuLjJjOTQ1Njg4MTM2YWQ3ZDlkYmY1MWI1NDkzYzVjYmZiNDVlOTAy
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgKQEAgLTI4LDE3ICsyOCwzNyBAQAogI2luY2x1
ZGUgIkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24uaCIKICNpbmNsdWRlICJHUFVJbnRl
Z3JhbFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVUXVlcnlTZXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSB7Ci0gICAgUmVm
UHRyPEdQVVF1ZXJ5U2V0PiBxdWVyeVNldDsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChxdWVyeVNldCk7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBxdWVyeVNldC0+
YmFja2luZygpLAorICAgICAgICAgICAgcXVlcnlJbmRleCwKKyAgICAgICAgICAgIFdlYkNvcmU6
OmNvbnZlcnRUb0JhY2tpbmcobG9jYXRpb24pLAorICAgICAgICB9OworICAgIH0KKworICAgIEdQ
VVF1ZXJ5U2V0KiBxdWVyeVNldDsKICAgICBHUFVTaXplMzIgcXVlcnlJbmRleDsKICAgICBHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uIGxvY2F0aW9uOwogfTsKIAogdXNpbmcgR1BVQ29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZT47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMg
Y29udmVydFRvQmFja2luZyhjb25zdCBHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYgY29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMpCit7CisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGVzIHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgY29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSA6IGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzKQorICAg
ICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUuY29u
dmVydFRvQmFja2luZygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRl
eCA3ZGJlN2MwNDRkNmFiMmU4OGNlODU0ZmJjZTQ1YTViNjhiZDJlZWZmLi5kNzE0OGVlMzZmYjMz
Y2JiYjU3ODM0NWZjNmY1NTY2NmNkNjJkZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQaXBlbGluZS5jcHAKQEAgLTMyLDE2ICszMiwxNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVDb21wdXRlUGlwZWxpbmU6OmxhYmVs
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4g
bV9iYWNraW5nLT5sYWJlbCgpOwogfQogCi12b2lkIEdQVUNvbXB1dGVQaXBlbGluZTo6c2V0TGFi
ZWwoU3RyaW5nJiYpCit2b2lkIEdQVUNvbXB1dGVQaXBlbGluZTo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAK
LVJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVUNvbXB1dGVQaXBlbGluZTo6Z2V0QmluZEdyb3Vw
TGF5b3V0KHVpbnQzMl90KQorUmVmPEdQVUJpbmRHcm91cExheW91dD4gR1BVQ29tcHV0ZVBpcGVs
aW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIEdQ
VUJpbmRHcm91cExheW91dDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91cExheW91
dDo6Y3JlYXRlKG1fYmFja2luZy0+Z2V0QmluZEdyb3VwTGF5b3V0KGluZGV4KSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQaXBl
bGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5l
LmgKaW5kZXggYzhjZDdjMGZhZDExY2JkZDkyNTg5NzkwYmE0MDU3N2Q1MzE2NmNmZS4uMmU2OWZj
NTVmOWI2YTNjOTEyN2I3YjkxMzZkMjU5ODFmMGMyODVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzYsOSArMzcsOSBAQCBjbGFzcyBHUFVCaW5kR3JvdXBMYXlvdXQ7CiAKIGNs
YXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXB1dGVQaXBl
bGluZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVh
dGUoKQorICAgIHN0YXRpYyBSZWY8R1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVmPFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEdQVUNvbXB1dGVQaXBlbGluZSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9
CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKQEAgLTQ2LDEwICs0NywxNiBAQCBwdWJsaWM6
CiAKICAgICBSZWY8R1BVQmluZEdyb3VwTGF5b3V0PiBnZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgaW5kZXgpOwogCisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSYgYmFja2luZygp
IHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmUmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToK
LSAgICBHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisgICAgR1BVQ29tcHV0ZVBpcGVs
aW5lKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiYmIGJhY2tpbmcpCisgICAgICAg
IDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KIAotICAgIFN0cmlu
ZyBtX2xhYmVsOworICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiBtX2JhY2tp
bmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggZDFmOTNhODQwZGE1MzBh
OGIyM2VhMjdkNjM1ZTRkZjViOTk1YjkzOC4uMjQxNDM4MGFiZDc5MDIwMDU2ZDU3ZWFmMjA2ZGM5
NmM5NWZmOTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMjcsMTAgKzI3LDIyIEBA
CiAKICNpbmNsdWRlICJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgICAgIGxh
eW91dCA/ICZsYXlvdXQtPmJhY2tpbmcoKSA6IG51bGxwdHIsCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgY29tcHV0ZS5jb252ZXJ0VG9CYWNraW5nKCkKKyAgICAgICAgfTsKKyAgICB9CisK
ICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZSBjb21wdXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ3VsbE1vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUN1bGxNb2RlLmgKaW5kZXggMGQ5MTcxYmI1MzNmNThmYWE3MGJj
NjU2MzZkNmMxZTI1OTQzOWJhOS4uNzkwZGZhNGU2MDc0MzM0MjJhMTZlMDhhNjMwZGVlMzU0NmVh
Y2ExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ3VsbE1v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDdWxsTW9kZS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDdWxsTW9kZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVQ3VsbE1vZGUgOiB1
aW50OF90IHsKICAgICBCYWNrCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkN1bGxNb2RlIGNv
bnZlcnRUb0JhY2tpbmcoR1BVQ3VsbE1vZGUgY3VsbE1vZGUpCit7CisgICAgc3dpdGNoIChjdWxs
TW9kZSkgeworICAgIGNhc2UgR1BVQ3VsbE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6Q3VsbE1vZGU6Ok5vbmU7CisgICAgY2FzZSBHUFVDdWxsTW9kZTo6RnJvbnQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkZyb250OworICAgIGNhc2UgR1BV
Q3VsbE1vZGU6OkJhY2s6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q3VsbE1vZGU6OkJh
Y2s7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURlcHRoU3RlbmNpbFN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5oCmluZGV4IGM2OTU1ODhiYjBiODE1Njg5MGZkZDBmODg1MmJhNTNmZTcyNTdkMTQuLmE4Yzkx
ZjljZGU2MDMxMmQzOTI5YjdjYTMyYjQ0ZGUzY2M4YTk5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURlcHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGVwdGhTdGVuY2lsU3RhdGUuaApAQCAtMzAsMTAg
KzMwLDI3IEBACiAjaW5jbHVkZSAiR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIgogI2luY2x1ZGUgIkdQ
VVRleHR1cmVGb3JtYXQuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVURlcHRoU3RlbmNpbFN0YXRlIHsKKyAgICBQQUw6OldlYkdQVTo6
RGVwdGhTdGVuY2lsU3RhdGUgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhmb3JtYXQp
LAorICAgICAgICAgICAgZGVwdGhXcml0ZUVuYWJsZWQsCisgICAgICAgICAgICBXZWJDb3JlOjpj
b252ZXJ0VG9CYWNraW5nKGRlcHRoQ29tcGFyZSksCisgICAgICAgICAgICBzdGVuY2lsRnJvbnQu
Y29udmVydFRvQmFja2luZygpLAorICAgICAgICAgICAgc3RlbmNpbEJhY2suY29udmVydFRvQmFj
a2luZygpLAorICAgICAgICAgICAgc3RlbmNpbFJlYWRNYXNrID8gc3RkOjpvcHRpb25hbCB7ICpz
dGVuY2lsUmVhZE1hc2sgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIHN0ZW5jaWxXcml0
ZU1hc2sgPyBzdGQ6Om9wdGlvbmFsIHsgKnN0ZW5jaWxXcml0ZU1hc2sgfSA6IHN0ZDo6bnVsbG9w
dCwKKyAgICAgICAgICAgIGRlcHRoQmlhcywKKyAgICAgICAgICAgIGRlcHRoQmlhc1Nsb3BlU2Nh
bGUsCisgICAgICAgICAgICBkZXB0aEJpYXNDbGFtcCwKKyAgICAgICAgfTsKKyAgICB9CisKICAg
ICBHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdDsKIAogICAgIGJvb2wgZGVwdGhXcml0ZUVuYWJsZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlLmNwcAppbmRleCA1YWE4
N2VmZmVkZTcwZDIxYWFjY2NlMmU5ZThjYTgyODFiNWFiMWIyLi43Yjg3MzIzZjU0ZDg3MTI2MTY2
MjIwOTVjZWIyMmM3NDM2MWUyNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVURldmljZS5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiR1BVU3VwcG9ydGVk
TGltaXRzLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiSlNHUFVDb21wdXRlUGlwZWxpbmUuaCIKKyNpbmNsdWRl
ICJKU0dQVU91dE9mTWVtb3J5RXJyb3IuaCIKKyNpbmNsdWRlICJKU0dQVVJlbmRlclBpcGVsaW5l
LmgiCisjaW5jbHVkZSAiSlNHUFVWYWxpZGF0aW9uRXJyb3IuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02MSwxMDYgKzY1LDE1NSBAQCBHUFVEZXZpY2U6On5HUFVEZXZpY2UoKSA9IGRl
ZmF1bHQ7CiAKIFN0cmluZyBHUFVEZXZpY2U6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwogfQog
Ci12b2lkIEdQVURldmljZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVURldmljZTo6c2V0
TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3Zl
KGxhYmVsKSk7CiB9CiAKIFJlZjxHUFVTdXBwb3J0ZWRGZWF0dXJlcz4gR1BVRGV2aWNlOjpmZWF0
dXJlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVVN1cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUo
KTsKKyAgICByZXR1cm4gR1BVU3VwcG9ydGVkRmVhdHVyZXM6OmNyZWF0ZShtX2JhY2tpbmctPmZl
YXR1cmVzKCkpOwogfQogCiBSZWY8R1BVU3VwcG9ydGVkTGltaXRzPiBHUFVEZXZpY2U6OmxpbWl0
cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEdQVVN1cHBvcnRlZExpbWl0czo6Y3JlYXRlKCk7Cisg
ICAgcmV0dXJuIEdQVVN1cHBvcnRlZExpbWl0czo6Y3JlYXRlKG1fYmFja2luZy0+bGltaXRzKCkp
OwogfQogCiB2b2lkIEdQVURldmljZTo6ZGVzdHJveSgpCiB7CisgICAgbV9iYWNraW5nLT5kZXN0
cm95KCk7CiB9CiAKLVJlZjxHUFVCdWZmZXI+IEdQVURldmljZTo6Y3JlYXRlQnVmZmVyKGNvbnN0
IEdQVUJ1ZmZlckRlc2NyaXB0b3ImKQorUmVmPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjpjcmVhdGVC
dWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgYnVmZmVyRGVzY3JpcHRvcikKIHsKLSAg
ICByZXR1cm4gR1BVQnVmZmVyOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVQnVmZmVyOjpjcmVh
dGUobV9iYWNraW5nLT5jcmVhdGVCdWZmZXIoYnVmZmVyRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNr
aW5nKCkpKTsKIH0KIAotUmVmPEdQVVRleHR1cmU+IEdQVURldmljZTo6Y3JlYXRlVGV4dHVyZShj
b25zdCBHUFVUZXh0dXJlRGVzY3JpcHRvciYpCitSZWY8R1BVVGV4dHVyZT4gR1BVRGV2aWNlOjpj
cmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlwdG9yJiB0ZXh0dXJlRGVzY3JpcHRv
cikKIHsKLSAgICByZXR1cm4gR1BVVGV4dHVyZTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVVRl
eHR1cmU6OmNyZWF0ZShtX2JhY2tpbmctPmNyZWF0ZVRleHR1cmUodGV4dHVyZURlc2NyaXB0b3Iu
Y29udmVydFRvQmFja2luZygpKSk7CiB9CiAKLVJlZjxHUFVTYW1wbGVyPiBHUFVEZXZpY2U6OmNy
ZWF0ZVNhbXBsZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVTYW1wbGVyRGVzY3JpcHRvcj4mKQor
c3RhdGljIFBBTDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8R1BVU2FtcGxlckRlc2NyaXB0b3I+JiBzYW1wbGVyRGVzY3JpcHRv
cikKIHsKLSAgICByZXR1cm4gR1BVU2FtcGxlcjo6Y3JlYXRlKCk7CisgICAgaWYgKCFzYW1wbGVy
RGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyB9LAorICAgICAg
ICAgICAgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZSwKKyAgICAgICAgICAg
IFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UsCisgICAgICAgICAgICBQQUw6
OldlYkdQVTo6QWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlLAorICAgICAgICAgICAgUEFMOjpXZWJH
UFU6OkZpbHRlck1vZGU6Ok5lYXJlc3QsCisgICAgICAgICAgICBQQUw6OldlYkdQVTo6RmlsdGVy
TW9kZTo6TmVhcmVzdCwKKyAgICAgICAgICAgIFBBTDo6V2ViR1BVOjpGaWx0ZXJNb2RlOjpOZWFy
ZXN0LAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDMyLAorICAgICAgICAgICAgc3RkOjpu
dWxsb3B0LAorICAgICAgICAgICAgMQorICAgICAgICB9OworICAgIH0KKworICAgIHJldHVybiBz
YW1wbGVyRGVzY3JpcHRvci0+Y29udmVydFRvQmFja2luZygpOworfQorCitSZWY8R1BVU2FtcGxl
cj4gR1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVU2FtcGxl
ckRlc2NyaXB0b3I+JiBzYW1wbGVyRGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gR1BVU2FtcGxl
cjo6Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlU2FtcGxlcihjb252ZXJ0VG9CYWNraW5nKHNhbXBs
ZXJEZXNjcmlwdG9yKSkpOwogfQogCi1SZWY8R1BVRXh0ZXJuYWxUZXh0dXJlPiBHUFVEZXZpY2U6
OmltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
JikKK1JlZjxHUFVFeHRlcm5hbFRleHR1cmU+IEdQVURldmljZTo6aW1wb3J0RXh0ZXJuYWxUZXh0
dXJlKGNvbnN0IEdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImIGV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVUV4dGVybmFsVGV4dHVyZTo6Y3JlYXRlKCk7Cisg
ICAgcmV0dXJuIEdQVUV4dGVybmFsVGV4dHVyZTo6Y3JlYXRlKG1fYmFja2luZy0+aW1wb3J0RXh0
ZXJuYWxUZXh0dXJlKGV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY29udmVydFRvQmFja2luZygp
KSk7CiB9CiAKLVJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVURldmljZTo6Y3JlYXRlQmluZEdy
b3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKQorUmVmPEdQVUJp
bmRHcm91cExheW91dD4gR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcikKIHsK
LSAgICByZXR1cm4gR1BVQmluZEdyb3VwTGF5b3V0OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BV
QmluZEdyb3VwTGF5b3V0OjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVCaW5kR3JvdXBMYXlvdXQo
YmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotUmVm
PEdQVVBpcGVsaW5lTGF5b3V0PiBHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0
IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYpCitSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IEdQ
VURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yJiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVVBpcGVs
aW5lTGF5b3V0OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVUGlwZWxpbmVMYXlvdXQ6OmNyZWF0
ZShtX2JhY2tpbmctPmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotUmVmPEdQVUJpbmRHcm91cD4gR1BVRGV2aWNl
OjpjcmVhdGVCaW5kR3JvdXAoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYpCitSZWY8R1BV
QmluZEdyb3VwPiBHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiBiaW5kR3JvdXBEZXNjcmlwdG9yKQogewotICAgIHJldHVybiBHUFVCaW5kR3Jv
dXA6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVCaW5kR3JvdXA6OmNyZWF0ZShtX2JhY2tpbmct
PmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9yLmNvbnZlcnRUb0JhY2tpbmcoKSkp
OwogfQogCi1SZWY8R1BVU2hhZGVyTW9kdWxlPiBHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVs
ZShjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikKK1JlZjxHUFVTaGFkZXJNb2R1bGU+
IEdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3ImIHNoYWRlck1vZHVsZURlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQVVNoYWRlck1v
ZHVsZTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKG1fYmFj
a2luZy0+Y3JlYXRlU2hhZGVyTW9kdWxlKHNoYWRlck1vZHVsZURlc2NyaXB0b3IuY29udmVydFRv
QmFja2luZygpKSk7CiB9CiAKLVJlZjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6Y3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKQor
UmVmPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUo
Y29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgY29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoKTsKKyAgICBy
ZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVDb21wdXRl
UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsK
IH0KIAotUmVmPEdQVVJlbmRlclBpcGVsaW5lPiBHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVs
aW5lKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpCitSZWY8R1BVUmVuZGVyUGlw
ZWxpbmU+IEdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yJiByZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJu
IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gR1BVUmVuZGVyUGlwZWxp
bmU6OmNyZWF0ZShtX2JhY2tpbmctPmNyZWF0ZVJlbmRlclBpcGVsaW5lKHJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCkpKTsKIH0KIAotdm9pZCBHUFVEZXZpY2U6OmNy
ZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3ImLCBDcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY1Byb21pc2UmJikKK3ZvaWQgR1BVRGV2aWNl
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yJiBjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLCBDcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luY1Byb21pc2UmJiBwcm9taXNlKQogeworICAgIG1fYmFja2luZy0+Y3JlYXRlQ29tcHV0ZVBp
cGVsaW5lQXN5bmMoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lPiYmIGNvbXB1dGVQaXBlbGluZSkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVz
b2x2ZShHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZShXVEZNb3ZlKGNvbXB1dGVQaXBlbGluZSkp
KTsKKyAgICB9KTsKIH0KIAotdm9pZCBHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5
bmMoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgQ3JlYXRlUmVuZGVyUGlwZWxp
bmVBc3luY1Byb21pc2UmJikKK3ZvaWQgR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFz
eW5jKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgcmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLCBDcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jUHJvbWlzZSYmIHByb21pc2UpCiB7Cisg
ICAgbV9iYWNraW5nLT5jcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKHJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5jb252ZXJ0VG9CYWNraW5nKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+JiYgcmVuZGVyUGlwZWxpbmUpIG11dGFi
bGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShX
VEZNb3ZlKHJlbmRlclBpcGVsaW5lKSkpOworICAgIH0pOworfQorCitzdGF0aWMgUEFMOjpXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8R1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYgY29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yKQoreworICAgIGlmICghY29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgcmV0dXJuIGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci0+Y29udmVy
dFRvQmFja2luZygpOwogfQogCi1SZWY8R1BVQ29tbWFuZEVuY29kZXI+IEdQVURldmljZTo6Y3Jl
YXRlQ29tbWFuZEVuY29kZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3I+JikKK1JlZjxHUFVDb21tYW5kRW5jb2Rlcj4gR1BVRGV2aWNlOjpjcmVhdGVDb21t
YW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
cj4mIGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gR1BVQ29tbWFuZEVu
Y29kZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKG1f
YmFja2luZy0+Y3JlYXRlQ29tbWFuZEVuY29kZXIoY29udmVydFRvQmFja2luZyhjb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IpKSk7CiB9CiAKLVJlZjxHUFVSZW5kZXJCdW5kbGVFbmNvZGVyPiBHUFVE
ZXZpY2U6OmNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgR1BVUmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3ImKQorUmVmPEdQVVJlbmRlckJ1bmRsZUVuY29kZXI+IEdQVURldmljZTo6
Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvciYgcmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIEdQ
VVJlbmRlckJ1bmRsZUVuY29kZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVSZW5kZXJCdW5k
bGVFbmNvZGVyOjpjcmVhdGUobV9iYWNraW5nLT5jcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKHJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNvbnZlcnRUb0JhY2tpbmcoKSkpOwogfQogCi1S
ZWY8R1BVUXVlcnlTZXQ+IEdQVURldmljZTo6Y3JlYXRlUXVlcnlTZXQoY29uc3QgR1BVUXVlcnlT
ZXREZXNjcmlwdG9yJikKK1JlZjxHUFVRdWVyeVNldD4gR1BVRGV2aWNlOjpjcmVhdGVRdWVyeVNl
dChjb25zdCBHUFVRdWVyeVNldERlc2NyaXB0b3ImIHF1ZXJ5U2V0RGVzY3JpcHRvcikKIHsKLSAg
ICByZXR1cm4gR1BVUXVlcnlTZXQ6OmNyZWF0ZSgpOworICAgIHJldHVybiBHUFVRdWVyeVNldDo6
Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlUXVlcnlTZXQocXVlcnlTZXREZXNjcmlwdG9yLmNvbnZl
cnRUb0JhY2tpbmcoKSkpOwogfQogCi12b2lkIEdQVURldmljZTo6cHVzaEVycm9yU2NvcGUoR1BV
RXJyb3JGaWx0ZXIpCit2b2lkIEdQVURldmljZTo6cHVzaEVycm9yU2NvcGUoR1BVRXJyb3JGaWx0
ZXIgZXJyb3JGaWx0ZXIpCiB7CisgICAgbV9iYWNraW5nLT5wdXNoRXJyb3JTY29wZShjb252ZXJ0
VG9CYWNraW5nKGVycm9yRmlsdGVyKSk7CiB9CiAKLXZvaWQgR1BVRGV2aWNlOjpwb3BFcnJvclNj
b3BlKEVycm9yU2NvcGVQcm9taXNlJiYpCit2b2lkIEdQVURldmljZTo6cG9wRXJyb3JTY29wZShF
cnJvclNjb3BlUHJvbWlzZSYmIGVycm9yU2NvcGVQcm9taXNlKQogeworICAgIG1fYmFja2luZy0+
cG9wRXJyb3JTY29wZShbcHJvbWlzZSA9IFdURk1vdmUoZXJyb3JTY29wZVByb21pc2UpXSAoc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+JiYgZXJyb3IpIG11dGFibGUgeworICAgICAg
ICBpZiAoIWVycm9yKQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHN0ZDo6bnVsbG9wdCk7
CisgICAgICAgIFdURjo6c3dpdGNoT24oV1RGTW92ZSgqZXJyb3IpLCBbJl0gKFJlZjxQQUw6Oldl
YkdQVTo6T3V0T2ZNZW1vcnlFcnJvcj4mJiBvdXRPZk1lbW9yeUVycm9yKSB7CisgICAgICAgICAg
ICBHUFVFcnJvciBlcnJvciA9IFJlZlB0cjxHUFVPdXRPZk1lbW9yeUVycm9yPihHUFVPdXRPZk1l
bW9yeUVycm9yOjpjcmVhdGUoV1RGTW92ZShvdXRPZk1lbW9yeUVycm9yKSkpOworICAgICAgICAg
ICAgcHJvbWlzZS5yZXNvbHZlKGVycm9yKTsKKyAgICAgICAgfSwgWyZdIChSZWY8UEFMOjpXZWJH
UFU6OlZhbGlkYXRpb25FcnJvcj4mJiB2YWxpZGF0aW9uRXJyb3IpIHsKKyAgICAgICAgICAgIEdQ
VUVycm9yIGVycm9yID0gUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4oR1BVVmFsaWRhdGlvbkVy
cm9yOjpjcmVhdGUoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3IpKSk7CisgICAgICAgICAgICBwcm9t
aXNlLnJlc29sdmUoZXJyb3IpOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaAppbmRleCBjNTA1OWUzNWU4NGY1MDBh
MTgyYjdhZTE4YTE3NTg1OGU2MTdmMmMzLi4wNWQ2YjY0M2U0NjA2NGZlNzI3NjIxMjVlODNhZTE2
ODAwZGQ4ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVE
ZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuaApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw5ICs3NSw5
IEBAIHN0cnVjdCBHUFVUZXh0dXJlRGVzY3JpcHRvcjsKIAogY2xhc3MgR1BVRGV2aWNlIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVRGV2aWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICBzdGF0aWMgUmVmPEdQVURldmlj
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVEZXZpY2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVEZXZpY2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkdQVURldmljZSgp
OwpAQCAtMTEyLDE1ICsxMTMsMTkgQEAgcHVibGljOgogICAgIFJlZjxHUFVRdWVyeVNldD4gY3Jl
YXRlUXVlcnlTZXQoY29uc3QgR1BVUXVlcnlTZXREZXNjcmlwdG9yJik7CiAKICAgICB2b2lkIHB1
c2hFcnJvclNjb3BlKEdQVUVycm9yRmlsdGVyKTsKLSAgICB1c2luZyBFcnJvclNjb3BlUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8R1BVRXJyb3I+
Pj47CisgICAgdXNpbmcgRXJyb3JTY29wZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURM
TnVsbGFibGU8SURMVW5pb248SURMSW50ZXJmYWNlPEdQVU91dE9mTWVtb3J5RXJyb3I+LCBJRExJ
bnRlcmZhY2U8R1BVVmFsaWRhdGlvbkVycm9yPj4+PjsKICAgICB2b2lkIHBvcEVycm9yU2NvcGUo
RXJyb3JTY29wZVByb21pc2UmJik7CiAKICAgICB1c2luZyBMb3N0UHJvbWlzZSA9IERPTVByb21p
c2VQcm94eTxJRExJbnRlcmZhY2U8R1BVRGV2aWNlTG9zdEluZm8+PjsKICAgICBMb3N0UHJvbWlz
ZSYgbG9zdCgpIHsgcmV0dXJuIG1fbG9zdFByb21pc2U7IH0KIAorICAgIFBBTDo6V2ViR1BVOjpE
ZXZpY2UmIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6Oldl
YkdQVTo6RGV2aWNlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHBy
aXZhdGU6Ci0gICAgR1BVRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpCisgICAgR1BVRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiYmIGJhY2tpbmcpCiAg
ICAgICAgIDogQWN0aXZlRE9NT2JqZWN0IHsgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB9CisgICAg
ICAgICwgbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCiAgICAgewogICAgIH0KIApAQCAtMTM1
LDYgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CiAKICAgICBMb3N0UHJvbWlzZSBtX2xvc3RQcm9taXNlOworICAgIFJlZjxQ
QUw6OldlYkdQVTo6RGV2aWNlPiYmIG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaAppbmRleCA0MjRm
OWM2YzlhNTkxMjcyMTU4YjdjMTk2ZTdjNjViOTk2ZTJiNDQ2Li4yZmY1MmI5ZDlmMWJkMWU5NTE2
OWZiODlmMTU1MTliNDE0MDRkZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiR1BVRmVhdHVyZU5hbWUuaCIKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5o
IgogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVEZXZpY2VEZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvS2V5VmFsdWVQYWlyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsNiAr
MzcsMjAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVURldmljZURlc2NyaXB0
b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpE
ZXZpY2VEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIChbdGhpc10gKCkg
eworICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU+IHJlcXVp
cmVkRmVhdHVyZXM7CisgICAgICAgICAgICAgICAgcmVxdWlyZWRGZWF0dXJlcy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPnJlcXVpcmVkRmVhdHVyZXMuc2l6ZSgpKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlcXVpcmVkRmVhdHVyZSA6IHRoaXMtPnJlcXVpcmVkRmVh
dHVyZXMpCisgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkRmVhdHVyZXMudW5jaGVja2VkQXBw
ZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocmVxdWlyZWRGZWF0dXJlKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVpcmVkRmVhdHVyZXM7CisgICAgICAgICAgICB9KSgpLAorICAg
ICAgICB9OworICAgIH0KKwogICAgIFZlY3RvcjxHUFVGZWF0dXJlTmFtZT4gcmVxdWlyZWRGZWF0
dXJlczsKICAgICAvLyBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgdWludDY0X3Q+PiByZXF1
aXJlZExpbWl0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVEZXZpY2VMb3N0SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVEZXZpY2VMb3N0SW5mby5jcHAKaW5kZXggMGQ5Yjg5OWUzMmMzN2JiZGM1NTEzNWQzMjg4MmZm
ZjZlNzA5M2NiZC4uMjhiNjBlMGY1YzI5MGRjNTJmNzY4NTc3MzhkMGM0MTE3M2RmOTY1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZv
LmNwcApAQCAtMjgsMTkgKzI4LDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR1BVRGV2
aWNlTG9zdEluZm86OkdQVURldmljZUxvc3RJbmZvKFJlYXNvbiYmLCBTdHJpbmcmJiBtZXNzYWdl
KQotewotICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKLX0KLQogYXV0byBHUFVEZXZpY2VMb3N0
SW5mbzo6cmVhc29uKCkgY29uc3QgLT4gUmVhc29uCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYmFja2luZy0+cmVhc29uKCk7CisgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3dpdGNoICgqcmVzdWx0KSB7
CisgICAgY2FzZSBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbjo6RGVzdHJveWVkOgorICAg
ICAgICByZXR1cm4gR1BVRGV2aWNlTG9zdFJlYXNvbjo6RGVzdHJveWVkOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1TdHJpbmcgR1BVRGV2aWNlTG9zdElu
Zm86Om1lc3NhZ2UoKSBjb25zdAorY29uc3QgU3RyaW5nJiBHUFVEZXZpY2VMb3N0SW5mbzo6bWVz
c2FnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0
dXJuIG1fYmFja2luZy0+bWVzc2FnZSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uaAppbmRleCA5M2VjNzk0N2EwYjRiYmI4
OWFmZTIxNTM5MWQwZDgzMmNmNTk4MTM5Li45NTE3ZDE5YTY3MzZkZjdlYjJiMmM5NmZiOWVhYmMy
NzVlZjhjNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVE
ZXZpY2VMb3N0SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURl
dmljZUxvc3RJbmZvLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkdQVURldmljZUxv
c3RSZWFzb24uaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVURldmljZUxvc3RJbmZvLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC0zNywxNiArMzgsMjQgQEAgY2xhc3MgR1BVRGV2aWNlTG9zdEluZm8gOiBwdWJsaWMgUmVm
Q291bnRlZDxHUFVEZXZpY2VMb3N0SW5mbz4gewogcHVibGljOgogICAgIHVzaW5nIFJlYXNvbiA9
IHN0ZDo6b3B0aW9uYWw8R1BVRGV2aWNlTG9zdFJlYXNvbj47CiAKLSAgICBzdGF0aWMgUmVmPEdQ
VURldmljZUxvc3RJbmZvPiBjcmVhdGUoUmVhc29uJiYgcmVhc29uLCBTdHJpbmcmJiBtZXNzYWdl
KQorICAgIHN0YXRpYyBSZWY8R1BVRGV2aWNlTG9zdEluZm8+IGNyZWF0ZShSZWY8UEFMOjpXZWJH
UFU6OkRldmljZUxvc3RJbmZvPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHUFVEZXZpY2VMb3N0SW5mbyhXVEZNb3ZlKHJlYXNvbiksIFdURk1vdmUobWVz
c2FnZSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVRGV2aWNlTG9zdEluZm8o
V1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFJlYXNvbiByZWFzb24oKSBjb25zdDsK
LSAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgp
IGNvbnN0OworCisgICAgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RJbmZvJiBiYWNraW5nKCkgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZUxvc3RJbmZv
JiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAg
R1BVRGV2aWNlTG9zdEluZm8oUmVhc29uJiYsIFN0cmluZyYmIG1lc3NhZ2UpOworICAgIEdQVURl
dmljZUxvc3RJbmZvKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlTG9zdEluZm8+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2VMb3N0SW5mbz4gbV9iYWNraW5nOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdFJl
YXNvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdFJlYXNv
bi5oCmluZGV4IGJkOGM4NmY5NWMwMDVkYzkxMjkzNGI1YzU4NDUwOTg5NTViMTE5OWIuLmZiZWE4
Njk1OWE0OGRjMDNjZjJmMzBhNGJkN2NiNjQ5M2I2NjA2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RSZWFzb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0UmVhc29uLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zMyw0ICszNCwxMyBAQCBlbnVtIGNsYXNzIEdQVURldmljZUxvc3RSZWFz
b24gOiB1aW50OF90IHsKICAgICBEZXN0cm95ZWQKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
RGV2aWNlTG9zdFJlYXNvbiBjb252ZXJ0VG9CYWNraW5nKEdQVURldmljZUxvc3RSZWFzb24gZGV2
aWNlTG9zdFJlYXNvbikKK3sKKyAgICBzd2l0Y2ggKGRldmljZUxvc3RSZWFzb24pIHsKKyAgICBj
YXNlIEdQVURldmljZUxvc3RSZWFzb246OkRlc3Ryb3llZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpEZXZpY2VMb3N0UmVhc29uOjpEZXN0cm95ZWQ7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVFcnJvckZpbHRlci5oCmluZGV4IGUwNWJjNTUyMWVkN2I1MmMzNGFlNWZiNDYy
OWJlNmMwZTIwNzJlZjUuLjYzZjg4ZGE1NjY4NTE5NDFkZGI3N2RhMjcwZjdiZGZhYjAyNWNjOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUVycm9yRmlsdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXJyb3JGaWx0ZXIuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3JGaWx0ZXIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNCw0ICszNSwxNSBAQCBlbnVtIGNsYXNzIEdQVUVycm9yRmls
dGVyIDogdWludDhfdCB7CiAgICAgVmFsaWRhdGlvbgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BV
OjpFcnJvckZpbHRlciBjb252ZXJ0VG9CYWNraW5nKEdQVUVycm9yRmlsdGVyIGVycm9yRmlsdGVy
KQoreworICAgIHN3aXRjaCAoZXJyb3JGaWx0ZXIpIHsKKyAgICBjYXNlIEdQVUVycm9yRmlsdGVy
OjpPdXRPZk1lbW9yeToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcjo6
T3V0T2ZNZW1vcnk7CisgICAgY2FzZSBHUFVFcnJvckZpbHRlcjo6VmFsaWRhdGlvbjoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcjo6VmFsaWRhdGlvbjsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZW50M0REaWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlbnQzRERpY3QuaAppbmRleCAzNzA5ZmU3YzkxN2Y3
OGZiNDQ2ZTVkODc3OGYxNmEwZGJkOWZmYTFhLi45NmY0MjA2ODY3YWIzYzdhMjQ2ZmY0OWMwYzJm
MGMzYTgxMmM2ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVFeHRlbnQzRERpY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVF
eHRlbnQzRERpY3QuaApAQCAtMjYsMTIgKzI2LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUV4dGVudDNELmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUV4dGVudDNERGljdCB7Cisg
ICAgUEFMOjpXZWJHUFU6OkV4dGVudDNERGljdCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB3aWR0aCwKKyAgICAgICAgICAgIGhl
aWdodCwKKyAgICAgICAgICAgIGRlcHRoT3JBcnJheUxheWVycywKKyAgICAgICAgfTsKKyAgICB9
CisKICAgICBHUFVJbnRlZ2VyQ29vcmRpbmF0ZSB3aWR0aDsKICAgICBHUFVJbnRlZ2VyQ29vcmRp
bmF0ZSBoZWlnaHQ7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgZGVwdGhPckFycmF5TGF5ZXJz
OwpAQCAtMzksNCArNDksMTMgQEAgc3RydWN0IEdQVUV4dGVudDNERGljdCB7CiAKIHVzaW5nIEdQ
VUV4dGVudDNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxHUFVJbnRlZ2VyQ29vcmRpbmF0ZT4sIEdQ
VUV4dGVudDNERGljdD47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6RXh0ZW50M0QgY29udmVydFRv
QmFja2luZyhjb25zdCBHUFVFeHRlbnQzRCYgZXh0ZW50M0QpCit7CisgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24oZXh0ZW50M0QsIFtdIChjb25zdCBWZWN0b3I8R1BVSW50ZWdlckNvb3JkaW5hdGU+
JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpFeHRlbnQzRCB7CisgICAgICAgIHJldHVybiB2ZWN0
b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVUV4dGVudDNERGljdCYgZXh0ZW50M0QpIC0+IFBBTDo6
V2ViR1BVOjpFeHRlbnQzRCB7CisgICAgICAgIHJldHVybiBleHRlbnQzRC5jb252ZXJ0VG9CYWNr
aW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuY3BwCmluZGV4IDMzNmIyN2JlZmUyZTg2NjlmOTVk
Yzg5YjQ3MGQwMDQ3NDFlYmQ0MzUuLjdiMDliNGI1MDVmNmEwZmQ2M2U1NzY2N2Q0N2E3NWEyZmM2
ZDk2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVy
bmFsVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0
ZXJuYWxUZXh0dXJlLmNwcApAQCAtMzAsMTEgKzMwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogU3RyaW5nIEdQVUV4dGVybmFsVGV4dHVyZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVy
biBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9
CiAKLXZvaWQgR1BVRXh0ZXJuYWxUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BV
RXh0ZXJuYWxUZXh0dXJlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tp
bmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmUuaAppbmRleCAxMGQzMTUzYjZm
NzQ1ZjZmZjJmM2ExYmIyMmNlMDYzM2Q1NmJlZjE5Li44ZmMyMmIwYmQyMzZjMjg5ZTFlMjljMDA2
ZTRiNWZhMWQxYzhiMzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVFeHRlcm5hbFRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVFeHRlcm5hbFRleHR1cmUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zMywxNiArMzQsMjQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHUFVFeHRlcm5hbFRleHR1cmUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVFeHRlcm5hbFRleHR1cmU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVUV4dGVy
bmFsVGV4dHVyZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVUV4dGVybmFsVGV4dHVyZT4g
Y3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPiYmIGJhY2tpbmcpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVFeHRlcm5hbFRleHR1cmUoKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUV4dGVybmFsVGV4dHVyZShXVEZNb3ZlKGJh
Y2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRMYWJlbChTdHJpbmcmJik7CiAKKyAgICBQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OkV4
dGVybmFsVGV4dHVyZSYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBw
cml2YXRlOgotICAgIEdQVUV4dGVybmFsVGV4dHVyZSgpID0gZGVmYXVsdDsKKyAgICBHUFVFeHRl
cm5hbFRleHR1cmUoUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAppbmRleCAzY2ZmMjVjNTVlODE2ODc2MDljMmVm
MzVhNWFhZWIzYmVmMTA4MWIzLi4yNWJjYzBmNjk5N2NlM2EyYjBjM2NkNGRiMTU4MmYyZjFjNTM2
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5h
bFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0yNSw5ICsyNSwxNSBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
cnVjdCBHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvci5oCmluZGV4IDY5MzcwMGNlNjFiYjM2Y2NmNGExYjRmY2FkOWNkMjU5ZWFmYzU2OGQuLmY5
ZjRhZjIxZWM3NTJmMzZmY2M3MjFkMWU5ZTdlYTUwZjZlZDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVFeHRlcm5hbFRleHR1cmVEZXNj
cmlwdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgogI2luY2x1ZGUgIkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAi
SFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNyArMzYsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIAogc3RydWN0IEdQVUV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewotICAgIFJlZlB0cjxI
VE1MVmlkZW9FbGVtZW50PiBzb3VyY2U7CisgICAgUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSB0aGUgdmlkZW8gZWxlbWVudC4KKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcoY29sb3JTcGFjZSksCisgICAgICAgIH07CisgICAgfQorCisgICAgSFRNTFZpZGVvRWxlbWVu
dCogc291cmNlOwogICAgIEdQVVByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGZWF0dXJlTmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRmVhdHVyZU5hbWUuaAppbmRl
eCBkZWU1ZjFkYWI2NTkxODU0ZGE3Y2Y3OTc3YmNkNzBiZTkzN2I5ZmFlLi5lY2MyMmYzOTUyOWJi
OWYyZDU5NWY1YTg2YWU4Y2M5NWM4NDYyZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVGZWF0dXJlTmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUZlYXR1cmVOYW1lLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUZlYXR1cmVOYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNCArNDEs
MjcgQEAgZW51bSBjbGFzcyBHUFVGZWF0dXJlTmFtZSA6IHVpbnQ4X3QgewogICAgIFRpbWVzdGFt
cFF1ZXJ5CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lIGNvbnZlcnRUb0Jh
Y2tpbmcoR1BVRmVhdHVyZU5hbWUgZmVhdHVyZU5hbWUpCit7CisgICAgc3dpdGNoIChmZWF0dXJl
TmFtZSkgeworICAgIGNhc2UgR1BVRmVhdHVyZU5hbWU6OkRlcHRoQ2xhbXBpbmc6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkRlcHRoQ2xhbXBpbmc7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6RGVwdGgyNHVub3JtU3RlbmNpbDg6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OworICAgIGNhc2Ug
R1BVRmVhdHVyZU5hbWU6OkRlcHRoMzJmbG9hdFN0ZW5jaWw4OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OkZlYXR1cmVOYW1lOjpEZXB0aDMyZmxvYXRTdGVuY2lsODsKKyAgICBjYXNlIEdQ
VUZlYXR1cmVOYW1lOjpQaXBlbGluZVN0YXRpc3RpY3NRdWVyeToKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6UGlwZWxpbmVTdGF0aXN0aWNzUXVlcnk7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQmM6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkJjOworICAgIGNhc2Ug
R1BVRmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkV0YzI6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6RmVhdHVyZU5hbWU6OlRleHR1cmVDb21wcmVzc2lvbkV0YzI7CisgICAgY2Fz
ZSBHUFVGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQXN0YzoKKyAgICAgICAgcmV0dXJu
IFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGV4dHVyZUNvbXByZXNzaW9uQXN0YzsKKyAgICBj
YXNlIEdQVUZlYXR1cmVOYW1lOjpUaW1lc3RhbXBRdWVyeToKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpGZWF0dXJlTmFtZTo6VGltZXN0YW1wUXVlcnk7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUZpbHRlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUZpbHRlck1vZGUuaAppbmRleCBhNDljMWZiOTNlMmE0NWJkMzAwNzM3YmUxNWEz
ZjVjYmE3NmQ2NzUyLi41YmM0YzE5OGFmMTkwODA3OTAzNzkyNDI2M2QyYjY4YWFkYmZmZGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGaWx0ZXJNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRmlsdGVyTW9kZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGaWx0ZXJNb2RlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVGaWx0ZXJNb2RlIDog
dWludDhfdCB7CiAgICAgTGluZWFyCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OkZpbHRlck1v
ZGUgY29udmVydFRvQmFja2luZyhHUFVGaWx0ZXJNb2RlIGZpbHRlck1vZGUpCit7CisgICAgc3dp
dGNoIChmaWx0ZXJNb2RlKSB7CisgICAgY2FzZSBHUFVGaWx0ZXJNb2RlOjpOZWFyZXN0OgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OkZpbHRlck1vZGU6Ok5lYXJlc3Q7CisgICAgY2FzZSBH
UFVGaWx0ZXJNb2RlOjpMaW5lYXI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6RmlsdGVy
TW9kZTo6TGluZWFyOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFn
bWVudFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0
YXRlLmgKaW5kZXggNDRjZmFlYTVhYTdiNDUxZDFmZGZhY2QwYmY4MDI1NjI4MzFlYmI4ZC4uOWIy
MGUyZWY4OGI1MDVjNWU0Mjg4N2RlODljODAzMGFiMjIzNTlkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21lbnRTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUZyYWdtZW50U3RhdGUuaApAQCAtMjcsMTEgKzI3LDM3
IEBACiAKICNpbmNsdWRlICJHUFVDb2xvclRhcmdldFN0YXRlLmgiCiAjaW5jbHVkZSAiR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZy
YWdtZW50U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEdQVUZyYWdtZW50U3RhdGUgOiBwdWJsaWMgR1BVUHJvZ3JhbW1hYmxl
U3RhZ2UgeworICAgIFBBTDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1vZHVsZSk7CisgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCisgICAg
ICAgICAgICAgICAgZW50cnlQb2ludCwKKyAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BV
OjpQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0YW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkp
OworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogdGhpcy0+
Y29uc3RhbnRzKQorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFw
cGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50czsKKyAgICAgICAgICAgICAgICB9KSgp
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAg
ICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKKyAgICAg
ICAgICAgICAgICB0YXJnZXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+dGFyZ2V0cy5z
aXplKCkpOworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogdGhpcy0+dGFyZ2V0
cykKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQodGFyZ2V0LmNv
bnZlcnRUb0JhY2tpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldHM7CisgICAg
ICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0KKwogICAgIFZlY3RvcjxHUFVDb2xvclRh
cmdldFN0YXRlPiB0YXJnZXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVRnJvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVGcm9udEZhY2UuaAppbmRleCBiMTkyYzQ2MzVhNGJlODRmNWQ4MWUyMzQzOGFiMmU3NTdk
YWQwYmRmLi5iMjI1MDAzZmM5ZjkzMjE3MDMwMDlkMWQ0NzQxZTQ0NWE4ZmFjNGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcm9udEZhY2UuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVGcm9udEZhY2UgOiB1aW50OF90IHsK
ICAgICBDdwogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpGcm9udEZhY2UgY29udmVydFRvQmFj
a2luZyhHUFVGcm9udEZhY2UgZnJvbnRGYWNlKQoreworICAgIHN3aXRjaCAoZnJvbnRGYWNlKSB7
CisgICAgY2FzZSBHUFVGcm9udEZhY2U6OkNjdzoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpGcm9udEZhY2U6OkNDVzsKKyAgICBjYXNlIEdQVUZyb250RmFjZTo6Q3c6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6RnJvbnRGYWNlOjpDVzsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVJbWFnZUNvcHlCdWZmZXIuaAppbmRleCAxNTNjMmRiYjE2NzRmN2Y5Y2ZhOTEw
MzYzZTEyZDI2OWY3MDNiMjllLi4yNzFhNTBmZTFkZTQ4YzVlYmY1YmQxZGFkMjJjNTUwYTUzYTM4
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNv
cHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNv
cHlCdWZmZXIuaApAQCAtMjcsMTIgKzI3LDI2IEBACiAKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIK
ICNpbmNsdWRlICJHUFVJbWFnZURhdGFMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVSW1hZ2VDb3B5QnVmZmVyIDogcHVi
bGljIEdQVUltYWdlRGF0YUxheW91dCB7Ci0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gYnVmZmVyOwor
ICAgIFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXIgY29udmVydFRvQmFja2luZygpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgYnl0ZXNQ
ZXJSb3csCisgICAgICAgICAgICAgICAgcm93c1BlckltYWdlLAorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIGJ1ZmZlci0+YmFja2luZygpCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BV
QnVmZmVyKiBidWZmZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKaW5kZXggM2I3MTQ2OWY2
OTA2NWE0N2Q2NjYyZWVkMGM3YmY3YjM3MDk3MmJiMi4uNGNjY2FiN2YwMDU2NmEzMTM2YTI1Nzg5
MGI4OTFiOTdkYzM1YTg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMjksMTIgKzI5LDIxIEBA
CiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlIHsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZSBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYW52YXMgZWxlbWVudC4KKyAgICAgICAg
ICAgIG9yaWdpbiA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpv
cmlnaW4pIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgIH07CisgICAgfQorCiAgICAgc3RkOjp2
YXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+IHNv
dXJjZTsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVU9yaWdpbjJEPiBvcmlnaW47CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCmlu
ZGV4IGQ5ZGQ3M2MyZjFmNDEwYTYwMjhmMWIzNTYwYWVkMWEyZThhZGIzNGUuLjc5MzI3ZWNkODVk
M2VlMzAwNDEyZTNiYjgwODA2NWY5NTEwMzdkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZUNvcHlUZXh0dXJlLmgKQEAgLTMwLDEyICszMCwyNCBA
QAogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlQXNwZWN0Lmgi
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlUZXh0dXJlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVJbWFnZUNvcHlUZXh0dXJlIHsKLSAgICBSZWZQdHI8
R1BVVGV4dHVyZT4gdGV4dHVyZTsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZSBj
b252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCh0ZXh0dXJlKTsK
KyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRleHR1cmUtPmJhY2tpbmcoKSwKKyAgICAg
ICAgICAgIG1pcExldmVsLAorICAgICAgICAgICAgb3JpZ2luID8gc3RkOjpvcHRpb25hbCB7IFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKm9yaWdpbikgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAg
ICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYXNwZWN0KSwKKyAgICAgICAgfTsKKyAg
ICB9CisKKyAgICBHUFVUZXh0dXJlKiB0ZXh0dXJlOwogICAgIEdQVUludGVnZXJDb29yZGluYXRl
IG1pcExldmVsOwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVT3JpZ2luM0Q+IG9yaWdpbjsKICAgICBH
UFVUZXh0dXJlQXNwZWN0IGFzcGVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaAppbmRleCAwZThmYmU4NzRi
M2ZjMTY2MjQwMjQxZGJmYmIxYWYyOWM4M2YyMGE4Li5lMTVmOGRmYWFhNzkwYzJkNjkzZTBhMTll
NmNlMzkzYjQzMTZjOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCkBAIC0yNywxMCArMjcsMjYgQEAK
IAogI2luY2x1ZGUgIkdQVUltYWdlQ29weVRleHR1cmUuaCIKICNpbmNsdWRlICJHUFVQcmVkZWZp
bmVkQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBH
UFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEdQVUltYWdlQ29weVRleHR1cmUgewor
ICAgIFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHRleHR1cmUpOworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHR1cmUtPmJhY2tpbmcoKSwKKyAg
ICAgICAgICAgICAgICBtaXBMZXZlbCwKKyAgICAgICAgICAgICAgICBvcmlnaW4gPyBzdGQ6Om9w
dGlvbmFsIHsgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZygqb3JpZ2luKSB9IDogc3RkOjpudWxs
b3B0LAorICAgICAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYXNwZWN0KSwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGNv
bG9yU3BhY2UpLAorICAgICAgICAgICAgcHJlbXVsdGlwbGllZEFscGhhLAorICAgICAgICB9Owor
ICAgIH0KKwogICAgIEdQVVByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2U7CiAgICAgYm9v
bCBwcmVtdWx0aXBsaWVkQWxwaGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVSW1hZ2VEYXRhTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVJbWFnZURhdGFMYXlvdXQuaAppbmRleCA5ZjVkZGIyMWYxNDkyZjI3YTcwOGU1
MDRhNWVkMjVhMDU1YzFlZjM4Li41ZDFiMWQ5ZWY4NDMzNDVlMGM1MjYyNmZlNmI3YmFmN2I2ZDRm
YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZURh
dGFMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbWFnZURh
dGFMYXlvdXQuaApAQCAtMjcsMTAgKzI3LDIwIEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5
cGVzLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1
Y3QgR1BVSW1hZ2VEYXRhTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgIGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgcm93
c1BlckltYWdlLAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBvZmZzZXQ7CiAg
ICAgc3RkOjpvcHRpb25hbDxHUFVTaXplMzI+IGJ5dGVzUGVyUm93OwogICAgIHN0ZDo6b3B0aW9u
YWw8R1BVU2l6ZTMyPiByb3dzUGVySW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVJbmRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVSW5kZXhGb3JtYXQuaAppbmRleCBiNjBhNTIxNzMwMjI1Mjc4ZjI2NzIyZDFkZjY0
ZmQ3YjI5MWZjZTQxLi5hNmMyNDNhM2Y0MmZjOWY3MGZhZjE5MTVmYjlmZjg1YjA4ZGViOTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVJbmRleEZvcm1hdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUluZGV4Rm9ybWF0LmgKQEAg
LTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUluZGV4Rm9ybWF0Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVJbmRleEZvcm1h
dCA6IHVpbnQ4X3QgewogICAgIFVpbnQzMgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpJbmRl
eEZvcm1hdCBjb252ZXJ0VG9CYWNraW5nKEdQVUluZGV4Rm9ybWF0IGluZGV4Rm9ybWF0KQorewor
ICAgIHN3aXRjaCAoaW5kZXhGb3JtYXQpIHsKKyAgICBjYXNlIEdQVUluZGV4Rm9ybWF0OjpVaW50
MTY6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6SW5kZXhGb3JtYXQ6OlVpbnQxNjsKKyAg
ICBjYXNlIEdQVUluZGV4Rm9ybWF0OjpVaW50MzI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6SW5kZXhGb3JtYXQ6OlVpbnQzMjsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVTG9hZE9wLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVMb2FkT3Au
aAppbmRleCA4ODQ4MzBhYTlkNzY2NjI4ZjY1NWVkNzFhZTk0OTIwYjI5OTQxZjlhLi5kNjVjODhj
YTczOGRhNTg3NzM3OTkwN2MzNWI4MjhiY2Q3NjcxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVMb2FkT3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVMb2FkT3AuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
TG9hZE9wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMsNCArMzQsMTMgQEAgZW51
bSBjbGFzcyBHUFVMb2FkT3AgOiB1aW50OF90IHsKICAgICBMb2FkCiB9OwogCitpbmxpbmUgUEFM
OjpXZWJHUFU6OkxvYWRPcCBjb252ZXJ0VG9CYWNraW5nKEdQVUxvYWRPcCBsb2FkT3ApCit7Cisg
ICAgc3dpdGNoIChsb2FkT3ApIHsKKyAgICBjYXNlIEdQVUxvYWRPcDo6TG9hZDoKKyAgICAgICAg
cmV0dXJuIFBBTDo6V2ViR1BVOjpMb2FkT3A6OkxvYWQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVU1hcE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVU1hcE1vZGUuaAppbmRleCBhM2U3ZGE3OGI1MzExMzFiZWVhYjUxZTVlNjlmMjAxNjk1YjI4
ZTQ0Li41ODMxNWYzMzhhMTYwMmI4ZWZhNzZiYTgxZWRmYjY0MTY3OTU0OWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVNYXBNb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVTWFwTW9kZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU1hcE1vZGUuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw0ICs0MCwxNCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFVGbGFnc0NvbnN0YW50IFdSSVRFID0gMHgw
MDAyOwogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgY29udmVydE1hcE1v
ZGVGbGFnc1RvQmFja2luZyhHUFVNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzKQoreworICAgIFBB
TDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MgcmVzdWx0ID0gMDsKKyAgICBpZiAobWFwTW9kZUZsYWdz
ICYgR1BVTWFwTW9kZTo6UkVBRCkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpNYXBN
b2RlOjpSRUFEOworICAgIGlmIChtYXBNb2RlRmxhZ3MgJiBHUFVNYXBNb2RlOjpXUklURSkKKyAg
ICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpNYXBNb2RlOjpXUklURTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVNdWx0aXNhbXBsZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVNdWx0aXNhbXBsZVN0YXRlLmgKaW5kZXggOTlhNWUwZjU1YTU3YTE2MzZlZjZhMzBkMTlkNmM3
NTFmMGE2NTYyMi4uMWE2ZmU2ZDZjN2NjMWI0ZWM2ZWI0NWM4YTBmZjM5ODcxZjJiYWU3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVTXVsdGlzYW1wbGVTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU11bHRpc2FtcGxlU3Rh
dGUuaApAQCAtMjYsMTAgKzI2LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdQVUlu
dGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU11bHRp
c2FtcGxlU3RhdGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVTXVsdGlz
YW1wbGVTdGF0ZSB7CisgICAgUEFMOjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGUgY29udmVydFRv
QmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgY291
bnQsCisgICAgICAgICAgICBtYXNrLAorICAgICAgICAgICAgYWxwaGFUb0NvdmVyYWdlRW5hYmxl
ZCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBHUFVTaXplMzIgY291bnQ7CiAgICAgR1BVU2Ft
cGxlTWFzayBtYXNrOwogICAgIGJvb2wgYWxwaGFUb0NvdmVyYWdlRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oCmluZGV4IDQwMDRjZTU4MzhlYjdlMGFhMjc5NTdiZTM0MGM4MzdhMWRlN2U1OWQuLjUwMzQ4
MTQyOTQzNjIzN2ZlY2U5MmZmYTExMjVmNTRmZWFhODNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAt
MjUsMTEgKzI1LDE3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgbGFiZWwgfTsK
KyAgICB9CisKICAgICBTdHJpbmcgbGFiZWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVPcmlnaW4yRERpY3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjJERGljdC5oCmluZGV4IGQ2ZWY1NDc5NDY2M2I5MDJmMWE2
MzE0NWZhZDU2MDBjMTc4YjI1OWMuLmUyOGQzOTQxYmM0ZjYyOTViODBhMDZkMDYyMWQ0YzI0MDY4
MTQzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdp
bjJERGljdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjJE
RGljdC5oCkBAIC0yNiwxNiArMjYsMzQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BV
SW50ZWdyYWxUeXBlcy5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3Jp
Z2luMkQuaD4KICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVT3JpZ2luMkREaWN0IHsKKyAgICBQQUw6
OldlYkdQVTo6T3JpZ2luMkREaWN0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHgsCisgICAgICAgICAgICB5LAorICAgICAgICB9
OworICAgIH0KKwogICAgIEdQVUludGVnZXJDb29yZGluYXRlIHg7CiAgICAgR1BVSW50ZWdlckNv
b3JkaW5hdGUgeTsKIH07CiAKIHVzaW5nIEdQVU9yaWdpbjJEID0gc3RkOjp2YXJpYW50PFZlY3Rv
cjxHUFVJbnRlZ2VyQ29vcmRpbmF0ZT4sIEdQVU9yaWdpbjJERGljdD47CiAKK2lubGluZSBQQUw6
OldlYkdQVTo6T3JpZ2luMkQgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVPcmlnaW4yRCYgb3Jp
Z2luMkQpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24ob3JpZ2luMkQsIFtdIChjb25zdCBW
ZWN0b3I8R1BVSW50ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpPcmln
aW4yRCB7CisgICAgICAgIHJldHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVU9yaWdp
bjJERGljdCYgb3JpZ2luMkQpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4yRCB7CisgICAgICAgIHJl
dHVybiBvcmlnaW4yRC5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU9yaWdpbjNERGljdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKaW5kZXggNjU3
NzgyZGVjNzk3OGQyYTMyYmFiZDFhY2ZlNDMxMWE1MTgyN2IyYS4uYjU1M2U2MjYzZTVmOTRhODRi
NjJjNTQ0NmMwNzRhODY2MTBmZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVT3JpZ2luM0REaWN0LmgKQEAgLTI2LDEyICsyNiwyMiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVPcmlnaW4z
RERpY3QgeworICAgIFBBTDo6V2ViR1BVOjpPcmlnaW4zRERpY3QgY29udmVydFRvQmFja2luZygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeCwKKyAgICAgICAg
ICAgIHksCisgICAgICAgICAgICB6LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUludGVn
ZXJDb29yZGluYXRlIHg7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgeTsKICAgICBHUFVJbnRl
Z2VyQ29vcmRpbmF0ZSB6OwpAQCAtMzksNCArNDksMTMgQEAgc3RydWN0IEdQVU9yaWdpbjNERGlj
dCB7CiAKIHVzaW5nIEdQVU9yaWdpbjNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZT4sIEdQVU9yaWdpbjNERGljdD47CiAKK2lubGluZSBQQUw6OldlYkdQVTo6T3Jp
Z2luM0QgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVPcmlnaW4zRCYgb3JpZ2luM0QpCit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24ob3JpZ2luM0QsIFtdIChjb25zdCBWZWN0b3I8R1BVSW50
ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4zRCB7CisgICAg
ICAgIHJldHVybiB2ZWN0b3I7CisgICAgfSwgW10gKGNvbnN0IEdQVU9yaWdpbjNERGljdCYgb3Jp
Z2luM0QpIC0+IFBBTDo6V2ViR1BVOjpPcmlnaW4zRCB7CisgICAgICAgIHJldHVybiBvcmlnaW4z
RC5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU91dE9mTWVtb3J5RXJyb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVU91dE9mTWVtb3J5RXJyb3IuaAppbmRleCAxM2M1ZDQw
YjczYzkwOGViN2Y5MDFlNTdmYzM2NDJmNTAxYzkxMTBlLi42MTVlYjE2NjEzYjZhYzljNWE0Zjk4
YmJiYzdkM2NiMWU3OTA0OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVPdXRPZk1lbW9yeUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVT3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVy
cm9yLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKQEAgLTM3LDggKzM4LDI1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR1BVT3V0T2ZNZW1vcnlFcnJvcigpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEdQVU91
dE9mTWVtb3J5RXJyb3I+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I+
JiYgYmFja2luZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVU91dE9m
TWVtb3J5RXJyb3IoV1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKworICAgIFBBTDo6V2ViR1BV
OjpPdXRPZk1lbW9yeUVycm9yKiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nLmdldCgpOyB9
CisgICAgY29uc3QgUEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3IqIGJhY2tpbmcoKSBjb25z
dCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVPdXRPZk1l
bW9yeUVycm9yKCkgPSBkZWZhdWx0OworICAgIEdQVU91dE9mTWVtb3J5RXJyb3IoKQorICAgIHsK
KyAgICB9CisKKyAgICBHUFVPdXRPZk1lbW9yeUVycm9yKFJlZjxQQUw6OldlYkdQVTo6T3V0T2ZN
ZW1vcnlFcnJvcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tp
bmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5
RXJyb3I+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCA1YzNiMTg3
MTVjNWQyMGI5YjJjODBiN2YyNTRjNTRhNjg4M2YxNjQzLi4yYWRhNzNlOTdmMzM5NjI1ZjZhYjA5
YmQyNmVmNThjYzg4Yzk1Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywxMSArMjcsMjAg
QEAKIAogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiR1BV
UGlwZWxpbmVMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
R1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZSB7Ci0gICAgUmVmUHRyPEdQVVBpcGVsaW5lTGF5b3V0PiBsYXlvdXQ7CisgICAgUEFMOjpXZWJH
UFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2UgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAg
bGF5b3V0ID8gJmxheW91dC0+YmFja2luZygpIDogbnVsbHB0ciwKKyAgICAgICAgfTsKKyAgICB9
CisKKyAgICBHUFVQaXBlbGluZUxheW91dCogbGF5b3V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCmluZGV4IGE3
OTcwMWNjZTQ4NzE3MDUxMmE4ZjQxNzMyMjU0ODEyM2Q2NzI3MWMuLmM3OTM2NGMzODM2OTNiZmY2
ZDgyMzYxYjU2MWM4Njg1NTlkYzI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dC5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVQaXBlbGluZUxheW91dDo6bGFiZWwoKSBjb25z
dAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tp
bmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVUGlwZWxpbmVMYXlvdXQ6OnNldExhYmVsKFN0cmlu
ZyYmKQordm9pZCBHUFVQaXBlbGluZUxheW91dDo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7
CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dC5oCmluZGV4
IDU0MWEzZmRiZWU5OTcxNDdjNWZmZDMwNjA4YTM1NmRjNTAyNDk2MWQuLmFlZTI4NmM2NWI2ZDM3
YmI4MzI1MWY0OTJkNzljZDkyMzc0ZWY2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVM
YXlvdXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDE2ICszNCwyNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVBpcGVsaW5lTGF5b3V0IDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVUGlwZWxpbmVMYXlvdXQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQ
VVBpcGVsaW5lTGF5b3V0PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUGlwZWxpbmVMYXlv
dXQ+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0PiYmIGJhY2tpbmcpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVQaXBlbGluZUxheW91dCgpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUGlwZWxpbmVMYXlvdXQoV1RGTW92ZShi
YWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0JiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lTGF5b3V0JiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHBy
aXZhdGU6Ci0gICAgR1BVUGlwZWxpbmVMYXlvdXQoKSA9IGRlZmF1bHQ7CisgICAgR1BVUGlwZWxp
bmVMYXlvdXQoUmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4mJiBiYWNraW5nKQorICAg
ICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0PiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oCmluZGV4IDMzMzkyYzBmMTUxMWY1ZWFjMjgwOWVkNTc1YWU1NzQ4NjQ5
NWJhZWMuLmEyNGI5N2Q3Mzk1MDZjMWNiOTNiNGJhMDg0YWVlZGM5ZDNmODFjOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oCkBAIC0yNywxMSArMjcsMjggQEAKIAogI2luY2x1ZGUgIkdQVUJpbmRH
cm91cExheW91dC5oIgogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlw
dG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBjb252
ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICB7IGxhYmVsIH0sCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICBW
ZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0
Pj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgICAgICAgICBiaW5kR3JvdXBMYXlvdXRzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+YmluZEdyb3VwTGF5b3V0cy5zaXplKCkpOworICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYmluZEdyb3VwTGF5b3V0IDogdGhpcy0+Ymlu
ZEdyb3VwTGF5b3V0cykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYmluZEdyb3VwTGF5
b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgYmluZEdyb3VwTGF5b3V0cy51bmNoZWNrZWRBcHBl
bmQoYmluZEdyb3VwTGF5b3V0LT5iYWNraW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gYmluZEdyb3VwTGF5b3V0czsKKyAgICAgICAgICAgIH0pKCksCisg
ICAgICAgIH07CisgICAgfQorCiAgICAgVmVjdG9yPFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+
PiBiaW5kR3JvdXBMYXlvdXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaAppbmRleCA4M2ZkYWVlNTY0
MjQ1MjU1M2Y3MmIwNWEzYjcxOTlmYzU3ZTJiZDk2Li4xNWI0YjllNTdiMDlkNmZjMmUwZWU4MTZi
NzEwYTYxMTQwN2QxNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzcsNCArMzgsMjEgQEAgZW51bSBjbGFzcyBHUFVQaXBlbGluZVN0YXRpc3RpY05h
bWUgOiB1aW50OF90IHsKICAgICBDb21wdXRlU2hhZGVySW52b2NhdGlvbnMKIH07CiAKK2lubGlu
ZSBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lIGNvbnZlcnRUb0JhY2tpbmcoR1BV
UGlwZWxpbmVTdGF0aXN0aWNOYW1lIHBpcGVsaW5lU3RhdGlzdGljTmFtZSkKK3sKKyAgICBzd2l0
Y2ggKHBpcGVsaW5lU3RhdGlzdGljTmFtZSkgeworICAgIGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0
aWNOYW1lOjpWZXJ0ZXhTaGFkZXJJbnZvY2F0aW9uczoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU6OlZlcnRleFNoYWRlckludm9jYXRpb25zOworICAg
IGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVySW52b2NhdGlvbnM6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDbGlwcGVySW52
b2NhdGlvbnM7CisgICAgY2FzZSBHUFVQaXBlbGluZVN0YXRpc3RpY05hbWU6OkNsaXBwZXJQcmlt
aXRpdmVzT3V0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGlj
TmFtZTo6Q2xpcHBlclByaW1pdGl2ZXNPdXQ7CisgICAgY2FzZSBHUFVQaXBlbGluZVN0YXRpc3Rp
Y05hbWU6OkZyYWdtZW50U2hhZGVySW52b2NhdGlvbnM6CisgICAgICAgIHJldHVybiBQQUw6Oldl
YkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpGcmFnbWVudFNoYWRlckludm9jYXRpb25zOwor
ICAgIGNhc2UgR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpDb21wdXRlU2hhZGVySW52b2NhdGlv
bnM6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0aXN0aWNOYW1lOjpD
b21wdXRlU2hhZGVySW52b2NhdGlvbnM7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVBvd2VyUHJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVUG93ZXJQcmVmZXJlbmNlLmgKaW5kZXggYzk1MjIyMzk3MmUwNjdhYTczZDM0NTI5MGMzNDNj
ZDM4OGU2ZmFjMS4uOGYzNGI3ODEwODVkYTc0OWFkYTEyMjcyNDIyZDQ3YzE5Y2Y2MTIxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUG93ZXJQcmVmZXJlbmNl
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5jZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BV
UG93ZXJQcmVmZXJlbmNlIDogdWludDhfdCB7CiAgICAgSGlnaFBlcmZvcm1hbmNlCiB9OwogCitp
bmxpbmUgUEFMOjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZSBjb252ZXJ0VG9CYWNraW5nKEdQVVBv
d2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UpCit7CisgICAgc3dpdGNoIChwb3dlclByZWZl
cmVuY2UpIHsKKyAgICBjYXNlIEdQVVBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXI6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcjsKKyAgICBjYXNl
IEdQVVBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaAppbmRleCA1
YmNjZGZlNzc0YmFiNTNkNTVkZjZmMDM3ZmYyNzI1ODRhOGFkNjVkLi4wNGUwNTE5NWM3ZjlkMWI2
NzZkN2Q5YTUxYWRmMjNlMzg4ZjhiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVByZWRlZmluZWRDb2xvclNwYWNlLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzMsNCArMzQsMTMgQEAgZW51bSBjbGFzcyBHUFVQcmVkZWZpbmVkQ29s
b3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
UHJlZGVmaW5lZENvbG9yU3BhY2UgY29udmVydFRvQmFja2luZyhHUFVQcmVkZWZpbmVkQ29sb3JT
cGFjZSBwcmVkZWZpbmVkQ29sb3JTcGFjZSkKK3sKKyAgICBzd2l0Y2ggKHByZWRlZmluZWRDb2xv
clNwYWNlKSB7CisgICAgY2FzZSBHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQjoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQjsKKyAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXggOTQ0YjY3
YjNiZWVlMDQwZTEzMmIzYjkwYjMyZDE1OTJlZGE3YzYxZi4uMjgyMGRlNDM0ZGY1MjQzMDExMTUw
MDhhODc4NjU5YzI5NDg4NTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVQcmltaXRpdmVTdGF0ZS5oCkBAIC0zMSwxMCArMzEsMjIgQEAKICNpbmNsdWRlICJH
UFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCIKICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBy
aW1pdGl2ZVN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVByaW1p
dGl2ZVN0YXRlIHsKKyAgICBQQUw6OldlYkdQVTo6UHJpbWl0aXZlU3RhdGUgY29udmVydFRvQmFj
a2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyh0b3BvbG9neSksCisgICAgICAgICAgICBzdHJpcEluZGV4Rm9y
bWF0ID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKnN0cmlwSW5k
ZXhGb3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0
VG9CYWNraW5nKGZyb250RmFjZSksCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKGN1bGxNb2RlKSwKKyAgICAgICAgICAgIHVuY2xpcHBlZERlcHRoLAorICAgICAgICB9Owor
ICAgIH0KKwogICAgIEdQVVByaW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5OwogICAgIHN0ZDo6b3B0
aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IHN0cmlwSW5kZXhGb3JtYXQ7CiAgICAgR1BVRnJvbnRGYWNl
IGZyb250RmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VVByaW1pdGl2ZVRvcG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQ
cmltaXRpdmVUb3BvbG9neS5oCmluZGV4IGI0OWJjYmMyNDI2MTljYjU0NjUyYTg3OWI5ZDg2OGE4
MTUwMTdhMGUuLjQwY2Q3ZmQ5MDAxMjVmMTIwODkwZjUwMjVlMWI1YTdiYTRjMjNmODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByaW1pdGl2ZVRvcG9sb2d5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3ku
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw0ICszOCwyMSBAQCBlbnVtIGNsYXNz
IEdQVVByaW1pdGl2ZVRvcG9sb2d5IDogdWludDhfdCB7CiAgICAgVHJpYW5nbGVTdHJpcAogfTsK
IAoraW5saW5lIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neSBjb252ZXJ0VG9CYWNraW5n
KEdQVVByaW1pdGl2ZVRvcG9sb2d5IHByaW1pdGl2ZVRvcG9sb2d5KQoreworICAgIHN3aXRjaCAo
cHJpbWl0aXZlVG9wb2xvZ3kpIHsKKyAgICBjYXNlIEdQVVByaW1pdGl2ZVRvcG9sb2d5OjpQb2lu
dExpc3Q6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6UHJpbWl0aXZlVG9wb2xvZ3k6OlBv
aW50TGlzdDsKKyAgICBjYXNlIEdQVVByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lTGlzdDoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmltaXRpdmVUb3BvbG9neTo6TGluZUxpc3Q7CisgICAg
Y2FzZSBHUFVQcmltaXRpdmVUb3BvbG9neTo6TGluZVN0cmlwOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlByaW1pdGl2ZVRvcG9sb2d5OjpMaW5lU3RyaXA7CisgICAgY2FzZSBHUFVQcmlt
aXRpdmVUb3BvbG9neTo6VHJpYW5nbGVMaXN0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlByaW1pdGl2ZVRvcG9sb2d5OjpUcmlhbmdsZUxpc3Q7CisgICAgY2FzZSBHUFVQcmltaXRpdmVU
b3BvbG9neTo6VHJpYW5nbGVTdHJpcDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpQcmlt
aXRpdmVUb3BvbG9neTo6VHJpYW5nbGVTdHJpcDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVByb2dyYW1tYWJsZVN0YWdlLmgKaW5kZXggODVkOWIzMjU2OGRiMzFlZTQ4YTkx
Yzk2OThkODY2MTY0MTIyZThjMi4uYTExNWE2YzA5OGQxZTkzNGNiNzFiNDUyNzdhYmU0OGI1NmQ3
YTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcm9n
cmFtbWFibGVTdGFnZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaD4KICNpbmNsdWRlIDx3dGYvS2V5VmFsdWVQYWlyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM1LDcg
KzM2LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIEdQVVBpcGVsaW5lQ29uc3RhbnRW
YWx1ZSA9IGRvdWJsZTsgLy8gTWF5IHJlcHJlc2VudCBXR1NM4oCZcyBib29sLCBmMzIsIGkzMiwg
dTMyLgogCiBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2UgewotICAgIFJlZlB0cjxHUFVTaGFk
ZXJNb2R1bGU+IG1vZHVsZTsKKyAgICBQQUw6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2UgY29u
dmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobW9kdWxlKTsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG1vZHVsZS0+YmFja2luZygpLAorICAgICAgICAg
ICAgZW50cnlQb2ludCwKKyAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQQUw6OldlYkdQVTo6UGlwZWxpbmVDb25zdGFu
dFZhbHVlPj4gY29uc3RhbnRzOworICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgYXV0byYgY29uc3RhbnQgOiB0aGlzLT5jb25zdGFudHMpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0YW50cy51bmNoZWNrZWRBcHBlbmQobWFrZUtleVZhbHVlUGFpcihjb25zdGFu
dC5rZXksIGNvbnN0YW50LnZhbHVlKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50
czsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVU2hhZGVy
TW9kdWxlKiBtb2R1bGU7CiAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CiAgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIEdQVVBpcGVsaW5lQ29uc3RhbnRWYWx1ZT4+IGNvbnN0YW50czsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldC5jcHAKaW5kZXgg
Y2U2OGMyODllNzk1N2RmNGVjOGNlMDcxOTE1Yjg2MWMzNDBjYWQwYy4uNTY1MTNlMWM0MWI2YWMw
M2I1MDRjZWIwMDQxODFiOGYwM2I0N2UxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUXVlcnlTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVF1ZXJ5U2V0LmNwcApAQCAtMzIsMTUgKzMyLDE3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogU3RyaW5nIEdQVVF1ZXJ5U2V0OjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0K
IAotdm9pZCBHUFVRdWVyeVNldDo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVF1ZXJ5U2V0
OjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdU
Rk1vdmUobGFiZWwpKTsKIH0KIAogdm9pZCBHUFVRdWVyeVNldDo6ZGVzdHJveSgpCiB7CisgICAg
bV9iYWNraW5nLT5kZXN0cm95KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVRdWVyeVNldC5oCmluZGV4IDVmZjI1NjhlNThlMmJhMmQ3NjExYmYwZjc0MzgxNDU0
ZDE1ODA2ZjYuLmI2NWExNGZkMWM3ZTE0NjQ1MGZmZmVlMWViYTZkMjViMmI1NjAzYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXQuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUXVlcnlTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMzLDkgKzM0LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVRdWVyeVNldCA6IHB1YmxpYyBSZWZD
b3VudGVkPEdQVVF1ZXJ5U2V0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVRdWVyeVNl
dD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVF1ZXJ5U2V0PiBjcmVhdGUoUmVmPFBBTDo6
V2ViR1BVOjpRdWVyeVNldD4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgR1BVUXVlcnlTZXQoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQ
VVF1ZXJ5U2V0KFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAgICBTdHJpbmcgbGFiZWwo
KSBjb25zdDsKQEAgLTQzLDggKzQ0LDE2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVzdHJveSgp
OwogCisgICAgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNr
aW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0JiBiYWNraW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVUXVlcnlTZXQoKSA9IGRl
ZmF1bHQ7CisgICAgR1BVUXVlcnlTZXQoUmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4mJiBiYWNr
aW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9
CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBtX2JhY2tpbmc7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldERlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3Jp
cHRvci5oCmluZGV4IGMwMTMxYWQ1OTdjNzA3ZjQ0OTA0ZWZlZTY0YjkzNTU0ZDlkNjlmYTcuLjAy
OGRhNWNiZDEzN2UzMGRhOTQxNDA1NDRhODE2YmUxMWYxZmM1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCkBAIC0y
OSwxMiArMjksMjkgQEAKICNpbmNsdWRlICJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2lu
Y2x1ZGUgIkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oIgogI2luY2x1ZGUgIkdQVVF1ZXJ5VHlw
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlw
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVUXVlcnlTZXREZXNjcmlwdG9yIDog
cHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UXVlcnlT
ZXREZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZl
cnRUb0JhY2tpbmcodHlwZSksCisgICAgICAgICAgICBjb3VudCwKKyAgICAgICAgICAgIChbdGhp
c10gKCkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UGlwZWxpbmVTdGF0
aXN0aWNOYW1lPiBwaXBlbGluZVN0YXRpc3RpY3M7CisgICAgICAgICAgICAgICAgcGlwZWxpbmVT
dGF0aXN0aWNzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+cGlwZWxpbmVTdGF0aXN0aWNz
LnNpemUoKSk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwaXBlbGluZVN0YXRp
c3RpYyA6IHRoaXMtPnBpcGVsaW5lU3RhdGlzdGljcykKKyAgICAgICAgICAgICAgICAgICAgcGlw
ZWxpbmVTdGF0aXN0aWNzLnVuY2hlY2tlZEFwcGVuZChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5n
KHBpcGVsaW5lU3RhdGlzdGljKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBpcGVsaW5lU3Rh
dGlzdGljczsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BV
UXVlcnlUeXBlIHR5cGU7CiAgICAgR1BVU2l6ZTMyIGNvdW50OwogICAgIFZlY3RvcjxHUFVQaXBl
bGluZVN0YXRpc3RpY05hbWU+IHBpcGVsaW5lU3RhdGlzdGljczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlUeXBlLmgKaW5kZXggNTkyYzVjMmQ5OGNkNmE4NGUyNzM0
ZTY2ZDgxN2MxODQ0YWFmNDU2Mi4uYzhkNDE0NDFmNWYyYzcwMTM4MGQwNThhNjk0MWYwYWUxYWQ0
ODhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlUeXBlLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5VHlwZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVUXVlcnlUeXBl
IDogdWludDhfdCB7CiAgICAgVGltZXN0YW1wCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlF1
ZXJ5VHlwZSBjb252ZXJ0VG9CYWNraW5nKEdQVVF1ZXJ5VHlwZSBxdWVyeVR5cGUpCit7CisgICAg
c3dpdGNoIChxdWVyeVR5cGUpIHsKKyAgICBjYXNlIEdQVVF1ZXJ5VHlwZTo6T2NjbHVzaW9uOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlF1ZXJ5VHlwZTo6T2NjbHVzaW9uOworICAgIGNh
c2UgR1BVUXVlcnlUeXBlOjpQaXBlbGluZVN0YXRpc3RpY3M6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6UXVlcnlUeXBlOjpQaXBlbGluZVN0YXRpc3RpY3M7CisgICAgY2FzZSBHUFVRdWVy
eVR5cGU6OlRpbWVzdGFtcDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpRdWVyeVR5cGU6
OlRpbWVzdGFtcDsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUuY3BwCmluZGV4IDkx
YWY0OGE0OTQxZDM4ZTdhMWJiNjQ5ZDU3Y2FhNzJkOWEyNWU3NzcuLmU3MjVmNWY4NzdmZWMzMDZj
YzVlOGViOWIxZDJiZjU1MTYzMGM3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVRdWV1ZS5jcHAKQEAgLTM0LDUzICszNCw1OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFN0cmluZyBHUFVRdWV1ZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBs
OjplbXB0eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BV
UXVldWU6OnNldExhYmVsKFN0cmluZyYmKQordm9pZCBHUFVRdWV1ZTo6c2V0TGFiZWwoU3RyaW5n
JiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9
CiAKLXZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
PikKK3ZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
PiYmIGNvbW1hbmRCdWZmZXJzKQogeworICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVy
PFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNvbW1hbmRCdWZmZXJzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBjb21tYW5kQnVmZmVyIDogY29tbWFuZEJ1ZmZlcnMpIHsKKyAgICAgICAgaWYgKCFjb21t
YW5kQnVmZmVyKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJlc3VsdC51bmNoZWNr
ZWRBcHBlbmQoY29tbWFuZEJ1ZmZlci0+YmFja2luZygpKTsKKyAgICB9CisgICAgbV9iYWNraW5n
LT5zdWJtaXQoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBHUFVRdWV1ZTo6b25TdWJtaXR0
ZWRXb3JrRG9uZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKQordm9pZCBHUFVRdWV1ZTo6b25TdWJt
aXR0ZWRXb3JrRG9uZShPblN1Ym1pdHRlZFdvcmtEb25lUHJvbWlzZSYmIHByb21pc2UpCiB7Cisg
ICAgbV9iYWNraW5nLT5vblN1Ym1pdHRlZFdvcmtEb25lKFtwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBHUFVRdWV1ZTo6d3JpdGVCdWZmZXIoCi0gICAgY29uc3QgR1BVQnVm
ZmVyJiwKKyAgICBjb25zdCBHUFVCdWZmZXImIGJ1ZmZlciwKICAgICBHUFVTaXplNjQgYnVmZmVy
T2Zmc2V0LAogICAgIEJ1ZmZlclNvdXJjZSYmIGRhdGEsCiAgICAgc3RkOjpvcHRpb25hbDxHUFVT
aXplNjQ+IGRhdGFPZmZzZXQsCiAgICAgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemUpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKGJ1ZmZlck9mZnNldCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGEp
OwotICAgIFVOVVNFRF9QQVJBTShkYXRhT2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7
CisgICAgbV9iYWNraW5nLT53cml0ZUJ1ZmZlcihidWZmZXIuYmFja2luZygpLCBidWZmZXJPZmZz
ZXQsIGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpLCBkYXRhT2Zmc2V0LnZhbHVlX29yKDApLCBz
aXplKTsKIH0KIAogdm9pZCBHUFVRdWV1ZTo6d3JpdGVUZXh0dXJlKAotICAgIEdQVUltYWdlQ29w
eVRleHR1cmUgZGVzdGluYXRpb24sCisgICAgY29uc3QgR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVz
dGluYXRpb24sCiAgICAgQnVmZmVyU291cmNlJiYgZGF0YSwKLSAgICBHUFVJbWFnZURhdGFMYXlv
dXQsCi0gICAgR1BVRXh0ZW50M0Qgc2l6ZSkKKyAgICBjb25zdCBHUFVJbWFnZURhdGFMYXlvdXQm
IGltYWdlRGF0YUxheW91dCwKKyAgICBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSkKIHsKLSAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oc2l6ZSk7CisgICAgbV9iYWNraW5nLT53cml0ZVRleHR1cmUoZGVzdGluYXRp
b24uY29udmVydFRvQmFja2luZygpLCBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSwgaW1hZ2VE
YXRhTGF5b3V0LmNvbnZlcnRUb0JhY2tpbmcoKSwgY29udmVydFRvQmFja2luZyhzaXplKSk7CiB9
CiAKIHZvaWQgR1BVUXVldWU6OmNvcHlFeHRlcm5hbEltYWdlVG9UZXh0dXJlKAotICAgIEdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2Ugc291cmNlLAotICAgIEdQVUltYWdlQ29weVRleHR1cmVUYWdn
ZWQgZGVzdGluYXRpb24sCi0gICAgR1BVRXh0ZW50M0QgY29weVNpemUpCisgICAgY29uc3QgR1BV
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgc291cmNlLAorICAgIGNvbnN0IEdQVUltYWdlQ29weVRl
eHR1cmVUYWdnZWQmIGRlc3RpbmF0aW9uLAorICAgIGNvbnN0IEdQVUV4dGVudDNEJiBjb3B5U2l6
ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBVTlVTRURfUEFSQU0oZGVzdGlu
YXRpb24pOwotICAgIFVOVVNFRF9QQVJBTShjb3B5U2l6ZSk7CisgICAgbV9iYWNraW5nLT5jb3B5
RXh0ZXJuYWxJbWFnZVRvVGV4dHVyZShzb3VyY2UuY29udmVydFRvQmFja2luZygpLCBkZXN0aW5h
dGlvbi5jb252ZXJ0VG9CYWNraW5nKCksIGNvbnZlcnRUb0JhY2tpbmcoY29weVNpemUpKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVldWUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXVlLmgKaW5kZXggZmRiNTEz
MTZlY2YxZDE0MDIzODFmZjRlNzhkMjM1NTk4ZjQ3MTlkZC4uZmVjMmZiZDI3NGRmOTVkMzQ1Njlk
ZGJhNWRiNWUwYzAyN2MyMzdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVR
dWV1ZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KQEAgLTQ3LDE3ICs0OCwxOCBAQCBjbGFzcyBHUFVCdWZmZXI7CiAKIGNsYXNzIEdQVVF1
ZXVlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUXVldWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEdQVVF1ZXVlPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUXVldWU+IGNyZWF0ZShS
ZWY8UEFMOjpXZWJHUFU6OlF1ZXVlPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBHUFVRdWV1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R1BVUXVldWUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCi0gICAgdm9pZCBzdWJtaXQo
VmVjdG9yPFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPj4pOworICAgIHZvaWQgc3VibWl0KFZlY3Rv
cjxSZWZQdHI8R1BVQ29tbWFuZEJ1ZmZlcj4+JiYpOwogCi0gICAgdm9pZCBvblN1Ym1pdHRlZFdv
cmtEb25lKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHVzaW5nIE9uU3VibWl0dGVkV29y
a0RvbmVQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETE51bGw+OworICAgIHZvaWQgb25T
dWJtaXR0ZWRXb3JrRG9uZShPblN1Ym1pdHRlZFdvcmtEb25lUHJvbWlzZSYmKTsKIAogICAgIHZv
aWQgd3JpdGVCdWZmZXIoCiAgICAgICAgIGNvbnN0IEdQVUJ1ZmZlciYsCkBAIC02NywxOCArNjks
MjYgQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4pOwogCiAgICAg
dm9pZCB3cml0ZVRleHR1cmUoCi0gICAgICAgIEdQVUltYWdlQ29weVRleHR1cmUgZGVzdGluYXRp
b24sCisgICAgICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLAogICAg
ICAgICBCdWZmZXJTb3VyY2UmJiBkYXRhLAotICAgICAgICBHUFVJbWFnZURhdGFMYXlvdXQsCi0g
ICAgICAgIEdQVUV4dGVudDNEIHNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFnZURhdGFMYXlv
dXQmLAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgc2l6ZSk7CiAKICAgICB2b2lkIGNvcHlF
eHRlcm5hbEltYWdlVG9UZXh0dXJlKAotICAgICAgICBHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
IHNvdXJjZSwKLSAgICAgICAgR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCBkZXN0aW5hdGlvbiwK
LSAgICAgICAgR1BVRXh0ZW50M0QgY29weVNpemUpOworICAgICAgICBjb25zdCBHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlJiBzb3VyY2UsCisgICAgICAgIGNvbnN0IEdQVUltYWdlQ29weVRleHR1
cmVUYWdnZWQmIGRlc3RpbmF0aW9uLAorICAgICAgICBjb25zdCBHUFVFeHRlbnQzRCYgY29weVNp
emUpOworCisgICAgUEFMOjpXZWJHUFU6OlF1ZXVlJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNr
aW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlJiBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgR1BVUXVldWUoKSA9IGRlZmF1bHQ7
CisgICAgR1BVUXVldWUoUmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4mJiBiYWNraW5nKQorICAgICAg
ICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8
UEFMOjpXZWJHUFU6OlF1ZXVlPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmNwcAppbmRleCAwZWFlZGZmN2Q1
YTAxY2Y5M2QyMzE2MzE2YTlkNTQ2YzdkY2YzZmMwLi45MGI4OTkwOGNiY2ZlNmE1YzhmZTE1OWI3
NTQ3ZDNlZDJhZDk5YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVSZW5kZXJCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVVJlbmRlckJ1bmRsZS5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFN0cmluZyBHUFVSZW5kZXJCdW5kbGU6OmxhYmVsKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgpOwog
fQogCi12b2lkIEdQVVJlbmRlckJ1bmRsZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVJl
bmRlckJ1bmRsZTo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5z
ZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlLmgKaW5kZXggNDhjYjY5OWU1YzlkNTE2OTBmNzY5
NzAyMDQyYTNiZTVjZjc5M2ViNi4uMTBjMmRmN2Q4ODcyYTg2MjA3ODI2ZjNiNzFlNWNmZWQ3N2Vl
NjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
QnVuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVu
ZGxlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
R1BVUmVuZGVyQnVuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyQnVuZGxlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGNyZWF0ZSgpCisgICAgc3Rh
dGljIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1
bmRsZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BV
UmVuZGVyQnVuZGxlKCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVSZW5kZXJC
dW5kbGUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwogCisgICAgUEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZSYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBB
TDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVSZW5kZXJCdW5kbGUoKSA9IGRlZmF1bHQ7CisgICAg
R1BVUmVuZGVyQnVuZGxlKFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiYmIGJhY2tpbmcp
CisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5k
bGVEZXNjcmlwdG9yLmgKaW5kZXggMGMxYzlmN2Y2MTJhMTU0ODI5N2Y0YjdjMTRhODM4ZDU4YTZj
Nzg5YS4uMjRhMmEyN2RiYWVhYjNjMGJiYWE0ZTkxMjU5OTM2MGVmNmNmMzBhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZURl
c2NyaXB0b3IuaApAQCAtMjYsMTAgKzI2LDE3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RydWN0IEdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UgeworICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIHsgbGFiZWwgfSwKKyAgICAgICAgfTsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3Bw
CmluZGV4IDI1M2E5ZDQxYTcyMDJjZjQ2NTI2Y2NkOGNlMmI2YjA0MDU3ZWM5ZTQuLmJlODU0NDUw
ZjY4ZTdlMjhjZDU0OTE3YjBkOGYxZjZhZGVmODE1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCkBAIC0y
OCw0NCArMjgsNDIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyLmgiCiAKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKICNpbmNsdWRlICJH
UFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJCdW5kbGUuaCIKKyNpbmNsdWRlICJHUFVS
ZW5kZXJQaXBlbGluZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6
OmVtcHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVUmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6c2V0TGFiZWwoU3RyaW5nJiYgbGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5z
ZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0UGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmUmKQordm9pZCBHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZSYgcmVuZGVy
UGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGluZShyZW5kZXJQaXBlbGluZS5i
YWNraW5nKCkpOwogfQogCi12b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEluZGV4QnVm
ZmVyKGNvbnN0IEdQVUJ1ZmZlciYsIEdQVUluZGV4Rm9ybWF0LCBHUFVTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKK3ZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0SW5kZXhCdWZmZXIoY29uc3QgR1BVQnVmZmVyJiBidWZmZXIsIEdQVUluZGV4Rm9ybWF0
IGluZGV4Rm9ybWF0LCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
c2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6
ZSk7CisgICAgbV9iYWNraW5nLT5zZXRJbmRleEJ1ZmZlcihidWZmZXIuYmFja2luZygpLCBjb252
ZXJ0VG9CYWNraW5nKGluZGV4Rm9ybWF0KSwgb2Zmc2V0LCBzaXplKTsKIH0KIAotdm9pZCBHUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoR1BVSW5kZXgzMiBzbG90LCBjb25z
dCBHUFVCdWZmZXImLCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4g
c2l6ZSkKK3ZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyKEdQVUlu
ZGV4MzIgc2xvdCwgY29uc3QgR1BVQnVmZmVyJiBidWZmZXIsIEdQVVNpemU2NCBvZmZzZXQsIHN0
ZDo6b3B0aW9uYWw8R1BVU2l6ZTY0PiBzaXplKQogewotICAgIFVOVVNFRF9QQVJBTShzbG90KTsK
LSAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisgICAg
bV9iYWNraW5nLT5zZXRWZXJ0ZXhCdWZmZXIoc2xvdCwgYnVmZmVyLmJhY2tpbmcoKSwgb2Zmc2V0
LCBzaXplKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3KEdQVVNpemUz
MiB2ZXJ0ZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQsCiAgICAgR1BVU2l6ZTMyIGZp
cnN0VmVydGV4LCBHUFVTaXplMzIgZmlyc3RJbnN0YW5jZSkKIHsKLSAgICBVTlVTRURfUEFSQU0o
dmVydGV4Q291bnQpOwotICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNvdW50KTsKLSAgICBVTlVT
RURfUEFSQU0oZmlyc3RWZXJ0ZXgpOwotICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsK
KyAgICBtX2JhY2tpbmctPmRyYXcodmVydGV4Q291bnQsIGluc3RhbmNlQ291bnQsIGZpcnN0VmVy
dGV4LCBmaXJzdEluc3RhbmNlKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpk
cmF3SW5kZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQs
CkBAIC03Myw1OCArNzEsNTggQEAgdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5k
ZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmMKICAgICBHUFVTaWdu
ZWRPZmZzZXQzMiBiYXNlVmVydGV4LAogICAgIEdQVVNpemUzMiBmaXJzdEluc3RhbmNlKQogewot
ICAgIFVOVVNFRF9QQVJBTShpbmRleENvdW50KTsKLSAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2VD
b3VudCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5kZXgpOwotICAgIFVOVVNFRF9QQVJBTShi
YXNlVmVydGV4KTsKLSAgICBVTlVTRURfUEFSQU0oZmlyc3RJbnN0YW5jZSk7CisgICAgbV9iYWNr
aW5nLT5kcmF3SW5kZXhlZChpbmRleENvdW50LCBpbnN0YW5jZUNvdW50LCBmaXJzdEluZGV4LCBi
YXNlVmVydGV4LCBmaXJzdEluc3RhbmNlKTsKIH0KIAogdm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNv
ZGVyOjpkcmF3SW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6
ZTY0IGluZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7
Ci0gICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRyYXdJ
bmRpcmVjdChpbmRpcmVjdEJ1ZmZlci5iYWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAog
dm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpkcmF3SW5kZXhlZEluZGlyZWN0KGNvbnN0IEdQ
VUJ1ZmZlciYgaW5kaXJlY3RCdWZmZXIsIEdQVVNpemU2NCBpbmRpcmVjdE9mZnNldCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0oaW5kaXJlY3RCdWZmZXIpOwotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVj
dE9mZnNldCk7CisgICAgbV9iYWNraW5nLT5kcmF3SW5kZXhlZEluZGlyZWN0KGluZGlyZWN0QnVm
ZmVyLmJhY2tpbmcoKSwgaW5kaXJlY3RPZmZzZXQpOwogfQogCi12b2lkIEdQVVJlbmRlckJ1bmRs
ZUVuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRleDMyLCBjb25zdCBHUFVCaW5kR3JvdXAmLAor
dm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiBpbmRl
eCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8R1BVQnVmZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCiB7Ci0gICAgVU5V
U0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRzKTsKKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChp
bmRleCwgYmluZEdyb3VwLmJhY2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQog
Ci12b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRleDMyLCBj
b25zdCBHUFVCaW5kR3JvdXAmLAordm9pZCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyOjpzZXRCaW5k
R3JvdXAoR1BVSW5kZXgzMiBpbmRleCwgY29uc3QgR1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAg
ICAgY29uc3QgVWludDMyQXJyYXkmIGR5bmFtaWNPZmZzZXRzRGF0YSwKICAgICBHUFVTaXplNjQg
ZHluYW1pY09mZnNldHNEYXRhU3RhcnQsCiAgICAgR1BVU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0
YUxlbmd0aCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZHluYW1pY09mZnNldHNEYXRhU3RhcnQpOwotICAgIFVOVVNFRF9QQVJBTShk
eW5hbWljT2Zmc2V0c0RhdGFMZW5ndGgpOworICAgIG1fYmFja2luZy0+c2V0QmluZEdyb3VwKGlu
ZGV4LCBiaW5kR3JvdXAuYmFja2luZygpLCBkeW5hbWljT2Zmc2V0c0RhdGEuZGF0YSgpLCBkeW5h
bWljT2Zmc2V0c0RhdGEubGVuZ3RoKCksIGR5bmFtaWNPZmZzZXRzRGF0YVN0YXJ0LCBkeW5hbWlj
T2Zmc2V0c0RhdGFMZW5ndGgpOwogfQogCiB2b2lkIEdQVVJlbmRlckJ1bmRsZUVuY29kZXI6OnB1
c2hEZWJ1Z0dyb3VwKFN0cmluZyYmIGdyb3VwTGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdy
b3VwTGFiZWwpOworICAgIG1fYmFja2luZy0+cHVzaERlYnVnR3JvdXAoV1RGTW92ZShncm91cExh
YmVsKSk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgp
CiB7CisgICAgbV9iYWNraW5nLT5wb3BEZWJ1Z0dyb3VwKCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKKyAgICBtX2JhY2tpbmctPmluc2VydERl
YnVnTWFya2VyKFdURk1vdmUobWFya2VyTGFiZWwpKTsKIH0KIAotUmVmPEdQVVJlbmRlckJ1bmRs
ZT4gR1BVUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVUmVuZGVy
QnVuZGxlRGVzY3JpcHRvcj4pCitzdGF0aWMgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZyhjb25zdCBzdGQ6Om9wdGlvbmFsPEdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3I+JiByZW5kZXJCdW5kbGVEZXNjcmlwdG9yKQogewotICAgIHJldHVybiBHUFVS
ZW5kZXJCdW5kbGU6OmNyZWF0ZSgpOworICAgIGlmICghcmVuZGVyQnVuZGxlRGVzY3JpcHRvcikK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gcmVuZGVyQnVuZGxlRGVzY3JpcHRvci0+
Y29udmVydFRvQmFja2luZygpOworfQorCitSZWY8R1BVUmVuZGVyQnVuZGxlPiBHUFVSZW5kZXJC
dW5kbGVFbmNvZGVyOjpmaW5pc2goY29uc3Qgc3RkOjpvcHRpb25hbDxHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yPiYgcmVuZGVyQnVuZGxlRGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gR1BVUmVu
ZGVyQnVuZGxlOjpjcmVhdGUobV9iYWNraW5nLT5maW5pc2goY29udmVydFRvQmFja2luZyhyZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggMTk3NTcyODA3
ZDY0ODhlMzA4MTY1N2Y5NDU1N2JhNDViNzk4OGU3Ny4uNGU3OTU2MmZlNjMwNTg3NDE5NTM4ZDcz
MDNlNzAyYTBlYWY3OTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9VaW50MzJBcnJheS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ0LDkgKzQ1LDkgQEAgY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIEdQ
VVJlbmRlckJ1bmRsZUVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVSZW5kZXJCdW5kbGVF
bmNvZGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJCdW5kbGVFbmNvZGVy
PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8R1BVUmVuZGVyQnVuZGxlRW5jb2Rlcj4gY3JlYXRl
KFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4mJiBiYWNraW5nKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyQnVuZGxlRW5jb2RlcigpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyQnVuZGxlRW5jb2RlcihXVEZN
b3ZlKGJhY2tpbmcpKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CkBAIC03
OSwxMCArODAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9wRGVidWdHcm91cCgpOwogICAgIHZv
aWQgaW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpOwogCi0gICAgUmVmPEdQ
VVJlbmRlckJ1bmRsZT4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8R1BVUmVuZGVyQnVuZGxlRGVzY3Jp
cHRvcj4pOworICAgIFJlZjxHUFVSZW5kZXJCdW5kbGU+IGZpbmlzaChjb25zdCBzdGQ6Om9wdGlv
bmFsPEdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3I+Jik7CisKKyAgICBQQUw6OldlYkdQVTo6UmVu
ZGVyQnVuZGxlRW5jb2RlciYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsgfQorICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyJiBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
cigpID0gZGVmYXVsdDsKKyAgICBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyKFJlZjxQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhX
VEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXI+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVy
RGVzY3JpcHRvci5oCmluZGV4IDNkZWIwOGM5OTRlMDhjYzgwZjkxNTczOTQzZTNiODljM2ZiMjg5
ZmEuLjY5NTdlYTU5MzIzMWU3MWRmZTYxNDI3Y2QzZTBmZmEzZGVkZWIyNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVu
ZGxlRW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMjYsMTAgKzI2LDMxIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkdQVVJlbmRlclBhc3NMYXlvdXQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
IDogcHVibGljIEdQVVJlbmRlclBhc3NMYXlvdXQgeworICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9
LAorICAgICAgICAgICAgICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAgICAgICBWZWN0
b3I8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9ybWF0czsKKyAgICAgICAgICAg
ICAgICAgICAgY29sb3JGb3JtYXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+Y29sb3JG
b3JtYXRzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY29s
b3JGb3JtYXQgOiB0aGlzLT5jb2xvckZvcm1hdHMpCisgICAgICAgICAgICAgICAgICAgICAgICBj
b2xvckZvcm1hdHMudW5jaGVja2VkQXBwZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29s
b3JGb3JtYXQpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yRm9ybWF0czsKKyAg
ICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/
IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxG
b3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICAgICAgc2FtcGxlQ291bnQsCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZGVwdGhSZWFkT25seSwKKyAgICAgICAgICAgIHN0
ZW5jaWxSZWFkT25seSwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBib29sIGRlcHRoUmVhZE9u
bHk7CiAgICAgYm9vbCBzdGVuY2lsUmVhZE9ubHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5o
CmluZGV4IDkyYjU0YTczMzAzNGNiYmFjZGZjNDQ2MzFjZTE3NzEzMDhjNTdjYmQuLmIzYjA3MGEz
NDRlYmNhZDU4NzE1MzIxODNlZGRhNTYwMjA1YjI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJHUFVMb2FkT3AuaCIKICNpbmNsdWRlICJH
UFVTdG9yZU9wLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaD4KICNpbmNs
dWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC0zNiw4ICszNywyNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCB7Ci0gICAgUmVmUHRyPEdQVVRleHR1cmVWaWV3
PiB2aWV3OwotICAgIFJlZlB0cjxHUFVUZXh0dXJlVmlldz4gcmVzb2x2ZVRhcmdldDsKKyAgICBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCBjb252ZXJ0VG9CYWNraW5nKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCh2aWV3KTsKKyAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgIHZpZXctPmJhY2tpbmcoKSwKKyAgICAgICAgICAgIHJlc29sdmVUYXJnZXQgPyAm
cmVzb2x2ZVRhcmdldC0+YmFja2luZygpIDogbnVsbHB0ciwKKyAgICAgICAgICAgIFdURjo6c3dp
dGNoT24obG9hZFZhbHVlLCBbJl0gKEdQVUxvYWRPcCBsb2FkT3ApIC0+IHN0ZDo6dmFyaWFudDxQ
QUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFMOjpXZWJHUFU6OkNvbG9yRGlj
dD4geworICAgICAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGxv
YWRPcCk7CisgICAgICAgICAgICB9LCBbJl0gKGNvbnN0IFZlY3Rvcjxkb3VibGU+JiB2ZWN0b3Ip
IC0+IHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFM
OjpXZWJHUFU6OkNvbG9yRGljdD4geworICAgICAgICAgICAgICAgIHJldHVybiB2ZWN0b3I7Cisg
ICAgICAgICAgICB9LCBbJl0gKGNvbnN0IEdQVUNvbG9yRGljdCYgY29sb3IpIC0+IHN0ZDo6dmFy
aWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFMOjpXZWJHUFU6OkNv
bG9yRGljdD4geworICAgICAgICAgICAgICAgIHJldHVybiBjb2xvci5jb252ZXJ0VG9CYWNraW5n
KCk7CisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcoc3RvcmVPcCksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVVGV4dHVyZVZpZXcqIHZp
ZXc7CisgICAgR1BVVGV4dHVyZVZpZXcqIHJlc29sdmVUYXJnZXQ7CiAKICAgICBzdGQ6OnZhcmlh
bnQ8R1BVTG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgR1BVQ29sb3JEaWN0PiBsb2FkVmFsdWU7CiAg
ICAgR1BVU3RvcmVPcCBzdG9yZU9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmgKaW5kZXggODZkOGI0MmVmNzdiZTZjYmEyYmYwZWJlMWZlNDVhY2RlMzZmNzZkNi4uOWE1YjY2
YTFmOWU3NGM5ODk2ODIwMjVlOTAxMzVhY2RhMWFhMjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudC5oCkBAIC0yOSwxMyArMjksMzYgQEAKICNpbmNsdWRlICJHUFVMb2Fk
T3AuaCIKICNpbmNsdWRlICJHUFVTdG9yZU9wLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVZpZXcu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50Lmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50IHsKLSAgICBSZWZQdHI8R1BVVGV4dHVyZVZpZXc+IHZpZXc7Cisg
ICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50IGNvbnZlcnRU
b0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHZpZXcpOworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgdmlldy0+YmFja2luZygpLAorICAgICAgICAgICAgV1RGOjpz
d2l0Y2hPbihkZXB0aExvYWRWYWx1ZSwgWyZdIChHUFVMb2FkT3AgbG9hZE9wKSAtPiBzdGQ6OnZh
cmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+IHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhsb2FkT3ApOworICAgICAgICAgICAgfSwgWyZd
IChmbG9hdCBmKSAtPiBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgZmxvYXQ+IHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gZjsKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAg
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhkZXB0aFN0b3JlT3ApLAorICAgICAgICAgICAgZGVw
dGhSZWFkT25seSwKKyAgICAgICAgICAgIFdURjo6c3dpdGNoT24oc3RlbmNpbExvYWRWYWx1ZSwg
WyZdIChHUFVMb2FkT3AgbG9hZE9wKSAtPiBzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRP
cCwgUEFMOjpXZWJHUFU6OlN0ZW5jaWxWYWx1ZT4geworICAgICAgICAgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGxvYWRPcCk7CisgICAgICAgICAgICB9LCBbJl0gKEdQ
VVN0ZW5jaWxWYWx1ZSBzdGVuY2lsVmFsdWUpIC0+IHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6
TG9hZE9wLCBQQUw6OldlYkdQVTo6U3RlbmNpbFZhbHVlPiB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZW5jaWxWYWx1ZTsKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyhzdGVuY2lsU3RvcmVPcCksCisgICAgICAgICAgICBzdGVuY2lsUmVh
ZE9ubHksCisgICAgICAgIH07CisgICAgfQorCisgICAgR1BVVGV4dHVyZVZpZXcqIHZpZXc7CiAK
ICAgICBzdGQ6OnZhcmlhbnQ8R1BVTG9hZE9wLCBmbG9hdD4gZGVwdGhMb2FkVmFsdWU7CiAgICAg
R1BVU3RvcmVPcCBkZXB0aFN0b3JlT3A7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAppbmRleCBhZmNhOGU4ZjgxMjAx
NDg3MGVhY2YzZDRkMGVjNzdhMmU4MWU3ZTU3Li5hNWZjODMwMDIzMDRmZmIwZDYwY2ZhYjlmNWMy
NDYwY2VjZDVlMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKQEAgLTMxLDE1ICszMSwzMyBAQAogI2luY2x1
ZGUgIkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBhc3NEZXNjcmlwdG9yIDogcHVibGljIEdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2Ny
aXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gewor
ICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgKFt0aGlzXSAoKSB7CisgICAgICAg
ICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBj
b2xvckF0dGFjaG1lbnRzOworICAgICAgICAgICAgICAgIGNvbG9yQXR0YWNobWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb2xvckF0dGFjaG1lbnRzLnNpemUoKSk7CisgICAgICAg
ICAgICAgICAgZm9yIChhdXRvJiBjb2xvckF0dGFjaG1lbnQgOiB0aGlzLT5jb2xvckF0dGFjaG1l
bnRzKQorICAgICAgICAgICAgICAgICAgICBjb2xvckF0dGFjaG1lbnRzLnVuY2hlY2tlZEFwcGVu
ZChjb2xvckF0dGFjaG1lbnQuY29udmVydFRvQmFja2luZygpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gY29sb3JBdHRhY2htZW50czsKKyAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBk
ZXB0aFN0ZW5jaWxBdHRhY2htZW50ID8gc3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbEF0dGFj
aG1lbnQtPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAg
b2NjbHVzaW9uUXVlcnlTZXQgPyAmb2NjbHVzaW9uUXVlcnlTZXQtPmJhY2tpbmcoKSA6IG51bGxw
dHIsCisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHRpbWVzdGFtcFdyaXRl
cyksCisgICAgICAgIH07CisgICAgfQorCiAgICAgVmVjdG9yPEdQVVJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnQ+IGNvbG9yQXR0YWNobWVudHM7CiAgICAgc3RkOjpvcHRpb25hbDxHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudD4gZGVwdGhTdGVuY2lsQXR0YWNobWVudDsKLSAgICBS
ZWZQdHI8R1BVUXVlcnlTZXQ+IG9jY2x1c2lvblF1ZXJ5U2V0OworICAgIEdQVVF1ZXJ5U2V0KiBv
Y2NsdXNpb25RdWVyeVNldDsKICAgICBHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHRpbWVz
dGFtcFdyaXRlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAppbmRleCA1MmYxZDhhOTY5YzJkNmNmZGIxODU3
M2U1YTdkZGRjZWJjZjg2OWM2Li5lOWIxOGM2Y2Q2OTBiYTcyNzZkYjA4MDYyZDczOTk3NTFhZjAz
MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQ
YXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVu
ZGVyUGFzc0VuY29kZXIuY3BwCkBAIC0zNCwzNyArMzQsMzMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTdHJpbmcgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmxhYmVsKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5sYWJlbCgp
OwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRMYWJlbChTdHJpbmcmJikKK3Zv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQogeworICAg
IG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQogCi12b2lkIEdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZSYpCit2b2lk
IEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGlu
ZSYgcmVuZGVyUGlwZWxpbmUpCiB7CisgICAgbV9iYWNraW5nLT5zZXRQaXBlbGluZShyZW5kZXJQ
aXBlbGluZS5iYWNraW5nKCkpOwogfQogCi12b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJ
bmRleEJ1ZmZlcihjb25zdCBHUFVCdWZmZXImLCBHUFVJbmRleEZvcm1hdCwgR1BVU2l6ZTY0IG9m
ZnNldCwgc3RkOjpvcHRpb25hbDxHUFVTaXplNjQ+IHNpemUpCit2b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihjb25zdCBHUFVCdWZmZXImIGJ1ZmZlciwgR1BVSW5kZXhG
b3JtYXQgaW5kZXhGb3JtYXQsIEdQVVNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8R1BVU2l6
ZTY0PiBzaXplKQogewotICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwotICAgIFVOVVNFRF9QQVJB
TShzaXplKTsKKyAgICBtX2JhY2tpbmctPnNldEluZGV4QnVmZmVyKGJ1ZmZlci5iYWNraW5nKCks
IGNvbnZlcnRUb0JhY2tpbmcoaW5kZXhGb3JtYXQpLCBvZmZzZXQsIHNpemUpOwogfQogCi12b2lk
IEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXIoR1BVSW5kZXgzMiBzbG90LCBj
b25zdCBHUFVCdWZmZXImLCBHUFVTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPEdQVVNpemU2
ND4gc2l6ZSkKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcihHUFVJ
bmRleDMyIHNsb3QsIGNvbnN0IEdQVUJ1ZmZlciYgYnVmZmVyLCBHUFVTaXplNjQgb2Zmc2V0LCBz
dGQ6Om9wdGlvbmFsPEdQVVNpemU2ND4gc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0oc2xvdCk7
Ci0gICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNpemUpOworICAg
IG1fYmFja2luZy0+c2V0VmVydGV4QnVmZmVyKHNsb3QsIGJ1ZmZlci5iYWNraW5nKCksIG9mZnNl
dCwgc2l6ZSk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRyYXcoR1BVU2l6ZTMy
IHZlcnRleENvdW50LCBHUFVTaXplMzIgaW5zdGFuY2VDb3VudCwKICAgICBHUFVTaXplMzIgZmly
c3RWZXJ0ZXgsIEdQVVNpemUzMiBmaXJzdEluc3RhbmNlKQogewotICAgIFVOVVNFRF9QQVJBTSh2
ZXJ0ZXhDb3VudCk7Ci0gICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlQ291bnQpOwotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFZlcnRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0SW5zdGFuY2UpOwor
ICAgIG1fYmFja2luZy0+ZHJhdyh2ZXJ0ZXhDb3VudCwgaW5zdGFuY2VDb3VudCwgZmlyc3RWZXJ0
ZXgsIGZpcnN0SW5zdGFuY2UpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3
SW5kZXhlZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQ291bnQsCkBA
IC03MiwxMDggKzY4LDEwNiBAQCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5kZXhl
ZChHUFVTaXplMzIgaW5kZXhDb3VudCwgR1BVU2l6ZTMyIGluc3RhbmNlQwogICAgIEdQVVNpZ25l
ZE9mZnNldDMyIGJhc2VWZXJ0ZXgsCiAgICAgR1BVU2l6ZTMyIGZpcnN0SW5zdGFuY2UpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKGluZGV4Q291bnQpOwotICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZUNv
dW50KTsKLSAgICBVTlVTRURfUEFSQU0oZmlyc3RJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VWZXJ0ZXgpOwotICAgIFVOVVNFRF9QQVJBTShmaXJzdEluc3RhbmNlKTsKKyAgICBtX2JhY2tp
bmctPmRyYXdJbmRleGVkKGluZGV4Q291bnQsIGluc3RhbmNlQ291bnQsIGZpcnN0SW5kZXgsIGJh
c2VWZXJ0ZXgsIGZpcnN0SW5zdGFuY2UpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3SW5kaXJlY3QoY29uc3QgR1BVQnVmZmVyJiBpbmRpcmVjdEJ1ZmZlciwgR1BVU2l6ZTY0
IGluZGlyZWN0T2Zmc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShpbmRpcmVjdEJ1ZmZlcik7Ci0g
ICAgVU5VU0VEX1BBUkFNKGluZGlyZWN0T2Zmc2V0KTsKKyAgICBtX2JhY2tpbmctPmRyYXdJbmRp
cmVjdChpbmRpcmVjdEJ1ZmZlci5iYWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAogdm9p
ZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhd0luZGV4ZWRJbmRpcmVjdChjb25zdCBHUFVCdWZm
ZXImIGluZGlyZWN0QnVmZmVyLCBHUFVTaXplNjQgaW5kaXJlY3RPZmZzZXQpCiB7Ci0gICAgVU5V
U0VEX1BBUkFNKGluZGlyZWN0QnVmZmVyKTsKLSAgICBVTlVTRURfUEFSQU0oaW5kaXJlY3RPZmZz
ZXQpOworICAgIG1fYmFja2luZy0+ZHJhd0luZGV4ZWRJbmRpcmVjdChpbmRpcmVjdEJ1ZmZlci5i
YWNraW5nKCksIGluZGlyZWN0T2Zmc2V0KTsKIH0KIAotdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0QmluZEdyb3VwKEdQVUluZGV4MzIsIGNvbnN0IEdQVUJpbmRHcm91cCYsCit2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiBpbmRleCwgY29uc3Qg
R1BVQmluZEdyb3VwJiBiaW5kR3JvdXAsCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8R1BVQnVm
ZmVyRHluYW1pY09mZnNldD4+JiYgZHluYW1pY09mZnNldHMpCiB7Ci0gICAgVU5VU0VEX1BBUkFN
KGR5bmFtaWNPZmZzZXRzKTsKKyAgICBtX2JhY2tpbmctPnNldEJpbmRHcm91cChpbmRleCwgYmlu
ZEdyb3VwLmJhY2tpbmcoKSwgV1RGTW92ZShkeW5hbWljT2Zmc2V0cykpOwogfQogCi12b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAoR1BVSW5kZXgzMiwgY29uc3QgR1BVQmlu
ZEdyb3VwJiwKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJpbmRHcm91cChHUFVJbmRl
eDMyIGluZGV4LCBjb25zdCBHUFVCaW5kR3JvdXAmIGJpbmRHcm91cCwKICAgICBjb25zdCBVaW50
MzJBcnJheSYgZHluYW1pY09mZnNldHNEYXRhLAogICAgIEdQVVNpemU2NCBkeW5hbWljT2Zmc2V0
c0RhdGFTdGFydCwKICAgICBHUFVTaXplMzIgZHluYW1pY09mZnNldHNEYXRhTGVuZ3RoKQogewot
ICAgIFVOVVNFRF9QQVJBTShkeW5hbWljT2Zmc2V0c0RhdGEpOwotICAgIFVOVVNFRF9QQVJBTShk
eW5hbWljT2Zmc2V0c0RhdGFTdGFydCk7Ci0gICAgVU5VU0VEX1BBUkFNKGR5bmFtaWNPZmZzZXRz
RGF0YUxlbmd0aCk7CisgICAgbV9iYWNraW5nLT5zZXRCaW5kR3JvdXAoaW5kZXgsIGJpbmRHcm91
cC5iYWNraW5nKCksIGR5bmFtaWNPZmZzZXRzRGF0YS5kYXRhKCksIGR5bmFtaWNPZmZzZXRzRGF0
YS5sZW5ndGgoKSwgZHluYW1pY09mZnNldHNEYXRhU3RhcnQsIGR5bmFtaWNPZmZzZXRzRGF0YUxl
bmd0aCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0
cmluZyYmIGdyb3VwTGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworICAg
IG1fYmFja2luZy0+cHVzaERlYnVnR3JvdXAoV1RGTW92ZShncm91cExhYmVsKSk7CiB9CiAKIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogeworICAgIG1fYmFja2lu
Zy0+cG9wRGVidWdHcm91cCgpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjppbnNl
cnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0o
bWFya2VyTGFiZWwpOworICAgIG1fYmFja2luZy0+aW5zZXJ0RGVidWdNYXJrZXIoV1RGTW92ZSht
YXJrZXJMYWJlbCkpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9y
dChmbG9hdCB4LCBmbG9hdCB5LAogICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsCiAgICAg
ZmxvYXQgbWluRGVwdGgsIGZsb2F0IG1heERlcHRoKQogewotICAgIFVOVVNFRF9QQVJBTSh4KTsK
LSAgICBVTlVTRURfUEFSQU0oeSk7Ci0gICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKLSAgICBVTlVT
RURfUEFSQU0oaGVpZ2h0KTsKLSAgICBVTlVTRURfUEFSQU0obWluRGVwdGgpOwotICAgIFVOVVNF
RF9QQVJBTShtYXhEZXB0aCk7CisgICAgbV9iYWNraW5nLT5zZXRWaWV3cG9ydCh4LCB5LCB3aWR0
aCwgaGVpZ2h0LCBtaW5EZXB0aCwgbWF4RGVwdGgpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NF
bmNvZGVyOjpzZXRTY2lzc29yUmVjdChHUFVJbnRlZ2VyQ29vcmRpbmF0ZSB4LCBHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZSB5LAogICAgIEdQVUludGVnZXJDb29yZGluYXRlIHdpZHRoLCBHUFVJbnRlZ2Vy
Q29vcmRpbmF0ZSBoZWlnaHQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9Q
QVJBTSh5KTsKLSAgICBVTlVTRURfUEFSQU0od2lkdGgpOwotICAgIFVOVVNFRF9QQVJBTShoZWln
aHQpOworICAgIG1fYmFja2luZy0+c2V0U2Npc3NvclJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7
CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJsZW5kQ29uc3RhbnQoR1BVQ29s
b3IpCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbnN0YW50KEdQVUNvbG9y
IGNvbG9yKQogeworICAgIG1fYmFja2luZy0+c2V0QmxlbmRDb25zdGFudChjb252ZXJ0VG9CYWNr
aW5nKGNvbG9yKSk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFN0ZW5jaWxS
ZWZlcmVuY2UoR1BVU3RlbmNpbFZhbHVlKQordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
U3RlbmNpbFJlZmVyZW5jZShHUFVTdGVuY2lsVmFsdWUgc3RlbmNpbFZhbHVlKQogeworICAgIG1f
YmFja2luZy0+c2V0U3RlbmNpbFJlZmVyZW5jZShzdGVuY2lsVmFsdWUpOwogfQogCiB2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpiZWdpbk9jY2x1c2lvblF1ZXJ5KEdQVVNpemUzMiBxdWVyeUlu
ZGV4KQogewotICAgIFVOVVNFRF9QQVJBTShxdWVyeUluZGV4KTsKKyAgICBtX2JhY2tpbmctPmJl
Z2luT2NjbHVzaW9uUXVlcnkocXVlcnlJbmRleCk7CiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OmVuZE9jY2x1c2lvblF1ZXJ5KCkKIHsKKyAgICBtX2JhY2tpbmctPmVuZE9jY2x1c2lv
blF1ZXJ5KCk7CiB9CiAKLXZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVT
dGF0aXN0aWNzUXVlcnkoY29uc3QgR1BVUXVlcnlTZXQmLCBHUFVTaXplMzIgcXVlcnlJbmRleCkK
K3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmJlZ2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnko
Y29uc3QgR1BVUXVlcnlTZXQmIHF1ZXJ5U2V0LCBHUFVTaXplMzIgcXVlcnlJbmRleCkKIHsKLSAg
ICBVTlVTRURfUEFSQU0ocXVlcnlJbmRleCk7CisgICAgbV9iYWNraW5nLT5iZWdpblBpcGVsaW5l
U3RhdGlzdGljc1F1ZXJ5KHF1ZXJ5U2V0LmJhY2tpbmcoKSwgcXVlcnlJbmRleCk7CiB9CiAKIHZv
aWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCkKIHsK
KyAgICBtX2JhY2tpbmctPmVuZFBpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5KCk7CiB9CiAKLXZvaWQg
R1BVUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxSZWZQdHI8R1BVUmVu
ZGVyQnVuZGxlPj4mJikKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVz
KFZlY3RvcjxSZWZQdHI8R1BVUmVuZGVyQnVuZGxlPj4mJiBidW5kbGVzKQogeworICAgIFZlY3Rv
cjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+PiByZXN1
bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYnVuZGxlcy5zaXplKCkpOwor
ICAgIGZvciAoY29uc3QgYXV0byYgYnVuZGxlIDogYnVuZGxlcykgeworICAgICAgICBpZiAoIWJ1
bmRsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQudW5jaGVja2VkQXBw
ZW5kKGJ1bmRsZS0+YmFja2luZygpKTsKKyAgICB9CisgICAgbV9iYWNraW5nLT5leGVjdXRlQnVu
ZGxlcyhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpl
bmRQYXNzKCkKIHsKKyAgICBtX2JhY2tpbmctPmVuZFBhc3MoKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5k
ZXggNDJlODA0MzliNTkzN2M0YmI5ZmNhYzMwNTI4YmE1YTFiOWMyNjYyMC4uZmM4MTcxYzRhZWE0
ZWVlMzZkOGMyNzA3Nzg2NmU3NjBkYjZlZGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiR1BVSW50ZWdyYWxUeXBlcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1VpbnQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
QEAgLTQ2LDkgKzQ3LDkgQEAgY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKIGNsYXNzIEdQVVJl
bmRlclBhc3NFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUmVuZGVyUGFzc0VuY29kZXI+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEdQVVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUo
KQorICAgIHN0YXRpYyBSZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+IGNyZWF0ZShSZWY8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyPiYmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVSZW5kZXJQYXNzRW5jb2RlcigpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR1BVUmVuZGVyUGFzc0VuY29kZXIoV1RGTW92ZShiYWNraW5nKSkpOwog
ICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwpAQCAtMTAwLDggKzEwMSwxNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8UmVmUHRyPEdQVVJlbmRlckJ1
bmRsZT4+JiYpOwogICAgIHZvaWQgZW5kUGFzcygpOwogCisgICAgUEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NFbmNvZGVyJiBiYWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3Qg
UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVUmVuZGVyUGFzc0VuY29kZXIoKSA9IGRl
ZmF1bHQ7CisgICAgR1BVUmVuZGVyUGFzc0VuY29kZXIoUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQ
YXNzRW5jb2Rlcj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tp
bmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNv
ZGVyPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmgKaW5kZXggODBlMjYwMjg3M2UyNzVjNWE3ODFm
YTNlYTMwOTQyOGI5MmU0M2I5NC4uNjE0NDdmM2U2NzA5MzE0ZGRhOTI3YmE5ZmI4MjFhYzg5MWUx
Y2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
UGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBhc3NMYXlvdXQuaApAQCAtMjksMTEgKzI5LDI4IEBACiAjaW5jbHVkZSAiR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlRm9ybWF0LmgiCiAjaW5jbHVkZSA8
b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
TGF5b3V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0
b3JCYXNlIHsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91dCBjb252ZXJ0VG9CYWNr
aW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxhYmVs
IH0sCisgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+IGNvbG9yRm9ybWF0czsKKyAgICAgICAgICAgICAgICBj
b2xvckZvcm1hdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb2xvckZvcm1hdHMuc2l6
ZSgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbG9yRm9ybWF0IDogdGhp
cy0+Y29sb3JGb3JtYXRzKQorICAgICAgICAgICAgICAgICAgICBjb2xvckZvcm1hdHMudW5jaGVj
a2VkQXBwZW5kKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29sb3JGb3JtYXQpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY29sb3JGb3JtYXRzOworICAgICAgICAgICAgfSkoKSwKKyAgICAg
ICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxGb3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAg
ICAgICAgICBzYW1wbGVDb3VudCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBWZWN0b3I8R1BV
VGV4dHVyZUZvcm1hdD4gY29sb3JGb3JtYXRzOwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVVGV4dHVy
ZUZvcm1hdD4gZGVwdGhTdGVuY2lsRm9ybWF0OwogICAgIEdQVVNpemUzMiBzYW1wbGVDb3VudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NU
aW1lc3RhbXBMb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVu
ZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKaW5kZXggZmYxNjIxYTMyMTg5ODRhNTlhMzU1ZmUx
ZGEwZjc0NWJlNjMzZjNiMC4uYWQ2MGRjZWZjZWQzYTA1ODkyZjVhMzFlOTcwZDEyOGYxZTI4MjAy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcExvY2F0aW9uIDogdWludDhfdCB7CiAgICAgRW5kCiB9OwogCitpbmxpbmUgUEFMOjpXZWJH
UFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbiBjb252ZXJ0VG9CYWNraW5nKEdQVVJlbmRl
clBhc3NUaW1lc3RhbXBMb2NhdGlvbiByZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24pCit7Cisg
ICAgc3dpdGNoIChyZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24pIHsKKyAgICBjYXNlIEdQVVJl
bmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6QmVnaW5uaW5nOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbjo6QmVnaW5uaW5nOworICAgIGNh
c2UgR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpFbmQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uOjpFbmQ7CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
LmgKaW5kZXggNzdjOTM1YjQ0ODVkZjQzNGQ4MjA4YTBmMWZlZTgwMGRiMjZkM2QyMS4uZmMxMmMx
NGY5NWRiZDVjZWJmMmQxOWIyMTg3ZDZmYWNhMGZmMGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
LmgKQEAgLTI4LDE3ICsyOCwzNyBAQAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNp
bmNsdWRlICJHUFVRdWVyeVNldC5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBhc3NUaW1lc3RhbXBM
b2NhdGlvbi5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZSB7Ci0gICAgUmVmUHRyPEdQVVF1ZXJ5U2V0PiBxdWVyeVNldDsKKyAg
ICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlIGNvbnZlcnRUb0JhY2tpbmco
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKHF1ZXJ5U2V0KTsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHF1ZXJ5U2V0LT5iYWNraW5nKCksCisgICAgICAgICAgICBxdWVyeUlu
ZGV4LAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhsb2NhdGlvbiksCisg
ICAgICAgIH07CisgICAgfQorCisgICAgR1BVUXVlcnlTZXQqIHF1ZXJ5U2V0OwogICAgIEdQVVNp
emUzMiBxdWVyeUluZGV4OwogICAgIEdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbiBsb2Nh
dGlvbjsKIH07CiAKIHVzaW5nIEdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8
R1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPjsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGVzIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgR1BVUmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcyYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykKK3sKKyAgICBQQUw6
OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyByZXN1bHQ7CisgICAgcmVzdWx0LnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOwor
ICAgIGZvciAoYXV0byYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlIDogcmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlcykKKyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChyZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQaXBl
bGluZS5jcHAKaW5kZXggMTBhZGJjMGYwZjMyNGZjMWIxYzc5YjAwOWRjYWM3MzZiMzdjMGJlMi4u
MmRiNzJjOTRmMTRmZDJhMTk3ZjA2ZGFjOTVhMmQ5ZWEwOTczODE4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMzIs
MTYgKzMyLDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVVJlbmRlclBpcGVs
aW5lOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVSZW5kZXJQaXBlbGlu
ZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVJlbmRlclBpcGVsaW5lOjpzZXRMYWJlbChT
dHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwp
KTsKIH0KIAotUmVmPEdQVUJpbmRHcm91cExheW91dD4gR1BVUmVuZGVyUGlwZWxpbmU6OmdldEJp
bmRHcm91cExheW91dCh1aW50MzJfdCkKK1JlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVVJlbmRl
clBpcGVsaW5lOjpnZXRCaW5kR3JvdXBMYXlvdXQodWludDMyX3QgaW5kZXgpCiB7Ci0gICAgcmV0
dXJuIEdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91
cExheW91dDo6Y3JlYXRlKG1fYmFja2luZy0+Z2V0QmluZEdyb3VwTGF5b3V0KGluZGV4KSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQaXBl
bGluZS5oCmluZGV4IDQ4ZGQ3ODdhYzJmOGVkYmZlYTQ3NzYxYTI4N2EzMjU2MmNkMDk1ZWEuLjA1
OTgwMDJmMzc5YTA0NDFhMmI0NzFiNDdmNWQ0ZGE5ZWFhODU0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KQEAgLTM2LDkgKzM3LDkgQEAgY2xhc3MgR1BVQmluZEdyb3VwTGF5b3V0OwogCiBj
bGFzcyBHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVJlbmRlclBpcGVs
aW5lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRl
KCkKKyAgICBzdGF0aWMgUmVmPEdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoUmVmPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR1BVUmVuZGVyUGlwZWxpbmUoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUoYmFja2luZykpKTsKICAgICB9CiAKICAg
ICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKQEAgLTQ2LDggKzQ3LDE2IEBAIHB1YmxpYzoKIAogICAg
IFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGdldEJpbmRHcm91cExheW91dCh1aW50MzJfdCBpbmRl
eCk7CiAKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUmIGJhY2tpbmcoKSB7IHJldHVy
biBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUmIGJh
Y2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVS
ZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKyAgICBHUFVSZW5kZXJQaXBlbGluZShSZWY8UEFM
OjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5n
KFdURk1vdmUoYmFja2luZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6
UmVuZGVyUGlwZWxpbmU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
aW5kZXggZWFmZjlkMDJmZWE4NWI2NjhhY2EzOTA4ZDQ1ZGM1OTg5ZWRlMzk3MS4uMTI5YTk3YzI1
MmFkNmMxZjNhOWVhN2QzNWRlOTk5YTYzNzI3NGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
QEAgLTMyLDEwICszMiwyNiBAQAogI2luY2x1ZGUgIkdQVVByaW1pdGl2ZVN0YXRlLmgiCiAjaW5j
bHVkZSAiR1BVVmVydGV4U3RhdGUuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Ig
OiBwdWJsaWMgR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgeyBsYWJlbCB9
LAorICAgICAgICAgICAgICAgIGxheW91dCA/ICZsYXlvdXQtPmJhY2tpbmcoKSA6IG51bGxwdHIs
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVydGV4LmNvbnZlcnRUb0JhY2tpbmcoKSwK
KyAgICAgICAgICAgIHByaW1pdGl2ZSA/IHN0ZDo6b3B0aW9uYWwgeyBwcmltaXRpdmUtPmNvbnZl
cnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgZGVwdGhTdGVuY2ls
ID8gc3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbC0+Y29udmVydFRvQmFja2luZygpIH0gOiBz
dGQ6Om51bGxvcHQsCisgICAgICAgICAgICBtdWx0aXNhbXBsZSA/IHN0ZDo6b3B0aW9uYWwgeyBt
dWx0aXNhbXBsZS0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAg
ICAgICBmcmFnbWVudCA/IHN0ZDo6b3B0aW9uYWwgeyBmcmFnbWVudC0+Y29udmVydFRvQmFja2lu
ZygpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVVmVydGV4
U3RhdGUgdmVydGV4OwogICAgIHN0ZDo6b3B0aW9uYWw8R1BVUHJpbWl0aXZlU3RhdGU+IHByaW1p
dGl2ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVURlcHRoU3RlbmNpbFN0YXRlPiBkZXB0aFN0ZW5j
aWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5oCmluZGV4IDdmYTA5ZTkwYmU0Y2VlZjJhYWViMGFlM2M4ZjEyMTQ1
OGM0N2QzNTEuLjJmMGFiYjU2NWIwMDk5NWExM2YxOTA3M2QzMmNlMGIxMzM3M2NkYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5oCkBAIC0yNywxMCArMjcsMTkgQEAKIAogI2luY2x1ZGUgIkdQVVBvd2VyUHJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucyB7CisgICAgUEFMOjpXZWJHUFU6
OlJlcXVlc3RBZGFwdGVyT3B0aW9ucyBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBwb3dlclByZWZlcmVuY2UgPyBzdGQ6Om9wdGlv
bmFsIHsgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZygqcG93ZXJQcmVmZXJlbmNlKSB9IDogc3Rk
OjpudWxsb3B0LAorICAgICAgICAgICAgZm9yY2VGYWxsYmFja0FkYXB0ZXIsCisgICAgICAgIH07
CisgICAgfQorCiAgICAgc3RkOjpvcHRpb25hbDxHUFVQb3dlclByZWZlcmVuY2U+IHBvd2VyUHJl
ZmVyZW5jZTsKICAgICBib29sIGZvcmNlRmFsbGJhY2tBZGFwdGVyOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlci5jcHAKaW5kZXggZDU5ODBhMzNiNTU5ZmY2
NDNjNTZiMDk2YjZiMGFiZGNjNTY1Y2FhYy4uZDM3NTY3ZTQ5OWEzZmMxNWE1NmY3MzViNjU2ZGFl
ODMxNzc5NWZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxl
ci5jcHAKQEAgLTMwLDExICszMCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBH
UFVTYW1wbGVyOjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5
KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVTYW1wbGVy
OjpzZXRMYWJlbChTdHJpbmcmJikKK3ZvaWQgR1BVU2FtcGxlcjo6c2V0TGFiZWwoU3RyaW5nJiYg
bGFiZWwpCiB7CisgICAgbV9iYWNraW5nLT5zZXRMYWJlbChXVEZNb3ZlKGxhYmVsKSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXIuaAppbmRleCAyOGJk
YTY2ZjJkMmRjNjlhNGMwY2NiMzVjNTZhOGY1ZjFhMDQzNzhiLi5kODkyNDliMTNjZDJjNmNiYTA3
NmEwZTljMjZjZDRlZmFlODIzZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVTYW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVU2FtcGxlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0zMywxNiArMzQsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBHUFVTYW1wbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVU2FtcGxlcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8R1BVU2FtcGxlcj4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVNh
bXBsZXI+IGNyZWF0ZShSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+JiYgYmFja2luZykKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVNhbXBsZXIoKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEdQVVNhbXBsZXIoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0K
IAogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYp
OwogCisgICAgUEFMOjpXZWJHUFU6OlNhbXBsZXImIGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tp
bmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciYgYmFja2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQVVNhbXBsZXIoKSA9IGRlZmF1
bHQ7CisgICAgR1BVU2FtcGxlcihSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpTYW1wbGVyPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTYW1wbGVyQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdMYXlv
dXQuaAppbmRleCAzZWVkMWY0YmUwYWFjMTIzOTk4MDI1YTNkZjBkMzA5MzhkOGFkZTVlLi40OWQz
ZThiMDZhNDY2OTNiNzU5ZmRiYTcwNjNiODcxMjFiM2M5NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgKQEAg
LTI2LDEwICsyNiwxOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJHUFVTYW1wbGVyQmlu
ZGluZ1R5cGUuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVVNhbXBs
ZXJCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQg
Y29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh0eXBlKSwKKyAgICAgICAgfTsKKyAgICB9
CisKICAgICBHUFVTYW1wbGVyQmluZGluZ1R5cGUgdHlwZTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJCaW5kaW5nVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKaW5kZXgg
NzZhNTdlZmFlNWJhMmVlY2ExZDA5ZTQ3OWNmOWI4MmRmZWU5MWQ3My4uYWEyOWY1YmUxZTYyNWRh
MDc2Y2JkNzk3NjhlNmUwY2I4ZjIyZTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckJpbmRpbmdUeXBlLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nVHlwZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTM1LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVU2FtcGxlckJpbmRpbmdUeXBl
IDogdWludDhfdCB7CiAgICAgQ29tcGFyaXNvbgogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpT
YW1wbGVyQmluZGluZ1R5cGUgY29udmVydFRvQmFja2luZyhHUFVTYW1wbGVyQmluZGluZ1R5cGUg
c2FtcGxlckJpbmRpbmdUeXBlKQoreworICAgIHN3aXRjaCAoc2FtcGxlckJpbmRpbmdUeXBlKSB7
CisgICAgY2FzZSBHUFVTYW1wbGVyQmluZGluZ1R5cGU6OkZpbHRlcmluZzoKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ1R5cGU6OkZpbHRlcmluZzsKKyAgICBjYXNl
IEdQVVNhbXBsZXJCaW5kaW5nVHlwZTo6Tm9uRmlsdGVyaW5nOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Tm9uRmlsdGVyaW5nOworICAgIGNhc2UgR1BV
U2FtcGxlckJpbmRpbmdUeXBlOjpDb21wYXJpc29uOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJH
UFU6OlNhbXBsZXJCaW5kaW5nVHlwZTo6Q29tcGFyaXNvbjsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVNhbXBsZXJEZXNjcmlwdG9yLmgKaW5kZXggNGE1YjljOThhNmY1YmI1
YWRkNTBlZGZlMWM5MzUzMmE2ZWFmMjI0ZS4uODhlMmFjZDgzMWZhNmQxZmVlMzYyZjc3ZWRlMDdl
ZjNjMDczMTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U2FtcGxlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVTYW1wbGVyRGVzY3JpcHRvci5oCkBAIC0zMSwxMCArMzEsMjggQEAKICNpbmNsdWRlICJHUFVP
YmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8b3B0
aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVTYW1wbGVyRGVzY3Jp
cHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6
OlNhbXBsZXJEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6
OmNvbnZlcnRUb0JhY2tpbmcoYWRkcmVzc01vZGVVKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNv
bnZlcnRUb0JhY2tpbmcoYWRkcmVzc01vZGVWKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZl
cnRUb0JhY2tpbmcoYWRkcmVzc01vZGVXKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRU
b0JhY2tpbmcobWFnRmlsdGVyKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcobWluRmlsdGVyKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcobWlw
bWFwRmlsdGVyKSwKKyAgICAgICAgICAgIGxvZE1pbkNsYW1wLAorICAgICAgICAgICAgbG9kTWF4
Q2xhbXAsCisgICAgICAgICAgICBjb21wYXJlID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNv
bnZlcnRUb0JhY2tpbmcoKmNvbXBhcmUpIH0gOiBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICBt
YXhBbmlzb3Ryb3B5LAorICAgICAgICB9OworICAgIH0KKwogICAgIEdQVUFkZHJlc3NNb2RlIGFk
ZHJlc3NNb2RlVTsKICAgICBHUFVBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVY7CiAgICAgR1BVQWRk
cmVzc01vZGUgYWRkcmVzc01vZGVXOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVNoYWRlck1vZHVsZS5jcHAKaW5kZXggNGNhNzU4MDhhNzRlMjhhZjBkMTgwZDQyZTVi
NTc3ZTU5MzhkYzhiYy4uMzQ2MTMyNTA0MTBiZDJmODk2NTg0YjRmODk4NjdkMjFiNTliZTlkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGUu
Y3BwCkBAIC0yNSwyMCArMjUsMjUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIkpTR1BVQ29tcGlsYXRpb25JbmZvLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQVVNoYWRlck1vZHVsZTo6bGFiZWwoKSBj
b25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVybiBtX2Jh
Y2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJp
bmcmJikKK3ZvaWQgR1BVU2hhZGVyTW9kdWxlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkKIHsK
KyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFiZWwpKTsKIH0KIAotdm9pZCBHUFVT
aGFkZXJNb2R1bGU6OmNvbXBpbGF0aW9uSW5mbyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmKQordm9p
ZCBHUFVTaGFkZXJNb2R1bGU6OmNvbXBpbGF0aW9uSW5mbyhDb21waWxhdGlvbkluZm9Qcm9taXNl
JiYgcHJvbWlzZSkKIHsKKyAgICBtX2JhY2tpbmctPmNvbXBpbGF0aW9uSW5mbyhbcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldIChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbz4mJiBj
b21waWxhdGlvbkluZm8pIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoR1BVQ29t
cGlsYXRpb25JbmZvOjpjcmVhdGUoV1RGTW92ZShjb21waWxhdGlvbkluZm8pKSk7CisgICAgfSk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNo
YWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9k
dWxlLmgKaW5kZXggYjJlNTE3MzllZWM4NmE2YmQ4ZTE2MDdhYTU0OTc5N2JjODI1MDhmNC4uN2Nk
YTBmYjVmYjRiZDhkOWJiNzY0ZjgzMGEwOTczMzM1OGEwYmUyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlLmgKQEAgLTI2LDYgKzI2LDkgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0LmgiCisjaW5jbHVk
ZSAiR1BVQ29tcGlsYXRpb25JbmZvLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYsMTggKzM5LDI3IEBAIGNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIAogY2xhc3MgR1BVU2hhZGVyTW9kdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVU2hhZGVyTW9kdWxlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTaGFkZXJNb2R1
bGU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZShSZWY8
UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR1BVU2hhZGVyTW9kdWxlKCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHUFVTaGFkZXJNb2R1bGUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAog
ICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoU3RyaW5nJiYpOwog
Ci0gICAgdm9pZCBjb21waWxhdGlvbkluZm8oUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAg
dXNpbmcgQ29tcGlsYXRpb25JbmZvUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8R1BVQ29tcGlsYXRpb25JbmZvPj47CisgICAgdm9pZCBjb21waWxhdGlvbkluZm8oQ29t
cGlsYXRpb25JbmZvUHJvbWlzZSYmKTsKKworICAgIFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUm
IGJhY2tpbmcoKSB7IHJldHVybiBtX2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6
U2hhZGVyTW9kdWxlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKIHBy
aXZhdGU6Ci0gICAgR1BVU2hhZGVyTW9kdWxlKCkgPSBkZWZhdWx0OworICAgIEdQVVNoYWRlck1v
ZHVsZShSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4mJiBiYWNraW5nKQorICAgICAgICA6
IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8UEFM
OjpXZWJHUFU6OlNoYWRlck1vZHVsZT4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oCmluZGV4IGU4MDBiNzA5OWE3ZTZmODM1NmVjYzMzNzZhZDFkOWRjZGJkMTc2YmQuLjE2MTcz
MjVhZjNhYzczNDRkMjk3NTFlNTYwZTRmOTNiZjQyNTkxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgK
QEAgLTI4LDExICsyOCwyMSBAQAogI2luY2x1ZGUgIkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlNo
YWRlck1vZHVsZURlc2NyaXB0b3IgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgeyBsYWJlbCB9LAorICAgICAgICAgICAgY29kZSwK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIHNvdXJjZU1hcC4KKyAgICAgICAgfTsK
KyAgICB9CisKICAgICBTdHJpbmcgY29kZTsKICAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
PiBzb3VyY2VNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU2hhZGVyU3RhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVNo
YWRlclN0YWdlLmgKaW5kZXggOWMxZDQ5ZWQ3MTVlMDQwZmVlNWYyZjUwZmJlYjA0ODNjYjBhODJm
Yy4uN2VkYTNiYjBiYzUwMjJmZjQwOTkyNjJiY2ZlMjY3NGI3ZDUxODU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU2hhZGVyU3RhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTaGFkZXJTdGFnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJHUFVJbnRlZ3JhbFR5cGVzLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4K
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlclN0YWdlLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNCAr
NDAsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBD
T01QVVRFICA9IDB4NDsKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2VGbGFn
cyBjb252ZXJ0U2hhZGVyU3RhZ2VGbGFnc1RvQmFja2luZyhHUFVTaGFkZXJTdGFnZUZsYWdzIHNo
YWRlclN0YWdlRmxhZ3MpCit7CisgICAgUEFMOjpXZWJHUFU6OlNoYWRlclN0YWdlRmxhZ3MgcmVz
dWx0ID0gMDsKKyAgICBpZiAoc2hhZGVyU3RhZ2VGbGFncyAmIEdQVVNoYWRlclN0YWdlOjpWRVJU
RVgpCisgICAgICAgIHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6U2hhZGVyU3RhZ2U6OlZFUlRFWDsK
KyAgICBpZiAoc2hhZGVyU3RhZ2VGbGFncyAmIEdQVVNoYWRlclN0YWdlOjpGUkFHTUVOVCkKKyAg
ICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZTo6RlJBR01FTlQ7CisgICAg
aWYgKHNoYWRlclN0YWdlRmxhZ3MgJiBHUFVTaGFkZXJTdGFnZTo6Q09NUFVURSkKKyAgICAgICAg
cmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpTaGFkZXJTdGFnZTo6Q09NUFVURTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVTdGVuY2lsRmFjZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVTdGVuY2lsRmFjZVN0YXRlLmgKaW5kZXggMTUxMGZhZTY3NWViZjM3ZjZjNTRlNDVmNjMzNDBj
OTNmMGI3YmMzYS4uOTI0NTVmYTU1YTdiY2FjN2RjY2JmY2ZkYjYyYzhlYWFmNjQ0ZDQ5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0ZW5jaWxGYWNlU3Rh
dGUuaApAQCAtMjcsMTAgKzI3LDIxIEBACiAKICNpbmNsdWRlICJHUFVDb21wYXJlRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJHUFVTdGVuY2lsT3BlcmF0aW9uLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEdQVVN0ZW5jaWxGYWNlU3RhdGUgeworICAgIFBBTDo6V2ViR1BVOjpTdGVu
Y2lsRmFjZVN0YXRlIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29tcGFyZSksCisg
ICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGZhaWxPcCksCisgICAgICAgICAg
ICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGRlcHRoRmFpbE9wKSwKKyAgICAgICAgICAgIFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocGFzc09wKSwKKyAgICAgICAgfTsKKyAgICB9CisKICAg
ICBHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZTsKICAgICBHUFVTdGVuY2lsT3BlcmF0aW9uIGZh
aWxPcDsKICAgICBHUFVTdGVuY2lsT3BlcmF0aW9uIGRlcHRoRmFpbE9wOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RlbmNpbE9wZXJhdGlvbi5oCmluZGV4IDhm
M2RiYzNhYmFiZGMxYTQ2ZDA5MzZjZmY0NWI5YzRkYzdlN2UxZDMuLjhjODM4YTcxNTg2MmRmMDA5
NDc4NGViNzBlOGZiMjJlMTBlMTJlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVN0ZW5jaWxPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVTdGVuY2lsT3BlcmF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00MCw0ICs0MSwyNyBAQCBlbnVtIGNsYXNzIEdQVVN0ZW5jaWxPcGVyYXRpb24gOiB1aW50OF90
IHsKICAgICBEZWNyZW1lbnRXcmFwCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlN0ZW5jaWxP
cGVyYXRpb24gY29udmVydFRvQmFja2luZyhHUFVTdGVuY2lsT3BlcmF0aW9uIHN0ZW5jaWxPcGVy
YXRpb24pCit7CisgICAgc3dpdGNoIChzdGVuY2lsT3BlcmF0aW9uKSB7CisgICAgY2FzZSBHUFVT
dGVuY2lsT3BlcmF0aW9uOjpLZWVwOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0ZW5j
aWxPcGVyYXRpb246OktlZXA7CisgICAgY2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpaZXJvOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246Olplcm87CisgICAg
Y2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpSZXBsYWNlOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlN0ZW5jaWxPcGVyYXRpb246OlJlcGxhY2U7CisgICAgY2FzZSBHUFVTdGVuY2lsT3Bl
cmF0aW9uOjpJbnZlcnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJh
dGlvbjo6SW52ZXJ0OworICAgIGNhc2UgR1BVU3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50Q2xh
bXA6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVt
ZW50Q2xhbXA7CisgICAgY2FzZSBHUFVTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRDbGFtcDoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpTdGVuY2lsT3BlcmF0aW9uOjpEZWNyZW1lbnRD
bGFtcDsKKyAgICBjYXNlIEdQVVN0ZW5jaWxPcGVyYXRpb246OkluY3JlbWVudFdyYXA6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6SW5jcmVtZW50V3JhcDsK
KyAgICBjYXNlIEdQVVN0ZW5jaWxPcGVyYXRpb246OkRlY3JlbWVudFdyYXA6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6U3RlbmNpbE9wZXJhdGlvbjo6RGVjcmVtZW50V3JhcDsKKyAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgK
aW5kZXggYWZjMzg4MWRjNDIzZGVhMjdiOWU4Mjg4NjlkYmU4MzVhNWVkM2E0MC4uYjViMGRlNTQ2
ZTZhY2QxNjhmMDA2YmU0Y2I4N2UxNWVjZTEzMjRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDQgKzM0LDEzIEBAIGVudW0gY2xhc3MgR1BVU3RvcmFn
ZVRleHR1cmVBY2Nlc3MgOiB1aW50OF90IHsKICAgICBXcml0ZU9ubHkKIH07CiAKK2lubGluZSBQ
QUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVBY2Nlc3MgY29udmVydFRvQmFja2luZyhHUFVTdG9y
YWdlVGV4dHVyZUFjY2VzcyBzdG9yYWdlVGV4dHVyZUFjY2VzcykKK3sKKyAgICBzd2l0Y2ggKHN0
b3JhZ2VUZXh0dXJlQWNjZXNzKSB7CisgICAgY2FzZSBHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzczo6
V3JpdGVPbmx5OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQWNj
ZXNzOjpXcml0ZU9ubHk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0
b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggYWFjNjU0YTRmOTQzMGQy
NzA2N2EzZTExZmU2NmNiMjJkYmI2MTk1Mi4uMjM3YTc5YmFmNjIzNjgwZjA3YmY1YmMzNjdkNDg5
MTAyYmUyMGJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI4LDEwICsyOCwy
MCBAQAogI2luY2x1ZGUgIkdQVVN0b3JhZ2VUZXh0dXJlQWNjZXNzLmgiCiAjaW5jbHVkZSAiR1BV
VGV4dHVyZUZvcm1hdC5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVU3RvcmFnZVRleHR1
cmVCaW5kaW5nTGF5b3V0IHsKKyAgICBQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoYWNjZXNzKSwKKyAgICAgICAg
ICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoZm9ybWF0KSwKKyAgICAgICAgICAgIFdlYkNv
cmU6OmNvbnZlcnRUb0JhY2tpbmcodmlld0RpbWVuc2lvbiksCisgICAgICAgIH07CisgICAgfQor
CiAgICAgR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MgYWNjZXNzOwogICAgIEdQVVRleHR1cmVGb3Jt
YXQgZm9ybWF0OwogICAgIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdG9yZU9wLmgKaW5kZXggYzAxNmZkNjg2
MDU0ZmJhNTc4NDRjYjQ0YmMxOWJiNWQzYWEwMTg0MS4uNDUxZTVmMDcwNmMyZWRhNzAzMGRiYjFm
YWFhNTg3MjFmNWU3MmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVU3RvcmVPcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN0
b3JlT3AuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3Rk
aW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmVPcC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDQgKzM1LDE1IEBAIGVudW0gY2xhc3MgR1BVU3Rv
cmVPcCA6IHVpbnQ4X3QgewogICAgIERpc2NhcmQKIH07CiAKK2lubGluZSBQQUw6OldlYkdQVTo6
U3RvcmVPcCBjb252ZXJ0VG9CYWNraW5nKEdQVVN0b3JlT3Agc3RvcmVPcCkKK3sKKyAgICBzd2l0
Y2ggKHN0b3JlT3ApIHsKKyAgICBjYXNlIEdQVVN0b3JlT3A6OlN0b3JlOgorICAgICAgICByZXR1
cm4gUEFMOjpXZWJHUFU6OlN0b3JlT3A6OlN0b3JlOworICAgIGNhc2UgR1BVU3RvcmVPcDo6RGlz
Y2FyZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpTdG9yZU9wOjpEaXNjYXJkOworICAg
IH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAK
aW5kZXggNjEzZmViMzI4ZjM0YTdlZDQ1MzVkNjI2OTBhNGI0YTY3OWE5YmNlOS4uM2UyOTE2NDdm
ZjlmOWY0NDczZjQ5YmY2N2UzYmFiYzg0MzQ4MTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcApAQCAtMjUsMTEg
KzI1LDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBHUFVTdXBwb3J0ZWRGZWF0dXJlczo6aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRh
cHRlciYpIGNvbnN0Cit2b2lkIEdQVVN1cHBvcnRlZEZlYXR1cmVzOjppbml0aWFsaXplU2V0TGlr
ZShET01TZXRBZGFwdGVyJiBzZXQpIGNvbnN0CiB7CisgICAgZm9yIChjb25zdCBhdXRvJiBmZWF0
dXJlIDogbV9iYWNraW5nLT5mZWF0dXJlcygpKQorICAgICAgICBzZXQuYWRkPElETERPTVN0cmlu
Zz4oZmVhdHVyZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVN1cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCmluZGV4IGFkZWQ0YjY0ZGRmZTkzNDdiNGYwMDky
YjQyNzU0MzBkMTJmZjA5MGYuLmM3OGI1NTIzMjM4NGNhNmE1ODA3NmUzMDIyMTBhYzhmNTliNzk1
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRl
ZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9y
dGVkRmVhdHVyZXMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIK
ICNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC0zNSwxNSArMzYsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVTdXBw
b3J0ZWRGZWF0dXJlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVN1cHBvcnRlZEZlYXR1cmVzPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRGZWF0dXJlcz4gY3JlYXRlKCkK
KyAgICBzdGF0aWMgUmVmPEdQVVN1cHBvcnRlZEZlYXR1cmVzPiBjcmVhdGUoUmVmPFBBTDo6V2Vi
R1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4mJiBiYWNraW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR1BVU3VwcG9ydGVkRmVhdHVyZXMoKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdQVVN1cHBvcnRlZEZlYXR1cmVzKFdURk1vdmUoYmFja2luZykpKTsKICAg
ICB9CiAKICAgICB2b2lkIGluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImKSBjb25zdDsK
IAorICAgIFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYgYmFja2luZygpIHsgcmV0dXJu
IG1fYmFja2luZzsgfQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcyYg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBwcml2YXRlOgotICAgIEdQ
VVN1cHBvcnRlZEZlYXR1cmVzKCkgPSBkZWZhdWx0OworICAgIEdQVVN1cHBvcnRlZEZlYXR1cmVz
KFJlZjxQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM+JiYgYmFja2luZykKKyAgICAgICAg
OiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFBB
TDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZExpbWl0cy5jcHAK
aW5kZXggMWRkODBhYjcwMTRmY2MwM2ZhZTZmNWNjZmVlMWRkZThiY2RmYTc5YS4uYjBhYjQyNzNl
MWMzMTQ4YzkxNjI3YTY2ZWUwNjUzYTFjNWVmYWUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVTdXBwb3J0ZWRMaW1pdHMuY3BwCkBAIC0zMCwxMzIgKzMw
LDEzMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0
czo6bWF4VGV4dHVyZURpbWVuc2lvbjFEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbV9iYWNraW5nLT5tYXhUZXh0dXJlRGltZW5zaW9uMUQoKTsKIH0KIAogdWludDMyX3Qg
R1BVU3VwcG9ydGVkTGltaXRzOjptYXhUZXh0dXJlRGltZW5zaW9uMkQoKSBjb25zdAogewotICAg
IHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFRleHR1cmVEaW1lbnNpb24yRCgp
OwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFRleHR1cmVEaW1lbnNpb24z
RCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VGV4
dHVyZURpbWVuc2lvbjNEKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4
VGV4dHVyZUFycmF5TGF5ZXJzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9iYWNraW5nLT5tYXhUZXh0dXJlQXJyYXlMYXllcnMoKTsKIH0KIAogdWludDMyX3QgR1BVU3Vw
cG9ydGVkTGltaXRzOjptYXhCaW5kR3JvdXBzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbV9iYWNraW5nLT5tYXhCaW5kR3JvdXBzKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQo
KSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heER5bmFt
aWNVbmlmb3JtQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4RHluYW1pY1N0b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQo
KSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heER5bmFt
aWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1
cHBvcnRlZExpbWl0czo6bWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2UoKSBjb25zdAog
ewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFNhbXBsZWRUZXh0dXJl
c1BlclNoYWRlclN0YWdlKCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4
U2FtcGxlcnNQZXJTaGFkZXJTdGFnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1fYmFja2luZy0+bWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZSgpOwogfQogCiB1aW50MzJf
dCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UoKSBj
b25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heFN0b3JhZ2VC
dWZmZXJzUGVyU2hhZGVyU3RhZ2UoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3Rh
Z2UoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhVbmlmb3JtQnVmZmVy
c1BlclNoYWRlclN0YWdlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9i
YWNraW5nLT5tYXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlKCk7CiB9CiAKIHVpbnQ2NF90
IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5tYXhVbmlmb3JtQnVmZmVy
QmluZGluZ1NpemUoKTsKIH0KIAogdWludDY0X3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhTdG9y
YWdlQnVmZmVyQmluZGluZ1NpemUoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVy
biBtX2JhY2tpbmctPm1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSgpOwogfQogCiB1aW50MzJf
dCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQoKSBj
b25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1pblVuaWZvcm1C
dWZmZXJPZmZzZXRBbGlnbm1lbnQoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5taW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50
KCk7CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4VmVydGV4QnVmZmVycygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VmVydGV4
QnVmZmVycygpOwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heFZlcnRleEF0
dHJpYnV0ZXMoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tpbmct
Pm1heFZlcnRleEF0dHJpYnV0ZXMoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRz
OjptYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG1fYmFja2luZy0+bWF4VmVydGV4QnVmZmVyQXJyYXlTdHJpZGUoKTsKIH0KIAog
dWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhJbnRlclN0YWdlU2hhZGVyQ29tcG9uZW50
cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4SW50
ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGlt
aXRzOjptYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUoKSBjb25zdAogewotICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2JhY2tpbmctPm1heENvbXB1dGVXb3JrZ3JvdXBTdG9yYWdlU2l6
ZSgpOwogfQogCiB1aW50MzJfdCBHUFVTdXBwb3J0ZWRMaW1pdHM6Om1heENvbXB1dGVJbnZvY2F0
aW9uc1Blcldvcmtncm91cCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1f
YmFja2luZy0+bWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwKCk7CiB9CiAKIHVpbnQz
Ml90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4Q29tcHV0ZVdvcmtncm91cFNpemVYKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9iYWNraW5nLT5tYXhDb21wdXRlV29ya2dy
b3VwU2l6ZVgoKTsKIH0KIAogdWludDMyX3QgR1BVU3VwcG9ydGVkTGltaXRzOjptYXhDb21wdXRl
V29ya2dyb3VwU2l6ZVkoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2Jh
Y2tpbmctPm1heENvbXB1dGVXb3JrZ3JvdXBTaXplWSgpOwogfQogCiB1aW50MzJfdCBHUFVTdXBw
b3J0ZWRMaW1pdHM6Om1heENvbXB1dGVXb3JrZ3JvdXBTaXplWigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKCk7
CiB9CiAKIHVpbnQzMl90IEdQVVN1cHBvcnRlZExpbWl0czo6bWF4Q29tcHV0ZVdvcmtncm91cHNQ
ZXJEaW1lbnNpb24oKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2JhY2tp
bmctPm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5zaW9uKCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVN1cHBvcnRlZExpbWl0cy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKaW5kZXgg
NTg2NzI1MzdlMzA1NTJlMzI1MGQxMWVkZjFmM2JlZjIyYjNjYzMyYS4uZjdjZmQ1NzEyYTZlNDAy
NGEzYzVhNDU2ZGYzM2EyZjQ3ZWI4ZDE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC0zMyw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgR1BVU3VwcG9ydGVkTGltaXRzIDogcHVibGljIFJlZkNvdW50ZWQ8R1BV
U3VwcG9ydGVkTGltaXRzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRM
aW1pdHM+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVTdXBwb3J0ZWRMaW1pdHM+IGNyZWF0
ZShSZWY8UEFMOjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cz4mJiBiYWNraW5nKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVU3VwcG9ydGVkTGltaXRzKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVTdXBwb3J0ZWRMaW1pdHMoV1RGTW92ZShiYWNraW5n
KSkpOwogICAgIH0KIAogICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCgpIGNvbnN0
OwpAQCAtNjUsOCArNjYsMTYgQEAgcHVibGljOgogICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3Jr
Z3JvdXBTaXplWigpIGNvbnN0OwogICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVy
RGltZW5zaW9uKCkgY29uc3Q7CiAKKyAgICBQQUw6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiBi
YWNraW5nKCkgeyByZXR1cm4gbV9iYWNraW5nOyB9CisgICAgY29uc3QgUEFMOjpXZWJHUFU6OlN1
cHBvcnRlZExpbWl0cyYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQorCiBw
cml2YXRlOgotICAgIEdQVVN1cHBvcnRlZExpbWl0cygpID0gZGVmYXVsdDsKKyAgICBHUFVTdXBw
b3J0ZWRMaW1pdHMoUmVmPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+JiYgYmFja2luZykK
KyAgICAgICAgOiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisg
ICAgUmVmPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+IG1fYmFja2luZzsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZS5jcHAKaW5kZXggMjk5
YzY3YjAzN2FjYTc2YTRjNjkwNGQ3MTZmNTc4MGI3ZmU4MjFlMi4uZjNmNDkwZmFjZWRjYzBlNTYw
YmRjMDJiNzE3Mjg2YWFhNGJjMjAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZS5jcHAKQEAgLTI3LDIxICsyNyw0MSBAQAogI2luY2x1ZGUgIkdQVVRleHR1
cmUuaCIKIAogI2luY2x1ZGUgIkdQVVRleHR1cmVWaWV3LmgiCisjaW5jbHVkZSAiR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlld0Rlc2NyaXB0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcg
R1BVVGV4dHVyZTo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0
eSgpOworICAgIHJldHVybiBtX2JhY2tpbmctPmxhYmVsKCk7CiB9CiAKLXZvaWQgR1BVVGV4dHVy
ZTo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVRleHR1cmU6OnNldExhYmVsKFN0cmluZyYm
IGxhYmVsKQogeworICAgIG1fYmFja2luZy0+c2V0TGFiZWwoV1RGTW92ZShsYWJlbCkpOwogfQog
Ci1SZWY8R1BVVGV4dHVyZVZpZXc+IEdQVVRleHR1cmU6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpv
cHRpb25hbDxHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JikgY29uc3QKK3N0YXRpYyBQQUw6Oldl
YkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoY29uc3Qgc3RkOjpv
cHRpb25hbDxHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3I+JiB0ZXh0dXJlVmlld0Rlc2NyaXB0b3Ip
CiB7Ci0gICAgcmV0dXJuIEdQVVRleHR1cmVWaWV3OjpjcmVhdGUoKTsKKyAgICBpZiAoIXRleHR1
cmVWaWV3RGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgeyB9LAor
ICAgICAgICAgICAgc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgc3RkOjpudWxsb3B0LAorICAg
ICAgICAgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3Q6OkFsbCwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBzdGQ6Om51bGxvcHQsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
c3RkOjpudWxsb3B0CisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB0ZXh0dXJlVmlld0Rl
c2NyaXB0b3ItPmNvbnZlcnRUb0JhY2tpbmcoKTsKK30KKworUmVmPEdQVVRleHR1cmVWaWV3PiBH
UFVUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8R1BVVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yPiYgdGV4dHVyZVZpZXdEZXNjcmlwdG9yKSBjb25zdAoreworICAgIHJldHVybiBH
UFVUZXh0dXJlVmlldzo6Y3JlYXRlKG1fYmFja2luZy0+Y3JlYXRlVmlldyhjb252ZXJ0VG9CYWNr
aW5nKHRleHR1cmVWaWV3RGVzY3JpcHRvcikpKTsKIH0KIAogdm9pZCBHUFVUZXh0dXJlOjpkZXN0
cm95KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1
cmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmUuaAppbmRleCA3
YjA0YTZmYThiZDBiZWViNDYzY2Y0YTcwYWUzNmRhMWYyNjIzM2UxLi40OGE4NDA3NWE2MWNhZjg5
OTJmZjgyZDljY2U1OWU2ZTlmYmRlYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVy
ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzcsOSArMzgsOSBAQCBzdHJ1Y3Qg
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yOwogCiBjbGFzcyBHUFVUZXh0dXJlIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVVGV4dHVyZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVVGV4dHVy
ZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEdQVVRleHR1cmU+IGNyZWF0ZShSZWY8UEFMOjpX
ZWJHUFU6OlRleHR1cmU+JiYgYmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEdQVVRleHR1cmUoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVRl
eHR1cmUoV1RGTW92ZShiYWNraW5nKSkpOwogICAgIH0KIAogICAgIFN0cmluZyBsYWJlbCgpIGNv
bnN0OwpAQCAtNDksOCArNTAsMTYgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXN0cm95KCk7CiAK
KyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZSYgYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZzsg
fQorICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlJiBiYWNraW5nKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNraW5nOyB9CisKIHByaXZhdGU6Ci0gICAgR1BVVGV4dHVyZSgpID0gZGVmYXVsdDsK
KyAgICBHUFVUZXh0dXJlKFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4mJiBiYWNraW5nKQorICAg
ICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIHsKKyAgICB9CisKKyAgICBS
ZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+IG1fYmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVBc3BlY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVBc3BlY3QuaAppbmRleCAwNjVjZmZm
MGNmNjE3OWJmMDQ1YWIwMDA2M2NmZjVlMWE2ZDQ1NzZkLi4yOTIyZTQ5ZDUwNjY0NjlmOTZiZGFj
ZWY3ZGYxYTgyMjE1NmQzOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVUZXh0dXJlQXNwZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVGV4dHVyZUFzcGVjdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlQXNwZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsNCArMzYsMTcg
QEAgZW51bSBjbGFzcyBHUFVUZXh0dXJlQXNwZWN0IDogdWludDhfdCB7CiAgICAgRGVwdGhPbmx5
CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRleHR1cmVBc3BlY3QgY29udmVydFRvQmFja2lu
ZyhHUFVUZXh0dXJlQXNwZWN0IHRleHR1cmVBc3BlY3QpCit7CisgICAgc3dpdGNoICh0ZXh0dXJl
QXNwZWN0KSB7CisgICAgY2FzZSBHUFVUZXh0dXJlQXNwZWN0OjpBbGw6CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdDo6QWxsOworICAgIGNhc2UgR1BVVGV4dHVyZUFz
cGVjdDo6U3RlbmNpbE9ubHk6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUFz
cGVjdDo6U3RlbmNpbE9ubHk7CisgICAgY2FzZSBHUFVUZXh0dXJlQXNwZWN0OjpEZXB0aE9ubHk6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUFzcGVjdDo6RGVwdGhPbmx5Owor
ICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xheW91
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaAppbmRleCBhODIxZDUzNDc1OGIzYTMzN2NmNGY3OTZlZDViMjY4NDRiMTFmYWNlLi4yM2Ew
MTY2OWNmMmFmMDZiY2I1Y2NkOGZhMDRiOWY4ZWFmMDc0ZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKQEAg
LTI3LDEwICsyNywyMCBAQAogCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVNhbXBsZVR5cGUuaCIKICNp
bmNsdWRlICJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdHJ1Y3QgR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQgeworICAgIFBBTDo6V2ViR1BV
OjpUZXh0dXJlQmluZGluZ0xheW91dCBjb252ZXJ0VG9CYWNraW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHNh
bXBsZVR5cGUpLAorICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh2aWV3RGlt
ZW5zaW9uKSwKKyAgICAgICAgICAgIG11bHRpc2FtcGxlZCwKKyAgICAgICAgfTsKKyAgICB9CisK
ICAgICBHUFVUZXh0dXJlU2FtcGxlVHlwZSBzYW1wbGVUeXBlOwogICAgIEdQVVRleHR1cmVWaWV3
RGltZW5zaW9uIHZpZXdEaW1lbnNpb247CiAgICAgYm9vbCBtdWx0aXNhbXBsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaApp
bmRleCBiOGZlZGQ0NjFkNDE2MzcxOTVlZTczNWJiNTBmNjhhMTgxNTU1NTQ5Li5hMTcyMTllZGJh
YTUyMTllNDNhYjdiZmQwZTdjZGNlNGVmZmRlOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTMxLDEwICszMSwy
NCBAQAogI2luY2x1ZGUgIkdQVVRleHR1cmVEaW1lbnNpb24uaCIKICNpbmNsdWRlICJHUFVUZXh0
dXJlRm9ybWF0LmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZVVzYWdlLmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGNv
bnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIHsgbGFiZWwgfSwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoc2l6
ZSksCisgICAgICAgICAgICBtaXBMZXZlbENvdW50LAorICAgICAgICAgICAgc2FtcGxlQ291bnQs
CisgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGRpbWVuc2lvbiksCisgICAg
ICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGZvcm1hdCksCisgICAgICAgICAgICBj
b252ZXJ0VGV4dHVyZVVzYWdlRmxhZ3NUb0JhY2tpbmcodXNhZ2UpLAorICAgICAgICB9OworICAg
IH0KKwogICAgIEdQVUV4dGVudDNEIHNpemU7CiAgICAgR1BVSW50ZWdlckNvb3JkaW5hdGUgbWlw
TGV2ZWxDb3VudDsKICAgICBHUFVTaXplMzIgc2FtcGxlQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGltZW5zaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRGltZW5zaW9uLmgKaW5kZXggZDQ2Yzhk
ZGE5YWM3MDMxYWI2Y2ZjYTQyOWQzOGY3OWE1ZDkyNDQ1My4uMTg3MmY3ZDYyMGYyMmI4MzFmZDQy
OTMyOWE3ZDQ3M2NiZjcwOTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVGV4dHVyZURpbWVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVRleHR1cmVEaW1lbnNpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1
LDQgKzM2LDE3IEBAIGVudW0gY2xhc3MgR1BVVGV4dHVyZURpbWVuc2lvbiA6IHVpbnQ4X3Qgewog
ICAgIF8zZAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uIGNvbnZl
cnRUb0JhY2tpbmcoR1BVVGV4dHVyZURpbWVuc2lvbiB0ZXh0dXJlRGltZW5zaW9uKQoreworICAg
IHN3aXRjaCAodGV4dHVyZURpbWVuc2lvbikgeworICAgIGNhc2UgR1BVVGV4dHVyZURpbWVuc2lv
bjo6XzFkOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVEaW1lbnNpb246Ol8x
ZDsKKyAgICBjYXNlIEdQVVRleHR1cmVEaW1lbnNpb246Ol8yZDoKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRGltZW5zaW9uOjpfMmQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRGlt
ZW5zaW9uOjpfM2Q6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZURpbWVuc2lv
bjo6XzNkOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRm9y
bWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlRm9ybWF0LmgK
aW5kZXggZTBlOTVhODgwZjYwZmY3NDEwZDk1Yzk1MTI0ODA4MjllMDQ4ZDBkZi4uOGEwMWIwNzAy
Yjk2MGRiNDlmMzZiOTNlZGIzMzBkODY2YmU2N2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVGb3JtYXQuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTE1Miw0ICsxNTMsMjAxIEBAIGVudW0gY2xhc3MgR1BVVGV4dHVyZUZvcm1hdCA6IHVpbnQ4X3Qg
ewogICAgIERlcHRoMzJmbG9hdFN0ZW5jaWw4CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQgY29udmVydFRvQmFja2luZyhHUFVUZXh0dXJlRm9ybWF0IHRleHR1cmVGb3Jt
YXQpCit7CisgICAgc3dpdGNoICh0ZXh0dXJlRm9ybWF0KSB7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpSOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OlI4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSOHNub3JtOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c25vcm07CisgICAgY2FzZSBH
UFVUZXh0dXJlRm9ybWF0OjpSOHVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6Ujh1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6UjhzaW50Ogor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlI4c2ludDsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIxNnVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6UjE2dWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIx
NnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjE2c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIxNmZsb2F0OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIxNmZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6Umc4dW5vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdDo6Umc4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzhzbm9ybToKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzhzbm9ybTsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnOHVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6Umc4dWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJn
OHNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6Umc4c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIzMnVpbnQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UjMydWludDsKKyAgICBjYXNlIEdQVVRleHR1cmVG
b3JtYXQ6OlIzMnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6UjMyc2ludDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0OgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlIzMmZsb2F0OworICAgIGNhc2Ug
R1BVVGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdDo6UmcxNnVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzE2
c2ludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzE2c2lu
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMTZmbG9hdDoKKyAgICAgICAgcmV0dXJu
IFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZzE2ZmxvYXQ7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpSZ2JhOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OlJnYmE4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhOHVu
b3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2Jh
OHVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnYmE4c25vcm06CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYThzbm9ybTsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnYmE4dWludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhOHVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0
OjpSZ2JhOHNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
UmdiYThzaW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybToKKyAgICAg
ICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCZ3JhOHVub3JtOworICAgIGNh
c2UgR1BVVGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmdyYTh1bm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpSZ2I5ZTV1ZmxvYXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4
dHVyZUZvcm1hdDo6UmdiOWU1dWZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6Umdi
MTBhMnVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJn
YjEwYTJ1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMTFiMTB1ZmxvYXQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmcxMWIxMHVmbG9hdDsK
KyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlJnMzJ1aW50OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnMzJ1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZv
cm1hdDo6UmczMnNpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6UmczMnNpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZzMyZmxvYXQ6CisgICAg
ICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmczMmZsb2F0OworICAgIGNh
c2UgR1BVVGV4dHVyZUZvcm1hdDo6UmdiYTE2dWludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMTZ1aW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1h
dDo6UmdiYTE2c2ludDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpSZ2JhMTZzaW50OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6UmdiYTE2ZmxvYXQ6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6UmdiYTE2ZmxvYXQ7Cisg
ICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhMzJ1aW50OgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlJnYmEzMnVpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpSZ2JhMzJzaW50OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OlJnYmEzMnNpbnQ7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpSZ2JhMzJmbG9h
dDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpSZ2JhMzJmbG9h
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OlN0ZW5jaWw4OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OlN0ZW5jaWw4OworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6RGVwdGgxNnVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkRlcHRoMTZ1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkRlcHRo
MjRwbHVzOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRo
MjRwbHVzOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6RGVwdGgyNHBsdXNTdGVuY2lsODoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpEZXB0aDI0cGx1c1N0
ZW5jaWw4OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0OgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMzJmbG9hdDsKKyAgICBj
YXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzFSZ2JhVW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpCYzFSZ2JhVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkJjMVJnYmFVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0
OjpCYzJSZ2JhVW5vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1h
dDo6QmMyUmdiYVVub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmMyUmdiYVVub3Jt
U1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzJSZ2Jh
VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmMzUmdiYVVub3JtOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybTsKKyAg
ICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjM1JnYmFVbm9ybVNSR0I6CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmMzUmdiYVVub3JtU1JHQjsKKyAgICBjYXNl
IEdQVVRleHR1cmVGb3JtYXQ6OkJjNFJVbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCYzRSVW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpC
YzRSU25vcm06CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QmM0
UlNub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmM1UmdVbm9ybToKKyAgICAgICAg
cmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Vub3JtOworICAgIGNhc2Ug
R1BVVGV4dHVyZUZvcm1hdDo6QmM1UmdTbm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpCYzVSZ1Nub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6
QmM2aFJnYlVmbG9hdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpCYzZoUmdiVWZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QmM2aFJnYkZsb2F0
OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjNmhSZ2JGbG9h
dDsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybToKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm07CisgICAgY2FzZSBH
UFVUZXh0dXJlRm9ybWF0OjpCYzdSZ2JhVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkJjN1JnYmFVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0
dXJlRm9ybWF0OjpFdGMyUmdiOHVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRl
eHR1cmVGb3JtYXQ6OkV0YzJSZ2I4dW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpF
dGMyUmdiOHVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9y
bWF0OjpFdGMyUmdiOHVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkV0YzJS
Z2I4YTF1bm9ybToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpF
dGMyUmdiOGExdW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFdGMyUmdiOGExdW5v
cm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkV0YzJS
Z2I4YTF1bm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1bm9y
bToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1
bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkV0YzJSZ2JhOHVub3JtU1JHQjoKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFdGMyUmdiYTh1bm9ybVNS
R0I7CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpFYWNSMTF1bm9ybToKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNSMTF1bm9ybTsKKyAgICBjYXNlIEdQ
VVRleHR1cmVGb3JtYXQ6OkVhY1IxMXNub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlRleHR1cmVGb3JtYXQ6OkVhY1IxMXNub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6
RWFjUmcxMXVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6
OkVhY1JnMTF1bm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkVhY1JnMTFzbm9ybToK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpFYWNSZzExc25vcm07
CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNHg0VW5vcm06CisgICAgICAgIHJldHVy
biBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtOworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6QXN0YzR4NFVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNHg0VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6QXN0YzV4NFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGM1eDRVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM1
eDRVbm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6
QXN0YzV4NFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM1eDVVbm9y
bToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjNXg1VW5v
cm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNXg1VW5vcm1TUkdCOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM1eDVVbm9ybVNSR0I7Cisg
ICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjNng1VW5vcm06CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzZ4NVVub3JtOworICAgIGNhc2UgR1BVVGV4
dHVyZUZvcm1hdDo6QXN0YzZ4NVVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpUZXh0dXJlRm9ybWF0OjpBc3RjNng1VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZv
cm1hdDo6QXN0YzZ4NlVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVG
b3JtYXQ6OkFzdGM2eDZVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM2eDZV
bm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0
YzZ4NlVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM4eDVVbm9ybToK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm07
CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjOHg1VW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGM4eDVVbm9ybVNSR0I7CisgICAg
Y2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3RjOHg2VW5vcm06CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4NlVub3JtOworICAgIGNhc2UgR1BVVGV4dHVy
ZUZvcm1hdDo6QXN0Yzh4NlVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpU
ZXh0dXJlRm9ybWF0OjpBc3RjOHg2VW5vcm1TUkdCOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1h
dDo6QXN0Yzh4OFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3Jt
YXQ6OkFzdGM4eDhVbm9ybTsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGM4eDhVbm9y
bVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0Yzh4
OFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm06Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDVVbm9ybTsK
KyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHg1VW5vcm1TUkdCOworICAg
IGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybToKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0OjpBc3RjMTB4NlVub3JtOworICAgIGNhc2UgR1BVVGV4
dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybVNSR0I6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQ
VTo6VGV4dHVyZUZvcm1hdDo6QXN0YzEweDZVbm9ybVNSR0I7CisgICAgY2FzZSBHUFVUZXh0dXJl
Rm9ybWF0OjpBc3RjMTB4OFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1
cmVGb3JtYXQ6OkFzdGMxMHg4VW5vcm07CisgICAgY2FzZSBHUFVUZXh0dXJlRm9ybWF0OjpBc3Rj
MTB4OFVub3JtU1JHQjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0
OjpBc3RjMTB4OFVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMHgx
MFVub3JtOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMx
MHgxMFVub3JtOworICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEweDEwVW5vcm1TUkdC
OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMHgxMFVu
b3JtU1JHQjsKKyAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtOgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtOwor
ICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEwVW5vcm1TUkdCOgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMFVub3JtU1JHQjsKKyAg
ICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtOgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtOworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6QXN0YzEyeDEyVW5vcm1TUkdCOgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkFzdGMxMngxMlVub3JtU1JHQjsKKyAgICBjYXNlIEdQVVRl
eHR1cmVGb3JtYXQ6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OgorICAgICAgICByZXR1cm4gUEFMOjpX
ZWJHUFU6OlRleHR1cmVGb3JtYXQ6OkRlcHRoMjR1bm9ybVN0ZW5jaWw4OworICAgIGNhc2UgR1BV
VGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0U3RlbmNpbDg6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VGV4dHVyZUZvcm1hdDo6RGVwdGgzMmZsb2F0U3RlbmNpbDg7CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVTYW1wbGVUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlU2FtcGxlVHlwZS5oCmluZGV4IDZiN2Jl
N2RjNTBiNWFiNmIzY2ZkOTBiZmY5ODk2NmQxYjE0YzEwMGEuLjI2YmQ2OWM4NTg3NTIyNzhhYzUy
YmRiMTQwYTIzMTBhNzIyYjU2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVRleHR1cmVTYW1wbGVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVGV4dHVyZVNhbXBsZVR5cGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVVGV4dHVyZVNhbXBsZVR5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zNyw0ICszOCwyMSBAQCBlbnVtIGNsYXNzIEdQVVRleHR1cmVTYW1wbGVUeXBlIDogdWludDhf
dCB7CiAgICAgVWludAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpUZXh0dXJlU2FtcGxlVHlw
ZSBjb252ZXJ0VG9CYWNraW5nKEdQVVRleHR1cmVTYW1wbGVUeXBlIHRleHR1cmVTYW1wbGVUeXBl
KQoreworICAgIHN3aXRjaCAodGV4dHVyZVNhbXBsZVR5cGUpIHsKKyAgICBjYXNlIEdQVVRleHR1
cmVTYW1wbGVUeXBlOjpGbG9hdDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJl
U2FtcGxlVHlwZTo6RmxvYXQ7CisgICAgY2FzZSBHUFVUZXh0dXJlU2FtcGxlVHlwZTo6VW5maWx0
ZXJhYmxlRmxvYXQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVNhbXBsZVR5
cGU6OlVuZmlsdGVyYWJsZUZsb2F0OworICAgIGNhc2UgR1BVVGV4dHVyZVNhbXBsZVR5cGU6OkRl
cHRoOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpEZXB0
aDsKKyAgICBjYXNlIEdQVVRleHR1cmVTYW1wbGVUeXBlOjpTaW50OgorICAgICAgICByZXR1cm4g
UEFMOjpXZWJHUFU6OlRleHR1cmVTYW1wbGVUeXBlOjpTaW50OworICAgIGNhc2UgR1BVVGV4dHVy
ZVNhbXBsZVR5cGU6OlVpbnQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVNh
bXBsZVR5cGU6OlVpbnQ7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRl
eHR1cmVVc2FnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVz
YWdlLmgKaW5kZXggMjQ0NWJjODZkZWFhODIyZWVmMDZjM2Q5ODU1NjQ2N2MxMzJiMjg3Zi4uYTRm
MzZmY2NhOWQwNmJhOGQ3NzgzY2NkY2JiMTdiMDhhNWEzYmMxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVzYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVVzYWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsNCArNDIs
MjAgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BVRmxhZ3NDb25zdGFudCBSRU5E
RVJfQVRUQUNITUVOVCA9IDB4MTA7CiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlRleHR1cmVV
c2FnZUZsYWdzIGNvbnZlcnRUZXh0dXJlVXNhZ2VGbGFnc1RvQmFja2luZyhHUFVUZXh0dXJlVXNh
Z2VGbGFncyB0ZXh0dXJlVXNhZ2VGbGFncykKK3sKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVVz
YWdlRmxhZ3MgcmVzdWx0ID0gMDsKKyAgICBpZiAodGV4dHVyZVVzYWdlRmxhZ3MgJiBHUFVUZXh0
dXJlVXNhZ2U6OkNPUFlfU1JDKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OlRleHR1
cmVVc2FnZTo6Q09QWV9TUkM7CisgICAgaWYgKHRleHR1cmVVc2FnZUZsYWdzICYgR1BVVGV4dHVy
ZVVzYWdlOjpDT1BZX0RTVCkKKyAgICAgICAgcmVzdWx0IHw9IFBBTDo6V2ViR1BVOjpUZXh0dXJl
VXNhZ2U6OkNPUFlfRFNUOworICAgIGlmICh0ZXh0dXJlVXNhZ2VGbGFncyAmIEdQVVRleHR1cmVV
c2FnZTo6VEVYVFVSRV9CSU5ESU5HKQorICAgICAgICByZXN1bHQgfD0gUEFMOjpXZWJHUFU6OlRl
eHR1cmVVc2FnZTo6VEVYVFVSRV9CSU5ESU5HOworICAgIGlmICh0ZXh0dXJlVXNhZ2VGbGFncyAm
IEdQVVRleHR1cmVVc2FnZTo6U1RPUkFHRV9CSU5ESU5HKQorICAgICAgICByZXN1bHQgfD0gUEFM
OjpXZWJHUFU6OlRleHR1cmVVc2FnZTo6U1RPUkFHRV9CSU5ESU5HOworICAgIGlmICh0ZXh0dXJl
VXNhZ2VGbGFncyAmIEdQVVRleHR1cmVVc2FnZTo6UkVOREVSX0FUVEFDSE1FTlQpCisgICAgICAg
IHJlc3VsdCB8PSBQQUw6OldlYkdQVTo6VGV4dHVyZVVzYWdlOjpSRU5ERVJfQVRUQUNITUVOVDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVUZXh0dXJlVmlldy5jcHAKaW5kZXggYmMzYWZkODk4OGMzYjEzZTc5MDdlZjNl
NGI1NDkyOGY3OWJjNTNlOS4uNDQzY2Y2NTg4NGEwNTMwMzhiOGZmYWZjOGJlNWNhZmZmMDc5ZDNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3
LmNwcApAQCAtMzAsMTEgKzMwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdQ
VVRleHR1cmVWaWV3OjpsYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVt
cHR5KCk7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bGFiZWwoKTsKIH0KIAotdm9pZCBHUFVUZXh0
dXJlVmlldzo6c2V0TGFiZWwoU3RyaW5nJiYpCit2b2lkIEdQVVRleHR1cmVWaWV3OjpzZXRMYWJl
bChTdHJpbmcmJiBsYWJlbCkKIHsKKyAgICBtX2JhY2tpbmctPnNldExhYmVsKFdURk1vdmUobGFi
ZWwpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVGV4dHVyZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1
cmVWaWV3LmgKaW5kZXggOTUxNGEyMzVhNDVkNzMyODUwZGE5N2NlODVlM2IyOGZhMjM0NzFlMS4u
MWY3M2EzYzM0ZDZiZGY4OWJmMmZmZmQ5Zjg5NDUwNGMyYWQ1ZWFmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlldy5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzMsMTYgKzM0LDI0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVVGV4dHVyZVZpZXcgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVUZXh0dXJlVmlldz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BV
VGV4dHVyZVZpZXc+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHUFVUZXh0dXJlVmlldz4gY3Jl
YXRlKFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+JiYgYmFja2luZykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVRleHR1cmVWaWV3KCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVUZXh0dXJlVmlldyhXVEZNb3ZlKGJhY2tpbmcpKSk7CiAgICAg
fQogCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYWJlbChTdHJpbmcm
Jik7CiAKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIGJhY2tpbmcoKSB7IHJldHVybiBt
X2JhY2tpbmc7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcmIGJhY2tpbmco
KSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBHUFVUZXh0dXJl
VmlldygpID0gZGVmYXVsdDsKKyAgICBHUFVUZXh0dXJlVmlldyhSZWY8UEFMOjpXZWJHUFU6OlRl
eHR1cmVWaWV3PiYmIGJhY2tpbmcpCisgICAgICAgIDogbV9iYWNraW5nKFdURk1vdmUoYmFja2lu
ZykpCisgICAgeworICAgIH0KKworICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+IG1f
YmFja2luZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKaW5kZXggZWZlMDM1YTllMTQzMmJkYjg0
ZTZjOGU0ZmVmOTRiMjQ4Y2QyZDg2ZC4uZjRkMWU5OTgyMDY1MDJmZDZlN2QxYjhiM2RiYWVjZWEw
NjY1MWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4
dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKQEAgLTMxLDEwICszMSwyNSBAQAogI2luY2x1ZGUg
IkdQVVRleHR1cmVGb3JtYXQuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5o
IgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEdQVVRleHR1cmVWaWV3RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9y
QmFzZSB7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvciBjb252ZXJ0VG9C
YWNraW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7IGxh
YmVsIH0sCisgICAgICAgICAgICBmb3JtYXQgPyBzdGQ6Om9wdGlvbmFsIHsgV2ViQ29yZTo6Y29u
dmVydFRvQmFja2luZygqZm9ybWF0KSB9IDogc3RkOjpudWxsb3B0LAorICAgICAgICAgICAgZGlt
ZW5zaW9uID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoKmRpbWVu
c2lvbikgfSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcoYXNwZWN0KSwKKyAgICAgICAgICAgIGJhc2VNaXBMZXZlbCwKKyAgICAgICAgICAgIG1p
cExldmVsQ291bnQsCisgICAgICAgICAgICBiYXNlQXJyYXlMYXllciwKKyAgICAgICAgICAgIGFy
cmF5TGF5ZXJDb3VudCwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICBzdGQ6Om9wdGlvbmFsPEdQ
VVRleHR1cmVGb3JtYXQ+IGZvcm1hdDsKICAgICBzdGQ6Om9wdGlvbmFsPEdQVVRleHR1cmVWaWV3
RGltZW5zaW9uPiBkaW1lbnNpb247CiAgICAgR1BVVGV4dHVyZUFzcGVjdCBhc3BlY3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlld0RpbWVu
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVGV4dHVyZVZpZXdEaW1l
bnNpb24uaAppbmRleCA4NTkzMDYzYmFkZGQ0MmUyMTkzYjI5MmFmOGI3NGVlNzVlYmYzYTM3Li43
M2E0OTZjOTliNTBhNDJmNmMxYWU3YWI0N2QzOWFjYWMyNTE4ZTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVRleHR1cmVWaWV3RGltZW5zaW9uLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsNCArMzksMjMgQEAgZW51bSBjbGFzcyBH
UFVUZXh0dXJlVmlld0RpbWVuc2lvbiA6IHVpbnQ4X3QgewogICAgIF8zZAogfTsKIAoraW5saW5l
IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbiBjb252ZXJ0VG9CYWNraW5nKEdQVVRl
eHR1cmVWaWV3RGltZW5zaW9uIHRleHR1cmVWaWV3RGltZW5zaW9uKQoreworICAgIHN3aXRjaCAo
dGV4dHVyZVZpZXdEaW1lbnNpb24pIHsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9u
OjpfMWQ6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246
Ol8xZDsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpfMmQ6CisgICAgICAgIHJl
dHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8yZDsKKyAgICBjYXNlIEdQ
VVRleHR1cmVWaWV3RGltZW5zaW9uOjpfMmRBcnJheToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpUZXh0dXJlVmlld0RpbWVuc2lvbjo6XzJkQXJyYXk7CisgICAgY2FzZSBHUFVUZXh0dXJl
Vmlld0RpbWVuc2lvbjo6Q3ViZToKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpUZXh0dXJl
Vmlld0RpbWVuc2lvbjo6Q3ViZTsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpD
dWJlQXJyYXk6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNp
b246OkN1YmVBcnJheTsKKyAgICBjYXNlIEdQVVRleHR1cmVWaWV3RGltZW5zaW9uOjpfM2Q6Cisg
ICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEaW1lbnNpb246Ol8zZDsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZl
bnQuY3BwCmluZGV4IDFiMWQyMmE0MGYwNzc3MjMzY2UwNmZjNGJhYTg5NGJjMjExMmE1ODMuLjA4
ZjkwYzMzZWUxOWIwZjYyZjEwOWU4NDg2MDYwMzJmZmViNDhlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudC5j
cHAKQEAgLTI4LDE0ICsyOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdQVVVuY2Fw
dHVyZWRFcnJvckV2ZW50OjpHUFVVbmNhcHR1cmVkRXJyb3JFdmVudChTdHJpbmcmJiB0eXBlLCBj
b25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQmKQotewotICAgIFVOVVNFRF9QQVJBTSh0
eXBlKTsKLX0KLQogR1BVRXJyb3IgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQ6OmVycm9yKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gUmVmUHRyPEdQVU91dE9mTWVtb3J5RXJyb3I+KEdQVU91dE9mTWVt
b3J5RXJyb3I6OmNyZWF0ZSgpKTsKKyAgICBpZiAoIW1fYmFja2luZykKKyAgICAgICAgcmV0dXJu
IG1fdW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmVycm9yOworCisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24oUEFMOjpXZWJHUFU6OkVycm9yKG1fYmFja2luZy0+ZXJyb3IoKSksIFtdIChSZWY8UEFM
OjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I+JiYgb3V0T2ZNZW1vcnlFcnJvcikgLT4gR1BVRXJy
b3IgeworICAgICAgICByZXR1cm4gUmVmUHRyPEdQVU91dE9mTWVtb3J5RXJyb3I+KEdQVU91dE9m
TWVtb3J5RXJyb3I6OmNyZWF0ZShXVEZNb3ZlKG91dE9mTWVtb3J5RXJyb3IpKSk7CisgICAgfSwg
W10gKFJlZjxQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yPiYmIHZhbGlkYXRpb25FcnJvcikg
LT4gR1BVRXJyb3IgeworICAgICAgICByZXR1cm4gUmVmUHRyPEdQVVZhbGlkYXRpb25FcnJvcj4o
R1BVVmFsaWRhdGlvbkVycm9yOjpjcmVhdGUoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3IpKSk7Cisg
ICAgfSk7CisKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmgKaW5kZXggMWYxMjA4OTVlNjk2Nzg3NmFjMDgx
NTdlNGQ2Njg1MDc4ZWUyOTIzZi4uYzYzOWZiODQ1YmIwM2E3MDdhZGE4NWM3MjA5ZTA1ZTc2OGM2
NjQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVW5jYXB0
dXJlZEVycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVV
bmNhcHR1cmVkRXJyb3JFdmVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJHUFVFcnJvci5oIgogI2luY2x1ZGUgIkdQVVVuY2FwdHVyZWRFcnJvckV2
ZW50SW5pdC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVW5jYXB0dXJl
ZEVycm9yRXZlbnQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQxLDEwICs0Miwz
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVVuY2FwdHVyZWRF
cnJvckV2ZW50KFdURk1vdmUodHlwZSksIGdwdVVuY2FwdHVyZWRFcnJvckV2ZW50SW5pdERpY3Qp
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50PiBjcmVh
dGUoUmVmPFBBTDo6V2ViR1BVOjpVbmNhcHR1cmVkRXJyb3JFdmVudD4mJiBiYWNraW5nKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQo
V1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKwogICAgIEdQVUVycm9yIGVycm9yKCkgY29uc3Q7
CiAKKyAgICBQQUw6OldlYkdQVTo6VW5jYXB0dXJlZEVycm9yRXZlbnQqIGJhY2tpbmcoKSB7IHJl
dHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KKyAgICBjb25zdCBQQUw6OldlYkdQVTo6VW5jYXB0dXJl
ZEVycm9yRXZlbnQqIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0K
KwogcHJpdmF0ZToKLSAgICBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudChTdHJpbmcmJiB0eXBlLCBj
b25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQmKTsKKyAgICBHUFVVbmNhcHR1cmVkRXJy
b3JFdmVudChTdHJpbmcmJiB0eXBlLCBjb25zdCBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQm
IHVuY2FwdHVyZWRFcnJvckV2ZW50SW5pdCkKKyAgICAgICAgOiBtX3R5cGUoV1RGTW92ZSh0eXBl
KSkKKyAgICAgICAgLCBtX3VuY2FwdHVyZWRFcnJvckV2ZW50SW5pdCh1bmNhcHR1cmVkRXJyb3JF
dmVudEluaXQpCisgICAgeworICAgIH0KKworICAgIEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50KFJl
ZjxQQUw6OldlYkdQVTo6VW5jYXB0dXJlZEVycm9yRXZlbnQ+JiYgYmFja2luZykKKyAgICAgICAg
OiBtX2JhY2tpbmcoV1RGTW92ZShiYWNraW5nKSkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5n
IG1fdHlwZTsKKyAgICBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQgbV91bmNhcHR1cmVkRXJy
b3JFdmVudEluaXQ7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpVbmNhcHR1cmVkRXJyb3JFdmVu
dD4gbV9iYWNraW5nOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaAppbmRleCA2NmFiYWM2
Njg5MTAxZjgwNDk0NmJjYTBiNmMwY2QwMDZlMzgxMzE5Li5jYTZjOGUyMjU2OWQ0YTlkZTM2NmE1
ZDlhY2MyM2IzN2ZlYjczYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVVbmNhcHR1cmVkRXJyb3JFdmVudEluaXQuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaW5jbHVkZSAiRXZlbnRJbml0LmgiCiAjaW5jbHVkZSAiR1BVRXJyb3IuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50SW5p
dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVZhbGlkYXRpb25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVWYWxpZGF0aW9uRXJyb3IuY3BwCmluZGV4IGMxYmIzNzI1NjUxNzQw
MTRmNGYzY2RkMzMzMjFhMDI1ODI5ZDk5MTEuLmU0NGJkNzA2M2E3OTc5ZjEyYzFjODJiMGQzNjA4
ZTFmZjE4NWFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VVZhbGlkYXRpb25FcnJvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVVmFsaWRhdGlvbkVycm9yLmNwcApAQCAtMjgsMTQgKzI4LDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotR1BVVmFsaWRhdGlvbkVycm9yOjpHUFVWYWxpZGF0aW9uRXJyb3IoU3RyaW5n
JiYgbWVzc2FnZSkKK2NvbnN0IFN0cmluZyYgR1BVVmFsaWRhdGlvbkVycm9yOjptZXNzYWdlKCkg
Y29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7Ci19Ci0KLVN0cmluZyBHUFVWYWxp
ZGF0aW9uRXJyb3I6Om1lc3NhZ2UoKSBjb25zdAotewotICAgIHJldHVybiBTdHJpbmdJbXBsOjpl
bXB0eSgpOworICAgIGlmIChtX2JhY2tpbmcpCisgICAgICAgIHJldHVybiBtX2JhY2tpbmctPm1l
c3NhZ2UoKTsKKyAgICByZXR1cm4gbV9tZXNzYWdlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWYWxpZGF0aW9uRXJyb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCmluZGV4IDUyM2QzMzQ5
MTNmNGFkMDFiY2Y2NDc0ZWY3MGRmNzNiNzgxMmY1YzEuLmJjZTYzZTRiY2M2MTcyMzg2NGRmODkz
MjQwYjZjOGYxOWFlYjQ0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZhbGlkYXRpb25FcnJvci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM4LDEyICszOSwyOSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVVZhbGlkYXRpb25FcnJvcihXVEZNb3Zl
KG1lc3NhZ2UpKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKKyAgICBz
dGF0aWMgUmVmPEdQVVZhbGlkYXRpb25FcnJvcj4gY3JlYXRlKFJlZjxQQUw6OldlYkdQVTo6VmFs
aWRhdGlvbkVycm9yPiYmIGJhY2tpbmcpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBHUFVWYWxpZGF0aW9uRXJyb3IoV1RGTW92ZShiYWNraW5nKSkpOworICAgIH0KKworICAg
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0OworCisgICAgUEFMOjpXZWJHUFU6OlZhbGlk
YXRpb25FcnJvciogYmFja2luZygpIHsgcmV0dXJuIG1fYmFja2luZy5nZXQoKTsgfQorICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3IqIGJhY2tpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tpbmcuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVWYWxpZGF0aW9uRXJyb3Io
U3RyaW5nJiYgbWVzc2FnZSk7CisgICAgR1BVVmFsaWRhdGlvbkVycm9yKFN0cmluZyYmIG1lc3Nh
Z2UpCisgICAgICAgIDogbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCisgICAgeworICAgIH0K
KworICAgIEdQVVZhbGlkYXRpb25FcnJvcihSZWY8UEFMOjpXZWJHUFU6OlZhbGlkYXRpb25FcnJv
cj4mJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAg
IHsKKyAgICB9CiAKICAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIFJlZlB0cjxQQUw6OldlYkdQ
VTo6VmFsaWRhdGlvbkVycm9yPiBtX2JhY2tpbmc7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhBdHRyaWJ1dGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCmluZGV4IGYxYTBiNTFm
N2M1ZTUzNmM3YWQyMTE5NTEwZjUzM2YwMDMyOThmNDQuLjU3NzFkNzBjODhkZDhjZjQwZmUyMzE4
NjgxZjI1ZmM5MDI1ZDNmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEF0dHJpYnV0ZS5oCkBAIC0yNywxMCArMjcsMjAgQEAKIAogI2luY2x1ZGUg
IkdQVUludGVncmFsVHlwZXMuaCIKICNpbmNsdWRlICJHUFVWZXJ0ZXhGb3JtYXQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBHUFVWZXJ0ZXhBdHRyaWJ1dGUgeworICAgIFBBTDo6
V2ViR1BVOjpWZXJ0ZXhBdHRyaWJ1dGUgY29udmVydFRvQmFja2luZygpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhm
b3JtYXQpLAorICAgICAgICAgICAgb2Zmc2V0LAorICAgICAgICAgICAgc2hhZGVyTG9jYXRpb24s
CisgICAgICAgIH07CisgICAgfQorCiAgICAgR1BVVmVydGV4Rm9ybWF0IGZvcm1hdDsKICAgICBH
UFVTaXplNjQgb2Zmc2V0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oCmluZGV4IDFhMmM3Y2I5MTY4NGNkY2E2ZWFjMDQz
MGJmZTM2YTI3NmIwYTA3NTUuLmMzOGVhNjMxN2E4OTVmMTg3ZDljNGU3YjVmMTA4YTg0Njk1Zjc0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1
ZmZlckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRl
eEJ1ZmZlckxheW91dC5oCkBAIC0yOCwxMSArMjgsMjcgQEAKICNpbmNsdWRlICJHUFVJbnRlZ3Jh
bFR5cGVzLmgiCiAjaW5jbHVkZSAiR1BVVmVydGV4QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiR1BV
VmVydGV4U3RlcE1vZGUuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZl
cnRleEJ1ZmZlckxheW91dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVVmVydGV4QnVmZmVyTGF5b3V0IHsKKyAgICBQQUw6Oldl
YkdQVTo6VmVydGV4QnVmZmVyTGF5b3V0IGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGFycmF5U3RyaWRlLAorICAgICAgICAgICAg
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhzdGVwTW9kZSksCisgICAgICAgICAgICAoW3RoaXNd
ICgpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0
ZT4gYXR0cmlidXRlczsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodGhpcy0+YXR0cmlidXRlcy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAo
YXV0byYgYXR0cmlidXRlIDogdGhpcy0+YXR0cmlidXRlcykKKyAgICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlcy51bmNoZWNrZWRBcHBlbmQoYXR0cmlidXRlLmNvbnZlcnRUb0JhY2tpbmcoKSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CisgICAgICAgICAgICB9KSgpLAor
ICAgICAgICB9OworICAgIH0KKwogICAgIEdQVVNpemU2NCBhcnJheVN0cmlkZTsKICAgICBHUFVW
ZXJ0ZXhTdGVwTW9kZSBzdGVwTW9kZTsKICAgICBWZWN0b3I8R1BVVmVydGV4QXR0cmlidXRlPiBh
dHRyaWJ1dGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
VmVydGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhG
b3JtYXQuaAppbmRleCAwODQyZTkxM2M5ZTJkMDJlMjcyZjYwYTIxMjljNjg2NWI5ZDU2ODk3Li5i
NTllODUwNGI5M2IwMmEzZjQ1NWMyNWZjMjljOTVhMjUzNjE3Njk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhGb3JtYXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhGb3JtYXQuaApAQCAtMjYsNiArMjYsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjIsNCArNjMsNzEgQEAgZW51bSBjbGFzcyBHUFVWZXJ0ZXhGb3JtYXQgOiB1aW50OF90
IHsKICAgICBTaW50MzJ4NAogfTsKIAoraW5saW5lIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQg
Y29udmVydFRvQmFja2luZyhHUFVWZXJ0ZXhGb3JtYXQgdmVydGV4Rm9ybWF0KQoreworICAgIHN3
aXRjaCAodmVydGV4Rm9ybWF0KSB7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlVpbnQ4eDI6
CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVaW50OHgyOworICAg
IGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50OHg0OgorICAgICAgICByZXR1cm4gUEFMOjpXZWJH
UFU6OlZlcnRleEZvcm1hdDo6VWludDh4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6U2lu
dDh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQ4eDI7
CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQ4eDQ6CisgICAgICAgIHJldHVybiBQQUw6
OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50OHg0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0
OjpVbm9ybTh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVu
b3JtOHgyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVbm9ybTh4NDoKKyAgICAgICAgcmV0
dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVub3JtOHg0OworICAgIGNhc2UgR1BVVmVy
dGV4Rm9ybWF0OjpTbm9ybTh4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhG
b3JtYXQ6OlNub3JtOHgyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTbm9ybTh4NDoKKyAg
ICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNub3JtOHg0OworICAgIGNh
c2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BV
OjpWZXJ0ZXhGb3JtYXQ6OlVpbnQxNngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50
MTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQxNng0
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTaW50MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBB
TDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlNpbnQxNngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9y
bWF0OjpTaW50MTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6
OlNpbnQxNng0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVbm9ybTE2eDI6CisgICAgICAg
IHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpVbm9ybTE2eDI7CisgICAgY2FzZSBH
UFVWZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpW
ZXJ0ZXhGb3JtYXQ6OlVub3JtMTZ4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6U25vcm0x
NngyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U25vcm0xNngy
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpTbm9ybTE2eDQ6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTbm9ybTE2eDQ7CisgICAgY2FzZSBHUFVWZXJ0ZXhG
b3JtYXQ6OkZsb2F0MTZ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ6OkZsb2F0MTZ4MjsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXQxNng0OgorICAg
ICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQxNng0OworICAgIGNh
c2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdDMyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6
OlZlcnRleEZvcm1hdDo6RmxvYXQzMjsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXQz
MngyOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6RmxvYXQzMngy
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdDMyeDM6CisgICAgICAgIHJldHVybiBQ
QUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpGbG9hdDMyeDM7CisgICAgY2FzZSBHUFVWZXJ0ZXhG
b3JtYXQ6OkZsb2F0MzJ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3Jt
YXQ6OkZsb2F0MzJ4NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6VWludDMyOgorICAgICAg
ICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6VWludDMyOworICAgIGNhc2UgR1BV
VmVydGV4Rm9ybWF0OjpVaW50MzJ4MjoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0
ZXhGb3JtYXQ6OlVpbnQzMngyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MzJ4MzoK
KyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMngzOworICAg
IGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpVaW50MzJ4NDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2Vi
R1BVOjpWZXJ0ZXhGb3JtYXQ6OlVpbnQzMng0OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpT
aW50MzI6CisgICAgICAgIHJldHVybiBQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0OjpTaW50MzI7
CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQzMngyOgorICAgICAgICByZXR1cm4gUEFM
OjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDI7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3Jt
YXQ6OlNpbnQzMngzOgorICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6
U2ludDMyeDM7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OlNpbnQzMng0OgorICAgICAgICBy
ZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleEZvcm1hdDo6U2ludDMyeDQ7CisgICAgfQorICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDVmYWE4OWM5ZDFlNDhjMTQ4MmU1
OWU0Njk2MzFkOWI0ZmE2MzA5YmIuLjkzODUyMTBkZThiZWQ2YzM2ZWNiMDQ4MWE4OTk0MmU2ODNj
M2UwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRl
eFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4U3Rh
dGUuaApAQCAtMjgsMTEgKzI4LDM3IEBACiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
aCIKICNpbmNsdWRlICJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCIKICNpbmNsdWRlIDxvcHRpb25h
bD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBH
UFVWZXJ0ZXhTdGF0ZSA6IHB1YmxpYyBHUFVQcm9ncmFtbWFibGVTdGFnZSB7CisgICAgUEFMOjpX
ZWJHUFU6OlZlcnRleFN0YXRlIGNvbnZlcnRUb0JhY2tpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUKG1vZHVsZSk7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCisgICAgICAgICAgICAgICAgZW50cnlQb2lu
dCwKKyAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0YW50VmFs
dWU+PiBjb25zdGFudHM7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOworICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8mIGNvbnN0YW50IDogdGhpcy0+Y29uc3RhbnRzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0
YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNv
bnN0YW50czsKKyAgICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIChbdGhpc10gKCkgeworICAgICAgICAgICAgICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ+PiBidWZmZXJzOworICAgICAgICAgICAgICAg
IGJ1ZmZlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5idWZmZXJzLnNpemUoKSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvJiBidWZmZXIgOiB0aGlzLT5idWZmZXJzKQorICAgICAg
ICAgICAgICAgICAgICBidWZmZXJzLmFwcGVuZChidWZmZXIgPyBzdGQ6Om9wdGlvbmFsIHsgYnVm
ZmVyLT5jb252ZXJ0VG9CYWNraW5nKCkgfSA6IHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGJ1ZmZlcnM7CisgICAgICAgICAgICB9KSgpLAorICAgICAgICB9OworICAgIH0K
KwogICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPEdQVVZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZl
cnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVW
ZXJ0ZXhTdGVwTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4
U3RlcE1vZGUuaAppbmRleCAyYzg5ZjE1NzgyN2Y5MjYxMzY0ZmI4ZTM0YjhhZmIyNWMwNjRmYWU5
Li5kODU3NmRmZmNjNzUyY2JiMDBkOWVjMTBhZjBiNzBmNGVlNWM1YjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGVwTW9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0ZXBNb2RlLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzQsNCArMzUsMTUgQEAgZW51bSBjbGFzcyBHUFVWZXJ0ZXhTdGVwTW9k
ZSA6IHVpbnQ4X3QgewogICAgIEluc3RhbmNlCiB9OwogCitpbmxpbmUgUEFMOjpXZWJHUFU6OlZl
cnRleFN0ZXBNb2RlIGNvbnZlcnRUb0JhY2tpbmcoR1BVVmVydGV4U3RlcE1vZGUgdmVydGV4U3Rl
cE1vZGUpCit7CisgICAgc3dpdGNoICh2ZXJ0ZXhTdGVwTW9kZSkgeworICAgIGNhc2UgR1BVVmVy
dGV4U3RlcE1vZGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpWZXJ0ZXhT
dGVwTW9kZTo6VmVydGV4OworICAgIGNhc2UgR1BVVmVydGV4U3RlcE1vZGU6Okluc3RhbmNlOgor
ICAgICAgICByZXR1cm4gUEFMOjpXZWJHUFU6OlZlcnRleFN0ZXBNb2RlOjpJbnN0YW5jZTsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5YmM2
ZjFlMGIwODE1NTZlZjE1NDI3OWE3ODA2ZWQ2N2NiYjkxOWIuLjA5ZTZmNGU1YTEyMTE5NjI3YTUy
YzAwMTMxNmU1NWU3MzljNjE3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNiw2ICsxMTYsMTM0IEBACiAJCTFDQzNBQ0U4
MjJCRDdFQzUwMEYzNjBGMCAvKiBNZXRhbFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDM0FDRTcyMkJEN0VCODAwRjM2MEYwIC8qIE1ldGFsU1BJ
LmggKi87IH07CiAJCTFDQ0VFNEY1MjBEODcxOTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0VFNEY0MjBEODcx
OTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCAqLzsgfTsKIAkJMUNDRUU0RjcyMEQ4NzQzRjAwNDdC
MDk3IC8qIE5TQXBwZWFyYW5jZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDRUU0RjYyMEQ4NzQzRjAwNDdCMDk3IC8qIE5TQXBwZWFyYW5jZVNQ
SS5oICovOyB9OworCQkxQ0VGQTFDMzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmluZEdyb3Vw
RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNDNUU0NkUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aCAqLzsgfTsKKwkJMUNFRkExQzQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQyMzI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAqLzsg
fTsKKwkJMUNFRkExQzUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQWNj
ZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQyMDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCAqLzsg
fTsKKwkJMUNFRkExQzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDYz
MjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmggKi87IH07CisJCTFD
RUZBMUM3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFcnJvckZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjIyNzM3NDk0ODAwNkY2
RkY0IC8qIFdlYkdQVUVycm9yRmlsdGVyLmggKi87IH07CisJCTFDRUZBMUM4MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDhDMjczNzQ5NEEwMDZGNkZGNCAvKiBX
ZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkExQzkyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVRleHR1cmVEaW1lbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDIxMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJH
UFVUZXh0dXJlRGltZW5zaW9uLmggKi87IH07CisJCTFDRUZBMUNBMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVDb21waWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU5MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21waWxh
dGlvbkluZm8uaCAqLzsgfTsKKwkJMUNFRkExQ0IyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0NUEyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTFDQzI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDdDMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZS5oICovOyB9OworCQkxQ0VGQTFDRDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVVmFsaWRhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0M1RTQxNjI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVVmFsaWRhdGlv
bkVycm9yLmggKi87IH07CisJCTFDRUZBMUNFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDYW52
YXNDb21wb3NpdGluZ0FscGhhTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0OTMyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0Nv
bXBvc2l0aW5nQWxwaGFNb2RlLmggKi87IH07CisJCTFDRUZBMUNGMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQzVFNDcxMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFUuaCAqLzsgfTsKKwkJMUNFRkExRDAy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUZyb250RmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzAyNzM3NDk0ODAwNkY2RkY0IC8qIFdl
YkdQVUZyb250RmFjZS5oICovOyB9OworCQkxQ0VGQTFEMTI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVVmVydGV4U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDMwMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICov
OyB9OworCQkxQ0VGQTFEMjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVuZGVyQnVuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MjI3
Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyQnVuZGxlLmggKi87IH07CisJCTFDRUZBMUQz
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0MTI3Mzc0OTQ2MDA2
RjZGRjQgLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oICovOyB9OworCQkxQ0VGQTFENDI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2QTI3Mzc0OTQ4
MDA2RjZGRjQgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggKi87IH07CisJCTFD
RUZBMUQ1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kRW5jb2Rlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEUyNzM3NDk0NzAw
NkY2RkY0IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyLmggKi87IH07CisJCTFDRUZBMUQ2MjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVCbGVuZEZhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjEyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQ
VUJsZW5kRmFjdG9yLmggKi87IH07CisJCTFDRUZBMUQ3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJH
UFVTYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ4RjI3Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVU2FtcGxlci5oICovOyB9OworCQkx
Q0VGQTFEODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDM4MjczNzQ5
NDYwMDZGNkZGNCAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oICovOyB9OworCQkxQ0VGQTFE
OTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MjcyNzM3NDkyRDAwNkY2RkY0IC8qIFdl
YkdQVVRleHR1cmUuaCAqLzsgfTsKKwkJMUNFRkExREEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQ
VU9yaWdpbjJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ1NTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLzsgfTsKKwkJ
MUNFRkExREIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1RDI3Mzc0OTQ4MDA2
RjZGRjQgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLzsgfTsKKwkJMUNFRkExREMyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0N0IyNzM3NDk0OTAwNkY2RkY0IC8q
IFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oICovOyB9OworCQkxQ0VGQTFERDI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MUMyNzM3NDkyQzAwNkY2RkY0IC8qIFdl
YkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExREUyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVVBvd2VyUHJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0N0EyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVBvd2Vy
UHJlZmVyZW5jZS5oICovOyB9OworCQkxQ0VGQTFERjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BV
VW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQyOTI3Mzc0OTJEMDA2RjZGRjQgLyogV2ViR1BVVW5jYXB0
dXJlZEVycm9yRXZlbnRJbml0LmggKi87IH07CisJCTFDRUZBMUUwMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzYyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUJp
bmRHcm91cExheW91dEVudHJ5LmggKi87IH07CisJCTFDRUZBMUUxMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMxMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0
ZXhCdWZmZXJMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkExRTIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVUNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQ3RTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29sb3IuaCAqLzsgfTsKKwkJMUNF
RkExRTMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0M0UyNzM3NDk0
NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oICovOyB9OworCQkxQ0VGQTFF
NDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEYyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLzsgfTsKKwkJMUNFRkExRTUyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2RDI3Mzc0OTQ4MDA2RjZGRjQgLyogV2Vi
R1BVUHJpbWl0aXZlU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExRTYyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVUV4dGVudDNELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0M1RTQzNzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVRXh0ZW50M0QuaCAqLzsg
fTsKKwkJMUNFRkExRTcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUFkZHJlc3NNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2QzI3Mzc0
OTQ4MDA2RjZGRjQgLyogV2ViR1BVQWRkcmVzc01vZGUuaCAqLzsgfTsKKwkJMUNFRkExRTgyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0NDI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUXVl
dWUuaCAqLzsgfTsKKwkJMUNFRkExRTkyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUltYWdlQ29w
eUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0NTYyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5oICovOyB9
OworCQkxQ0VGQTFFQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1MTI3
Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVQ29tcGFyZUZ1bmN0aW9uLmggKi87IH07CisJCTFDRUZB
MUVCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDdWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODUyNzM3NDk0OTAwNkY2RkY0IC8q
IFdlYkdQVUN1bGxNb2RlLmggKi87IH07CisJCTFDRUZBMUVDMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0MTcyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVE
ZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZBMUVEMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVC
bGVuZE9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNDNUU0M0QyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUJsZW5kT3BlcmF0aW9uLmgg
Ki87IH07CisJCTFDRUZBMUVFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQxQjI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oICovOyB9OworCQkxQ0VGQTFFRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyRGVz
Y3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0NjUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAqLzsg
fTsKKwkJMUNFRkExRjAyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QzVFNDM2MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmgg
Ki87IH07CisJCTFDRUZBMUYxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QzVFNDNDMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaCAqLzsg
fTsKKwkJMUNFRkExRjIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0
QTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCAqLzsgfTsKKwkJ
MUNFRkExRjMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVF
NDRDMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgg
Ki87IH07CisJCTFDRUZBMUY0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDREMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuaCAqLzsgfTsKKwkJMUNFRkExRjUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQzVFNDQ4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZBMUY2MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4MTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlci5oICovOyB9OworCQkxQ0VGQTFGNzI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0M1RTQ3OTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29tcGlsYXRp
b25NZXNzYWdlLmggKi87IH07CisJCTFDRUZBMUY4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1
dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggKi87IH07CisJCTFDRUZBMUY5MjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2MDI3Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5oICovOyB9OworCQkxQ0VGQTFGQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRGV2
aWNlTG9zdEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDZCMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVEZXZpY2VMb3N0SW5mby5oICov
OyB9OworCQkxQ0VGQTFGQjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXJyb3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDgzMjczNzQ5NDkw
MDZGNkZGNCAvKiBXZWJHUFVFcnJvci5oICovOyB9OworCQkxQ0VGQTFGQzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NjQyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUZyYWdt
ZW50U3RhdGUuaCAqLzsgfTsKKwkJMUNFRkExRkQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVBp
cGVsaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0M1RTQ0NTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCAq
LzsgfTsKKwkJMUNFRkExRkUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3Rh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVF
NDhCMjczNzQ5NEEwMDZGNkZGNCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmggKi87IH07CisJ
CTFDRUZBMUZGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQzRjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5o
ICovOyB9OworCQkxQ0VGQTIwMDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU2hhZGVyTW9kdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQx
RDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVU2hhZGVyTW9kdWxlLmggKi87IH07CisJCTFDRUZB
MjAxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDEz
MjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAq
LzsgfTsKKwkJMUNFRkEyMDIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVZlcnRleFN0ZXBNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQy
NDI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVVmVydGV4U3RlcE1vZGUuaCAqLzsgfTsKKwkJMUNF
RkEyMDMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUFkYXB0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDdGMjczNzQ5NDkwMDZGNkZGNCAv
KiBXZWJHUFVBZGFwdGVyLmggKi87IH07CisJCTFDRUZBMjA0MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVCaW5kR3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDg0MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3JvdXAuaCAqLzsg
fTsKKwkJMUNFRkEyMDUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDgyMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cExvY2F0aW9uLmggKi87IH07CisJCTFDRUZBMjA2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVG
ZWF0dXJlTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNDNUU0OEUyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUZlYXR1cmVOYW1lLmggKi87IH07
CisJCTFDRUZBMjA3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NUYyNzM3NDk0
ODAwNkY2RkY0IC8qIFdlYkdQVUluZGV4Rm9ybWF0LmggKi87IH07CisJCTFDRUZBMjA4MjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4MDI3Mzc0OTQ5MDA2
RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oICovOyB9OworCQkxQ0VG
QTIwOTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDI2MjczNzQ5MkQwMDZGNkZG
NCAvKiBXZWJHUFVTaGFkZXJTdGFnZS5oICovOyB9OworCQkxQ0VGQTIwQTI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODkyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVURl
dmljZURlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkEyMEIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0ODgyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oICovOyB9OworCQkxQ0VGQTIwQzI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0MjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlLmggKi87IH07CisJCTFDRUZBMjBEMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQzVFNDg3MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyMEUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVURl
dmljZUxvc3RSZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDc3MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVEZXZpY2VMb3N0UmVhc29u
LmggKi87IH07CisJCTFDRUZBMjBGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0dXJlU2Ft
cGxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNDNUU0MkUyNzM3NDkyRDAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggKi87
IH07CisJCTFDRUZBMjEwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQ2RjI3Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5o
ICovOyB9OworCQkxQ0VGQTIxMTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyQmluZGlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NjYyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuaCAqLzsgfTsKKwkJMUNF
RkEyMTIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NUMyNzM3NDk0
ODAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTIx
MzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MkYyNzM3NDkyRDAwNkY2RkY0
IC8qIFdlYkdQVVRleHR1cmVGb3JtYXQuaCAqLzsgfTsKKwkJMUNFRkEyMTQyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUludGVncmFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDg2MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVJbnRl
Z3JhbFR5cGVzLmggKi87IH07CisJCTFDRUZBMjE1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVW
ZXJ0ZXhGb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDJEMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVWZXJ0ZXhGb3JtYXQuaCAqLzsg
fTsKKwkJMUNFRkEyMTYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVByZWRlZmluZWRDb2xvclNw
YWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1
RTQ3RDI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaCAqLzsg
fTsKKwkJMUNFRkEyMTcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2OTI3
Mzc0OTQ4MDA2RjZGRjQgLyogV2ViR1BVQmluZEdyb3VwRW50cnkuaCAqLzsgfTsKKwkJMUNFRkEy
MTgyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVByaW1pdGl2ZVRvcG9sb2d5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1MzI3Mzc0OTQ3MDA2
RjZGRjQgLyogV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCAqLzsgfTsKKwkJMUNFRkEyMTkyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQxOTI3Mzc0OTJDMDA2RjZG
RjQgLyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyMUEyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MzkyNzM3NDk0NjAwNkY2
RkY0IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oICovOyB9OworCQkxQ0VGQTIxQjI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRDb21wb25lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDc4MjczNzQ5NDkwMDZGNkZGNCAv
KiBXZWJHUFVCbGVuZENvbXBvbmVudC5oICovOyB9OworCQkxQ0VGQTIxQzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMyMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJH
UFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oICovOyB9OworCQkxQ0VGQTIxRDI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVTG9hZE9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0M1RTQ1MDI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTG9hZE9wLmggKi87
IH07CisJCTFDRUZBMjFFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1
NzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oICovOyB9OworCQkx
Q0VGQTIxRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ4RDI3Mzc0OTRBMDA2RjZGRjQg
LyogV2ViR1BVQnVmZmVyLmggKi87IH07CisJCTFDRUZBMjIwMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNDNUU0NzUyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlckJp
bmRpbmdUeXBlLmggKi87IH07CisJCTFDRUZBMjIxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVT
dXBwb3J0ZWRMaW1pdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQzVFNDJCMjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMu
aCAqLzsgfTsKKwkJMUNFRkEyMjIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQzVFNDY3MjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmggKi87IH07CisJCTFDRUZBMjIzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVRdWVyeVNl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NTIyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5U2V0LmggKi87IH07CisJCTFDRUZBMjI0
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MTI3Mzc0
OTRBMDA2RjZGRjQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oICovOyB9Owor
CQkxQ0VGQTIyNTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0
NUUyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLzsg
fTsKKwkJMUNFRkEyMjYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUND
NUU0MTQyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oICov
OyB9OworCQkxQ0VGQTIyNzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVuZGVyUGlwZWxpbmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU0
MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZS5oICovOyB9OworCQkxQ0VG
QTIyODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0MTgyNzM3NDkyQzAw
NkY2RkY0IC8qIFdlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaCAqLzsgfTsKKwkJMUNFRkEyMjkyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0b3JlT3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDFGMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVT
dG9yZU9wLmggKi87IH07CisJCTFDRUZBMjJBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVVbmNh
cHR1cmVkRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNDNUU0MTUyNzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVVVuY2FwdHVyZWRFcnJv
ckV2ZW50LmggKi87IH07CisJCTFDRUZBMjJCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVGaWx0
ZXJNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0M1RTQzNDI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVRmlsdGVyTW9kZS5oICovOyB9OworCQkx
Q0VGQTIyQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NEIyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVUJsZW5kU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkEyMkQyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDU4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmggKi87IH07CisJCTFDRUZBMjJFMjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVNYXBNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0M1RTQ0MzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVTWFwTW9kZS5oICov
OyB9OworCQkxQ0VGQTIyRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4QXR0cmlidXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQy
QTI3Mzc0OTJEMDA2RjZGRjQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi87IH07CisJCTFD
RUZBMjMwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVRdWVyeVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDczMjczNzQ5NDkwMDZGNkZG
NCAvKiBXZWJHUFVRdWVyeVR5cGUuaCAqLzsgfTsKKwkJMUNFRkEyMzEyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ0OTI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVRGVw
dGhTdGVuY2lsU3RhdGUuaCAqLzsgfTsKKwkJMUNFRkEyMzIyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVUltYWdlQ29weVRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQzVFNDM1MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmggKi87IH07CisJCTFDRUZBMjMzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlVXNhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQzVFNDI1MjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVUZXh0dXJlVXNhZ2UuaCAqLzsgfTsK
KwkJMUNFRkEyMzQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVU9yaWdpbjNELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ3NDI3Mzc0OTQ5MDA2
RjZGRjQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLzsgfTsKKwkJMUNFRkEyMzUyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVVRleHR1cmVBc3BlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDIyMjczNzQ5MkMwMDZGNkZGNCAvKiBXZWJHUFVUZXh0
dXJlQXNwZWN0LmggKi87IH07CisJCTFDRUZBMjM2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVS
ZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0NzIyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggKi87IH07CisJCTFDRUZBMjM3Mjcz
N0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNUU0OEEyNzM3NDk0OTAw
NkY2RkY0IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmggKi87IH07CisJCTFDRUZB
MjM4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDFBMjczNzQ5MkMwMDZG
NkZGNCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCAqLzsgfTsKKwkJMUNFRkEyMzkyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ2ODI3Mzc0OTQ4MDA2RjZGRjQg
LyogV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyM0EyNzM3QTRD
ODAwRjBEQTk1IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDNBMjczNzQ5NDYw
MDZGNkZGNCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi87IH07CisJ
CTFDRUZBMjNCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDQ3MjczNzQ5
NDcwMDZGNkZGNCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCAqLzsgfTsKKwkJMUNFRkEyM0My
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQyQzI3Mzc0OTJEMDA2RjZGRjQgLyog
V2ViR1BVVGV4dHVyZVZpZXcuaCAqLzsgfTsKKwkJMUNFRkEyM0QyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ1QjI3Mzc0OTQ3MDA2RjZGRjQgLyog
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaCAqLzsgfTsKKwkJMUNFRkEyM0Uy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yV3JpdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDMzMjczNzQ5NDYwMDZGNkZGNCAvKiBX
ZWJHUFVDb2xvcldyaXRlLmggKi87IH07CisJCTFDRUZBMjNGMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M1RTQ5MDI3Mzc0OTRBMDA2RjZGRjQgLyogV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5oICovOyB9OworCQkxQ0VGQTI0MDI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDNCMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5oICovOyB9OworCQkxQ0VGQTI0MTI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzVFNDI4MjczNzQ5MkQwMDZGNkZGNCAvKiBXZWJHUFVTdXBw
b3J0ZWRGZWF0dXJlcy5oICovOyB9OworCQkxQ0VGQTI0MjI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0M1RTQxRTI3Mzc0OTJDMDA2RjZGRjQgLyogV2ViR1BVRGV2aWNlLmggKi87IH07CiAJCTFE
MTJDQzRCMjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMTJDQzRBMjQxMUJDQUUwMEZEQTBB
MyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCAqLzsgfTsKIAkJMUQyQjQxMzQyNUYwNUUzNTAwQTNGNzBB
IC8qIENsb2NrR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDJCNDEzMjI1RjA1RTM0MDBBM0Y3MEEgLyogQ2xvY2tHZW5lcmljLmNwcCAq
LzsgfTsKIAkJMUQyQjQxMzUyNUYwNUUzNTAwQTNGNzBBIC8qIENsb2NrR2VuZXJpYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQjQxMzMyNUYwNUUz
NTAwQTNGNzBBIC8qIENsb2NrR2VuZXJpYy5oICovOyB9OwpAQCAtMzc0LDcgKzUwMiw3IEBACiAJ
CTFDQzVFNDM0MjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVGaWx0ZXJNb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVUZpbHRlck1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUNDNUU0MzUyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0M1RTQzNjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29tcGlsYXRpb25N
ZXNzYWdlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQzVFNDM3MjczNzQ5NDYwMDZGNkZG
NCAvKiBXZWJHUFVFeHRlbnQzRERpY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRXh0ZW50M0RE
aWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDM3MjczNzQ5NDYwMDZG
NkZGNCAvKiBXZWJHUFVFeHRlbnQzRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVFeHRlbnQzRC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQzODI3Mzc0OTQ2MDA2RjZGRjQg
LyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0MzkyNzM3
NDk0NjAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUNDNUU0M0EyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmlu
ZGluZ0xheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgyLDggKzUxMCw4
IEBACiAJCTFDQzVFNDNDMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDNEMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVC
bGVuZE9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCbGVuZE9wZXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQzRTI3Mzc0OTQ2MDA2RjZGRjQgLyog
V2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQ
YXNzRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0M1RTQzRjI3Mzc0
OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxQ0M1RTQ0MDI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDNGMjczNzQ5
NDYwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDQxMjcz
NzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNDNUU0NDIyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1cmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NDMyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQVU1hcE1vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVTWFwTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDAzLDcgKzUzMSw3IEBACiAJCTFDQzVFNDUyMjczNzQ5NDcwMDZGNkZGNCAvKiBX
ZWJHUFVRdWVyeVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVRdWVyeVNldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1MzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BV
UHJpbWl0aXZlVG9wb2xvZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUHJpbWl0aXZlVG9wb2xv
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NTQyNzM3NDk0NzAwNkY2
RkY0IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVJlbmRl
clBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQzVFNDU1MjczNzQ5
NDcwMDZGNkZGNCAvKiBXZWJHUFVPcmlnaW4yRERpY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BV
T3JpZ2luMkREaWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzVFNDU1Mjcz
NzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVPcmlnaW4yRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVP
cmlnaW4yRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1NjI3Mzc0OTQ3
MDA2RjZGRjQgLyogV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQ
VUltYWdlQ29weUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ1
NzI3Mzc0OTQ3MDA2RjZGRjQgLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDQzVFNDU4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNCw3ICs1NjIsNyBAQAogCQkxQ0M1RTQ3MTI3Mzc0OTQ4
MDA2RjZGRjQgLyogV2ViR1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ3MjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNDNUU0NzMyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVF1ZXJ5VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVRdWVyeVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUNDNUU0NzQyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVU9yaWdpbjNERGljdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVPcmlnaW4zRERpY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNDNUU0NzQyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVU9yaWdpbjNELmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdQVU9yaWdpbjNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDQzVFNDc1MjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJCaW5kaW5nVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0M1RTQ3NjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0NzcyNzM3NDk0OTAwNkY2RkY0
IC8qIFdlYkdQVURldmljZUxvc3RSZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVRGV2aWNl
TG9zdFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ0LDcgKzU3Miw3
IEBACiAJCTFDQzVFNDdCMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVFNDdDMjczNzQ5NDkwMDZGNkZGNCAvKiBX
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0M1RTQ3RDI3
Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yRGljdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVDb2xvckRpY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVUNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQzVF
NDdGMjczNzQ5NDkwMDZGNkZGNCAvKiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdQVUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNDNUU0ODAyNzM3
NDk0OTAwNkY2RkY0IC8qIFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0M1RTQ4MTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzIsNyArMTA2MCw3IEBACiAJCQkJ
MUNDNUU0NUQyNzM3NDk0ODAwNkY2RkY0IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8sCiAJCQkJ
MUNDNUU0OTMyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFN
b2RlLmggKi8sCiAJCQkJMUNDNUU0NTgyNzM3NDk0NzAwNkY2RkY0IC8qIFdlYkdQVUNhbnZhc0Nv
bmZpZ3VyYXRpb24uaCAqLywKLQkJCQkxQ0M1RTQ3RTI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BV
Q29sb3JEaWN0LmggKi8sCisJCQkJMUNDNUU0N0UyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUNv
bG9yLmggKi8sCiAJCQkJMUNDNUU0OEIyNzM3NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUNvbG9yVGFy
Z2V0U3RhdGUuaCAqLywKIAkJCQkxQ0M1RTQzMzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVQ29s
b3JXcml0ZS5oICovLAogCQkJCTFDQzVFNDYwMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVDb21t
YW5kQnVmZmVyLmggKi8sCkBAIC05NDYsNyArMTA3NCw3IEBACiAJCQkJMUNDNUU0OEMyNzM3NDk0
QTAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oICovLAogCQkJCTFDQzVF
NDNFMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaCAqLywKIAkJ
CQkxQ0M1RTQ4MjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBM
b2NhdGlvbi5oICovLAotCQkJCTFDQzVFNDQwMjczNzQ5NDYwMDZGNkZGNCAvKiBXZWJHUFVDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlLmggKi8sCisJCQkJMUNDNUU0NDAyNzM3NDk0NjAwNkY2RkY0
IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8sCiAJCQkJMUNDNUU0MUEy
NzM3NDkyQzAwNkY2RkY0IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZS5oICovLAogCQkJCTFDQzVF
NDQ4MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgg
Ki8sCiAJCQkJMUNDNUU0ODUyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQVUN1bGxNb2RlLmggKi8s
CkBAIC05NTcsNyArMTA4NSw3IEBACiAJCQkJMUNDNUU0NzcyNzM3NDk0OTAwNkY2RkY0IC8qIFdl
YkdQVURldmljZUxvc3RSZWFzb24uaCAqLywKIAkJCQkxQ0M1RTQ4MzI3Mzc0OTQ5MDA2RjZGRjQg
LyogV2ViR1BVRXJyb3IuaCAqLywKIAkJCQkxQ0M1RTQ2MjI3Mzc0OTQ4MDA2RjZGRjQgLyogV2Vi
R1BVRXJyb3JGaWx0ZXIuaCAqLywKLQkJCQkxQ0M1RTQzNzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2Vi
R1BVRXh0ZW50M0REaWN0LmggKi8sCisJCQkJMUNDNUU0MzcyNzM3NDk0NjAwNkY2RkY0IC8qIFdl
YkdQVUV4dGVudDNELmggKi8sCiAJCQkJMUNDNUU0NDIyNzM3NDk0NjAwNkY2RkY0IC8qIFdlYkdQ
VUV4dGVybmFsVGV4dHVyZS5oICovLAogCQkJCTFDQzVFNDNBMjczNzQ5NDYwMDZGNkZGNCAvKiBX
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCiAJCQkJMUNDNUU0OTEyNzM3
NDk0QTAwNkY2RkY0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCAqLywKQEAg
LTk3Niw4ICsxMTA0LDggQEAKIAkJCQkxQ0M1RTQ0MzI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BV
TWFwTW9kZS5oICovLAogCQkJCTFDQzVFNDU3MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVNdWx0
aXNhbXBsZVN0YXRlLmggKi8sCiAJCQkJMUNDNUU0N0MyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmggKi8sCi0JCQkJMUNDNUU0NTUyNzM3NDk0NzAwNkY2RkY0
IC8qIFdlYkdQVU9yaWdpbjJERGljdC5oICovLAotCQkJCTFDQzVFNDc0MjczNzQ5NDkwMDZGNkZG
NCAvKiBXZWJHUFVPcmlnaW4zRERpY3QuaCAqLywKKwkJCQkxQ0M1RTQ1NTI3Mzc0OTQ3MDA2RjZG
RjQgLyogV2ViR1BVT3JpZ2luMkQuaCAqLywKKwkJCQkxQ0M1RTQ3NDI3Mzc0OTQ5MDA2RjZGRjQg
LyogV2ViR1BVT3JpZ2luM0QuaCAqLywKIAkJCQkxQ0M1RTQ0RjI3Mzc0OTQ3MDA2RjZGRjQgLyog
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAogCQkJCTFDQzVFNDVFMjczNzQ5NDgwMDZGNkZG
NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJMUNDNUU0NDUyNzM3
NDk0NzAwNkY2RkY0IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0LmggKi8sCkBAIC0xMDAyLDcgKzEx
MzAsNyBAQAogCQkJCTFDQzVFNDRBMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5oICovLAogCQkJCTFDQzVFNDYzMjczNzQ5NDgwMDZGNkZGNCAvKiBXZWJHUFVSZW5k
ZXJQYXNzTGF5b3V0LmggKi8sCiAJCQkJMUNDNUU0ODgyNzM3NDk0OTAwNkY2RkY0IC8qIFdlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oICovLAotCQkJCTFDQzVFNDNGMjczNzQ5NDYw
MDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaCAqLywKKwkJCQkxQ0M1
RTQzRjI3Mzc0OTQ2MDA2RjZGRjQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5o
ICovLAogCQkJCTFDQzVFNDU0MjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBlbGlu
ZS5oICovLAogCQkJCTFDQzVFNDVBMjczNzQ5NDcwMDZGNkZGNCAvKiBXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0M1RTQ3QjI3Mzc0OTQ5MDA2RjZGRjQgLyogV2Vi
R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggKi8sCkBAIC0xMjk5LDYgKzE0MjcsMTM0IEBACiAJ
CQkJMDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQ2QjhDNEYyNjc0MEFEODAwN0E2NTU0IC8qIFZpc2lvbktpdENv
cmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5MUYzQkVCNDkwMERCQzMxNyAvKiBX
ZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUNGMjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjAzMjczN0E0
QzgwMEYwREE5NSAvKiBXZWJHUFVBZGFwdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFF
NzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQWRkcmVzc01vZGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjA0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFDRUZBMUMzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxNzI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVQmluZEdyb3VwRW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjBEMjcz
N0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUYzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFMDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjFC
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUNFRkExRDYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJsZW5kRmFjdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFRDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQmxlbmRP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjJDMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVCbGVuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxRjI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMTI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQnVmZmVyQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFRkExRDMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjIwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVC
dWZmZXJCaW5kaW5nVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUYyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFD
RUZBMURCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUNFRkExQ0UyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNhbnZhc0NvbXBvc2l0
aW5nQWxwaGFNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyRDI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNF
RkExRTIyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9yLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFGRTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyM0UyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbG9y
V3JpdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUY5MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVDb21tYW5kQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzNzI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMUQ1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21tYW5kRW5jb2Rlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRDQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUEyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBhcmVGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUNFRkExQ0EyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uSW5mby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRjcyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRjAyNzM3QTRDODAwRjBE
QTk1IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDRUZBMUM4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUUzMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVD
b21wdXRlUGFzc0VuY29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjA1MjczN0E0Qzgw
MEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxQ0VGQTFGODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjM4MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUY1MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFQjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVQ3Vs
bE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjMxMjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyNDIyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVURldmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEy
MEEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMUZBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVEZXZpY2VMb3N0SW5m
by5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMEUyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQ
VURldmljZUxvc3RSZWFzb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUZCMjczN0E0Qzgw
MEYwREE5NSAvKiBXZWJHUFVFcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExQzcyNzM3
QTRDODAwRjBEQTk1IC8qIFdlYkdQVUVycm9yRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
Q0VGQTFFNjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXh0ZW50M0QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMjBDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjNBMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIy
NDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMDYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUZlYXR1
cmVOYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyQjI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVRmlsdGVyTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRkMyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUQwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVGcm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUU5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMjEwMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzMjI3MzdBNEM4
MDBGMERBOTUgLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUNFRkEyM0YyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjNCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVJ
bWFnZURhdGFMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjA3MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMTQy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVUludGVncmFsVHlwZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjFEMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVMb2FkT3AuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjJFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVNYXBNb2RlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxRTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExQ0MyNzM3QTRDODAwRjBEQTk1
IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VG
QTFEQTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVT3JpZ2luMkQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjM0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVPcmlnaW4zRC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMUNFRkExRTQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVU91dE9mTWVtb3J5
RXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI1MjczN0E0QzgwMEYwREE5NSAvKiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFG
RDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRUZBMUY0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjFBMjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MURFMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQb3dlclByZWZlcmVuY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjE2MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQcmVkZWZpbmVkQ29s
b3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRTUyNzM3QTRDODAwRjBEQTk1IC8q
IFdlYkdQVVByaW1pdGl2ZVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxODI3MzdB
NEM4MDBGMERBOTUgLyogV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUQ4MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMjMyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVF1
ZXJ5U2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMjI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzMDI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUXVlcnlUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
Q0VGQTFFODI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUXVldWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMUQyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJCdW5kbGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDRUZBMjIyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJC
dW5kbGVEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFGNjI3MzdBNEM4MDBG
MERBOTUgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUNFRkEyM0QyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIwODI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNF
RkEyMzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTI0MDI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUYy
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUNFRkExQzYyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjBCMjczN0E0QzgwMEYwREE5NSAvKiBXZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MUZGMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyNzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUNCMjczN0E0QzgwMEYwREE5
NSAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFDRUZBMURDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUQ3MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVT
YW1wbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzOTI3MzdBNEM4MDBGMERBOTUgLyog
V2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMUYx
MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMUM0MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMDAyNzM3QTRDODAwRjBEQTk1IC8qIFdl
YkdQVVNoYWRlck1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkExRUUyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjA5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTaGFkZXJTdGFnZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMUNFRkExREQyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVN0ZW5jaWxG
YWNlU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI4MjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVTdGVuY2lsT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFDNTI3
MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFDRUZBMjAxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI5MjczN0E0QzgwMEYw
REE5NSAvKiBXZWJHUFVTdG9yZU9wLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTI0MTI3MzdB
NEM4MDBGMERBOTUgLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDRUZBMjIxMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMUQ5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzNTI3MzdBNEM4MDBGMERBOTUgLyogV2Vi
R1BVVGV4dHVyZUFzcGVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMTkyNzM3QTRDODAw
RjBEQTk1IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFFQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTFDRUZBMUM5MjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0
dXJlRGltZW5zaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIxMzI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVGV4dHVyZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFRkEyMEYy
NzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQ0VGQTIzMzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4dHVyZVVzYWdlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIzQzI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVGV4
dHVyZVZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZBMjI2MjczN0E0QzgwMEYwREE5NSAv
KiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRUZB
MjFDMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMUNFRkEyMkEyNzM3QTRDODAwRjBEQTk1IC8qIFdlYkdQVVVuY2FwdHVy
ZWRFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFERjI3MzdBNEM4MDBGMERB
OTUgLyogV2ViR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQ0VGQTFDRDI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQ0VGQTIyRjI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4
QXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTFFMTI3MzdBNEM4MDBGMERBOTUg
LyogV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0VGQTIx
NTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4Rm9ybWF0LmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQ0VGQTFEMTI3MzdBNEM4MDBGMERBOTUgLyogV2ViR1BVVmVydGV4U3RhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDRUZBMjAyMjczN0E0QzgwMEYwREE5NSAvKiBXZWJHUFVWZXJ0ZXhT
dGVwTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwODI2RjkxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGIyMGFhNmVjNGZmMGYxZTc0MGY4ZTFjMTY0ZjQ4NWI4MmJlMjhkZWYuLjBiMjEzYzY4MTlm
ZTJmOWU4OWQ2M2QzNTFjNDY1ZThlZjFmYmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9DTWFr
ZUxpc3RzLnR4dApAQCAtOCw2ICs4LDEzNSBAQCBzZXQoUEFMX1BVQkxJQ19IRUFERVJTCiAKICAg
ICBjcnlwdG8vQ3J5cHRvRGlnZXN0LmgKIAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFUuaAor
ICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKKyAgICBncmFwaGljcy9XZWJHUFUv
V2ViR1BVQWRkcmVzc01vZGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXAu
aAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaAorICAgIGdyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0RW50cnkuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVu
dC5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmgKKyAgICBncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQmxlbmRPcGVyYXRpb24uaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJH
UFVCbGVuZFN0YXRlLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisgICAgZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
dWZmZXJCaW5kaW5nVHlwZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2Ny
aXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oCisgICAgZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbXBvc2l0aW5nQWxwaGFNb2RlLmgKKyAgICBncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCisgICAgZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbG9yLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRT
dGF0ZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yV3JpdGUuaAorICAgIGdyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21tYW5kRW5jb2Rlci5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvci5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5o
CisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uSW5mby5oCisgICAgZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZVR5cGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0VuY29kZXIuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcExvY2F0aW9uLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVQ3VsbE1vZGUuaAorICAgIGdyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VURldmljZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAor
ICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VMb3N0SW5mby5oCisgICAgZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVURldmljZUxvc3RSZWFzb24uaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJH
UFVFcnJvci5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yRmlsdGVyLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRl
eHR1cmVCaW5kaW5nTGF5b3V0LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvci5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1l
LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVRmlsdGVyTW9kZS5oCisgICAgZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVG
cm9udEZhY2UuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaAor
ICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCisgICAgZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVJbWFnZURhdGFMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbmRleEZv
cm1hdC5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaAorICAgIGdy
YXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVN
YXBNb2RlLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oCisg
ICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKKyAgICBncmFw
aGljcy9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
cmlnaW4zRC5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaAor
ICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVQaXBlbGluZVN0YXRpc3RpY05hbWUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVQ
b3dlclByZWZlcmVuY2UuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29s
b3JTcGFjZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKKyAg
ICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kuaAorICAgIGdyYXBoaWNz
L1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVF1ZXJ5U2V0LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlw
dG9yLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmgKKyAgICBncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUXVldWUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJC
dW5kbGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9y
LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCisgICAg
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKKyAg
ICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCisgICAg
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgK
KyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAorICAgIGdy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisgICAgZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyLmgKKyAgICBncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1w
bGVyRGVzY3JpcHRvci5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5o
CisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAorICAg
IGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJTdGFnZS5oCisgICAgZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdGVu
Y2lsT3BlcmF0aW9uLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVB
Y2Nlc3MuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yZU9wLmgKKyAgICBncmFwaGlj
cy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUFzcGVjdC5oCisgICAgZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKyAgICBncmFwaGljcy9XZWJH
UFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1h
dC5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmgKKyAgICBn
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVVzYWdlLmgKKyAgICBncmFwaGljcy9XZWJHUFUv
V2ViR1BVVGV4dHVyZVZpZXcuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmll
d0Rlc2NyaXB0b3IuaAorICAgIGdyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVu
c2lvbi5oCisgICAgZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmgK
KyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVW5jYXB0dXJlZEVycm9yRXZlbnRJbml0LmgKKyAg
ICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKKyAgICBncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BV
VmVydGV4QnVmZmVyTGF5b3V0LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9y
bWF0LmgKKyAgICBncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAorICAgIGdyYXBo
aWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oCisKICAgICBzeXN0ZW0vQ2xvY2suaAog
ICAgIHN5c3RlbS9DbG9ja0dlbmVyaWMuaAogICAgIHN5c3RlbS9TbGVlcERpc2FibGVyLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKaW5kZXgg
ZjkyZTY5YzQ5ZDEwZWNmNDg3ZTdlMDIyMTRjNzkxMWExODk5MTA5YS4uOGI0YWM4ZWE3YzVjYmEx
NWRjNThhMzQ0ZDM2NzU1NTIwNGQzYTFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgR1BVIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R1BVKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IHN0ZDo6b3B0
aW9uYWw8UmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8
QWRhcHRlcj4pPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0
IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QWRhcHRl
cj4mJik+JiYpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEdQVSgpID0gZGVmYXVsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0
ZXIuaAppbmRleCAzNzViY2ZmOTM5NTAzYmFmODA5Nzg4OTNlODMzODUwZGQxMTBjYmNkLi40MmVl
YmU5YzJkN2I3YmJhNWFkMzBlNDM5OWFlYTg1NWM5YTViNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oCkBAIC00
OCwxMyArNDgsMTMgQEAgcHVibGljOgogICAgIGNvbnN0IFN1cHBvcnRlZExpbWl0cyYgbGltaXRz
KCkgY29uc3QgeyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2UoY29uc3Qgc3RkOjpvcHRpb25hbDxEZXZpY2VEZXNjcmlwdG9yPiYs
IHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2
b2lkKFJlZjxEZXZpY2U+KT4mJikgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQWRhcHRlcihTdHJp
bmcmJiBuYW1lLCBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+JiYgZmVhdHVyZXMsIFJlZjxTdXBwb3J0
ZWRMaW1pdHM+JiYgbGltaXRzLCBib29sIGlzRmFsbGJhY2tBZGFwdGVyKQorICAgIEFkYXB0ZXIo
U3RyaW5nJiYgbmFtZSwgU3VwcG9ydGVkRmVhdHVyZXMmIGZlYXR1cmVzLCBTdXBwb3J0ZWRMaW1p
dHMmIGxpbWl0cywgYm9vbCBpc0ZhbGxiYWNrQWRhcHRlcikKICAgICAgICAgOiBtX25hbWUoV1RG
TW92ZShuYW1lKSkKLSAgICAgICAgLCBtX2ZlYXR1cmVzKFdURk1vdmUoZmVhdHVyZXMpKQotICAg
ICAgICAsIG1fbGltaXRzKFdURk1vdmUobGltaXRzKSkKKyAgICAgICAgLCBtX2ZlYXR1cmVzKGZl
YXR1cmVzKQorICAgICAgICAsIG1fbGltaXRzKGxpbWl0cykKICAgICAgICAgLCBtX2lzRmFsbGJh
Y2tBZGFwdGVyKGlzRmFsbGJhY2tBZGFwdGVyKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBEZXNjcmlwdG9yLmgKaW5kZXggYzJlNjEyZDUzMGJmOThjY2FmOGE4ODUxYTEwMjlh
MDQ1MDcyZGVhZS4uNmE5ODMzMTcwNzdhZTg2YzllZWYyNzkxNjAxNTRjOTQxM2I0N2FjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1l
c3BhY2UgUEFMIHsKIG5hbWVzcGFjZSBXZWJHUFUgewogCiBzdHJ1Y3QgQmluZEdyb3VwRGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7Ci0gICAgUmVmUHRyPEJpbmRHcm91
cExheW91dD4gbGF5b3V0OworICAgIEJpbmRHcm91cExheW91dCYgbGF5b3V0OwogICAgIFZlY3Rv
cjxCaW5kR3JvdXBFbnRyeT4gZW50cmllczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5o
CmluZGV4IGVlZWRjZDZlYjZlMmI1MjMyN2M2OTA4YzY0MGUzZTA4NWUzYjM0NDAuLmEzNjBkMDFh
ZDE0MjZlMzA5YzdiZThmNjc4ODUxOGQ5MGI5OWU3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50
cnkuaApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BV
IHsKIAotdXNpbmcgQmluZGluZ1Jlc291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxTYW1wbGVy
PiwgUmVmUHRyPFRleHR1cmVWaWV3PiwgQnVmZmVyQmluZGluZywgUmVmUHRyPEV4dGVybmFsVGV4
dHVyZT4+OwordXNpbmcgQmluZGluZ1Jlc291cmNlID0gc3RkOjp2YXJpYW50PHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8U2FtcGxlcj4sIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+
LCBCdWZmZXJCaW5kaW5nLCBzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPEV4dGVybmFsVGV4dHVyZT4+
OwogCiBzdHJ1Y3QgQmluZEdyb3VwRW50cnkgewogICAgIEluZGV4MzIgYmluZGluZzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVy
LmgKaW5kZXggMzE1NzRiMzQ3NGI2MDk3ZmZjNTUyNTIwMmE5NzI0NDA1YjU1MzY4MC4uMTgzOTFk
NmFmNzM3NDIwZDRkMDE0NzE5YWI3ODIwZWQ5ZWM4OWNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmgKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBzb3VyY2U7CiAgICAgICAgIHNp
emVfdCBieXRlTGVuZ3RoOwogICAgIH07Ci0gICAgdmlydHVhbCBNYXBwZWRSYW5nZSBnZXRNYXBw
ZWRSYW5nZShzdGQ6Om9wdGlvbmFsPFNpemU2ND4gb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFNpemU2
ND4gcmFuZ2VTaXplKSA9IDA7CisgICAgdmlydHVhbCBNYXBwZWRSYW5nZSBnZXRNYXBwZWRSYW5n
ZShzdGQ6Om9wdGlvbmFsPFNpemU2ND4gb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFNpemU2ND4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXAoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaAppbmRleCAwMzQ0MzE1YjA4M2YwY2Jk
ODljZjhmZjg2ZTU2YjM4OWYzMzQ3NjFmLi5jOGZkYjAxOTE3NGNmMjBiOTYwYWM5NTc5Y2Q3MGZj
YWYxNzgzMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCkBAIC0zNCw3ICszNCw3IEBAIG5h
bWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7CiAKIHN0cnVjdCBCdWZmZXJCaW5kaW5n
IHsKLSAgICBSZWZQdHI8QnVmZmVyPiBidWZmZXI7CisgICAgQnVmZmVyJiBidWZmZXI7CiAgICAg
U2l6ZTY0IG9mZnNldDsKICAgICBzdGQ6Om9wdGlvbmFsPFNpemU2ND4gc2l6ZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDYW52
YXNDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5kZXggN2U1M2FhOTYyYTNkMGUxODk5YzVk
NjY2ODIyZDFlMDMzODUzZGYwNy4uZDZiZTJlNjI4YjhjODc3Zjc5NjczOGVhMGVmMTI0NGQyY2Rm
YzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaApAQCAtMjYsMTIgKzI2
LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdQVUNhbnZhc0NvbXBvc2l0aW5n
QWxwaGFNb2RlLmgiCi0jaW5jbHVkZSAiV2ViR1BVRXh0ZW50M0REaWN0LmgiCisjaW5jbHVkZSAi
V2ViR1BVRXh0ZW50M0QuaCIKICNpbmNsdWRlICJXZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5o
IgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVGb3JtYXQuaCIKICNpbmNsdWRlIDxjc3RkaW50Pgog
I2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7CkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIERldmljZTsKIHVzaW5nIFRleHR1cmVVc2FnZUZsYWdzID0gdWludDMy
X3Q7IC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgbmVlZCB0byBiZSBoZXJlLgogCiBzdHJ1Y3QgQ2Fu
dmFzQ29uZmlndXJhdGlvbiB7Ci0gICAgUmVmUHRyPERldmljZT4gZGV2aWNlOworICAgIERldmlj
ZSYgZGV2aWNlOwogICAgIFRleHR1cmVGb3JtYXQgZm9ybWF0OwogICAgIFRleHR1cmVVc2FnZUZs
YWdzIHVzYWdlOyAvLyBUZXh0dXJlVXNhZ2UuUkVOREVSX0FUVEFDSE1FTlQKICAgICBQcmVkZWZp
bmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk5NTRhM2VmN2Zm
ZTZiZTk1ZmNjNzljNzQ0OWU2MWFhNGZjN2FhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8dmFyaWFudD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBQQUwgeworbmFtZXNwYWNlIFdlYkdQVSB7CisKK3N0cnVjdCBDb2xvckRpY3Qg
eworICAgIGRvdWJsZSByOworICAgIGRvdWJsZSBnOworICAgIGRvdWJsZSBiOworICAgIGRvdWJs
ZSBhOworfTsKKwordXNpbmcgQ29sb3IgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPGRvdWJsZT4sIENv
bG9yRGljdD47CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yRGljdC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JEaWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ5OTU0YTNlZjdmZmU2YmU5NWZjYzc5Yzc0NDllNjFhYTRmYzdhYWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JEaWN0LmgKKysrIC9kZXYvbnVsbApAQCAt
MSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx2YXJp
YW50PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFBBTCB7Ci1uYW1lc3BhY2UgV2ViR1BVIHsKLQotc3RydWN0IENv
bG9yRGljdCB7Ci0gICAgZG91YmxlIHI7Ci0gICAgZG91YmxlIGc7Ci0gICAgZG91YmxlIGI7Ci0g
ICAgZG91YmxlIGE7Ci19OwotCi11c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91
YmxlPiwgQ29sb3JEaWN0PjsKLQotfQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyLmgKaW5kZXgg
OTE3MzNiNWJmNWRmMDQ0ZmIxOGEwNzEzNTk0ODRiNzBmY2NmNDM2Mi4uMTY0N2IyN2FlN2ZhODJk
MjhmZDBiMGE2NDNmNDA3ZmYyNGM5MDMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2Rlci5oCkBA
IC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJX
ZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaCIKLSNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRERpY3Qu
aCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlQ29w
eUJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlQ29weVRleHR1cmUuaCIKICNpbmNsdWRl
ICJXZWJHUFVJbnRlZ3JhbFR5cGVzLmgiCkBAIC01OCw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICAg
ICAgc2V0TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFJlZjxS
ZW5kZXJQYXNzRW5jb2Rlcj4gYmVnaW5SZW5kZXJQYXNzKFJlbmRlclBhc3NEZXNjcmlwdG9yKSA9
IDA7Ci0gICAgdmlydHVhbCBSZWY8Q29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdpbkNvbXB1dGVQYXNz
KHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPikgPSAwOworICAgIHZpcnR1YWwg
UmVmPFJlbmRlclBhc3NFbmNvZGVyPiBiZWdpblJlbmRlclBhc3MoY29uc3QgUmVuZGVyUGFzc0Rl
c2NyaXB0b3ImKSA9IDA7CisgICAgdmlydHVhbCBSZWY8Q29tcHV0ZVBhc3NFbmNvZGVyPiBiZWdp
bkNvbXB1dGVQYXNzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q29tcHV0ZVBhc3NEZXNjcmlwdG9yPiYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5QnVmZmVyVG9CdWZmZXIoCiAgICAgICAgIGNv
bnN0IEJ1ZmZlciYgc291cmNlLApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3QgQnVmZmVyJiBkZXN0aW5hdGlvbiwKICAgICAgICAgU2l6ZTY0IGRlc3RpbmF0aW9uT2Zm
c2V0KSA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZjxDb21tYW5kQnVmZmVyPiBmaW5pc2goc3RkOjpv
cHRpb25hbDxDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxD
b21tYW5kQnVmZmVyPiBmaW5pc2goY29uc3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImKSA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBDb21tYW5kRW5jb2RlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQ
YXNzRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKaW5kZXggMGRhNzIyNjgzYmUyMGY1YmY5ODU2
ZDJiMjM4MmRkYjljNDEyOTU0Yi4uMDg2YWI3MDIxYWIwZjE3NWFlYjlmNWFhYmJkMjZkMjdlYjc5
NzQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKQEAgLTI1LDcg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZXMuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogCiBuYW1lc3Bh
Y2UgUEFMIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmgKaW5kZXggZGVhNjYyYjI1
ZTJmYjdjYjI1NGFiMWNlYTk4MjE5ZGRlYmMzMjAxYi4uYzIxODYyNWJlOGRlMTJjODM1MDg5MjQ2
MzljMzZhNzRhNmU0MWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAg
LTY2LDcgKzY2LDggQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxCdWZm
ZXJEeW5hbWljT2Zmc2V0Pj4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEJpbmRHcm91
cChJbmRleDMyLCBjb25zdCBCaW5kR3JvdXAmLAotICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiYg
ZHluYW1pY09mZnNldHNEYXRhLAorICAgICAgICBjb25zdCB1aW50MzJfdCogZHluYW1pY09mZnNl
dHNBcnJheUJ1ZmZlciwKKyAgICAgICAgc2l6ZV90IGR5bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJM
ZW5ndGgsCiAgICAgICAgIFNpemU2NCBkeW5hbWljT2Zmc2V0c0RhdGFTdGFydCwKICAgICAgICAg
U2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0aCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIwNzMxYjdhZTkyOGFiYmU0ZjU2ZDI4NmEzMjkwNjIzYTdmMzIxYjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIgotI2luY2x1ZGUg
IldlYkdQVUludGVncmFsVHlwZXMuaCIKLSNpbmNsdWRlICJXZWJHUFVRdWVyeVNldC5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBQQUwgewotbmFtZXNwYWNlIFdlYkdQVSB7Ci0KLXN0cnVjdCBDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlIHsKLSAgICBSZWZQdHI8UXVlcnlTZXQ+IHF1ZXJ5U2V0OwotICAgIFNpemUzMiBxdWVy
eUluZGV4OwotICAgIENvbXB1dGVQYXNzVGltZXN0YW1wTG9jYXRpb24gbG9jYXRpb247Ci19Owot
Ci11c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlPjsKLQotfQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4ZDk2YTAwNTBlNjM5NmY1MWI2OWI4NmU5ODU1
NDIzMjg1Zjg3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViR1BVQ29t
cHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oIgorI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlw
ZXMuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBQQUwgeworbmFtZXNwYWNlIFdl
YkdQVSB7CisKK3N0cnVjdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlIHsKKyAgICBRdWVyeVNl
dCYgcXVlcnlTZXQ7CisgICAgU2l6ZTMyIHF1ZXJ5SW5kZXg7CisgICAgQ29tcHV0ZVBhc3NUaW1l
c3RhbXBMb2NhdGlvbiBsb2NhdGlvbjsKK307CisKK3VzaW5nIENvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzID0gVmVjdG9yPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+OworCit9Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZp
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmlj
ZS5oCmluZGV4IDBkNmMxOGQ4ZmNjZDBlYjU1NjA1NmZiYWIyZTJmYTExNDlmZGI5YmQuLjU1NjA0
MjJiNGE3ZTExNzljZTIxMDEyMTI3YzFmMjBlOTMwMWNmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oCkBAIC0zMCw2
ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKICNpbmNsdWRlICJXZWJHUFVFcnJv
ckZpbHRlci5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAi
V2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRMaW1p
dHMuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CkBAIC02NSw4ICs2Nyw2IEBAIGNsYXNzIFNhbXBsZXI7CiBzdHJ1Y3Qg
U2FtcGxlckRlc2NyaXB0b3I7CiBjbGFzcyBTaGFkZXJNb2R1bGU7CiBzdHJ1Y3QgU2hhZGVyTW9k
dWxlRGVzY3JpcHRvcjsKLWNsYXNzIFN1cHBvcnRlZEZlYXR1cmVzOwotY2xhc3MgU3VwcG9ydGVk
TGltaXRzOwogY2xhc3MgVGV4dHVyZTsKIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvcjsKIApAQCAt
ODIsMTQgKzgyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgc2V0TGFiZWxJbnRlcm5hbChtX2xhYmVs
KTsKICAgICB9CiAKKyAgICBTdXBwb3J0ZWRGZWF0dXJlcyYgZmVhdHVyZXMoKSB7IHJldHVybiBt
X2ZlYXR1cmVzOyB9CiAgICAgY29uc3QgU3VwcG9ydGVkRmVhdHVyZXMmIGZlYXR1cmVzKCkgY29u
c3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQorICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRzKCkg
eyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBjb25zdCBTdXBwb3J0ZWRMaW1pdHMmIGxpbWl0cygp
IGNvbnN0IHsgcmV0dXJuIG1fbGltaXRzOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
ID0gMDsKIAogICAgIHZpcnR1YWwgUmVmPEJ1ZmZlcj4gY3JlYXRlQnVmZmVyKGNvbnN0IEJ1ZmZl
ckRlc2NyaXB0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBSZWY8VGV4dHVyZT4gY3JlYXRlVGV4dHVy
ZShjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYpID0gMDsKLSAgICB2aXJ0dWFsIFJlZjxTYW1wbGVy
PiBjcmVhdGVTYW1wbGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2FtcGxlckRlc2NyaXB0b3I+Jikg
PSAwOworICAgIHZpcnR1YWwgUmVmPFNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoY29uc3QgU2FtcGxl
ckRlc2NyaXB0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBSZWY8RXh0ZXJuYWxUZXh0dXJlPiBpbXBv
cnRFeHRlcm5hbFRleHR1cmUoY29uc3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYpID0gMDsK
IAogICAgIHZpcnR1YWwgUmVmPEJpbmRHcm91cExheW91dD4gY3JlYXRlQmluZEdyb3VwTGF5b3V0
KGNvbnN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKSA9IDA7CkBAIC05OSw4ICsxMDEsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWY8U2hhZGVyTW9kdWxlPiBjcmVhdGVTaGFkZXJNb2R1
bGUoY29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxD
b21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgUmVmPFJlbmRlclBpcGVsaW5lPiBjcmVh
dGVSZW5kZXJQaXBlbGluZShjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPENvbXB1dGVQaXBlbGlu
ZT4pPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMo
Y29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxS
ZW5kZXJQaXBlbGluZT4pPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNvbXB1dGVQ
aXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoUmVmPENvbXB1dGVQaXBlbGluZT4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPFJlbmRlclBpcGVsaW5lPiYmKT4mJikgPSAwOwog
CiAgICAgdmlydHVhbCBSZWY8Q29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYpID0gMDsKICAgICB2
aXJ0dWFsIFJlZjxSZW5kZXJCdW5kbGVFbmNvZGVyPiBjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVy
KGNvbnN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJikgPSAwOwpAQCAtMTA4LDcgKzEx
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZjxRdWVyeVNldD4gY3JlYXRlUXVlcnlTZXQo
Y29uc3QgUXVlcnlTZXREZXNjcmlwdG9yJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHB1c2hF
cnJvclNjb3BlKEVycm9yRmlsdGVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvcEVycm9yU2Nv
cGUoc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+KT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwb3BFcnJvclNjb3BlKHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6Om9wdGlv
bmFsPEVycm9yPiYmKT4mJikgPSAwOwogCiAgICAgY2xhc3MgRGV2aWNlTG9zdENsaWVudCB7CiAg
ICAgICAgIHZpcnR1YWwgfkRldmljZUxvc3RDbGllbnQoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVE
ZXZpY2VEZXNjcmlwdG9yLmgKaW5kZXggOTkwYjFiNzE5OTJhZGY3ZDExZGUyZWEzYTU3YTRmMzli
MzRkYTlhOS4uODVlYjQ0YTYyMzU3MGRlNDZiYmY2YWFlZWRhNjgxMzc2ZGY5ZmIxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVURldmljZURlc2NyaXB0b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPGNz
dGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvS2V5VmFsdWVQ
YWlyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFBBTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVRXJyb3IuaAppbmRleCBlOGJlNTdlODhmYzUwODAxZWUxN2FjN2Ri
NTU1NDg0MWUxNGQ4NjllLi4wMjczZTZhNmZlZjQ3YThlY2VjZmMzZTllYjI2MjFiOTFkZTgxZTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUVycm9yLmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2luY2x1ZGUgIldlYkdQVU91dE9mTWVt
b3J5RXJyb3IuaCIKICNpbmNsdWRlICJXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCIKICNpbmNsdWRl
IDx2YXJpYW50PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAKIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7CiAKLXVzaW5nIEVycm9yID0g
c3RkOjp2YXJpYW50PFJlZlB0cjxPdXRPZk1lbW9yeUVycm9yPiwgUmVmUHRyPFZhbGlkYXRpb25F
cnJvcj4+OwordXNpbmcgRXJyb3IgPSBzdGQ6OnZhcmlhbnQ8UmVmPE91dE9mTWVtb3J5RXJyb3I+
LCBSZWY8VmFsaWRhdGlvbkVycm9yPj47CiAKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkwMTIwNGQ1NjMwNzk5Zjg4NjM3NjBkNTQwNDI0YWFjZjEyNmJhMTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQz
RC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKKyNpbmNsdWRlIDx2YXJpYW50PgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFBBTCB7CituYW1lc3BhY2UgV2ViR1BVIHsKKwor
c3RydWN0IEV4dGVudDNERGljdCB7CisgICAgSW50ZWdlckNvb3JkaW5hdGUgd2lkdGg7CisgICAg
SW50ZWdlckNvb3JkaW5hdGUgaGVpZ2h0OworICAgIEludGVnZXJDb29yZGluYXRlIGRlcHRoT3JB
cnJheUxheWVyczsKK307CisKK3VzaW5nIEV4dGVudDNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxJ
bnRlZ2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGljdD47CisKK30KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVudDNERGljdC5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0RE
aWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMTIwNGQ1NjMwNzk5Zjg4NjM3
NjBkNTQwNDI0YWFjZjEyNmJhMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RXh0ZW50M0REaWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJXZWJHUFVJbnRlZ3JhbFR5cGVzLmgiCi0jaW5j
bHVkZSA8dmFyaWFudD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBQQUwg
ewotbmFtZXNwYWNlIFdlYkdQVSB7Ci0KLXN0cnVjdCBFeHRlbnQzRERpY3QgewotICAgIEludGVn
ZXJDb29yZGluYXRlIHdpZHRoOwotICAgIEludGVnZXJDb29yZGluYXRlIGhlaWdodDsKLSAgICBJ
bnRlZ2VyQ29vcmRpbmF0ZSBkZXB0aE9yQXJyYXlMYXllcnM7Ci19OwotCi11c2luZyBFeHRlbnQz
RCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBFeHRlbnQzRERpY3Q+
OwotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgK
aW5kZXggMTcxMDk5NjViNDczMmRkZDYwNjg1MjlhMzhlMzkzMDI3M2Q5Yjc0OS4uZmRiMGZjNjQ5
YjZmNDI3MTExZmQ1NjAxMGYwNmFiOTk0ZDdmNzMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJXZWJHUFVQcmVkZWZpbmVk
Q29sb3JTcGFjZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFBBTCB7
CiBuYW1lc3BhY2UgV2ViR1BVIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKaW5kZXggYWRmZTU3ODM1Yjk0M2Zh
NTU3MGRiZjczYTc3YTA3OTg3NDIyZDg3OS4uMjk2MDllYTA5YjI0ZGY4NmVhNGIyZDc4ODVkNzcx
NWMxMzUyNTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVRnJvbnRGYWNlLmgKQEAgLTMxLDggKzMxLDggQEAgbmFtZXNwYWNl
IFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogZW51bSBjbGFzcyBGcm9udEZhY2UgOiB1aW50
OF90IHsKLSAgICBDY3csCi0gICAgQ3cKKyAgICBDQ1csCisgICAgQ1cKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXggNDQ4ZGRiMDRjNmMwNTAxOTI4YTVmMGFlZTYwODFh
MGNlNTRjYzJiMi4uZjIyYzZiZDljMDNmNDdhYWQ3NDAyN2E3OTQ2MDdkMmRmYjI5M2EzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTI3LDEzICsyNywxMyBAQAogCiAjaW5jbHVk
ZSAiV2ViR1BVQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgiCi0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNl
IFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1
YmxpYyBJbWFnZURhdGFMYXlvdXQgewotICAgIFJlZlB0cjxCdWZmZXI+IGJ1ZmZlcjsKKyAgICBC
dWZmZXImIGJ1ZmZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFs
SW1hZ2UuaAppbmRleCA4NDc1OTFmNWY5NmRmN2FhMDYwMzcxMWQ5MTMxYmIyNTg3M2FjMTQzLi4w
MjQyYjA4Yzg2MzI4OTNlNTY1MzRkMDNhZGY3Y2M3ODYzZGYzNzQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5h
bEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCkBAIC0yNSwxMCArMjUsOSBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgIldlYkdQVU9yaWdpbjJERGljdC5oIgorI2luY2x1ZGUgIldlYkdQ
VU9yaWdpbjJELmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8dmFyaWFudD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQ
VSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKaW5kZXggMDU3YjVlOGFmNDQyZWRjYTQy
NmQwOThjMGI4ODJmZWUwYzk1ZmYzYS4uNzZmMWEwZTU0OGM2MDY4MWZiZWNlYWY0ZjNlNWI5Njk4
NDY1Y2M5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApAQCAtMjYsMTcgKzI2LDE3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKLSNp
bmNsdWRlICJXZWJHUFVPcmlnaW4zRERpY3QuaCIKKyNpbmNsdWRlICJXZWJHUFVPcmlnaW4zRC5o
IgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHUFVUZXh0dXJlQXNw
ZWN0LmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsK
IAogc3RydWN0IEltYWdlQ29weVRleHR1cmUgewotICAgIFJlZlB0cjxUZXh0dXJlPiB0ZXh0dXJl
OworICAgIFRleHR1cmUmIHRleHR1cmU7CiAgICAgSW50ZWdlckNvb3JkaW5hdGUgbWlwTGV2ZWw7
CiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4zRD4gb3JpZ2luOwogICAgIFRleHR1cmVBc3BlY3Qg
YXNwZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVT3JpZ2luMkQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVU9yaWdpbjJELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU3ZDljNmRhMDA2MmE4MDBjZjQ1Y2Rl
MzZiMDlhYmJiMWY1MWQwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5o
IgorI2luY2x1ZGUgPHZhcmlhbnQ+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgUEFMIHsKK25hbWVzcGFjZSBXZWJHUFUgeworCitzdHJ1Y3QgT3JpZ2luMkREaWN0IHsKKyAg
ICBJbnRlZ2VyQ29vcmRpbmF0ZSB4OworICAgIEludGVnZXJDb29yZGluYXRlIHk7Cit9OworCit1
c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBP
cmlnaW4yRERpY3Q+OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4yRERpY3QuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJERGljdC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZTdkOWM2ZGEwMDYyYTgwMGNmNDVjZGUzNmIwOWFiYmIxZjUxZDBl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJERGljdC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgotI2luY2x1ZGUgPHZhcmlhbnQ+Ci0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgUEFMIHsKLW5hbWVzcGFjZSBXZWJHUFUg
ewotCi1zdHJ1Y3QgT3JpZ2luMkREaWN0IHsKLSAgICBJbnRlZ2VyQ29vcmRpbmF0ZSB4OwotICAg
IEludGVnZXJDb29yZGluYXRlIHk7Ci19OwotCi11c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4yRERpY3Q+OwotCi19Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmln
aW4zRC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3Jp
Z2luM0QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yNGZlMjE0ODE1NDMwNmFkNTlmN2U5Zjk5M2FmNDcwOTgyZmM5
M2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVT3JpZ2luM0QuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJHUFVJbnRlZ3JhbFR5cGVzLmgiCisjaW5jbHVkZSA8
dmFyaWFudD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBQQUwgeworbmFt
ZXNwYWNlIFdlYkdQVSB7CisKK3N0cnVjdCBPcmlnaW4zRERpY3QgeworICAgIEludGVnZXJDb29y
ZGluYXRlIHg7CisgICAgSW50ZWdlckNvb3JkaW5hdGUgeTsKKyAgICBJbnRlZ2VyQ29vcmRpbmF0
ZSB6OworfTsKKwordXNpbmcgT3JpZ2luM0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPEludGVnZXJD
b29yZGluYXRlPiwgT3JpZ2luM0REaWN0PjsKKworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT3JpZ2luM0REaWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4zRERpY3QuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRmZTIxNDgxNTQzMDZhZDU5ZjdlOWY5OTNh
ZjQ3MDk4MmZjOTNiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4z
RERpY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMuaCIKLSNpbmNsdWRlIDx2
YXJpYW50PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFBBTCB7Ci1uYW1l
c3BhY2UgV2ViR1BVIHsKLQotc3RydWN0IE9yaWdpbjNERGljdCB7Ci0gICAgSW50ZWdlckNvb3Jk
aW5hdGUgeDsKLSAgICBJbnRlZ2VyQ29vcmRpbmF0ZSB5OwotICAgIEludGVnZXJDb29yZGluYXRl
IHo7Ci19OwotCi11c2luZyBPcmlnaW4zRCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8SW50ZWdlckNv
b3JkaW5hdGU+LCBPcmlnaW4zRERpY3Q+OwotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlLmgKaW5kZXggNDZiNjhlY2IwNjZkYTQxNGNiM2E2NWI3MDRkZGRkZDY3
ZGRhMGE1Zi4uMDg4MDMyOTg1NTQ3YWRiYWE0NDk2NTkyMDJjNjYzNmViMDZjZjk1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMzIsNyArMzIsNyBAQCBu
YW1lc3BhY2UgUEFMIHsKIG5hbWVzcGFjZSBXZWJHUFUgewogCiBzdHJ1Y3QgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7Ci0gICAgUmVmUHRyPFBp
cGVsaW5lTGF5b3V0PiBsYXlvdXQ7CisgICAgUGlwZWxpbmVMYXlvdXQqIGxheW91dDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggZTE1
NTZkNzQ0NThmMjZkYmU1Mzg0NGRlMTM1ZjIxOWMzY2E4ZjFhMy4uYTE5ZjNkYWIwNWY4YzEyZDk4
MTAwN2MzYzBlZTM3MGQ2YmI1ZmNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yLmgKQEAgLTI3LDEzICsyNywxNCBAQAogCiAjaW5jbHVkZSAiV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0LmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIK
KyNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFBBTCB7CiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7Ci0gICAgVmVjdG9yPFJlZlB0cjxC
aW5kR3JvdXBMYXlvdXQ+PiBiaW5kR3JvdXBMYXlvdXRzOworICAgIFZlY3RvcjxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPEJpbmRHcm91cExheW91dD4+IGJpbmRHcm91cExheW91dHM7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQcm9ncmFtbWFibGVTdGFnZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCA0MWY3MWQ0NjdjMmQ4YTEyNTM5
ZDFmMmM3Y2I1NDU2YzNhMTQxNmZhLi43NjNjYmY4MzU0ZDQyYjdjMmI2OGZkZmZkMDk3ZWUzZDM4
NWVkZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgogI2luY2x1ZGUgPHd0Zi9LZXlW
YWx1ZVBhaXIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFBBTCB7CkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBXZWJHUFUgewogdXNpbmcgUGlwZWxpbmVDb25zdGFudFZhbHVlID0g
ZG91YmxlOyAvLyBNYXkgcmVwcmVzZW50IFdHU0zigJlzIGJvb2wsIGYzMiwgaTMyLCB1MzIuCiAK
IHN0cnVjdCBQcm9ncmFtbWFibGVTdGFnZSB7Ci0gICAgUmVmUHRyPFNoYWRlck1vZHVsZT4gbW9k
dWxlOworICAgIFNoYWRlck1vZHVsZSYgbW9kdWxlOwogICAgIFN0cmluZyBlbnRyeVBvaW50Owog
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBj
b25zdGFudHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAppbmRleCAyZjli
NjdmYzkzMjMxOTljOWNlYzc5ZDY5NzQ1ZjcwZjdmZDg3MzA5Li41NTY5ZmFlMjE1MTRjNmI0Mjhl
YWNlNjY1YzY5NTMyNzE1MWZiMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3Iu
aApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVTdGF0aXN0aWNOYW1lLmgiCiAjaW5jbHVkZSAi
V2ViR1BVUXVlcnlUeXBlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFBBTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaAppbmRleCAzZGM5ZWU5NTQ1ODBk
NzlhYzBjOTlmOTU0MTllNjA1OGU5NTQyOGI3Li5jMzM5NzZlYzc0MTM3OWZiNjJlZTY2NWJmMzIw
ODc3MTViYTMzYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdQVUV4dGVu
dDNERGljdC5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCiAjaW5jbHVkZSAiV2ViR1BV
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlQ29weVRleHR1
cmUuaCIKICNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiCkBAIC0zNiw3
ICszNiw2IEBACiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01
Nyw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VibWl0KFZlY3RvcjxSZWZQdHI8Q29tbWFuZEJ1
ZmZlcj4+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxDb21tYW5kQnVmZmVyPj4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG9u
U3VibWl0dGVkV29ya0RvbmUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKIApAQCAtNjYs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNpemU2NCBidWZmZXJPZmZzZXQsCiAgICAgICAg
IGNvbnN0IHZvaWQqIHNvdXJjZSwKICAgICAgICAgc2l6ZV90IGJ5dGVMZW5ndGgsCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBkYXRhT2Zmc2V0LAorICAgICAgICBTaXplNjQgZGF0YU9m
ZnNldCwKICAgICAgICAgc3RkOjpvcHRpb25hbDxTaXplNjQ+KSA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgd3JpdGVUZXh0dXJlKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rlci5oCmlu
ZGV4IDNhYThkMGNjODc5ZWYyN2Q3Yjc0ZmFkYjM2NGNmMWFmMDdmMTVhYjguLjE3MDUzMjFjNDA3
ZTc0NTMzMDBmNWI5MjkzNGI2ZmZjN2ViNzg2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5k
bGVFbmNvZGVyLmgKQEAgLTczLDcgKzczLDggQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHNldEJpbmRHcm91cChJbmRleDMyLCBjb25zdCBCaW5kR3JvdXAm
LAotICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiYgZHluYW1pY09mZnNldHNEYXRhLAorICAgICAg
ICBjb25zdCB1aW50MzJfdCogZHluYW1pY09mZnNldHNBcnJheUJ1ZmZlciwKKyAgICAgICAgc2l6
ZV90IGR5bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJMZW5ndGgsCiAgICAgICAgIFNpemU2NCBkeW5h
bWljT2Zmc2V0c0RhdGFTdGFydCwKICAgICAgICAgU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxl
bmd0aCkgPSAwOwogCkBAIC04MSw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cG9wRGVidWdHcm91cCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RGVidWdNYXJrZXIo
U3RyaW5nJiYgbWFya2VyTGFiZWwpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmPFJlbmRlckJ1bmRs
ZT4gZmluaXNoKHN0ZDo6b3B0aW9uYWw8UmVuZGVyQnVuZGxlRGVzY3JpcHRvcj4pID0gMDsKKyAg
ICB2aXJ0dWFsIFJlZjxSZW5kZXJCdW5kbGU+IGZpbmlzaChjb25zdCBSZW5kZXJCdW5kbGVEZXNj
cmlwdG9yJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQnVuZGxlRW5jb2RlcigpID0g
ZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaApp
bmRleCAzNDkzMGRiOWNmMzUzNWE4OWIwZDQ4MDA1OWJjMTdkYTdiYjhlOGM2Li4zNGE5ODRkYTE1
YmViZGI3ZDY0YWZiZDE0ZDY2MmI4ZDIxOWVkYzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCkBAIC0yNSwyMCArMjUsMjAgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJXZWJHUFVDb2xvckRpY3QuaCIKKyNpbmNsdWRlICJXZWJHUFVDb2xv
ci5oIgogI2luY2x1ZGUgIldlYkdQVUxvYWRPcC5oIgogI2luY2x1ZGUgIldlYkdQVVN0b3JlT3Au
aCIKICNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVmlldy5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+Ci0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBQQUwgewogbmFtZXNwYWNlIFdlYkdQVSB7CiAKIHN0
cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50IHsKLSAgICBSZWZQdHI8VGV4dHVyZVZpZXc+
IHZpZXc7Ci0gICAgUmVmUHRyPFRleHR1cmVWaWV3PiByZXNvbHZlVGFyZ2V0OworICAgIFRleHR1
cmVWaWV3JiB2aWV3OworICAgIFRleHR1cmVWaWV3KiByZXNvbHZlVGFyZ2V0OwogCiAgICAgc3Rk
Ojp2YXJpYW50PExvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD4gbG9hZFZhbHVlOwog
ICAgIFN0b3JlT3Agc3RvcmVPcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
RGVwdGhTdGVuY2lsQXR0YWNobWVudC5oCmluZGV4IDNiMDU0OTcxYTc3NjJiOTZmNzE0N2ZhYzg0
ZDQxYzMyNTE1NTQzN2UuLjRkOTQxYzE5ZjY4OTU5YzZlNzU5Mzg4N2ZkNWE4MDMxNGVkYTliMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFj
aG1lbnQuaApAQCAtMzAsMTMgKzMwLDEzIEBACiAjaW5jbHVkZSAiV2ViR1BVU3RvcmVPcC5oIgog
I2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KLSNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgUEFM
IHsKIG5hbWVzcGFjZSBXZWJHUFUgewogCiBzdHJ1Y3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0
dGFjaG1lbnQgewotICAgIFJlZlB0cjxUZXh0dXJlVmlldz4gdmlldzsKKyAgICBUZXh0dXJlVmll
dyYgdmlldzsKIAogICAgIHN0ZDo6dmFyaWFudDxMb2FkT3AsIGZsb2F0PiBkZXB0aExvYWRWYWx1
ZTsKICAgICBTdG9yZU9wIGRlcHRoU3RvcmVPcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvci5oCmluZGV4IDM0ZTlmMzUyNWVhOThmNWIzNTY0NjA4NDY4Mzg2NjE1ZGZiMjVhZGUu
LjFkNjZmMDY4NWY0NzEyN2UwYmZmNTg3M2E1OGU3YTgyMDA3YzczZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNj
cmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaApAQCAtMjksOSArMjksOCBAQAogI2luY2x1ZGUgIldl
YkdQVVF1ZXJ5U2V0LmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dC5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmgi
Ci0jaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgiCisjaW5jbHVkZSAi
V2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBQQUwgewpAQCAtNDAsNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIHN0cnVjdCBS
ZW5kZXJQYXNzRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAg
VmVjdG9yPFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+IGNvbG9yQXR0YWNobWVudHM7CiAgICAg
c3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudD4gZGVwdGhTdGVu
Y2lsQXR0YWNobWVudDsKLSAgICBSZWZQdHI8UXVlcnlTZXQ+IG9jY2x1c2lvblF1ZXJ5U2V0Owor
ICAgIFF1ZXJ5U2V0KiBvY2NsdXNpb25RdWVyeVNldDsKICAgICBSZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzIHRpbWVzdGFtcFdyaXRlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rl
ci5oCmluZGV4IDQ5NTZlZTQxNTRhMWE0N2RkOTNkZjJlODVhOTRlZmI3MzdjMTIxZmUuLjJiYzFh
MzI2ODA2ZGEwYTU2NDgyY2YyZGVhZDRkMDI1MWEwNGJjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0VuY29kZXIuaApAQCAtMjUsMTMgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViR1BVQ29sb3JEaWN0LmgiCisjaW5jbHVkZSAiV2ViR1BVQ29sb3IuaCIKICNpbmNs
dWRlICJXZWJHUFVJbmRleEZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMu
aCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTc1LDcgKzc1LDggQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxCdWZmZXJEeW5hbWljT2Zmc2V0Pj4mJiBkeW5hbWljT2Zmc2V0cykgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEJpbmRHcm91cChJbmRleDMyLCBjb25zdCBCaW5kR3JvdXAmLAot
ICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiYgZHluYW1pY09mZnNldHNEYXRhLAorICAgICAgICBj
b25zdCB1aW50MzJfdCogZHluYW1pY09mZnNldHNBcnJheUJ1ZmZlciwKKyAgICAgICAgc2l6ZV90
IGR5bmFtaWNPZmZzZXRzQXJyYXlCdWZmZXJMZW5ndGgsCiAgICAgICAgIFNpemU2NCBkeW5hbWlj
T2Zmc2V0c0RhdGFTdGFydCwKICAgICAgICAgU2l6ZTMyIGR5bmFtaWNPZmZzZXRzRGF0YUxlbmd0
aCkgPSAwOwogCkBAIC05OSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJl
Z2luUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoY29uc3QgUXVlcnlTZXQmLCBTaXplMzIgcXVlcnlJ
bmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQaXBlbGluZVN0YXRpc3RpY3NRdWVyeSgp
ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlQnVuZGxlcyhWZWN0b3I8UmVmUHRyPFJl
bmRlckJ1bmRsZT4+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZUJ1bmRsZXMoVmVj
dG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UmVuZGVyQnVuZGxlPj4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBlbmRQYXNzKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4OWE4YTcyZTNmYWUwMGNjY2ZmOGIyN2Q5NDEyNmUzZjU1YTAxOWFhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBlcy5oIgotI2luY2x1ZGUgIldlYkdQVVF1ZXJ5U2V0Lmgi
Ci0jaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcExvY2F0aW9uLmgiCi0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFBB
TCB7Ci1uYW1lc3BhY2UgV2ViR1BVIHsKLQotc3RydWN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZSB7Ci0gICAgUmVmUHRyPFF1ZXJ5U2V0PiBxdWVyeVNldDsKLSAgICBTaXplMzIgcXVlcnlJbmRl
eDsKLSAgICBSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24gbG9jYXRpb247Ci19OwotCi11c2lu
ZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBhc3NUaW1lc3RhbXBX
cml0ZT47Ci0KLX0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOTQ4YmRjZTY1ZWE2NDRlNDY3NTE3NDlmODZkYjViNzBiZGNlODBi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlwZXMu
aCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldC5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBh
c3NUaW1lc3RhbXBMb2NhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBQQUwgeworbmFtZXNwYWNlIFdlYkdQVSB7CisKK3N0
cnVjdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUgeworICAgIFF1ZXJ5U2V0JiBxdWVyeVNldDsK
KyAgICBTaXplMzIgcXVlcnlJbmRleDsKKyAgICBSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24g
bG9jYXRpb247Cit9OworCit1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9y
PFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT47CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmgK
aW5kZXggNGZiNDJmOTBhYWQ4MDNkNmUxYTYxNzI3ZDlhNzBiNmFiOTA0NTYyMi4uZTgwMDkzZmIx
ZmYxYmI0YWM0NTAxZjAzODMyMjhjNGU4NjUwNjI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICBzZXRMYWJlbEludGVybmFsKG1fbGFi
ZWwpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkluZm8oc3RkOjpmdW5j
dGlvbjx2b2lkKFJlZjxDb21waWxhdGlvbkluZm8+KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjb21waWxhdGlvbkluZm8oc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxDb21waWxhdGlvbkluZm8+
JiYpPiYmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBTaGFkZXJNb2R1bGUoKSA9IGRlZmF1bHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaAppbmRleCAwYTFmM2QyMjcxZThhZDU3NDVk
MTkxOTg1NzIyMDQ1YjBlYWI5NjFmLi4zODUwNTJiNDdlYTI4NTUwOTZiMjc5NjRmYTcxMzVmZGQw
Zjg0ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTM5LDYgKzM5LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3VwcG9ydGVkRmVhdHVy
ZXMoV1RGTW92ZShmZWF0dXJlcykpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPFN1cHBvcnRl
ZEZlYXR1cmVzPiBjbG9uZShjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYgZmVhdHVyZXMpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdXBwb3J0ZWRGZWF0dXJlcyhWZWN0b3I8
U3RyaW5nPihmZWF0dXJlcy5mZWF0dXJlcygpKSkpOworICAgIH0KKwogICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAppbmRleCA5Zjk2MGRmZjY3YzU2Zjhi
N2JhMTU0NmU2YWEzNDI0MGQxNmU0MzlkLi40OGQ5OTU4MzMzZDUzYjdkYzhhOTM5NGY0MjQ1ODYy
NzU3M2VhYjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaApAQCAtOTAsNiArOTAsMzcg
QEAgcHVibGljOgogICAgICAgICAgICAgbWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb24p
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPFN1cHBvcnRlZExpbWl0cz4gY2xvbmUoY29uc3Qg
U3VwcG9ydGVkTGltaXRzJiBsaW1pdHMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdXBwb3J0ZWRMaW1pdHMoCisgICAgICAgICAgICBsaW1pdHMubWF4VGV4dHVyZURpbWVu
c2lvbjFEKCksCisgICAgICAgICAgICBsaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjJEKCksCisg
ICAgICAgICAgICBsaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjNEKCksCisgICAgICAgICAgICBs
aW1pdHMubWF4VGV4dHVyZUFycmF5TGF5ZXJzKCksCisgICAgICAgICAgICBsaW1pdHMubWF4Qmlu
ZEdyb3VwcygpLAorICAgICAgICAgICAgbGltaXRzLm1heER5bmFtaWNVbmlmb3JtQnVmZmVyc1Bl
clBpcGVsaW5lTGF5b3V0KCksCisgICAgICAgICAgICBsaW1pdHMubWF4RHluYW1pY1N0b3JhZ2VC
dWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhTYW1wbGVk
VGV4dHVyZXNQZXJTaGFkZXJTdGFnZSgpLAorICAgICAgICAgICAgbGltaXRzLm1heFNhbXBsZXJz
UGVyU2hhZGVyU3RhZ2UoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhTdG9yYWdlQnVmZmVyc1Bl
clNoYWRlclN0YWdlKCksCisgICAgICAgICAgICBsaW1pdHMubWF4U3RvcmFnZVRleHR1cmVzUGVy
U2hhZGVyU3RhZ2UoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhVbmlmb3JtQnVmZmVyc1BlclNo
YWRlclN0YWdlKCksCisgICAgICAgICAgICBsaW1pdHMubWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdT
aXplKCksCisgICAgICAgICAgICBsaW1pdHMubWF4U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplKCks
CisgICAgICAgICAgICBsaW1pdHMubWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCgpLAor
ICAgICAgICAgICAgbGltaXRzLm1pblN0b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQoKSwKKyAg
ICAgICAgICAgIGxpbWl0cy5tYXhWZXJ0ZXhCdWZmZXJzKCksCisgICAgICAgICAgICBsaW1pdHMu
bWF4VmVydGV4QXR0cmlidXRlcygpLAorICAgICAgICAgICAgbGltaXRzLm1heFZlcnRleEJ1ZmZl
ckFycmF5U3RyaWRlKCksCisgICAgICAgICAgICBsaW1pdHMubWF4SW50ZXJTdGFnZVNoYWRlckNv
bXBvbmVudHMoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU3RvcmFn
ZVNpemUoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3Jr
Z3JvdXAoKSwKKyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgoKSwK
KyAgICAgICAgICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVkoKSwKKyAgICAgICAg
ICAgIGxpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVooKSwKKyAgICAgICAgICAgIGxpbWl0
cy5tYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbigpKSk7CisgICAgfQorCiAgICAgdWlu
dDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjFEKCkgY29uc3QgeyByZXR1cm4gbV9tYXhUZXh0dXJl
RGltZW5zaW9uMUQ7IH0KICAgICB1aW50MzJfdCBtYXhUZXh0dXJlRGltZW5zaW9uMkQoKSBjb25z
dCB7IHJldHVybiBtX21heFRleHR1cmVEaW1lbnNpb24yRDsgfQogICAgIHVpbnQzMl90IG1heFRl
eHR1cmVEaW1lbnNpb24zRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VGV4dHVyZURpbWVuc2lvbjNE
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaAppbmRleCBiY2IyZTRmNDIzMzlhM2Q3
YmEzYWIwZGM0ZTg0OWMzNDIzMTA5MmQ1Li40NGUzZGQxOTg4NDdmMWEwZGZhMTNhYTMxYzAxOGE5
ZmE1YWUxZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRERpY3QuaCIK
KyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgogI2luY2x1ZGUgIldlYkdQVUludGVncmFsVHlw
ZXMuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUg
IldlYkdQVVRleHR1cmVEaW1lbnNpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCmluZGV4IDNjNjdmZTRjYzU5OGViOTVhM2ZhNmNiOGI5NjQ2OGJmZjRhYzdkYmQuLmU4MTMw
ZTU4MGJmYTAwNjQwMGJkYzg2NDJhMzAxMzJkMjc3MzU0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcApAQCAtNjgsNyArNjgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IE5hdmlnYXRvckJhc2U6Ok5hdmlnYXRvckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCi0gICAgLCBt
X2dwdUZvcldlYkdQVShHUFU6OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yQmFzZS5oCmluZGV4IDIyOWQ0N2IyZDYzYjg3OTMwZjNhMTcwNWMzMDE1ZDRhNzljYzU3YjYu
LmI1MTIyYTRiZGFlMzA2OWFlYjM3ZmRhYmMxYTZkNjY0YTJjNDZjZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yQmFzZS5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIFN0b3Jh
Z2VNYW5hZ2VyJiBzdG9yYWdlKCk7CiAgICAgV2ViTG9ja01hbmFnZXImIGxvY2tzKCk7Ci0gICAg
R1BVJiBncHUoKSB7IHJldHVybiBtX2dwdUZvcldlYkdQVTsgfTsKKyAgICBHUFUmIGdwdSgpIHsg
cmV0dXJuICptX2dwdUZvcldlYkdQVTsgfTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE5h
dmlnYXRvckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtNzEsNyArNzEsNyBAQCBw
cm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlZlB0cjxTdG9yYWdlTWFuYWdlcj4gbV9zdG9yYWdl
TWFuYWdlcjsKICAgICBSZWZQdHI8V2ViTG9ja01hbmFnZXI+IG1fd2ViTG9ja01hbmFnZXI7Ci0g
ICAgUmVmPEdQVT4gbV9ncHVGb3JXZWJHUFU7CisgICAgUmVmUHRyPEdQVT4gbV9ncHVGb3JXZWJH
UFU7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiBwdWJsaWM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>