<?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>193129</bug_id>
          
          <creation_ts>2019-01-03 16:38:07 -0800</creation_ts>
          <short_desc>[Cocoa] Merge WebEditCommandProxy::nameForEditAction and undoNameForEditAction into a single function</short_desc>
          <delta_ts>2019-01-04 11:59:04 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1491549</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-03 16:38:07 -0800</bug_when>
    <thetext>As their corresponding FIXMEs state, these functions are nearly identical, and this logic should be shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491580</commentid>
    <comment_count>1</comment_count>
      <attachid>358300</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-03 18:46:46 -0800</bug_when>
    <thetext>Created attachment 358300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491779</commentid>
    <comment_count>2</comment_count>
      <attachid>358300</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-04 11:57:00 -0800</bug_when>
    <thetext>Comment on attachment 358300
Patch

Clearing flags on attachment: 358300

Committed r239627: &lt;https://trac.webkit.org/changeset/239627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491780</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-04 11:57:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491781</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-04 11:59:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/47053815&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358300</attachid>
            <date>2019-01-03 18:46:46 -0800</date>
            <delta_ts>2019-01-04 11:57:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193129-20190103184645.patch</filename>
            <type>text/plain</type>
            <size>37885</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxZjhkOTgyY2M4Mzk0
OTQwNzM0NzI4MDUyYWQ4MDA0ZGY2ZmE2OS4uNDdhZjBmYjIxMjU2MmEwMzY3NGM1NDE5NTlmMTdl
NzAyZGZkOTE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAxLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVy
Z2UgV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24gYW5kIHVuZG9OYW1lRm9y
RWRpdEFjdGlvbiBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0aGF0
IHJldHVybnMgdGhlIHVuZG8vcmVkbyBuYW1lIGZvciBhIGdpdmVuIEVkaXRBY3Rpb24uIE5vIGNo
YW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRB
Y3Rpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29t
bWFuZFByb3h5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyk6CisgICAg
ICAgICogZWRpdGluZy9FZGl0QWN0aW9uLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorCiAyMDE5LTAxLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzkzMDYpOiBEb24ndCBkaXNhYmxlIGZvbnQgc21vb3Ro
aW5nIGluIHRyYW5zcGFyZW50IGxheWVycyBvbiBtYWNPUyBNb2phdmUgYW5kIGxhdGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDgzZjUwMDZmOGYyMzc0YTJmYTFhOTIxZmZjZGYwZTcxMjE2ODFlZWYuLmY5Mzg3ZjU1
ZGE0NmM0ODc4MTQwMWQxZTA2YmNkYTQ1YzFkODgzODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTktMDEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBNZXJnZSBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFj
dGlvbiBhbmQgdW5kb05hbWVGb3JFZGl0QWN0aW9uIGludG8gYSBzaW5nbGUgZnVuY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzEyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBXZWJF
ZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbiBhbmQgdXNlIFdlYkNvcmU6Om5hbWVG
b3JVbmRvUmVkbyBpbnN0ZWFkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFu
ZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpXZWJFZGl0Q29tbWFuZFByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6fldlYkVkaXRDb21tYW5kUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlv
bik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjphZGRFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVtb3ZlRWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmlzVmFsaWRFZGl0Q29tbWFuZCk6IERlbGV0ZWQuCisKKyAgICAgICAgQml0IG9mIGRyaXZlLWJ5
IHJlZmFjdG9yaW5nOiByZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uLCBhbmQgbWFrZSBhZGRFZGl0
Q29tbWFuZCBhbmQgcmVtb3ZlRWRpdENvbW1hbmQgdGFrZQorICAgICAgICByZWZlcmVuY2VzIGlu
c3RlYWQgb2YgcG9pbnRlcnMsIHNpbmNlIHRoZXNlIGFyZSBhc3N1bWVkIHRvIGJlIG5vbm51bGwu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorCiAyMDE5LTAxLTAzICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIy
Mzk0NDEpOiBUYWIgY3ljbGluZyB0byBvZmZzY3JlZW4gPHNlbGVjdD4gbWF5IG5vdCBzY3JvbGwg
aXQgaW50byB2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTM3MmRhZjExYWRm
MDljMjNjY2E5MjhkZjY1ZjBkNGY5ODUxNjZmNS4uZjEzN2IzZTQ5YmNkNjVmNTEwZmFmZWU0MWFi
ODg1OWVmZmFlZTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE5LTAxLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gTWVyZ2UgV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRB
Y3Rpb24gYW5kIHVuZG9OYW1lRm9yRWRpdEFjdGlvbiBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxMjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdW5k
b05hbWVGb3JFZGl0QWN0aW9uIGFuZCB1c2UgV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvIGluc3Rl
YWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAg
ICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb09yUmVkb1N0ZXApOgorICAgICAgICAo
dW5kb05hbWVGb3JFZGl0QWN0aW9uKTogRGVsZXRlZC4KKwogMjAxOS0wMS0wMiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dXNpbmcgdGhlIGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlP
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCBlN2Q5MzRhZDI3ZjFiZmE5MTIzMWUxZDg2ZGYwYjc0MTlkODM4
YjkwLi42OTMwMjg4ZDVkZDA2YWI5OTQxNGFhMTRjZTI1OGNlZjgxYmNiYTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtOTEzLDYgKzkxMyw3IEBAIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKIGVkaXRpbmcvRGljdGF0
aW9uQWx0ZXJuYXRpdmUuY3BwCiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCitlZGl0aW5n
L0VkaXRBY3Rpb24uY3BwCiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogZWRpdGluZy9FZGl0aW5n
LmNwcAogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGU0NTJjMDYyYTZiYTI2ZjQ3MzI3
MDc3ZmMxZjk5YWNmY2ZkOGNlYi4uYWE3NzRmOWU1ZGQ3Y2NiMzBhM2RjMmJkYjkxOTM2YWRhNmI2
OTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQ5MzUsNiArMTQ5MzUsNyBAQAogCQlGNDhEMkFBMzIxNTk3NDBEMDBDNjc1
MkIgLyogQ29sb3JDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQUE0MjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29sb3JDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJ
dGVtSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkSXRlbUluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ5RTk4RTQyMURFRTZDMTAwOUFFNTVFIC8qIEVkaXRBY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdEFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0RDQzRDY0MjE4ODAyRTYwMEVDRUNBQyAvKiBTZXJpYWxpemVkQXR0
YWNobWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDk4MTdEMjE5NUZCRjYwMDgyMzBGQyAv
KiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbmdlTGlzdFR5cGVD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDk4MTdFMjE5NUZCRjYw
MDgyMzBGQyAvKiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIwNzgwLDYgKzIwNzgxLDcgQEAKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGlj
dGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERp
Y3RhdGlvbkNvbW1hbmQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGlj
dGlvbmFyeVBvcHVwSW5mby5oICovLAorCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBF
ZGl0QWN0aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFj
dGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5j
cHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTI1ZTM1MDc4
ZjI1YTZlZGNmOGUxZDY4OTk0NzU0NzRlOTYyZTNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmNwcApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCisKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3Ry
aW5nIG5hbWVGb3JVbmRvUmVkbyhFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCit7CisgICAgc3dpdGNo
IChlZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZDoKKyAgICBj
YXNlIEVkaXRBY3Rpb246Okluc2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydFJlcGxh
Y2VtZW50OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3A6CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRDb2xvcjoKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRCYWNr
Z3JvdW5kQ29sb3I6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IEJhY2tn
cm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR1cm5PZmZLZXJuaW5n
OgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlR1cm4gT2ZmIEtlcm5pbmciLCAi
VHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OworICAgIGNhc2UgRWRpdEFjdGlvbjo6VGlnaHRlbktlcm5pbmc6CisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiVGlnaHRlbiBLZXJuaW5nIiwgIlRpZ2h0ZW4gS2VybmluZyAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlv
bjo6TG9vc2VuS2VybmluZzoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJMb29z
ZW4gS2VybmluZyIsICJMb29zZW4gS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VXNlU3RhbmRhcmRLZXJuaW5nOgor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVzZSBTdGFuZGFyZCBLZXJuaW5nIiwg
IlVzZSBTdGFuZGFyZCBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJuT2ZmTGlnYXR1cmVzOgorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlR1cm4gT2ZmIExpZ2F0dXJlcyIsICJUdXJuIE9mZiBM
aWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OlVzZVN0YW5kYXJkTGlnYXR1cmVzOgorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMiLCAiVXNlIFN0YW5kYXJkIExp
Z2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6VXNlQWxsTGlnYXR1cmVzOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlVzZSBBbGwgTGlnYXR1cmVzIiwgIlVzZSBBbGwgTGlnYXR1cmVzIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpS
YWlzZUJhc2VsaW5lOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlJhaXNlIEJh
c2VsaW5lIiwgIlJhaXNlIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpMb3dlckJhc2VsaW5lOgorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkxvd2VyIEJhc2VsaW5lIiwgIkxvd2VyIEJhc2VsaW5l
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpTZXRUcmFkaXRpb25hbENoYXJhY3RlclNoYXBlOgorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlNldCBUcmFkaXRpb25hbCBDaGFyYWN0ZXIgU2hhcGUiLCAiU2V0IFRy
YWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Rm9udDoKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgRm9udCIsICJTZXQgRm9udCAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q2hhbmdlQXR0
cmlidXRlczoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDaGFuZ2UgQXR0cmli
dXRlcyIsICJDaGFuZ2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25MZWZ0OgorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkFsaWduIExlZnQiLCAiQWxpZ24gTGVmdCAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxp
Z25SaWdodDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJBbGlnbiBSaWdodCIs
ICJBbGlnbiBSaWdodCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6Q2VudGVyOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIkNlbnRlciIsICJDZW50ZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okp1c3RpZnk6CisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiSnVzdGlmeSIsICJKdXN0aWZ5IChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGly
ZWN0aW9uOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBXcml0aW5nIERp
cmVjdGlvbiIsICJTZXQgV3JpdGluZyBEaXJlY3Rpb24gKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlN1YnNjcmlwdDoKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpTdXBlcnNjcmlwdDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdXBlcnNj
cmlwdCIsICJTdXBlcnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5kZXJsaW5lOgorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlVuZGVybGluZSIsICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Ok91dGxpbmU6Cisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiT3V0bGluZSIsICJPdXRsaW5lIChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpVbnNjcmlwdDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVbnNjcmlwdCIs
ICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAg
IGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIkRyYWciLCAiRHJhZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3V0OgorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklOR19LRVkoIkN1dCIsICJDdXQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkJvbGQ6CisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiQm9sZCIsICJCb2xkIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJdGFsaWNzOgorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOgor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRlbGV0ZSIsICJEZWxldGUgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246
OkRpY3RhdGlvbjoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJEaWN0YXRpb24i
LCAiRGljdGF0aW9uIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZToKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdf
S0VZKCJQYXN0ZSIsICJQYXN0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGVGb250OgorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGVSdWxl
cjoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQYXN0ZSBSdWxlciIsICJQYXN0
ZSBSdWxlciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nRGVsZXRlQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxl
dGVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJk
OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0Rl
bGV0ZUZpbmFsQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRU
ZXh0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0TGluZUJyZWFrOgorICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJUeXBpbmciLCAiVHlwaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDcmVhdGVMaW5rOgorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkNyZWF0ZSBMaW5rIiwgIkNyZWF0ZSBMaW5rIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpV
bmxpbms6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVW5saW5rIiwgIlVubGlu
ayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRp
dEFjdGlvbjo6SW5zZXJ0VW5vcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2Vy
dE9yZGVyZWRMaXN0OgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkluc2VydCBM
aXN0IiwgIkluc2VydCBMaXN0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpGb3JtYXRCbG9jazoKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJGb3JtYXR0aW5nIiwgIkZvcm1hdCBCbG9jayAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5kZW50
OgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkluZGVudCIsICJJbmRlbnQgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rp
b246Ok91dGRlbnQ6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiT3V0ZGVudCIs
ICJPdXRkZW50IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBnaXZlIGludGVybmFsIGNsaWVudHMgYSB3YXkgdG8gb3ZlcnJp
ZGUgdGhlc2UgdW5kbyBuYW1lcy4gRm9yIGluc3RhbmNlLCBNYWlsIHJlZmVycyB0byBvcmRlcmVk
IGFuZCB1bm9yZGVyZWQgbGlzdHMgYXMgIm51bWJlcmVkIiBhbmQgImJ1bGxldGVkIiBsaXN0cywg
cmVzcGVjdGl2ZWx5LAorICAgIC8vIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBvcmRlcmVkIGFuZCB1
bm9yZGVyZWQgbGlzdHMgYXJlIG5vdCBuZWNlc3NhcmlseSBkaXNwbGF5ZWQgdXNpbmcgYnVsbGV0
cyBhbmQgbnVtZXJhbHMuCisgICAgY2FzZSBFZGl0QWN0aW9uOjpDb252ZXJ0VG9PcmRlcmVkTGlz
dDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIE9yZGVyZWQg
TGlzdCIsICJDb252ZXJ0IHRvIE9yZGVyZWQgTGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q29udmVydFRvVW5vcmRlcmVk
TGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIFVub3Jk
ZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5vcmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydEVkaXRh
YmxlSW1hZ2U6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSW5zZXJ0IERyYXdp
bmciLCAiSW5zZXJ0IERyYXdpbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAppbmRleCA0MjQ2NGUyNmU2MzMwNzgwNWZk
M2Q2NTVkMWQxZGI4MTI4YTU2MGFiLi5iNmM0NWRhZjg0NmE2NDllMDJlMjk0NWMxMmM4YmNmZWFk
NjBiNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaApAQCAtMjUsNiArMjUsMTAg
QEAKIAogI3ByYWdtYSBvbmNlCiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgRWRpdEFjdGlvbiA6IHVpbnQ4X3Qg
ewpAQCAtOTEsNCArOTUsNiBAQCBlbnVtIGNsYXNzIEVkaXRBY3Rpb24gOiB1aW50OF90IHsKICAg
ICBJbnNlcnRFZGl0YWJsZUltYWdlCiB9OwogCitXRUJDT1JFX0VYUE9SVCBXVEY6OlN0cmluZyBu
YW1lRm9yVW5kb1JlZG8oRWRpdEFjdGlvbik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA4ZDE3MTM3YmZkNTQ3NmJjZWI0ZTliZDcyZTM3
MGZhNGY1MzgxNjBkLi41ODU0YWViNTVhMGYyNGQ4NTg1NWVlZDEyNjBlM2UzZDk0ZWFmMGEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAi
QXBwbHlTdHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVM
aXN0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJDbGlwYm9hcmRFdmVudC5oIgpAQCAtNjMsOCArNjUsMTAgQEAKICNpbmNsdWRlICJIVE1MSW1h
Z2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
UXVvdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNwYW5FbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFVMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRl
ICJJbmRlbnRPdXRkZW50Q29tbWFuZC5oIgogI2luY2x1ZGUgIklucHV0RXZlbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDViNjRkZWIy
ZTBiODI5NDg1YzJkYzkxNmE0YmYxMDJhYjkwYzQ1OC4uNzcxOTcyYjFhYzgxZTk2NjViN2NlNGE2
YThjM2Q2MGRjMzU2Yjk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KQEAgLTI2NzcsNyArMjY3Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmV4ZWN1
dGVFZGl0Q29tbWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBhcmd1
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmPFdlYkVkaXRDb21t
YW5kUHJveHk+JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIGF1dG8g
YWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNvbW1h
bmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBhY3Rpb25OYW1lID0gV2ViQ29yZTo6bmFtZUZv
clVuZG9SZWRvKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CiAgICAgYXV0byBjb21tYW5kT2JqQyA9
IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJv
eHk6V1RGTW92ZShjb21tYW5kKV0pOwogCiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIg
PSBbbV92aWV3IHVuZG9NYW5hZ2VyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXggZjlhYzE0NmNjMGQyNjJkN2VhZWRmMTU5ZDAyY2Mw
MWE2Njg0NTUxZi4uOWY4M2UzYzE5ZDg2YzlmMjM1M2E3ZTk1NzYxMGExZWE1ZDg1ODRiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKQEAg
LTQxLDEzICs0MSwxMyBAQCBXZWJFZGl0Q29tbWFuZFByb3h5OjpXZWJFZGl0Q29tbWFuZFByb3h5
KFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBXZWJDb3JlOjpFZGl0QQogICAgICwgbV9lZGl0QWN0
aW9uKGVkaXRBY3Rpb24pCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKLSAgICBtX3BhZ2UtPmFkZEVk
aXRDb21tYW5kKHRoaXMpOworICAgIG1fcGFnZS0+YWRkRWRpdENvbW1hbmQoKnRoaXMpOwogfQog
CiBXZWJFZGl0Q29tbWFuZFByb3h5Ojp+V2ViRWRpdENvbW1hbmRQcm94eSgpCiB7CiAgICAgaWYg
KG1fcGFnZSkKLSAgICAgICAgbV9wYWdlLT5yZW1vdmVFZGl0Q29tbWFuZCh0aGlzKTsKKyAgICAg
ICAgbV9wYWdlLT5yZW1vdmVFZGl0Q29tbWFuZCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViRWRpdENv
bW1hbmRQcm94eTo6dW5hcHBseSgpCkBAIC02OCwxMTkgKzY4LDQgQEAgdm9pZCBXZWJFZGl0Q29t
bWFuZFByb3h5OjpyZWFwcGx5KCkKICAgICBtX3BhZ2UtPnJlZ2lzdGVyRWRpdENvbW1hbmQoKnRo
aXMsIFVuZG9PclJlZG86OlVuZG8pOwogfQogCi1TdHJpbmcgV2ViRWRpdENvbW1hbmRQcm94eTo6
bmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQotewotICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdCdzIFdlYkVkaXRvckNsaWVudCBj
bGFzczsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3RyaW5ncyBpbnN0ZWFkIG9mIGhhdmlu
ZyB0d28gY29waWVzLgotICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewotICAgIGNhc2UgRWRpdEFj
dGlvbjo6VW5zcGVjaWZpZWQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnQ6Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uOjpJbnNlcnRSZXBsYWNlbWVudDoKLSAgICBjYXNlIEVkaXRBY3Rpb246Oklu
c2VydEZyb21Ecm9wOgotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uOjpTZXRDb2xvcjoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQ29s
b3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRCYWNrZ3JvdW5kQ29sb3I6Ci0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IEJhY2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91
bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBj
YXNlIEVkaXRBY3Rpb246OlR1cm5PZmZLZXJuaW5nOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlR1cm4gT2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6VGln
aHRlbktlcm5pbmc6Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGlnaHRlbiBL
ZXJuaW5nIiwgIlRpZ2h0ZW4gS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6TG9vc2VuS2VybmluZzoKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJMb29zZW4gS2VybmluZyIsICJMb29zZW4gS2Vybmlu
ZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRp
dEFjdGlvbjo6VXNlU3RhbmRhcmRLZXJuaW5nOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlVzZSBTdGFuZGFyZCBLZXJuaW5nIiwgIlVzZSBTdGFuZGFyZCBLZXJuaW5nIChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
OjpUdXJuT2ZmTGlnYXR1cmVzOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlR1
cm4gT2ZmIExpZ2F0dXJlcyIsICJUdXJuIE9mZiBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OlVzZVN0YW5kYXJk
TGlnYXR1cmVzOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVzZSBTdGFuZGFy
ZCBMaWdhdHVyZXMiLCAiVXNlIFN0YW5kYXJkIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6VXNlQWxsTGlnYXR1
cmVzOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVzZSBBbGwgTGlnYXR1cmVz
IiwgIlVzZSBBbGwgTGlnYXR1cmVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpSYWlzZUJhc2VsaW5lOgotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIlJhaXNlIEJhc2VsaW5lIiwgIlJhaXNlIEJhc2VsaW5lIChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uOjpMb3dlckJhc2VsaW5lOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkxv
d2VyIEJhc2VsaW5lIiwgIkxvd2VyIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRUcmFkaXRpb25hbENoYXJh
Y3RlclNoYXBlOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBUcmFkaXRp
b25hbCBDaGFyYWN0ZXIgU2hhcGUiLCAiU2V0IFRyYWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvbjo6U2V0Rm9udDoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgRm9u
dCIsICJTZXQgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvbjo6Q2hhbmdlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJDaGFuZ2UgQXR0cmlidXRlcyIsICJDaGFuZ2UgQXR0cmlidXRlcyAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvbjo6QWxpZ25MZWZ0OgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkFsaWdu
IExlZnQiLCAiQWxpZ24gTGVmdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25SaWdodDoKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJBbGlnbiBSaWdodCIsICJBbGlnbiBSaWdodCAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6Q2VudGVy
OgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNlbnRlciIsICJDZW50ZXIgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rp
b246Okp1c3RpZnk6Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSnVzdGlmeSIs
ICJKdXN0aWZ5IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uOgotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlNldCBXcml0aW5nIERpcmVjdGlvbiIsICJTZXQgV3JpdGluZyBEaXJl
Y3Rpb24gKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNl
IEVkaXRBY3Rpb246OlN1YnNjcmlwdDoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJTdWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpTdXBlcnNjcmlwdDoKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdXBlcnNjcmlwdCIsICJTdXBlcnNjcmlwdCAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6
VW5kZXJsaW5lOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVuZGVybGluZSIs
ICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAg
ICBjYXNlIEVkaXRBY3Rpb246Ok91dGxpbmU6Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiT3V0bGluZSIsICJPdXRsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpVbnNjcmlwdDoKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJVbnNjcmlwdCIsICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlE
cmFnOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRyYWciLCAiRHJhZyAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlv
bjo6Q3V0OgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkN1dCIsICJDdXQgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rp
b246OkJvbGQ6Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQm9sZCIsICJCb2xk
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0
QWN0aW9uOjpJdGFsaWNzOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkl0YWxp
Y3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIkRlbGV0ZSIsICJEZWxldGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkRpY3RhdGlvbjoKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJEaWN0YXRpb24iLCAiRGljdGF0aW9uIChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZToK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQYXN0ZSIsICJQYXN0ZSAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6
UGFzdGVGb250OgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIEZvbnQi
LCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGVSdWxlcjoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJQYXN0ZSBSdWxlciIsICJQYXN0ZSBSdWxlciAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRl
U2VsZWN0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGb3J3YXJkOgotICAgIGNhc2UgRWRpdEFj
dGlvbjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlw
aW5nRGVsZXRlV29yZEZvcndhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVM
aW5lQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2Fy
ZDoKLSAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoK
LSAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZpbmFsQ29tcG9zaXRpb246Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRUZXh0OgotICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nSW5zZXJ0TGluZUJyZWFrOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0
UGFyYWdyYXBoOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBv
c2l0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlv
bjoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUeXBpbmciLCAiVHlwaW5nIChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uOjpDcmVhdGVMaW5rOgotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNyZWF0
ZSBMaW5rIiwgIkNyZWF0ZSBMaW5rIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpVbmxpbms6Ci0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiVW5saW5rIiwgIlVubGluayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0VW5vcmRlcmVkTGlz
dDoKLSAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydE9yZGVyZWRMaXN0OgotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkluc2VydCBMaXN0IiwgIkluc2VydCBMaXN0IChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpG
b3JtYXRCbG9jazoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJGb3JtYXR0aW5n
IiwgIkZvcm1hdCBCbG9jayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5kZW50OgotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIkluZGVudCIsICJJbmRlbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246Ok91dGRlbnQ6Ci0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HX0tFWSgiT3V0ZGVudCIsICJPdXRkZW50IChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBnaXZlIGlu
dGVybmFsIGNsaWVudHMgYSB3YXkgdG8gb3ZlcnJpZGUgdGhlc2UgdW5kbyBuYW1lcy4gRm9yIGlu
c3RhbmNlLCBNYWlsIHJlZmVycyB0byBvcmRlcmVkIGFuZCB1bm9yZGVyZWQgbGlzdHMgYXMgIm51
bWJlcmVkIiBhbmQgImJ1bGxldGVkIiBsaXN0cywgcmVzcGVjdGl2ZWx5LAotICAgIC8vIGRlc3Bp
dGUgdGhlIGZhY3QgdGhhdCBvcmRlcmVkIGFuZCB1bm9yZGVyZWQgbGlzdHMgYXJlIG5vdCBuZWNl
c3NhcmlseSBkaXNwbGF5ZWQgdXNpbmcgYnVsbGV0cyBhbmQgbnVtZXJhbHMuCi0gICAgY2FzZSBF
ZGl0QWN0aW9uOjpDb252ZXJ0VG9PcmRlcmVkTGlzdDoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJDb252ZXJ0IHRvIE9yZGVyZWQgTGlzdCIsICJDb252ZXJ0IHRvIE9yZGVyZWQg
TGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2Ug
RWRpdEFjdGlvbjo6Q29udmVydFRvVW5vcmRlcmVkTGlzdDoKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5v
cmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAg
ICBjYXNlIEVkaXRBY3Rpb246Okluc2VydEVkaXRhYmxlSW1hZ2U6Ci0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiSW5zZXJ0IERyYXdpbmciLCAiSW5zZXJ0IERyYXdpbmcgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICB9Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaAppbmRleCBiNGU3NjdmNjNmMTNiODIyNzBmMmFm
ZDljZjdhMjNhMzM2Njc5MDBjLi43MTZjYjU4ZjQwM2RkODIzMTk2Zjg2NDJmNzVmNGRmM2Q3MWFh
OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5o
CkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuYXBwbHkoKTsKICAgICB2b2lk
IHJlYXBwbHkoKTsKIAotICAgIHN0YXRpYyBTdHJpbmcgbmFtZUZvckVkaXRBY3Rpb24oV2ViQ29y
ZTo6RWRpdEFjdGlvbik7Ci0KIHByaXZhdGU6CiAgICAgV2ViRWRpdENvbW1hbmRQcm94eShXZWJV
bmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5Kik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGRhN2E5NGEz
M2Q4MTkzNWNhMTQzMjA3MzQ2ODhjYzk4OTczYTU0ODIuLmU3M2MyNzY5NWU4MzhiZGVhNmY5MmE5
YzZkYjJiYThmZDNhMTY2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtNTcxMSwxOCArNTcxMSwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZChSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBjb21tYW5kUHJveHksCiAgICAg
cGFnZUNsaWVudCgpLnJlZ2lzdGVyRWRpdENvbW1hbmQoV1RGTW92ZShjb21tYW5kUHJveHkpLCB1
bmRvT3JSZWRvKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmFkZEVkaXRDb21tYW5kKFdlYkVk
aXRDb21tYW5kUHJveHkqIGNvbW1hbmQpCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkRWRpdENvbW1h
bmQoV2ViRWRpdENvbW1hbmRQcm94eSYgY29tbWFuZCkKIHsKLSAgICBtX2VkaXRDb21tYW5kU2V0
LmFkZChjb21tYW5kKTsKKyAgICBtX2VkaXRDb21tYW5kU2V0LmFkZCgmY29tbWFuZCk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpyZW1vdmVFZGl0Q29tbWFuZChXZWJFZGl0Q29tbWFuZFByb3h5
KiBjb21tYW5kKQordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZUVkaXRDb21tYW5kKFdlYkVkaXRD
b21tYW5kUHJveHkmIGNvbW1hbmQpCiB7Ci0gICAgbV9lZGl0Q29tbWFuZFNldC5yZW1vdmUoY29t
bWFuZCk7CisgICAgbV9lZGl0Q29tbWFuZFNldC5yZW1vdmUoJmNvbW1hbmQpOwogCiAgICAgaWYg
KCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZFJlbW92ZUVkaXRDb21tYW5kKGNvbW1hbmQtPmNvbW1hbmRJRCgpKSwg
bV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVt
b3ZlRWRpdENvbW1hbmQoY29tbWFuZC5jb21tYW5kSUQoKSksIG1fcGFnZUlEKTsKIH0KIAogYm9v
bCBXZWJQYWdlUHJveHk6OmNhblVuZG8oKQpAQCAtNTczNSwxMSArNTczNSw2IEBAIGJvb2wgV2Vi
UGFnZVByb3h5OjpjYW5SZWRvKCkKICAgICByZXR1cm4gcGFnZUNsaWVudCgpLmNhblVuZG9SZWRv
KFVuZG9PclJlZG86OlJlZG8pOwogfQogCi1ib29sIFdlYlBhZ2VQcm94eTo6aXNWYWxpZEVkaXRD
b21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHkqIGNvbW1hbmQpCi17Ci0gICAgcmV0dXJuIG1fZWRp
dENvbW1hbmRTZXQuZmluZChjb21tYW5kKSAhPSBtX2VkaXRDb21tYW5kU2V0LmVuZCgpOwotfQot
CiBTcGVsbERvY3VtZW50VGFnIFdlYlBhZ2VQcm94eTo6c3BlbGxEb2N1bWVudFRhZygpCiB7CiAg
ICAgaWYgKCFtX3NwZWxsRG9jdW1lbnRUYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDE4YmY4MTAxYTBlZGQyYjRhMGZlOTg3NjBkZWY0Mzg4YjM0MDMwMTguLjlk
NjIxY2ZmOWQwYzBiNDcwMzc3YWViZDAyY2RlN2E4MGE3NTZjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDA3LDkgKzEwMDcsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0Jik7CiAKLSAgICB2b2lkIGFkZEVkaXRDb21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHkq
KTsKLSAgICB2b2lkIHJlbW92ZUVkaXRDb21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHkqKTsKLSAg
ICBib29sIGlzVmFsaWRFZGl0Q29tbWFuZChXZWJFZGl0Q29tbWFuZFByb3h5Kik7CisgICAgdm9p
ZCBhZGRFZGl0Q29tbWFuZChXZWJFZGl0Q29tbWFuZFByb3h5Jik7CisgICAgdm9pZCByZW1vdmVF
ZGl0Q29tbWFuZChXZWJFZGl0Q29tbWFuZFByb3h5Jik7CiAgICAgdm9pZCByZWdpc3RlckVkaXRD
b21tYW5kKFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmLCBVbmRvT3JSZWRvKTsKIAogICAgIGJv
b2wgY2FuVW5kbygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCmluZGV4IDQyMTUyMWI3NDgzYmVjMWRkOTE5OGEzYjBiYjVlZWQxNTRkNjU3
NGYuLjViYmM4MzI5ZTk4ODVkOTRhOGM2YzRkZDI5OTU5YzI4OTIwNjU5NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTI2NSw3
ICsyNjUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVn
aXN0ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBjb21tYW5kLCBVbmRv
T3JSZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgYXV0byBhY3Rpb25OYW1lID0gV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBh
dXRvIGFjdGlvbk5hbWUgPSBXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8oY29tbWFuZC0+ZWRpdEFj
dGlvbigpKTsKICAgICBhdXRvIGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENvbW1hbmQg
YWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpXVEZNb3ZlKGNvbW1hbmQpXSk7CiAg
ICAgCiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV9jb250ZW50VmlldyB1bmRv
TWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMDg5ZjAzOWU3YzUzODU3NmFlYjc3NjU3
N2M5NzEyMDc0MzBiOTE5NS4uNjliNzY3YWU3ZDc0ZGUxZTZkMjdkOWIxNjkyMjZmY2VkY2I0Yzcx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTg5LDc3ICs1ODksNiBAQCBib29sIFdlYkVkaXRv
ckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZShOb2RlICpub2RlLCBSYW5nZSogcmVwbGFjaW5nUmFu
Z2UsIEVkaXRvcgogICAgIHJldHVybiBbW21fd2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2Fy
ZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBzaG91bGRJbnNlcnROb2RlOmtpdChub2RlKSByZXBsYWNp
bmdET01SYW5nZTpraXQocmVwbGFjaW5nUmFuZ2UpIGdpdmVuQWN0aW9uOihXZWJWaWV3SW5zZXJ0
QWN0aW9uKWdpdmVuQWN0aW9uXTsKIH0KIAotc3RhdGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVk
aXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQotewotICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJFZGl0Q29tbWFuZFByb3h5IGNsYXNz
OyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3RlYWQgb2YgaGF2aW5nIHR3
byBjb3BpZXMuCi0gICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
OjpVbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKLSAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydDog
cmV0dXJuIG5pbDsKLSAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydFJlcGxhY2VtZW50OiByZXR1
cm4gbmlsOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3A6IHJldHVybiBuaWw7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5U
RVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvcjog
cmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNl
dCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIlR1cm4gT2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlv
bjo6VGlnaHRlbktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUaWdodGVu
IEtlcm5pbmciLCAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpMb29zZW5LZXJuaW5nOiByZXR1cm4g
VUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiTG9vc2VuIEtlcm5pbmciLCAiTG9vc2VuIEtlcm5pbmcg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb246OlVzZVN0YW5kYXJkS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwo
IlVzZSBTdGFuZGFyZCBLZXJuaW5nIiwgIlVzZSBTdGFuZGFyZCBLZXJuaW5nIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJu
T2ZmTGlnYXR1cmVzOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgTGln
YXR1cmVzIiwgIlR1cm4gT2ZmIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6VXNlU3RhbmRhcmRMaWdhdHVyZXM6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVc2UgU3RhbmRhcmQgTGlnYXR1cmVzIiwg
IlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OlVzZUFsbExpZ2F0dXJlczogcmV0dXJuIFVJ
X1NUUklOR19LRVlfSU5URVJOQUwoIlVzZSBBbGwgTGlnYXR1cmVzIiwgIlVzZSBBbGwgTGlnYXR1
cmVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uOjpSYWlzZUJhc2VsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgi
UmFpc2UgQmFzZWxpbmUiLCAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246Okxvd2VyQmFzZWxpbmU6IHJl
dHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJMb3dlciBCYXNlbGluZSIsICJMb3dlciBCYXNl
bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2Ug
RWRpdEFjdGlvbjo6U2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJTaGFwZTogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIlNldCBUcmFkaXRpb25hbCBDaGFyYWN0ZXIgU2hhcGUiLCAiU2V0IFRy
YWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Rm9udDogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIlNldCBGb250IiwgIlNldCBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1
dGVzOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQ2hhbmdlIEF0dHJpYnV0ZXMiLCAi
Q2hhbmdlIEF0dHJpYnV0ZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkFsaWduTGVmdDogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIkFsaWduIExlZnQiLCAiQWxpZ24gTGVmdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25SaWdodDogcmV0
dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkFsaWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uOjpDZW50ZXI6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDZW50ZXIiLCAiQ2Vu
dGVyIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uOjpKdXN0aWZ5OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSnVzdGlm
eSIsICJKdXN0aWZ5IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uOiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwgIlNldCBXcml0aW5nIERpcmVj
dGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2Ug
RWRpdEFjdGlvbjo6U3Vic2NyaXB0OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU3Vi
c2NyaXB0IiwgIlN1YnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6U3VwZXJzY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJTdXBlcnNjcmlwdCIsICJTdXBlcnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5kZXJsaW5l
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5kZXJsaW5lIiwgIlVuZGVybGluZSAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvbjo6T3V0bGluZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIk91dGxpbmUiLCAi
T3V0bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvbjo6VW5zY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJV
bnNjcmlwdCIsICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiRHJhZyIsICJEcmFnIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpDdXQ6IHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJDdXQiLCAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZTogcmV0dXJuIFVJX1NUUklOR19L
RVlfSU5URVJOQUwoIlBhc3RlIiwgIlBhc3RlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZUZvbnQ6IHJldHVybiBVSV9T
VFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSBGb250IiwgIlBhc3RlIEZvbnQgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3Rl
UnVsZXI6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSBSdWxlciIsICJQYXN0
ZSBSdWxlciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxl
dGVGb3J3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJk
OgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKLSAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0Rl
bGV0ZUZpbmFsQ29tcG9zaXRpb246Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRU
ZXh0OgotICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0TGluZUJyZWFrOgotICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgotICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKLSAgICAgICAgcmV0dXJuIFVJX1NUUklOR19L
RVlfSU5URVJOQUwoIlR5cGluZyIsICJUeXBpbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkNyZWF0ZUxpbms6IHJldHVybiBV
SV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDcmVhdGUgTGluayIsICJDcmVhdGUgTGluayAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbjo6
VW5saW5rOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5saW5rIiwgIlVubGluayAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvbjo6SW5zZXJ0T3JkZXJlZExpc3Q6Ci0gICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRVbm9y
ZGVyZWRMaXN0OgotICAgICAgICByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSW5zZXJ0
IExpc3QiLCAiSW5zZXJ0IExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkZvcm1hdEJsb2NrOiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiRm9ybWF0dGluZyIsICJGb3JtYXQgQmxvY2sgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkluZGVudDog
cmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkluZGVudCIsICJJbmRlbnQgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246Ok91
dGRlbnQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJPdXRkZW50IiwgIk91dGRlbnQg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb246OkJvbGQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJCb2xkIiwgIkJvbGQg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb246Okl0YWxpY3M6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJdGFsaWNzIiwg
Ikl0YWxpY3MgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBj
YXNlIEVkaXRBY3Rpb246OkRlbGV0ZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkRl
bGV0ZSIsICJEZWxldGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICBjYXNlIEVkaXRBY3Rpb246OkRpY3RhdGlvbjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5U
RVJOQUwoIkRpY3RhdGlvbiIsICJEaWN0YXRpb24gKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkNvbnZlcnRUb09yZGVyZWRMaXN0
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQ29udmVydCB0byBPcmRlcmVkIExpc3Qi
LCAiQ29udmVydCB0byBPcmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246OkNvbnZlcnRUb1Vub3JkZXJlZExpc3Q6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0
IiwgIkNvbnZlcnQgdG8gVW5vcmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydEVkaXRhYmxlSW1hZ2U6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJbnNlcnQgRHJhd2luZyIsICJJbnNlcnQg
RHJhd2luZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIH0K
LSAgICByZXR1cm4gbmlsOwotfQotCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRv
T3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCiB7CiAgICAgTlNVbmRvTWFu
YWdlciAqdW5kb01hbmFnZXIgPSBbbV93ZWJWaWV3IHVuZG9NYW5hZ2VyXTsKQEAgLTY3Miw3ICs2
MDEsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChVbmRv
U3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAg
TlNTdHJpbmcgKmFjdGlvbk5hbWUgPSB1bmRvTmFtZUZvckVkaXRBY3Rpb24oc3RlcC5lZGl0aW5n
QWN0aW9uKCkpOworICAgIE5TU3RyaW5nICphY3Rpb25OYW1lID0gV2ViQ29yZTo6bmFtZUZvclVu
ZG9SZWRvKHN0ZXAuZWRpdGluZ0FjdGlvbigpKTsKICAgICBXZWJVbmRvU3RlcCAqd2ViRW50cnkg
PSBbV2ViVW5kb1N0ZXAgc3RlcFdpdGhVbmRvU3RlcDpzdGVwXTsKICAgICBbdW5kb01hbmFnZXIg
cmVnaXN0ZXJVbmRvV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KGlzUmVk
byA/IEBzZWxlY3RvcihyZWRvRWRpdGluZzopIDogQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikpIG9i
amVjdDp3ZWJFbnRyeV07CiAgICAgaWYgKGFjdGlvbk5hbWUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>